summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_2.s58
-rw-r--r--asm/battle_3.s12017
-rw-r--r--asm/battle_4.s32351
-rw-r--r--asm/battle_5.s4591
-rw-r--r--asm/battle_9.s1484
-rw-r--r--asm/battle_anim_807B69C.s960
-rw-r--r--asm/battle_anim_80CA710.s2172
-rw-r--r--asm/battle_anim_81258BC.s1420
-rw-r--r--asm/battle_anim_812C144.s454
-rw-r--r--asm/battle_anim_813F0F4.s120
-rw-r--r--asm/battle_message.s2403
-rw-r--r--asm/battle_tower.s14
-rw-r--r--asm/battle_transition.s6254
-rw-r--r--asm/berry_blender.s9164
-rw-r--r--asm/cable_car.s8
-rw-r--r--asm/cable_club.s1671
-rw-r--r--asm/contest.s2
-rw-r--r--asm/contest_link_80C2020.s4
-rw-r--r--asm/cute_sketch.s439
-rw-r--r--asm/daycare.s2399
-rw-r--r--asm/easy_chat.s2
-rw-r--r--asm/egg_hatch.s1630
-rw-r--r--asm/evolution_graphics.s1829
-rw-r--r--asm/evolution_scene.s6717
-rw-r--r--asm/field_effect_helpers.s4349
-rw-r--r--asm/field_fadetransition.s1221
-rw-r--r--asm/field_ground_effect.s1302
-rw-r--r--asm/field_map_obj.s628
-rw-r--r--asm/fldeff_80C5CD4.s68
-rw-r--r--asm/hall_of_fame.s3402
-rw-r--r--asm/intro_credits_graphics.s1166
-rw-r--r--asm/learn_move.s2739
-rw-r--r--asm/macros/event.inc504
-rw-r--r--asm/mauville_old_man.s1522
-rw-r--r--asm/mystery_event_script.s831
-rw-r--r--asm/party_menu.s24
-rw-r--r--asm/pokeblock_feed.s1836
-rw-r--r--asm/pokedex_area_screen.s6
-rw-r--r--asm/pokemon_menu.s3438
-rw-r--r--asm/pokemon_storage_system.s4
-rw-r--r--asm/pokemon_summary_screen.s4
-rw-r--r--asm/pokenav.s8
-rw-r--r--asm/reshow_battle_screen.s1097
-rw-r--r--asm/shop.s2613
-rw-r--r--asm/slot_machine.s4
-rw-r--r--asm/trade.s12050
46 files changed, 1788 insertions, 125191 deletions
diff --git a/asm/battle_2.s b/asm/battle_2.s
index ed4140583..f252e5716 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -189,7 +189,7 @@ _080124A8:
lsls r0, 8
orrs r2, r0
movs r0, 0
- bl dp01_build_cmdbuf_x12_a_bb
+ bl Emitcmd18
bl _08012E32
.align 2, 0
_080124C0: .4byte gActionForBanks
@@ -262,7 +262,7 @@ _08012538:
.4byte _08012968
.4byte _0801292C
_0801256C:
- bl sub_8015C90
+ bl AreAllMovesUnusable
lsls r0, 24
cmp r0, 0
beq _080125D0
@@ -408,7 +408,7 @@ _0801264E:
movs r0, 0
movs r2, 0
add r3, sp, 0x4
- bl sub_800CBA4
+ bl Emitcmd20
b _0801289E
.align 2, 0
_080126AC: .4byte gBattleMons
@@ -573,7 +573,7 @@ _080127E0:
str r0, [sp]
movs r0, 0
movs r2, 0x6
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
+ bl EmitChoosePokemon
b _0801289E
.align 2, 0
_08012808: .4byte gActiveBank
@@ -624,7 +624,7 @@ _08012854:
movs r1, 0
_0801286C:
movs r3, 0
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
+ bl EmitChoosePokemon
b _0801289E
.align 2, 0
_08012874: .4byte gActionForBanks
@@ -643,7 +643,7 @@ _08012884:
movs r1, 0
movs r2, 0x6
movs r3, 0
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
+ bl EmitChoosePokemon
_0801289E:
ldr r0, _080128A8 @ =gActiveBank
ldrb r0, [r0]
@@ -698,7 +698,7 @@ _08012908:
ldr r0, _08012928 @ =0x0201606c
adds r1, r0
movs r0, 0
- bl sub_800CBE0
+ bl EmitOpenBag
ldrb r0, [r4]
bl MarkBufferBankForExecution
b _08012968
@@ -725,7 +725,7 @@ _0801292C:
adds r0, r4
strb r5, [r0]
movs r0, 0
- bl dp01_build_cmdbuf_x32_32_32_32
+ bl Emitcmd50
mov r4, r8
ldrb r0, [r4]
bl MarkBufferBankForExecution
@@ -1514,8 +1514,8 @@ _08012FE8: .4byte gUnknown_02024A76
_08012FEC: .4byte gTurnOrder
thumb_func_end sub_8012FBC
- thumb_func_start b_first_side
-b_first_side: @ 8012FF0
+ thumb_func_start GetWhoStrikesFirst
+GetWhoStrikesFirst: @ 8012FF0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -2003,7 +2003,7 @@ _080133B6:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end b_first_side
+ thumb_func_end GetWhoStrikesFirst
thumb_func_start sub_80133C8
sub_80133C8: @ 80133C8
@@ -2285,7 +2285,7 @@ _080135D0:
beq _0801360C
adds r0, r3, 0
movs r2, 0
- bl b_first_side
+ bl GetWhoStrikesFirst
lsls r0, 24
cmp r0, 0
beq _0801360C
@@ -2789,7 +2789,7 @@ _08013A04:
beq _08013A0E
b _08013B42
_08013A0E:
- bl sub_80325B8
+ bl BattleMusicStop
ldr r1, _08013A3C @ =gBattlescriptCurrInstr
ldr r0, _08013A40 @ =gUnknown_081D8DBE
str r0, [r1]
@@ -3144,7 +3144,7 @@ _08013D4C:
ldr r1, _08013D6C @ =gBattleMainFunc
ldr r0, _08013D70 @ =sub_8013DA8
str r0, [r1]
- ldr r1, _08013D74 @ =gUnknown_03005E94
+ ldr r1, _08013D74 @ =gCB2_AfterEvolution
ldr r0, _08013D78 @ =sub_800F808
str r0, [r1]
b _08013D96
@@ -3152,7 +3152,7 @@ _08013D4C:
_08013D68: .4byte gNoOfAllBanks
_08013D6C: .4byte gBattleMainFunc
_08013D70: .4byte sub_8013DA8
-_08013D74: .4byte gUnknown_03005E94
+_08013D74: .4byte gCB2_AfterEvolution
_08013D78: .4byte sub_800F808
_08013D7C:
ldr r0, _08013D9C @ =gBattleExecBuffer
@@ -3558,7 +3558,7 @@ _08014044:
str r0, [r2]
movs r0, 0xA5
movs r1, 0
- bl sub_801B5C0
+ bl GetMoveTarget
ldrb r1, [r7]
ldr r2, _080140EC @ =0x00016010
adds r1, r2
@@ -3646,7 +3646,7 @@ _08014138:
strb r0, [r3]
ldrh r0, [r1]
movs r1, 0
- bl sub_801B5C0
+ bl GetMoveTarget
ldrb r1, [r7]
ldr r4, _0801419C @ =0x00016010
adds r1, r4
@@ -3702,7 +3702,7 @@ _080141A0:
strb r0, [r1, 0xE]
ldrh r0, [r3]
movs r1, 0
- bl sub_801B5C0
+ bl GetMoveTarget
ldrb r1, [r7]
ldr r3, _08014214 @ =0x00016010
adds r1, r3
@@ -3740,7 +3740,7 @@ _08014218:
strh r3, [r1]
ldrh r0, [r1]
movs r1, 0
- bl sub_801B5C0
+ bl GetMoveTarget
ldr r2, _08014270 @ =0x02000000
ldrb r1, [r4]
ldr r3, _08014274 @ =0x00016010
@@ -3936,14 +3936,14 @@ _080143B6:
cmp r0, 0x1F
bne _08014404
adds r0, r2, 0
- bl sub_801E3B4
+ bl BankGetTurnOrder
lsls r0, 24
lsrs r0, 24
ldr r1, [sp]
cmp r0, r1
bcs _08014404
ldrb r0, [r4]
- bl sub_801E3B4
+ bl BankGetTurnOrder
lsls r0, 24
lsrs r0, 24
str r0, [sp]
@@ -4261,7 +4261,7 @@ _0801469A:
strb r0, [r5]
_080146AC:
ldr r4, _080146E0 @ =gBattlescriptCurrInstr
- ldr r3, _080146E4 @ =gUnknown_081D6BBC
+ ldr r3, _080146E4 @ =gBattleScriptsEffectsTable
ldr r2, _080146E8 @ =gBattleMoves
ldr r0, _080146EC @ =gCurrentMove
ldrh r1, [r0]
@@ -4288,7 +4288,7 @@ _080146CC:
bx r0
.align 2, 0
_080146E0: .4byte gBattlescriptCurrInstr
-_080146E4: .4byte gUnknown_081D6BBC
+_080146E4: .4byte gBattleScriptsEffectsTable
_080146E8: .4byte gBattleMoves
_080146EC: .4byte gCurrentMove
_080146F0: .4byte gFightStateTracker
@@ -5528,8 +5528,8 @@ _08015148: .4byte 0x00016112
_0801514C: .4byte 0x00017130
thumb_func_end bsC_8016D70
- thumb_func_start sub_8015150
-sub_8015150: @ 8015150
+ thumb_func_start GetBattleBank
+GetBattleBank: @ 8015150
push {lr}
lsls r0, 24
lsrs r0, 24
@@ -5592,10 +5592,10 @@ _080151C8:
bx r1
.align 2, 0
_080151D0: .4byte gBank1
- thumb_func_end sub_8015150
+ thumb_func_end GetBattleBank
- thumb_func_start sub_80151D4
-sub_80151D4: @ 80151D4
+ thumb_func_start PressurePPLose
+PressurePPLose: @ 80151D4
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
@@ -5695,7 +5695,7 @@ _08015286:
_08015290: .4byte gDisableStructs
_08015294: .4byte gBitTable
_08015298: .4byte gActiveBank
- thumb_func_end sub_80151D4
+ thumb_func_end PressurePPLose
thumb_func_start sub_801529C
sub_801529C: @ 801529C
diff --git a/asm/battle_3.s b/asm/battle_3.s
deleted file mode 100644
index 8f3097c3d..000000000
--- a/asm/battle_3.s
+++ /dev/null
@@ -1,12017 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start b_movescr_stack_push
-b_movescr_stack_push: @ 801582C
- push {r4,lr}
- ldr r4, _08015848 @ =0x02017110
- adds r3, r4, 0
- adds r3, 0x20
- ldrb r1, [r3]
- adds r2, r1, 0x1
- strb r2, [r3]
- lsls r1, 24
- lsrs r1, 22
- adds r1, r4
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08015848: .4byte 0x02017110
- thumb_func_end b_movescr_stack_push
-
- thumb_func_start b_movescr_stack_push_cursor
-b_movescr_stack_push_cursor: @ 801584C
- ldr r3, _08015868 @ =0x02017110
- adds r2, r3, 0
- adds r2, 0x20
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r3
- ldr r1, _0801586C @ =gBattlescriptCurrInstr
- ldr r1, [r1]
- str r1, [r0]
- bx lr
- .align 2, 0
-_08015868: .4byte 0x02017110
-_0801586C: .4byte gBattlescriptCurrInstr
- thumb_func_end b_movescr_stack_push_cursor
-
- thumb_func_start b_movescr_stack_pop_cursor
-b_movescr_stack_pop_cursor: @ 8015870
- ldr r3, _0801588C @ =gBattlescriptCurrInstr
- ldr r2, _08015890 @ =0x02017110
- adds r1, r2, 0
- adds r1, 0x20
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3]
- bx lr
- .align 2, 0
-_0801588C: .4byte gBattlescriptCurrInstr
-_08015890: .4byte 0x02017110
- thumb_func_end b_movescr_stack_pop_cursor
-
- thumb_func_start sub_8015894
-sub_8015894: @ 8015894
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- ldr r2, _080159AC @ =gBattleMons
- ldr r1, _080159B0 @ =gBattleBufferB
- ldr r5, _080159B4 @ =gActiveBank
- ldrb r3, [r5]
- lsls r0, r3, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x58
- muls r1, r3
- adds r0, r1
- adds r2, 0xC
- adds r0, r2
- ldrh r4, [r0]
- lsls r0, r3, 1
- ldr r2, _080159B8 @ =0x020160e8
- adds r0, r2
- mov r8, r0
- ldr r1, _080159BC @ =gDisableStructs
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x4]
- cmp r0, r4
- bne _080158EE
- cmp r4, 0
- beq _080158EE
- adds r0, r2, 0
- subs r0, 0xE5
- strb r3, [r0]
- ldr r0, _080159C0 @ =gCurrentMove
- strh r4, [r0]
- ldr r1, _080159C4 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080159C8 @ =gUnknown_081D9144
- str r1, [r0]
- movs r6, 0x1
-_080158EE:
- ldr r1, _080159CC @ =gLastUsedMove
- ldr r5, _080159B4 @ =gActiveBank
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- bne _0801592A
- cmp r4, 0xA5
- beq _0801592A
- ldr r1, _080159AC @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bge _0801592A
- adds r0, r2, 0
- bl CancelMultiTurnMoves
- ldr r1, _080159C4 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080159D0 @ =gUnknown_081D937C
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0801592A:
- ldr r2, _080159BC @ =gDisableStructs
- ldr r3, _080159B4 @ =gActiveBank
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x13]
- lsls r0, 28
- cmp r0, 0
- beq _08015966
- ldr r0, _080159D4 @ =gBattleMoves
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08015966
- ldr r0, _080159C0 @ =gCurrentMove
- strh r4, [r0]
- ldr r1, _080159C4 @ =gUnknown_02024C1C
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080159D8 @ =gUnknown_081D938B
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08015966:
- ldr r5, _080159B4 @ =gActiveBank
- ldrb r0, [r5]
- adds r1, r4, 0
- bl sub_8015D5C
- lsls r0, 24
- cmp r0, 0
- beq _0801598C
- ldr r0, _080159C0 @ =gCurrentMove
- strh r4, [r0]
- ldr r1, _080159C4 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080159DC @ =gUnknown_081D9464
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0801598C:
- ldr r1, _080159AC @ =gBattleMons
- ldrb r2, [r5]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _080159E4
- ldr r1, _080159E0 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x7]
- b _080159EE
- .align 2, 0
-_080159AC: .4byte gBattleMons
-_080159B0: .4byte gBattleBufferB
-_080159B4: .4byte gActiveBank
-_080159B8: .4byte 0x020160e8
-_080159BC: .4byte gDisableStructs
-_080159C0: .4byte gCurrentMove
-_080159C4: .4byte gUnknown_02024C1C
-_080159C8: .4byte gUnknown_081D9144
-_080159CC: .4byte gLastUsedMove
-_080159D0: .4byte gUnknown_081D937C
-_080159D4: .4byte gBattleMoves
-_080159D8: .4byte gUnknown_081D938B
-_080159DC: .4byte gUnknown_081D9464
-_080159E0: .4byte gEnigmaBerries
-_080159E4:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r3, r0, 24
-_080159EE:
- ldr r2, _08015A70 @ =gStringBank
- ldr r1, _08015A74 @ =gActiveBank
- ldrb r0, [r1]
- strb r0, [r2]
- ldr r7, _08015A78 @ =gBattleMons
- adds r5, r1, 0
- cmp r3, 0x1D
- bne _08015A36
- mov r0, r8
- ldrh r2, [r0]
- adds r1, r2, 0
- cmp r1, 0
- beq _08015A36
- ldr r0, _08015A7C @ =0x0000ffff
- cmp r1, r0
- beq _08015A36
- cmp r1, r4
- beq _08015A36
- ldr r0, _08015A80 @ =gCurrentMove
- strh r2, [r0]
- ldr r2, _08015A84 @ =gLastUsedItem
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- strh r0, [r2]
- ldr r1, _08015A88 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08015A8C @ =gUnknown_081D9AC2
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08015A36:
- ldr r0, _08015A90 @ =gBattleBufferB
- ldrb r2, [r5]
- lsls r1, r2, 9
- adds r0, 0x2
- adds r1, r0
- movs r0, 0x58
- muls r0, r2
- ldrb r1, [r1]
- adds r0, r1
- adds r1, r7, 0
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08015A64
- ldr r1, _08015A88 @ =gUnknown_02024C1C
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, _08015A94 @ =gUnknown_081D9369
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08015A64:
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08015A70: .4byte gStringBank
-_08015A74: .4byte gActiveBank
-_08015A78: .4byte gBattleMons
-_08015A7C: .4byte 0x0000ffff
-_08015A80: .4byte gCurrentMove
-_08015A84: .4byte gLastUsedItem
-_08015A88: .4byte gUnknown_02024C1C
-_08015A8C: .4byte gUnknown_081D9AC2
-_08015A90: .4byte gBattleBufferB
-_08015A94: .4byte gUnknown_081D9369
- thumb_func_end sub_8015894
-
- thumb_func_start sub_8015A98
-sub_8015A98: @ 8015A98
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r3, r2, 24
- lsls r1, r7, 1
- ldr r0, _08015AD8 @ =0x020160e8
- adds r1, r0
- str r1, [sp, 0x4]
- ldr r1, _08015ADC @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08015AE4
- ldr r2, _08015AE0 @ =gEnigmaBerries
- lsls r1, r7, 3
- subs r0, r1, r7
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x7]
- str r0, [sp]
- b _08015AF6
- .align 2, 0
-_08015AD8: .4byte 0x020160e8
-_08015ADC: .4byte gBattleMons
-_08015AE0: .4byte gEnigmaBerries
-_08015AE4:
- ldrh r0, [r1, 0x2E]
- str r3, [sp, 0x14]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, r7, 3
- ldr r3, [sp, 0x14]
-_08015AF6:
- ldr r0, _08015C70 @ =gStringBank
- strb r7, [r0]
- movs r0, 0
- mov r9, r0
- lsls r2, r7, 1
- str r2, [sp, 0xC]
- ldr r5, _08015C74 @ =gDisableStructs
- mov r12, r5
- ldr r0, _08015C78 @ =gBattleMons
- movs r2, 0x58
- adds r6, r7, 0
- muls r6, r2
- str r6, [sp, 0x8]
- ldr r2, _08015C7C @ =gUnknown_02024A8C
- adds r5, r6, r2
- movs r6, 0
- str r6, [sp, 0x10]
- mov r10, r0
- subs r0, r1, r7
- lsls r0, 2
- mov r8, r0
- ldr r6, _08015C80 @ =gBitTable
-_08015B22:
- ldrh r0, [r5]
- cmp r0, 0
- bne _08015B38
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08015B38
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015B38:
- ldr r0, [sp, 0x8]
- add r0, r9
- mov r1, r10
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08015B58
- movs r0, 0x2
- ands r0, r3
- cmp r0, 0
- beq _08015B58
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015B58:
- mov r1, r8
- add r1, r12
- ldrh r0, [r5]
- ldrh r1, [r1, 0x4]
- cmp r0, r1
- bne _08015B74
- movs r0, 0x4
- ands r0, r3
- cmp r0, 0
- beq _08015B74
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015B74:
- movs r0, 0x58
- adds r2, r7, 0
- muls r2, r0
- ldr r1, [sp, 0x10]
- adds r0, r1, r2
- ldr r1, _08015C7C @ =gUnknown_02024A8C
- adds r0, r1
- mov r12, r0
- ldr r1, _08015C84 @ =gLastUsedMove
- ldr r0, [sp, 0xC]
- adds r1, r0, r1
- str r1, [sp, 0x18]
- mov r1, r12
- ldrh r1, [r1]
- mov r12, r1
- ldr r0, [sp, 0x18]
- ldrh r0, [r0]
- cmp r12, r0
- bne _08015BB6
- movs r0, 0x8
- ands r0, r3
- cmp r0, 0
- beq _08015BB6
- mov r0, r10
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- bge _08015BB6
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015BB6:
- ldr r0, _08015C74 @ =gDisableStructs
- add r0, r8
- ldrb r0, [r0, 0x13]
- lsls r0, 28
- cmp r0, 0
- beq _08015BE4
- movs r0, 0x10
- ands r0, r3
- cmp r0, 0
- beq _08015BE4
- ldr r2, _08015C88 @ =gBattleMoves
- ldrh r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08015BE4
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015BE4:
- ldrh r1, [r5]
- adds r0, r7, 0
- str r3, [sp, 0x14]
- bl sub_8015D5C
- lsls r0, 24
- ldr r3, [sp, 0x14]
- cmp r0, 0
- beq _08015C06
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _08015C06
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015C06:
- ldr r1, _08015C74 @ =gDisableStructs
- mov r0, r8
- adds r2, r0, r1
- ldrb r0, [r2, 0xE]
- lsls r0, 28
- mov r12, r1
- cmp r0, 0
- beq _08015C26
- ldrh r0, [r2, 0x6]
- ldrh r1, [r5]
- cmp r0, r1
- beq _08015C26
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015C26:
- ldr r2, [sp]
- cmp r2, 0x1D
- bne _08015C48
- ldr r0, [sp, 0x4]
- ldrh r1, [r0]
- cmp r1, 0
- beq _08015C48
- ldr r0, _08015C8C @ =0x0000ffff
- cmp r1, r0
- beq _08015C48
- ldrh r2, [r5]
- cmp r1, r2
- beq _08015C48
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015C48:
- adds r6, 0x4
- adds r5, 0x2
- ldr r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x10]
- movs r1, 0x1
- add r9, r1
- mov r2, r9
- cmp r2, 0x3
- bgt _08015C5E
- b _08015B22
-_08015C5E:
- adds r0, r4, 0
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08015C70: .4byte gStringBank
-_08015C74: .4byte gDisableStructs
-_08015C78: .4byte gBattleMons
-_08015C7C: .4byte gUnknown_02024A8C
-_08015C80: .4byte gBitTable
-_08015C84: .4byte gLastUsedMove
-_08015C88: .4byte gBattleMoves
-_08015C8C: .4byte 0x0000ffff
- thumb_func_end sub_8015A98
-
- thumb_func_start sub_8015C90
-sub_8015C90: @ 8015C90
- push {r4-r6,lr}
- ldr r5, _08015CFC @ =gActiveBank
- ldrb r0, [r5]
- movs r1, 0
- movs r2, 0xFF
- bl sub_8015A98
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xF
- bne _08015D38
- ldr r0, _08015D00 @ =gProtectStructs
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08015D04 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08015D08 @ =gUnknown_081D9365
- str r1, [r0]
- ldr r0, _08015D0C @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08015D14
- ldrb r0, [r5]
- bl GetBankIdentity
- adds r4, r0, 0
- bl Random
- movs r1, 0x1
- eors r4, r1
- movs r1, 0x2
- ands r1, r0
- orrs r4, r1
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl GetBankByPlayerAI
- ldr r2, _08015D10 @ =gBattleBufferB
- ldrb r1, [r5]
- lsls r1, 9
- adds r2, 0x3
- adds r1, r2
- b _08015D48
- .align 2, 0
-_08015CFC: .4byte gActiveBank
-_08015D00: .4byte gProtectStructs
-_08015D04: .4byte gUnknown_02024C1C
-_08015D08: .4byte gUnknown_081D9365
-_08015D0C: .4byte gBattleTypeFlags
-_08015D10: .4byte gBattleBufferB
-_08015D14:
- ldrb r0, [r5]
- bl GetBankIdentity
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- ldr r2, _08015D34 @ =gBattleBufferB
- ldrb r1, [r5]
- lsls r1, 9
- adds r2, 0x3
- adds r1, r2
- b _08015D48
- .align 2, 0
-_08015D34: .4byte gBattleBufferB
-_08015D38:
- ldr r0, _08015D58 @ =gProtectStructs
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
-_08015D48:
- strb r0, [r1]
- movs r0, 0
- cmp r6, 0xF
- bne _08015D52
- movs r0, 0x1
-_08015D52:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08015D58: .4byte gProtectStructs
- thumb_func_end sub_8015C90
-
- thumb_func_start sub_8015D5C
-sub_8015D5C: @ 8015D5C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- movs r6, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r4, 0
- ldr r0, _08015DF0 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r6, r0
- bge _08015DE0
- ldr r7, _08015DF4 @ =gUnknown_02024A8C
- mov r8, r7
-_08015D86:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- adds r3, r4, 0x1
- cmp r9, r0
- beq _08015DD6
- ldr r1, _08015DF8 @ =gStatuses3
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _08015DD6
- movs r2, 0
- movs r0, 0x58
- adds r1, r4, 0
- muls r1, r0
- adds r0, r1, r7
- ldrh r0, [r0]
- cmp r5, r0
- beq _08015DCC
- mov r4, r8
- adds r0, r1, r4
-_08015DBE:
- adds r0, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- bgt _08015DD6
- ldrh r1, [r0]
- cmp r5, r1
- bne _08015DBE
-_08015DCC:
- cmp r2, 0x3
- bgt _08015DD6
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08015DD6:
- adds r4, r3, 0
- ldr r0, _08015DF0 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08015D86
-_08015DE0:
- adds r0, r6, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08015DF0: .4byte gNoOfAllBanks
-_08015DF4: .4byte gUnknown_02024A8C
-_08015DF8: .4byte gStatuses3
- thumb_func_end sub_8015D5C
-
- thumb_func_start UpdateTurnCounters
-UpdateTurnCounters: @ 8015DFC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- mov r9, r0
- ldr r1, _08015EA0 @ =gBankAttacker
- mov r2, r9
- strb r2, [r1]
- ldr r0, _08015EA4 @ =gNoOfAllBanks
- ldrb r4, [r0]
- adds r6, r1, 0
- mov r10, r0
- ldr r7, _08015EA8 @ =gBankTarget
- ldr r3, _08015EAC @ =0x02000000
- mov r12, r3
- cmp r9, r4
- bcs _08015E50
- ldr r2, _08015EB0 @ =gAbsentBankFlags
- ldrb r1, [r2]
- ldr r5, _08015EB4 @ =gBitTable
- ldr r0, [r5]
- ands r1, r0
- cmp r1, 0
- beq _08015E50
- adds r3, r6, 0
-_08015E32:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcs _08015E50
- ldrb r0, [r2]
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r5
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _08015E32
-_08015E50:
- movs r0, 0
- strb r0, [r7]
- mov r0, r10
- ldrb r4, [r0]
- cmp r4, 0
- beq _08015E8A
- ldr r2, _08015EB0 @ =gAbsentBankFlags
- ldrb r1, [r2]
- ldr r5, _08015EB4 @ =gBitTable
- ldr r0, [r5]
- ands r1, r0
- cmp r1, 0
- beq _08015E8A
- adds r3, r7, 0
-_08015E6C:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcs _08015E8A
- ldrb r0, [r2]
- ldrb r1, [r7]
- lsls r1, 2
- adds r1, r5
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _08015E6C
-_08015E8A:
- ldr r0, _08015EB8 @ =0x0001600e
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0xA
- bls _08015E96
- b _0801652A
-_08015E96:
- lsls r0, 2
- ldr r1, _08015EBC @ =_08015EC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08015EA0: .4byte gBankAttacker
-_08015EA4: .4byte gNoOfAllBanks
-_08015EA8: .4byte gBankTarget
-_08015EAC: .4byte 0x02000000
-_08015EB0: .4byte gAbsentBankFlags
-_08015EB4: .4byte gBitTable
-_08015EB8: .4byte 0x0001600e
-_08015EBC: .4byte _08015EC0
- .align 2, 0
-_08015EC0:
- .4byte _08015EEC
- .4byte _08015F74
- .4byte _08016034
- .4byte _080160F4
- .4byte _080161C8
- .4byte _08016274
- .4byte _08016324
- .4byte _080163A8
- .4byte _08016420
- .4byte _08016494
- .4byte _08016520
-_08015EEC:
- movs r5, 0
- ldr r1, _08015F0C @ =gNoOfAllBanks
- mov r10, r1
- ldrb r2, [r1]
- cmp r5, r2
- bge _08015F06
- ldr r2, _08015F10 @ =gTurnOrder
-_08015EFA:
- adds r0, r5, r2
- strb r5, [r0]
- adds r5, 0x1
- ldrb r3, [r1]
- cmp r5, r3
- blt _08015EFA
-_08015F06:
- movs r5, 0
- b _08015F54
- .align 2, 0
-_08015F0C: .4byte gNoOfAllBanks
-_08015F10: .4byte gTurnOrder
-_08015F14:
- adds r4, r5, 0x1
- adds r6, r4, 0
- ldrb r1, [r1]
- cmp r6, r1
- bge _08015F52
- ldr r7, _08016004 @ =gTurnOrder
- ldr r0, _08016008 @ =gNoOfAllBanks
- mov r10, r0
- lsls r1, r5, 24
- mov r8, r1
-_08015F28:
- adds r0, r5, r7
- ldrb r0, [r0]
- adds r1, r4, r7
- ldrb r1, [r1]
- movs r2, 0
- bl b_first_side
- lsls r0, 24
- cmp r0, 0
- beq _08015F48
- lsls r1, r4, 24
- lsrs r1, 24
- mov r2, r8
- lsrs r0, r2, 24
- bl sub_8012FBC
-_08015F48:
- adds r4, 0x1
- ldr r0, _08016008 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08015F28
-_08015F52:
- adds r5, r6, 0
-_08015F54:
- mov r1, r10
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r5, r0
- blt _08015F14
- ldr r1, _0801600C @ =0x02000000
- ldr r3, _08016010 @ =0x0001600e
- adds r2, r1, r3
- ldrb r0, [r2]
- adds r0, 0x1
- movs r3, 0
- strb r0, [r2]
- ldr r2, _08016014 @ =0x000160fc
- adds r0, r1, r2
- strb r3, [r0]
- mov r12, r1
-_08015F74:
- ldr r1, _08016014 @ =0x000160fc
- add r1, r12
- ldrb r0, [r1]
- cmp r0, 0x1
- bls _08015F80
- b _08016236
-_08015F80:
- ldr r3, _08016018 @ =gActiveBank
- mov r8, r3
- adds r6, r1, 0
- movs r7, 0
- ldr r5, _0801601C @ =gBattleTextBuff1
-_08015F8A:
- ldr r0, _08016020 @ =gBankAttacker
- ldrb r4, [r6]
- strb r4, [r0]
- mov r0, r8
- strb r4, [r0]
- ldr r0, _08016024 @ =gSideAffecting
- lsls r2, r4, 1
- adds r3, r2, r0
- ldrh r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08015FE8
- ldr r0, _08016028 @ =gSideTimer
- adds r1, r2, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- movs r4, 0xFF
- lsls r0, 24
- cmp r0, 0
- bne _08015FE8
- ldrh r0, [r3]
- ldr r2, _0801602C @ =0x0000fffe
- adds r1, r2, 0
- ands r0, r1
- strh r0, [r3]
- ldr r0, _08016030 @ =gUnknown_081D9030
- bl b_call_bc_move_exec
- movs r0, 0xFD
- strb r0, [r5]
- movs r0, 0x2
- strb r0, [r5, 0x1]
- movs r0, 0x73
- strb r0, [r5, 0x2]
- strb r7, [r5, 0x3]
- ldrb r0, [r5, 0x4]
- orrs r0, r4
- strb r0, [r5, 0x4]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08015FE8:
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- ldr r3, _0801600C @ =0x02000000
- mov r12, r3
- mov r1, r9
- cmp r1, 0
- beq _08015FFA
- b _08016532
-_08015FFA:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08015F8A
- b _08016236
- .align 2, 0
-_08016004: .4byte gTurnOrder
-_08016008: .4byte gNoOfAllBanks
-_0801600C: .4byte 0x02000000
-_08016010: .4byte 0x0001600e
-_08016014: .4byte 0x000160fc
-_08016018: .4byte gActiveBank
-_0801601C: .4byte gBattleTextBuff1
-_08016020: .4byte gBankAttacker
-_08016024: .4byte gSideAffecting
-_08016028: .4byte gSideTimer
-_0801602C: .4byte 0x0000fffe
-_08016030: .4byte gUnknown_081D9030
-_08016034:
- ldr r1, _080160CC @ =0x000160fc
- add r1, r12
- ldrb r0, [r1]
- cmp r0, 0x1
- bls _08016040
- b _08016182
-_08016040:
- adds r7, r1, 0
- movs r3, 0x2
- mov r10, r3
- movs r0, 0
- mov r8, r0
- ldr r5, _080160D0 @ =gBattleTextBuff1
-_0801604C:
- ldr r0, _080160D4 @ =gBankAttacker
- ldrb r4, [r7]
- strb r4, [r0]
- ldr r1, _080160D8 @ =gActiveBank
- strb r4, [r1]
- ldr r0, _080160DC @ =gSideAffecting
- lsls r2, r4, 1
- adds r3, r2, r0
- ldrh r1, [r3]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080160B0
- ldr r0, _080160E0 @ =gSideTimer
- adds r1, r2, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- subs r0, 0x1
- strb r0, [r1, 0x1]
- movs r6, 0xFF
- lsls r0, 24
- cmp r0, 0
- bne _080160B0
- ldrh r0, [r3]
- ldr r2, _080160E4 @ =0x0000fffd
- adds r1, r2, 0
- ands r0, r1
- strh r0, [r3]
- ldr r0, _080160E8 @ =gUnknown_081D9030
- bl b_call_bc_move_exec
- ldr r0, _080160EC @ =gBattleCommunication
- strb r4, [r0, 0x5]
- movs r0, 0xFD
- strb r0, [r5]
- mov r3, r10
- strb r3, [r5, 0x1]
- movs r0, 0x71
- strb r0, [r5, 0x2]
- mov r0, r8
- strb r0, [r5, 0x3]
- ldrb r0, [r5, 0x4]
- orrs r0, r6
- strb r0, [r5, 0x4]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080160B0:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- ldr r1, _080160F0 @ =0x02000000
- mov r12, r1
- mov r2, r9
- cmp r2, 0
- beq _080160C2
- b _08016532
-_080160C2:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0801604C
- b _08016182
- .align 2, 0
-_080160CC: .4byte 0x000160fc
-_080160D0: .4byte gBattleTextBuff1
-_080160D4: .4byte gBankAttacker
-_080160D8: .4byte gActiveBank
-_080160DC: .4byte gSideAffecting
-_080160E0: .4byte gSideTimer
-_080160E4: .4byte 0x0000fffd
-_080160E8: .4byte gUnknown_081D9030
-_080160EC: .4byte gBattleCommunication
-_080160F0: .4byte 0x02000000
-_080160F4:
- ldr r1, _0801619C @ =0x000160fc
- add r1, r12
- ldrb r0, [r1]
- cmp r0, 0x1
- bhi _08016182
- ldr r0, _080161A0 @ =gActiveBank
- mov r10, r0
- adds r7, r1, 0
- movs r1, 0
- mov r8, r1
- ldr r5, _080161A4 @ =gBattleTextBuff1
-_0801610A:
- ldr r0, _080161A8 @ =gBankAttacker
- ldrb r4, [r7]
- strb r4, [r0]
- mov r2, r10
- strb r4, [r2]
- ldr r1, _080161AC @ =gSideTimer
- lsls r3, r4, 1
- adds r0, r3, r4
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- beq _08016168
- subs r0, 0x1
- strb r0, [r1, 0x2]
- movs r6, 0xFF
- lsls r0, 24
- cmp r0, 0
- bne _08016168
- ldr r2, _080161B0 @ =gSideAffecting
- adds r2, r3, r2
- ldrh r0, [r2]
- ldr r3, _080161B4 @ =0x0000feff
- adds r1, r3, 0
- ands r0, r1
- strh r0, [r2]
- ldr r0, _080161B8 @ =gUnknown_081D9030
- bl b_call_bc_move_exec
- ldr r0, _080161BC @ =gBattleCommunication
- strb r4, [r0, 0x5]
- movs r0, 0xFD
- strb r0, [r5]
- movs r0, 0x2
- strb r0, [r5, 0x1]
- movs r0, 0x36
- strb r0, [r5, 0x2]
- mov r0, r8
- strb r0, [r5, 0x3]
- ldrb r0, [r5, 0x4]
- orrs r0, r6
- strb r0, [r5, 0x4]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016168:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- ldr r1, _080161C0 @ =0x02000000
- mov r12, r1
- mov r2, r9
- cmp r2, 0
- beq _0801617A
- b _08016532
-_0801617A:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0801610A
-_08016182:
- mov r3, r9
- cmp r3, 0
- beq _0801618A
- b _08016532
-_0801618A:
- ldr r0, _080161C4 @ =0x0001600e
- add r0, r12
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _0801619C @ =0x000160fc
- add r0, r12
- strb r3, [r0]
- b _0801652A
- .align 2, 0
-_0801619C: .4byte 0x000160fc
-_080161A0: .4byte gActiveBank
-_080161A4: .4byte gBattleTextBuff1
-_080161A8: .4byte gBankAttacker
-_080161AC: .4byte gSideTimer
-_080161B0: .4byte gSideAffecting
-_080161B4: .4byte 0x0000feff
-_080161B8: .4byte gUnknown_081D9030
-_080161BC: .4byte gBattleCommunication
-_080161C0: .4byte 0x02000000
-_080161C4: .4byte 0x0001600e
-_080161C8:
- ldr r1, _08016250 @ =0x000160fc
- add r1, r12
- ldrb r0, [r1]
- cmp r0, 0x1
- bhi _08016236
- ldr r7, _08016254 @ =gActiveBank
- adds r5, r1, 0
- ldr r6, _08016258 @ =gBankAttacker
-_080161D8:
- ldrb r4, [r5]
- strb r4, [r6]
- strb r4, [r7]
- ldr r0, _0801625C @ =gSideAffecting
- lsls r2, r4, 1
- adds r3, r2, r0
- ldrh r1, [r3]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801621C
- ldr r0, _08016260 @ =gSideTimer
- adds r1, r2, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x7]
- subs r0, 0x1
- strb r0, [r1, 0x7]
- lsls r0, 24
- cmp r0, 0
- bne _0801621C
- ldrh r0, [r3]
- ldr r2, _08016264 @ =0x0000ffdf
- adds r1, r2, 0
- ands r0, r1
- strh r0, [r3]
- ldr r0, _08016268 @ =gUnknown_081D9041
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801621C:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldr r3, _0801626C @ =0x02000000
- mov r12, r3
- mov r1, r9
- cmp r1, 0
- beq _0801622E
- b _08016532
-_0801622E:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _080161D8
-_08016236:
- mov r2, r9
- cmp r2, 0
- beq _0801623E
- b _08016532
-_0801623E:
- ldr r0, _08016270 @ =0x0001600e
- add r0, r12
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _08016250 @ =0x000160fc
- add r0, r12
- strb r2, [r0]
- b _0801652A
- .align 2, 0
-_08016250: .4byte 0x000160fc
-_08016254: .4byte gActiveBank
-_08016258: .4byte gBankAttacker
-_0801625C: .4byte gSideAffecting
-_08016260: .4byte gSideTimer
-_08016264: .4byte 0x0000ffdf
-_08016268: .4byte gUnknown_081D9041
-_0801626C: .4byte 0x02000000
-_08016270: .4byte 0x0001600e
-_08016274:
- ldr r2, _080162FC @ =0x000160fc
- add r2, r12
- ldr r1, _08016300 @ =gNoOfAllBanks
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _080162E8
- ldr r5, _08016304 @ =gActiveBank
- adds r4, r2, 0
- ldr r6, _08016308 @ =gUnknown_02024DDC
-_08016288:
- ldr r1, _0801630C @ =gTurnOrder
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r5]
- ldrb r0, [r5]
- adds r1, r0, r6
- ldrb r0, [r1]
- cmp r0, 0
- beq _080162CA
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080162CA
- ldr r1, _08016310 @ =gBattleMons
- ldrb r2, [r5]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _080162CA
- ldr r0, _08016314 @ =gBankTarget
- strb r2, [r0]
- ldr r0, _08016318 @ =gUnknown_081D939A
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080162CA:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r3, _0801631C @ =0x02000000
- mov r12, r3
- mov r1, r9
- cmp r1, 0
- beq _080162DC
- b _08016532
-_080162DC:
- ldr r1, _08016300 @ =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08016288
-_080162E8:
- mov r2, r9
- cmp r2, 0
- beq _080162F0
- b _08016532
-_080162F0:
- ldr r1, _08016320 @ =0x0001600e
- add r1, r12
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0801652A
- .align 2, 0
-_080162FC: .4byte 0x000160fc
-_08016300: .4byte gNoOfAllBanks
-_08016304: .4byte gActiveBank
-_08016308: .4byte gUnknown_02024DDC
-_0801630C: .4byte gTurnOrder
-_08016310: .4byte gBattleMons
-_08016314: .4byte gBankTarget
-_08016318: .4byte gUnknown_081D939A
-_0801631C: .4byte 0x02000000
-_08016320: .4byte 0x0001600e
-_08016324:
- ldr r3, _0801635C @ =gBattleWeather
- ldrh r2, [r3]
- movs r0, 0x7
- ands r0, r2
- cmp r0, 0
- bne _08016332
- b _080164F8
-_08016332:
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- bne _0801637E
- ldr r1, _08016360 @ =gWishFutureKnock
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _08016370
- ldr r0, _08016364 @ =0x0000fffe
- ands r0, r2
- ldr r1, _08016368 @ =0x0000fffd
- ands r0, r1
- strh r0, [r3]
- ldr r1, _0801636C @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _0801639C
- .align 2, 0
-_0801635C: .4byte gBattleWeather
-_08016360: .4byte gWishFutureKnock
-_08016364: .4byte 0x0000fffe
-_08016368: .4byte 0x0000fffd
-_0801636C: .4byte gBattleCommunication
-_08016370:
- movs r0, 0x2
- ands r0, r2
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _0801638A
- b _08016398
-_0801637E:
- movs r0, 0x2
- ands r0, r2
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _08016398
-_0801638A:
- ldr r1, _08016394 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0801639C
- .align 2, 0
-_08016394: .4byte gBattleCommunication
-_08016398:
- ldr r0, _080163A0 @ =gBattleCommunication
- strb r1, [r0, 0x5]
-_0801639C:
- ldr r0, _080163A4 @ =gUnknown_081D8F62
- b _080164EA
- .align 2, 0
-_080163A0: .4byte gBattleCommunication
-_080163A4: .4byte gUnknown_081D8F62
-_080163A8:
- ldr r3, _080163DC @ =gBattleWeather
- ldrh r2, [r3]
- movs r0, 0x18
- ands r0, r2
- cmp r0, 0
- bne _080163B6
- b _080164F8
-_080163B6:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- bne _080163F0
- ldr r1, _080163E0 @ =gWishFutureKnock
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080163F0
- ldr r0, _080163E4 @ =0x0000fff7
- ands r0, r2
- strh r0, [r3]
- ldr r1, _080163E8 @ =gBattlescriptCurrInstr
- ldr r0, _080163EC @ =gUnknown_081D8FFF
- b _080163F4
- .align 2, 0
-_080163DC: .4byte gBattleWeather
-_080163E0: .4byte gWishFutureKnock
-_080163E4: .4byte 0x0000fff7
-_080163E8: .4byte gBattlescriptCurrInstr
-_080163EC: .4byte gUnknown_081D8FFF
-_080163F0:
- ldr r1, _0801640C @ =gBattlescriptCurrInstr
- ldr r0, _08016410 @ =gUnknown_081D8F7D
-_080163F4:
- str r0, [r1]
- adds r3, r1, 0
- ldr r1, _08016414 @ =0x02000000
- ldr r0, _08016418 @ =0x000160a4
- adds r1, r0
- movs r2, 0
- movs r0, 0xC
- strb r0, [r1]
- ldr r0, _0801641C @ =gBattleCommunication
- strb r2, [r0, 0x5]
- b _080164E8
- .align 2, 0
-_0801640C: .4byte gBattlescriptCurrInstr
-_08016410: .4byte gUnknown_081D8F7D
-_08016414: .4byte 0x02000000
-_08016418: .4byte 0x000160a4
-_0801641C: .4byte gBattleCommunication
-_08016420:
- ldr r3, _08016450 @ =gBattleWeather
- ldrh r2, [r3]
- movs r0, 0x60
- ands r0, r2
- cmp r0, 0
- beq _0801647C
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- bne _08016464
- ldr r1, _08016454 @ =gWishFutureKnock
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _08016464
- ldr r0, _08016458 @ =0x0000ffdf
- ands r0, r2
- strh r0, [r3]
- ldr r1, _0801645C @ =gBattlescriptCurrInstr
- ldr r0, _08016460 @ =gUnknown_081D9016
- b _08016468
- .align 2, 0
-_08016450: .4byte gBattleWeather
-_08016454: .4byte gWishFutureKnock
-_08016458: .4byte 0x0000ffdf
-_0801645C: .4byte gBattlescriptCurrInstr
-_08016460: .4byte gUnknown_081D9016
-_08016464:
- ldr r1, _08016484 @ =gBattlescriptCurrInstr
- ldr r0, _08016488 @ =gUnknown_081D9008
-_08016468:
- str r0, [r1]
- adds r3, r1, 0
- ldr r0, [r3]
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801647C:
- ldr r2, _0801648C @ =0x02000000
- ldr r0, _08016490 @ =0x0001600e
- adds r1, r2, r0
- b _080164FE
- .align 2, 0
-_08016484: .4byte gBattlescriptCurrInstr
-_08016488: .4byte gUnknown_081D9008
-_0801648C: .4byte 0x02000000
-_08016490: .4byte 0x0001600e
-_08016494:
- ldr r3, _080164BC @ =gBattleWeather
- ldrh r2, [r3]
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080164F8
- ldr r1, _080164C0 @ =gWishFutureKnock
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080164D0
- ldr r0, _080164C4 @ =0x0000ff7f
- ands r0, r2
- strh r0, [r3]
- ldr r1, _080164C8 @ =gBattlescriptCurrInstr
- ldr r0, _080164CC @ =gUnknown_081D8FFF
- b _080164D4
- .align 2, 0
-_080164BC: .4byte gBattleWeather
-_080164C0: .4byte gWishFutureKnock
-_080164C4: .4byte 0x0000ff7f
-_080164C8: .4byte gBattlescriptCurrInstr
-_080164CC: .4byte gUnknown_081D8FFF
-_080164D0:
- ldr r1, _08016508 @ =gBattlescriptCurrInstr
- ldr r0, _0801650C @ =gUnknown_081D8F7D
-_080164D4:
- str r0, [r1]
- adds r3, r1, 0
- ldr r0, _08016510 @ =0x02000000
- ldr r1, _08016514 @ =0x000160a4
- adds r0, r1
- movs r1, 0xD
- strb r1, [r0]
- ldr r1, _08016518 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_080164E8:
- ldr r0, [r3]
-_080164EA:
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080164F8:
- ldr r2, _08016510 @ =0x02000000
- ldr r3, _0801651C @ =0x0001600e
- adds r1, r2, r3
-_080164FE:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r12, r2
- b _0801652A
- .align 2, 0
-_08016508: .4byte gBattlescriptCurrInstr
-_0801650C: .4byte gUnknown_081D8F7D
-_08016510: .4byte 0x02000000
-_08016514: .4byte 0x000160a4
-_08016518: .4byte gBattleCommunication
-_0801651C: .4byte 0x0001600e
-_08016520:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801652A:
- mov r0, r9
- cmp r0, 0
- bne _08016532
- b _08015E8A
-_08016532:
- ldr r0, _08016550 @ =gBattleMainFunc
- ldr r1, [r0]
- ldr r0, _08016554 @ =BattleTurnPassed
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08016550: .4byte gBattleMainFunc
-_08016554: .4byte BattleTurnPassed
- thumb_func_end UpdateTurnCounters
-
- thumb_func_start TurnBasedEffects
-TurnBasedEffects: @ 8016558
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r9, r0
- ldr r2, _08016578 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _0801657C @ =0x01000020
- orrs r0, r1
- str r0, [r2]
- bl _08017088
- .align 2, 0
-_08016578: .4byte gHitMarker
-_0801657C: .4byte 0x01000020
-_08016580:
- ldr r3, _080165B4 @ =gActiveBank
- ldr r4, _080165B8 @ =gBankAttacker
- ldr r1, _080165BC @ =gTurnOrder
- adds r5, r7, r2
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4]
- strb r0, [r3]
- ldr r0, _080165C0 @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _080165C4 @ =gBitTable
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- adds r6, r3, 0
- cmp r1, 0
- beq _080165C8
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- bl _08017088
- .align 2, 0
-_080165B4: .4byte gActiveBank
-_080165B8: .4byte gBankAttacker
-_080165BC: .4byte gTurnOrder
-_080165C0: .4byte gAbsentBankFlags
-_080165C4: .4byte gBitTable
-_080165C8:
- movs r5, 0xB0
- lsls r5, 9
- adds r0, r7, r5
- ldrb r0, [r0]
- cmp r0, 0x13
- bls _080165D8
- bl _08017078
-_080165D8:
- lsls r0, 2
- ldr r1, _080165E4 @ =_080165E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080165E4: .4byte _080165E8
- .align 2, 0
-_080165E8:
- .4byte _08016638
- .4byte _080166A8
- .4byte _080166D8
- .4byte _08016730
- .4byte _080167C8
- .4byte _08016828
- .4byte _080168C0
- .4byte _0801691C
- .4byte _0801697C
- .4byte _080169DC
- .4byte _08016B78
- .4byte _08016CA0
- .4byte _08016D58
- .4byte _08016E30
- .4byte _08016EFC
- .4byte _08016F20
- .4byte _08016F6C
- .4byte _08016F9C
- .4byte _08016704
- .4byte _08017064
-_08016638:
- ldr r1, _08016694 @ =gStatuses3
- ldrb r3, [r6]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _08016686
- ldr r0, _08016698 @ =gBattleMons
- movs r1, 0x58
- muls r1, r3
- adds r0, r1, r0
- ldrh r2, [r0, 0x28]
- ldrh r7, [r0, 0x2C]
- cmp r2, r7
- beq _08016686
- cmp r2, 0
- beq _08016686
- ldr r1, _0801669C @ =gBattleMoveDamage
- ldrh r0, [r0, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08016670
- movs r0, 0x1
- str r0, [r1]
-_08016670:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldr r0, _080166A0 @ =gUnknown_081D93D1
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016686:
- ldr r1, _080166A4 @ =0x02000000
- movs r0, 0xB0
- lsls r0, 9
- adds r1, r0
- bl _08017072
- .align 2, 0
-_08016694: .4byte gStatuses3
-_08016698: .4byte gBattleMons
-_0801669C: .4byte gBattleMoveDamage
-_080166A0: .4byte gUnknown_081D93D1
-_080166A4: .4byte 0x02000000
-_080166A8:
- ldrb r1, [r6]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _080166C8
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080166C8:
- ldr r1, _080166D4 @ =0x02000000
- movs r2, 0xB0
- lsls r2, 9
- adds r1, r2
- bl _08017072
- .align 2, 0
-_080166D4: .4byte 0x02000000
-_080166D8:
- ldrb r1, [r6]
- movs r0, 0x1
- movs r2, 0
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- beq _080166F2
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080166F2:
- ldr r1, _08016700 @ =0x02000000
- movs r3, 0xB0
- lsls r3, 9
- adds r1, r3
- bl _08017072
- .align 2, 0
-_08016700: .4byte 0x02000000
-_08016704:
- ldrb r1, [r6]
- movs r0, 0x1
- movs r2, 0x1
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- beq _0801671E
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801671E:
- ldr r1, _0801672C @ =0x02000000
- movs r5, 0xB0
- lsls r5, 9
- adds r1, r5
- bl _08017072
- .align 2, 0
-_0801672C: .4byte 0x02000000
-_08016730:
- ldr r0, _080167A8 @ =gStatuses3
- ldrb r2, [r6]
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801679C
- ldr r3, _080167AC @ =gBattleMons
- movs r5, 0x3
- ands r5, r1
- movs r1, 0x58
- adds r0, r5, 0
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801679C
- adds r0, r2, 0
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801679C
- ldr r0, _080167B0 @ =gBankTarget
- strb r5, [r0]
- ldr r2, _080167B4 @ =gBattleMoveDamage
- ldrb r0, [r6]
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x2C]
- lsrs r0, 3
- str r0, [r2]
- cmp r0, 0
- bne _0801677C
- movs r0, 0x1
- str r0, [r2]
-_0801677C:
- ldr r1, _080167B8 @ =0x02000000
- ldr r7, _080167BC @ =0x000160a4
- adds r0, r1, r7
- strb r5, [r0]
- ldrb r0, [r4]
- ldr r2, _080167C0 @ =0x000160a5
- adds r1, r2
- strb r0, [r1]
- ldr r0, _080167C4 @ =gUnknown_081D904B
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801679C:
- ldr r1, _080167B8 @ =0x02000000
- movs r3, 0xB0
- lsls r3, 9
- adds r1, r3
- bl _08017072
- .align 2, 0
-_080167A8: .4byte gStatuses3
-_080167AC: .4byte gBattleMons
-_080167B0: .4byte gBankTarget
-_080167B4: .4byte gBattleMoveDamage
-_080167B8: .4byte 0x02000000
-_080167BC: .4byte 0x000160a4
-_080167C0: .4byte 0x000160a5
-_080167C4: .4byte gUnknown_081D904B
-_080167C8:
- ldr r2, _08016818 @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801680A
- adds r1, r3, r2
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _0801680A
- ldr r2, _0801681C @ =gBattleMoveDamage
- ldrh r0, [r1, 0x2C]
- lsrs r0, 3
- str r0, [r2]
- cmp r0, 0
- bne _080167FA
- movs r0, 0x1
- str r0, [r2]
-_080167FA:
- ldr r0, _08016820 @ =gUnknown_081D9518
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801680A:
- ldr r1, _08016824 @ =0x02000000
- movs r5, 0xB0
- lsls r5, 9
- adds r1, r5
- bl _08017072
- .align 2, 0
-_08016818: .4byte gBattleMons
-_0801681C: .4byte gBattleMoveDamage
-_08016820: .4byte gUnknown_081D9518
-_08016824: .4byte 0x02000000
-_08016828:
- ldr r4, _080168B0 @ =gBattleMons
- ldrb r0, [r6]
- movs r7, 0x58
- mov r8, r7
- mov r2, r8
- muls r2, r0
- adds r3, r4, 0
- adds r3, 0x4C
- adds r0, r2, r3
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080168A2
- adds r1, r2, r4
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _080168A2
- ldr r5, _080168B4 @ =gBattleMoveDamage
- ldrh r0, [r1, 0x2C]
- lsrs r0, 4
- str r0, [r5]
- cmp r0, 0
- bne _0801685C
- movs r0, 0x1
- str r0, [r5]
-_0801685C:
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r2, r0, r3
- ldr r1, [r2]
- movs r4, 0xF0
- lsls r4, 4
- adds r0, r1, 0
- ands r0, r4
- cmp r0, r4
- beq _0801687C
- movs r7, 0x80
- lsls r7, 1
- adds r0, r1, r7
- str r0, [r2]
-_0801687C:
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r3
- ldr r0, [r0]
- ands r0, r4
- lsrs r0, 8
- ldr r1, [r5]
- muls r0, r1
- str r0, [r5]
- ldr r0, _080168B8 @ =gUnknown_081D9518
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080168A2:
- ldr r1, _080168BC @ =0x02000000
- movs r2, 0xB0
- lsls r2, 9
- adds r1, r2
- bl _08017072
- .align 2, 0
-_080168B0: .4byte gBattleMons
-_080168B4: .4byte gBattleMoveDamage
-_080168B8: .4byte gUnknown_081D9518
-_080168BC: .4byte 0x02000000
-_080168C0:
- ldr r2, _0801690C @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08016902
- adds r1, r3, r2
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08016902
- ldr r2, _08016910 @ =gBattleMoveDamage
- ldrh r0, [r1, 0x2C]
- lsrs r0, 3
- str r0, [r2]
- cmp r0, 0
- bne _080168F2
- movs r0, 0x1
- str r0, [r2]
-_080168F2:
- ldr r0, _08016914 @ =gUnknown_081D953A
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016902:
- ldr r1, _08016918 @ =0x02000000
- movs r3, 0xB0
- lsls r3, 9
- adds r1, r3
- b _08017072
- .align 2, 0
-_0801690C: .4byte gBattleMons
-_08016910: .4byte gBattleMoveDamage
-_08016914: .4byte gUnknown_081D953A
-_08016918: .4byte 0x02000000
-_0801691C:
- ldr r2, _0801696C @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 20
- ands r0, r1
- cmp r0, 0
- beq _08016960
- adds r1, r3, r2
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08016960
- ldr r2, _08016970 @ =gBattleMoveDamage
- ldrh r0, [r1, 0x2C]
- lsrs r0, 2
- str r0, [r2]
- cmp r0, 0
- bne _08016950
- movs r0, 0x1
- str r0, [r2]
-_08016950:
- ldr r0, _08016974 @ =gUnknown_081D9613
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016960:
- ldr r1, _08016978 @ =0x02000000
- movs r5, 0xB0
- lsls r5, 9
- adds r1, r5
- b _08017072
- .align 2, 0
-_0801696C: .4byte gBattleMons
-_08016970: .4byte gBattleMoveDamage
-_08016974: .4byte gUnknown_081D9613
-_08016978: .4byte 0x02000000
-_0801697C:
- ldr r2, _080169CC @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 21
- ands r0, r1
- cmp r0, 0
- beq _080169C0
- adds r1, r3, r2
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _080169C0
- ldr r2, _080169D0 @ =gBattleMoveDamage
- ldrh r0, [r1, 0x2C]
- lsrs r0, 2
- str r0, [r2]
- cmp r0, 0
- bne _080169B0
- movs r0, 0x1
- str r0, [r2]
-_080169B0:
- ldr r0, _080169D4 @ =gUnknown_081D9624
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080169C0:
- ldr r1, _080169D8 @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_080169CC: .4byte gBattleMons
-_080169D0: .4byte gBattleMoveDamage
-_080169D4: .4byte gUnknown_081D9624
-_080169D8: .4byte 0x02000000
-_080169DC:
- ldr r0, _08016A8C @ =gBattleMons
- mov r8, r0
- ldrb r0, [r6]
- movs r1, 0x58
- mov r10, r1
- mov r1, r10
- muls r1, r0
- mov r5, r8
- adds r5, 0x50
- adds r3, r1, r5
- ldr r2, [r3]
- movs r4, 0xE0
- lsls r4, 8
- adds r0, r2, 0
- ands r0, r4
- cmp r0, 0
- beq _08016AF6
- mov r7, r8
- adds r0, r1, r7
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08016AF6
- ldr r1, _08016A90 @ =0xffffe000
- adds r0, r2, r1
- str r0, [r3]
- ldrb r1, [r6]
- mov r0, r10
- muls r0, r1
- adds r0, r5
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _08016AB4
- ldr r2, _08016A94 @ =0x02000000
- lsls r0, r1, 1
- ldr r4, _08016A98 @ =0x00016004
- adds r0, r4
- adds r0, r2
- ldrb r1, [r0]
- ldr r3, _08016A9C @ =0x000160a4
- adds r0, r2, r3
- strb r1, [r0]
- ldrb r0, [r6]
- lsls r0, 1
- subs r3, 0x9F
- adds r0, r3
- adds r0, r2
- ldrb r1, [r0]
- ldr r5, _08016AA0 @ =0x000160a5
- adds r0, r2, r5
- strb r1, [r0]
- ldr r1, _08016AA4 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r4
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08016AA8 @ =gBattlescriptCurrInstr
- ldr r0, _08016AAC @ =gUnknown_081D95E2
- str r0, [r1]
- ldr r2, _08016AB0 @ =gBattleMoveDamage
- ldrb r0, [r6]
- mov r7, r10
- muls r7, r0
- adds r0, r7, 0
- add r0, r8
- ldrh r0, [r0, 0x2C]
- lsrs r0, 4
- str r0, [r2]
- cmp r0, 0
- bne _08016AE6
- movs r0, 0x1
- str r0, [r2]
- b _08016AE6
- .align 2, 0
-_08016A8C: .4byte gBattleMons
-_08016A90: .4byte 0xffffe000
-_08016A94: .4byte 0x02000000
-_08016A98: .4byte 0x00016004
-_08016A9C: .4byte 0x000160a4
-_08016AA0: .4byte 0x000160a5
-_08016AA4: .4byte gBattleTextBuff1
-_08016AA8: .4byte gBattlescriptCurrInstr
-_08016AAC: .4byte gUnknown_081D95E2
-_08016AB0: .4byte gBattleMoveDamage
-_08016AB4:
- ldr r1, _08016B00 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldr r2, _08016B04 @ =0x02000000
- ldrb r0, [r6]
- lsls r0, 1
- ldr r3, _08016B08 @ =0x00016004
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r6]
- lsls r0, 1
- ldr r5, _08016B0C @ =0x00016005
- adds r0, r5
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08016B10 @ =gBattlescriptCurrInstr
- ldr r0, _08016B14 @ =gUnknown_081D95F4
- str r0, [r1]
-_08016AE6:
- ldr r0, [r1]
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016AF6:
- ldr r1, _08016B04 @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_08016B00: .4byte gBattleTextBuff1
-_08016B04: .4byte 0x02000000
-_08016B08: .4byte 0x00016004
-_08016B0C: .4byte 0x00016005
-_08016B10: .4byte gBattlescriptCurrInstr
-_08016B14: .4byte gUnknown_081D95F4
-_08016B18:
- movs r0, 0x8
- negs r0, r0
- ands r4, r0
- str r4, [r2]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- mov r0, r10
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08016B68 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r1, _08016B6C @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- ldr r0, _08016B70 @ =gUnknown_081D950F
- bl b_call_bc_move_exec
- ldr r4, _08016B74 @ =gActiveBank
- ldrb r0, [r6]
- strb r0, [r4]
- ldrb r0, [r4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _08016BE0
- .align 2, 0
-_08016B68: .4byte 0xf7ffffff
-_08016B6C: .4byte gBattleCommunication
-_08016B70: .4byte gUnknown_081D950F
-_08016B74: .4byte gActiveBank
-_08016B78:
- ldr r2, _08016BF4 @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- muls r0, r1
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x70
- ands r1, r0
- adds r7, r2, 0
- cmp r1, 0
- beq _08016C82
- movs r0, 0
- strb r0, [r4]
- mov r2, r8
- ldrb r1, [r2]
- cmp r1, 0
- beq _08016BE0
- mov r10, r7
- adds r6, r4, 0
- movs r3, 0x58
- mov r8, r3
- movs r5, 0x4C
- adds r5, r7
- mov r9, r5
- str r1, [sp, 0x4]
- movs r0, 0x7
- mov r12, r0
-_08016BB2:
- ldrb r1, [r6]
- mov r3, r8
- muls r3, r1
- mov r5, r9
- adds r2, r3, r5
- ldr r4, [r2]
- adds r0, r4, 0
- mov r5, r12
- ands r0, r5
- cmp r0, 0
- beq _08016BD2
- adds r0, r3, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2B
- bne _08016B18
-_08016BD2:
- adds r0, r1, 0x1
- strb r0, [r6]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp, 0x4]
- cmp r0, r1
- bcc _08016BB2
-_08016BE0:
- ldr r2, _08016BF8 @ =gBankAttacker
- ldr r1, _08016BFC @ =gNoOfAllBanks
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- beq _08016C00
- movs r2, 0x2
- mov r9, r2
- b _0801707E
- .align 2, 0
-_08016BF4: .4byte gBattleMons
-_08016BF8: .4byte gBankAttacker
-_08016BFC: .4byte gNoOfAllBanks
-_08016C00:
- ldr r5, _08016C38 @ =gActiveBank
- ldrb r0, [r5]
- strb r0, [r2]
- ldr r2, _08016C3C @ =gBattleMons
- ldrb r0, [r5]
- movs r7, 0x58
- adds r1, r0, 0
- muls r1, r7
- adds r6, r2, 0
- adds r6, 0x50
- adds r1, r6
- ldr r0, [r1]
- subs r0, 0x10
- str r0, [r1]
- ldrb r0, [r5]
- bl sub_8015660
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08016C44
- ldrb r0, [r5]
- bl CancelMultiTurnMoves
- ldr r1, _08016C40 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08016C78
- .align 2, 0
-_08016C38: .4byte gActiveBank
-_08016C3C: .4byte gBattleMons
-_08016C40: .4byte gBattleCommunication
-_08016C44:
- ldrb r3, [r5]
- adds r0, r3, 0
- muls r0, r7
- adds r2, r0, r6
- ldr r0, [r2]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- beq _08016C6C
- ldr r0, _08016C68 @ =gBattleCommunication
- strb r4, [r0, 0x5]
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r2]
- b _08016C78
- .align 2, 0
-_08016C68: .4byte gBattleCommunication
-_08016C6C:
- ldr r1, _08016C94 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- adds r0, r3, 0
- bl CancelMultiTurnMoves
-_08016C78:
- ldr r0, _08016C98 @ =gUnknown_081D957E
- bl b_call_bc_move_exec
- movs r3, 0x1
- mov r9, r3
-_08016C82:
- mov r5, r9
- cmp r5, 0x2
- bne _08016C8A
- b _08017078
-_08016C8A:
- ldr r1, _08016C9C @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_08016C94: .4byte gBattleCommunication
-_08016C98: .4byte gUnknown_081D957E
-_08016C9C: .4byte 0x02000000
-_08016CA0:
- ldr r1, _08016CD8 @ =gBattleMons
- ldrb r0, [r6]
- movs r7, 0x58
- muls r0, r7
- adds r5, r1, 0
- adds r5, 0x50
- adds r2, r0, r5
- ldr r1, [r2]
- movs r4, 0xC0
- lsls r4, 4
- adds r0, r1, 0
- ands r0, r4
- cmp r0, 0
- beq _08016D3C
- ldr r3, _08016CDC @ =0xfffffc00
- adds r0, r1, r3
- str r0, [r2]
- ldrb r0, [r6]
- bl sub_8015660
- lsls r0, 24
- cmp r0, 0
- beq _08016CE0
- ldrb r0, [r6]
- bl CancelMultiTurnMoves
- b _08016D3C
- .align 2, 0
-_08016CD8: .4byte gBattleMons
-_08016CDC: .4byte 0xfffffc00
-_08016CE0:
- ldrb r0, [r6]
- muls r0, r7
- adds r2, r0, r5
- ldr r1, [r2]
- adds r0, r1, 0
- ands r0, r4
- cmp r0, 0
- bne _08016D3C
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _08016D3C
- ldr r0, _08016D48 @ =0xffffefff
- ands r1, r0
- str r1, [r2]
- ldrb r0, [r6]
- muls r0, r7
- adds r0, r5
- ldr r0, [r0]
- movs r4, 0x7
- ands r0, r4
- cmp r0, 0
- bne _08016D3C
- ldr r1, _08016D4C @ =gBattleCommunication
- movs r0, 0x47
- strb r0, [r1, 0x3]
- movs r0, 0x1
- movs r1, 0
- bl sub_801E3EC
- ldrb r0, [r6]
- muls r0, r7
- adds r0, r5
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _08016D32
- ldr r0, _08016D50 @ =gUnknown_081D9587
- bl b_call_bc_move_exec
-_08016D32:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016D3C:
- ldr r1, _08016D54 @ =0x02000000
- movs r5, 0xB0
- lsls r5, 9
- adds r1, r5
- b _08017072
- .align 2, 0
-_08016D48: .4byte 0xffffefff
-_08016D4C: .4byte gBattleCommunication
-_08016D50: .4byte gUnknown_081D9587
-_08016D54: .4byte 0x02000000
-_08016D58:
- ldr r0, _08016DD4 @ =gDisableStructs
- ldrb r3, [r6]
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r5, r1, r0
- ldrb r1, [r5, 0xB]
- lsls r1, 28
- adds r7, r0, 0
- cmp r1, 0
- beq _08016E1E
- movs r4, 0
- ldr r2, _08016DD8 @ =gBattleMons
- movs r0, 0x58
- adds r1, r3, 0
- muls r1, r0
- adds r2, 0xC
- adds r1, r2
- ldrh r0, [r5, 0x4]
- ldrh r1, [r1]
- cmp r0, r1
- beq _08016DAC
- mov r12, r7
- mov r8, r2
- adds r5, r6, 0
- movs r3, 0x58
-_08016D8C:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08016DAC
- ldrb r2, [r5]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r12
- lsls r0, r4, 1
- muls r2, r3
- adds r0, r2
- add r0, r8
- ldrh r1, [r1, 0x4]
- ldrh r0, [r0]
- cmp r1, r0
- bne _08016D8C
-_08016DAC:
- cmp r4, 0x4
- bne _08016DDC
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- movs r1, 0
- strh r1, [r0, 0x4]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r1, 0xB]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xB]
- b _08016E1E
- .align 2, 0
-_08016DD4: .4byte gDisableStructs
-_08016DD8: .4byte gBattleMons
-_08016DDC:
- ldrb r0, [r6]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- adds r2, r7
- ldrb r3, [r2, 0xB]
- lsls r1, r3, 28
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0xB]
- adds r2, r1, 0
- cmp r2, 0
- bne _08016E1E
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x4]
- ldr r0, _08016E28 @ =gUnknown_081D9148
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016E1E:
- ldr r1, _08016E2C @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_08016E28: .4byte gUnknown_081D9148
-_08016E2C: .4byte 0x02000000
-_08016E30:
- ldr r3, _08016E7C @ =gDisableStructs
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r2, r0, r3
- ldrb r5, [r2, 0xE]
- lsls r4, r5, 28
- cmp r4, 0
- beq _08016EE8
- ldr r0, _08016E80 @ =gBattleMons
- mov r8, r0
- ldrb r0, [r2, 0xC]
- lsls r0, 1
- movs r7, 0x58
- muls r1, r7
- adds r0, r1
- mov r1, r8
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- ldrh r1, [r2, 0x6]
- cmp r0, r1
- beq _08016E84
- movs r0, 0
- strh r0, [r2, 0x6]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0xE]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xE]
- b _08016EE8
- .align 2, 0
-_08016E7C: .4byte gDisableStructs
-_08016E80: .4byte gBattleMons
-_08016E84:
- lsrs r1, r4, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r4, 0x10
- negs r4, r4
- adds r0, r4, 0
- ands r0, r5
- orrs r0, r1
- strb r0, [r2, 0xE]
- cmp r1, 0
- beq _08016EB8
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- muls r1, r7
- ldrb r0, [r0, 0xC]
- adds r1, r0
- mov r0, r8
- adds r0, 0x24
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _08016EE8
-_08016EB8:
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x6]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0xE]
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0xE]
- ldr r0, _08016EF4 @ =gUnknown_081D914F
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016EE8:
- ldr r1, _08016EF8 @ =0x02000000
- movs r2, 0xB0
- lsls r2, 9
- adds r1, r2
- b _08017072
- .align 2, 0
-_08016EF4: .4byte gUnknown_081D914F
-_08016EF8: .4byte 0x02000000
-_08016EFC:
- ldr r0, _08016F1C @ =gStatuses3
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x18
- ands r0, r2
- cmp r0, 0
- beq _08016F14
- adds r0, r2, 0
- subs r0, 0x8
- str r0, [r1]
-_08016F14:
- movs r1, 0xB0
- lsls r1, 9
- b _08017070
- .align 2, 0
-_08016F1C: .4byte gStatuses3
-_08016F20:
- ldr r2, _08016F60 @ =gDisableStructs
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r3, r0, r2
- ldrb r2, [r3, 0x12]
- lsls r1, r2, 28
- cmp r1, 0
- beq _08016F5A
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x12]
- cmp r1, 0
- bne _08016F5A
- ldr r0, _08016F64 @ =gStatuses3
- ldrb r2, [r6]
- lsls r2, 2
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08016F68 @ =0xfffffdff
- ands r0, r1
- str r0, [r2]
-_08016F5A:
- movs r1, 0xB0
- lsls r1, 9
- b _08017070
- .align 2, 0
-_08016F60: .4byte gDisableStructs
-_08016F64: .4byte gStatuses3
-_08016F68: .4byte 0xfffffdff
-_08016F6C:
- ldr r2, _08016F98 @ =gDisableStructs
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r3, r0, r2
- ldrb r2, [r3, 0x13]
- lsls r1, r2, 28
- cmp r1, 0
- beq _08016F92
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x13]
-_08016F92:
- movs r1, 0xB0
- lsls r1, 9
- b _08017070
- .align 2, 0
-_08016F98: .4byte gDisableStructs
-_08016F9C:
- ldr r4, _0801704C @ =gStatuses3
- ldrb r0, [r6]
- lsls r0, 2
- adds r2, r0, r4
- ldr r1, [r2]
- movs r3, 0xC0
- lsls r3, 5
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _08017042
- ldr r5, _08017050 @ =0xfffff800
- adds r0, r1, r5
- str r0, [r2]
- ldrb r2, [r6]
- lsls r0, r2, 2
- adds r0, r4
- ldr r0, [r0]
- ands r0, r3
- cmp r0, 0
- bne _08017042
- ldr r3, _08017054 @ =gBattleMons
- movs r5, 0x58
- adds r1, r2, 0
- muls r1, r5
- adds r4, r3, 0
- adds r4, 0x4C
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _08017042
- adds r0, r1, r3
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x48
- beq _08017042
- cmp r0, 0xF
- beq _08017042
- adds r0, r2, 0
- bl sub_8025A44
- lsls r0, 24
- cmp r0, 0
- bne _08017042
- ldrb r0, [r6]
- bl CancelMultiTurnMoves
- bl Random
- ldrb r1, [r6]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x2
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r6]
- bl MarkBufferBankForExecution
- ldr r1, _08017058 @ =gEffectBank
- ldrb r0, [r6]
- strb r0, [r1]
- ldr r0, _0801705C @ =gUnknown_081D964C
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08017042:
- ldr r1, _08017060 @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_0801704C: .4byte gStatuses3
-_08017050: .4byte 0xfffff800
-_08017054: .4byte gBattleMons
-_08017058: .4byte gEffectBank
-_0801705C: .4byte gUnknown_081D964C
-_08017060: .4byte 0x02000000
-_08017064:
- movs r1, 0xB0
- lsls r1, 9
- add r1, r10
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08017084 @ =0x00016001
-_08017070:
- add r1, r10
-_08017072:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08017078:
- mov r0, r9
- cmp r0, 0
- beq _08017088
-_0801707E:
- mov r0, r9
- b _080170B8
- .align 2, 0
-_08017084: .4byte 0x00016001
-_08017088:
- ldr r7, _080170C8 @ =0x02000000
- ldr r2, _080170CC @ =0x00016001
- adds r0, r7, r2
- ldr r1, _080170D0 @ =gNoOfAllBanks
- ldrb r0, [r0]
- mov r10, r7
- mov r8, r1
- ldrb r1, [r1]
- cmp r0, r1
- bcs _080170AC
- movs r3, 0xB0
- lsls r3, 9
- adds r0, r7, r3
- ldrb r0, [r0]
- cmp r0, 0x13
- bhi _080170AC
- bl _08016580
-_080170AC:
- ldr r0, _080170D4 @ =gHitMarker
- ldr r1, [r0]
- ldr r2, _080170D8 @ =0xfeffffdf
- ands r1, r2
- str r1, [r0]
- movs r0, 0
-_080170B8:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080170C8: .4byte 0x02000000
-_080170CC: .4byte 0x00016001
-_080170D0: .4byte gNoOfAllBanks
-_080170D4: .4byte gHitMarker
-_080170D8: .4byte 0xfeffffdf
- thumb_func_end TurnBasedEffects
-
- thumb_func_start sub_80170DC
-sub_80170DC: @ 80170DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, _08017108 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _0801710C @ =0x01000020
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08017110 @ =0x02000000
- ldr r3, _08017114 @ =0x00016110
- adds r0, r1, r3
- ldrb r0, [r0]
- mov r8, r1
- cmp r0, 0
- beq _08017118
- cmp r0, 0x1
- bne _08017104
- b _08017258
-_08017104:
- b _08017380
- .align 2, 0
-_08017108: .4byte gHitMarker
-_0801710C: .4byte 0x01000020
-_08017110: .4byte 0x02000000
-_08017114: .4byte 0x00016110
-_08017118:
- ldr r2, _0801715C @ =0x00016111
- add r2, r8
- ldr r0, _08017160 @ =gNoOfAllBanks
- ldrb r1, [r2]
- mov r9, r0
- ldrb r0, [r0]
- cmp r1, r0
- bcc _0801712A
- b _08017248
-_0801712A:
- ldr r4, _08017164 @ =gActiveBank
- adds r5, r2, 0
- ldr r1, _08017168 @ =gWishFutureKnock
- mov r12, r1
- movs r2, 0x8
- add r2, r12
- mov r10, r2
- mov r7, r12
- adds r7, 0x18
- ldr r6, _0801716C @ =gBattleTextBuff1
-_0801713E:
- ldrb r3, [r5]
- strb r3, [r4]
- ldr r0, _08017170 @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _08017174 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08017178
- adds r0, r3, 0x1
- strb r0, [r5]
- b _0801723C
- .align 2, 0
-_0801715C: .4byte 0x00016111
-_08017160: .4byte gNoOfAllBanks
-_08017164: .4byte gActiveBank
-_08017168: .4byte gWishFutureKnock
-_0801716C: .4byte gBattleTextBuff1
-_08017170: .4byte gAbsentBankFlags
-_08017174: .4byte gBitTable
-_08017178:
- adds r0, r3, 0x1
- strb r0, [r5]
- ldr r1, _080171B4 @ =gWishFutureKnock
- ldrb r0, [r4]
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- beq _0801723C
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _0801723C
- ldr r1, _080171B8 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801723C
- lsls r0, r2, 1
- adds r0, r7
- ldrh r0, [r0]
- cmp r0, 0xF8
- bne _080171C0
- ldr r0, _080171BC @ =gBattleCommunication
- strb r3, [r0, 0x5]
- b _080171C6
- .align 2, 0
-_080171B4: .4byte gWishFutureKnock
-_080171B8: .4byte gBattleMons
-_080171BC: .4byte gBattleCommunication
-_080171C0:
- ldr r1, _08017220 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_080171C6:
- movs r0, 0xFD
- strb r0, [r6]
- movs r0, 0x2
- strb r0, [r6, 0x1]
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- strb r0, [r6, 0x2]
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r6, 0x3]
- movs r0, 0xFF
- strb r0, [r6, 0x4]
- ldr r3, _08017224 @ =gBankTarget
- ldrb r0, [r4]
- strb r0, [r3]
- ldr r1, _08017228 @ =gBankAttacker
- mov r0, r12
- adds r0, 0x4
- ldrb r2, [r4]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _0801722C @ =gBattleMoveDamage
- ldrb r0, [r4]
- lsls r0, 2
- add r0, r10
- ldr r0, [r0]
- str r0, [r1]
- ldr r2, _08017230 @ =gSpecialStatuses
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r0, r2
- ldr r1, _08017234 @ =0x0000ffff
- str r1, [r0]
- ldr r0, _08017238 @ =gUnknown_081D92D7
- b _08017364
- .align 2, 0
-_08017220: .4byte gBattleCommunication
-_08017224: .4byte gBankTarget
-_08017228: .4byte gBankAttacker
-_0801722C: .4byte gBattleMoveDamage
-_08017230: .4byte gSpecialStatuses
-_08017234: .4byte 0x0000ffff
-_08017238: .4byte gUnknown_081D92D7
-_0801723C:
- ldrb r0, [r5]
- mov r3, r9
- ldrb r3, [r3]
- cmp r0, r3
- bcs _08017248
- b _0801713E
-_08017248:
- ldr r1, _0801729C @ =0x00016110
- add r1, r8
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080172A0 @ =0x00016111
- add r0, r8
- strb r2, [r0]
-_08017258:
- ldr r2, _080172A0 @ =0x00016111
- add r2, r8
- ldr r0, _080172A4 @ =gNoOfAllBanks
- ldrb r1, [r2]
- mov r9, r0
- ldrb r0, [r0]
- cmp r1, r0
- bcc _0801726A
- b _08017380
-_0801726A:
- ldr r5, _080172A8 @ =gActiveBank
- adds r3, r2, 0
- ldr r4, _080172AC @ =gBattleTextBuff1
- ldr r7, _080172B0 @ =gDisableStructs
-_08017272:
- ldr r2, _080172B4 @ =gBankAttacker
- ldr r1, _080172B8 @ =gTurnOrder
- ldrb r0, [r3]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- strb r0, [r5]
- ldr r0, _080172BC @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _080172C0 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080172C4
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- b _08017374
- .align 2, 0
-_0801729C: .4byte 0x00016110
-_080172A0: .4byte 0x00016111
-_080172A4: .4byte gNoOfAllBanks
-_080172A8: .4byte gActiveBank
-_080172AC: .4byte gBattleTextBuff1
-_080172B0: .4byte gDisableStructs
-_080172B4: .4byte gBankAttacker
-_080172B8: .4byte gTurnOrder
-_080172BC: .4byte gAbsentBankFlags
-_080172C0: .4byte gBitTable
-_080172C4:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- ldr r6, _08017334 @ =gStatuses3
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r6
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08017374
- movs r0, 0xFD
- strb r0, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0xF]
- lsls r0, 28
- lsrs r0, 28
- strb r0, [r4, 0x4]
- movs r0, 0xFF
- strb r0, [r4, 0x5]
- ldrb r2, [r5]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r4, r0, r7
- ldrb r3, [r4, 0xF]
- lsls r1, r3, 28
- cmp r1, 0
- bne _08017348
- lsls r2, 2
- adds r2, r6
- ldr r0, [r2]
- movs r1, 0x21
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- ldr r3, _08017338 @ =gBattleMoveDamage
- ldr r2, _0801733C @ =gBattleMons
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- str r0, [r3]
- ldr r1, _08017340 @ =gBattlescriptCurrInstr
- ldr r0, _08017344 @ =gUnknown_081D9202
- b _08017360
- .align 2, 0
-_08017334: .4byte gStatuses3
-_08017338: .4byte gBattleMoveDamage
-_0801733C: .4byte gBattleMons
-_08017340: .4byte gBattlescriptCurrInstr
-_08017344: .4byte gUnknown_081D9202
-_08017348:
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r2, 0x10
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- orrs r0, r1
- strb r0, [r4, 0xF]
- ldr r1, _0801736C @ =gBattlescriptCurrInstr
- ldr r0, _08017370 @ =gUnknown_081D921D
-_08017360:
- str r0, [r1]
- ldr r0, [r1]
-_08017364:
- bl b_call_bc_move_exec
- movs r0, 0x1
- b _0801738C
- .align 2, 0
-_0801736C: .4byte gBattlescriptCurrInstr
-_08017370: .4byte gUnknown_081D921D
-_08017374:
- ldrb r0, [r3]
- mov r1, r9
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08017380
- b _08017272
-_08017380:
- ldr r2, _0801739C @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _080173A0 @ =0xfeffffdf
- ands r0, r1
- str r0, [r2]
- movs r0, 0
-_0801738C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801739C: .4byte gHitMarker
-_080173A0: .4byte 0xfeffffdf
- thumb_func_end sub_80170DC
-
- thumb_func_start sub_80173A4
-sub_80173A4: @ 80173A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _080173C0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080173F8
- b _080176AC
- .align 2, 0
-_080173C0: .4byte gBattleTypeFlags
-_080173C4:
- ldr r0, _080173D4 @ =gUnknown_081D8C72
- bl b_call_bc_move_exec
- ldr r1, _080173D8 @ =0x00016059
- add r1, r10
- movs r0, 0x2
- b _080173E8
- .align 2, 0
-_080173D4: .4byte gUnknown_081D8C72
-_080173D8: .4byte 0x00016059
-_080173DC:
- ldr r0, _080173F0 @ =gUnknown_081D8C7B
- bl b_call_bc_move_exec
- ldr r1, _080173F4 @ =0x00016059
- add r1, r8
- movs r0, 0x5
-_080173E8:
- strb r0, [r1]
-_080173EA:
- movs r0, 0x1
- b _080176AE
- .align 2, 0
-_080173F0: .4byte gUnknown_081D8C7B
-_080173F4: .4byte 0x00016059
-_080173F8:
- ldr r0, _08017414 @ =0x02000000
- mov r9, r0
-_080173FC:
- ldr r0, _08017418 @ =0x00016059
- add r0, r9
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _08017408
- b _080176A0
-_08017408:
- lsls r0, 2
- ldr r1, _0801741C @ =_08017420
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08017414: .4byte 0x02000000
-_08017418: .4byte 0x00016059
-_0801741C: .4byte _08017420
- .align 2, 0
-_08017420:
- .4byte _08017440
- .4byte _08017490
- .4byte _08017534
- .4byte _0801757C
- .4byte _0801758E
- .4byte _080175FC
- .4byte _08017638
- .4byte _080176A0
-_08017440:
- ldr r1, _08017508 @ =0x0001605a
- add r1, r9
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0801750C @ =0x00016059
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r5, 0
- ldr r0, _08017510 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r5, r0
- bge _08017490
- ldr r6, _08017514 @ =gAbsentBankFlags
-_0801745E:
- ldrb r0, [r6]
- ldr r2, _08017518 @ =gBitTable
- lsls r1, r5, 2
- adds r1, r2
- ldr r4, [r1]
- ands r0, r4
- cmp r0, 0
- beq _08017486
- lsls r0, r5, 24
- lsrs r0, 24
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- bne _08017486
- ldrb r0, [r6]
- bics r0, r4
- strb r0, [r6]
-_08017486:
- adds r5, 0x1
- ldr r0, _08017510 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801745E
-_08017490:
- ldr r1, _0801751C @ =0x02000000
- mov r9, r1
- ldr r0, _08017520 @ =gBank1
- mov r12, r0
- ldr r1, _08017524 @ =gBankTarget
- mov r8, r1
- mov r10, r9
- ldr r5, _08017508 @ =0x0001605a
- add r5, r9
- ldr r7, _08017528 @ =gBattleMons
- ldr r6, _0801752C @ =0x00016113
- add r6, r9
-_080174A8:
- ldrb r0, [r5]
- mov r1, r8
- strb r0, [r1]
- mov r1, r12
- strb r0, [r1]
- ldrb r3, [r5]
- movs r0, 0x58
- muls r0, r3
- adds r0, r7
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _080174EA
- ldrb r2, [r6]
- ldr r4, _08017518 @ =gBitTable
- ldr r1, _08017530 @ =gBattlePartyID
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _080174EA
- ldr r0, _08017514 @ =gAbsentBankFlags
- ldrb r1, [r0]
- lsls r0, r3, 2
- adds r0, r4
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080174EA
- b _080173C4
-_080174EA:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldr r1, _08017510 @ =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _080174A8
- ldr r1, _0801750C @ =0x00016059
- add r1, r9
- movs r0, 0x3
- strb r0, [r1]
- b _080176A0
- .align 2, 0
-_08017508: .4byte 0x0001605a
-_0801750C: .4byte 0x00016059
-_08017510: .4byte gNoOfAllBanks
-_08017514: .4byte gAbsentBankFlags
-_08017518: .4byte gBitTable
-_0801751C: .4byte 0x02000000
-_08017520: .4byte gBank1
-_08017524: .4byte gBankTarget
-_08017528: .4byte gBattleMons
-_0801752C: .4byte 0x00016113
-_08017530: .4byte gBattlePartyID
-_08017534:
- ldr r0, _0801755C @ =gBank1
- ldrb r0, [r0]
- bl sub_8015740
- ldr r2, _08017560 @ =0x02000000
- ldr r0, _08017564 @ =0x0001605a
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _08017568 @ =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _08017570
- ldr r0, _0801756C @ =0x00016059
- adds r1, r2, r0
- movs r0, 0x3
- b _0801769C
- .align 2, 0
-_0801755C: .4byte gBank1
-_08017560: .4byte 0x02000000
-_08017564: .4byte 0x0001605a
-_08017568: .4byte gNoOfAllBanks
-_0801756C: .4byte 0x00016059
-_08017570:
- ldr r0, _08017578 @ =0x00016059
- adds r1, r2, r0
- movs r0, 0x1
- b _0801769C
- .align 2, 0
-_08017578: .4byte 0x00016059
-_0801757C:
- ldr r1, _080175D8 @ =0x0001605a
- add r1, r9
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080175DC @ =0x00016059
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0801758E:
- ldr r7, _080175E0 @ =gBank1
- ldr r6, _080175E4 @ =gBankTarget
- ldr r1, _080175E8 @ =0x02000000
- mov r8, r1
- ldr r3, _080175D8 @ =0x0001605a
- add r3, r8
- ldr r5, _080175EC @ =gBattleMons
- ldr r4, _080175F0 @ =gBitTable
-_0801759E:
- ldrb r0, [r3]
- strb r0, [r6]
- strb r0, [r7]
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r0, r5
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _080175C4
- ldr r0, _080175F4 @ =gAbsentBankFlags
- ldrb r1, [r0]
- lsls r0, r2, 2
- adds r0, r4
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080175C4
- b _080173DC
-_080175C4:
- adds r0, r2, 0x1
- strb r0, [r3]
- ldr r1, _080175F8 @ =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _0801759E
- b _08017612
- .align 2, 0
-_080175D8: .4byte 0x0001605a
-_080175DC: .4byte 0x00016059
-_080175E0: .4byte gBank1
-_080175E4: .4byte gBankTarget
-_080175E8: .4byte 0x02000000
-_080175EC: .4byte gBattleMons
-_080175F0: .4byte gBitTable
-_080175F4: .4byte gAbsentBankFlags
-_080175F8: .4byte gNoOfAllBanks
-_080175FC:
- ldr r0, _0801761C @ =0x0001605a
- add r0, r9
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _08017620 @ =gNoOfAllBanks
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r0]
- cmp r1, r0
- bne _08017628
-_08017612:
- ldr r1, _08017624 @ =0x00016059
- add r1, r9
- movs r0, 0x6
- strb r0, [r1]
- b _080176A0
- .align 2, 0
-_0801761C: .4byte 0x0001605a
-_08017620: .4byte gNoOfAllBanks
-_08017624: .4byte 0x00016059
-_08017628:
- ldr r1, _08017634 @ =0x00016059
- add r1, r9
- movs r0, 0x4
- strb r0, [r1]
- b _080176A0
- .align 2, 0
-_08017634: .4byte 0x00016059
-_08017638:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08017652
- b _080173EA
-_08017652:
- str r0, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08017668
- b _080173EA
-_08017668:
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1
- bl sub_801A02C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0801767C
- b _080173EA
-_0801767C:
- str r0, [sp]
- movs r0, 0x6
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08017692
- b _080173EA
-_08017692:
- ldr r2, _080176C0 @ =0x02000000
- ldr r0, _080176C4 @ =0x00016059
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
-_0801769C:
- strb r0, [r1]
- mov r9, r2
-_080176A0:
- ldr r0, _080176C4 @ =0x00016059
- add r0, r9
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _080176AC
- b _080173FC
-_080176AC:
- movs r0, 0
-_080176AE:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080176C0: .4byte 0x02000000
-_080176C4: .4byte 0x00016059
- thumb_func_end sub_80173A4
-
- thumb_func_start b_clear_atk_up_if_hit_flag_unless_enraged
-b_clear_atk_up_if_hit_flag_unless_enraged: @ 80176C8
- push {r4-r6,lr}
- movs r3, 0
- ldr r0, _08017708 @ =gNoOfAllBanks
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r3, r0
- bge _08017700
- ldr r4, _0801770C @ =gChosenMovesByBanks
- movs r6, 0x80
- lsls r6, 16
- ldr r2, _08017710 @ =gUnknown_02024AD0
-_080176DE:
- ldr r1, [r2]
- adds r0, r1, 0
- ands r0, r6
- cmp r0, 0
- beq _080176F4
- ldrh r0, [r4]
- cmp r0, 0x63
- beq _080176F4
- ldr r0, _08017714 @ =0xff7fffff
- ands r1, r0
- str r1, [r2]
-_080176F4:
- adds r4, 0x2
- adds r2, 0x58
- adds r3, 0x1
- ldrb r0, [r5]
- cmp r3, r0
- blt _080176DE
-_08017700:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08017708: .4byte gNoOfAllBanks
-_0801770C: .4byte gChosenMovesByBanks
-_08017710: .4byte gUnknown_02024AD0
-_08017714: .4byte 0xff7fffff
- thumb_func_end b_clear_atk_up_if_hit_flag_unless_enraged
-
- thumb_func_start sub_8017718
-sub_8017718: @ 8017718
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- movs r0, 0
- mov r9, r0
- ldr r1, _08017734 @ =0x02016090
- mov r10, r1
- ldr r2, _08017738 @ =0xfffe9f70
- add r2, r10
- mov r8, r2
- b _08017746
- .align 2, 0
-_08017734: .4byte 0x02016090
-_08017738: .4byte 0xfffe9f70
-_0801773C:
- mov r4, r9
- cmp r4, 0
- beq _08017746
- bl _08017FAC
-_08017746:
- ldr r0, _08017760 @ =0x000160e7
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0xE
- bls _08017754
- bl _08017F9E
-_08017754:
- lsls r0, 2
- ldr r1, _08017764 @ =_08017768
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08017760: .4byte 0x000160e7
-_08017764: .4byte _08017768
- .align 2, 0
-_08017768:
- .4byte _080177A4
- .4byte _080177E4
- .4byte _08017920
- .4byte _080179D8
- .4byte _08017A50
- .4byte _08017AC8
- .4byte _08017B1C
- .4byte _08017B98
- .4byte _08017C1C
- .4byte _08017C60
- .4byte _08017D3C
- .4byte _08017DC0
- .4byte _08017E5C
- .4byte _08017F48
- .4byte _08017F9E
-_080177A4:
- ldr r1, _080177D0 @ =gBattleMons
- ldr r3, _080177D4 @ =gBankAttacker
- ldrb r2, [r3]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _080177D8 @ =0xfdffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _080177DC @ =gStatuses3
- ldrb r2, [r3]
- lsls r2, 2
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _080177E0 @ =0xffffbfff
- ands r0, r1
- str r0, [r2]
- bl _08017F94
- .align 2, 0
-_080177D0: .4byte gBattleMons
-_080177D4: .4byte gBankAttacker
-_080177D8: .4byte 0xfdffffff
-_080177DC: .4byte gStatuses3
-_080177E0: .4byte 0xffffbfff
-_080177E4:
- ldr r7, _0801784C @ =gBattleMons
- ldr r4, _08017850 @ =gBankAttacker
- ldrb r1, [r4]
- movs r5, 0x58
- adds r0, r1, 0
- muls r0, r5
- adds r6, r7, 0
- adds r6, 0x4C
- adds r0, r6
- ldr r0, [r0]
- movs r2, 0x7
- mov r8, r2
- ands r0, r2
- cmp r0, 0
- bne _08017804
- b _08017D90
-_08017804:
- adds r0, r1, 0
- bl sub_8025A44
- lsls r0, 24
- cmp r0, 0
- beq _08017864
- ldrb r0, [r4]
- adds r2, r0, 0
- muls r2, r5
- adds r2, r6
- ldr r0, [r2]
- movs r1, 0x8
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- ldrb r0, [r4]
- adds r2, r0, 0
- muls r2, r5
- adds r0, r7, 0
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08017854 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _08017858 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- ldr r1, _0801785C @ =gBattlescriptCurrInstr
- ldr r0, _08017860 @ =gUnknown_081D94FB
- str r0, [r1]
- movs r4, 0x2
- mov r9, r4
- b _08017D90
- .align 2, 0
-_0801784C: .4byte gBattleMons
-_08017850: .4byte gBankAttacker
-_08017854: .4byte 0xf7ffffff
-_08017858: .4byte gBattleCommunication
-_0801785C: .4byte gBattlescriptCurrInstr
-_08017860: .4byte gUnknown_081D94FB
-_08017864:
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r0, r1, r7
- adds r0, 0x20
- ldrb r0, [r0]
- movs r3, 0x1
- cmp r0, 0x30
- bne _08017878
- movs r3, 0x2
-_08017878:
- adds r2, r1, r6
- ldr r1, [r2]
- adds r0, r1, 0
- mov r7, r8
- ands r0, r7
- cmp r0, r3
- bcs _08017890
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- b _08017894
-_08017890:
- subs r0, r1, r3
- str r0, [r2]
-_08017894:
- ldr r2, _080178D8 @ =gBattleMons
- ldr r0, _080178DC @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r4, [r0]
- movs r0, 0x7
- ands r4, r0
- cmp r4, 0
- beq _080178F0
- ldr r0, _080178E0 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xAD
- bne _080178B8
- b _08017D90
-_080178B8:
- cmp r0, 0xD6
- bne _080178BE
- b _08017D90
-_080178BE:
- ldr r1, _080178E4 @ =gBattlescriptCurrInstr
- ldr r0, _080178E8 @ =gUnknown_081D94EE
- str r0, [r1]
- ldr r2, _080178EC @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x2
- mov r9, r0
- b _08017D90
- .align 2, 0
-_080178D8: .4byte gBattleMons
-_080178DC: .4byte gBankAttacker
-_080178E0: .4byte gCurrentMove
-_080178E4: .4byte gBattlescriptCurrInstr
-_080178E8: .4byte gUnknown_081D94EE
-_080178EC: .4byte gHitMarker
-_080178F0:
- adds r2, 0x50
- adds r2, r1, r2
- ldr r0, [r2]
- ldr r1, _08017910 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r0, _08017914 @ =gBattleCommunication
- strb r4, [r0, 0x5]
- ldr r1, _08017918 @ =gBattlescriptCurrInstr
- ldr r0, _0801791C @ =gUnknown_081D94FB
- str r0, [r1]
- movs r1, 0x2
- b _08017D8E
- .align 2, 0
-_08017910: .4byte 0xf7ffffff
-_08017914: .4byte gBattleCommunication
-_08017918: .4byte gBattlescriptCurrInstr
-_0801791C: .4byte gUnknown_081D94FB
-_08017920:
- ldr r1, _0801797C @ =gBattleMons
- ldr r7, _08017980 @ =gBankAttacker
- ldrb r0, [r7]
- movs r6, 0x58
- muls r0, r6
- adds r5, r1, 0
- adds r5, 0x4C
- adds r0, r5
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0801793C
- b _08017F94
-_0801793C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _080179A8
- ldr r2, _08017984 @ =gBattleMoves
- ldr r0, _08017988 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7D
- beq _08017998
- ldr r1, _0801798C @ =gBattlescriptCurrInstr
- ldr r0, _08017990 @ =gUnknown_081D9545
- str r0, [r1]
- ldr r2, _08017994 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- str r0, [r2]
- b _080179C8
- .align 2, 0
-_0801797C: .4byte gBattleMons
-_08017980: .4byte gBankAttacker
-_08017984: .4byte gBattleMoves
-_08017988: .4byte gCurrentMove
-_0801798C: .4byte gBattlescriptCurrInstr
-_08017990: .4byte gUnknown_081D9545
-_08017994: .4byte gHitMarker
-_08017998:
- ldr r2, _080179A0 @ =0x02000000
- ldr r7, _080179A4 @ =0x000160e7
- adds r1, r2, r7
- b _08017D96
- .align 2, 0
-_080179A0: .4byte 0x02000000
-_080179A4: .4byte 0x000160e7
-_080179A8:
- ldrb r0, [r7]
- adds r2, r0, 0
- muls r2, r6
- adds r2, r5
- ldr r0, [r2]
- movs r1, 0x21
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _080179CC @ =gBattlescriptCurrInstr
- ldr r0, _080179D0 @ =gUnknown_081D9552
- str r0, [r1]
- ldr r0, _080179D4 @ =gBattleCommunication
- strb r4, [r0, 0x5]
-_080179C8:
- movs r0, 0x2
- b _08017E3C
- .align 2, 0
-_080179CC: .4byte gBattlescriptCurrInstr
-_080179D0: .4byte gUnknown_081D9552
-_080179D4: .4byte gBattleCommunication
-_080179D8:
- ldr r1, _08017A30 @ =gBattleMons
- ldr r0, _08017A34 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x36
- beq _080179EE
- b _08017D90
-_080179EE:
- ldr r0, _08017A38 @ =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x18]
- lsls r0, 31
- cmp r0, 0
- bne _08017A02
- b _08017D90
-_08017A02:
- adds r0, r2, 0
- bl CancelMultiTurnMoves
- ldr r2, _08017A3C @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08017A40 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
- ldr r1, _08017A44 @ =gBattlescriptCurrInstr
- ldr r0, _08017A48 @ =gUnknown_081D9977
- str r0, [r1]
- ldr r2, _08017A4C @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r2, 0x1
- mov r9, r2
- b _08017D90
- .align 2, 0
-_08017A30: .4byte gBattleMons
-_08017A34: .4byte gBankAttacker
-_08017A38: .4byte gDisableStructs
-_08017A3C: .4byte gHitMarker
-_08017A40: .4byte gBattleCommunication
-_08017A44: .4byte gBattlescriptCurrInstr
-_08017A48: .4byte gUnknown_081D9977
-_08017A4C: .4byte gBattleMoveFlags
-_08017A50:
- ldr r1, _08017AA4 @ =gBattleMons
- ldr r3, _08017AA8 @ =gBankAttacker
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 15
- ands r0, r1
- cmp r0, 0
- beq _08017A9C
- ldr r0, _08017AAC @ =0xffbfffff
- ands r1, r0
- str r1, [r2]
- ldr r2, _08017AB0 @ =gDisableStructs
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x19]
- ldrb r0, [r3]
- bl CancelMultiTurnMoves
- ldr r1, _08017AB4 @ =gBattlescriptCurrInstr
- ldr r0, _08017AB8 @ =gUnknown_081D7956
- str r0, [r1]
- ldr r2, _08017ABC @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r7, 0x1
- mov r9, r7
-_08017A9C:
- ldr r2, _08017AC0 @ =0x02000000
- ldr r0, _08017AC4 @ =0x000160e7
- adds r1, r2, r0
- b _08017D96
- .align 2, 0
-_08017AA4: .4byte gBattleMons
-_08017AA8: .4byte gBankAttacker
-_08017AAC: .4byte 0xffbfffff
-_08017AB0: .4byte gDisableStructs
-_08017AB4: .4byte gBattlescriptCurrInstr
-_08017AB8: .4byte gUnknown_081D7956
-_08017ABC: .4byte gHitMarker
-_08017AC0: .4byte 0x02000000
-_08017AC4: .4byte 0x000160e7
-_08017AC8:
- ldr r1, _08017B08 @ =gBattleMons
- ldr r3, _08017B0C @ =gBankAttacker
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08017AE2
- b _08017D90
-_08017AE2:
- movs r0, 0x9
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- ldr r0, _08017B10 @ =gProtectStructs
- ldrb r2, [r3]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldrb r0, [r3]
- bl CancelMultiTurnMoves
- ldr r1, _08017B14 @ =gBattlescriptCurrInstr
- ldr r0, _08017B18 @ =gUnknown_081D9573
- b _08017D7E
- .align 2, 0
-_08017B08: .4byte gBattleMons
-_08017B0C: .4byte gBankAttacker
-_08017B10: .4byte gProtectStructs
-_08017B14: .4byte gBattlescriptCurrInstr
-_08017B18: .4byte gUnknown_081D9573
-_08017B1C:
- ldr r0, _08017B74 @ =gDisableStructs
- ldr r3, _08017B78 @ =gBankAttacker
- ldrb r2, [r3]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r0, _08017B7C @ =gCurrentMove
- ldrh r1, [r1, 0x4]
- ldrh r0, [r0]
- cmp r1, r0
- beq _08017B36
- b _08017D90
-_08017B36:
- cmp r1, 0
- bne _08017B3C
- b _08017D90
-_08017B3C:
- ldr r0, _08017B80 @ =gProtectStructs
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x1]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldr r0, _08017B84 @ =0x02000000
- ldrb r1, [r3]
- ldr r7, _08017B88 @ =0x00016003
- adds r0, r7
- strb r1, [r0]
- ldrb r0, [r3]
- bl CancelMultiTurnMoves
- ldr r1, _08017B8C @ =gBattlescriptCurrInstr
- ldr r0, _08017B90 @ =gUnknown_081D9139
- str r0, [r1]
- ldr r2, _08017B94 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x1
- mov r9, r0
- b _08017D90
- .align 2, 0
-_08017B74: .4byte gDisableStructs
-_08017B78: .4byte gBankAttacker
-_08017B7C: .4byte gCurrentMove
-_08017B80: .4byte gProtectStructs
-_08017B84: .4byte 0x02000000
-_08017B88: .4byte 0x00016003
-_08017B8C: .4byte gBattlescriptCurrInstr
-_08017B90: .4byte gUnknown_081D9139
-_08017B94: .4byte gHitMarker
-_08017B98:
- ldr r0, _08017BF4 @ =gDisableStructs
- ldr r4, _08017BF8 @ =gBankAttacker
- ldrb r3, [r4]
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x13]
- lsls r0, 28
- cmp r0, 0
- beq _08017BEC
- ldr r2, _08017BFC @ =gBattleMoves
- ldr r0, _08017C00 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08017BEC
- ldr r0, _08017C04 @ =gProtectStructs
- lsls r2, r3, 4
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldrb r0, [r4]
- bl CancelMultiTurnMoves
- ldr r1, _08017C08 @ =gBattlescriptCurrInstr
- ldr r0, _08017C0C @ =gUnknown_081D938F
- str r0, [r1]
- ldr r2, _08017C10 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r7, 0x1
- mov r9, r7
-_08017BEC:
- ldr r2, _08017C14 @ =0x02000000
- ldr r0, _08017C18 @ =0x000160e7
- adds r1, r2, r0
- b _08017D96
- .align 2, 0
-_08017BF4: .4byte gDisableStructs
-_08017BF8: .4byte gBankAttacker
-_08017BFC: .4byte gBattleMoves
-_08017C00: .4byte gCurrentMove
-_08017C04: .4byte gProtectStructs
-_08017C08: .4byte gBattlescriptCurrInstr
-_08017C0C: .4byte gUnknown_081D938F
-_08017C10: .4byte gHitMarker
-_08017C14: .4byte 0x02000000
-_08017C18: .4byte 0x000160e7
-_08017C1C:
- ldr r4, _08017C4C @ =gBankAttacker
- ldrb r0, [r4]
- ldr r1, _08017C50 @ =gCurrentMove
- ldrh r1, [r1]
- bl sub_8015D5C
- lsls r0, 24
- cmp r0, 0
- bne _08017C30
- b _08017D90
-_08017C30:
- ldr r0, _08017C54 @ =gProtectStructs
- ldrb r2, [r4]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r4]
- bl CancelMultiTurnMoves
- ldr r1, _08017C58 @ =gBattlescriptCurrInstr
- ldr r0, _08017C5C @ =gUnknown_081D9459
- b _08017D7E
- .align 2, 0
-_08017C4C: .4byte gBankAttacker
-_08017C50: .4byte gCurrentMove
-_08017C54: .4byte gProtectStructs
-_08017C58: .4byte gBattlescriptCurrInstr
-_08017C5C: .4byte gUnknown_081D9459
-_08017C60:
- ldr r7, _08017CAC @ =gBattleMons
- ldr r5, _08017CB0 @ =gBankAttacker
- ldrb r0, [r5]
- movs r6, 0x58
- muls r0, r6
- adds r4, r7, 0
- adds r4, 0x50
- adds r2, r0, r4
- ldr r1, [r2]
- movs r3, 0x7
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _08017C7E
- b _08017F94
-_08017C7E:
- subs r0, r1, 0x1
- str r0, [r2]
- ldrb r0, [r5]
- muls r0, r6
- adds r0, r4
- ldr r0, [r0]
- ands r0, r3
- cmp r0, 0
- beq _08017D24
- bl Random
- movs r1, 0x1
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- beq _08017CB8
- ldr r1, _08017CB4 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
- bl b_movescr_stack_push_cursor
- b _08017D02
- .align 2, 0
-_08017CAC: .4byte gBattleMons
-_08017CB0: .4byte gBankAttacker
-_08017CB4: .4byte gBattleCommunication
-_08017CB8:
- ldr r0, _08017D08 @ =gBattleCommunication
- movs r4, 0x1
- strb r1, [r0, 0x5]
- ldr r1, _08017D0C @ =gBankTarget
- ldrb r0, [r5]
- strb r0, [r1]
- ldrb r0, [r5]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r7
- movs r0, 0x28
- str r0, [sp]
- str r2, [sp, 0x4]
- ldrb r0, [r5]
- str r0, [sp, 0x8]
- ldrb r0, [r5]
- str r0, [sp, 0xC]
- adds r0, r1, 0
- movs r2, 0x1
- movs r3, 0
- bl CalculateBaseDamage
- ldr r1, _08017D10 @ =gBattleMoveDamage
- str r0, [r1]
- ldr r0, _08017D14 @ =gProtectStructs
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- orrs r0, r4
- strb r0, [r1, 0x1]
- ldr r2, _08017D18 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
-_08017D02:
- ldr r1, _08017D1C @ =gBattlescriptCurrInstr
- ldr r0, _08017D20 @ =gUnknown_081D9595
- b _08017D2C
- .align 2, 0
-_08017D08: .4byte gBattleCommunication
-_08017D0C: .4byte gBankTarget
-_08017D10: .4byte gBattleMoveDamage
-_08017D14: .4byte gProtectStructs
-_08017D18: .4byte gHitMarker
-_08017D1C: .4byte gBattlescriptCurrInstr
-_08017D20: .4byte gUnknown_081D9595
-_08017D24:
- bl b_movescr_stack_push_cursor
- ldr r1, _08017D34 @ =gBattlescriptCurrInstr
- ldr r0, _08017D38 @ =gUnknown_081D95D4
-_08017D2C:
- str r0, [r1]
- movs r7, 0x1
- b _08017F8E
- .align 2, 0
-_08017D34: .4byte gBattlescriptCurrInstr
-_08017D38: .4byte gUnknown_081D95D4
-_08017D3C:
- ldr r1, _08017DA0 @ =gBattleMons
- ldr r4, _08017DA4 @ =gBankAttacker
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08017D90
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- cmp r1, 0
- bne _08017D90
- ldr r0, _08017DA8 @ =gProtectStructs
- ldrb r2, [r4]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl CancelMultiTurnMoves
- ldr r1, _08017DAC @ =gBattlescriptCurrInstr
- ldr r0, _08017DB0 @ =gUnknown_081D9566
-_08017D7E:
- str r0, [r1]
- ldr r2, _08017DB4 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r1, 0x1
-_08017D8E:
- mov r9, r1
-_08017D90:
- ldr r2, _08017DB8 @ =0x02000000
- ldr r4, _08017DBC @ =0x000160e7
- adds r1, r2, r4
-_08017D96:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r8, r2
- b _08017F9E
- .align 2, 0
-_08017DA0: .4byte gBattleMons
-_08017DA4: .4byte gBankAttacker
-_08017DA8: .4byte gProtectStructs
-_08017DAC: .4byte gBattlescriptCurrInstr
-_08017DB0: .4byte gUnknown_081D9566
-_08017DB4: .4byte gHitMarker
-_08017DB8: .4byte 0x02000000
-_08017DBC: .4byte 0x000160e7
-_08017DC0:
- ldr r1, _08017DFC @ =gBattleMons
- ldr r4, _08017E00 @ =gBankAttacker
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0xF0
- lsls r0, 12
- ands r1, r0
- cmp r1, 0
- bne _08017DDC
- b _08017F94
-_08017DDC:
- lsrs r0, r1, 16
- bl CountTrailingZeroBits
- ldr r1, _08017E04 @ =0x02000000
- ldr r7, _08017E08 @ =0x00016003
- adds r1, r7
- strb r0, [r1]
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08017E0C
- bl b_movescr_stack_push_cursor
- b _08017E34
- .align 2, 0
-_08017DFC: .4byte gBattleMons
-_08017E00: .4byte gBankAttacker
-_08017E04: .4byte 0x02000000
-_08017E08: .4byte 0x00016003
-_08017E0C:
- ldr r0, _08017E44 @ =gUnknown_081D9608
- bl b_movescr_stack_push
- ldr r2, _08017E48 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- ldr r0, _08017E4C @ =gProtectStructs
- ldrb r2, [r4]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x1]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r4]
- bl CancelMultiTurnMoves
-_08017E34:
- ldr r1, _08017E50 @ =gBattlescriptCurrInstr
- ldr r0, _08017E54 @ =gUnknown_081D95FB
- str r0, [r1]
- movs r0, 0x1
-_08017E3C:
- mov r9, r0
- ldr r1, _08017E58 @ =0x02000000
- mov r8, r1
- b _08017F94
- .align 2, 0
-_08017E44: .4byte gUnknown_081D9608
-_08017E48: .4byte gHitMarker
-_08017E4C: .4byte gProtectStructs
-_08017E50: .4byte gBattlescriptCurrInstr
-_08017E54: .4byte gUnknown_081D95FB
-_08017E58: .4byte 0x02000000
-_08017E5C:
- ldr r1, _08017E98 @ =gBattleMons
- ldr r6, _08017E9C @ =gBankAttacker
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r1, 0x50
- adds r3, r0, r1
- ldr r2, [r3]
- movs r4, 0xC0
- lsls r4, 2
- adds r0, r2, 0
- ands r0, r4
- cmp r0, 0
- bne _08017E7A
- b _08017F94
-_08017E7A:
- ldr r7, _08017EA0 @ =0xffffff00
- adds r0, r2, r7
- str r0, [r3]
- ldrb r0, [r6]
- muls r0, r5
- adds r1, r0, r1
- ldr r2, [r1]
- adds r0, r2, 0
- ands r0, r4
- cmp r0, 0
- beq _08017EAC
- ldr r1, _08017EA4 @ =gBattlescriptCurrInstr
- ldr r0, _08017EA8 @ =gUnknown_081D90A7
- b _08017F38
- .align 2, 0
-_08017E98: .4byte gBattleMons
-_08017E9C: .4byte gBankAttacker
-_08017EA0: .4byte 0xffffff00
-_08017EA4: .4byte gBattlescriptCurrInstr
-_08017EA8: .4byte gUnknown_081D90A7
-_08017EAC:
- ldr r0, _08017F0C @ =0xffffefff
- ands r2, r0
- str r2, [r1]
- ldr r2, _08017F10 @ =gTakenDmg
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0
- beq _08017F34
- ldr r1, _08017F14 @ =gCurrentMove
- movs r0, 0x75
- strh r0, [r1]
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- lsls r0, 1
- mov r1, r10
- str r0, [r1]
- ldr r4, _08017F18 @ =gBankTarget
- ldr r1, _08017F1C @ =gTakenDmgBanks
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r0, _08017F20 @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _08017F24 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08017EFE
- movs r0, 0x75
- movs r1, 0x1
- bl sub_801B5C0
- strb r0, [r4]
-_08017EFE:
- ldr r1, _08017F28 @ =gBattlescriptCurrInstr
- ldr r0, _08017F2C @ =gUnknown_081D90B2
- str r0, [r1]
- ldr r2, _08017F30 @ =0x02000000
- mov r8, r2
- b _08017F3A
- .align 2, 0
-_08017F0C: .4byte 0xffffefff
-_08017F10: .4byte gTakenDmg
-_08017F14: .4byte gCurrentMove
-_08017F18: .4byte gBankTarget
-_08017F1C: .4byte gTakenDmgBanks
-_08017F20: .4byte gAbsentBankFlags
-_08017F24: .4byte gBitTable
-_08017F28: .4byte gBattlescriptCurrInstr
-_08017F2C: .4byte gUnknown_081D90B2
-_08017F30: .4byte 0x02000000
-_08017F34:
- ldr r1, _08017F40 @ =gBattlescriptCurrInstr
- ldr r0, _08017F44 @ =gUnknown_081D90F1
-_08017F38:
- str r0, [r1]
-_08017F3A:
- movs r4, 0x1
- mov r9, r4
- b _08017F94
- .align 2, 0
-_08017F40: .4byte gBattlescriptCurrInstr
-_08017F44: .4byte gUnknown_081D90F1
-_08017F48:
- ldr r1, _08017FEC @ =gBattleMons
- ldr r0, _08017FF0 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r4, r0, r1
- ldr r3, [r4]
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _08017F94
- ldr r2, _08017FF4 @ =gBattleMoves
- ldr r0, _08017FF8 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7D
- bne _08017F8C
- movs r0, 0x21
- negs r0, r0
- ands r3, r0
- str r3, [r4]
- bl b_movescr_stack_push_cursor
- ldr r1, _08017FFC @ =gBattlescriptCurrInstr
- ldr r0, _08018000 @ =gUnknown_081D9552
- str r0, [r1]
- ldr r1, _08018004 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_08017F8C:
- movs r7, 0x2
-_08017F8E:
- mov r9, r7
- ldr r0, _08018008 @ =0x02000000
- mov r8, r0
-_08017F94:
- ldr r1, _0801800C @ =0x000160e7
- add r1, r8
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08017F9E:
- ldr r0, _0801800C @ =0x000160e7
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0xE
- beq _08017FAC
- bl _0801773C
-_08017FAC:
- mov r1, r9
- cmp r1, 0x2
- bne _08017FD8
- ldr r4, _08018010 @ =gActiveBank
- ldr r0, _08017FF0 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r4]
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _08018014 @ =gUnknown_02024ACC
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08017FD8:
- mov r0, r9
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08017FEC: .4byte gBattleMons
-_08017FF0: .4byte gBankAttacker
-_08017FF4: .4byte gBattleMoves
-_08017FF8: .4byte gCurrentMove
-_08017FFC: .4byte gBattlescriptCurrInstr
-_08018000: .4byte gUnknown_081D9552
-_08018004: .4byte gBattleCommunication
-_08018008: .4byte 0x02000000
-_0801800C: .4byte 0x000160e7
-_08018010: .4byte gActiveBank
-_08018014: .4byte gUnknown_02024ACC
- thumb_func_end sub_8017718
-
- thumb_func_start sub_8018018
-sub_8018018: @ 8018018
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r3, r4, 0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- ldr r0, _08018044 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08018048
- movs r0, 0
- b _08018198
- .align 2, 0
-_08018044: .4byte gBattleTypeFlags
-_08018048:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080180D4
- adds r0, r4, 0
- bl sub_803FC34
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- ldr r1, _080180CC @ =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _0801806E
- ldr r2, _080180D0 @ =gPlayerParty
- mov r8, r2
-_0801806E:
- adds r0, r7, 0
- bl sub_803FBFC
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 1
- adds r5, r0, r6
- adds r0, r5, 0x3
- cmp r5, r0
- bge _080180BA
- adds r7, r0, 0
-_08018084:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080180B4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _080180B4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _080180BA
-_080180B4:
- adds r5, 0x1
- cmp r5, r7
- blt _08018084
-_080180BA:
- movs r1, 0
- lsls r0, r6, 1
- adds r0, r6
- adds r0, 0x3
- cmp r5, r0
- bne _080180C8
- movs r1, 0x1
-_080180C8:
- adds r0, r1, 0
- b _08018198
- .align 2, 0
-_080180CC: .4byte gEnemyParty
-_080180D0: .4byte gPlayerParty
-_080180D4:
- adds r0, r3, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08018100
- movs r0, 0x1
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x3
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _080180FC @ =gEnemyParty
- mov r8, r2
- b _08018118
- .align 2, 0
-_080180FC: .4byte gEnemyParty
-_08018100:
- movs r0, 0
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x2
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080181A8 @ =gPlayerParty
- mov r8, r0
-_08018118:
- mov r1, r10
- cmp r1, 0x6
- bne _08018128
- ldr r1, _080181AC @ =gBattlePartyID
- lsls r0, r7, 1
- adds r0, r1
- ldrb r0, [r0]
- mov r10, r0
-_08018128:
- mov r2, r9
- cmp r2, 0x6
- bne _08018138
- ldr r1, _080181AC @ =gBattlePartyID
- lsls r0, r6, 1
- adds r0, r1
- ldrb r0, [r0]
- mov r9, r0
-_08018138:
- movs r5, 0
-_0801813A:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0801818A
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _0801818A
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0801818A
- cmp r5, r10
- beq _0801818A
- cmp r5, r9
- beq _0801818A
- ldr r1, _080181B0 @ =0x02000000
- ldr r2, _080181B4 @ =0x00016068
- adds r0, r7, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r5, r0
- beq _0801818A
- adds r0, r6, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r5, r0
- bne _08018190
-_0801818A:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0801813A
-_08018190:
- movs r0, 0
- cmp r5, 0x6
- bne _08018198
- movs r0, 0x1
-_08018198:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080181A8: .4byte gPlayerParty
-_080181AC: .4byte gBattlePartyID
-_080181B0: .4byte 0x02000000
-_080181B4: .4byte 0x00016068
- thumb_func_end sub_8018018
-
- thumb_func_start castform_switch
-castform_switch: @ 80181B8
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r1, _08018228 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r4, r0, r1
- ldrh r1, [r4]
- ldr r0, _0801822C @ =SPECIES_CASTFORM
- cmp r1, r0
- bne _0801825C
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3B
- bne _0801825C
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- beq _0801825C
- str r5, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0801820A
- str r5, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08018230
-_0801820A:
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0
- beq _08018230
- adds r1, r4, 0
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0
- beq _08018230
- strb r5, [r2]
- strb r5, [r1]
- movs r0, 0x1
- b _08018314
- .align 2, 0
-_08018228: .4byte gBattleMons
-_0801822C: .4byte SPECIES_CASTFORM
-_08018230:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0801825C
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08018260
-_0801825C:
- movs r0, 0
- b _08018314
-_08018260:
- ldr r1, _0801831C @ =gBattleWeather
- ldrh r0, [r1]
- movs r2, 0xE7
- ands r2, r0
- adds r4, r1, 0
- cmp r2, 0
- bne _0801828E
- ldr r1, _08018320 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r3, r1, 0
- adds r3, 0x21
- ldrb r0, [r3]
- cmp r0, 0
- beq _0801828E
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0
- beq _0801828E
- strb r2, [r3]
- strb r2, [r1]
- movs r5, 0x1
-_0801828E:
- ldrh r1, [r4]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _080182BA
- ldr r1, _08018320 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r2, r1, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0xA
- beq _080182BA
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0xA
- beq _080182BA
- movs r0, 0xA
- strb r0, [r2]
- strb r0, [r1]
- movs r5, 0x2
-_080182BA:
- ldrh r1, [r4]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080182E6
- ldr r1, _08018320 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r2, r1, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0xB
- beq _080182E6
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0xB
- beq _080182E6
- movs r0, 0xB
- strb r0, [r2]
- strb r0, [r1]
- movs r5, 0x3
-_080182E6:
- ldrh r1, [r4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08018312
- ldr r1, _08018320 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r2, r1, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0xF
- beq _08018312
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0xF
- beq _08018312
- movs r0, 0xF
- strb r0, [r2]
- strb r0, [r1]
- movs r5, 0x4
-_08018312:
- adds r0, r5, 0
-_08018314:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0801831C: .4byte gBattleWeather
-_08018320: .4byte gBattleMons
- thumb_func_end castform_switch
-
- thumb_func_start AbilityBattleEffects
-AbilityBattleEffects: @ 8018324
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- ldr r4, [sp, 0x48]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0
- mov r9, r0
- ldr r5, _08018380 @ =gBankAttacker
- ldr r1, _08018384 @ =gNoOfAllBanks
- ldrb r0, [r5]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08018360
- mov r1, r10
- strb r1, [r5]
-_08018360:
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08018390
- ldr r1, _08018388 @ =gBattlePartyID
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0801838C @ =gPlayerParty
- b _080183A0
- .align 2, 0
-_08018380: .4byte gBankAttacker
-_08018384: .4byte gNoOfAllBanks
-_08018388: .4byte gBattlePartyID
-_0801838C: .4byte gPlayerParty
-_08018390:
- ldr r1, _080183D0 @ =gBattlePartyID
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080183D4 @ =gEnemyParty
-_080183A0:
- adds r7, r1, r0
- ldr r5, _080183D8 @ =gBankTarget
- ldr r1, _080183DC @ =gNoOfAllBanks
- ldrb r0, [r5]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080183B2
- mov r2, r10
- strb r2, [r5]
-_080183B2:
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080183E4
- ldr r1, _080183D0 @ =gBattlePartyID
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080183E0 @ =gPlayerParty
- b _080183F4
- .align 2, 0
-_080183D0: .4byte gBattlePartyID
-_080183D4: .4byte gEnemyParty
-_080183D8: .4byte gBankTarget
-_080183DC: .4byte gNoOfAllBanks
-_080183E0: .4byte gPlayerParty
-_080183E4:
- ldr r1, _08018444 @ =gBattlePartyID
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08018448 @ =gEnemyParty
-_080183F4:
- adds r5, r1, r0
- adds r0, r7, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- adds r0, r7, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x10]
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x14]
- ldr r0, _0801844C @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08018436
- bl _08019F92
-_08018436:
- mov r3, r8
- cmp r3, 0
- beq _08018454
- ldr r0, _08018450 @ =gLastUsedAbility
- strb r3, [r0]
- mov r8, r0
- b _0801846A
- .align 2, 0
-_08018444: .4byte gBattlePartyID
-_08018448: .4byte gEnemyParty
-_0801844C: .4byte gBattleTypeFlags
-_08018450: .4byte gLastUsedAbility
-_08018454:
- ldr r2, _08018474 @ =gLastUsedAbility
- ldr r1, _08018478 @ =gBattleMons
- movs r0, 0x58
- mov r5, r10
- muls r5, r0
- adds r0, r5, 0
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r2]
- mov r8, r2
-_0801846A:
- cmp r4, 0
- beq _0801847C
- adds r3, r4, 0
- b _08018480
- .align 2, 0
-_08018474: .4byte gLastUsedAbility
-_08018478: .4byte gBattleMons
-_0801847C:
- ldr r0, _08018494 @ =gCurrentMove
- ldrh r3, [r0]
-_08018480:
- ldr r1, _08018498 @ =0x02000000
- ldr r2, _0801849C @ =0x0001601c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r7, r1, 0
- cmp r0, 0
- beq _080184A0
- movs r4, 0x3F
- ands r4, r0
- b _080184AC
- .align 2, 0
-_08018494: .4byte gCurrentMove
-_08018498: .4byte 0x02000000
-_0801849C: .4byte 0x0001601c
-_080184A0:
- ldr r1, _080184C0 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x2]
-_080184AC:
- ldr r5, [sp, 0x4]
- cmp r5, 0x13
- bls _080184B6
- bl _08019F76
-_080184B6:
- lsls r0, r5, 2
- ldr r1, _080184C4 @ =_080184C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080184C0: .4byte gBattleMoves
-_080184C4: .4byte _080184C8
- .align 2, 0
-_080184C8:
- .4byte _08018518
- .4byte _08018814
- .4byte _08018A40
- .4byte _08018AD8
- .4byte _08018CF0
- .4byte _08019448
- .4byte _080197B4
- .4byte _08019804
- .4byte _08019880
- .4byte _080198FC
- .4byte _08019B1C
- .4byte _08019940
- .4byte _08019B60
- .4byte _08019BBC
- .4byte _08019C18
- .4byte _08019D18
- .4byte _08019D5C
- .4byte _08019DB8
- .4byte _08019F44
- .4byte _08019CD4
-_08018518:
- ldr r2, _0801854C @ =gBankAttacker
- ldr r0, _08018550 @ =gNoOfAllBanks
- ldrb r1, [r2]
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r1, r0
- bcc _0801852A
- mov r1, r10
- strb r1, [r2]
-_0801852A:
- mov r2, r8
- ldrb r0, [r2]
- cmp r0, 0x2D
- bne _08018534
- b _080186B8
-_08018534:
- cmp r0, 0x2D
- bgt _08018564
- cmp r0, 0xD
- bne _0801853E
- b _080187DC
-_0801853E:
- cmp r0, 0xD
- bgt _08018554
- cmp r0, 0x2
- bne _08018548
- b _08018680
-_08018548:
- bl _08019F76
- .align 2, 0
-_0801854C: .4byte gBankAttacker
-_08018550: .4byte gNoOfAllBanks
-_08018554:
- cmp r0, 0x16
- bne _0801855A
- b _08018728
-_0801855A:
- cmp r0, 0x24
- bne _08018560
- b _080187A0
-_08018560:
- bl _08019F76
-_08018564:
- cmp r0, 0x46
- bne _0801856A
- b _080186F0
-_0801856A:
- cmp r0, 0x46
- bgt _08018578
- cmp r0, 0x3B
- bne _08018574
- b _0801875C
-_08018574:
- bl _08019F76
-_08018578:
- cmp r0, 0x4D
- bne _0801857E
- b _080187DC
-_0801857E:
- cmp r0, 0xFF
- beq _08018586
- bl _08019F76
-_08018586:
- bl weather_get_current
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x3
- cmp r0, 0xA
- bhi _0801864C
- lsls r0, 2
- ldr r1, _080185A0 @ =_080185A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080185A0: .4byte _080185A4
- .align 2, 0
-_080185A4:
- .4byte _080185D0
- .4byte _0801864C
- .4byte _080185D0
- .4byte _0801864C
- .4byte _0801864C
- .4byte _080185F8
- .4byte _0801864C
- .4byte _0801864C
- .4byte _0801864C
- .4byte _08018620
- .4byte _080185D0
-_080185D0:
- ldr r2, _080185EC @ =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801864C
- movs r0, 0x5
- strh r0, [r2]
- ldr r0, _080185F0 @ =0x02000000
- ldr r3, _080185F4 @ =0x000160a4
- adds r2, r0, r3
- movs r1, 0xA
- b _08018638
- .align 2, 0
-_080185EC: .4byte gBattleWeather
-_080185F0: .4byte 0x02000000
-_080185F4: .4byte 0x000160a4
-_080185F8:
- ldr r3, _08018614 @ =gBattleWeather
- ldrh r1, [r3]
- movs r2, 0x18
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0801864C
- strh r2, [r3]
- ldr r0, _08018618 @ =0x02000000
- ldr r3, _0801861C @ =0x000160a4
- adds r2, r0, r3
- movs r1, 0xC
- b _08018638
- .align 2, 0
-_08018614: .4byte gBattleWeather
-_08018618: .4byte 0x02000000
-_0801861C: .4byte 0x000160a4
-_08018620:
- ldr r3, _08018668 @ =gBattleWeather
- ldrh r1, [r3]
- movs r2, 0x60
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0801864C
- strh r2, [r3]
- ldr r0, _0801866C @ =0x02000000
- ldr r3, _08018670 @ =0x000160a4
- adds r2, r0, r3
- movs r1, 0xB
-_08018638:
- strb r1, [r2]
- ldr r5, _08018674 @ =0x00016003
- adds r0, r5
- mov r1, r10
- strb r1, [r0]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801864C:
- mov r2, r9
- cmp r2, 0
- bne _08018656
- bl _08019F92
-_08018656:
- bl weather_get_current
- ldr r1, _08018678 @ =gBattleCommunication
- strb r0, [r1, 0x5]
- ldr r0, _0801867C @ =gUnknown_081D901D
- bl b_push_move_exec
- bl _08019F76
- .align 2, 0
-_08018668: .4byte gBattleWeather
-_0801866C: .4byte 0x02000000
-_08018670: .4byte 0x000160a4
-_08018674: .4byte 0x00016003
-_08018678: .4byte gBattleCommunication
-_0801867C: .4byte gUnknown_081D901D
-_08018680:
- ldr r2, _080186A8 @ =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08018690
- bl _08019F76
-_08018690:
- movs r0, 0x5
- strh r0, [r2]
- ldr r0, _080186AC @ =gUnknown_081D9704
- bl b_push_move_exec
- ldr r0, _080186B0 @ =0x02000000
- ldr r3, _080186B4 @ =0x00016003
- adds r0, r3
- mov r5, r10
- strb r5, [r0]
- bl _08019F22
- .align 2, 0
-_080186A8: .4byte gBattleWeather
-_080186AC: .4byte gUnknown_081D9704
-_080186B0: .4byte 0x02000000
-_080186B4: .4byte 0x00016003
-_080186B8:
- ldr r2, _080186E0 @ =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080186C8
- bl _08019F76
-_080186C8:
- movs r0, 0x18
- strh r0, [r2]
- ldr r0, _080186E4 @ =gUnknown_081D9744
- bl b_push_move_exec
- ldr r0, _080186E8 @ =0x02000000
- ldr r1, _080186EC @ =0x00016003
- adds r0, r1
- mov r2, r10
- strb r2, [r0]
- bl _08019F22
- .align 2, 0
-_080186E0: .4byte gBattleWeather
-_080186E4: .4byte gUnknown_081D9744
-_080186E8: .4byte 0x02000000
-_080186EC: .4byte 0x00016003
-_080186F0:
- ldr r2, _08018718 @ =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08018700
- bl _08019F76
-_08018700:
- movs r0, 0x60
- strh r0, [r2]
- ldr r0, _0801871C @ =gUnknown_081D97FE
- bl b_push_move_exec
- ldr r0, _08018720 @ =0x02000000
- ldr r3, _08018724 @ =0x00016003
- adds r0, r3
- mov r5, r10
- strb r5, [r0]
- bl _08019F22
- .align 2, 0
-_08018718: .4byte gBattleWeather
-_0801871C: .4byte gUnknown_081D97FE
-_08018720: .4byte 0x02000000
-_08018724: .4byte 0x00016003
-_08018728:
- ldr r0, _08018754 @ =gSpecialStatuses
- mov r1, r10
- lsls r2, r1, 2
- adds r1, r2, r1
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3]
- lsls r0, 28
- cmp r0, 0
- bge _08018740
- bl _08019F76
-_08018740:
- ldr r1, _08018758 @ =gStatuses3
- adds r1, r2, r1
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 12
- orrs r0, r2
- str r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x8
- b _080187CA
- .align 2, 0
-_08018754: .4byte gSpecialStatuses
-_08018758: .4byte gStatuses3
-_0801875C:
- mov r0, r10
- bl castform_switch
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0
- bne _08018770
- bl _08019F92
-_08018770:
- ldr r0, _08018790 @ =gUnknown_081D977D
- bl b_push_move_exec
- ldr r0, _08018794 @ =0x02000000
- ldr r2, _08018798 @ =0x00016003
- adds r1, r0, r2
- mov r3, r10
- strb r3, [r1]
- mov r1, r9
- subs r1, 0x1
- ldr r5, _0801879C @ =0x0001609b
- adds r0, r5
- strb r1, [r0]
- bl _08019F76
- .align 2, 0
-_08018790: .4byte gUnknown_081D977D
-_08018794: .4byte 0x02000000
-_08018798: .4byte 0x00016003
-_0801879C: .4byte 0x0001609b
-_080187A0:
- ldr r0, _080187D4 @ =gSpecialStatuses
- mov r1, r10
- lsls r2, r1, 2
- adds r1, r2, r1
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3]
- lsls r0, 27
- cmp r0, 0
- bge _080187B8
- bl _08019F76
-_080187B8:
- ldr r1, _080187D8 @ =gStatuses3
- adds r1, r2, r1
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 13
- orrs r0, r2
- str r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x10
-_080187CA:
- orrs r0, r1
- strb r0, [r3]
- bl _08019F76
- .align 2, 0
-_080187D4: .4byte gSpecialStatuses
-_080187D8: .4byte gStatuses3
-_080187DC:
- movs r6, 0
- ldrb r5, [r5]
- cmp r6, r5
- bcc _080187E8
- bl _08019F76
-_080187E8:
- adds r0, r6, 0
- bl castform_switch
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0
- beq _080187FC
- bl _08019E14
-_080187FC:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08018810 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r6, r0
- bcc _080187E8
- bl _08019F76
- .align 2, 0
-_08018810: .4byte gNoOfAllBanks
-_08018814:
- ldr r2, _08018844 @ =gBattleMons
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r4, r1, r2
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- bne _08018828
- bl _08019F76
-_08018828:
- ldr r0, _08018848 @ =gBankAttacker
- mov r3, r10
- strb r3, [r0]
- mov r3, r8
- ldrb r5, [r3]
- cmp r5, 0x2C
- beq _0801885A
- cmp r5, 0x2C
- bgt _0801884C
- cmp r5, 0x3
- bne _08018840
- b _080189B8
-_08018840:
- bl _08019F76
- .align 2, 0
-_08018844: .4byte gBattleMons
-_08018848: .4byte gBankAttacker
-_0801884C:
- cmp r5, 0x36
- bne _08018852
- b _08018A18
-_08018852:
- cmp r5, 0x3D
- beq _080188DC
- bl _08019F76
-_0801885A:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08018876
- bl _08019F76
-_08018876:
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _0801888E
- bl _08019F76
-_0801888E:
- ldr r0, _080188D0 @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801889E
- bl _08019F76
-_0801889E:
- ldrh r0, [r4, 0x2C]
- ldrh r1, [r4, 0x28]
- cmp r0, r1
- bhi _080188AA
- bl _08019F76
-_080188AA:
- mov r2, r8
- strb r5, [r2]
- ldr r0, _080188D4 @ =gUnknown_081D9730
- bl b_push_move_exec
- ldr r1, _080188D8 @ =gBattleMoveDamage
- ldrh r0, [r4, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _080188C4
- movs r0, 0x1
- str r0, [r1]
-_080188C4:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- bl _08019F22
- .align 2, 0
-_080188D0: .4byte gBattleWeather
-_080188D4: .4byte gUnknown_081D9730
-_080188D8: .4byte gBattleMoveDamage
-_080188DC:
- adds r0, r2, 0
- adds r0, 0x4C
- adds r5, r1, r0
- ldrb r0, [r5]
- cmp r0, 0
- bne _080188EC
- bl _08019F76
-_080188EC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08018906
- bl _08019F76
-_08018906:
- ldr r0, [r5]
- movs r1, 0x88
- ands r0, r1
- cmp r0, 0
- beq _08018918
- ldr r0, _08018990 @ =gBattleTextBuff1
- ldr r1, _08018994 @ =gStatusConditionString_PoisonJpn
- bl StringCopy
-_08018918:
- ldr r0, [r5]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801892A
- ldr r0, _08018990 @ =gBattleTextBuff1
- ldr r1, _08018998 @ =gStatusConditionString_SleepJpn
- bl StringCopy
-_0801892A:
- ldr r0, [r5]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801893C
- ldr r0, _08018990 @ =gBattleTextBuff1
- ldr r1, _0801899C @ =gStatusConditionString_ParalysisJpn
- bl StringCopy
-_0801893C:
- ldr r0, [r5]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0801894E
- ldr r0, _08018990 @ =gBattleTextBuff1
- ldr r1, _080189A0 @ =gStatusConditionString_BurnJpn
- bl StringCopy
-_0801894E:
- ldr r0, [r5]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08018960
- ldr r0, _08018990 @ =gBattleTextBuff1
- ldr r1, _080189A4 @ =gStatusConditionString_IceJpn
- bl StringCopy
-_08018960:
- str r4, [r5]
- ldr r0, _080189A8 @ =0x02000000
- ldr r4, _080189AC @ =gActiveBank
- mov r3, r10
- strb r3, [r4]
- ldr r1, _080189B0 @ =0x00016003
- adds r0, r1
- strb r3, [r0]
- ldr r0, _080189B4 @ =gUnknown_081D9758
- bl b_push_move_exec
- str r5, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- bl _08019F22
- .align 2, 0
-_08018990: .4byte gBattleTextBuff1
-_08018994: .4byte gStatusConditionString_PoisonJpn
-_08018998: .4byte gStatusConditionString_SleepJpn
-_0801899C: .4byte gStatusConditionString_ParalysisJpn
-_080189A0: .4byte gStatusConditionString_BurnJpn
-_080189A4: .4byte gStatusConditionString_IceJpn
-_080189A8: .4byte 0x02000000
-_080189AC: .4byte gActiveBank
-_080189B0: .4byte 0x00016003
-_080189B4: .4byte gUnknown_081D9758
-_080189B8:
- ldrb r2, [r4, 0x1B]
- movs r0, 0x1B
- ldrsb r0, [r4, r0]
- cmp r0, 0xB
- ble _080189C6
- bl _08019F76
-_080189C6:
- ldr r0, _08018A04 @ =gDisableStructs
- mov r3, r10
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x16]
- cmp r0, 0x2
- bne _080189DC
- bl _08019F76
-_080189DC:
- adds r0, r2, 0x1
- movs r2, 0
- strb r0, [r4, 0x1B]
- ldr r5, _08018A08 @ =0x000160a4
- adds r1, r7, r5
- movs r0, 0x11
- strb r0, [r1]
- ldr r1, _08018A0C @ =0x000160a5
- adds r0, r7, r1
- strb r2, [r0]
- ldr r0, _08018A10 @ =gUnknown_081D9718
- bl b_push_move_exec
- ldr r2, _08018A14 @ =0x00016003
- adds r0, r7, r2
- mov r3, r10
- strb r3, [r0]
- bl _08019F22
- .align 2, 0
-_08018A04: .4byte gDisableStructs
-_08018A08: .4byte 0x000160a4
-_08018A0C: .4byte 0x000160a5
-_08018A10: .4byte gUnknown_081D9718
-_08018A14: .4byte 0x00016003
-_08018A18:
- ldr r2, _08018A3C @ =gDisableStructs
- ldrb r0, [r0]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r3, [r1, 0x18]
- lsls r0, r3, 31
- lsrs r0, 31
- movs r2, 0x1
- eors r2, r0
- movs r0, 0x2
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x18]
- bl _08019F76
- .align 2, 0
-_08018A3C: .4byte gDisableStructs
-_08018A40:
- mov r5, r8
- ldrb r0, [r5]
- cmp r0, 0x2B
- beq _08018A4C
- bl _08019F76
-_08018A4C:
- movs r4, 0
- ldr r0, _08018ABC @ =gUnknown_081FA724
- ldrh r2, [r0]
- ldr r5, _08018AC0 @ =0x0000ffff
- adds r1, r0, 0
- cmp r2, r5
- bne _08018A5E
- bl _08019F76
-_08018A5E:
- cmp r2, r3
- beq _08018A76
- adds r2, r1, 0
-_08018A64:
- adds r2, 0x2
- adds r4, 0x1
- ldrh r0, [r2]
- cmp r0, r5
- bne _08018A72
- bl _08019F76
-_08018A72:
- cmp r0, r3
- bne _08018A64
-_08018A76:
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _08018AC0 @ =0x0000ffff
- cmp r1, r0
- bne _08018A86
- bl _08019F76
-_08018A86:
- ldr r1, _08018AC4 @ =gBattleMons
- ldr r0, _08018AC8 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- beq _08018AAC
- ldr r0, _08018ACC @ =gHitMarker
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 4
- orrs r1, r2
- str r1, [r0]
-_08018AAC:
- ldr r1, _08018AD0 @ =gBattlescriptCurrInstr
- ldr r0, _08018AD4 @ =gUnknown_081D98F3
- str r0, [r1]
- movs r0, 0x1
- mov r9, r0
- bl _08019F7C
- .align 2, 0
-_08018ABC: .4byte gUnknown_081FA724
-_08018AC0: .4byte 0x0000ffff
-_08018AC4: .4byte gBattleMons
-_08018AC8: .4byte gBankAttacker
-_08018ACC: .4byte gHitMarker
-_08018AD0: .4byte gBattlescriptCurrInstr
-_08018AD4: .4byte gUnknown_081D98F3
-_08018AD8:
- cmp r3, 0
- bne _08018AE0
- bl _08019F76
-_08018AE0:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0xB
- beq _08018B50
- cmp r0, 0xB
- bgt _08018AF2
- cmp r0, 0xA
- beq _08018AF8
- b _08018C6A
-_08018AF2:
- cmp r0, 0x12
- beq _08018BA8
- b _08018C6A
-_08018AF8:
- cmp r4, 0xD
- beq _08018AFE
- b _08018C6A
-_08018AFE:
- ldr r0, _08018B28 @ =gBattleMoves
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08018B10
- b _08018C6A
-_08018B10:
- ldr r1, _08018B2C @ =gProtectStructs
- ldr r0, _08018B30 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018B3C
- ldr r1, _08018B34 @ =gBattlescriptCurrInstr
- ldr r0, _08018B38 @ =gUnknown_081D9843
- b _08018B40
- .align 2, 0
-_08018B28: .4byte gBattleMoves
-_08018B2C: .4byte gProtectStructs
-_08018B30: .4byte gBankAttacker
-_08018B34: .4byte gBattlescriptCurrInstr
-_08018B38: .4byte gUnknown_081D9843
-_08018B3C:
- ldr r1, _08018B48 @ =gBattlescriptCurrInstr
- ldr r0, _08018B4C @ =gUnknown_081D9842
-_08018B40:
- str r0, [r1]
- movs r2, 0x1
- b _08018C68
- .align 2, 0
-_08018B48: .4byte gBattlescriptCurrInstr
-_08018B4C: .4byte gUnknown_081D9842
-_08018B50:
- cmp r4, 0xB
- beq _08018B56
- b _08018C6A
-_08018B56:
- ldr r0, _08018B80 @ =gBattleMoves
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08018B68
- b _08018C6A
-_08018B68:
- ldr r1, _08018B84 @ =gProtectStructs
- ldr r0, _08018B88 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018B94
- ldr r1, _08018B8C @ =gBattlescriptCurrInstr
- ldr r0, _08018B90 @ =gUnknown_081D9843
- b _08018B98
- .align 2, 0
-_08018B80: .4byte gBattleMoves
-_08018B84: .4byte gProtectStructs
-_08018B88: .4byte gBankAttacker
-_08018B8C: .4byte gBattlescriptCurrInstr
-_08018B90: .4byte gUnknown_081D9843
-_08018B94:
- ldr r1, _08018BA0 @ =gBattlescriptCurrInstr
- ldr r0, _08018BA4 @ =gUnknown_081D9842
-_08018B98:
- str r0, [r1]
- movs r3, 0x1
- mov r9, r3
- b _08018C6A
- .align 2, 0
-_08018BA0: .4byte gBattlescriptCurrInstr
-_08018BA4: .4byte gUnknown_081D9842
-_08018BA8:
- cmp r4, 0xA
- bne _08018C6A
- ldr r1, _08018BF4 @ =gBattleMons
- movs r0, 0x58
- mov r5, r10
- muls r5, r0
- adds r0, r5, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08018C6A
- ldr r2, _08018BF8 @ =0x02017100
- mov r0, r10
- lsls r1, r0, 2
- adds r0, r1, r2
- ldr r3, [r0]
- movs r4, 0x1
- ands r3, r4
- adds r5, r1, 0
- cmp r3, 0
- bne _08018C30
- ldr r0, _08018BFC @ =gBattleCommunication
- strb r3, [r0, 0x5]
- ldr r1, _08018C00 @ =gProtectStructs
- ldr r0, _08018C04 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018C10
- ldr r1, _08018C08 @ =gBattlescriptCurrInstr
- ldr r0, _08018C0C @ =gUnknown_081D987C
- b _08018C14
- .align 2, 0
-_08018BF4: .4byte gBattleMons
-_08018BF8: .4byte 0x02017100
-_08018BFC: .4byte gBattleCommunication
-_08018C00: .4byte gProtectStructs
-_08018C04: .4byte gBankAttacker
-_08018C08: .4byte gBattlescriptCurrInstr
-_08018C0C: .4byte gUnknown_081D987C
-_08018C10:
- ldr r1, _08018C28 @ =gBattlescriptCurrInstr
- ldr r0, _08018C2C @ =gUnknown_081D987B
-_08018C14:
- str r0, [r1]
- adds r0, r5, r2
- ldr r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- str r1, [r0]
- movs r1, 0x2
- mov r9, r1
- b _08018C6A
- .align 2, 0
-_08018C28: .4byte gBattlescriptCurrInstr
-_08018C2C: .4byte gUnknown_081D987B
-_08018C30:
- ldr r0, _08018C4C @ =gBattleCommunication
- strb r4, [r0, 0x5]
- ldr r1, _08018C50 @ =gProtectStructs
- ldr r0, _08018C54 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018C60
- ldr r1, _08018C58 @ =gBattlescriptCurrInstr
- ldr r0, _08018C5C @ =gUnknown_081D987C
- b _08018C64
- .align 2, 0
-_08018C4C: .4byte gBattleCommunication
-_08018C50: .4byte gProtectStructs
-_08018C54: .4byte gBankAttacker
-_08018C58: .4byte gBattlescriptCurrInstr
-_08018C5C: .4byte gUnknown_081D987C
-_08018C60:
- ldr r1, _08018CA4 @ =gBattlescriptCurrInstr
- ldr r0, _08018CA8 @ =gUnknown_081D987B
-_08018C64:
- str r0, [r1]
- movs r2, 0x2
-_08018C68:
- mov r9, r2
-_08018C6A:
- mov r3, r9
- cmp r3, 0x1
- beq _08018C74
- bl _08019F76
-_08018C74:
- ldr r1, _08018CAC @ =gBattleMons
- movs r0, 0x58
- mov r5, r10
- muls r5, r0
- adds r0, r5, 0
- adds r1, r0, r1
- ldrh r0, [r1, 0x2C]
- ldrh r2, [r1, 0x28]
- cmp r0, r2
- bne _08018CD0
- ldr r1, _08018CB0 @ =gProtectStructs
- ldr r0, _08018CB4 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018CBC
- ldr r1, _08018CA4 @ =gBattlescriptCurrInstr
- ldr r0, _08018CB8 @ =gUnknown_081D9866
- str r0, [r1]
- bl _08019F76
- .align 2, 0
-_08018CA4: .4byte gBattlescriptCurrInstr
-_08018CA8: .4byte gUnknown_081D987B
-_08018CAC: .4byte gBattleMons
-_08018CB0: .4byte gProtectStructs
-_08018CB4: .4byte gBankAttacker
-_08018CB8: .4byte gUnknown_081D9866
-_08018CBC:
- ldr r1, _08018CC8 @ =gBattlescriptCurrInstr
- ldr r0, _08018CCC @ =gUnknown_081D9865
- str r0, [r1]
- bl _08019F76
- .align 2, 0
-_08018CC8: .4byte gBattlescriptCurrInstr
-_08018CCC: .4byte gUnknown_081D9865
-_08018CD0:
- ldr r2, _08018CEC @ =gBattleMoveDamage
- ldrh r0, [r1, 0x2C]
- lsrs r0, 2
- str r0, [r2]
- cmp r0, 0
- bne _08018CE0
- mov r3, r9
- str r3, [r2]
-_08018CE0:
- ldr r0, [r2]
- negs r0, r0
- str r0, [r2]
- bl _08019F76
- .align 2, 0
-_08018CEC: .4byte gBattleMoveDamage
-_08018CF0:
- mov r5, r8
- ldrb r0, [r5]
- subs r0, 0x9
- cmp r0, 0x2F
- bls _08018CFE
- bl _08019F76
-_08018CFE:
- lsls r0, 2
- ldr r1, _08018D08 @ =_08018D0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08018D08: .4byte _08018D0C
- .align 2, 0
-_08018D0C:
- .4byte _08019128
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08018DCC
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08018E94
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08018F54
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _0801904C
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019204
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _080192E0
-_08018DCC:
- ldr r0, _08018E74 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08018DDC
- bl _08019F76
-_08018DDC:
- cmp r3, 0xA5
- bne _08018DE4
- bl _08019F76
-_08018DE4:
- ldr r0, _08018E78 @ =gBattleMoves
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08018DF8
- bl _08019F76
-_08018DF8:
- ldr r2, _08018E7C @ =gSpecialStatuses
- ldr r0, _08018E80 @ =gBankTarget
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018E20
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018E20
- bl _08019F76
-_08018E20:
- ldr r1, _08018E84 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r1, r0, r1
- adds r3, r1, 0
- adds r3, 0x21
- ldrb r0, [r3]
- cmp r0, r4
- bne _08018E3A
- bl _08019F76
-_08018E3A:
- adds r2, r1, 0
- adds r2, 0x22
- ldrb r0, [r2]
- cmp r0, r4
- bne _08018E48
- bl _08019F76
-_08018E48:
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- bne _08018E52
- bl _08019F76
-_08018E52:
- strb r4, [r3]
- strb r4, [r2]
- ldr r1, _08018E88 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r4, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _08018E8C @ =gBattlescriptCurrInstr
- ldr r0, _08018E90 @ =gUnknown_081D9921
- str r0, [r1]
- bl _08019F22
- .align 2, 0
-_08018E74: .4byte gBattleMoveFlags
-_08018E78: .4byte gBattleMoves
-_08018E7C: .4byte gSpecialStatuses
-_08018E80: .4byte gBankTarget
-_08018E84: .4byte gBattleMons
-_08018E88: .4byte gBattleTextBuff1
-_08018E8C: .4byte gBattlescriptCurrInstr
-_08018E90: .4byte gUnknown_081D9921
-_08018E94:
- ldr r0, _08018F2C @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08018EA4
- bl _08019F76
-_08018EA4:
- ldr r1, _08018F30 @ =gBattleMons
- ldr r0, _08018F34 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r4, r0, r1
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- bne _08018EBA
- bl _08019F76
-_08018EBA:
- ldr r0, _08018F38 @ =gProtectStructs
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _08018ECC
- bl _08019F76
-_08018ECC:
- ldr r2, _08018F3C @ =gSpecialStatuses
- ldr r0, _08018F40 @ =gBankTarget
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018EF4
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018EF4
- bl _08019F76
-_08018EF4:
- ldr r1, _08018F44 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08018F0E
- bl _08019F76
-_08018F0E:
- ldr r1, _08018F48 @ =gBattleMoveDamage
- ldrh r0, [r4, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08018F1C
- str r2, [r1]
-_08018F1C:
- bl b_movescr_stack_push_cursor
- ldr r1, _08018F4C @ =gBattlescriptCurrInstr
- ldr r0, _08018F50 @ =gUnknown_081D9928
- str r0, [r1]
- bl _08019F22
- .align 2, 0
-_08018F2C: .4byte gBattleMoveFlags
-_08018F30: .4byte gBattleMons
-_08018F34: .4byte gBankAttacker
-_08018F38: .4byte gProtectStructs
-_08018F3C: .4byte gSpecialStatuses
-_08018F40: .4byte gBankTarget
-_08018F44: .4byte gBattleMoves
-_08018F48: .4byte gBattleMoveDamage
-_08018F4C: .4byte gBattlescriptCurrInstr
-_08018F50: .4byte gUnknown_081D9928
-_08018F54:
- ldr r0, _08019020 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08018F64
- bl _08019F76
-_08018F64:
- ldr r1, _08019024 @ =gBattleMons
- ldr r0, _08019028 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08018F7A
- bl _08019F76
-_08018F7A:
- ldr r0, _0801902C @ =gProtectStructs
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _08018F8C
- bl _08019F76
-_08018F8C:
- ldr r2, _08019030 @ =gSpecialStatuses
- ldr r0, _08019034 @ =gBankTarget
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018FB4
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018FB4
- bl _08019F76
-_08018FB4:
- ldr r1, _08019038 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08018FCC
- bl _08019F76
-_08018FCC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08018FE4
- bl _08019F76
-_08018FE4:
- ldr r5, _0801903C @ =gBattleCommunication
- movs r4, 0x3
-_08018FE8:
- bl Random
- ands r0, r4
- strb r0, [r5, 0x3]
- cmp r0, 0
- beq _08018FE8
- ldr r1, _0801903C @ =gBattleCommunication
- ldrb r0, [r1, 0x3]
- cmp r0, 0x3
- bne _08019000
- adds r0, 0x2
- strb r0, [r1, 0x3]
-_08019000:
- ldrb r0, [r1, 0x3]
- adds r0, 0x40
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _08019040 @ =gBattlescriptCurrInstr
- ldr r0, _08019044 @ =gUnknown_081D9950
- str r0, [r1]
- ldr r2, _08019048 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _08019F22
- .align 2, 0
-_08019020: .4byte gBattleMoveFlags
-_08019024: .4byte gBattleMons
-_08019028: .4byte gBankAttacker
-_0801902C: .4byte gProtectStructs
-_08019030: .4byte gSpecialStatuses
-_08019034: .4byte gBankTarget
-_08019038: .4byte gBattleMoves
-_0801903C: .4byte gBattleCommunication
-_08019040: .4byte gBattlescriptCurrInstr
-_08019044: .4byte gUnknown_081D9950
-_08019048: .4byte gHitMarker
-_0801904C:
- ldr r0, _080190FC @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801905C
- bl _08019F76
-_0801905C:
- ldr r1, _08019100 @ =gBattleMons
- ldr r0, _08019104 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08019072
- bl _08019F76
-_08019072:
- ldr r0, _08019108 @ =gProtectStructs
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _08019084
- bl _08019F76
-_08019084:
- ldr r2, _0801910C @ =gSpecialStatuses
- ldr r0, _08019110 @ =gBankTarget
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _080190AC
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _080190AC
- bl _08019F76
-_080190AC:
- ldr r1, _08019114 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080190C4
- bl _08019F76
-_080190C4:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _080190DC
- bl _08019F76
-_080190DC:
- ldr r1, _08019118 @ =gBattleCommunication
- movs r0, 0x42
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801911C @ =gBattlescriptCurrInstr
- ldr r0, _08019120 @ =gUnknown_081D9950
- str r0, [r1]
- ldr r2, _08019124 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _08019F22
- .align 2, 0
-_080190FC: .4byte gBattleMoveFlags
-_08019100: .4byte gBattleMons
-_08019104: .4byte gBankAttacker
-_08019108: .4byte gProtectStructs
-_0801910C: .4byte gSpecialStatuses
-_08019110: .4byte gBankTarget
-_08019114: .4byte gBattleMoves
-_08019118: .4byte gBattleCommunication
-_0801911C: .4byte gBattlescriptCurrInstr
-_08019120: .4byte gUnknown_081D9950
-_08019124: .4byte gHitMarker
-_08019128:
- ldr r0, _080191D8 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08019138
- bl _08019F76
-_08019138:
- ldr r1, _080191DC @ =gBattleMons
- ldr r0, _080191E0 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801914E
- bl _08019F76
-_0801914E:
- ldr r0, _080191E4 @ =gProtectStructs
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _08019160
- bl _08019F76
-_08019160:
- ldr r2, _080191E8 @ =gSpecialStatuses
- ldr r0, _080191EC @ =gBankTarget
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08019188
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08019188
- bl _08019F76
-_08019188:
- ldr r1, _080191F0 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080191A0
- bl _08019F76
-_080191A0:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _080191B8
- bl _08019F76
-_080191B8:
- ldr r1, _080191F4 @ =gBattleCommunication
- movs r0, 0x45
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _080191F8 @ =gBattlescriptCurrInstr
- ldr r0, _080191FC @ =gUnknown_081D9950
- str r0, [r1]
- ldr r2, _08019200 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _08019F22
- .align 2, 0
-_080191D8: .4byte gBattleMoveFlags
-_080191DC: .4byte gBattleMons
-_080191E0: .4byte gBankAttacker
-_080191E4: .4byte gProtectStructs
-_080191E8: .4byte gSpecialStatuses
-_080191EC: .4byte gBankTarget
-_080191F0: .4byte gBattleMoves
-_080191F4: .4byte gBattleCommunication
-_080191F8: .4byte gBattlescriptCurrInstr
-_080191FC: .4byte gUnknown_081D9950
-_08019200: .4byte gHitMarker
-_08019204:
- ldr r0, _080192B4 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08019214
- bl _08019F76
-_08019214:
- ldr r1, _080192B8 @ =gBattleMons
- ldr r0, _080192BC @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801922A
- bl _08019F76
-_0801922A:
- ldr r0, _080192C0 @ =gProtectStructs
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _0801923C
- bl _08019F76
-_0801923C:
- ldr r1, _080192C4 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08019254
- bl _08019F76
-_08019254:
- ldr r2, _080192C8 @ =gSpecialStatuses
- ldr r0, _080192CC @ =gBankTarget
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801927C
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801927C
- bl _08019F76
-_0801927C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08019294
- bl _08019F76
-_08019294:
- ldr r1, _080192D0 @ =gBattleCommunication
- movs r0, 0x43
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _080192D4 @ =gBattlescriptCurrInstr
- ldr r0, _080192D8 @ =gUnknown_081D9950
- str r0, [r1]
- ldr r2, _080192DC @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _08019F22
- .align 2, 0
-_080192B4: .4byte gBattleMoveFlags
-_080192B8: .4byte gBattleMons
-_080192BC: .4byte gBankAttacker
-_080192C0: .4byte gProtectStructs
-_080192C4: .4byte gBattleMoves
-_080192C8: .4byte gSpecialStatuses
-_080192CC: .4byte gBankTarget
-_080192D0: .4byte gBattleCommunication
-_080192D4: .4byte gBattlescriptCurrInstr
-_080192D8: .4byte gUnknown_081D9950
-_080192DC: .4byte gHitMarker
-_080192E0:
- ldr r0, _08019420 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _080192F0
- bl _08019F76
-_080192F0:
- ldr r5, _08019424 @ =gBattleMons
- ldr r7, _08019428 @ =gBankAttacker
- ldrb r1, [r7]
- movs r6, 0x58
- adds r0, r1, 0
- muls r0, r6
- adds r0, r5
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08019308
- bl _08019F76
-_08019308:
- ldr r0, _0801942C @ =gProtectStructs
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _0801931A
- bl _08019F76
-_0801931A:
- ldr r1, _08019430 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08019332
- bl _08019F76
-_08019332:
- ldr r3, _08019434 @ =gSpecialStatuses
- ldr r0, _08019438 @ =gBankTarget
- mov r8, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r2, r0, 2
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801935C
- adds r0, r3, 0
- adds r0, 0xC
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801935C
- bl _08019F76
-_0801935C:
- adds r0, r1, 0
- muls r0, r6
- adds r0, r5
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801936C
- bl _08019F76
-_0801936C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08019384
- bl _08019F76
-_08019384:
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0xC
- bne _08019396
- bl _08019F76
-_08019396:
- ldr r0, [sp, 0x8]
- ldr r1, [sp, 0x10]
- bl GetGenderFromSpeciesAndPersonality
- adds r4, r0, 0
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x14]
- bl GetGenderFromSpeciesAndPersonality
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080193B4
- bl _08019F76
-_080193B4:
- ldrb r0, [r7]
- muls r0, r6
- adds r4, r5, 0
- adds r4, 0x50
- adds r0, r4
- ldr r0, [r0]
- movs r1, 0xF0
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- beq _080193CE
- bl _08019F76
-_080193CE:
- ldr r0, [sp, 0x8]
- ldr r1, [sp, 0x10]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080193E2
- bl _08019F76
-_080193E2:
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x14]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080193F6
- bl _08019F76
-_080193F6:
- ldrb r0, [r7]
- adds r2, r0, 0
- muls r2, r6
- adds r2, r4
- ldr r1, _0801943C @ =gBitTable
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 16
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _08019440 @ =gBattlescriptCurrInstr
- ldr r0, _08019444 @ =gUnknown_081D9943
- str r0, [r1]
- bl _08019F22
- .align 2, 0
-_08019420: .4byte gBattleMoveFlags
-_08019424: .4byte gBattleMons
-_08019428: .4byte gBankAttacker
-_0801942C: .4byte gProtectStructs
-_08019430: .4byte gBattleMoves
-_08019434: .4byte gSpecialStatuses
-_08019438: .4byte gBankTarget
-_0801943C: .4byte gBitTable
-_08019440: .4byte gBattlescriptCurrInstr
-_08019444: .4byte gUnknown_081D9943
-_08019448:
- movs r5, 0
- mov r10, r5
- ldr r0, _0801947C @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r10, r0
- bcc _08019458
- bl _08019F76
-_08019458:
- ldr r1, _08019480 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- subs r0, 0x7
- adds r2, r1, 0
- cmp r0, 0x41
- bls _08019472
- b _080196D6
-_08019472:
- lsls r0, 2
- ldr r1, _08019484 @ =_08019488
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801947C: .4byte gNoOfAllBanks
-_08019480: .4byte gBattleMons
-_08019484: .4byte _08019488
- .align 2, 0
-_08019488:
- .4byte _080195EC
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196B0
- .4byte _080196D6
- .4byte _080196D6
- .4byte _08019614
- .4byte _080196D6
- .4byte _08019590
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080195BC
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _08019680
- .4byte _08019650
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _08019614
-_08019590:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080195B0 @ =0x00000f88
- ands r0, r1
- cmp r0, 0
- bne _080195AA
- b _080196D6
-_080195AA:
- ldr r0, _080195B4 @ =gBattleTextBuff1
- ldr r1, _080195B8 @ =gStatusConditionString_PoisonJpn
- b _0801969C
- .align 2, 0
-_080195B0: .4byte 0x00000f88
-_080195B4: .4byte gBattleTextBuff1
-_080195B8: .4byte gStatusConditionString_PoisonJpn
-_080195BC:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _080195D6
- b _080196D6
-_080195D6:
- ldr r0, _080195E4 @ =gBattleTextBuff1
- ldr r1, _080195E8 @ =gStatusConditionString_ConfusionJpn
- bl StringCopy
- movs r2, 0x2
- mov r9, r2
- b _080196DC
- .align 2, 0
-_080195E4: .4byte gBattleTextBuff1
-_080195E8: .4byte gStatusConditionString_ConfusionJpn
-_080195EC:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- ldr r0, _0801960C @ =gBattleTextBuff1
- ldr r1, _08019610 @ =gStatusConditionString_ParalysisJpn
- b _0801969C
- .align 2, 0
-_0801960C: .4byte gBattleTextBuff1
-_08019610: .4byte gStatusConditionString_ParalysisJpn
-_08019614:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- adds r2, 0x50
- adds r2, r3, r2
- ldr r0, [r2]
- ldr r1, _08019644 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _08019648 @ =gBattleTextBuff1
- ldr r1, _0801964C @ =gStatusConditionString_SleepJpn
- bl StringCopy
- movs r0, 0x1
- mov r9, r0
- b _080196DC
- .align 2, 0
-_08019644: .4byte 0xf7ffffff
-_08019648: .4byte gBattleTextBuff1
-_0801964C: .4byte gStatusConditionString_SleepJpn
-_08019650:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- ldr r0, _08019678 @ =gBattleTextBuff1
- ldr r1, _0801967C @ =gStatusConditionString_BurnJpn
- bl StringCopy
- movs r2, 0x1
- mov r9, r2
- b _080196DC
- .align 2, 0
-_08019678: .4byte gBattleTextBuff1
-_0801967C: .4byte gStatusConditionString_BurnJpn
-_08019680:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- ldr r0, _080196A8 @ =gBattleTextBuff1
- ldr r1, _080196AC @ =gStatusConditionString_IceJpn
-_0801969C:
- bl StringCopy
- movs r5, 0x1
- mov r9, r5
- b _080196DC
- .align 2, 0
-_080196A8: .4byte gBattleTextBuff1
-_080196AC: .4byte gStatusConditionString_IceJpn
-_080196B0:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xF0
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- ldr r0, _080196EC @ =gBattleTextBuff1
- ldr r1, _080196F0 @ =gStatusConditionString_LoveJpn
- bl StringCopy
- movs r2, 0x3
- mov r9, r2
-_080196D6:
- mov r3, r9
- cmp r3, 0
- beq _08019798
-_080196DC:
- mov r5, r9
- cmp r5, 0x2
- beq _08019710
- cmp r5, 0x2
- bgt _080196F4
- cmp r5, 0x1
- beq _080196FC
- b _0801973C
- .align 2, 0
-_080196EC: .4byte gBattleTextBuff1
-_080196F0: .4byte gStatusConditionString_LoveJpn
-_080196F4:
- mov r0, r9
- cmp r0, 0x3
- beq _08019728
- b _0801973C
-_080196FC:
- ldr r1, _0801970C @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r1, 0x4C
- adds r2, r1
- movs r0, 0
- b _0801973A
- .align 2, 0
-_0801970C: .4byte gBattleMons
-_08019710:
- ldr r1, _08019724 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x8
- negs r1, r1
- b _08019738
- .align 2, 0
-_08019724: .4byte gBattleMons
-_08019728:
- ldr r1, _08019778 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _0801977C @ =0xfff0ffff
-_08019738:
- ands r0, r1
-_0801973A:
- str r0, [r2]
-_0801973C:
- bl b_movescr_stack_push_cursor
- ldr r1, _08019780 @ =gBattlescriptCurrInstr
- ldr r0, _08019784 @ =gUnknown_081D9956
- str r0, [r1]
- ldr r0, _08019788 @ =0x02000000
- ldr r1, _0801978C @ =0x00016003
- adds r0, r1
- mov r2, r10
- strb r2, [r0]
- ldr r4, _08019790 @ =gActiveBank
- strb r2, [r4]
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _08019794 @ =gUnknown_02024ACC
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- bl _08019F92
- .align 2, 0
-_08019778: .4byte gBattleMons
-_0801977C: .4byte 0xfff0ffff
-_08019780: .4byte gBattlescriptCurrInstr
-_08019784: .4byte gUnknown_081D9956
-_08019788: .4byte 0x02000000
-_0801978C: .4byte 0x00016003
-_08019790: .4byte gActiveBank
-_08019794: .4byte gUnknown_02024ACC
-_08019798:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _080197B0 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r10, r0
- bcs _080197AC
- b _08019458
-_080197AC:
- bl _08019F76
- .align 2, 0
-_080197B0: .4byte gNoOfAllBanks
-_080197B4:
- movs r3, 0
- mov r10, r3
- ldr r0, _080197FC @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r10, r0
- bcc _080197C2
- b _08019F76
-_080197C2:
- ldr r4, _08019800 @ =gBattleMons
-_080197C4:
- movs r0, 0x58
- mov r5, r10
- muls r5, r0
- adds r0, r5, 0
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3B
- bne _080197E8
- mov r0, r10
- bl castform_switch
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0
- beq _080197E8
- b _08019E40
-_080197E8:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _080197FC @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r10, r0
- bcc _080197C4
- b _08019F76
- .align 2, 0
-_080197FC: .4byte gNoOfAllBanks
-_08019800: .4byte gBattleMons
-_08019804:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0x1C
- beq _0801980E
- b _08019F76
-_0801980E:
- ldr r4, _08019860 @ =gHitMarker
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- bne _0801981E
- b _08019F76
-_0801981E:
- ldr r0, _08019864 @ =0xffffbfff
- ands r1, r0
- str r1, [r4]
- ldr r3, _08019868 @ =0x000160ca
- adds r2, r7, r3
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- cmp r0, 0x6
- bne _08019838
- movs r0, 0x2
- strb r0, [r2]
-_08019838:
- ldr r1, _0801986C @ =gBattleCommunication
- ldrb r0, [r2]
- adds r0, 0x40
- strb r0, [r1, 0x3]
- ldr r0, _08019870 @ =gBankTarget
- ldrb r1, [r0]
- ldr r5, _08019874 @ =0x00016003
- adds r0, r7, r5
- strb r1, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _08019878 @ =gBattlescriptCurrInstr
- ldr r0, _0801987C @ =gUnknown_081D9953
- str r0, [r1]
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r4]
- b _08019F22
- .align 2, 0
-_08019860: .4byte gHitMarker
-_08019864: .4byte 0xffffbfff
-_08019868: .4byte 0x000160ca
-_0801986C: .4byte gBattleCommunication
-_08019870: .4byte gBankTarget
-_08019874: .4byte 0x00016003
-_08019878: .4byte gBattlescriptCurrInstr
-_0801987C: .4byte gUnknown_081D9953
-_08019880:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0x1C
- beq _0801988A
- b _08019F76
-_0801988A:
- ldr r4, _080198DC @ =gHitMarker
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- bne _0801989A
- b _08019F76
-_0801989A:
- ldr r0, _080198E0 @ =0xffffbfff
- ands r1, r0
- str r1, [r4]
- ldr r3, _080198E4 @ =0x000160ca
- adds r2, r7, r3
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- cmp r0, 0x6
- bne _080198B4
- movs r0, 0x2
- strb r0, [r2]
-_080198B4:
- ldr r1, _080198E8 @ =gBattleCommunication
- ldrb r0, [r2]
- strb r0, [r1, 0x3]
- ldr r0, _080198EC @ =gBankAttacker
- ldrb r1, [r0]
- ldr r5, _080198F0 @ =0x00016003
- adds r0, r7, r5
- strb r1, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _080198F4 @ =gBattlescriptCurrInstr
- ldr r0, _080198F8 @ =gUnknown_081D9953
- str r0, [r1]
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r4]
- b _08019F22
- .align 2, 0
-_080198DC: .4byte gHitMarker
-_080198E0: .4byte 0xffffbfff
-_080198E4: .4byte 0x000160ca
-_080198E8: .4byte gBattleCommunication
-_080198EC: .4byte gBankAttacker
-_080198F0: .4byte 0x00016003
-_080198F4: .4byte gBattlescriptCurrInstr
-_080198F8: .4byte gUnknown_081D9953
-_080198FC:
- movs r4, 0
- ldr r0, _08019934 @ =gNoOfAllBanks
- ldrb r1, [r0]
- cmp r4, r1
- blt _08019908
- b _08019F76
-_08019908:
- ldr r0, _08019938 @ =gBattleMons
- adds r5, r1, 0
- ldr r2, _0801993C @ =gStatuses3
- adds r3, r0, 0
- adds r3, 0x20
- movs r6, 0x80
- lsls r6, 12
-_08019916:
- ldrb r1, [r3]
- cmp r1, 0x16
- bne _08019926
- ldr r0, [r2]
- ands r0, r6
- cmp r0, 0
- beq _08019926
- b _08019E6C
-_08019926:
- adds r2, 0x4
- adds r3, 0x58
- adds r4, 0x1
- cmp r4, r5
- blt _08019916
- b _08019F76
- .align 2, 0
-_08019934: .4byte gNoOfAllBanks
-_08019938: .4byte gBattleMons
-_0801993C: .4byte gStatuses3
-_08019940:
- movs r4, 0
- ldr r0, _08019A1C @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _0801994C
- b _08019F76
-_0801994C:
- ldr r0, _08019A20 @ =gActiveBank
- mov r8, r0
- ldr r1, _08019A24 @ =gBattleMons
- adds r1, 0x20
- str r1, [sp, 0x1C]
- movs r2, 0
- str r2, [sp, 0x20]
-_0801995A:
- ldr r3, [sp, 0x1C]
- ldrb r0, [r3]
- cmp r0, 0x24
- beq _08019964
- b _08019AF6
-_08019964:
- ldr r0, _08019A28 @ =gStatuses3
- ldr r5, [sp, 0x20]
- adds r0, r5, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 13
- ands r1, r0
- str r5, [sp, 0x18]
- cmp r1, 0
- bne _0801997A
- b _08019AF6
-_0801997A:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBankIdentity
- movs r1, 0x1
- adds r5, r0, 0
- eors r5, r1
- ands r5, r1
- adds r0, r5, 0
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0x2
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08019A2C @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080199AE
- b _08019ABC
-_080199AE:
- movs r1, 0x58
- adds r0, r6, 0
- muls r0, r1
- ldr r3, _08019A24 @ =gBattleMons
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08019A78
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019A34
- movs r1, 0x58
- adds r0, r7, 0
- muls r0, r1
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08019A34
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019A34
- str r2, [sp, 0x24]
- bl Random
- ldr r2, [sp, 0x24]
- adds r1, r2, 0
- ands r1, r0
- lsls r1, 1
- orrs r5, r1
- adds r0, r5, 0
- bl GetBankByPlayerAI
- mov r2, r8
- strb r0, [r2]
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- ldr r5, _08019A24 @ =gBattleMons
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- ldr r1, [sp, 0x1C]
- strb r0, [r1]
- ldrb r0, [r2]
- muls r0, r3
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- ldr r2, _08019A30 @ =gLastUsedAbility
- strb r0, [r2]
- b _08019AE4
- .align 2, 0
-_08019A1C: .4byte gNoOfAllBanks
-_08019A20: .4byte gActiveBank
-_08019A24: .4byte gBattleMons
-_08019A28: .4byte gStatuses3
-_08019A2C: .4byte gBattleTypeFlags
-_08019A30: .4byte gLastUsedAbility
-_08019A34:
- ldr r3, _08019A74 @ =gBattleMons
- movs r2, 0x58
- adds r0, r6, 0
- muls r0, r2
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08019A78
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019A78
- mov r5, r8
- strb r6, [r5]
- adds r1, r4, 0
- muls r1, r2
- adds r1, r3
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- b _08019AE0
- .align 2, 0
-_08019A74: .4byte gBattleMons
-_08019A78:
- ldr r3, _08019AB8 @ =gBattleMons
- movs r2, 0x58
- adds r0, r7, 0
- muls r0, r2
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08019AEE
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019AEE
- mov r5, r8
- strb r7, [r5]
- adds r1, r4, 0
- muls r1, r2
- adds r1, r3
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- b _08019AE0
- .align 2, 0
-_08019AB8: .4byte gBattleMons
-_08019ABC:
- mov r2, r8
- strb r6, [r2]
- movs r3, 0x58
- adds r0, r6, 0
- muls r0, r3
- ldr r5, _08019B10 @ =gBattleMons
- adds r0, r5
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r1, [r2]
- cmp r1, 0
- beq _08019AEE
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08019AEE
- ldr r0, [sp, 0x1C]
- strb r1, [r0]
- ldrb r0, [r2]
-_08019AE0:
- ldr r1, _08019B14 @ =gLastUsedAbility
- strb r0, [r1]
-_08019AE4:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08019AEE:
- mov r2, r9
- cmp r2, 0
- beq _08019AF6
- b _08019E88
-_08019AF6:
- ldr r3, [sp, 0x1C]
- adds r3, 0x58
- str r3, [sp, 0x1C]
- ldr r5, [sp, 0x20]
- adds r5, 0x4
- str r5, [sp, 0x20]
- adds r4, 0x1
- ldr r0, _08019B18 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- bge _08019B0E
- b _0801995A
-_08019B0E:
- b _08019F76
- .align 2, 0
-_08019B10: .4byte gBattleMons
-_08019B14: .4byte gLastUsedAbility
-_08019B18: .4byte gNoOfAllBanks
-_08019B1C:
- movs r4, 0
- ldr r0, _08019B54 @ =gNoOfAllBanks
- ldrb r1, [r0]
- cmp r4, r1
- blt _08019B28
- b _08019F76
-_08019B28:
- ldr r0, _08019B58 @ =gBattleMons
- adds r5, r1, 0
- ldr r2, _08019B5C @ =gStatuses3
- adds r3, r0, 0
- adds r3, 0x20
- movs r6, 0x80
- lsls r6, 12
-_08019B36:
- ldrb r1, [r3]
- cmp r1, 0x16
- bne _08019B46
- ldr r0, [r2]
- ands r0, r6
- cmp r0, 0
- beq _08019B46
- b _08019F04
-_08019B46:
- adds r2, 0x4
- adds r3, 0x58
- adds r4, 0x1
- cmp r4, r5
- blt _08019B36
- b _08019F76
- .align 2, 0
-_08019B54: .4byte gNoOfAllBanks
-_08019B58: .4byte gBattleMons
-_08019B5C: .4byte gStatuses3
-_08019B60:
- mov r0, r10
- bl GetBankSide
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _08019BB0 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019B76
- b _08019F76
-_08019B76:
- ldr r7, _08019BB4 @ =gBattleMons
-_08019B78:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- adds r3, r4, 0x1
- cmp r0, r5
- beq _08019BA2
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _08019BA2
- ldr r0, _08019BB8 @ =gLastUsedAbility
- strb r6, [r0]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019BA2:
- adds r4, r3, 0
- ldr r0, _08019BB0 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019B78
- b _08019F76
- .align 2, 0
-_08019BB0: .4byte gNoOfAllBanks
-_08019BB4: .4byte gBattleMons
-_08019BB8: .4byte gLastUsedAbility
-_08019BBC:
- mov r0, r10
- bl GetBankSide
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _08019C0C @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019BD2
- b _08019F76
-_08019BD2:
- ldr r7, _08019C10 @ =gBattleMons
-_08019BD4:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- adds r3, r4, 0x1
- cmp r0, r5
- bne _08019BFE
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _08019BFE
- ldr r0, _08019C14 @ =gLastUsedAbility
- strb r6, [r0]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019BFE:
- adds r4, r3, 0
- ldr r0, _08019C0C @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019BD4
- b _08019F76
- .align 2, 0
-_08019C0C: .4byte gNoOfAllBanks
-_08019C10: .4byte gBattleMons
-_08019C14: .4byte gLastUsedAbility
-_08019C18:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0xFD
- beq _08019C40
- cmp r0, 0xFE
- beq _08019C78
- movs r4, 0
- ldr r0, _08019C38 @ =gNoOfAllBanks
- adds r5, r0, 0
- ldrb r2, [r5]
- cmp r4, r2
- blt _08019C32
- b _08019F76
-_08019C32:
- ldr r2, _08019C3C @ =gBattleMons
- b _08019CB0
- .align 2, 0
-_08019C38: .4byte gNoOfAllBanks
-_08019C3C: .4byte gBattleMons
-_08019C40:
- movs r4, 0
- ldr r0, _08019C70 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019C4C
- b _08019F76
-_08019C4C:
- ldr r5, _08019C74 @ =gStatuses3
- movs r2, 0x80
- lsls r2, 9
- adds r1, r0, 0
-_08019C54:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- ands r0, r2
- adds r3, r4, 0x1
- cmp r0, 0
- beq _08019C68
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019C68:
- adds r4, r3, 0
- cmp r4, r1
- blt _08019C54
- b _08019F76
- .align 2, 0
-_08019C70: .4byte gNoOfAllBanks
-_08019C74: .4byte gStatuses3
-_08019C78:
- movs r4, 0
- ldr r0, _08019CA8 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019C84
- b _08019F76
-_08019C84:
- ldr r5, _08019CAC @ =gStatuses3
- movs r2, 0x80
- lsls r2, 10
- adds r1, r0, 0
-_08019C8C:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- ands r0, r2
- adds r3, r4, 0x1
- cmp r0, 0
- beq _08019CA0
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019CA0:
- adds r4, r3, 0
- cmp r4, r1
- blt _08019C8C
- b _08019F76
- .align 2, 0
-_08019CA8: .4byte gNoOfAllBanks
-_08019CAC: .4byte gStatuses3
-_08019CB0:
- movs r0, 0x58
- muls r0, r4
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r4, 0x1
- cmp r0, r6
- bne _08019CCA
- mov r0, r8
- strb r6, [r0]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019CCA:
- adds r4, r3, 0
- ldrb r1, [r5]
- cmp r4, r1
- blt _08019CB0
- b _08019F76
-_08019CD4:
- movs r4, 0
- ldr r0, _08019D10 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019CE0
- b _08019F76
-_08019CE0:
- ldr r7, _08019D14 @ =gBattleMons
- adds r2, r0, 0
- movs r5, 0x58
-_08019CE6:
- adds r0, r4, 0
- muls r0, r5
- adds r1, r0, r7
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r4, 0x1
- cmp r0, r6
- bne _08019D08
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019D08
- mov r0, r8
- strb r6, [r0]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019D08:
- adds r4, r3, 0
- cmp r4, r2
- blt _08019CE6
- b _08019F76
- .align 2, 0
-_08019D10: .4byte gNoOfAllBanks
-_08019D14: .4byte gBattleMons
-_08019D18:
- movs r4, 0
- ldr r0, _08019D50 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019D24
- b _08019F76
-_08019D24:
- ldr r7, _08019D54 @ =gBattleMons
- adds r1, r0, 0
- movs r5, 0x58
- ldr r2, _08019D58 @ =gLastUsedAbility
-_08019D2C:
- adds r0, r4, 0
- muls r0, r5
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r4, 0x1
- cmp r0, r6
- bne _08019D48
- cmp r4, r10
- beq _08019D48
- strb r6, [r2]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019D48:
- adds r4, r3, 0
- cmp r4, r1
- blt _08019D2C
- b _08019F76
- .align 2, 0
-_08019D50: .4byte gNoOfAllBanks
-_08019D54: .4byte gBattleMons
-_08019D58: .4byte gLastUsedAbility
-_08019D5C:
- mov r0, r10
- bl GetBankSide
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _08019DAC @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019D72
- b _08019F76
-_08019D72:
- ldr r7, _08019DB0 @ =gBattleMons
-_08019D74:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- beq _08019DA0
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _08019DA0
- ldr r0, _08019DB4 @ =gLastUsedAbility
- strb r6, [r0]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08019DA0:
- adds r4, 0x1
- ldr r0, _08019DAC @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019D74
- b _08019F76
- .align 2, 0
-_08019DAC: .4byte gNoOfAllBanks
-_08019DB0: .4byte gBattleMons
-_08019DB4: .4byte gLastUsedAbility
-_08019DB8:
- mov r0, r10
- bl GetBankSide
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _08019E08 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019DCE
- b _08019F76
-_08019DCE:
- ldr r7, _08019E0C @ =gBattleMons
-_08019DD0:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- bne _08019DFC
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _08019DFC
- ldr r0, _08019E10 @ =gLastUsedAbility
- strb r6, [r0]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08019DFC:
- adds r4, 0x1
- ldr r0, _08019E08 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019DD0
- b _08019F76
- .align 2, 0
-_08019E08: .4byte gNoOfAllBanks
-_08019E0C: .4byte gBattleMons
-_08019E10: .4byte gLastUsedAbility
-_08019E14:
- ldr r0, _08019E30 @ =gUnknown_081D977D
- bl b_push_move_exec
- ldr r0, _08019E34 @ =0x02000000
- ldr r2, _08019E38 @ =0x00016003
- adds r1, r0, r2
- strb r6, [r1]
- mov r1, r9
- subs r1, 0x1
- ldr r3, _08019E3C @ =0x0001609b
- adds r0, r3
- strb r1, [r0]
- b _08019F76
- .align 2, 0
-_08019E30: .4byte gUnknown_081D977D
-_08019E34: .4byte 0x02000000
-_08019E38: .4byte 0x00016003
-_08019E3C: .4byte 0x0001609b
-_08019E40:
- ldr r0, _08019E5C @ =gUnknown_081D977D
- bl b_push_move_exec
- ldr r0, _08019E60 @ =0x02000000
- ldr r5, _08019E64 @ =0x00016003
- adds r1, r0, r5
- mov r2, r10
- strb r2, [r1]
- mov r1, r9
- subs r1, 0x1
- ldr r3, _08019E68 @ =0x0001609b
- adds r0, r3
- strb r1, [r0]
- b _08019F92
- .align 2, 0
-_08019E5C: .4byte gUnknown_081D977D
-_08019E60: .4byte 0x02000000
-_08019E64: .4byte 0x00016003
-_08019E68: .4byte 0x0001609b
-_08019E6C:
- mov r5, r8
- strb r1, [r5]
- ldr r0, [r2]
- ldr r1, _08019E80 @ =0xfff7ffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _08019E84 @ =gUnknown_081D978C
- bl b_push_move_exec
- b _08019F1A
- .align 2, 0
-_08019E80: .4byte 0xfff7ffff
-_08019E84: .4byte gUnknown_081D978C
-_08019E88:
- ldr r0, _08019EDC @ =gUnknown_081D9726
- bl b_push_move_exec
- ldr r1, _08019EE0 @ =gStatuses3
- ldr r2, [sp, 0x18]
- adds r1, r2, r1
- ldr r0, [r1]
- ldr r2, _08019EE4 @ =0xffefffff
- ands r0, r2
- str r0, [r1]
- ldr r0, _08019EE8 @ =0x02000000
- ldr r3, _08019EEC @ =0x00016003
- adds r0, r3
- strb r4, [r0]
- ldr r1, _08019EF0 @ =gBattleTextBuff1
- movs r4, 0xFD
- strb r4, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r2, _08019EF4 @ =gActiveBank
- ldrb r0, [r2]
- strb r0, [r1, 0x2]
- ldr r3, _08019EF8 @ =gBattlePartyID
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08019EFC @ =gBattleTextBuff2
- strb r4, [r1]
- movs r0, 0x9
- strb r0, [r1, 0x1]
- ldr r0, _08019F00 @ =gLastUsedAbility
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x3]
- b _08019F76
- .align 2, 0
-_08019EDC: .4byte gUnknown_081D9726
-_08019EE0: .4byte gStatuses3
-_08019EE4: .4byte 0xffefffff
-_08019EE8: .4byte 0x02000000
-_08019EEC: .4byte 0x00016003
-_08019EF0: .4byte gBattleTextBuff1
-_08019EF4: .4byte gActiveBank
-_08019EF8: .4byte gBattlePartyID
-_08019EFC: .4byte gBattleTextBuff2
-_08019F00: .4byte gLastUsedAbility
-_08019F04:
- mov r5, r8
- strb r1, [r5]
- ldr r0, [r2]
- ldr r1, _08019F30 @ =0xfff7ffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _08019F34 @ =gBattlescriptCurrInstr
- ldr r0, _08019F38 @ =gUnknown_081D9795
- str r0, [r1]
-_08019F1A:
- ldr r0, _08019F3C @ =0x02000000
- ldr r1, _08019F40 @ =0x000160dd
- adds r0, r1
- strb r4, [r0]
-_08019F22:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- b _08019F76
- .align 2, 0
-_08019F30: .4byte 0xfff7ffff
-_08019F34: .4byte gBattlescriptCurrInstr
-_08019F38: .4byte gUnknown_081D9795
-_08019F3C: .4byte 0x02000000
-_08019F40: .4byte 0x000160dd
-_08019F44:
- movs r4, 0
- ldr r0, _08019FA4 @ =gNoOfAllBanks
- ldrb r1, [r0]
- cmp r4, r1
- bge _08019F76
- ldr r0, _08019FA8 @ =gBattleMons
- adds r2, r1, 0
- adds r1, r0, 0
- adds r1, 0x20
- ldr r3, _08019FAC @ =gLastUsedAbility
-_08019F58:
- ldrb r0, [r1]
- cmp r0, r6
- bne _08019F6E
- cmp r4, r10
- beq _08019F6E
- strb r6, [r3]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08019F6E:
- adds r1, 0x58
- adds r4, 0x1
- cmp r4, r2
- blt _08019F58
-_08019F76:
- mov r2, r9
- cmp r2, 0
- beq _08019F92
-_08019F7C:
- ldr r3, [sp, 0x4]
- cmp r3, 0xB
- bhi _08019F92
- ldr r1, _08019FAC @ =gLastUsedAbility
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08019F92
- adds r1, r0, 0
- mov r0, r10
- bl RecordAbilityBattle
-_08019F92:
- mov r0, r9
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08019FA4: .4byte gNoOfAllBanks
-_08019FA8: .4byte gBattleMons
-_08019FAC: .4byte gLastUsedAbility
- thumb_func_end AbilityBattleEffects
-
- thumb_func_start b_call_bc_move_exec
-b_call_bc_move_exec: @ 8019FB0
- ldr r1, _08019FD8 @ =gBattlescriptCurrInstr
- str r0, [r1]
- ldr r3, _08019FDC @ =0x02017140
- adds r2, r3, 0
- adds r2, 0x20
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r3
- ldr r2, _08019FE0 @ =gBattleMainFunc
- ldr r1, [r2]
- str r1, [r0]
- ldr r0, _08019FE4 @ =sub_8013F54
- str r0, [r2]
- ldr r1, _08019FE8 @ =gFightStateTracker
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08019FD8: .4byte gBattlescriptCurrInstr
-_08019FDC: .4byte 0x02017140
-_08019FE0: .4byte gBattleMainFunc
-_08019FE4: .4byte sub_8013F54
-_08019FE8: .4byte gFightStateTracker
- thumb_func_end b_call_bc_move_exec
-
- thumb_func_start b_push_move_exec
-b_push_move_exec: @ 8019FEC
- push {r4,lr}
- adds r4, r0, 0
- bl b_movescr_stack_push_cursor
- ldr r0, _0801A01C @ =gBattlescriptCurrInstr
- str r4, [r0]
- ldr r3, _0801A020 @ =0x02017140
- adds r2, r3, 0
- adds r2, 0x20
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r3
- ldr r2, _0801A024 @ =gBattleMainFunc
- ldr r1, [r2]
- str r1, [r0]
- ldr r0, _0801A028 @ =sub_8013FBC
- str r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801A01C: .4byte gBattlescriptCurrInstr
-_0801A020: .4byte 0x02017140
-_0801A024: .4byte gBattleMainFunc
-_0801A028: .4byte sub_8013FBC
- thumb_func_end b_push_move_exec
-
- thumb_func_start sub_801A02C
-sub_801A02C: @ 801A02C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r0, 0
- mov r10, r0
- movs r1, 0
- str r1, [sp, 0xC]
- add r0, sp, 0x4
- strb r1, [r0]
- ldr r4, _0801A078 @ =gLastUsedItem
- ldr r1, _0801A07C @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0801A084
- ldr r1, _0801A080 @ =gEnigmaBerries
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x7]
- ldrb r0, [r0, 0x1A]
- b _0801A098
- .align 2, 0
-_0801A078: .4byte gLastUsedItem
-_0801A07C: .4byte gBattleMons
-_0801A080: .4byte gEnigmaBerries
-_0801A084:
- ldrh r0, [r4]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r0, 24
-_0801A098:
- mov r9, r0
- ldr r1, _0801A0C0 @ =gBattleMons
- ldr r0, _0801A0C4 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- str r0, [sp, 0x14]
- cmp r0, 0xAF
- bne _0801A0CC
- ldr r1, _0801A0C8 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x7]
- mov r8, r3
- ldrb r0, [r0, 0x1A]
- b _0801A0E2
- .align 2, 0
-_0801A0C0: .4byte gBattleMons
-_0801A0C4: .4byte gBankAttacker
-_0801A0C8: .4byte gEnigmaBerries
-_0801A0CC:
- ldr r0, [sp, 0x14]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, [sp, 0x14]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r0, 24
-_0801A0E2:
- str r0, [sp, 0x10]
- ldr r2, _0801A118 @ =gBattleMons
- ldr r0, _0801A11C @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r4, [r0, 0x2E]
- cmp r4, 0xAF
- beq _0801A102
- adds r0, r4, 0
- bl ItemId_GetHoldEffect
- adds r0, r4, 0
- bl ItemId_GetHoldEffectParam
-_0801A102:
- ldr r4, [sp, 0x8]
- cmp r4, 0x4
- bls _0801A10C
- bl _0801B3CA
-_0801A10C:
- lsls r0, r4, 2
- ldr r1, _0801A120 @ =_0801A124
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801A118: .4byte gBattleMons
-_0801A11C: .4byte gBankTarget
-_0801A120: .4byte _0801A124
- .align 2, 0
-_0801A124:
- .4byte _0801A138
- .4byte _0801A1D4
- .4byte _0801B3CA
- .4byte _0801AE0C
- .4byte _0801B26C
-_0801A138:
- cmp r5, 0x17
- beq _0801A15C
- cmp r5, 0x20
- beq _0801A144
- bl _0801B3CA
-_0801A144:
- ldr r0, _0801A154 @ =0x02000000
- ldr r5, _0801A158 @ =0x00016056
- adds r0, r5
- movs r1, 0x2
- strb r1, [r0]
- bl _0801B3CA
- .align 2, 0
-_0801A154: .4byte 0x02000000
-_0801A158: .4byte 0x00016056
-_0801A15C:
- ldr r0, _0801A1B8 @ =gBattleMons
- mov r8, r0
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x18
- adds r1, r0
- movs r2, 0x6
- movs r3, 0x7
- mov r10, r3
-_0801A172:
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0801A180
- strb r2, [r1]
- movs r4, 0x5
- str r4, [sp, 0xC]
-_0801A180:
- adds r1, 0x1
- movs r5, 0x1
- negs r5, r5
- add r10, r5
- mov r0, r10
- cmp r0, 0
- bge _0801A172
- ldr r1, [sp, 0xC]
- cmp r1, 0
- bne _0801A198
- bl _0801B3CA
-_0801A198:
- ldr r0, _0801A1BC @ =0x02000000
- ldr r2, _0801A1C0 @ =0x00016003
- adds r0, r2
- strb r7, [r0]
- ldr r0, _0801A1C4 @ =gStringBank
- strb r7, [r0]
- ldr r1, _0801A1C8 @ =gActiveBank
- ldr r0, _0801A1CC @ =gBankAttacker
- strb r7, [r0]
- strb r7, [r1]
- ldr r0, _0801A1D0 @ =gUnknown_081D9A5E
- bl b_call_bc_move_exec
- bl _0801B3CA
- .align 2, 0
-_0801A1B8: .4byte gBattleMons
-_0801A1BC: .4byte 0x02000000
-_0801A1C0: .4byte 0x00016003
-_0801A1C4: .4byte gStringBank
-_0801A1C8: .4byte gActiveBank
-_0801A1CC: .4byte gBankAttacker
-_0801A1D0: .4byte gUnknown_081D9A5E
-_0801A1D4:
- ldr r1, _0801A1FC @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r0, r1
- ldrh r0, [r0, 0x28]
- mov r8, r1
- cmp r0, 0
- bne _0801A1E8
- bl _0801B3CA
-_0801A1E8:
- subs r0, r5, 0x1
- cmp r0, 0x2A
- bls _0801A1F2
- bl _0801AD5A
-_0801A1F2:
- lsls r0, 2
- ldr r1, _0801A200 @ =_0801A204
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801A1FC: .4byte gBattleMons
-_0801A200: .4byte _0801A204
- .align 2, 0
-_0801A204:
- .4byte _0801A2B0
- .4byte _0801AAC8
- .4byte _0801AB84
- .4byte _0801AAF8
- .4byte _0801AB2C
- .4byte _0801AB5C
- .4byte _0801A2F8
- .4byte _0801ABC8
- .4byte _0801ABF8
- .4byte _0801A4CC
- .4byte _0801A548
- .4byte _0801A5C4
- .4byte _0801A634
- .4byte _0801A6C8
- .4byte _0801A75C
- .4byte _0801A7D4
- .4byte _0801A838
- .4byte _0801A89C
- .4byte _0801A900
- .4byte _0801A97C
- .4byte _0801A9C8
- .4byte _0801AD5A
- .4byte _0801A3F8
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD24
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801A46C
-_0801A2B0:
- movs r0, 0x58
- muls r0, r7
- mov r3, r8
- adds r2, r0, r3
- ldrh r0, [r2, 0x2C]
- ldrh r1, [r2, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A2C6
- bl _0801AD5A
-_0801A2C6:
- cmp r6, 0
- beq _0801A2CE
- bl _0801AD5A
-_0801A2CE:
- ldr r4, _0801A2F0 @ =gBattleMoveDamage
- mov r5, r9
- str r5, [r4]
- ldrh r3, [r2, 0x28]
- adds r0, r3, r5
- ldrh r1, [r2, 0x2C]
- cmp r0, r1
- ble _0801A2E2
- subs r0, r1, r3
- str r0, [r4]
-_0801A2E2:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- ldr r0, _0801A2F4 @ =gUnknown_081D9A74
- bl b_call_bc_move_exec
- b _0801A752
- .align 2, 0
-_0801A2F0: .4byte gBattleMoveDamage
-_0801A2F4: .4byte gUnknown_081D9A74
-_0801A2F8:
- cmp r6, 0
- beq _0801A300
- bl _0801AD5A
-_0801A300:
- adds r0, r7, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0801A324
- ldr r1, _0801A31C @ =gBattlePartyID
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0801A320 @ =gPlayerParty
- b _0801A332
- .align 2, 0
-_0801A31C: .4byte gBattlePartyID
-_0801A320: .4byte gPlayerParty
-_0801A324:
- ldr r1, _0801A3A0 @ =gBattlePartyID
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0801A3A4 @ =gEnemyParty
-_0801A332:
- adds r4, r1, r0
- movs r1, 0
- mov r10, r1
- add r5, sp, 0x4
-_0801A33A:
- mov r1, r10
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- mov r1, r10
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r6, 0
- beq _0801A36A
- ldrb r0, [r5]
- cmp r0, 0
- beq _0801A374
-_0801A36A:
- movs r2, 0x1
- add r10, r2
- mov r3, r10
- cmp r3, 0x3
- ble _0801A33A
-_0801A374:
- mov r4, r10
- cmp r4, 0x4
- bne _0801A37E
- bl _0801AD5A
-_0801A37E:
- lsls r2, r4, 24
- lsrs r2, 24
- adds r0, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r2, r0, 24
- add r0, sp, 0x4
- ldrb r0, [r0]
- mov r5, r9
- adds r1, r0, r5
- cmp r1, r2
- ble _0801A3A8
- add r0, sp, 0x4
- strb r2, [r0]
- b _0801A3AC
- .align 2, 0
-_0801A3A0: .4byte gBattlePartyID
-_0801A3A4: .4byte gEnemyParty
-_0801A3A8:
- add r0, sp, 0x4
- strb r1, [r0]
-_0801A3AC:
- ldr r1, _0801A3EC @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- strb r6, [r1, 0x2]
- lsrs r0, r6, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r0, _0801A3F0 @ =gUnknown_081D9A91
- bl b_call_bc_move_exec
- mov r1, r10
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- add r0, sp, 0x4
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl EmitSetAttributes
- ldr r0, _0801A3F4 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- movs r1, 0x3
- str r1, [sp, 0xC]
- bl _0801AD62
- .align 2, 0
-_0801A3EC: .4byte gBattleTextBuff1
-_0801A3F0: .4byte gUnknown_081D9A91
-_0801A3F4: .4byte gActiveBank
-_0801A3F8:
- ldr r0, _0801A450 @ =gBattleMons
- movs r1, 0x58
- muls r1, r7
- adds r0, 0x18
- adds r1, r0
- movs r2, 0x6
- movs r3, 0x7
- mov r10, r3
-_0801A408:
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0801A416
- strb r2, [r1]
- movs r4, 0x5
- str r4, [sp, 0xC]
-_0801A416:
- adds r1, 0x1
- movs r5, 0x1
- negs r5, r5
- add r10, r5
- mov r0, r10
- cmp r0, 0
- bge _0801A408
- movs r1, 0x8
- mov r10, r1
- ldr r2, [sp, 0xC]
- cmp r2, 0
- bne _0801A432
- bl _0801B3CA
-_0801A432:
- ldr r0, _0801A454 @ =0x02000000
- ldr r3, _0801A458 @ =0x00016003
- adds r0, r3
- strb r7, [r0]
- ldr r0, _0801A45C @ =gStringBank
- strb r7, [r0]
- ldr r1, _0801A460 @ =gActiveBank
- ldr r0, _0801A464 @ =gBankAttacker
- strb r7, [r0]
- strb r7, [r1]
- ldr r0, _0801A468 @ =gUnknown_081D9A5E
- bl b_call_bc_move_exec
- bl _0801AD5A
- .align 2, 0
-_0801A450: .4byte gBattleMons
-_0801A454: .4byte 0x02000000
-_0801A458: .4byte 0x00016003
-_0801A45C: .4byte gStringBank
-_0801A460: .4byte gActiveBank
-_0801A464: .4byte gBankAttacker
-_0801A468: .4byte gUnknown_081D9A5E
-_0801A46C:
- movs r0, 0x58
- muls r0, r7
- mov r4, r8
- adds r1, r0, r4
- ldrh r0, [r1, 0x28]
- ldrh r2, [r1, 0x2C]
- cmp r0, r2
- bcc _0801A480
- bl _0801AD5A
-_0801A480:
- cmp r6, 0
- beq _0801A488
- bl _0801AD5A
-_0801A488:
- ldr r3, _0801A4C4 @ =gBattleMoveDamage
- ldrh r0, [r1, 0x2C]
- lsrs r0, 4
- str r0, [r3]
- cmp r0, 0
- bne _0801A498
- movs r0, 0x1
- str r0, [r3]
-_0801A498:
- ldrh r2, [r1, 0x28]
- ldr r0, [r3]
- adds r0, r2, r0
- ldrh r1, [r1, 0x2C]
- cmp r0, r1
- ble _0801A4A8
- subs r0, r1, r2
- str r0, [r3]
-_0801A4A8:
- ldr r0, [r3]
- negs r0, r0
- str r0, [r3]
- ldr r0, _0801A4C8 @ =gUnknown_081D9AA1
- bl b_call_bc_move_exec
- movs r3, 0x4
- str r3, [sp, 0xC]
- adds r0, r7, 0
- adds r1, r5, 0
- bl RecordItemBattle
- bl _0801AD5A
- .align 2, 0
-_0801A4C4: .4byte gBattleMoveDamage
-_0801A4C8: .4byte gUnknown_081D9AA1
-_0801A4CC:
- movs r0, 0x58
- adds r4, r7, 0
- muls r4, r0
- str r4, [sp, 0x18]
- add r4, r8
- ldrh r0, [r4, 0x2C]
- ldrh r1, [r4, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A4E4
- bl _0801AD5A
-_0801A4E4:
- cmp r6, 0
- beq _0801A4EC
- bl _0801AD5A
-_0801A4EC:
- ldr r1, _0801A540 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- strb r6, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r5, _0801A544 @ =gBattleMoveDamage
- ldrh r0, [r4, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _0801A510
- movs r0, 0x1
- str r0, [r5]
-_0801A510:
- ldrh r2, [r4, 0x28]
- ldr r0, [r5]
- adds r0, r2, r0
- ldrh r1, [r4, 0x2C]
- cmp r0, r1
- ble _0801A520
- subs r0, r1, r2
- str r0, [r5]
-_0801A520:
- ldr r0, [r5]
- negs r0, r0
- str r0, [r5]
- mov r0, r8
- adds r0, 0x48
- ldr r5, [sp, 0x18]
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0
-_0801A532:
- bl sub_8040A7C
- lsls r0, 24
- cmp r0, 0
- bge _0801A53E
- b _0801A738
-_0801A53E:
- b _0801A74C
- .align 2, 0
-_0801A540: .4byte gBattleTextBuff1
-_0801A544: .4byte gBattleMoveDamage
-_0801A548:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- str r1, [sp, 0x1C]
- adds r5, r1, 0
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A562
- bl _0801AD5A
-_0801A562:
- cmp r6, 0
- beq _0801A56A
- bl _0801AD5A
-_0801A56A:
- ldr r1, _0801A5BC @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r6, 0x1
- strb r6, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, _0801A5C0 @ =gBattleMoveDamage
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801A58E
- str r6, [r4]
-_0801A58E:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _0801A59E
- subs r0, r1, r2
- str r0, [r4]
-_0801A59E:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r2, [sp, 0x1C]
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x1
- bl sub_8040A7C
- lsls r0, 24
- cmp r0, 0
- blt _0801A6A4
- b _0801A6B8
- .align 2, 0
-_0801A5BC: .4byte gBattleTextBuff1
-_0801A5C0: .4byte gBattleMoveDamage
-_0801A5C4:
- movs r0, 0x58
- adds r4, r7, 0
- muls r4, r0
- str r4, [sp, 0x20]
- adds r5, r4, 0
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A5DC
- b _0801AD5A
-_0801A5DC:
- cmp r6, 0
- beq _0801A5E2
- b _0801AD5A
-_0801A5E2:
- ldr r1, _0801A62C @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, _0801A630 @ =gBattleMoveDamage
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801A608
- movs r0, 0x1
- str r0, [r4]
-_0801A608:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _0801A618
- subs r0, r1, r2
- str r0, [r4]
-_0801A618:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r5, [sp, 0x20]
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0x2
- b _0801A532
- .align 2, 0
-_0801A62C: .4byte gBattleTextBuff1
-_0801A630: .4byte gBattleMoveDamage
-_0801A634:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- str r1, [sp, 0x24]
- adds r5, r1, 0
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A64C
- b _0801AD5A
-_0801A64C:
- cmp r6, 0
- beq _0801A652
- b _0801AD5A
-_0801A652:
- ldr r1, _0801A6AC @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r0, 0x3
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, _0801A6B0 @ =gBattleMoveDamage
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801A678
- movs r0, 0x1
- str r0, [r4]
-_0801A678:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _0801A688
- subs r0, r1, r2
- str r0, [r4]
-_0801A688:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r2, [sp, 0x24]
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x3
- bl sub_8040A7C
- lsls r0, 24
- cmp r0, 0
- bge _0801A6B8
-_0801A6A4:
- ldr r0, _0801A6B4 @ =gUnknown_081D9AD4
- bl b_call_bc_move_exec
- b _0801A6BE
- .align 2, 0
-_0801A6AC: .4byte gBattleTextBuff1
-_0801A6B0: .4byte gBattleMoveDamage
-_0801A6B4: .4byte gUnknown_081D9AD4
-_0801A6B8:
- ldr r0, _0801A6C4 @ =gUnknown_081D9A74
- bl b_call_bc_move_exec
-_0801A6BE:
- movs r3, 0x4
- str r3, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801A6C4: .4byte gUnknown_081D9A74
-_0801A6C8:
- movs r0, 0x58
- adds r4, r7, 0
- muls r4, r0
- str r4, [sp, 0x28]
- adds r5, r4, 0
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A6E0
- b _0801AD5A
-_0801A6E0:
- cmp r6, 0
- beq _0801A6E6
- b _0801AD5A
-_0801A6E6:
- ldr r1, _0801A740 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r0, 0x4
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, _0801A744 @ =gBattleMoveDamage
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801A70C
- movs r0, 0x1
- str r0, [r4]
-_0801A70C:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _0801A71C
- subs r0, r1, r2
- str r0, [r4]
-_0801A71C:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r5, [sp, 0x28]
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0x4
- bl sub_8040A7C
- lsls r0, 24
- cmp r0, 0
- bge _0801A74C
-_0801A738:
- ldr r0, _0801A748 @ =gUnknown_081D9AD4
- bl b_call_bc_move_exec
- b _0801A752
- .align 2, 0
-_0801A740: .4byte gBattleTextBuff1
-_0801A744: .4byte gBattleMoveDamage
-_0801A748: .4byte gUnknown_081D9AD4
-_0801A74C:
- ldr r0, _0801A758 @ =gUnknown_081D9A74
- bl b_call_bc_move_exec
-_0801A752:
- movs r0, 0x4
- str r0, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801A758: .4byte gUnknown_081D9A74
-_0801A75C:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A774
- b _0801AD5A
-_0801A774:
- cmp r6, 0
- beq _0801A77A
- b _0801AD5A
-_0801A77A:
- movs r0, 0x19
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A784
- b _0801AD5A
-_0801A784:
- ldr r1, _0801A7BC @ =gBattleTextBuff1
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x1
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _0801A7C0 @ =gBattleTextBuff2
- strb r2, [r1]
- strb r6, [r1, 0x1]
- movs r0, 0xD2
- strb r0, [r1, 0x2]
- strb r6, [r1, 0x3]
- subs r0, 0xD3
- strb r0, [r1, 0x4]
- ldr r0, _0801A7C4 @ =gEffectBank
- strb r7, [r0]
- ldr r1, _0801A7C8 @ =0x02000000
- ldr r3, _0801A7CC @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x11
- strb r0, [r2]
- ldr r4, _0801A7D0 @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0xF
- b _0801A94C
- .align 2, 0
-_0801A7BC: .4byte gBattleTextBuff1
-_0801A7C0: .4byte gBattleTextBuff2
-_0801A7C4: .4byte gEffectBank
-_0801A7C8: .4byte 0x02000000
-_0801A7CC: .4byte 0x0001601e
-_0801A7D0: .4byte 0x000160a4
-_0801A7D4:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A7EC
- b _0801AD5A
-_0801A7EC:
- cmp r6, 0
- beq _0801A7F2
- b _0801AD5A
-_0801A7F2:
- movs r0, 0x1A
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A7FC
- b _0801AD5A
-_0801A7FC:
- ldr r1, _0801A824 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801A828 @ =gEffectBank
- strb r7, [r0]
- ldr r1, _0801A82C @ =0x02000000
- ldr r3, _0801A830 @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x12
- strb r0, [r2]
- ldr r4, _0801A834 @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0x10
- b _0801A94C
- .align 2, 0
-_0801A824: .4byte gBattleTextBuff1
-_0801A828: .4byte gEffectBank
-_0801A82C: .4byte 0x02000000
-_0801A830: .4byte 0x0001601e
-_0801A834: .4byte 0x000160a4
-_0801A838:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A850
- b _0801AD5A
-_0801A850:
- cmp r6, 0
- beq _0801A856
- b _0801AD5A
-_0801A856:
- movs r0, 0x1B
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A860
- b _0801AD5A
-_0801A860:
- ldr r1, _0801A888 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x3
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801A88C @ =gEffectBank
- strb r7, [r0]
- ldr r1, _0801A890 @ =0x02000000
- ldr r3, _0801A894 @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x13
- strb r0, [r2]
- ldr r4, _0801A898 @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0x11
- b _0801A94C
- .align 2, 0
-_0801A888: .4byte gBattleTextBuff1
-_0801A88C: .4byte gEffectBank
-_0801A890: .4byte 0x02000000
-_0801A894: .4byte 0x0001601e
-_0801A898: .4byte 0x000160a4
-_0801A89C:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A8B4
- b _0801AD5A
-_0801A8B4:
- cmp r6, 0
- beq _0801A8BA
- b _0801AD5A
-_0801A8BA:
- movs r0, 0x1C
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A8C4
- b _0801AD5A
-_0801A8C4:
- ldr r1, _0801A8EC @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x4
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801A8F0 @ =gEffectBank
- strb r7, [r0]
- ldr r1, _0801A8F4 @ =0x02000000
- ldr r3, _0801A8F8 @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x14
- strb r0, [r2]
- ldr r4, _0801A8FC @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0x12
- b _0801A94C
- .align 2, 0
-_0801A8EC: .4byte gBattleTextBuff1
-_0801A8F0: .4byte gEffectBank
-_0801A8F4: .4byte 0x02000000
-_0801A8F8: .4byte 0x0001601e
-_0801A8FC: .4byte 0x000160a4
-_0801A900:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A918
- b _0801AD5A
-_0801A918:
- cmp r6, 0
- beq _0801A91E
- b _0801AD5A
-_0801A91E:
- movs r0, 0x1D
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A928
- b _0801AD5A
-_0801A928:
- ldr r1, _0801A960 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801A964 @ =gEffectBank
- strb r7, [r0]
- ldr r1, _0801A968 @ =0x02000000
- ldr r3, _0801A96C @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x15
- strb r0, [r2]
- ldr r4, _0801A970 @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0x13
-_0801A94C:
- strb r0, [r2]
- ldr r5, _0801A974 @ =0x000160a5
- adds r1, r5
- strb r6, [r1]
- ldr r0, _0801A978 @ =gUnknown_081D9AFE
- bl b_call_bc_move_exec
- movs r0, 0x5
- str r0, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801A960: .4byte gBattleTextBuff1
-_0801A964: .4byte gEffectBank
-_0801A968: .4byte 0x02000000
-_0801A96C: .4byte 0x0001601e
-_0801A970: .4byte 0x000160a4
-_0801A974: .4byte 0x000160a5
-_0801A978: .4byte gUnknown_081D9AFE
-_0801A97C:
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- mov r1, r8
- adds r0, r5, r1
- ldrh r4, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A996
- b _0801AD5A
-_0801A996:
- cmp r6, 0
- beq _0801A99C
- b _0801AD5A
-_0801A99C:
- mov r0, r8
- adds r0, 0x50
- adds r1, r5, r0
- ldr r2, [r1]
- movs r3, 0x80
- lsls r3, 13
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _0801A9B2
- b _0801AD5A
-_0801A9B2:
- orrs r2, r3
- str r2, [r1]
- ldr r0, _0801A9C4 @ =gUnknown_081D9B19
- bl b_call_bc_move_exec
- movs r2, 0x2
- str r2, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801A9C4: .4byte gUnknown_081D9B19
-_0801A9C8:
- cmp r6, 0
- beq _0801A9CE
- b _0801AD5A
-_0801A9CE:
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- mov r3, r8
- adds r0, r5, r3
- ldrh r4, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A9E8
- b _0801AD5A
-_0801A9E8:
- movs r4, 0
- mov r10, r4
- adds r0, r5, 0x1
- mov r1, r8
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xB
- ble _0801AA18
- mov r0, r8
- adds r0, 0x19
- adds r1, r5, r0
-_0801AA04:
- adds r1, 0x1
- movs r5, 0x1
- add r10, r5
- mov r0, r10
- cmp r0, 0x4
- bgt _0801AA18
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _0801AA04
-_0801AA18:
- mov r1, r10
- cmp r1, 0x5
- bne _0801AA20
- b _0801AD5A
-_0801AA20:
- movs r0, 0x58
- muls r0, r7
- adds r4, r0, 0x1
- ldr r5, _0801AAA4 @ =gUnknown_02024A98
-_0801AA28:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- adds r0, r4
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xC
- beq _0801AA28
- ldr r1, _0801AAA8 @ =gBattleTextBuff1
- movs r3, 0
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- mov r0, r10
- adds r0, 0x1
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801AAAC @ =gBattleTextBuff2
- strb r2, [r0]
- strb r3, [r0, 0x1]
- movs r1, 0xD1
- strb r1, [r0, 0x2]
- strb r3, [r0, 0x3]
- strb r3, [r0, 0x4]
- movs r1, 0xD2
- strb r1, [r0, 0x5]
- strb r3, [r0, 0x6]
- subs r1, 0xD3
- strb r1, [r0, 0x7]
- ldr r0, _0801AAB0 @ =gEffectBank
- strb r7, [r0]
- ldr r1, _0801AAB4 @ =0x02000000
- mov r2, r10
- adds r2, 0x21
- ldr r4, _0801AAB8 @ =0x0001601e
- adds r0, r1, r4
- strb r2, [r0]
- adds r2, 0x6
- ldr r5, _0801AABC @ =0x000160a4
- adds r0, r1, r5
- strb r2, [r0]
- ldr r0, _0801AAC0 @ =0x000160a5
- adds r1, r0
- strb r3, [r1]
- ldr r0, _0801AAC4 @ =gUnknown_081D9AFE
- bl b_call_bc_move_exec
- movs r1, 0x5
- str r1, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AAA4: .4byte gUnknown_02024A98
-_0801AAA8: .4byte gBattleTextBuff1
-_0801AAAC: .4byte gBattleTextBuff2
-_0801AAB0: .4byte gEffectBank
-_0801AAB4: .4byte 0x02000000
-_0801AAB8: .4byte 0x0001601e
-_0801AABC: .4byte 0x000160a4
-_0801AAC0: .4byte 0x000160a5
-_0801AAC4: .4byte gUnknown_081D9AFE
-_0801AAC8:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- bne _0801AAE0
- b _0801AD5A
-_0801AAE0:
- movs r0, 0x41
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AAF4 @ =gUnknown_081D99B6
- bl b_call_bc_move_exec
- movs r2, 0x1
- str r2, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AAF4: .4byte gUnknown_081D99B6
-_0801AAF8:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x88
- ands r0, r2
- cmp r0, 0
- bne _0801AB10
- b _0801AD5A
-_0801AB10:
- ldr r0, _0801AB24 @ =0xfffff077
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AB28 @ =gUnknown_081D99CE
- bl b_call_bc_move_exec
- movs r3, 0x1
- str r3, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AB24: .4byte 0xfffff077
-_0801AB28: .4byte gUnknown_081D99CE
-_0801AB2C:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- bne _0801AB44
- b _0801AD5A
-_0801AB44:
- movs r0, 0x11
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AB58 @ =gUnknown_081D99E6
- bl b_call_bc_move_exec
- movs r4, 0x1
- str r4, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AB58: .4byte gUnknown_081D99E6
-_0801AB5C:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- bne _0801AB74
- b _0801AD5A
-_0801AB74:
- movs r0, 0x21
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AB80 @ =gUnknown_081D99FE
- b _0801AD0E
- .align 2, 0
-_0801AB80: .4byte gUnknown_081D99FE
-_0801AB84:
- movs r0, 0x58
- adds r3, r7, 0
- muls r3, r0
- mov r0, r8
- adds r0, 0x4C
- adds r2, r3, r0
- ldr r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801AB9C
- b _0801AD5A
-_0801AB9C:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- mov r1, r8
- adds r1, 0x50
- adds r1, r3, r1
- ldr r0, [r1]
- ldr r2, _0801ABC0 @ =0xf7ffffff
- ands r0, r2
- str r0, [r1]
- ldr r0, _0801ABC4 @ =gUnknown_081D9A16
- bl b_call_bc_move_exec
- movs r0, 0x1
- str r0, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801ABC0: .4byte 0xf7ffffff
-_0801ABC4: .4byte gUnknown_081D9A16
-_0801ABC8:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x50
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x7
- ands r0, r2
- cmp r0, 0
- bne _0801ABE0
- b _0801AD5A
-_0801ABE0:
- movs r0, 0x8
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801ABF4 @ =gUnknown_081D9A2E
- bl b_call_bc_move_exec
- movs r1, 0x2
- str r1, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801ABF4: .4byte gUnknown_081D9A2E
-_0801ABF8:
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- mov r0, r8
- adds r0, 0x4C
- adds r4, r5, r0
- ldr r2, [r4]
- ldrb r0, [r4]
- cmp r0, 0
- bne _0801AC1E
- mov r0, r8
- adds r0, 0x50
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801AC1E
- b _0801AD5A
-_0801AC1E:
- movs r3, 0
- mov r10, r3
- movs r0, 0x88
- ands r2, r0
- cmp r2, 0
- beq _0801AC36
- ldr r0, _0801ACC4 @ =gBattleTextBuff1
- ldr r1, _0801ACC8 @ =gStatusConditionString_PoisonJpn
- bl StringCopy
- movs r0, 0x1
- mov r10, r0
-_0801AC36:
- ldr r0, [r4]
- movs r1, 0x7
- mov r9, r1
- ands r0, r1
- mov r6, r8
- adds r6, 0x50
- cmp r0, 0
- beq _0801AC5C
- adds r2, r5, r6
- ldr r0, [r2]
- ldr r1, _0801ACCC @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _0801ACC4 @ =gBattleTextBuff1
- ldr r1, _0801ACD0 @ =gStatusConditionString_SleepJpn
- bl StringCopy
- movs r2, 0x1
- add r10, r2
-_0801AC5C:
- ldr r0, [r4]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801AC72
- ldr r0, _0801ACC4 @ =gBattleTextBuff1
- ldr r1, _0801ACD4 @ =gStatusConditionString_ParalysisJpn
- bl StringCopy
- movs r3, 0x1
- add r10, r3
-_0801AC72:
- ldr r0, [r4]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0801AC88
- ldr r0, _0801ACC4 @ =gBattleTextBuff1
- ldr r1, _0801ACD8 @ =gStatusConditionString_BurnJpn
- bl StringCopy
- movs r0, 0x1
- add r10, r0
-_0801AC88:
- ldr r0, [r4]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801AC9E
- ldr r0, _0801ACC4 @ =gBattleTextBuff1
- ldr r1, _0801ACDC @ =gStatusConditionString_IceJpn
- bl StringCopy
- movs r1, 0x1
- add r10, r1
-_0801AC9E:
- adds r0, r5, r6
- ldr r0, [r0]
- mov r2, r9
- ands r0, r2
- cmp r0, 0
- beq _0801ACB6
- ldr r0, _0801ACC4 @ =gBattleTextBuff1
- ldr r1, _0801ACE0 @ =gStatusConditionString_ConfusionJpn
- bl StringCopy
- movs r3, 0x1
- add r10, r3
-_0801ACB6:
- mov r4, r10
- cmp r4, 0x1
- bgt _0801ACE8
- ldr r1, _0801ACE4 @ =gBattleCommunication
- movs r0, 0
- b _0801ACEC
- .align 2, 0
-_0801ACC4: .4byte gBattleTextBuff1
-_0801ACC8: .4byte gStatusConditionString_PoisonJpn
-_0801ACCC: .4byte 0xf7ffffff
-_0801ACD0: .4byte gStatusConditionString_SleepJpn
-_0801ACD4: .4byte gStatusConditionString_ParalysisJpn
-_0801ACD8: .4byte gStatusConditionString_BurnJpn
-_0801ACDC: .4byte gStatusConditionString_IceJpn
-_0801ACE0: .4byte gStatusConditionString_ConfusionJpn
-_0801ACE4: .4byte gBattleCommunication
-_0801ACE8:
- ldr r1, _0801AD18 @ =gBattleCommunication
- movs r0, 0x1
-_0801ACEC:
- strb r0, [r1, 0x5]
- ldr r2, _0801AD1C @ =gBattleMons
- movs r0, 0x58
- adds r3, r7, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- movs r1, 0
- str r1, [r0]
- adds r2, 0x50
- adds r3, r2
- ldr r0, [r3]
- subs r1, 0x8
- ands r0, r1
- str r0, [r3]
- ldr r0, _0801AD20 @ =gUnknown_081D9A44
-_0801AD0E:
- bl b_call_bc_move_exec
- movs r5, 0x1
- str r5, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AD18: .4byte gBattleCommunication
-_0801AD1C: .4byte gBattleMons
-_0801AD20: .4byte gUnknown_081D9A44
-_0801AD24:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x50
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r2
- cmp r0, 0
- beq _0801AD5A
- ldr r0, _0801AD84 @ =0xfff0ffff
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AD88 @ =gBattleTextBuff1
- ldr r1, _0801AD8C @ =gStatusConditionString_LoveJpn
- bl StringCopy
- ldr r0, _0801AD90 @ =gUnknown_081D9A44
- bl b_call_bc_move_exec
- ldr r1, _0801AD94 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
- movs r0, 0x2
- str r0, [sp, 0xC]
-_0801AD5A:
- ldr r1, [sp, 0xC]
- cmp r1, 0
- bne _0801AD62
- b _0801B3CA
-_0801AD62:
- ldr r0, _0801AD98 @ =0x02000000
- ldr r2, _0801AD9C @ =0x00016003
- adds r0, r2
- strb r7, [r0]
- ldr r0, _0801ADA0 @ =gStringBank
- strb r7, [r0]
- ldr r4, _0801ADA4 @ =gActiveBank
- ldr r0, _0801ADA8 @ =gBankAttacker
- strb r7, [r0]
- strb r7, [r4]
- ldr r3, [sp, 0xC]
- cmp r3, 0x1
- beq _0801ADAC
- cmp r3, 0x3
- beq _0801ADB2
- b _0801B3CA
- .align 2, 0
-_0801AD84: .4byte 0xfff0ffff
-_0801AD88: .4byte gBattleTextBuff1
-_0801AD8C: .4byte gStatusConditionString_LoveJpn
-_0801AD90: .4byte gUnknown_081D9A44
-_0801AD94: .4byte gBattleCommunication
-_0801AD98: .4byte 0x02000000
-_0801AD9C: .4byte 0x00016003
-_0801ADA0: .4byte gStringBank
-_0801ADA4: .4byte gActiveBank
-_0801ADA8: .4byte gBankAttacker
-_0801ADAC:
- movs r0, 0x58
- muls r0, r7
- b _0801B224
-_0801ADB2:
- ldr r4, _0801AE00 @ =gBattleMons
- movs r0, 0x58
- adds r3, r7, 0
- muls r3, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- beq _0801ADCE
- b _0801B3CA
-_0801ADCE:
- ldr r1, _0801AE04 @ =gDisableStructs
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0801AE08 @ =gBitTable
- mov r5, r10
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801ADEE
- b _0801B3CA
-_0801ADEE:
- adds r1, r5, r3
- adds r0, r4, 0
- adds r0, 0x24
- adds r1, r0
- add r0, sp, 0x4
- ldrb r0, [r0]
- strb r0, [r1]
- b _0801B3CA
- .align 2, 0
-_0801AE00: .4byte gBattleMons
-_0801AE04: .4byte gDisableStructs
-_0801AE08: .4byte gBitTable
-_0801AE0C:
- movs r7, 0
- ldr r0, _0801AE3C @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r7, r0
- bcc _0801AE18
- b _0801B3CA
-_0801AE18:
- ldr r4, _0801AE40 @ =gLastUsedItem
- ldr r1, _0801AE44 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0801AE4C
- ldr r1, _0801AE48 @ =gEnigmaBerries
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x7]
- b _0801AE5C
- .align 2, 0
-_0801AE3C: .4byte gNoOfAllBanks
-_0801AE40: .4byte gLastUsedItem
-_0801AE44: .4byte gBattleMons
-_0801AE48: .4byte gEnigmaBerries
-_0801AE4C:
- ldrh r0, [r4]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4]
- bl ItemId_GetHoldEffectParam
-_0801AE5C:
- subs r0, r5, 0x2
- cmp r0, 0x1A
- bls _0801AE64
- b _0801B208
-_0801AE64:
- lsls r0, 2
- ldr r1, _0801AE70 @ =_0801AE74
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801AE70: .4byte _0801AE74
- .align 2, 0
-_0801AE74:
- .4byte _0801AEE0
- .4byte _0801AFC8
- .4byte _0801AF1C
- .4byte _0801AF58
- .4byte _0801AF94
- .4byte _0801B208
- .4byte _0801B018
- .4byte _0801B0AC
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B1A0
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B054
-_0801AEE0:
- ldr r1, _0801AF10 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0801AEF6
- b _0801B208
-_0801AEF6:
- movs r0, 0x41
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801AF14 @ =gBattlescriptCurrInstr
- ldr r0, _0801AF18 @ =gUnknown_081D99BC
- str r0, [r1]
- movs r0, 0x1
- str r0, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801AF10: .4byte gBattleMons
-_0801AF14: .4byte gBattlescriptCurrInstr
-_0801AF18: .4byte gUnknown_081D99BC
-_0801AF1C:
- ldr r1, _0801AF48 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _0801AF32
- b _0801B208
-_0801AF32:
- ldr r0, _0801AF4C @ =0xfffff077
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801AF50 @ =gBattlescriptCurrInstr
- ldr r0, _0801AF54 @ =gUnknown_081D99D4
- str r0, [r1]
- movs r1, 0x1
- str r1, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801AF48: .4byte gBattleMons
-_0801AF4C: .4byte 0xfffff077
-_0801AF50: .4byte gBattlescriptCurrInstr
-_0801AF54: .4byte gUnknown_081D99D4
-_0801AF58:
- ldr r1, _0801AF88 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0801AF6E
- b _0801B208
-_0801AF6E:
- movs r0, 0x11
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801AF8C @ =gBattlescriptCurrInstr
- ldr r0, _0801AF90 @ =gUnknown_081D99EC
- str r0, [r1]
- movs r2, 0x1
- str r2, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801AF88: .4byte gBattleMons
-_0801AF8C: .4byte gBattlescriptCurrInstr
-_0801AF90: .4byte gUnknown_081D99EC
-_0801AF94:
- ldr r1, _0801AFBC @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0801AFAA
- b _0801B208
-_0801AFAA:
- movs r0, 0x21
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801AFC0 @ =gBattlescriptCurrInstr
- ldr r0, _0801AFC4 @ =gUnknown_081D9A04
- b _0801B168
- .align 2, 0
-_0801AFBC: .4byte gBattleMons
-_0801AFC0: .4byte gBattlescriptCurrInstr
-_0801AFC4: .4byte gUnknown_081D9A04
-_0801AFC8:
- ldr r2, _0801B008 @ =gBattleMons
- movs r0, 0x58
- adds r4, r7, 0
- muls r4, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r3, r4, r0
- ldr r1, [r3]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801AFE2
- b _0801B208
-_0801AFE2:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r3]
- adds r2, 0x50
- adds r2, r4, r2
- ldr r0, [r2]
- ldr r1, _0801B00C @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B010 @ =gBattlescriptCurrInstr
- ldr r0, _0801B014 @ =gUnknown_081D9A1C
- str r0, [r1]
- movs r4, 0x1
- str r4, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801B008: .4byte gBattleMons
-_0801B00C: .4byte 0xf7ffffff
-_0801B010: .4byte gBattlescriptCurrInstr
-_0801B014: .4byte gUnknown_081D9A1C
-_0801B018:
- ldr r1, _0801B048 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801B02E
- b _0801B208
-_0801B02E:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B04C @ =gBattlescriptCurrInstr
- ldr r0, _0801B050 @ =gUnknown_081D9A34
- str r0, [r1]
- movs r5, 0x2
- str r5, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801B048: .4byte gBattleMons
-_0801B04C: .4byte gBattlescriptCurrInstr
-_0801B050: .4byte gUnknown_081D9A34
-_0801B054:
- ldr r1, _0801B090 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r1
- cmp r0, 0
- bne _0801B06C
- b _0801B208
-_0801B06C:
- ldr r0, _0801B094 @ =0xfff0ffff
- ands r1, r0
- str r1, [r2]
- ldr r0, _0801B098 @ =gBattleTextBuff1
- ldr r1, _0801B09C @ =gStatusConditionString_LoveJpn
- bl StringCopy
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B0A0 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
- ldr r1, _0801B0A4 @ =gBattlescriptCurrInstr
- ldr r0, _0801B0A8 @ =gUnknown_081D9A4A
- str r0, [r1]
- movs r0, 0x2
- str r0, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801B090: .4byte gBattleMons
-_0801B094: .4byte 0xfff0ffff
-_0801B098: .4byte gBattleTextBuff1
-_0801B09C: .4byte gStatusConditionString_LoveJpn
-_0801B0A0: .4byte gBattleCommunication
-_0801B0A4: .4byte gBattlescriptCurrInstr
-_0801B0A8: .4byte gUnknown_081D9A4A
-_0801B0AC:
- ldr r4, _0801B170 @ =gBattleMons
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- adds r0, r4, 0
- adds r0, 0x4C
- adds r6, r5, r0
- ldr r2, [r6]
- ldrb r0, [r6]
- cmp r0, 0
- bne _0801B0D4
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801B0D4
- b _0801B208
-_0801B0D4:
- movs r0, 0x88
- ands r2, r0
- cmp r2, 0
- beq _0801B0E4
- ldr r0, _0801B174 @ =gBattleTextBuff1
- ldr r1, _0801B178 @ =gStatusConditionString_PoisonJpn
- bl StringCopy
-_0801B0E4:
- ldr r0, [r6]
- movs r1, 0x7
- mov r8, r1
- ands r0, r1
- adds r4, 0x50
- cmp r0, 0
- beq _0801B104
- adds r2, r5, r4
- ldr r0, [r2]
- ldr r1, _0801B17C @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _0801B174 @ =gBattleTextBuff1
- ldr r1, _0801B180 @ =gStatusConditionString_SleepJpn
- bl StringCopy
-_0801B104:
- ldr r0, [r6]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801B116
- ldr r0, _0801B174 @ =gBattleTextBuff1
- ldr r1, _0801B184 @ =gStatusConditionString_ParalysisJpn
- bl StringCopy
-_0801B116:
- ldr r0, [r6]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0801B128
- ldr r0, _0801B174 @ =gBattleTextBuff1
- ldr r1, _0801B188 @ =gStatusConditionString_BurnJpn
- bl StringCopy
-_0801B128:
- ldr r0, [r6]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801B13A
- ldr r0, _0801B174 @ =gBattleTextBuff1
- ldr r1, _0801B18C @ =gStatusConditionString_IceJpn
- bl StringCopy
-_0801B13A:
- adds r5, r4
- ldr r0, [r5]
- mov r2, r8
- ands r0, r2
- cmp r0, 0
- beq _0801B14E
- ldr r0, _0801B174 @ =gBattleTextBuff1
- ldr r1, _0801B190 @ =gStatusConditionString_ConfusionJpn
- bl StringCopy
-_0801B14E:
- movs r4, 0
- str r4, [r6]
- ldr r0, [r5]
- movs r1, 0x8
- negs r1, r1
- ands r0, r1
- str r0, [r5]
- bl b_movescr_stack_push_cursor
- ldr r0, _0801B194 @ =gBattleCommunication
- strb r4, [r0, 0x5]
- ldr r1, _0801B198 @ =gBattlescriptCurrInstr
- ldr r0, _0801B19C @ =gUnknown_081D9A4A
-_0801B168:
- str r0, [r1]
- movs r3, 0x1
- str r3, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801B170: .4byte gBattleMons
-_0801B174: .4byte gBattleTextBuff1
-_0801B178: .4byte gStatusConditionString_PoisonJpn
-_0801B17C: .4byte 0xf7ffffff
-_0801B180: .4byte gStatusConditionString_SleepJpn
-_0801B184: .4byte gStatusConditionString_ParalysisJpn
-_0801B188: .4byte gStatusConditionString_BurnJpn
-_0801B18C: .4byte gStatusConditionString_IceJpn
-_0801B190: .4byte gStatusConditionString_ConfusionJpn
-_0801B194: .4byte gBattleCommunication
-_0801B198: .4byte gBattlescriptCurrInstr
-_0801B19C: .4byte gUnknown_081D9A4A
-_0801B1A0:
- ldr r4, _0801B1F0 @ =gBattleMons
- mov r8, r4
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x18
- adds r1, r0
- movs r2, 0x6
- movs r5, 0x7
- mov r10, r5
-_0801B1B6:
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0801B1C4
- strb r2, [r1]
- movs r0, 0x5
- str r0, [sp, 0xC]
-_0801B1C4:
- adds r1, 0x1
- movs r3, 0x1
- negs r3, r3
- add r10, r3
- mov r4, r10
- cmp r4, 0
- bge _0801B1B6
- ldr r5, [sp, 0xC]
- cmp r5, 0
- beq _0801B254
- ldr r0, _0801B1F4 @ =0x02000000
- ldr r1, _0801B1F8 @ =0x00016003
- adds r0, r1
- strb r7, [r0]
- ldr r0, _0801B1FC @ =gStringBank
- strb r7, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B200 @ =gBattlescriptCurrInstr
- ldr r0, _0801B204 @ =gUnknown_081D9A64
- str r0, [r1]
- b _0801B3CA
- .align 2, 0
-_0801B1F0: .4byte gBattleMons
-_0801B1F4: .4byte 0x02000000
-_0801B1F8: .4byte 0x00016003
-_0801B1FC: .4byte gStringBank
-_0801B200: .4byte gBattlescriptCurrInstr
-_0801B204: .4byte gUnknown_081D9A64
-_0801B208:
- ldr r2, [sp, 0xC]
- cmp r2, 0
- beq _0801B254
-_0801B20E:
- ldr r0, _0801B240 @ =0x02000000
- ldr r3, _0801B244 @ =0x00016003
- adds r0, r3
- strb r7, [r0]
- ldr r0, _0801B248 @ =gStringBank
- strb r7, [r0]
- ldr r4, _0801B24C @ =gActiveBank
- strb r7, [r4]
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
-_0801B224:
- ldr r1, _0801B250 @ =gUnknown_02024ACC
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _0801B3CA
- .align 2, 0
-_0801B240: .4byte 0x02000000
-_0801B244: .4byte 0x00016003
-_0801B248: .4byte gStringBank
-_0801B24C: .4byte gActiveBank
-_0801B250: .4byte gUnknown_02024ACC
-_0801B254:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0801B268 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r7, r0
- bcs _0801B264
- b _0801AE18
-_0801B264:
- b _0801B3CA
- .align 2, 0
-_0801B268: .4byte gNoOfAllBanks
-_0801B26C:
- ldr r7, _0801B284 @ =gBattleMoveDamage
- ldr r0, [r7]
- cmp r0, 0
- bne _0801B276
- b _0801B3CA
-_0801B276:
- mov r4, r8
- cmp r4, 0x1E
- beq _0801B288
- cmp r4, 0x3E
- beq _0801B330
- b _0801B3CA
- .align 2, 0
-_0801B284: .4byte gBattleMoveDamage
-_0801B288:
- ldr r0, _0801B314 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801B296
- b _0801B3CA
-_0801B296:
- ldr r2, _0801B318 @ =gSpecialStatuses
- ldr r4, _0801B31C @ =gBankTarget
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801B2BC
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801B2BC
- b _0801B3CA
-_0801B2BC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r9
- bcs _0801B3CA
- ldr r2, _0801B320 @ =gBattleMoves
- ldr r0, _0801B324 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801B3CA
- ldr r2, _0801B328 @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801B3CA
- ldr r1, _0801B32C @ =gBattleCommunication
- movs r0, 0x8
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- movs r0, 0
- movs r1, 0
- bl sub_801E3EC
- bl b_movescr_stack_pop_cursor
- b _0801B3CA
- .align 2, 0
-_0801B314: .4byte gBattleMoveFlags
-_0801B318: .4byte gSpecialStatuses
-_0801B31C: .4byte gBankTarget
-_0801B320: .4byte gBattleMoves
-_0801B324: .4byte gCurrentMove
-_0801B328: .4byte gBattleMons
-_0801B32C: .4byte gBattleCommunication
-_0801B330:
- ldr r0, _0801B3DC @ =gBattleMoveFlags
- ldrb r0, [r0]
- movs r4, 0x29
- ands r4, r0
- cmp r4, 0
- bne _0801B3CA
- ldr r1, _0801B3E0 @ =gSpecialStatuses
- ldr r5, _0801B3E4 @ =gBankTarget
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 2
- adds r6, r1, 0x4
- adds r0, r6
- ldr r1, [r0]
- cmp r1, 0
- beq _0801B3CA
- ldr r0, _0801B3E8 @ =0x0000ffff
- cmp r1, r0
- beq _0801B3CA
- ldr r0, _0801B3EC @ =gBankAttacker
- ldrb r3, [r0]
- cmp r3, r2
- beq _0801B3CA
- ldr r2, _0801B3F0 @ =gBattleMons
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- beq _0801B3CA
- cmp r1, 0
- beq _0801B3CA
- ldr r0, _0801B3F4 @ =gLastUsedItem
- mov r1, sp
- ldrh r1, [r1, 0x14]
- strh r1, [r0]
- ldr r0, _0801B3F8 @ =gStringBank
- strb r3, [r0]
- ldr r0, _0801B3FC @ =0x02000000
- ldr r2, _0801B400 @ =0x00016003
- adds r0, r2
- strb r3, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldr r1, [sp, 0x10]
- bl __divsi3
- negs r0, r0
- str r0, [r7]
- ldrb r1, [r5]
- cmp r0, 0
- bne _0801B3AC
- movs r0, 0x1
- negs r0, r0
- str r0, [r7]
-_0801B3AC:
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- str r4, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B404 @ =gBattlescriptCurrInstr
- ldr r0, _0801B408 @ =gUnknown_081D9AA7
- str r0, [r1]
- ldr r0, [sp, 0xC]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
-_0801B3CA:
- ldr r0, [sp, 0xC]
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801B3DC: .4byte gBattleMoveFlags
-_0801B3E0: .4byte gSpecialStatuses
-_0801B3E4: .4byte gBankTarget
-_0801B3E8: .4byte 0x0000ffff
-_0801B3EC: .4byte gBankAttacker
-_0801B3F0: .4byte gBattleMons
-_0801B3F4: .4byte gLastUsedItem
-_0801B3F8: .4byte gStringBank
-_0801B3FC: .4byte 0x02000000
-_0801B400: .4byte 0x00016003
-_0801B404: .4byte gBattlescriptCurrInstr
-_0801B408: .4byte gUnknown_081D9AA7
- thumb_func_end sub_801A02C
-
- thumb_func_start unref_sub_801B40C
-unref_sub_801B40C: @ 801B40C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- str r0, [sp]
- ldr r0, _0801B464 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801B42A
- b _0801B56E
-_0801B42A:
- movs r1, 0x1
- mov r9, r1
-_0801B42E:
- movs r5, 0
- ldr r4, _0801B468 @ =gUnknown_081FC1D0
- ldr r2, [sp]
- adds r2, 0x1
- str r2, [sp, 0x4]
-_0801B438:
- ldr r0, _0801B46C @ =gAbsentBankFlags
- ldrb r2, [r0]
- ldr r3, _0801B470 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r3
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- bne _0801B45A
- adds r0, r5, 0x2
- lsls r1, r0, 2
- adds r1, r3
- ldr r1, [r1]
- ands r2, r1
- adds r7, r0, 0
- cmp r2, 0
- beq _0801B474
-_0801B45A:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- b _0801B556
- .align 2, 0
-_0801B464: .4byte gBattleTypeFlags
-_0801B468: .4byte gUnknown_081FC1D0
-_0801B46C: .4byte gAbsentBankFlags
-_0801B470: .4byte gBitTable
-_0801B474:
- ldr r0, _0801B580 @ =gUnknown_081FC1D0
- ldr r2, [sp]
- lsls r1, r2, 3
- adds r6, r1, r0
- ldr r4, _0801B584 @ =gChosenMovesByBanks
- lsls r0, r5, 1
- adds r3, r0, r4
- ldrh r2, [r6]
- mov r8, r1
- mov r10, r0
- ldrh r3, [r3]
- cmp r2, r3
- bne _0801B4E4
- lsls r0, r7, 1
- adds r0, r4
- ldrh r1, [r6, 0x2]
- ldrh r0, [r0]
- cmp r1, r0
- bne _0801B4E4
- adds r0, r5, 0
- bl GetBankIdentity
- mov r2, r9
- ands r2, r0
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- ldr r0, _0801B588 @ =gSideTimer
- adds r1, r0
- lsls r0, r7, 4
- orrs r0, r5
- strb r0, [r1, 0x3]
- adds r0, r5, 0
- bl GetBankIdentity
- mov r1, r9
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0801B588 @ =gSideTimer
- adds r0, r1
- ldrh r1, [r6, 0x4]
- strh r1, [r0, 0x4]
- adds r0, r5, 0
- bl GetBankIdentity
- mov r1, r9
- ands r1, r0
- lsls r1, 1
- ldr r2, _0801B58C @ =gSideAffecting
- adds r1, r2
- ldrh r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strh r0, [r1]
-_0801B4E4:
- ldr r0, _0801B580 @ =gUnknown_081FC1D0
- mov r1, r8
- adds r4, r1, r0
- ldr r2, _0801B584 @ =gChosenMovesByBanks
- lsls r0, r7, 1
- adds r0, r2
- ldrh r1, [r4]
- ldrh r0, [r0]
- cmp r1, r0
- bne _0801B54E
- mov r0, r10
- adds r1, r0, r2
- ldrh r0, [r4, 0x2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _0801B54E
- adds r0, r5, 0
- bl GetBankIdentity
- mov r2, r9
- ands r2, r0
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- ldr r2, _0801B588 @ =gSideTimer
- adds r1, r2
- lsls r0, r5, 4
- orrs r0, r7
- strb r0, [r1, 0x3]
- adds r0, r5, 0
- bl GetBankIdentity
- mov r1, r9
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0801B588 @ =gSideTimer
- adds r0, r1
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0x4]
- adds r0, r5, 0
- bl GetBankIdentity
- mov r1, r9
- ands r1, r0
- lsls r1, 1
- ldr r2, _0801B58C @ =gSideAffecting
- adds r1, r2
- ldrh r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strh r0, [r1]
-_0801B54E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0801B580 @ =gUnknown_081FC1D0
-_0801B556:
- cmp r5, 0x1
- bhi _0801B55C
- b _0801B438
-_0801B55C:
- ldr r0, [sp, 0x4]
- str r0, [sp]
- lsls r0, 3
- adds r0, r4
- ldrh r1, [r0]
- ldr r0, _0801B590 @ =0x0000ffff
- cmp r1, r0
- beq _0801B56E
- b _0801B42E
-_0801B56E:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801B580: .4byte gUnknown_081FC1D0
-_0801B584: .4byte gChosenMovesByBanks
-_0801B588: .4byte gSideTimer
-_0801B58C: .4byte gSideAffecting
-_0801B590: .4byte 0x0000ffff
- thumb_func_end unref_sub_801B40C
-
- thumb_func_start sub_801B594
-sub_801B594: @ 801B594
- push {lr}
- ldr r0, _0801B5B4 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0801B5B0
- ldr r1, _0801B5B8 @ =gBattleScriptingCommandsTable
- ldr r0, _0801B5BC @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_0801B5B0:
- pop {r0}
- bx r0
- .align 2, 0
-_0801B5B4: .4byte gBattleExecBuffer
-_0801B5B8: .4byte gBattleScriptingCommandsTable
-_0801B5BC: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_801B594
-
- thumb_func_start sub_801B5C0
-sub_801B5C0: @ 801B5C0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 24
- lsrs r0, r1, 24
- movs r5, 0
- cmp r0, 0
- beq _0801B5DE
- subs r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- b _0801B5EA
-_0801B5DE:
- ldr r1, _0801B5FC @ =gBattleMoves
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x6]
-_0801B5EA:
- cmp r6, 0x40
- bls _0801B5F0
- b _0801B900
-_0801B5F0:
- lsls r0, r6, 2
- ldr r1, _0801B600 @ =_0801B604
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801B5FC: .4byte gBattleMoves
-_0801B600: .4byte _0801B604
- .align 2, 0
-_0801B604:
- .4byte _0801B708
- .4byte _0801B808
- .4byte _0801B8FC
- .4byte _0801B900
- .4byte _0801B820
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B808
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B8FC
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B808
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B808
-_0801B708:
- ldr r0, _0801B7E8 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0801B7EC @ =gSideTimer
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r2, r0, r1
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _0801B73A
- ldr r1, _0801B7F0 @ =gBattleMons
- ldrb r4, [r2, 0x9]
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801B73A
- b _0801B850
-_0801B73A:
- ldr r0, _0801B7E8 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r7, 1
- mov r8, r0
-_0801B74A:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0801B7F4 @ =gNoOfAllBanks
- ldrb r1, [r1]
- bl __modsi3
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0801B7E8 @ =gBankAttacker
- ldrb r2, [r6]
- cmp r5, r2
- beq _0801B74A
- adds r0, r5, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _0801B74A
- ldr r0, _0801B7F8 @ =gAbsentBankFlags
- ldrb r2, [r0]
- ldr r1, _0801B7FC @ =gBitTable
- lsls r0, r5, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _0801B74A
- ldr r0, _0801B800 @ =gBattleMoves
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x2]
- cmp r0, 0xD
- beq _0801B798
- b _0801B900
-_0801B798:
- ldrb r1, [r6]
- str r2, [sp]
- movs r0, 0x10
- movs r2, 0x1F
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0801B7AE
- b _0801B900
-_0801B7AE:
- ldr r2, _0801B7F0 @ =gBattleMons
- movs r1, 0x58
- adds r0, r5, 0
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1F
- bne _0801B7C2
- b _0801B900
-_0801B7C2:
- movs r4, 0x2
- eors r5, r4
- adds r0, r5, 0
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r1, [r0]
- adds r0, r5, 0
- bl RecordAbilityBattle
- ldr r1, _0801B804 @ =gSpecialStatuses
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- orrs r1, r4
- strb r1, [r0]
- b _0801B900
- .align 2, 0
-_0801B7E8: .4byte gBankAttacker
-_0801B7EC: .4byte gSideTimer
-_0801B7F0: .4byte gBattleMons
-_0801B7F4: .4byte gNoOfAllBanks
-_0801B7F8: .4byte gAbsentBankFlags
-_0801B7FC: .4byte gBitTable
-_0801B800: .4byte gBattleMoves
-_0801B804: .4byte gSpecialStatuses
-_0801B808:
- ldr r0, _0801B81C @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity
- adds r1, r0, 0
- movs r2, 0x1
- movs r0, 0x1
- ands r0, r1
- eors r0, r2
- b _0801B8B2
- .align 2, 0
-_0801B81C: .4byte gBankAttacker
-_0801B820:
- ldr r0, _0801B854 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0801B858 @ =gSideTimer
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r2, r0, r1
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _0801B860
- ldr r1, _0801B85C @ =gBattleMons
- ldrb r4, [r2, 0x9]
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801B860
-_0801B850:
- adds r5, r4, 0
- b _0801B900
- .align 2, 0
-_0801B854: .4byte gBankAttacker
-_0801B858: .4byte gSideTimer
-_0801B85C: .4byte gBattleMons
-_0801B860:
- ldr r0, _0801B894 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0801B8DC
- movs r0, 0x4
- ands r6, r0
- cmp r6, 0
- beq _0801B8DC
- ldr r0, _0801B898 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0801B8A0
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _0801B89C
- movs r0, 0x1
- b _0801B8B2
- .align 2, 0
-_0801B894: .4byte gBattleTypeFlags
-_0801B898: .4byte gBankAttacker
-_0801B89C:
- movs r0, 0x3
- b _0801B8B2
-_0801B8A0:
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _0801B8B0
- movs r0, 0
- b _0801B8B2
-_0801B8B0:
- movs r0, 0x2
-_0801B8B2:
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0801B8D4 @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _0801B8D8 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801B900
- movs r0, 0x2
- eors r5, r0
- b _0801B900
- .align 2, 0
-_0801B8D4: .4byte gAbsentBankFlags
-_0801B8D8: .4byte gBitTable
-_0801B8DC:
- ldr r0, _0801B8F8 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity
- adds r1, r0, 0
- movs r2, 0x1
- movs r0, 0x1
- ands r0, r1
- eors r0, r2
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r5, r0, 24
- b _0801B900
- .align 2, 0
-_0801B8F8: .4byte gBankAttacker
-_0801B8FC:
- ldr r0, _0801B91C @ =gBankAttacker
- ldrb r5, [r0]
-_0801B900:
- ldr r1, _0801B920 @ =0x02000000
- ldr r0, _0801B91C @ =gBankAttacker
- ldrb r0, [r0]
- ldr r2, _0801B924 @ =0x00016010
- adds r0, r2
- adds r0, r1
- strb r5, [r0]
- adds r0, r5, 0
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801B91C: .4byte gBankAttacker
-_0801B920: .4byte 0x02000000
-_0801B924: .4byte 0x00016010
- thumb_func_end sub_801B5C0
-
- thumb_func_start sub_801B928
-sub_801B928: @ 801B928
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- ldr r0, _0801B9E0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0801B9DA
- ldr r7, _0801B9E4 @ =gBankAttacker
- ldrb r0, [r7]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0801B9DA
- ldr r5, _0801B9E8 @ =gBattleMons
- ldrb r0, [r7]
- movs r1, 0x58
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r5, 0
- adds r0, 0x54
- adds r0, r1, r0
- ldr r0, [r0]
- adds r2, r5, 0
- adds r2, 0x3C
- adds r1, r2
- bl IsOtherTrainer
- lsls r0, 24
- cmp r0, 0
- beq _0801B9DA
- ldr r0, _0801B9EC @ =0x0000080e
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0801B9DA
- movs r6, 0xA
- ldr r0, _0801B9F0 @ =0x00000808
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0801B98E
- movs r6, 0x1E
-_0801B98E:
- ldr r0, _0801B9F4 @ =0x0000080a
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0801B99C
- movs r6, 0x32
-_0801B99C:
- ldr r0, _0801B9F8 @ =0x0000080c
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0801B9AA
- movs r6, 0x46
-_0801B9AA:
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r5
- adds r0, 0x2A
- ldrb r0, [r0]
- cmp r0, r6
- bls _0801B9DA
- bl Random
- movs r1, 0xFF
- ands r1, r0
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, r5
- adds r0, 0x2A
- ldrb r0, [r0]
- adds r0, r6
- muls r0, r1
- asrs r4, r0, 8
- cmp r4, r6
- bge _0801B9FC
-_0801B9DA:
- movs r0, 0
- b _0801BC24
- .align 2, 0
-_0801B9E0: .4byte gBattleTypeFlags
-_0801B9E4: .4byte gBankAttacker
-_0801B9E8: .4byte gBattleMons
-_0801B9EC: .4byte 0x0000080e
-_0801B9F0: .4byte 0x00000808
-_0801B9F4: .4byte 0x0000080a
-_0801B9F8: .4byte 0x0000080c
-_0801B9FC:
- ldr r3, _0801BA3C @ =gCurrentMove
- ldrh r0, [r3]
- cmp r0, 0x63
- bne _0801BA12
- adds r0, r5, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r1, [r0]
- ldr r2, _0801BA40 @ =0xff7fffff
- ands r1, r2
- str r1, [r0]
-_0801BA12:
- ldrb r0, [r7]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r1, r5, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801BA4C
- ldrh r0, [r3]
- cmp r0, 0xAD
- beq _0801BA34
- cmp r0, 0xD6
- bne _0801BA4C
-_0801BA34:
- ldr r1, _0801BA44 @ =gBattlescriptCurrInstr
- ldr r0, _0801BA48 @ =gUnknown_081D995F
- b _0801BBCE
- .align 2, 0
-_0801BA3C: .4byte gCurrentMove
-_0801BA40: .4byte 0xff7fffff
-_0801BA44: .4byte gBattlescriptCurrInstr
-_0801BA48: .4byte gUnknown_081D995F
-_0801BA4C:
- bl Random
- movs r5, 0xFF
- adds r1, r5, 0
- ands r1, r0
- ldr r7, _0801BB04 @ =gBattleMons
- ldr r2, _0801BB08 @ =gBankAttacker
- mov r9, r2
- ldrb r3, [r2]
- movs r0, 0x58
- mov r8, r0
- mov r0, r8
- muls r0, r3
- adds r0, r7
- adds r0, 0x2A
- ldrb r2, [r0]
- adds r0, r2, r6
- muls r0, r1
- asrs r4, r0, 8
- cmp r4, r6
- bge _0801BB3C
- ldr r7, _0801BB0C @ =gBitTable
- ldr r5, _0801BB10 @ =gCurrMovePos
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r7
- ldrb r1, [r0]
- adds r0, r3, 0
- movs r2, 0xFF
- bl sub_8015A98
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bne _0801BA94
- b _0801BBBE
-_0801BA94:
- adds r6, r5, 0
- ldr r1, _0801BB14 @ =gUnknown_02024BE5
- mov r9, r1
- movs r2, 0x3
- mov r8, r2
-_0801BA9E:
- bl Random
- mov r1, r8
- ands r0, r1
- mov r2, r9
- strb r0, [r2]
- strb r0, [r6]
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r7
- ldr r5, [r0]
- ands r5, r4
- cmp r5, 0
- bne _0801BA9E
- ldr r4, _0801BB18 @ =gUnknown_02024BEA
- ldr r3, _0801BB04 @ =gBattleMons
- ldr r0, _0801BB10 @ =gCurrMovePos
- ldrb r0, [r0]
- lsls r0, 1
- ldr r1, _0801BB08 @ =gBankAttacker
- ldrb r2, [r1]
- movs r1, 0x58
- muls r1, r2
- adds r0, r1
- adds r3, 0xC
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r4]
- ldr r0, _0801BB1C @ =gBattleCommunication
- strb r5, [r0, 0x3]
- ldr r0, _0801BB20 @ =gDynamicBasePower
- movs r1, 0
- strh r5, [r0]
- ldr r0, _0801BB24 @ =0x02000000
- ldr r2, _0801BB28 @ =0x0001601c
- adds r0, r2
- strb r1, [r0]
- ldr r1, _0801BB2C @ =gBattlescriptCurrInstr
- ldr r0, _0801BB30 @ =gUnknown_081D996F
- str r0, [r1]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _0801BB34 @ =gBankTarget
- strb r0, [r1]
- ldr r2, _0801BB38 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 14
- b _0801BC1E
- .align 2, 0
-_0801BB04: .4byte gBattleMons
-_0801BB08: .4byte gBankAttacker
-_0801BB0C: .4byte gBitTable
-_0801BB10: .4byte gCurrMovePos
-_0801BB14: .4byte gUnknown_02024BE5
-_0801BB18: .4byte gUnknown_02024BEA
-_0801BB1C: .4byte gBattleCommunication
-_0801BB20: .4byte gDynamicBasePower
-_0801BB24: .4byte 0x02000000
-_0801BB28: .4byte 0x0001601c
-_0801BB2C: .4byte gBattlescriptCurrInstr
-_0801BB30: .4byte gUnknown_081D996F
-_0801BB34: .4byte gBankTarget
-_0801BB38: .4byte gHitMarker
-_0801BB3C:
- subs r0, r2, r6
- lsls r0, 24
- lsrs r6, r0, 24
- bl Random
- adds r4, r5, 0
- ands r4, r0
- cmp r4, r6
- bge _0801BBB8
- mov r1, r9
- ldrb r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r7, 0
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- ands r0, r5
- cmp r0, 0
- bne _0801BBB8
- adds r0, r1, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x48
- beq _0801BBB8
- cmp r0, 0xF
- beq _0801BBB8
- movs r2, 0
- ldr r0, _0801BBAC @ =gNoOfAllBanks
- ldrb r3, [r0]
- mov r8, r0
- cmp r2, r3
- bge _0801BB9E
- ldr r0, [r7, 0x50]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- bne _0801BB9E
- adds r1, r7, 0
- adds r1, 0x50
- movs r5, 0x70
-_0801BB8E:
- adds r1, 0x58
- adds r2, 0x1
- cmp r2, r3
- bge _0801BB9E
- ldr r0, [r1]
- ands r0, r5
- cmp r0, 0
- beq _0801BB8E
-_0801BB9E:
- mov r0, r8
- ldrb r0, [r0]
- cmp r2, r0
- bne _0801BBB8
- ldr r1, _0801BBB0 @ =gBattlescriptCurrInstr
- ldr r0, _0801BBB4 @ =gUnknown_081D9989
- b _0801BBCE
- .align 2, 0
-_0801BBAC: .4byte gNoOfAllBanks
-_0801BBB0: .4byte gBattlescriptCurrInstr
-_0801BBB4: .4byte gUnknown_081D9989
-_0801BBB8:
- subs r4, r6
- cmp r4, r6
- blt _0801BBE0
-_0801BBBE:
- bl Random
- ldr r2, _0801BBD4 @ =gBattleCommunication
- movs r1, 0x3
- ands r1, r0
- strb r1, [r2, 0x5]
- ldr r1, _0801BBD8 @ =gBattlescriptCurrInstr
- ldr r0, _0801BBDC @ =gUnknown_081D9977
-_0801BBCE:
- str r0, [r1]
- movs r0, 0x1
- b _0801BC24
- .align 2, 0
-_0801BBD4: .4byte gBattleCommunication
-_0801BBD8: .4byte gBattlescriptCurrInstr
-_0801BBDC: .4byte gUnknown_081D9977
-_0801BBE0:
- ldr r4, _0801BC34 @ =gBankAttacker
- ldrb r1, [r4]
- movs r0, 0x58
- muls r1, r0
- ldr r0, _0801BC38 @ =gBattleMons
- adds r1, r0
- movs r0, 0x28
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- ldrb r0, [r4]
- str r0, [sp, 0x8]
- ldrb r0, [r4]
- str r0, [sp, 0xC]
- adds r0, r1, 0
- movs r2, 0x1
- movs r3, 0
- bl CalculateBaseDamage
- ldr r1, _0801BC3C @ =gBattleMoveDamage
- str r0, [r1]
- ldr r1, _0801BC40 @ =gBankTarget
- ldrb r0, [r4]
- strb r0, [r1]
- ldr r1, _0801BC44 @ =gBattlescriptCurrInstr
- ldr r0, _0801BC48 @ =gUnknown_081D99A0
- str r0, [r1]
- ldr r2, _0801BC4C @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
-_0801BC1E:
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x2
-_0801BC24:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801BC34: .4byte gBankAttacker
-_0801BC38: .4byte gBattleMons
-_0801BC3C: .4byte gBattleMoveDamage
-_0801BC40: .4byte gBankTarget
-_0801BC44: .4byte gBattlescriptCurrInstr
-_0801BC48: .4byte gUnknown_081D99A0
-_0801BC4C: .4byte gHitMarker
- thumb_func_end sub_801B928
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_4.s b/asm/battle_4.s
deleted file mode 100644
index 6747abc6c..000000000
--- a/asm/battle_4.s
+++ /dev/null
@@ -1,32351 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start atk00_attackcanceler
-atk00_attackcanceler: @ 801BC50
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r0, _0801BC6C @ =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801BC74
- ldr r1, _0801BC70 @ =gFightStateTracker
- movs r0, 0xC
- strb r0, [r1]
- b _0801BFF4
- .align 2, 0
-_0801BC6C: .4byte gBattleOutcome
-_0801BC70: .4byte gFightStateTracker
-_0801BC74:
- ldr r2, _0801BCA4 @ =gBattleMons
- ldr r0, _0801BCA8 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801BCB8
- ldr r2, _0801BCAC @ =gHitMarker
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _0801BCB8
- movs r0, 0x80
- lsls r0, 12
- orrs r1, r0
- str r1, [r2]
- ldr r1, _0801BCB0 @ =gBattlescriptCurrInstr
- ldr r0, _0801BCB4 @ =BattleScript_EndTurn
- b _0801BFF2
- .align 2, 0
-_0801BCA4: .4byte gBattleMons
-_0801BCA8: .4byte gBankAttacker
-_0801BCAC: .4byte gHitMarker
-_0801BCB0: .4byte gBattlescriptCurrInstr
-_0801BCB4: .4byte BattleScript_EndTurn
-_0801BCB8:
- bl sub_8017718
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0801BCC6
- b _0801BFF4
-_0801BCC6:
- ldr r0, _0801BD34 @ =gBankTarget
- ldrb r1, [r0]
- str r2, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _0801BCDE
- b _0801BFF4
-_0801BCDE:
- ldr r4, _0801BD38 @ =gBattleMons
- ldr r0, _0801BD3C @ =gCurrMovePos
- ldrb r1, [r0]
- ldr r3, _0801BD40 @ =gBankAttacker
- ldrb r2, [r3]
- movs r0, 0x58
- muls r2, r0
- adds r1, r2
- adds r0, r4, 0
- adds r0, 0x24
- adds r1, r0
- ldrb r0, [r1]
- ldr r5, _0801BD44 @ =gHitMarker
- cmp r0, 0
- bne _0801BD5C
- ldr r0, _0801BD48 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xA5
- beq _0801BD5C
- ldr r0, [r5]
- ldr r1, _0801BD4C @ =0x00800200
- ands r0, r1
- cmp r0, 0
- bne _0801BD5C
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- bne _0801BD5C
- ldr r1, _0801BD50 @ =gBattlescriptCurrInstr
- ldr r0, _0801BD54 @ =BattleScript_NoPPForMove
- str r0, [r1]
- ldr r2, _0801BD58 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- b _0801BFF4
- .align 2, 0
-_0801BD34: .4byte gBankTarget
-_0801BD38: .4byte gBattleMons
-_0801BD3C: .4byte gCurrMovePos
-_0801BD40: .4byte gBankAttacker
-_0801BD44: .4byte gHitMarker
-_0801BD48: .4byte gCurrentMove
-_0801BD4C: .4byte 0x00800200
-_0801BD50: .4byte gBattlescriptCurrInstr
-_0801BD54: .4byte BattleScript_NoPPForMove
-_0801BD58: .4byte gBattleMoveFlags
-_0801BD5C:
- ldr r0, [r5]
- ldr r1, _0801BDA0 @ =0xff7fffff
- ands r0, r1
- str r0, [r5]
- movs r6, 0x80
- lsls r6, 18
- ands r0, r6
- cmp r0, 0
- bne _0801BDB4
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r1, r4, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- bne _0801BDB4
- bl sub_801B928
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0801BDB4
- cmp r2, 0x2
- bne _0801BDA4
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- b _0801BFF4
- .align 2, 0
-_0801BDA0: .4byte 0xff7fffff
-_0801BDA4:
- ldr r0, _0801BDB0 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _0801BFF4
- .align 2, 0
-_0801BDB0: .4byte gBattleMoveFlags
-_0801BDB4:
- ldr r2, _0801BE18 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 18
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801BE1C @ =gProtectStructs
- ldr r1, _0801BE20 @ =gBankTarget
- ldrb r3, [r1]
- lsls r0, r3, 4
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 27
- mov r8, r1
- mov r9, r2
- cmp r0, 0
- bge _0801BE3C
- ldr r2, _0801BE24 @ =gBattleMoves
- ldr r0, _0801BE28 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801BE3C
- ldr r0, _0801BE2C @ =gBankAttacker
- ldrb r0, [r0]
- ldr r2, _0801BE30 @ =0x00000115
- adds r1, r3, 0
- bl sub_80151D4
- mov r0, r8
- ldrb r1, [r0]
- lsls r1, 4
- add r1, r9
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801BE34 @ =gBattlescriptCurrInstr
- ldr r0, _0801BE38 @ =BattleScript_MagicCoatBounce
- b _0801BFF2
- .align 2, 0
-_0801BE18: .4byte gHitMarker
-_0801BE1C: .4byte gProtectStructs
-_0801BE20: .4byte gBankTarget
-_0801BE24: .4byte gBattleMoves
-_0801BE28: .4byte gCurrentMove
-_0801BE2C: .4byte gBankAttacker
-_0801BE30: .4byte 0x00000115
-_0801BE34: .4byte gBattlescriptCurrInstr
-_0801BE38: .4byte BattleScript_MagicCoatBounce
-_0801BE3C:
- movs r2, 0
- ldr r0, _0801BEB8 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r2, r0
- bge _0801BE7E
- ldr r6, _0801BEBC @ =gProtectStructs
- ldr r1, _0801BEC0 @ =gBattleMoves
- mov r12, r1
- adds r5, r0, 0
- ldr r7, _0801BEC4 @ =gTurnOrder
-_0801BE50:
- adds r4, r2, r7
- ldrb r3, [r4]
- lsls r0, r3, 4
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _0801BE78
- ldr r0, _0801BEC8 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r1, [r0, 0x8]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801BE78
- b _0801BFA4
-_0801BE78:
- adds r2, 0x1
- cmp r2, r5
- blt _0801BE50
-_0801BE7E:
- ldr r0, _0801BECC @ =gSpecialStatuses
- mov r1, r8
- ldrb r2, [r1]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r3, [r1]
- lsls r0, r3, 30
- cmp r0, 0
- bge _0801BEDC
- movs r0, 0x3
- negs r0, r0
- ands r0, r3
- strb r0, [r1]
- ldr r4, _0801BED0 @ =gLastUsedAbility
- movs r0, 0x1F
- strb r0, [r4]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801BED4 @ =gBattlescriptCurrInstr
- ldr r0, _0801BED8 @ =BattleScript_TookAttack
- str r0, [r1]
- mov r2, r8
- ldrb r0, [r2]
- ldrb r1, [r4]
- bl RecordAbilityBattle
- b _0801BFF4
- .align 2, 0
-_0801BEB8: .4byte gNoOfAllBanks
-_0801BEBC: .4byte gProtectStructs
-_0801BEC0: .4byte gBattleMoves
-_0801BEC4: .4byte gTurnOrder
-_0801BEC8: .4byte gCurrentMove
-_0801BECC: .4byte gSpecialStatuses
-_0801BED0: .4byte gLastUsedAbility
-_0801BED4: .4byte gBattlescriptCurrInstr
-_0801BED8: .4byte BattleScript_TookAttack
-_0801BEDC:
- lsls r0, r2, 4
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _0801BEEA
- b _0801BFEC
-_0801BEEA:
- ldr r1, _0801BF80 @ =gBattleMoves
- ldr r2, _0801BF84 @ =gCurrentMove
- ldrh r3, [r2]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x2
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0
- beq _0801BFEC
- cmp r3, 0xAE
- bne _0801BF28
- ldr r2, _0801BF88 @ =gBattleMons
- ldr r0, _0801BF8C @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _0801BF28
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _0801BFEC
-_0801BF28:
- ldrh r0, [r4]
- bl sub_8028350
- lsls r0, 24
- cmp r0, 0
- beq _0801BF4E
- ldr r1, _0801BF88 @ =gBattleMons
- ldr r0, _0801BF8C @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- beq _0801BFEC
-_0801BF4E:
- ldr r0, _0801BF8C @ =gBankAttacker
- ldrb r0, [r0]
- bl CancelMultiTurnMoves
- ldr r2, _0801BF90 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801BF94 @ =gMoveHitWith
- ldr r3, _0801BF98 @ =gBankTarget
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801BF9C @ =gUnknown_02024C44
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldr r1, _0801BFA0 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x6]
- b _0801BFEC
- .align 2, 0
-_0801BF80: .4byte gBattleMoves
-_0801BF84: .4byte gCurrentMove
-_0801BF88: .4byte gBattleMons
-_0801BF8C: .4byte gBankAttacker
-_0801BF90: .4byte gBattleMoveFlags
-_0801BF94: .4byte gMoveHitWith
-_0801BF98: .4byte gBankTarget
-_0801BF9C: .4byte gUnknown_02024C44
-_0801BFA0: .4byte gBattleCommunication
-_0801BFA4:
- ldr r0, _0801BFD4 @ =gBankAttacker
- ldrb r0, [r0]
- ldr r2, _0801BFD8 @ =0x00000121
- adds r1, r3, 0
- bl sub_80151D4
- ldrb r1, [r4]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r0, _0801BFDC @ =0x02000000
- ldrb r1, [r4]
- ldr r2, _0801BFE0 @ =0x00016003
- adds r0, r2
- strb r1, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801BFE4 @ =gBattlescriptCurrInstr
- ldr r0, _0801BFE8 @ =BattleScript_SnatchedMove
- b _0801BFF2
- .align 2, 0
-_0801BFD4: .4byte gBankAttacker
-_0801BFD8: .4byte 0x00000121
-_0801BFDC: .4byte 0x02000000
-_0801BFE0: .4byte 0x00016003
-_0801BFE4: .4byte gBattlescriptCurrInstr
-_0801BFE8: .4byte BattleScript_SnatchedMove
-_0801BFEC:
- ldr r1, _0801C004 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
-_0801BFF2:
- str r0, [r1]
-_0801BFF4:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C004: .4byte gBattlescriptCurrInstr
- thumb_func_end atk00_attackcanceler
-
- thumb_func_start mcmd_jump_if_move_not_executed
-mcmd_jump_if_move_not_executed: @ 801C008
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r1, _0801C054 @ =gBattlescriptCurrInstr
- ldr r5, [r1]
- adds r4, r5, r0
- ldr r0, _0801C058 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801C068
- ldr r1, _0801C05C @ =gMoveHitWith
- ldr r3, _0801C060 @ =gBankTarget
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801C064 @ =gUnknown_02024C44
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldrb r4, [r5, 0x1]
- ldrb r0, [r5, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r5, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r5, 0x4]
- lsls r0, 24
- orrs r4, r0
- b _0801C082
- .align 2, 0
-_0801C054: .4byte gBattlescriptCurrInstr
-_0801C058: .4byte gBattleMoveFlags
-_0801C05C: .4byte gMoveHitWith
-_0801C060: .4byte gBankTarget
-_0801C064: .4byte gUnknown_02024C44
-_0801C068:
- bl b_feature_update_destiny_bond
- ldr r0, _0801C090 @ =gBankTarget
- ldrb r1, [r0]
- str r6, [sp]
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0801C086
-_0801C082:
- ldr r0, _0801C094 @ =gBattlescriptCurrInstr
- str r4, [r0]
-_0801C086:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C090: .4byte gBankTarget
-_0801C094: .4byte gBattlescriptCurrInstr
- thumb_func_end mcmd_jump_if_move_not_executed
-
- thumb_func_start atk40_jump_if_move_affected_by_protect
-atk40_jump_if_move_affected_by_protect: @ 801C098
- push {lr}
- ldr r1, _0801C0E0 @ =gProtectStructs
- ldr r0, _0801C0E4 @ =gBankTarget
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _0801C0F8
- ldr r2, _0801C0E8 @ =gBattleMoves
- ldr r0, _0801C0EC @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801C0F8
- ldr r2, _0801C0F0 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x5
- movs r1, 0
- bl mcmd_jump_if_move_not_executed
- ldr r1, _0801C0F4 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x6]
- b _0801C100
- .align 2, 0
-_0801C0E0: .4byte gProtectStructs
-_0801C0E4: .4byte gBankTarget
-_0801C0E8: .4byte gBattleMoves
-_0801C0EC: .4byte gCurrentMove
-_0801C0F0: .4byte gBattleMoveFlags
-_0801C0F4: .4byte gBattleCommunication
-_0801C0F8:
- ldr r1, _0801C104 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0801C100:
- pop {r0}
- bx r0
- .align 2, 0
-_0801C104: .4byte gBattlescriptCurrInstr
- thumb_func_end atk40_jump_if_move_affected_by_protect
-
- thumb_func_start sub_801C108
-sub_801C108: @ 801C108
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r4, 0
- ldr r1, _0801C15C @ =gProtectStructs
- ldr r0, _0801C160 @ =gBankTarget
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _0801C154
- ldr r2, _0801C164 @ =gBattleMoves
- ldr r0, _0801C168 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801C154
- ldr r2, _0801C16C @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x7
- adds r1, r3, 0
- bl mcmd_jump_if_move_not_executed
- ldr r1, _0801C170 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x6]
- movs r4, 0x1
-_0801C154:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0801C15C: .4byte gProtectStructs
-_0801C160: .4byte gBankTarget
-_0801C164: .4byte gBattleMoves
-_0801C168: .4byte gCurrentMove
-_0801C16C: .4byte gBattleMoveFlags
-_0801C170: .4byte gBattleCommunication
- thumb_func_end sub_801C108
-
- thumb_func_start sub_801C174
-sub_801C174: @ 801C174
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r2, _0801C1D4 @ =gStatuses3
- ldr r3, _0801C1D8 @ =gBankTarget
- ldrb r4, [r3]
- lsls r0, r4, 2
- adds r0, r2
- ldr r1, [r0]
- movs r0, 0x18
- ands r1, r0
- adds r6, r2, 0
- cmp r1, 0
- beq _0801C1A6
- ldr r1, _0801C1DC @ =gDisableStructs
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, _0801C1E0 @ =gBankAttacker
- ldrb r0, [r0, 0x15]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0801C290
-_0801C1A6:
- ldr r0, _0801C1E4 @ =gHitMarker
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 9
- ands r1, r2
- adds r2, r0, 0
- cmp r1, 0
- bne _0801C1EC
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801C1EC
-_0801C1C6:
- ldr r0, _0801C1E8 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _0801C290
- .align 2, 0
-_0801C1D4: .4byte gStatuses3
-_0801C1D8: .4byte gBankTarget
-_0801C1DC: .4byte gDisableStructs
-_0801C1E0: .4byte gBankAttacker
-_0801C1E4: .4byte gHitMarker
-_0801C1E8: .4byte gBattleMoveFlags
-_0801C1EC:
- ldr r0, [r2]
- ldr r1, _0801C29C @ =0xfffeffff
- ands r0, r1
- str r0, [r2]
- movs r1, 0x80
- lsls r1, 10
- ands r0, r1
- cmp r0, 0
- bne _0801C20E
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0801C1C6
-_0801C20E:
- ldr r0, [r2]
- ldr r1, _0801C2A0 @ =0xfffdffff
- ands r0, r1
- str r0, [r2]
- movs r1, 0x80
- lsls r1, 11
- ands r0, r1
- cmp r0, 0
- bne _0801C22E
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- bne _0801C1C6
-_0801C22E:
- ldr r0, [r2]
- ldr r1, _0801C2A4 @ =0xfffbffff
- ands r0, r1
- str r0, [r2]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r5, 1
- cmp r0, 0
- bne _0801C27E
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0801C27E
- ldr r0, _0801C2A8 @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801C27E
- ldr r0, _0801C2AC @ =gBattleMoves
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x98
- beq _0801C290
-_0801C27E:
- ldr r1, _0801C2AC @ =gBattleMoves
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x11
- beq _0801C290
- cmp r0, 0x4E
- bne _0801C2B0
-_0801C290:
- movs r0, 0x7
- adds r1, r5, 0
- bl mcmd_jump_if_move_not_executed
- movs r0, 0x1
- b _0801C2B2
- .align 2, 0
-_0801C29C: .4byte 0xfffeffff
-_0801C2A0: .4byte 0xfffdffff
-_0801C2A4: .4byte 0xfffbffff
-_0801C2A8: .4byte gBattleWeather
-_0801C2AC: .4byte gBattleMoves
-_0801C2B0:
- movs r0, 0
-_0801C2B2:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_801C174
-
- thumb_func_start atk01_accuracycheck
-atk01_accuracycheck: @ 801C2BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r0, _0801C314 @ =gBattlescriptCurrInstr
- ldr r5, [r0]
- ldrb r6, [r5, 0x5]
- ldrb r1, [r5, 0x6]
- lsls r1, 8
- orrs r6, r1
- adds r1, r6, 0x2
- lsls r1, 16
- lsrs r1, 16
- adds r7, r0, 0
- cmp r1, 0x1
- bhi _0801C378
- ldr r2, _0801C318 @ =gStatuses3
- ldr r3, _0801C31C @ =gBankTarget
- ldrb r4, [r3]
- lsls r0, r4, 2
- adds r0, r2
- ldr r1, [r0]
- movs r0, 0x18
- ands r1, r0
- cmp r1, 0
- beq _0801C32C
- ldr r0, _0801C320 @ =0x0000ffff
- cmp r6, r0
- bne _0801C32C
- ldr r1, _0801C324 @ =gDisableStructs
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, _0801C328 @ =gBankAttacker
- ldrb r0, [r0, 0x15]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0801C32C
- adds r0, r5, 0x7
- str r0, [r7]
- b _0801C632
- .align 2, 0
-_0801C314: .4byte gBattlescriptCurrInstr
-_0801C318: .4byte gStatuses3
-_0801C31C: .4byte gBankTarget
-_0801C320: .4byte 0x0000ffff
-_0801C324: .4byte gDisableStructs
-_0801C328: .4byte gBankAttacker
-_0801C32C:
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ldr r1, _0801C358 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _0801C35C
- ldr r2, [r7]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r7]
- b _0801C632
- .align 2, 0
-_0801C358: .4byte 0x000400c0
-_0801C35C:
- movs r0, 0
- bl sub_801C108
- lsls r0, 24
- cmp r0, 0
- beq _0801C36A
- b _0801C632
-_0801C36A:
- ldr r1, _0801C374 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x7
- str r0, [r1]
- b _0801C632
- .align 2, 0
-_0801C374: .4byte gBattlescriptCurrInstr
-_0801C378:
- cmp r6, 0
- bne _0801C380
- ldr r0, _0801C398 @ =gCurrentMove
- ldrh r6, [r0]
-_0801C380:
- ldr r0, _0801C39C @ =0x02000000
- ldr r1, _0801C3A0 @ =0x0001601c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801C3A4
- movs r2, 0x3F
- mov r10, r2
- mov r3, r10
- ands r3, r0
- mov r10, r3
- b _0801C3B2
- .align 2, 0
-_0801C398: .4byte gCurrentMove
-_0801C39C: .4byte 0x02000000
-_0801C3A0: .4byte 0x0001601c
-_0801C3A4:
- ldr r1, _0801C3F8 @ =gBattleMoves
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- mov r10, r0
-_0801C3B2:
- adds r0, r6, 0
- bl sub_801C108
- lsls r0, 24
- cmp r0, 0
- beq _0801C3C0
- b _0801C632
-_0801C3C0:
- adds r0, r6, 0
- bl sub_801C174
- lsls r0, 24
- cmp r0, 0
- beq _0801C3CE
- b _0801C632
-_0801C3CE:
- ldr r3, _0801C3FC @ =gBattleMons
- ldr r0, _0801C400 @ =gBankTarget
- ldrb r0, [r0]
- movs r2, 0x58
- adds r4, r0, 0
- muls r4, r2
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r4, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801C408
- ldr r0, _0801C404 @ =gBankAttacker
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- ldrb r5, [r0, 0x1E]
- b _0801C41E
- .align 2, 0
-_0801C3F8: .4byte gBattleMoves
-_0801C3FC: .4byte gBattleMons
-_0801C400: .4byte gBankTarget
-_0801C404: .4byte gBankAttacker
-_0801C408:
- ldr r0, _0801C56C @ =gBankAttacker
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- ldrb r0, [r0, 0x1E]
- adds r0, 0x6
- adds r1, r4, r3
- ldrb r1, [r1, 0x1F]
- subs r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
-_0801C41E:
- lsls r0, r5, 24
- cmp r0, 0
- bge _0801C426
- movs r5, 0
-_0801C426:
- lsls r0, r5, 24
- asrs r0, 24
- cmp r0, 0xC
- ble _0801C430
- movs r5, 0xC
-_0801C430:
- ldr r1, _0801C570 @ =gBattleMoves
- lsls r4, r6, 1
- adds r0, r4, r6
- lsls r0, 2
- adds r7, r0, r1
- ldrb r0, [r7, 0x3]
- mov r8, r0
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- str r4, [sp, 0x4]
- cmp r0, 0
- bne _0801C482
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0801C482
- ldr r0, _0801C574 @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0801C482
- ldrb r0, [r7]
- cmp r0, 0x98
- bne _0801C482
- movs r1, 0x32
- mov r8, r1
-_0801C482:
- ldr r1, _0801C578 @ =gAccuracyStageRatios
- lsls r0, r5, 24
- asrs r0, 22
- adds r0, r1
- ldrb r1, [r0]
- mov r4, r8
- muls r4, r1
- ldrb r1, [r0, 0x1]
- adds r0, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r7, _0801C57C @ =gBattleMons
- ldr r0, _0801C56C @ =gBankAttacker
- ldrb r0, [r0]
- movs r5, 0x58
- muls r0, r5
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0xE
- bne _0801C4C0
- lsls r0, r4, 6
- adds r0, r4
- lsls r0, 1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C4C0:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0801C518
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0801C518
- ldr r0, _0801C580 @ =gBankTarget
- ldrb r0, [r0]
- muls r0, r5
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _0801C518
- ldr r0, _0801C574 @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _0801C518
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C518:
- ldr r2, _0801C57C @ =gBattleMons
- ldr r0, _0801C56C @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r9, r2
- cmp r0, 0x37
- bne _0801C544
- mov r2, r10
- cmp r2, 0x8
- bhi _0801C544
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C544:
- ldr r3, _0801C580 @ =gBankTarget
- mov r8, r3
- ldrb r2, [r3]
- movs r7, 0x58
- adds r0, r2, 0
- muls r0, r7
- mov r3, r9
- adds r1, r0, r3
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0801C588
- ldr r1, _0801C584 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x7]
- ldrb r2, [r0, 0x1A]
- b _0801C5A4
- .align 2, 0
-_0801C56C: .4byte gBankAttacker
-_0801C570: .4byte gBattleMoves
-_0801C574: .4byte gBattleWeather
-_0801C578: .4byte gAccuracyStageRatios
-_0801C57C: .4byte gBattleMons
-_0801C580: .4byte gBankTarget
-_0801C584: .4byte gEnigmaBerries
-_0801C588:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r5, r0, 24
- mov r1, r8
- ldrb r0, [r1]
- muls r0, r7
- add r0, r9
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r2, r0, 24
-_0801C5A4:
- ldr r0, _0801C608 @ =gStringBank
- ldr r1, _0801C60C @ =gBankTarget
- ldrb r1, [r1]
- strb r1, [r0]
- cmp r5, 0x16
- bne _0801C5C0
- movs r0, 0x64
- subs r0, r2
- muls r0, r4
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C5C0:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, 0x1
- cmp r0, r4
- ble _0801C62A
- ldr r2, _0801C610 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0801C614 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0801C620
- ldr r1, _0801C618 @ =gBattleMoves
- ldr r2, [sp, 0x4]
- adds r0, r2, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x6]
- cmp r0, 0x8
- beq _0801C602
- cmp r0, 0x20
- bne _0801C620
-_0801C602:
- ldr r1, _0801C61C @ =gBattleCommunication
- movs r0, 0x2
- b _0801C624
- .align 2, 0
-_0801C608: .4byte gStringBank
-_0801C60C: .4byte gBankTarget
-_0801C610: .4byte gBattleMoveFlags
-_0801C614: .4byte gBattleTypeFlags
-_0801C618: .4byte gBattleMoves
-_0801C61C: .4byte gBattleCommunication
-_0801C620:
- ldr r1, _0801C644 @ =gBattleCommunication
- movs r0, 0
-_0801C624:
- strb r0, [r1, 0x6]
- bl b_wonderguard_and_levitate
-_0801C62A:
- movs r0, 0x7
- adds r1, r6, 0
- bl mcmd_jump_if_move_not_executed
-_0801C632:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C644: .4byte gBattleCommunication
- thumb_func_end atk01_accuracycheck
-
- thumb_func_start atk02_attackstring
-atk02_attackstring: @ 801C648
- push {r4,r5,lr}
- ldr r0, _0801C688 @ =gBattleExecBuffer
- ldr r5, [r0]
- cmp r5, 0
- bne _0801C680
- ldr r4, _0801C68C @ =gHitMarker
- ldr r0, [r4]
- movs r1, 0xC0
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- bne _0801C674
- ldr r0, _0801C690 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x4
- bl PrepareStringBattle
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 3
- orrs r0, r1
- str r0, [r4]
-_0801C674:
- ldr r0, _0801C694 @ =gBattlescriptCurrInstr
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- ldr r0, _0801C698 @ =gBattleCommunication
- strb r5, [r0, 0x7]
-_0801C680:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C688: .4byte gBattleExecBuffer
-_0801C68C: .4byte gHitMarker
-_0801C690: .4byte gBankAttacker
-_0801C694: .4byte gBattlescriptCurrInstr
-_0801C698: .4byte gBattleCommunication
- thumb_func_end atk02_attackstring
-
- thumb_func_start atk03_ppreduce
-atk03_ppreduce: @ 801C69C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r6, 0x1
- ldr r0, _0801C6EC @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _0801C6B4
- b _0801C84E
-_0801C6B4:
- ldr r1, _0801C6F0 @ =gSpecialStatuses
- ldr r2, _0801C6F4 @ =gBankAttacker
- ldrb r3, [r2]
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r4, r0, 31
- mov r9, r2
- cmp r4, 0
- bne _0801C756
- ldr r2, _0801C6F8 @ =gBattleMoves
- ldr r0, _0801C6FC @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- cmp r0, 0x20
- beq _0801C706
- cmp r0, 0x20
- bgt _0801C700
- cmp r0, 0x8
- beq _0801C71C
- b _0801C736
- .align 2, 0
-_0801C6EC: .4byte gBattleExecBuffer
-_0801C6F0: .4byte gSpecialStatuses
-_0801C6F4: .4byte gBankAttacker
-_0801C6F8: .4byte gBattleMoves
-_0801C6FC: .4byte gCurrentMove
-_0801C700:
- cmp r0, 0x40
- beq _0801C71C
- b _0801C736
-_0801C706:
- str r4, [sp]
- movs r0, 0x12
- adds r1, r3, 0
- movs r2, 0x2E
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0x1
- b _0801C756
-_0801C71C:
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x10
- movs r2, 0x2E
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0
- b _0801C756
-_0801C736:
- ldr r1, _0801C7B8 @ =gBankTarget
- mov r2, r9
- ldrb r0, [r2]
- ldrb r7, [r1]
- cmp r0, r7
- beq _0801C756
- ldr r2, _0801C7BC @ =gBattleMons
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2E
- bne _0801C756
- adds r6, 0x1
-_0801C756:
- ldr r0, _0801C7C0 @ =gHitMarker
- ldr r4, [r0]
- movs r0, 0xA0
- lsls r0, 4
- ands r4, r0
- cmp r4, 0
- bne _0801C83C
- ldr r2, _0801C7BC @ =gBattleMons
- ldr r3, _0801C7C4 @ =gCurrMovePos
- ldr r1, _0801C7C8 @ =gBankAttacker
- ldrb r5, [r1]
- movs r0, 0x58
- mov r8, r0
- mov r0, r8
- muls r0, r5
- ldrb r7, [r3]
- adds r0, r7
- movs r7, 0x24
- adds r7, r2
- mov r12, r7
- add r0, r12
- ldrb r0, [r0]
- mov r9, r1
- mov r10, r2
- adds r7, r3, 0
- cmp r0, 0
- beq _0801C83C
- ldr r0, _0801C7CC @ =gProtectStructs
- lsls r1, r5, 4
- adds r1, r0
- ldrb r0, [r1, 0x2]
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1, 0x2]
- mov r1, r9
- ldrb r0, [r1]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldrb r1, [r7]
- adds r0, r1
- mov r1, r12
- adds r2, r0, r1
- ldrb r0, [r2]
- cmp r0, r6
- ble _0801C7D0
- subs r0, r6
- strb r0, [r2]
- b _0801C7D2
- .align 2, 0
-_0801C7B8: .4byte gBankTarget
-_0801C7BC: .4byte gBattleMons
-_0801C7C0: .4byte gHitMarker
-_0801C7C4: .4byte gCurrMovePos
-_0801C7C8: .4byte gBankAttacker
-_0801C7CC: .4byte gProtectStructs
-_0801C7D0:
- strb r4, [r2]
-_0801C7D2:
- mov r2, r9
- ldrb r3, [r2]
- movs r4, 0x58
- adds r0, r3, 0
- muls r0, r4
- mov r1, r10
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _0801C83C
- ldr r1, _0801C860 @ =gDisableStructs
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0801C864 @ =gBitTable
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0801C83C
- ldr r0, _0801C868 @ =gActiveBank
- strb r3, [r0]
- ldrb r1, [r7]
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- mov r2, r9
- ldrb r0, [r2]
- muls r0, r4
- mov r2, r10
- adds r2, 0x24
- adds r0, r2
- ldrb r7, [r7]
- adds r0, r7
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl EmitSetAttributes
- mov r7, r9
- ldrb r0, [r7]
- bl MarkBufferBankForExecution
-_0801C83C:
- ldr r2, _0801C86C @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _0801C870 @ =0xfffff7ff
- ands r0, r1
- str r0, [r2]
- ldr r1, _0801C874 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801C84E:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C860: .4byte gDisableStructs
-_0801C864: .4byte gBitTable
-_0801C868: .4byte gActiveBank
-_0801C86C: .4byte gHitMarker
-_0801C870: .4byte 0xfffff7ff
-_0801C874: .4byte gBattlescriptCurrInstr
- thumb_func_end atk03_ppreduce
-
- thumb_func_start atk04_critcalc
-atk04_critcalc: @ 801C878
- push {r4-r7,lr}
- ldr r1, _0801C89C @ =gBattleMons
- ldr r0, _0801C8A0 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- cmp r0, 0xAF
- bne _0801C8A8
- ldr r1, _0801C8A4 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x7]
- b _0801C8B0
- .align 2, 0
-_0801C89C: .4byte gBattleMons
-_0801C8A0: .4byte gBankAttacker
-_0801C8A4: .4byte gEnigmaBerries
-_0801C8A8:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r6, r0, 24
-_0801C8B0:
- ldr r1, _0801C93C @ =gStringBank
- ldr r3, _0801C940 @ =gBankAttacker
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r4, _0801C944 @ =gBattleMons
- ldrb r1, [r3]
- movs r0, 0x58
- adds r7, r1, 0
- muls r7, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r7, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- negs r0, r0
- asrs r5, r0, 31
- movs r0, 0x2
- ands r5, r0
- ldr r2, _0801C948 @ =gBattleMoves
- ldr r0, _0801C94C @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- mov r12, r3
- cmp r1, 0x2B
- bne _0801C8F0
- adds r5, 0x1
-_0801C8F0:
- adds r0, r5, 0
- cmp r1, 0x4B
- bne _0801C8F8
- adds r0, 0x1
-_0801C8F8:
- cmp r1, 0xC8
- bne _0801C8FE
- adds r0, 0x1
-_0801C8FE:
- adds r2, r0, 0
- cmp r1, 0xD1
- bne _0801C906
- adds r2, 0x1
-_0801C906:
- movs r1, 0
- cmp r6, 0x3F
- bne _0801C916
- adds r0, r7, r4
- ldrh r0, [r0]
- cmp r0, 0x71
- bne _0801C916
- movs r1, 0x1
-_0801C916:
- lsls r5, r1, 1
- movs r3, 0
- cmp r6, 0x42
- bne _0801C930
- mov r0, r12
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0x53
- bne _0801C930
- movs r3, 0x1
-_0801C930:
- lsls r1, r3, 1
- cmp r6, 0x29
- bne _0801C950
- adds r0, r5, 0x1
- adds r0, r2, r0
- b _0801C952
- .align 2, 0
-_0801C93C: .4byte gStringBank
-_0801C940: .4byte gBankAttacker
-_0801C944: .4byte gBattleMons
-_0801C948: .4byte gBattleMoves
-_0801C94C: .4byte gCurrentMove
-_0801C950:
- adds r0, r2, r5
-_0801C952:
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- adds r5, r0, 0
- cmp r5, 0x4
- bls _0801C960
- movs r5, 0x4
-_0801C960:
- ldr r0, _0801C9BC @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4
- adds r0, 0x20
- ldrb r4, [r0]
- cmp r4, 0x4
- beq _0801C9D0
- cmp r4, 0x4B
- beq _0801C9D0
- ldr r1, _0801C9C0 @ =gStatuses3
- mov r2, r12
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- bne _0801C9D0
- ldr r0, _0801C9C4 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x84
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _0801C9D0
- bl Random
- ldr r2, _0801C9C8 @ =gCriticalHitChance
- lsls r1, r5, 1
- adds r1, r2
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r1]
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _0801C9D0
- ldr r1, _0801C9CC @ =gCritMultiplier
- movs r0, 0x2
- b _0801C9D4
- .align 2, 0
-_0801C9BC: .4byte gBankTarget
-_0801C9C0: .4byte gStatuses3
-_0801C9C4: .4byte gBattleTypeFlags
-_0801C9C8: .4byte gCriticalHitChance
-_0801C9CC: .4byte gCritMultiplier
-_0801C9D0:
- ldr r1, _0801C9E4 @ =gCritMultiplier
- movs r0, 0x1
-_0801C9D4:
- strb r0, [r1]
- ldr r1, _0801C9E8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C9E4: .4byte gCritMultiplier
-_0801C9E8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk04_critcalc
-
- thumb_func_start atk05_damagecalc1
-atk05_damagecalc1: @ 801C9EC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- ldr r4, _0801CABC @ =gSideAffecting
- ldr r6, _0801CAC0 @ =gBankTarget
- ldrb r0, [r6]
- bl GetBankIdentity
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldr r0, _0801CAC4 @ =gBankAttacker
- mov r8, r0
- ldrb r0, [r0]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _0801CAC8 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r6]
- muls r1, r4
- adds r1, r2
- ldr r2, _0801CACC @ =gCurrentMove
- mov r9, r2
- ldrh r2, [r2]
- ldr r4, _0801CAD0 @ =gDynamicBasePower
- ldrh r4, [r4]
- str r4, [sp]
- ldr r5, _0801CAD4 @ =0x02000000
- ldr r7, _0801CAD8 @ =0x0001601c
- adds r4, r5, r7
- ldrb r4, [r4]
- str r4, [sp, 0x4]
- mov r7, r8
- ldrb r4, [r7]
- str r4, [sp, 0x8]
- ldrb r4, [r6]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldr r4, _0801CADC @ =gBattleMoveDamage
- ldr r1, _0801CAE0 @ =gCritMultiplier
- ldrb r1, [r1]
- muls r1, r0
- ldr r0, _0801CAE4 @ =0x0001601f
- adds r5, r0
- ldrb r0, [r5]
- adds r3, r1, 0
- muls r3, r0
- str r3, [r4]
- ldr r1, _0801CAE8 @ =gStatuses3
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 2
- ands r0, r1
- cmp r0, 0
- beq _0801CA82
- ldr r2, _0801CAEC @ =gBattleMoves
- mov r7, r9
- ldrh r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- cmp r0, 0xD
- bne _0801CA82
- lsls r0, r3, 1
- str r0, [r4]
-_0801CA82:
- ldr r1, _0801CAF0 @ =gProtectStructs
- ldr r0, _0801CAC4 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _0801CAA4
- ldr r4, _0801CADC @ =gBattleMoveDamage
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0801CAA4:
- ldr r1, _0801CAF4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801CABC: .4byte gSideAffecting
-_0801CAC0: .4byte gBankTarget
-_0801CAC4: .4byte gBankAttacker
-_0801CAC8: .4byte gBattleMons
-_0801CACC: .4byte gCurrentMove
-_0801CAD0: .4byte gDynamicBasePower
-_0801CAD4: .4byte 0x02000000
-_0801CAD8: .4byte 0x0001601c
-_0801CADC: .4byte gBattleMoveDamage
-_0801CAE0: .4byte gCritMultiplier
-_0801CAE4: .4byte 0x0001601f
-_0801CAE8: .4byte gStatuses3
-_0801CAEC: .4byte gBattleMoves
-_0801CAF0: .4byte gProtectStructs
-_0801CAF4: .4byte gBattlescriptCurrInstr
- thumb_func_end atk05_damagecalc1
-
- thumb_func_start AI_CalcDmg
-AI_CalcDmg: @ 801CAF8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r5, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _0801CBBC @ =gSideAffecting
- adds r0, r5, 0
- bl GetBankIdentity
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- movs r1, 0x58
- adds r0, r7, 0
- muls r0, r1
- ldr r2, _0801CBC0 @ =gBattleMons
- adds r0, r2
- muls r1, r5
- adds r1, r2
- ldr r2, _0801CBC4 @ =gCurrentMove
- mov r9, r2
- ldrh r2, [r2]
- ldr r4, _0801CBC8 @ =gDynamicBasePower
- mov r8, r4
- ldrh r4, [r4]
- str r4, [sp]
- ldr r6, _0801CBCC @ =0x02000000
- ldr r4, _0801CBD0 @ =0x0001601c
- ldrb r4, [r4, r6]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- str r5, [sp, 0xC]
- bl CalculateBaseDamage
- ldr r4, _0801CBD4 @ =gBattleMoveDamage
- movs r1, 0
- mov r2, r8
- strh r1, [r2]
- ldr r1, _0801CBD8 @ =gCritMultiplier
- ldrb r1, [r1]
- muls r1, r0
- ldr r0, _0801CBDC @ =0x0001601f
- adds r6, r0
- ldrb r0, [r6]
- adds r3, r1, 0
- muls r3, r0
- str r3, [r4]
- ldr r1, _0801CBE0 @ =gStatuses3
- lsls r0, r7, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 2
- ands r0, r1
- cmp r0, 0
- beq _0801CB8E
- ldr r2, _0801CBE4 @ =gBattleMoves
- mov r6, r9
- ldrh r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- cmp r0, 0xD
- bne _0801CB8E
- lsls r0, r3, 1
- str r0, [r4]
-_0801CB8E:
- ldr r0, _0801CBE8 @ =gProtectStructs
- lsls r1, r7, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 28
- cmp r0, 0
- bge _0801CBAC
- ldr r4, _0801CBD4 @ =gBattleMoveDamage
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0801CBAC:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801CBBC: .4byte gSideAffecting
-_0801CBC0: .4byte gBattleMons
-_0801CBC4: .4byte gCurrentMove
-_0801CBC8: .4byte gDynamicBasePower
-_0801CBCC: .4byte 0x02000000
-_0801CBD0: .4byte 0x0001601c
-_0801CBD4: .4byte gBattleMoveDamage
-_0801CBD8: .4byte gCritMultiplier
-_0801CBDC: .4byte 0x0001601f
-_0801CBE0: .4byte gStatuses3
-_0801CBE4: .4byte gBattleMoves
-_0801CBE8: .4byte gProtectStructs
- thumb_func_end AI_CalcDmg
-
- thumb_func_start battle_attack_damage_modulate_by_effectivity
-battle_attack_damage_modulate_by_effectivity: @ 801CBEC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _0801CC1C @ =gBattleMoveDamage
- ldr r0, [r5]
- muls r0, r4
- movs r1, 0xA
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _0801CC0C
- cmp r4, 0
- beq _0801CC0C
- movs r0, 0x1
- str r0, [r5]
-_0801CC0C:
- cmp r4, 0x5
- beq _0801CC3C
- cmp r4, 0x5
- bgt _0801CC20
- cmp r4, 0
- beq _0801CC26
- b _0801CCBE
- .align 2, 0
-_0801CC1C: .4byte gBattleMoveDamage
-_0801CC20:
- cmp r4, 0x14
- beq _0801CC7C
- b _0801CCBE
-_0801CC26:
- ldr r2, _0801CC38 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0xFB
- ands r0, r1
- movs r1, 0xFD
- ands r0, r1
- b _0801CCBC
- .align 2, 0
-_0801CC38: .4byte gBattleMoveFlags
-_0801CC3C:
- ldr r2, _0801CC6C @ =gBattleMoves
- ldr r0, _0801CC70 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801CCBE
- ldr r2, _0801CC74 @ =gBattleMoveFlags
- ldrb r1, [r2]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801CCBE
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801CC78
- movs r0, 0xFD
- ands r0, r1
- b _0801CCBC
- .align 2, 0
-_0801CC6C: .4byte gBattleMoves
-_0801CC70: .4byte gCurrentMove
-_0801CC74: .4byte gBattleMoveFlags
-_0801CC78:
- movs r0, 0x4
- b _0801CCBA
-_0801CC7C:
- ldr r2, _0801CCAC @ =gBattleMoves
- ldr r0, _0801CCB0 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801CCBE
- ldr r2, _0801CCB4 @ =gBattleMoveFlags
- ldrb r1, [r2]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801CCBE
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801CCB8
- movs r0, 0xFB
- ands r0, r1
- b _0801CCBC
- .align 2, 0
-_0801CCAC: .4byte gBattleMoves
-_0801CCB0: .4byte gCurrentMove
-_0801CCB4: .4byte gBattleMoveFlags
-_0801CCB8:
- movs r0, 0x2
-_0801CCBA:
- orrs r0, r1
-_0801CCBC:
- strb r0, [r2]
-_0801CCBE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end battle_attack_damage_modulate_by_effectivity
-
- thumb_func_start atk06_typecalc
-atk06_typecalc: @ 801CCC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r3, 0
- ldr r1, _0801CCF0 @ =gCurrentMove
- ldrh r0, [r1]
- cmp r0, 0xA5
- bne _0801CCD8
- b _0801CEF4
-_0801CCD8:
- ldr r0, _0801CCF4 @ =0x02000000
- ldr r2, _0801CCF8 @ =0x0001601c
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801CCFC
- movs r1, 0x3F
- mov r8, r1
- mov r2, r8
- ands r2, r0
- mov r8, r2
- b _0801CD0C
- .align 2, 0
-_0801CCF0: .4byte gCurrentMove
-_0801CCF4: .4byte 0x02000000
-_0801CCF8: .4byte 0x0001601c
-_0801CCFC:
- ldr r2, _0801CD94 @ =gBattleMoves
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r8, r0
-_0801CD0C:
- ldr r2, _0801CD98 @ =gBattleMons
- ldr r0, _0801CD9C @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, r8
- beq _0801CD2E
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r8
- bne _0801CD44
-_0801CD2E:
- ldr r4, _0801CDA0 @ =gBattleMoveDamage
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- str r0, [r4]
- movs r1, 0xA
- str r3, [sp, 0x4]
- bl __divsi3
- str r0, [r4]
- ldr r3, [sp, 0x4]
-_0801CD44:
- ldr r2, _0801CDA4 @ =gBankTarget
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- adds r4, r2, 0
- cmp r0, 0x1A
- bne _0801CDBC
- mov r1, r8
- cmp r1, 0x4
- bne _0801CDBC
- ldr r3, _0801CDA8 @ =gLastUsedAbility
- strb r0, [r3]
- ldr r2, _0801CDAC @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x9
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801CDB0 @ =gMoveHitWith
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801CDB4 @ =gUnknown_02024C44
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldr r0, _0801CDB8 @ =gBattleCommunication
- mov r2, r8
- strb r2, [r0, 0x6]
- ldrb r0, [r4]
- ldrb r1, [r3]
- bl RecordAbilityBattle
- b _0801CE58
- .align 2, 0
-_0801CD94: .4byte gBattleMoves
-_0801CD98: .4byte gBattleMons
-_0801CD9C: .4byte gBankAttacker
-_0801CDA0: .4byte gBattleMoveDamage
-_0801CDA4: .4byte gBankTarget
-_0801CDA8: .4byte gLastUsedAbility
-_0801CDAC: .4byte gBattleMoveFlags
-_0801CDB0: .4byte gMoveHitWith
-_0801CDB4: .4byte gUnknown_02024C44
-_0801CDB8: .4byte gBattleCommunication
-_0801CDBC:
- ldr r1, _0801CDC8 @ =gTypeEffectiveness
- adds r0, r3, r1
- ldrb r0, [r0]
- adds r2, r1, 0
- b _0801CE38
- .align 2, 0
-_0801CDC8: .4byte gTypeEffectiveness
-_0801CDCC:
- adds r3, 0x3
- b _0801CE34
-_0801CDD0:
- ldr r5, _0801CF08 @ =gTypeEffectiveness
- adds r0, r3, r5
- ldrb r0, [r0]
- cmp r0, r8
- bne _0801CE2C
- adds r1, r3, 0x1
- adds r1, r5
- ldr r2, _0801CF0C @ =gBattleMons
- ldr r7, _0801CF10 @ =gBankTarget
- ldrb r0, [r7]
- movs r6, 0x58
- muls r0, r6
- adds r0, r2
- adds r0, 0x21
- ldrb r4, [r1]
- ldrb r0, [r0]
- cmp r4, r0
- bne _0801CE06
- adds r0, r3, 0x2
- adds r0, r5
- ldrb r0, [r0]
- str r2, [sp]
- str r3, [sp, 0x4]
- bl battle_attack_damage_modulate_by_effectivity
- ldr r3, [sp, 0x4]
- ldr r2, [sp]
-_0801CE06:
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r1, [r1]
- cmp r4, r1
- bne _0801CE2C
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r4
- beq _0801CE2C
- adds r0, r3, 0x2
- adds r0, r5
- ldrb r0, [r0]
- str r3, [sp, 0x4]
- bl battle_attack_damage_modulate_by_effectivity
- ldr r3, [sp, 0x4]
-_0801CE2C:
- adds r3, 0x3
- ldr r5, _0801CF0C @ =gBattleMons
- ldr r4, _0801CF10 @ =gBankTarget
- ldr r2, _0801CF08 @ =gTypeEffectiveness
-_0801CE34:
- adds r0, r3, r2
- ldrb r0, [r0]
-_0801CE38:
- cmp r0, 0xFF
- beq _0801CE58
- cmp r0, 0xFE
- bne _0801CDD0
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r1, r5, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801CDCC
-_0801CE58:
- ldr r2, _0801CF0C @ =gBattleMons
- ldr r5, _0801CF10 @ =gBankTarget
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r6, [r0]
- cmp r6, 0x19
- bne _0801CED6
- ldr r0, _0801CF14 @ =gBankAttacker
- ldrb r0, [r0]
- ldr r7, _0801CF18 @ =gCurrentMove
- ldrh r1, [r7]
- bl move_weather_interaction
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0801CED6
- ldr r1, _0801CF1C @ =gBattleMoveFlags
- mov r8, r1
- ldrb r4, [r1]
- ands r0, r4
- cmp r0, 0
- beq _0801CE94
- movs r0, 0x6
- ands r0, r4
- cmp r0, 0x6
- bne _0801CED6
-_0801CE94:
- ldr r2, _0801CF20 @ =gBattleMoves
- ldrh r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801CED6
- ldr r3, _0801CF24 @ =gLastUsedAbility
- strb r6, [r3]
- movs r0, 0x1
- orrs r0, r4
- mov r2, r8
- strb r0, [r2]
- ldr r1, _0801CF28 @ =gMoveHitWith
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801CF2C @ =gUnknown_02024C44
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldr r1, _0801CF30 @ =gBattleCommunication
- movs r0, 0x3
- strb r0, [r1, 0x6]
- ldrb r0, [r5]
- ldrb r1, [r3]
- bl RecordAbilityBattle
-_0801CED6:
- ldr r0, _0801CF1C @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801CEF4
- ldr r2, _0801CF34 @ =gProtectStructs
- ldr r0, _0801CF14 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 4
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1, 0x1]
-_0801CEF4:
- ldr r1, _0801CF38 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801CF08: .4byte gTypeEffectiveness
-_0801CF0C: .4byte gBattleMons
-_0801CF10: .4byte gBankTarget
-_0801CF14: .4byte gBankAttacker
-_0801CF18: .4byte gCurrentMove
-_0801CF1C: .4byte gBattleMoveFlags
-_0801CF20: .4byte gBattleMoves
-_0801CF24: .4byte gLastUsedAbility
-_0801CF28: .4byte gMoveHitWith
-_0801CF2C: .4byte gUnknown_02024C44
-_0801CF30: .4byte gBattleCommunication
-_0801CF34: .4byte gProtectStructs
-_0801CF38: .4byte gBattlescriptCurrInstr
- thumb_func_end atk06_typecalc
-
- thumb_func_start b_wonderguard_and_levitate
-b_wonderguard_and_levitate: @ 801CF3C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- movs r5, 0
- ldr r0, _0801CF80 @ =gCurrentMove
- ldrh r1, [r0]
- mov r9, r0
- cmp r1, 0xA5
- bne _0801CF54
- b _0801D1A4
-_0801CF54:
- ldr r2, _0801CF84 @ =gBattleMoves
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0801CF66
- b _0801D1A4
-_0801CF66:
- ldr r0, _0801CF88 @ =0x02000000
- ldr r2, _0801CF8C @ =0x0001601c
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801CF90
- movs r1, 0x3F
- mov r12, r1
- mov r2, r12
- ands r2, r0
- mov r12, r2
- b _0801CF94
- .align 2, 0
-_0801CF80: .4byte gCurrentMove
-_0801CF84: .4byte gBattleMoves
-_0801CF88: .4byte 0x02000000
-_0801CF8C: .4byte 0x0001601c
-_0801CF90:
- ldrb r1, [r1, 0x2]
- mov r12, r1
-_0801CF94:
- ldr r2, _0801CFC8 @ =gBattleMons
- ldr r3, _0801CFCC @ =gBankTarget
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r1, [r0]
- adds r7, r2, 0
- mov r8, r3
- cmp r1, 0x1A
- bne _0801CFD8
- mov r0, r12
- cmp r0, 0x4
- bne _0801CFD8
- ldr r0, _0801CFD0 @ =gLastUsedAbility
- strb r1, [r0]
- ldr r0, _0801CFD4 @ =gBattleCommunication
- mov r1, r12
- strb r1, [r0, 0x6]
- ldrb r0, [r3]
- movs r1, 0x1A
- bl RecordAbilityBattle
- b _0801D1A4
- .align 2, 0
-_0801CFC8: .4byte gBattleMons
-_0801CFCC: .4byte gBankTarget
-_0801CFD0: .4byte gLastUsedAbility
-_0801CFD4: .4byte gBattleCommunication
-_0801CFD8:
- ldr r1, _0801CFE4 @ =gTypeEffectiveness
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r4, r1, 0
- b _0801D12A
- .align 2, 0
-_0801CFE4: .4byte gTypeEffectiveness
-_0801CFE8:
- adds r0, r5, r4
- ldrb r0, [r0]
- cmp r0, r12
- beq _0801CFF2
- b _0801D124
-_0801CFF2:
- adds r2, r5, 0x1
- adds r3, r2, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x21
- ldrb r1, [r3]
- adds r3, r2, 0
- ldrb r0, [r0]
- cmp r1, r0
- bne _0801D032
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801D032
- ldr r2, _0801D1B0 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D1B4 @ =gProtectStructs
- ldr r0, _0801D1B8 @ =gBankAttacker
- ldrb r2, [r0]
- lsls r2, 4
- adds r2, r1
- ldrb r0, [r2, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x1]
-_0801D032:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0801D078
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0801D078
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801D078
- ldr r2, _0801D1B0 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D1B4 @ =gProtectStructs
- ldr r0, _0801D1B8 @ =gBankAttacker
- ldrb r2, [r0]
- lsls r2, 4
- adds r2, r1
- ldrb r0, [r2, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x1]
-_0801D078:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x21
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0801D09C
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0801D09C
- movs r0, 0x1
- orrs r6, r0
-_0801D09C:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0801D0CA
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0801D0CA
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0801D0CA
- movs r0, 0x1
- orrs r6, r0
-_0801D0CA:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x21
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0801D0F2
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _0801D0F2
- movs r0, 0x2
- orrs r6, r0
- lsls r0, r6, 24
- lsrs r6, r0, 24
-_0801D0F2:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0801D124
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0801D124
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _0801D124
- movs r0, 0x2
- orrs r6, r0
- lsls r0, r6, 24
- lsrs r6, r0, 24
-_0801D124:
- adds r5, 0x3
- adds r0, r5, r4
- ldrb r0, [r0]
-_0801D12A:
- cmp r0, 0xFF
- beq _0801D14E
- cmp r0, 0xFE
- beq _0801D134
- b _0801CFE8
-_0801D134:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- adds r1, r7, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801D124
-_0801D14E:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x20
- ldrb r4, [r0]
- cmp r4, 0x19
- bne _0801D1A4
- ldr r0, _0801D1B8 @ =gBankAttacker
- ldrb r0, [r0]
- mov r2, r9
- ldrh r1, [r2]
- bl move_weather_interaction
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0801D1A4
- movs r0, 0x3
- ands r6, r0
- cmp r6, 0x1
- beq _0801D1A4
- ldr r2, _0801D1BC @ =gBattleMoves
- mov r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801D1A4
- ldr r0, _0801D1C0 @ =gLastUsedAbility
- strb r4, [r0]
- ldr r1, _0801D1C4 @ =gBattleCommunication
- movs r0, 0x3
- strb r0, [r1, 0x6]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x19
- bl RecordAbilityBattle
-_0801D1A4:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D1B0: .4byte gBattleMoveFlags
-_0801D1B4: .4byte gProtectStructs
-_0801D1B8: .4byte gBankAttacker
-_0801D1BC: .4byte gBattleMoves
-_0801D1C0: .4byte gLastUsedAbility
-_0801D1C4: .4byte gBattleCommunication
- thumb_func_end b_wonderguard_and_levitate
-
- thumb_func_start b_attack_effectivity_adapt
-b_attack_effectivity_adapt: @ 801D1C8
- push {r4-r7,lr}
- adds r6, r2, 0
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r7, _0801D1FC @ =gBattleMoveDamage
- ldr r0, [r7]
- muls r0, r4
- movs r1, 0xA
- bl __divsi3
- str r0, [r7]
- cmp r0, 0
- bne _0801D1EE
- cmp r4, 0
- beq _0801D1EE
- movs r0, 0x1
- str r0, [r7]
-_0801D1EE:
- cmp r4, 0x5
- beq _0801D216
- cmp r4, 0x5
- bgt _0801D200
- cmp r4, 0
- beq _0801D206
- b _0801D27A
- .align 2, 0
-_0801D1FC: .4byte gBattleMoveDamage
-_0801D200:
- cmp r4, 0x14
- beq _0801D248
- b _0801D27A
-_0801D206:
- ldrb r0, [r6]
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0xFB
- ands r0, r1
- movs r1, 0xFD
- ands r0, r1
- b _0801D278
-_0801D216:
- ldr r0, _0801D240 @ =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D27A
- ldrb r1, [r6]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801D27A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801D244
- movs r0, 0xFD
- ands r0, r1
- b _0801D278
- .align 2, 0
-_0801D240: .4byte gBattleMoves
-_0801D244:
- movs r0, 0x4
- b _0801D276
-_0801D248:
- ldr r0, _0801D270 @ =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D27A
- ldrb r1, [r6]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801D27A
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801D274
- movs r0, 0xFB
- ands r0, r1
- b _0801D278
- .align 2, 0
-_0801D270: .4byte gBattleMoves
-_0801D274:
- movs r0, 0x2
-_0801D276:
- orrs r0, r1
-_0801D278:
- strb r0, [r6]
-_0801D27A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end b_attack_effectivity_adapt
-
- thumb_func_start TypeCalc
-TypeCalc: @ 801D280
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- movs r7, 0
- mov r0, sp
- strb r7, [r0]
- mov r0, r10
- cmp r0, 0xA5
- bne _0801D2AE
- movs r0, 0
- b _0801D43A
-_0801D2AE:
- ldr r1, _0801D31C @ =gBattleMoves
- mov r3, r10
- lsls r2, r3, 1
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x8]
- ldr r1, _0801D320 @ =gBattleMons
- movs r0, 0x58
- ldr r3, [sp, 0x4]
- muls r0, r3
- adds r3, r0, r1
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r0, [r0]
- str r2, [sp, 0xC]
- adds r5, r1, 0
- ldr r1, [sp, 0x8]
- cmp r0, r1
- beq _0801D2E2
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- bne _0801D2F4
-_0801D2E2:
- ldr r4, _0801D324 @ =gBattleMoveDamage
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- str r0, [r4]
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0801D2F4:
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- bne _0801D328
- ldr r3, [sp, 0x8]
- cmp r3, 0x4
- bne _0801D328
- movs r1, 0x9
- mov r0, sp
- ldrb r0, [r0]
- orrs r0, r1
- mov r1, sp
- strb r0, [r1]
- b _0801D3DC
- .align 2, 0
-_0801D31C: .4byte gBattleMoves
-_0801D320: .4byte gBattleMons
-_0801D324: .4byte gBattleMoveDamage
-_0801D328:
- ldr r1, _0801D344 @ =gTypeEffectiveness
- adds r0, r7, r1
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xFF
- beq _0801D3DC
- cmp r0, 0xFE
- bne _0801D34C
- movs r0, 0x58
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- b _0801D3CA
- .align 2, 0
-_0801D344: .4byte gTypeEffectiveness
-_0801D348:
- adds r7, 0x3
- b _0801D3B6
-_0801D34C:
- ldr r6, _0801D44C @ =gTypeEffectiveness
- adds r0, r7, r6
- ldrb r0, [r0]
- ldr r2, [sp, 0x8]
- cmp r0, r2
- bne _0801D3B0
- adds r1, r7, 0x1
- adds r1, r6
- ldr r3, _0801D450 @ =gBattleMons
- mov r8, r3
- movs r3, 0x58
- mov r0, r9
- muls r0, r3
- mov r2, r8
- adds r5, r0, r2
- adds r0, r5, 0
- adds r0, 0x21
- ldrb r4, [r1]
- ldrb r0, [r0]
- cmp r4, r0
- bne _0801D388
- adds r0, r7, 0x2
- adds r0, r6
- ldrb r0, [r0]
- mov r1, r10
- mov r2, sp
- str r3, [sp, 0x10]
- bl b_attack_effectivity_adapt
- ldr r3, [sp, 0x10]
-_0801D388:
- adds r0, r5, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r4, r0
- bne _0801D3B0
- ldr r0, _0801D454 @ =gBankTarget
- ldrb r0, [r0]
- muls r0, r3
- add r0, r8
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r4
- beq _0801D3B0
- adds r0, r7, 0x2
- adds r0, r6
- ldrb r0, [r0]
- mov r1, r10
- mov r2, sp
- bl b_attack_effectivity_adapt
-_0801D3B0:
- adds r7, 0x3
- ldr r5, _0801D450 @ =gBattleMons
- ldr r2, _0801D44C @ =gTypeEffectiveness
-_0801D3B6:
- adds r0, r7, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _0801D3DC
- cmp r0, 0xFE
- bne _0801D34C
- movs r0, 0x58
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
-_0801D3CA:
- adds r1, r5, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801D348
-_0801D3DC:
- movs r0, 0x58
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x19
- bne _0801D436
- mov r0, sp
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801D436
- ldr r0, [sp, 0x4]
- mov r1, r10
- bl move_weather_interaction
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _0801D436
- mov r0, sp
- ldrb r3, [r0]
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0801D41E
- movs r0, 0x6
- ands r0, r3
- cmp r0, 0x6
- bne _0801D436
-_0801D41E:
- ldr r0, _0801D458 @ =gBattleMoves
- ldr r1, [sp, 0xC]
- add r1, r10
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D436
- mov r0, sp
- movs r1, 0x1
- orrs r1, r3
- strb r1, [r0]
-_0801D436:
- mov r0, sp
- ldrb r0, [r0]
-_0801D43A:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801D44C: .4byte gTypeEffectiveness
-_0801D450: .4byte gBattleMons
-_0801D454: .4byte gBankTarget
-_0801D458: .4byte gBattleMoves
- thumb_func_end TypeCalc
-
- thumb_func_start ai_rate_move
-ai_rate_move: @ 801D45C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4]
- movs r7, 0
- mov r0, sp
- strb r7, [r0]
- ldr r2, _0801D498 @ =gBaseStats
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x6]
- str r1, [sp, 0x8]
- ldrb r0, [r0, 0x7]
- mov r8, r0
- cmp r6, 0xA5
- bne _0801D49C
- movs r0, 0
- b _0801D554
- .align 2, 0
-_0801D498: .4byte gBaseStats
-_0801D49C:
- ldr r2, _0801D4C0 @ =gBattleMoves
- lsls r1, r6, 1
- adds r0, r1, r6
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r9, r0
- str r1, [sp, 0xC]
- ldr r3, [sp, 0x4]
- cmp r3, 0x1A
- bne _0801D4C4
- cmp r0, 0x4
- bne _0801D4C4
- movs r1, 0x9
- mov r0, sp
- strb r1, [r0]
- b _0801D51E
- .align 2, 0
-_0801D4C0: .4byte gBattleMoves
-_0801D4C4:
- ldr r0, _0801D564 @ =gTypeEffectiveness
- mov r10, r0
- adds r1, r7, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _0801D51E
- adds r4, r1, 0
-_0801D4D2:
- ldrb r0, [r4]
- cmp r0, 0xFE
- beq _0801D510
- cmp r0, r9
- bne _0801D510
- ldrb r5, [r4, 0x1]
- ldr r1, [sp, 0x8]
- cmp r5, r1
- bne _0801D4EE
- ldrb r0, [r4, 0x2]
- adds r1, r6, 0
- mov r2, sp
- bl b_attack_effectivity_adapt
-_0801D4EE:
- cmp r5, r8
- bne _0801D510
- ldr r0, _0801D568 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- ldr r3, _0801D56C @ =gBattleMons
- adds r0, r3
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r8
- beq _0801D510
- ldrb r0, [r4, 0x2]
- adds r1, r6, 0
- mov r2, sp
- bl b_attack_effectivity_adapt
-_0801D510:
- adds r4, 0x3
- adds r7, 0x3
- mov r1, r10
- adds r0, r7, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _0801D4D2
-_0801D51E:
- ldr r3, [sp, 0x4]
- cmp r3, 0x19
- bne _0801D550
- mov r0, sp
- ldrb r2, [r0]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0801D538
- movs r0, 0x6
- ands r0, r2
- cmp r0, 0x6
- bne _0801D550
-_0801D538:
- ldr r0, _0801D570 @ =gBattleMoves
- ldr r3, [sp, 0xC]
- adds r1, r3, r6
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D550
- mov r0, sp
- movs r1, 0x8
- orrs r1, r2
- strb r1, [r0]
-_0801D550:
- mov r0, sp
- ldrb r0, [r0]
-_0801D554:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801D564: .4byte gTypeEffectiveness
-_0801D568: .4byte gBankTarget
-_0801D56C: .4byte gBattleMons
-_0801D570: .4byte gBattleMoves
- thumb_func_end ai_rate_move
-
- thumb_func_start unref_sub_801D574
-unref_sub_801D574: @ 801D574
- push {r4,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0801D5AC @ =gBattleMoveDamage
- ldr r0, [r4]
- cmp r0, 0
- beq _0801D5A6
- muls r0, r1
- str r0, [r4]
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801D5A6
- movs r0, 0x1
- str r0, [r4]
-_0801D5A6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D5AC: .4byte gBattleMoveDamage
- thumb_func_end unref_sub_801D574
-
- thumb_func_start atk07_dmg_adjustment
-atk07_dmg_adjustment: @ 801D5B0
- push {r4-r7,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0801D608 @ =gBattleMoveDamage
- ldr r0, [r4]
- cmp r0, 0
- beq _0801D5E2
- muls r0, r1
- str r0, [r4]
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801D5E2
- movs r0, 0x1
- str r0, [r4]
-_0801D5E2:
- ldr r7, _0801D60C @ =gBattleMons
- ldr r6, _0801D610 @ =gBankTarget
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0801D618
- ldr r1, _0801D614 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _0801D632
- .align 2, 0
-_0801D608: .4byte gBattleMoveDamage
-_0801D60C: .4byte gBattleMons
-_0801D610: .4byte gBankTarget
-_0801D614: .4byte gEnigmaBerries
-_0801D618:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_0801D632:
- ldr r1, _0801D6F4 @ =gStringBank
- ldr r5, _0801D6F8 @ =gBankTarget
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _0801D670
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _0801D670
- ldrb r0, [r5]
- movs r1, 0x27
- bl RecordItemBattle
- ldr r2, _0801D6FC @ =gSpecialStatuses
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_0801D670:
- ldr r2, _0801D700 @ =gBattleMons
- ldr r3, _0801D6F8 @ =gBankTarget
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r1, r0
- adds r5, r2, 0
- cmp r1, 0
- bne _0801D740
- ldr r2, _0801D704 @ =gBattleMoves
- ldr r0, _0801D708 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x65
- beq _0801D6C2
- ldr r0, _0801D70C @ =gProtectStructs
- lsls r1, r4, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- blt _0801D6C2
- ldr r0, _0801D6FC @ =gSpecialStatuses
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D740
-_0801D6C2:
- ldrb r0, [r3]
- movs r4, 0x58
- muls r0, r4
- adds r0, r5
- ldrh r1, [r0, 0x28]
- ldr r2, _0801D710 @ =gBattleMoveDamage
- ldr r0, [r2]
- cmp r1, r0
- bgt _0801D740
- subs r0, r1, 0x1
- str r0, [r2]
- ldr r1, _0801D70C @ =gProtectStructs
- ldrb r3, [r3]
- lsls r0, r3, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bge _0801D718
- ldr r0, _0801D714 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _0801D740
- .align 2, 0
-_0801D6F4: .4byte gStringBank
-_0801D6F8: .4byte gBankTarget
-_0801D6FC: .4byte gSpecialStatuses
-_0801D700: .4byte gBattleMons
-_0801D704: .4byte gBattleMoves
-_0801D708: .4byte gCurrentMove
-_0801D70C: .4byte gProtectStructs
-_0801D710: .4byte gBattleMoveDamage
-_0801D714: .4byte gBattleMoveFlags
-_0801D718:
- ldr r0, _0801D750 @ =gSpecialStatuses
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D740
- ldr r2, _0801D754 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D758 @ =gLastUsedItem
- adds r0, r3, 0
- muls r0, r4
- adds r0, r5
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
-_0801D740:
- ldr r1, _0801D75C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D750: .4byte gSpecialStatuses
-_0801D754: .4byte gBattleMoveFlags
-_0801D758: .4byte gLastUsedItem
-_0801D75C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk07_dmg_adjustment
-
- thumb_func_start atk08_dmg_adjustment2
-atk08_dmg_adjustment2: @ 801D760
- push {r4-r7,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0801D7B8 @ =gBattleMoveDamage
- ldr r0, [r4]
- cmp r0, 0
- beq _0801D792
- muls r0, r1
- str r0, [r4]
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801D792
- movs r0, 0x1
- str r0, [r4]
-_0801D792:
- ldr r7, _0801D7BC @ =gBattleMons
- ldr r6, _0801D7C0 @ =gBankTarget
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0801D7C8
- ldr r1, _0801D7C4 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _0801D7E2
- .align 2, 0
-_0801D7B8: .4byte gBattleMoveDamage
-_0801D7BC: .4byte gBattleMons
-_0801D7C0: .4byte gBankTarget
-_0801D7C4: .4byte gEnigmaBerries
-_0801D7C8:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_0801D7E2:
- ldr r1, _0801D888 @ =gStringBank
- ldr r5, _0801D88C @ =gBankTarget
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _0801D820
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _0801D820
- ldrb r0, [r5]
- movs r1, 0x27
- bl RecordItemBattle
- ldr r2, _0801D890 @ =gSpecialStatuses
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_0801D820:
- ldr r4, _0801D894 @ =gBattleMons
- ldr r6, _0801D88C @ =gBankTarget
- ldrb r2, [r6]
- movs r7, 0x58
- adds r3, r2, 0
- muls r3, r7
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _0801D8CC
- ldr r5, _0801D898 @ =gProtectStructs
- lsls r0, r2, 4
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- blt _0801D85E
- ldr r0, _0801D890 @ =gSpecialStatuses
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D8CC
-_0801D85E:
- adds r0, r3, r4
- ldrh r1, [r0, 0x28]
- ldr r2, _0801D89C @ =gBattleMoveDamage
- ldr r0, [r2]
- cmp r1, r0
- bgt _0801D8CC
- subs r0, r1, 0x1
- str r0, [r2]
- ldrb r3, [r6]
- lsls r0, r3, 4
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bge _0801D8A4
- ldr r0, _0801D8A0 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _0801D8CC
- .align 2, 0
-_0801D888: .4byte gStringBank
-_0801D88C: .4byte gBankTarget
-_0801D890: .4byte gSpecialStatuses
-_0801D894: .4byte gBattleMons
-_0801D898: .4byte gProtectStructs
-_0801D89C: .4byte gBattleMoveDamage
-_0801D8A0: .4byte gBattleMoveFlags
-_0801D8A4:
- ldr r0, _0801D8DC @ =gSpecialStatuses
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D8CC
- ldr r2, _0801D8E0 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D8E4 @ =gLastUsedItem
- adds r0, r3, 0
- muls r0, r7
- adds r0, r4
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
-_0801D8CC:
- ldr r1, _0801D8E8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D8DC: .4byte gSpecialStatuses
-_0801D8E0: .4byte gBattleMoveFlags
-_0801D8E4: .4byte gLastUsedItem
-_0801D8E8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk08_dmg_adjustment2
-
- thumb_func_start atk09_attackanimation
-atk09_attackanimation: @ 801D8EC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0xC
- ldr r0, _0801D940 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _0801D900
- b _0801DA4A
-_0801D900:
- ldr r0, _0801D944 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- ldr r3, _0801D948 @ =gCurrentMove
- cmp r0, 0
- beq _0801D960
- ldrh r0, [r3]
- cmp r0, 0x90
- beq _0801D960
- cmp r0, 0xA4
- beq _0801D960
- ldr r4, _0801D94C @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801D950 @ =BattleScript_Pausex20
- str r0, [r4]
- ldr r1, _0801D954 @ =0x02000000
- ldr r0, _0801D958 @ =0x00016002
- adds r2, r1, r0
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldr r2, _0801D95C @ =0x000160a1
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0801DA4A
- .align 2, 0
-_0801D940: .4byte gBattleExecBuffer
-_0801D944: .4byte gHitMarker
-_0801D948: .4byte gCurrentMove
-_0801D94C: .4byte gBattlescriptCurrInstr
-_0801D950: .4byte BattleScript_Pausex20
-_0801D954: .4byte 0x02000000
-_0801D958: .4byte 0x00016002
-_0801D95C: .4byte 0x000160a1
-_0801D960:
- ldr r2, _0801DA0C @ =gBattleMoves
- ldrh r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0801D986
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0801D986
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0801D992
-_0801D986:
- ldr r0, _0801DA10 @ =0x02000000
- ldr r1, _0801DA14 @ =0x000160a1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801DA00
-_0801D992:
- ldr r0, _0801DA18 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801DA3C
- ldr r1, _0801DA1C @ =gActiveBank
- ldr r2, _0801DA20 @ =gBankAttacker
- mov r9, r2
- ldrb r0, [r2]
- strb r0, [r1]
- ldrh r1, [r3]
- ldr r6, _0801DA10 @ =0x02000000
- ldr r0, _0801DA24 @ =0x00016002
- adds r0, r6
- mov r8, r0
- ldrb r2, [r0]
- ldr r0, _0801DA28 @ =gBattleMovePower
- ldrh r3, [r0]
- ldr r0, _0801DA2C @ =gBattleMoveDamage
- ldr r0, [r0]
- str r0, [sp]
- ldr r5, _0801DA30 @ =gBattleMons
- mov r0, r9
- ldrb r4, [r0]
- movs r0, 0x58
- muls r0, r4
- adds r0, r5
- adds r0, 0x2B
- ldrb r0, [r0]
- str r0, [sp, 0x4]
- mov r0, r9
- ldrb r4, [r0]
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r4, _0801DA34 @ =gDisableStructs
- adds r0, r4
- str r0, [sp, 0x8]
- movs r0, 0
- bl EmitMoveAnimation
- mov r1, r8
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r2, _0801DA14 @ =0x000160a1
- adds r6, r2
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- mov r1, r9
- ldrb r0, [r1]
- bl MarkBufferBankForExecution
-_0801DA00:
- ldr r1, _0801DA38 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- b _0801DA4A
- .align 2, 0
-_0801DA0C: .4byte gBattleMoves
-_0801DA10: .4byte 0x02000000
-_0801DA14: .4byte 0x000160a1
-_0801DA18: .4byte gBattleMoveFlags
-_0801DA1C: .4byte gActiveBank
-_0801DA20: .4byte gBankAttacker
-_0801DA24: .4byte 0x00016002
-_0801DA28: .4byte gBattleMovePower
-_0801DA2C: .4byte gBattleMoveDamage
-_0801DA30: .4byte gBattleMons
-_0801DA34: .4byte gDisableStructs
-_0801DA38: .4byte gBattlescriptCurrInstr
-_0801DA3C:
- ldr r4, _0801DA58 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801DA5C @ =BattleScript_Pausex20
- str r0, [r4]
-_0801DA4A:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801DA58: .4byte gBattlescriptCurrInstr
-_0801DA5C: .4byte BattleScript_Pausex20
- thumb_func_end atk09_attackanimation
-
- thumb_func_start atk0A_waitanimation
-atk0A_waitanimation: @ 801DA60
- push {lr}
- ldr r0, _0801DA78 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0801DA72
- ldr r1, _0801DA7C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801DA72:
- pop {r0}
- bx r0
- .align 2, 0
-_0801DA78: .4byte gBattleExecBuffer
-_0801DA7C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk0A_waitanimation
-
- thumb_func_start atk0B_healthbarupdate
-atk0B_healthbarupdate: @ 801DA80
- push {r4,r5,lr}
- ldr r0, _0801DAE4 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0801DB36
- ldr r0, _0801DAE8 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801DB2E
- ldr r0, _0801DAEC @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r2, _0801DAF0 @ =gActiveBank
- strb r0, [r2]
- ldr r1, _0801DAF4 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0801DB00
- ldr r0, _0801DAF8 @ =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- beq _0801DB00
- ldr r0, _0801DAFC @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- cmp r0, 0
- bne _0801DB00
- movs r0, 0x80
- adds r1, r2, 0
- bl PrepareStringBattle
- b _0801DB2E
- .align 2, 0
-_0801DAE4: .4byte gBattleExecBuffer
-_0801DAE8: .4byte gBattleMoveFlags
-_0801DAEC: .4byte gBattlescriptCurrInstr
-_0801DAF0: .4byte gActiveBank
-_0801DAF4: .4byte gBattleMons
-_0801DAF8: .4byte gDisableStructs
-_0801DAFC: .4byte gHitMarker
-_0801DB00:
- ldr r5, _0801DB3C @ =gBattleMoveDamage
- ldrh r1, [r5]
- movs r0, 0
- bl EmitHealthBarUpdate
- ldr r4, _0801DB40 @ =gActiveBank
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0801DB2E
- ldr r0, [r5]
- cmp r0, 0
- ble _0801DB2E
- ldr r0, _0801DB44 @ =gBattleResults
- ldrb r1, [r0, 0x5]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x5]
-_0801DB2E:
- ldr r1, _0801DB48 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0801DB36:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801DB3C: .4byte gBattleMoveDamage
-_0801DB40: .4byte gActiveBank
-_0801DB44: .4byte gBattleResults
-_0801DB48: .4byte gBattlescriptCurrInstr
- thumb_func_end atk0B_healthbarupdate
-
- thumb_func_start atk0C_datahpupdate
-atk0C_datahpupdate: @ 801DB4C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r0, _0801DB74 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _0801DB5A
- b _0801DF2E
-_0801DB5A:
- ldr r0, _0801DB78 @ =0x02000000
- ldr r1, _0801DB7C @ =0x0001601c
- adds r0, r1
- ldrb r1, [r0]
- cmp r1, 0
- beq _0801DB80
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0801DB80
- movs r6, 0x3F
- ands r6, r1
- b _0801DB90
- .align 2, 0
-_0801DB74: .4byte gBattleExecBuffer
-_0801DB78: .4byte 0x02000000
-_0801DB7C: .4byte 0x0001601c
-_0801DB80:
- ldr r2, _0801DC1C @ =gBattleMoves
- ldr r0, _0801DC20 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r6, [r0, 0x2]
-_0801DB90:
- ldr r0, _0801DC24 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801DB9E
- b _0801DF00
-_0801DB9E:
- ldr r0, _0801DC28 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r7, _0801DC2C @ =gActiveBank
- strb r0, [r7]
- ldr r1, _0801DC30 @ =gBattleMons
- ldrb r2, [r7]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0801DCB4
- ldr r0, _0801DC34 @ =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r4, r1, r0
- ldrb r1, [r4, 0xA]
- mov r12, r0
- cmp r1, 0
- beq _0801DCB4
- ldr r0, _0801DC38 @ =gHitMarker
- ldr r3, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r3, r0
- cmp r3, 0
- bne _0801DCB4
- adds r5, r1, 0
- ldr r6, _0801DC3C @ =gBattleMoveDamage
- ldr r4, [r6]
- cmp r5, r4
- blt _0801DC48
- ldr r0, _0801DC40 @ =gSpecialStatuses
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _0801DC02
- str r4, [r1]
-_0801DC02:
- ldrb r0, [r7]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r12
- ldr r2, [r6]
- ldrb r0, [r1, 0xA]
- subs r0, r2
- strb r0, [r1, 0xA]
- ldr r1, _0801DC44 @ =gHP_dealt
- ldr r0, [r6]
- str r0, [r1]
- b _0801DC78
- .align 2, 0
-_0801DC1C: .4byte gBattleMoves
-_0801DC20: .4byte gCurrentMove
-_0801DC24: .4byte gBattleMoveFlags
-_0801DC28: .4byte gBattlescriptCurrInstr
-_0801DC2C: .4byte gActiveBank
-_0801DC30: .4byte gBattleMons
-_0801DC34: .4byte gDisableStructs
-_0801DC38: .4byte gHitMarker
-_0801DC3C: .4byte gBattleMoveDamage
-_0801DC40: .4byte gSpecialStatuses
-_0801DC44: .4byte gHP_dealt
-_0801DC48:
- ldr r0, _0801DCA0 @ =gSpecialStatuses
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _0801DC5C
- str r5, [r1]
-_0801DC5C:
- ldr r2, _0801DCA4 @ =gHP_dealt
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r0, [r0, 0xA]
- str r0, [r2]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- strb r3, [r0, 0xA]
-_0801DC78:
- ldr r0, _0801DCA8 @ =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _0801DC8C
- b _0801DF26
-_0801DC8C:
- ldr r4, _0801DCAC @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- bl b_movescr_stack_push_cursor
- ldr r0, _0801DCB0 @ =BattleScript_SubstituteFade
- str r0, [r4]
- b _0801DF2E
- .align 2, 0
-_0801DCA0: .4byte gSpecialStatuses
-_0801DCA4: .4byte gHP_dealt
-_0801DCA8: .4byte gActiveBank
-_0801DCAC: .4byte gBattlescriptCurrInstr
-_0801DCB0: .4byte BattleScript_SubstituteFade
-_0801DCB4:
- ldr r0, _0801DCF4 @ =gHitMarker
- ldr r2, [r0]
- ldr r1, _0801DCF8 @ =0xfffffeff
- ands r2, r1
- str r2, [r0]
- ldr r1, _0801DCFC @ =gBattleMoveDamage
- ldr r5, [r1]
- mov r12, r0
- adds r7, r1, 0
- cmp r5, 0
- bge _0801DD08
- ldr r4, _0801DD00 @ =gBattleMons
- ldr r2, _0801DD04 @ =gActiveBank
- ldrb r0, [r2]
- movs r3, 0x58
- adds r1, r0, 0
- muls r1, r3
- adds r1, r4
- ldrh r0, [r1, 0x28]
- subs r0, r5
- strh r0, [r1, 0x28]
- ldrb r0, [r2]
- muls r0, r3
- adds r1, r0, r4
- ldrh r3, [r1, 0x2C]
- ldrh r0, [r1, 0x28]
- adds r5, r2, 0
- cmp r0, r3
- bhi _0801DCF0
- b _0801DEC6
-_0801DCF0:
- strh r3, [r1, 0x28]
- b _0801DEC6
- .align 2, 0
-_0801DCF4: .4byte gHitMarker
-_0801DCF8: .4byte 0xfffffeff
-_0801DCFC: .4byte gBattleMoveDamage
-_0801DD00: .4byte gBattleMons
-_0801DD04: .4byte gActiveBank
-_0801DD08:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _0801DD24
- movs r0, 0x21
- negs r0, r0
- ands r2, r0
- mov r0, r12
- str r2, [r0]
- ldr r5, _0801DD20 @ =gActiveBank
- b _0801DD6C
- .align 2, 0
-_0801DD20: .4byte gActiveBank
-_0801DD24:
- ldr r0, _0801DD4C @ =gTakenDmg
- ldr r2, _0801DD50 @ =gActiveBank
- ldrb r1, [r2]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- adds r0, r5
- str r0, [r1]
- ldr r0, _0801DD54 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- adds r5, r2, 0
- cmp r0, 0
- bne _0801DD60
- ldr r1, _0801DD58 @ =gTakenDmgBanks
- ldrb r0, [r5]
- adds r0, r1
- ldr r1, _0801DD5C @ =gBankAttacker
- b _0801DD68
- .align 2, 0
-_0801DD4C: .4byte gTakenDmg
-_0801DD50: .4byte gActiveBank
-_0801DD54: .4byte gBattlescriptCurrInstr
-_0801DD58: .4byte gTakenDmgBanks
-_0801DD5C: .4byte gBankAttacker
-_0801DD60:
- ldr r1, _0801DD8C @ =gTakenDmgBanks
- ldrb r0, [r5]
- adds r0, r1
- ldr r1, _0801DD90 @ =gBankTarget
-_0801DD68:
- ldrb r1, [r1]
- strb r1, [r0]
-_0801DD6C:
- ldr r4, _0801DD94 @ =gBattleMons
- ldrb r0, [r5]
- movs r3, 0x58
- muls r0, r3
- adds r2, r0, r4
- ldrh r0, [r2, 0x28]
- ldr r1, [r7]
- cmp r0, r1
- ble _0801DD9C
- subs r0, r1
- strh r0, [r2, 0x28]
- ldr r0, _0801DD98 @ =gHP_dealt
- str r1, [r0]
- adds r7, r0, 0
- b _0801DDAC
- .align 2, 0
-_0801DD8C: .4byte gTakenDmgBanks
-_0801DD90: .4byte gBankTarget
-_0801DD94: .4byte gBattleMons
-_0801DD98: .4byte gHP_dealt
-_0801DD9C:
- ldr r2, _0801DE20 @ =gHP_dealt
- str r0, [r2]
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r4
- movs r1, 0
- strh r1, [r0, 0x28]
- adds r7, r2, 0
-_0801DDAC:
- ldr r2, _0801DE24 @ =gSpecialStatuses
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r2, 0x4
- adds r3, r0, r1
- ldr r0, [r3]
- adds r4, r2, 0
- cmp r0, 0
- bne _0801DDD4
- mov r1, r12
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- cmp r0, 0
- bne _0801DDD4
- ldr r0, [r7]
- str r0, [r3]
-_0801DDD4:
- cmp r6, 0x8
- bhi _0801DE5C
- mov r1, r12
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- cmp r0, 0
- bne _0801DE58
- ldr r0, _0801DE28 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xDC
- beq _0801DE58
- ldr r3, _0801DE2C @ =gProtectStructs
- ldrb r0, [r5]
- lsls r0, 4
- adds r1, r3, 0x4
- adds r0, r1
- ldr r2, [r7]
- str r2, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x8
- adds r0, r1
- str r2, [r0]
- ldr r0, _0801DE30 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0801DE38
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DE34 @ =gBankAttacker
- b _0801DE40
- .align 2, 0
-_0801DE20: .4byte gHP_dealt
-_0801DE24: .4byte gSpecialStatuses
-_0801DE28: .4byte gCurrentMove
-_0801DE2C: .4byte gProtectStructs
-_0801DE30: .4byte gBattlescriptCurrInstr
-_0801DE34: .4byte gBankAttacker
-_0801DE38:
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DE54 @ =gBankTarget
-_0801DE40:
- ldrb r1, [r2]
- strb r1, [r0, 0xC]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r2]
- strb r1, [r0, 0x10]
- b _0801DEC6
- .align 2, 0
-_0801DE54: .4byte gBankTarget
-_0801DE58:
- cmp r6, 0x8
- bls _0801DEC6
-_0801DE5C:
- mov r1, r12
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- cmp r0, 0
- bne _0801DEC6
- ldr r3, _0801DEA0 @ =gProtectStructs
- ldrb r0, [r5]
- lsls r0, 4
- adds r1, r3, 0
- adds r1, 0x8
- adds r0, r1
- ldr r2, [r7]
- str r2, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0xC
- adds r0, r1
- str r2, [r0]
- ldr r0, _0801DEA4 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0801DEAC
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DEA8 @ =gBankAttacker
- b _0801DEB4
- .align 2, 0
-_0801DEA0: .4byte gProtectStructs
-_0801DEA4: .4byte gBattlescriptCurrInstr
-_0801DEA8: .4byte gBankAttacker
-_0801DEAC:
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DEF4 @ =gBankTarget
-_0801DEB4:
- ldrb r1, [r2]
- strb r1, [r0, 0xD]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r2]
- strb r1, [r0, 0x11]
-_0801DEC6:
- mov r1, r12
- ldr r0, [r1]
- ldr r1, _0801DEF8 @ =0xffefffff
- ands r0, r1
- mov r1, r12
- str r0, [r1]
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _0801DEFC @ =gUnknown_02024AA8
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2A
- movs r2, 0
- movs r3, 0x2
- bl EmitSetAttributes
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- b _0801DF26
- .align 2, 0
-_0801DEF4: .4byte gBankTarget
-_0801DEF8: .4byte 0xffefffff
-_0801DEFC: .4byte gUnknown_02024AA8
-_0801DF00:
- ldr r0, _0801DF38 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _0801DF3C @ =gActiveBank
- strb r0, [r1]
- ldr r2, _0801DF40 @ =gSpecialStatuses
- ldrb r1, [r1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r1, r0, r2
- ldr r0, [r1]
- cmp r0, 0
- bne _0801DF26
- ldr r0, _0801DF44 @ =0x0000ffff
- str r0, [r1]
-_0801DF26:
- ldr r1, _0801DF38 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0801DF2E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801DF38: .4byte gBattlescriptCurrInstr
-_0801DF3C: .4byte gActiveBank
-_0801DF40: .4byte gSpecialStatuses
-_0801DF44: .4byte 0x0000ffff
- thumb_func_end atk0C_datahpupdate
-
- thumb_func_start atk0D_critmessage
-atk0D_critmessage: @ 801DF48
- push {lr}
- ldr r0, _0801DF84 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0801DF7E
- ldr r0, _0801DF88 @ =gCritMultiplier
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0801DF76
- ldr r0, _0801DF8C @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801DF76
- ldr r0, _0801DF90 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0xD9
- bl PrepareStringBattle
- ldr r1, _0801DF94 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x7]
-_0801DF76:
- ldr r1, _0801DF98 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801DF7E:
- pop {r0}
- bx r0
- .align 2, 0
-_0801DF84: .4byte gBattleExecBuffer
-_0801DF88: .4byte gCritMultiplier
-_0801DF8C: .4byte gBattleMoveFlags
-_0801DF90: .4byte gBankAttacker
-_0801DF94: .4byte gBattleCommunication
-_0801DF98: .4byte gBattlescriptCurrInstr
- thumb_func_end atk0D_critmessage
-
- thumb_func_start atk0E_effectiveness_sound
-atk0E_effectiveness_sound: @ 801DF9C
- push {r4,lr}
- ldr r0, _0801DFD4 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E05C
- ldr r4, _0801DFD8 @ =gActiveBank
- ldr r0, _0801DFDC @ =gBankTarget
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _0801DFE0 @ =gBattleMoveFlags
- ldrb r2, [r1]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _0801E054
- movs r0, 0xFE
- ands r0, r2
- cmp r0, 0x10
- beq _0801E00E
- cmp r0, 0x10
- bgt _0801DFEA
- cmp r0, 0x4
- beq _0801DFFE
- cmp r0, 0x4
- bgt _0801DFE4
- cmp r0, 0x2
- beq _0801DFF8
- b _0801E00E
- .align 2, 0
-_0801DFD4: .4byte gBattleExecBuffer
-_0801DFD8: .4byte gActiveBank
-_0801DFDC: .4byte gBankTarget
-_0801DFE0: .4byte gBattleMoveFlags
-_0801DFE4:
- cmp r0, 0x8
- beq _0801E054
- b _0801E00E
-_0801DFEA:
- cmp r0, 0x40
- beq _0801E00E
- cmp r0, 0x40
- bgt _0801E00E
- cmp r0, 0x20
- beq _0801E054
- b _0801E00E
-_0801DFF8:
- movs r0, 0
- movs r1, 0xE
- b _0801E002
-_0801DFFE:
- movs r0, 0
- movs r1, 0xC
-_0801E002:
- bl EmitEffectivenessSound
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _0801E054
-_0801E00E:
- ldrb r1, [r1]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801E01E
- movs r0, 0
- movs r1, 0xE
- b _0801E02A
-_0801E01E:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801E03C
- movs r0, 0
- movs r1, 0xC
-_0801E02A:
- bl EmitEffectivenessSound
- ldr r0, _0801E038 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- b _0801E054
- .align 2, 0
-_0801E038: .4byte gActiveBank
-_0801E03C:
- movs r0, 0x28
- ands r0, r1
- cmp r0, 0
- bne _0801E054
- movs r0, 0
- movs r1, 0xD
- bl EmitEffectivenessSound
- ldr r0, _0801E064 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
-_0801E054:
- ldr r1, _0801E068 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801E05C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E064: .4byte gActiveBank
-_0801E068: .4byte gBattlescriptCurrInstr
- thumb_func_end atk0E_effectiveness_sound
-
- thumb_func_start atk0F_resultmessage
-atk0F_resultmessage: @ 801E06C
- push {r4-r7,lr}
- movs r3, 0
- ldr r0, _0801E0A8 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E07A
- b _0801E20C
-_0801E07A:
- ldr r1, _0801E0AC @ =gBattleMoveFlags
- ldrb r2, [r1]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r2
- adds r6, r1, 0
- ldr r7, _0801E0B0 @ =gBattleCommunication
- cmp r0, 0
- beq _0801E0B8
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _0801E09A
- ldrb r0, [r7, 0x6]
- cmp r0, 0x2
- bls _0801E0B8
-_0801E09A:
- ldr r1, _0801E0B4 @ =gMissStrings
- ldrb r0, [r7, 0x6]
- lsls r0, 1
- adds r0, r1
- ldrh r3, [r0]
- strb r4, [r7, 0x7]
- b _0801E1F6
- .align 2, 0
-_0801E0A8: .4byte gBattleExecBuffer
-_0801E0AC: .4byte gBattleMoveFlags
-_0801E0B0: .4byte gBattleCommunication
-_0801E0B4: .4byte gMissStrings
-_0801E0B8:
- movs r0, 0x1
- strb r0, [r7, 0x7]
- ldrb r5, [r6]
- movs r0, 0xFE
- ands r0, r5
- cmp r0, 0x10
- beq _0801E0FC
- cmp r0, 0x10
- bgt _0801E0DE
- cmp r0, 0x4
- beq _0801E0F8
- cmp r0, 0x4
- bgt _0801E0D8
- cmp r0, 0x2
- beq _0801E0F4
- b _0801E144
-_0801E0D8:
- cmp r0, 0x8
- beq _0801E150
- b _0801E144
-_0801E0DE:
- cmp r0, 0x40
- beq _0801E100
- cmp r0, 0x40
- bgt _0801E0EE
- cmp r0, 0x20
- bne _0801E0EC
- b _0801E1F0
-_0801E0EC:
- b _0801E144
-_0801E0EE:
- cmp r0, 0x80
- beq _0801E104
- b _0801E144
-_0801E0F4:
- movs r3, 0xDE
- b _0801E1FA
-_0801E0F8:
- movs r3, 0xDD
- b _0801E1FA
-_0801E0FC:
- movs r3, 0xDA
- b _0801E1FA
-_0801E100:
- movs r3, 0x99
- b _0801E1FA
-_0801E104:
- ldr r4, _0801E12C @ =gLastUsedItem
- ldr r2, _0801E130 @ =gBattleMons
- ldr r3, _0801E134 @ =gBankTarget
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- ldr r1, _0801E138 @ =gStringBank
- ldrb r0, [r3]
- strb r0, [r1]
- movs r0, 0x3F
- ands r0, r5
- strb r0, [r6]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E13C @ =gBattlescriptCurrInstr
- ldr r0, _0801E140 @ =BattleScript_HangedOnMsg
- b _0801E20A
- .align 2, 0
-_0801E12C: .4byte gLastUsedItem
-_0801E130: .4byte gBattleMons
-_0801E134: .4byte gBankTarget
-_0801E138: .4byte gStringBank
-_0801E13C: .4byte gBattlescriptCurrInstr
-_0801E140: .4byte BattleScript_HangedOnMsg
-_0801E144:
- adds r2, r6, 0
- ldrb r5, [r2]
- movs r0, 0x8
- ands r0, r5
- cmp r0, 0
- beq _0801E154
-_0801E150:
- movs r3, 0x1B
- b _0801E1FA
-_0801E154:
- movs r0, 0x10
- ands r0, r5
- cmp r0, 0
- beq _0801E17C
- movs r0, 0xEF
- ands r0, r5
- movs r1, 0xFD
- ands r0, r1
- movs r1, 0xFB
- ands r0, r1
- strb r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E174 @ =gBattlescriptCurrInstr
- ldr r0, _0801E178 @ =BattleScript_OneHitKOMsg
- b _0801E20A
- .align 2, 0
-_0801E174: .4byte gBattlescriptCurrInstr
-_0801E178: .4byte BattleScript_OneHitKOMsg
-_0801E17C:
- movs r0, 0x40
- ands r0, r5
- cmp r0, 0
- beq _0801E19C
- movs r0, 0x3F
- ands r0, r5
- strb r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E194 @ =gBattlescriptCurrInstr
- ldr r0, _0801E198 @ =BattleScript_EnduredMsg
- b _0801E20A
- .align 2, 0
-_0801E194: .4byte gBattlescriptCurrInstr
-_0801E198: .4byte BattleScript_EnduredMsg
-_0801E19C:
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- beq _0801E1E4
- ldr r4, _0801E1CC @ =gLastUsedItem
- ldr r2, _0801E1D0 @ =gBattleMons
- ldr r3, _0801E1D4 @ =gBankTarget
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- ldr r1, _0801E1D8 @ =gStringBank
- ldrb r0, [r3]
- strb r0, [r1]
- movs r0, 0x3F
- ands r0, r5
- strb r0, [r6]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E1DC @ =gBattlescriptCurrInstr
- ldr r0, _0801E1E0 @ =BattleScript_HangedOnMsg
- b _0801E20A
- .align 2, 0
-_0801E1CC: .4byte gLastUsedItem
-_0801E1D0: .4byte gBattleMons
-_0801E1D4: .4byte gBankTarget
-_0801E1D8: .4byte gStringBank
-_0801E1DC: .4byte gBattlescriptCurrInstr
-_0801E1E0: .4byte BattleScript_HangedOnMsg
-_0801E1E4:
- movs r0, 0x20
- ands r0, r5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0801E1F4
-_0801E1F0:
- movs r3, 0xE5
- b _0801E1FA
-_0801E1F4:
- strb r0, [r7, 0x7]
-_0801E1F6:
- cmp r3, 0
- beq _0801E204
-_0801E1FA:
- adds r0, r3, 0
- ldr r1, _0801E214 @ =gBankAttacker
- ldrb r1, [r1]
- bl PrepareStringBattle
-_0801E204:
- ldr r1, _0801E218 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
-_0801E20A:
- str r0, [r1]
-_0801E20C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E214: .4byte gBankAttacker
-_0801E218: .4byte gBattlescriptCurrInstr
- thumb_func_end atk0F_resultmessage
-
- thumb_func_start atk10_printstring
-atk10_printstring: @ 801E21C
- push {r4,lr}
- ldr r0, _0801E24C @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E246
- ldr r4, _0801E250 @ =gBattlescriptCurrInstr
- ldr r1, [r4]
- ldrb r0, [r1, 0x1]
- ldrb r1, [r1, 0x2]
- lsls r1, 8
- orrs r0, r1
- ldr r1, _0801E254 @ =gBankAttacker
- ldrb r1, [r1]
- bl PrepareStringBattle
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- ldr r1, _0801E258 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x7]
-_0801E246:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E24C: .4byte gBattleExecBuffer
-_0801E250: .4byte gBattlescriptCurrInstr
-_0801E254: .4byte gBankAttacker
-_0801E258: .4byte gBattleCommunication
- thumb_func_end atk10_printstring
-
- thumb_func_start atk11_printstring_playeronly
-atk11_printstring_playeronly: @ 801E25C
- push {r4,r5,lr}
- ldr r5, _0801E290 @ =gActiveBank
- ldr r0, _0801E294 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r4, _0801E298 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0
- bl EmitPrintStringPlayerOnly
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- ldr r1, _0801E29C @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x7]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E290: .4byte gActiveBank
-_0801E294: .4byte gBankAttacker
-_0801E298: .4byte gBattlescriptCurrInstr
-_0801E29C: .4byte gBattleCommunication
- thumb_func_end atk11_printstring_playeronly
-
- thumb_func_start atk12_waitmessage
-atk12_waitmessage: @ 801E2A0
- push {r4-r6,lr}
- ldr r0, _0801E2BC @ =gBattleExecBuffer
- ldr r4, [r0]
- cmp r4, 0
- bne _0801E2EE
- ldr r6, _0801E2C0 @ =gBattleCommunication
- ldrb r0, [r6, 0x7]
- cmp r0, 0
- bne _0801E2C8
- ldr r1, _0801E2C4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r1]
- b _0801E2EE
- .align 2, 0
-_0801E2BC: .4byte gBattleExecBuffer
-_0801E2C0: .4byte gBattleCommunication
-_0801E2C4: .4byte gBattlescriptCurrInstr
-_0801E2C8:
- ldr r5, _0801E2F4 @ =gBattlescriptCurrInstr
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r3, _0801E2F8 @ =gPauseCounterBattle
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r1
- bcc _0801E2EE
- movs r1, 0
- strh r4, [r3]
- adds r0, r2, 0x3
- str r0, [r5]
- strb r1, [r6, 0x7]
-_0801E2EE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E2F4: .4byte gBattlescriptCurrInstr
-_0801E2F8: .4byte gPauseCounterBattle
- thumb_func_end atk12_waitmessage
-
- thumb_func_start atk13_printfromtable
-atk13_printfromtable: @ 801E2FC
- push {r4,r5,lr}
- ldr r0, _0801E340 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E33A
- ldr r4, _0801E344 @ =gBattlescriptCurrInstr
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r5, _0801E348 @ =gBattleCommunication
- ldrb r0, [r5, 0x5]
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, _0801E34C @ =gBankAttacker
- ldrb r1, [r1]
- bl PrepareStringBattle
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- movs r0, 0x1
- strb r0, [r5, 0x7]
-_0801E33A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E340: .4byte gBattleExecBuffer
-_0801E344: .4byte gBattlescriptCurrInstr
-_0801E348: .4byte gBattleCommunication
-_0801E34C: .4byte gBankAttacker
- thumb_func_end atk13_printfromtable
-
- thumb_func_start atk14_printfromtable_playeronly
-atk14_printfromtable_playeronly: @ 801E350
- push {r4-r6,lr}
- ldr r0, _0801E3A0 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E39A
- ldr r5, _0801E3A4 @ =gBattlescriptCurrInstr
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r6, _0801E3A8 @ =gBattleCommunication
- ldrb r0, [r6, 0x5]
- lsls r0, 1
- adds r1, r0
- ldr r4, _0801E3AC @ =gActiveBank
- ldr r0, _0801E3B0 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r4]
- ldrh r1, [r1]
- movs r0, 0
- bl EmitPrintStringPlayerOnly
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x5
- str r0, [r5]
- movs r0, 0x1
- strb r0, [r6, 0x7]
-_0801E39A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E3A0: .4byte gBattleExecBuffer
-_0801E3A4: .4byte gBattlescriptCurrInstr
-_0801E3A8: .4byte gBattleCommunication
-_0801E3AC: .4byte gActiveBank
-_0801E3B0: .4byte gBankAttacker
- thumb_func_end atk14_printfromtable_playeronly
-
- thumb_func_start sub_801E3B4
-sub_801E3B4: @ 801E3B4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r0, _0801E3E4 @ =gNoOfAllBanks
- ldrb r3, [r0]
- cmp r1, r3
- bge _0801E3DA
- ldr r4, _0801E3E8 @ =gTurnOrder
- ldrb r0, [r4]
- cmp r0, r2
- beq _0801E3DA
-_0801E3CC:
- adds r1, 0x1
- cmp r1, r3
- bge _0801E3DA
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r2
- bne _0801E3CC
-_0801E3DA:
- lsls r0, r1, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0801E3E4: .4byte gNoOfAllBanks
-_0801E3E8: .4byte gTurnOrder
- thumb_func_end sub_801E3B4
-
- thumb_func_start sub_801E3EC
-sub_801E3EC: @ 801E3EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- movs r0, 0
- mov r10, r0
- movs r6, 0
- movs r1, 0x1
- str r1, [sp, 0x4]
- ldr r1, _0801E430 @ =gBattleCommunication
- ldrb r3, [r1, 0x3]
- movs r0, 0x40
- ands r0, r3
- adds r7, r1, 0
- cmp r0, 0
- beq _0801E444
- ldr r2, _0801E434 @ =gEffectBank
- ldr r0, _0801E438 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0xBF
- ands r0, r3
- strb r0, [r7, 0x3]
- movs r6, 0x40
- ldr r0, _0801E43C @ =0x02000000
- ldr r1, _0801E440 @ =gBankTarget
- b _0801E450
- .align 2, 0
-_0801E430: .4byte gBattleCommunication
-_0801E434: .4byte gEffectBank
-_0801E438: .4byte gBankAttacker
-_0801E43C: .4byte 0x02000000
-_0801E440: .4byte gBankTarget
-_0801E444:
- ldr r2, _0801E538 @ =gEffectBank
- ldr r0, _0801E53C @ =gBankTarget
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _0801E540 @ =0x02000000
- ldr r1, _0801E544 @ =gBankAttacker
-_0801E450:
- ldrb r1, [r1]
- ldr r3, _0801E548 @ =0x00016003
- adds r0, r3
- strb r1, [r0]
- mov r8, r2
- ldr r2, _0801E54C @ =gBattleMons
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x13
- bne _0801E48A
- ldr r0, _0801E550 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- bne _0801E48A
- cmp r4, 0
- bne _0801E48A
- ldrb r0, [r7, 0x3]
- cmp r0, 0x9
- bhi _0801E48A
- bl _0801F5DC
-_0801E48A:
- mov r1, r8
- ldrb r0, [r1]
- bl GetBankIdentity
- ldr r2, _0801E554 @ =gSideAffecting
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801E4C4
- ldr r0, _0801E550 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- bne _0801E4C4
- cmp r4, 0
- bne _0801E4C4
- ldr r0, _0801E558 @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- cmp r0, 0x7
- bhi _0801E4C4
- bl _0801F5DC
-_0801E4C4:
- ldr r3, _0801E54C @ =gBattleMons
- ldr r2, _0801E538 @ =gEffectBank
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- mov r8, r2
- mov r9, r3
- cmp r0, 0
- bne _0801E4EA
- ldr r0, _0801E558 @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- cmp r0, 0xB
- beq _0801E4EA
- cmp r0, 0x1F
- beq _0801E4EA
- bl _0801F5DC
-_0801E4EA:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- mov r1, r9
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0801E50C
- cmp r6, 0x40
- beq _0801E50C
- bl _0801F5DC
-_0801E50C:
- ldr r0, _0801E558 @ =gBattleCommunication
- ldrb r1, [r0, 0x3]
- adds r7, r0, 0
- cmp r1, 0x6
- bls _0801E518
- b _0801EB4A
-_0801E518:
- ldr r1, _0801E55C @ =gStatusFlagsForMoveEffects
- ldrb r0, [r7, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x10
- bne _0801E528
- b _0801E714
-_0801E528:
- cmp r0, 0x10
- bhi _0801E560
- cmp r0, 0x7
- beq _0801E57A
- cmp r0, 0x8
- bne _0801E536
- b _0801E630
-_0801E536:
- b _0801EA14
- .align 2, 0
-_0801E538: .4byte gEffectBank
-_0801E53C: .4byte gBankTarget
-_0801E540: .4byte 0x02000000
-_0801E544: .4byte gBankAttacker
-_0801E548: .4byte 0x00016003
-_0801E54C: .4byte gBattleMons
-_0801E550: .4byte gHitMarker
-_0801E554: .4byte gSideAffecting
-_0801E558: .4byte gBattleCommunication
-_0801E55C: .4byte gStatusFlagsForMoveEffects
-_0801E560:
- cmp r0, 0x40
- bne _0801E566
- b _0801E888
-_0801E566:
- cmp r0, 0x40
- bhi _0801E572
- cmp r0, 0x20
- bne _0801E570
- b _0801E7EA
-_0801E570:
- b _0801EA14
-_0801E572:
- cmp r0, 0x80
- bne _0801E578
- b _0801E8E4
-_0801E578:
- b _0801EA14
-_0801E57A:
- mov r3, r8
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2B
- beq _0801E5DC
- ldr r0, _0801E5D4 @ =gActiveBank
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0801E5D8 @ =gNoOfAllBanks
- ldrb r3, [r1]
- adds r7, r0, 0
- mov r12, r1
- cmp r3, 0
- beq _0801E5E8
- mov r4, r9
- ldr r0, [r4, 0x50]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- bne _0801E5E8
- adds r1, r7, 0
- mov r6, r9
- adds r6, 0x50
- movs r5, 0x58
- movs r4, 0x70
-_0801E5B4:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r3
- bcs _0801E5E8
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r6
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _0801E5B4
- b _0801E5E8
- .align 2, 0
-_0801E5D4: .4byte gActiveBank
-_0801E5D8: .4byte gNoOfAllBanks
-_0801E5DC:
- ldr r0, _0801E628 @ =gActiveBank
- ldr r2, _0801E62C @ =gNoOfAllBanks
- ldrb r1, [r2]
- strb r1, [r0]
- adds r7, r0, 0
- mov r12, r2
-_0801E5E8:
- mov r0, r8
- ldrb r2, [r0]
- movs r0, 0x58
- adds r1, r2, 0
- muls r1, r0
- mov r0, r9
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E600
- b _0801EA14
-_0801E600:
- ldrb r0, [r7]
- mov r3, r12
- ldrb r3, [r3]
- cmp r0, r3
- beq _0801E60C
- b _0801EA14
-_0801E60C:
- mov r4, r9
- adds r0, r1, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x48
- bne _0801E61A
- b _0801EA14
-_0801E61A:
- cmp r0, 0xF
- bne _0801E620
- b _0801EA14
-_0801E620:
- adds r0, r2, 0
- bl CancelMultiTurnMoves
- b _0801EA04
- .align 2, 0
-_0801E628: .4byte gActiveBank
-_0801E62C: .4byte gNoOfAllBanks
-_0801E630:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x11
- bne _0801E688
- cmp r4, 0x1
- beq _0801E64A
- cmp r5, 0x80
- bne _0801E688
-_0801E64A:
- ldr r0, _0801E678 @ =gLastUsedAbility
- strb r1, [r0]
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x11
- bl RecordAbilityBattle
- ldr r4, _0801E67C @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E680 @ =BattleScript_PSNPrevention
-_0801E664:
- str r0, [r4]
- ldr r2, _0801E684 @ =gHitMarker
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E676
- b _0801E928
-_0801E676:
- b _0801E94C
- .align 2, 0
-_0801E678: .4byte gLastUsedAbility
-_0801E67C: .4byte gBattlescriptCurrInstr
-_0801E680: .4byte BattleScript_PSNPrevention
-_0801E684: .4byte gHitMarker
-_0801E688:
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x58
- muls r0, r1
- add r0, r9
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r1, 0x3
- beq _0801E6AC
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0801E6AC
- cmp r1, 0x8
- beq _0801E6AC
- cmp r0, 0x8
- bne _0801E6C6
-_0801E6AC:
- ldr r0, _0801E710 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E6C6
- cmp r4, 0x1
- bne _0801E6C0
- b _0801E98C
-_0801E6C0:
- cmp r5, 0x80
- bne _0801E6C6
- b _0801E98C
-_0801E6C6:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r1, r0
- mov r4, r9
- adds r3, r1, r4
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r4, [r0]
- cmp r4, 0x3
- bne _0801E6DE
- b _0801EA14
-_0801E6DE:
- adds r0, 0x1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _0801E6E8
- b _0801EA14
-_0801E6E8:
- cmp r4, 0x8
- bne _0801E6EE
- b _0801EA14
-_0801E6EE:
- cmp r0, 0x8
- bne _0801E6F4
- b _0801EA14
-_0801E6F4:
- mov r0, r9
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E702
- b _0801EA14
-_0801E702:
- adds r0, r3, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x11
- bne _0801E70E
- b _0801EA14
-_0801E70E:
- b _0801EA04
- .align 2, 0
-_0801E710: .4byte gHitMarker
-_0801E714:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x29
- bne _0801E758
- cmp r4, 0x1
- beq _0801E72E
- cmp r5, 0x80
- bne _0801E758
-_0801E72E:
- ldr r0, _0801E74C @ =gLastUsedAbility
- strb r1, [r0]
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x29
- bl RecordAbilityBattle
- ldr r4, _0801E750 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E754 @ =BattleScript_BRNPrevention
- b _0801E664
- .align 2, 0
-_0801E74C: .4byte gLastUsedAbility
-_0801E750: .4byte gBattlescriptCurrInstr
-_0801E754: .4byte BattleScript_BRNPrevention
-_0801E758:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- mov r2, r9
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xA
- beq _0801E778
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xA
- bne _0801E7A8
-_0801E778:
- ldr r0, _0801E79C @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E7A8
- cmp r4, 0x1
- beq _0801E78E
- cmp r5, 0x80
- bne _0801E7A8
-_0801E78E:
- ldr r4, _0801E7A0 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E7A4 @ =BattleScript_BRNPrevention
- b _0801E998
- .align 2, 0
-_0801E79C: .4byte gHitMarker
-_0801E7A0: .4byte gBattlescriptCurrInstr
-_0801E7A4: .4byte BattleScript_BRNPrevention
-_0801E7A8:
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x58
- adds r2, r0, 0
- muls r2, r1
- mov r4, r9
- adds r1, r2, r4
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xA
- bne _0801E7C2
- b _0801EA14
-_0801E7C2:
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xA
- bne _0801E7CE
- b _0801EA14
-_0801E7CE:
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _0801E7DA
- b _0801EA14
-_0801E7DA:
- mov r0, r9
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E7E8
- b _0801EA14
-_0801E7E8:
- b _0801EA04
-_0801E7EA:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0801E826
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0801E826
- ldr r0, _0801E87C @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0801E826
- movs r1, 0
- str r1, [sp, 0x4]
-_0801E826:
- ldr r4, _0801E880 @ =gBattleMons
- ldr r0, _0801E884 @ =gEffectBank
- ldrb r3, [r0]
- movs r0, 0x58
- adds r2, r3, 0
- muls r2, r0
- adds r1, r2, r4
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xF
- bne _0801E840
- b _0801EA14
-_0801E840:
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xF
- bne _0801E84C
- b _0801EA14
-_0801E84C:
- adds r0, r4, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E85A
- b _0801EA14
-_0801E85A:
- ldr r2, [sp, 0x4]
- cmp r2, 0
- bne _0801E862
- b _0801EA14
-_0801E862:
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x28
- bne _0801E86E
- b _0801EA14
-_0801E86E:
- adds r0, r3, 0
- bl CancelMultiTurnMoves
- movs r3, 0x1
- mov r10, r3
- b _0801EA14
- .align 2, 0
-_0801E87C: .4byte gBattleWeather
-_0801E880: .4byte gBattleMons
-_0801E884: .4byte gEffectBank
-_0801E888:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- mov r2, r9
- adds r0, r1, r2
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0x7
- bne _0801E8D0
- cmp r4, 0x1
- beq _0801E8A6
- cmp r5, 0x80
- beq _0801E8A6
- b _0801EA14
-_0801E8A6:
- ldr r0, _0801E8C4 @ =gLastUsedAbility
- strb r2, [r0]
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x7
- bl RecordAbilityBattle
- ldr r4, _0801E8C8 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E8CC @ =BattleScript_PRLZPrevention
- b _0801E664
- .align 2, 0
-_0801E8C4: .4byte gLastUsedAbility
-_0801E8C8: .4byte gBattlescriptCurrInstr
-_0801E8CC: .4byte BattleScript_PRLZPrevention
-_0801E8D0:
- mov r0, r9
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E8DE
- b _0801EA14
-_0801E8DE:
- movs r4, 0x1
- mov r10, r4
- b _0801EA14
-_0801E8E4:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x11
- bne _0801E952
- cmp r4, 0x1
- beq _0801E8FE
- cmp r5, 0x80
- bne _0801E952
-_0801E8FE:
- ldr r0, _0801E938 @ =gLastUsedAbility
- strb r1, [r0]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x11
- bl RecordAbilityBattle
- ldr r4, _0801E93C @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E940 @ =BattleScript_PSNPrevention
- str r0, [r4]
- ldr r2, _0801E944 @ =gHitMarker
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E94C
-_0801E928:
- movs r0, 0x1
- strb r0, [r7, 0x5]
- ldr r0, _0801E948 @ =0xffffdfff
- ands r1, r0
- str r1, [r2]
- bl _0801F5FA
- .align 2, 0
-_0801E938: .4byte gLastUsedAbility
-_0801E93C: .4byte gBattlescriptCurrInstr
-_0801E940: .4byte BattleScript_PSNPrevention
-_0801E944: .4byte gHitMarker
-_0801E948: .4byte 0xffffdfff
-_0801E94C:
- strb r0, [r7, 0x5]
- bl _0801F5FA
-_0801E952:
- mov r2, r8
- ldrb r0, [r2]
- movs r1, 0x58
- muls r0, r1
- add r0, r9
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r1, 0x3
- beq _0801E976
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0801E976
- cmp r1, 0x8
- beq _0801E976
- cmp r0, 0x8
- bne _0801E9B4
-_0801E976:
- ldr r0, _0801E9A4 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E9B4
- cmp r4, 0x1
- beq _0801E98C
- cmp r5, 0x80
- bne _0801E9B4
-_0801E98C:
- ldr r4, _0801E9A8 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E9AC @ =BattleScript_PSNPrevention
-_0801E998:
- str r0, [r4]
- ldr r1, _0801E9B0 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- bl _0801F5FA
- .align 2, 0
-_0801E9A4: .4byte gHitMarker
-_0801E9A8: .4byte gBattlescriptCurrInstr
-_0801E9AC: .4byte BattleScript_PSNPrevention
-_0801E9B0: .4byte gBattleCommunication
-_0801E9B4:
- mov r3, r8
- ldrb r0, [r3]
- movs r6, 0x58
- muls r0, r6
- mov r2, r9
- adds r2, 0x4C
- adds r5, r0, r2
- ldr r4, [r5]
- cmp r4, 0
- bne _0801EA14
- mov r3, r9
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r3, [r0]
- cmp r3, 0x3
- beq _0801EA0A
- adds r0, 0x1
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0801EA0A
- cmp r3, 0x8
- beq _0801EA0A
- cmp r0, 0x8
- beq _0801EA0A
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x11
- beq _0801EA14
- mov r4, r8
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x9
- negs r2, r2
- ands r0, r2
- str r0, [r1]
-_0801EA04:
- movs r0, 0x1
- mov r10, r0
- b _0801EA14
-_0801EA0A:
- ldr r0, _0801EA58 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
-_0801EA14:
- mov r1, r10
- cmp r1, 0x1
- beq _0801EA1C
- b _0801EB3C
-_0801EA1C:
- ldr r0, _0801EA5C @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EA60 @ =gStatusFlagsForMoveEffects
- ldr r0, _0801EA64 @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r3, [r0]
- cmp r3, 0x7
- bne _0801EA70
- bl Random
- ldr r2, _0801EA68 @ =gBattleMons
- ldr r1, _0801EA6C @ =gEffectBank
- ldrb r3, [r1]
- movs r1, 0x58
- muls r3, r1
- adds r2, 0x4C
- adds r3, r2
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x2
- ldr r0, [r3]
- orrs r0, r1
- str r0, [r3]
- b _0801EA84
- .align 2, 0
-_0801EA58: .4byte gBattleMoveFlags
-_0801EA5C: .4byte gBattlescriptCurrInstr
-_0801EA60: .4byte gStatusFlagsForMoveEffects
-_0801EA64: .4byte gBattleCommunication
-_0801EA68: .4byte gBattleMons
-_0801EA6C: .4byte gEffectBank
-_0801EA70:
- ldr r2, _0801EAD4 @ =gBattleMons
- ldr r0, _0801EAD8 @ =gEffectBank
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r2, 0x4C
- adds r1, r2
- ldr r0, [r1]
- orrs r0, r3
- str r0, [r1]
-_0801EA84:
- ldr r2, _0801EADC @ =gBattlescriptCurrInstr
- ldr r1, _0801EAE0 @ =gMoveEffectBS_Ptrs
- ldr r5, _0801EAE4 @ =gBattleCommunication
- ldrb r0, [r5, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- ldr r4, _0801EAE8 @ =gActiveBank
- ldr r1, _0801EAD8 @ =gEffectBank
- ldrb r0, [r1]
- strb r0, [r4]
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _0801EAEC @ =gUnknown_02024ACC
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r2, _0801EAF0 @ =gHitMarker
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _0801EAF8
- movs r0, 0x1
- strb r0, [r5, 0x5]
- ldr r0, _0801EAF4 @ =0xffffdfff
- ands r1, r0
- str r1, [r2]
- b _0801EAFA
- .align 2, 0
-_0801EAD4: .4byte gBattleMons
-_0801EAD8: .4byte gEffectBank
-_0801EADC: .4byte gBattlescriptCurrInstr
-_0801EAE0: .4byte gMoveEffectBS_Ptrs
-_0801EAE4: .4byte gBattleCommunication
-_0801EAE8: .4byte gActiveBank
-_0801EAEC: .4byte gUnknown_02024ACC
-_0801EAF0: .4byte gHitMarker
-_0801EAF4: .4byte 0xffffdfff
-_0801EAF8:
- strb r0, [r5, 0x5]
-_0801EAFA:
- ldr r0, _0801EB2C @ =gBattleCommunication
- ldrb r2, [r0, 0x3]
- adds r7, r0, 0
- cmp r2, 0x2
- beq _0801EB14
- cmp r2, 0x6
- beq _0801EB14
- cmp r2, 0x5
- beq _0801EB14
- cmp r2, 0x3
- beq _0801EB14
- bl _0801F5FA
-_0801EB14:
- ldr r0, _0801EB30 @ =0x02000000
- ldrb r1, [r7, 0x3]
- ldr r2, _0801EB34 @ =0x000160ca
- adds r0, r2
- strb r1, [r0]
- ldr r2, _0801EB38 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 7
- bl _0801F4F2
- .align 2, 0
-_0801EB2C: .4byte gBattleCommunication
-_0801EB30: .4byte 0x02000000
-_0801EB34: .4byte 0x000160ca
-_0801EB38: .4byte gHitMarker
-_0801EB3C:
- mov r3, r10
- cmp r3, 0
- beq _0801EB46
- bl _0801F5FA
-_0801EB46:
- bl _0801F5DC
-_0801EB4A:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- mov r0, r9
- adds r0, 0x50
- adds r1, r0
- ldr r2, _0801EB84 @ =gStatusFlagsForMoveEffects
- ldrb r3, [r7, 0x3]
- lsls r0, r3, 2
- adds r0, r2
- ldr r1, [r1]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801EB6E
- bl _0801F5DC
-_0801EB6E:
- subs r0, r3, 0x7
- cmp r0, 0x34
- bls _0801EB78
- bl _0801F5FA
-_0801EB78:
- lsls r0, 2
- ldr r1, _0801EB88 @ =_0801EB8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801EB84: .4byte gStatusFlagsForMoveEffects
-_0801EB88: .4byte _0801EB8C
- .align 2, 0
-_0801EB8C:
- .4byte _0801EC60
- .4byte _0801ECD4
- .4byte _0801EE4C
- .4byte _0801ED60
- .4byte _0801EDDC
- .4byte _0801EE84
- .4byte _0801EECC
- .4byte _0801EFA8
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F13C
- .4byte _0801F184
- .4byte _0801F1A4
- .4byte _0801F364
- .4byte _0801F3A0
- .4byte _0801F3BC
- .4byte _0801F3D4
- .4byte _0801F3EC
- .4byte _0801F44C
- .4byte _0801F464
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F4A8
- .4byte _0801F500
- .4byte _0801F5FA
- .4byte _0801F5FA
- .4byte _0801F5FA
- .4byte _0801F5FA
- .4byte _0801F5EC
-_0801EC60:
- mov r1, r8
- ldrb r0, [r1]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- mov r2, r9
- adds r0, r1, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0801EC7A
- bl _0801F5DC
-_0801EC7A:
- mov r4, r9
- adds r4, 0x50
- adds r0, r1, r4
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801EC8E
- bl _0801F5DC
-_0801EC8E:
- bl Random
- mov r3, r8
- ldrb r1, [r3]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsrs r1, 16
- adds r1, 0x2
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r4, _0801ECC8 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801ECCC @ =gMoveEffectBS_Ptrs
- ldr r0, _0801ECD0 @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _0801F5F8
- .align 2, 0
-_0801ECC8: .4byte gBattlescriptCurrInstr
-_0801ECCC: .4byte gMoveEffectBS_Ptrs
-_0801ECD0: .4byte gBattleCommunication
-_0801ECD4:
- mov r0, r8
- ldrb r2, [r0]
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x27
- bne _0801ED18
- cmp r4, 0x1
- beq _0801ECF4
- cmp r5, 0x80
- beq _0801ECF4
- bl _0801F5DC
-_0801ECF4:
- ldr r0, _0801ED0C @ =gLastUsedAbility
- strb r1, [r0]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x27
- bl RecordAbilityBattle
- ldr r1, _0801ED10 @ =gBattlescriptCurrInstr
- ldr r0, _0801ED14 @ =BattleScript_FlinchPrevention
- str r0, [r1]
- bl _0801F5FA
- .align 2, 0
-_0801ED0C: .4byte gLastUsedAbility
-_0801ED10: .4byte gBattlescriptCurrInstr
-_0801ED14: .4byte BattleScript_FlinchPrevention
-_0801ED18:
- adds r0, r2, 0
- bl sub_801E3B4
- ldr r1, _0801ED54 @ =gCurrentMoveTurn
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bhi _0801ED2E
- bl _0801F5DC
-_0801ED2E:
- mov r2, r8
- ldrb r0, [r2]
- adds r2, r0, 0
- muls r2, r6
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r1, _0801ED58 @ =gStatusFlagsForMoveEffects
- ldr r0, _0801ED5C @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r2]
- bl _0801F5DC
- .align 2, 0
-_0801ED54: .4byte gCurrentMoveTurn
-_0801ED58: .4byte gStatusFlagsForMoveEffects
-_0801ED5C: .4byte gBattleCommunication
-_0801ED60:
- mov r3, r8
- ldrb r0, [r3]
- movs r5, 0x58
- muls r0, r5
- mov r4, r9
- adds r4, 0x50
- adds r2, r0, r4
- ldr r1, [r2]
- movs r0, 0x70
- ands r0, r1
- cmp r0, 0
- beq _0801ED7C
- bl _0801F5DC
-_0801ED7C:
- movs r0, 0x80
- lsls r0, 5
- orrs r1, r0
- str r1, [r2]
- ldr r1, _0801EDC8 @ =gLockedMove
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801EDCC @ =gCurrentMove
- ldrh r1, [r1]
- strh r1, [r0]
- bl Random
- mov r2, r8
- ldrb r1, [r2]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x2
- lsls r1, 4
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r4, _0801EDD0 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EDD4 @ =gMoveEffectBS_Ptrs
- ldr r0, _0801EDD8 @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _0801F5F8
- .align 2, 0
-_0801EDC8: .4byte gLockedMove
-_0801EDCC: .4byte gCurrentMove
-_0801EDD0: .4byte gBattlescriptCurrInstr
-_0801EDD4: .4byte gMoveEffectBS_Ptrs
-_0801EDD8: .4byte gBattleCommunication
-_0801EDDC:
- ldr r5, _0801EE30 @ =gBankAttacker
- ldrb r0, [r5]
- bl GetBankIdentity
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _0801EE14
- ldr r4, _0801EE34 @ =gPaydayMoney
- ldrh r3, [r4]
- ldr r2, _0801EE38 @ =gBattleMons
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, r3, r0
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r3, r0
- bls _0801EE14
- ldr r3, _0801EE3C @ =0x0000ffff
- adds r0, r3, 0
- strh r0, [r4]
-_0801EE14:
- ldr r4, _0801EE40 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EE44 @ =gMoveEffectBS_Ptrs
- ldr r0, _0801EE48 @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _0801F5F8
- .align 2, 0
-_0801EE30: .4byte gBankAttacker
-_0801EE34: .4byte gPaydayMoney
-_0801EE38: .4byte gBattleMons
-_0801EE3C: .4byte 0x0000ffff
-_0801EE40: .4byte gBattlescriptCurrInstr
-_0801EE44: .4byte gMoveEffectBS_Ptrs
-_0801EE48: .4byte gBattleCommunication
-_0801EE4C:
- mov r4, r8
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- mov r1, r9
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _0801EE62
- b _0801F5DC
-_0801EE62:
- bl Random
- ldr r4, _0801EE80 @ =gBattleCommunication
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- adds r0, 0x3
- strb r0, [r4, 0x3]
- movs r0, 0
- movs r1, 0
- bl sub_801E3EC
- b _0801F5FA
- .align 2, 0
-_0801EE80: .4byte gBattleCommunication
-_0801EE84:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r2]
- ldr r1, _0801EEC0 @ =gLockedMove
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801EEC4 @ =gCurrentMove
- ldrh r1, [r1]
- strh r1, [r0]
- ldr r0, _0801EEC8 @ =gProtectStructs
- ldrb r1, [r2]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x1]
- b _0801F5DC
- .align 2, 0
-_0801EEC0: .4byte gLockedMove
-_0801EEC4: .4byte gCurrentMove
-_0801EEC8: .4byte gProtectStructs
-_0801EECC:
- mov r3, r8
- ldrb r0, [r3]
- movs r6, 0x58
- muls r0, r6
- mov r4, r9
- adds r4, 0x50
- adds r0, r4
- ldr r5, [r0]
- movs r0, 0xE0
- lsls r0, 8
- ands r5, r0
- cmp r5, 0
- beq _0801EEE8
- b _0801F5DC
-_0801EEE8:
- bl Random
- mov r2, r8
- ldrb r1, [r2]
- adds r2, r1, 0
- muls r2, r6
- adds r2, r4
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x3
- lsls r1, 13
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801EF80 @ =0x02000000
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 1
- ldr r4, _0801EF84 @ =0x00016004
- adds r0, r4
- adds r0, r2
- ldr r6, _0801EF88 @ =gCurrentMove
- ldrh r1, [r6]
- strb r1, [r0]
- ldrb r0, [r3]
- lsls r0, 1
- ldr r1, _0801EF8C @ =0x00016005
- adds r0, r1
- adds r0, r2
- ldrh r1, [r6]
- lsrs r1, 8
- strb r1, [r0]
- ldrb r0, [r3]
- ldr r3, _0801EF90 @ =0x00016020
- adds r0, r3
- adds r0, r2
- ldr r1, _0801EF94 @ =gBankAttacker
- ldrb r1, [r1]
- strb r1, [r0]
- ldr r4, _0801EF98 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EF9C @ =gMoveEffectBS_Ptrs
- ldr r2, _0801EFA0 @ =gBattleCommunication
- ldrb r0, [r2, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r4]
- strb r5, [r2, 0x5]
- ldr r1, _0801EFA4 @ =gTrappingMoves
- ldrh r0, [r1]
- ldrh r4, [r6]
- cmp r0, r4
- bne _0801EF5C
- b _0801F5FA
-_0801EF5C:
- adds r3, r1, 0
- adds r1, r6, 0
-_0801EF60:
- ldrb r0, [r2, 0x5]
- adds r0, 0x1
- strb r0, [r2, 0x5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _0801EF70
- b _0801F5FA
-_0801EF70:
- ldrb r0, [r2, 0x5]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- ldrh r4, [r1]
- cmp r0, r4
- bne _0801EF60
- b _0801F5FA
- .align 2, 0
-_0801EF80: .4byte 0x02000000
-_0801EF84: .4byte 0x00016004
-_0801EF88: .4byte gCurrentMove
-_0801EF8C: .4byte 0x00016005
-_0801EF90: .4byte 0x00016020
-_0801EF94: .4byte gBankAttacker
-_0801EF98: .4byte gBattlescriptCurrInstr
-_0801EF9C: .4byte gMoveEffectBS_Ptrs
-_0801EFA0: .4byte gBattleCommunication
-_0801EFA4: .4byte gTrappingMoves
-_0801EFA8:
- ldr r1, _0801EFD8 @ =gBattleMoveDamage
- ldr r0, _0801EFDC @ =gHP_dealt
- ldr r0, [r0]
- cmp r0, 0
- bge _0801EFB4
- adds r0, 0x3
-_0801EFB4:
- asrs r0, 2
- str r0, [r1]
- cmp r0, 0
- bne _0801EFC0
- movs r0, 0x1
- str r0, [r1]
-_0801EFC0:
- ldr r4, _0801EFE0 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EFE4 @ =gMoveEffectBS_Ptrs
- ldr r0, _0801EFE8 @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- b _0801F5F8
- .align 2, 0
-_0801EFD8: .4byte gBattleMoveDamage
-_0801EFDC: .4byte gHP_dealt
-_0801EFE0: .4byte gBattlescriptCurrInstr
-_0801EFE4: .4byte gMoveEffectBS_Ptrs
-_0801EFE8: .4byte gBattleCommunication
-_0801EFEC:
- ldrb r1, [r7, 0x3]
- adds r1, 0xF2
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x10
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F008
- b _0801F5DC
-_0801F008:
- ldr r2, _0801F02C @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F030 @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F034 @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F038 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F03C @ =BattleScript_StatUp
- b _0801F5F8
- .align 2, 0
-_0801F02C: .4byte 0x02000000
-_0801F030: .4byte 0x000160a4
-_0801F034: .4byte 0x000160a5
-_0801F038: .4byte gBattlescriptCurrInstr
-_0801F03C: .4byte BattleScript_StatUp
-_0801F040:
- movs r0, 0x70
- negs r0, r0
- ldrb r1, [r7, 0x3]
- adds r1, 0xEB
- lsls r1, 24
- lsrs r1, 24
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F05E
- b _0801F5DC
-_0801F05E:
- ldr r2, _0801F080 @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F084 @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F088 @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F08C @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F090 @ =BattleScript_StatDown
- b _0801F5F8
- .align 2, 0
-_0801F080: .4byte 0x02000000
-_0801F084: .4byte 0x000160a4
-_0801F088: .4byte 0x000160a5
-_0801F08C: .4byte gBattlescriptCurrInstr
-_0801F090: .4byte BattleScript_StatDown
-_0801F094:
- ldrb r1, [r7, 0x3]
- adds r1, 0xDA
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x20
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F0B0
- b _0801F5DC
-_0801F0B0:
- ldr r2, _0801F0D4 @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F0D8 @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F0DC @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F0E0 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F0E4 @ =BattleScript_StatUp
- b _0801F5F8
- .align 2, 0
-_0801F0D4: .4byte 0x02000000
-_0801F0D8: .4byte 0x000160a4
-_0801F0DC: .4byte 0x000160a5
-_0801F0E0: .4byte gBattlescriptCurrInstr
-_0801F0E4: .4byte BattleScript_StatUp
-_0801F0E8:
- movs r0, 0x60
- negs r0, r0
- ldrb r1, [r7, 0x3]
- adds r1, 0xD3
- lsls r1, 24
- lsrs r1, 24
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F106
- b _0801F5DC
-_0801F106:
- ldr r2, _0801F128 @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F12C @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F130 @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F134 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F138 @ =BattleScript_StatDown
- b _0801F5F8
- .align 2, 0
-_0801F128: .4byte 0x02000000
-_0801F12C: .4byte 0x000160a4
-_0801F130: .4byte 0x000160a5
-_0801F134: .4byte gBattlescriptCurrInstr
-_0801F138: .4byte BattleScript_StatDown
-_0801F13C:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 15
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801F178 @ =gDisableStructs
- mov r3, r8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0, 0x19]
- ldr r1, _0801F17C @ =gLockedMove
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801F180 @ =gCurrentMove
- ldrh r1, [r1]
- strh r1, [r0]
- b _0801F5DC
- .align 2, 0
-_0801F178: .4byte gDisableStructs
-_0801F17C: .4byte gLockedMove
-_0801F180: .4byte gCurrentMove
-_0801F184:
- ldr r0, _0801F1A0 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 16
-_0801F19A:
- orrs r0, r1
- str r0, [r2]
- b _0801F5DC
- .align 2, 0
-_0801F1A0: .4byte gBankAttacker
-_0801F1A4:
- ldr r4, _0801F254 @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0801F1D8
- ldr r0, _0801F258 @ =gBattleTypeFlags
- ldrh r1, [r0]
- ldr r0, _0801F25C @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0801F214
- ldr r0, _0801F260 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0801F1D8
- b _0801F5DC
-_0801F1D8:
- ldr r0, _0801F258 @ =gBattleTypeFlags
- ldrh r1, [r0]
- ldr r0, _0801F25C @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0801F214
- ldr r0, _0801F260 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0801F214
- ldr r0, _0801F264 @ =gWishFutureKnock
- adds r0, 0x29
- adds r0, r6, r0
- ldrb r1, [r0]
- ldr r3, _0801F268 @ =gBitTable
- ldr r2, _0801F26C @ =gBattlePartyID
- ldr r0, _0801F254 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801F214
- b _0801F5DC
-_0801F214:
- ldr r2, _0801F270 @ =gBattleMons
- ldr r1, _0801F274 @ =gBankTarget
- ldrb r0, [r1]
- movs r3, 0x58
- muls r0, r3
- adds r4, r0, r2
- ldrh r0, [r4, 0x2E]
- adds r7, r1, 0
- mov r9, r2
- cmp r0, 0
- beq _0801F284
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3C
- bne _0801F284
- ldr r1, _0801F278 @ =gBattlescriptCurrInstr
- ldr r0, _0801F27C @ =BattleScript_NoItemSteal
- str r0, [r1]
- ldr r1, _0801F280 @ =gLastUsedAbility
- ldrb r0, [r7]
- muls r0, r3
- add r0, r9
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- ldrb r1, [r1]
- bl RecordAbilityBattle
- b _0801F5FA
- .align 2, 0
-_0801F254: .4byte gBankAttacker
-_0801F258: .4byte gBattleTypeFlags
-_0801F25C: .4byte 0x00000902
-_0801F260: .4byte gTrainerBattleOpponent
-_0801F264: .4byte gWishFutureKnock
-_0801F268: .4byte gBitTable
-_0801F26C: .4byte gBattlePartyID
-_0801F270: .4byte gBattleMons
-_0801F274: .4byte gBankTarget
-_0801F278: .4byte gBattlescriptCurrInstr
-_0801F27C: .4byte BattleScript_NoItemSteal
-_0801F280: .4byte gLastUsedAbility
-_0801F284:
- ldr r4, _0801F340 @ =gBankAttacker
- mov r10, r4
- ldrb r1, [r4]
- movs r0, 0x58
- mov r8, r0
- mov r0, r8
- muls r0, r1
- add r0, r9
- ldrh r3, [r0, 0x2E]
- cmp r3, 0
- beq _0801F29C
- b _0801F5DC
-_0801F29C:
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- ldrh r2, [r0, 0x2E]
- adds r0, r2, 0
- cmp r0, 0xAF
- bne _0801F2B0
- b _0801F5DC
-_0801F2B0:
- cmp r0, 0
- bne _0801F2B6
- b _0801F5DC
-_0801F2B6:
- lsls r0, r1, 1
- ldr r5, _0801F344 @ =0x020160f0
- adds r0, r5
- ldr r1, _0801F348 @ =gLastUsedItem
- strh r2, [r0]
- strh r2, [r1]
- ldrb r0, [r7]
- mov r4, r8
- muls r4, r0
- adds r0, r4, 0
- add r0, r9
- movs r6, 0
- strh r3, [r0, 0x2E]
- ldr r4, _0801F34C @ =gActiveBank
- mov r2, r10
- ldrb r0, [r2]
- strb r0, [r4]
- str r1, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl EmitSetAttributes
- mov r3, r10
- ldrb r0, [r3]
- bl MarkBufferBankForExecution
- ldrb r0, [r7]
- strb r0, [r4]
- ldrb r0, [r7]
- mov r4, r8
- muls r4, r0
- adds r0, r4, 0
- mov r1, r9
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl EmitSetAttributes
- ldrb r0, [r7]
- bl MarkBufferBankForExecution
- ldr r4, _0801F350 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F354 @ =BattleScript_ItemSteal
- str r0, [r4]
- ldr r0, _0801F358 @ =0xfffe9f10
- adds r5, r0
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _0801F35C @ =0x000160e8
- adds r0, r1
- adds r0, r5
- strb r6, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r2, _0801F360 @ =0x000160e9
- adds r0, r2
- adds r0, r5
- strb r6, [r0]
- b _0801F5FA
- .align 2, 0
-_0801F340: .4byte gBankAttacker
-_0801F344: .4byte 0x020160f0
-_0801F348: .4byte gLastUsedItem
-_0801F34C: .4byte gActiveBank
-_0801F350: .4byte gBattlescriptCurrInstr
-_0801F354: .4byte BattleScript_ItemSteal
-_0801F358: .4byte 0xfffe9f10
-_0801F35C: .4byte 0x000160e8
-_0801F360: .4byte 0x000160e9
-_0801F364:
- ldr r3, _0801F394 @ =gBankTarget
- ldrb r1, [r3]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 19
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801F398 @ =gDisableStructs
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0801F39C @ =gBankAttacker
- ldrb r1, [r1]
- strb r1, [r0, 0x14]
- b _0801F5DC
- .align 2, 0
-_0801F394: .4byte gBankTarget
-_0801F398: .4byte gDisableStructs
-_0801F39C: .4byte gBankAttacker
-_0801F3A0:
- ldr r0, _0801F3B8 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 20
- b _0801F19A
- .align 2, 0
-_0801F3B8: .4byte gBankTarget
-_0801F3BC:
- ldr r4, _0801F3CC @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F3D0 @ =gUnknown_081D9224
- b _0801F5F8
- .align 2, 0
-_0801F3CC: .4byte gBattlescriptCurrInstr
-_0801F3D0: .4byte gUnknown_081D9224
-_0801F3D4:
- ldr r4, _0801F3E4 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F3E8 @ =BattleScript_RapidSpinAway
- b _0801F5F8
- .align 2, 0
-_0801F3E4: .4byte gBattlescriptCurrInstr
-_0801F3E8: .4byte BattleScript_RapidSpinAway
-_0801F3EC:
- ldr r6, _0801F43C @ =gBankTarget
- ldrb r0, [r6]
- movs r2, 0x58
- muls r0, r2
- mov r1, r9
- adds r1, 0x4C
- adds r5, r0, r1
- ldr r4, [r5]
- movs r0, 0x40
- ands r0, r4
- cmp r0, 0
- bne _0801F406
- b _0801F5DC
-_0801F406:
- movs r0, 0x41
- negs r0, r0
- ands r4, r0
- str r4, [r5]
- ldr r4, _0801F440 @ =gActiveBank
- ldrb r0, [r6]
- strb r0, [r4]
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r4, _0801F444 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F448 @ =BattleScript_TargetPRLZHeal
- b _0801F5F8
- .align 2, 0
-_0801F43C: .4byte gBankTarget
-_0801F440: .4byte gActiveBank
-_0801F444: .4byte gBattlescriptCurrInstr
-_0801F448: .4byte BattleScript_TargetPRLZHeal
-_0801F44C:
- ldr r4, _0801F45C @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F460 @ =gUnknown_081D93FA
- b _0801F5F8
- .align 2, 0
-_0801F45C: .4byte gBattlescriptCurrInstr
-_0801F460: .4byte gUnknown_081D93FA
-_0801F464:
- ldr r4, _0801F494 @ =gBattleMoveDamage
- ldr r0, _0801F498 @ =gHP_dealt
- ldr r0, [r0]
- movs r1, 0x3
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801F47A
- movs r0, 0x1
- str r0, [r4]
-_0801F47A:
- ldr r4, _0801F49C @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801F4A0 @ =gMoveEffectBS_Ptrs
- ldr r0, _0801F4A4 @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- b _0801F5F8
- .align 2, 0
-_0801F494: .4byte gBattleMoveDamage
-_0801F498: .4byte gHP_dealt
-_0801F49C: .4byte gBattlescriptCurrInstr
-_0801F4A0: .4byte gMoveEffectBS_Ptrs
-_0801F4A4: .4byte gBattleCommunication
-_0801F4A8:
- mov r3, r8
- ldrb r0, [r3]
- movs r5, 0x58
- muls r0, r5
- mov r4, r9
- adds r4, 0x50
- adds r2, r0, r4
- ldr r1, [r2]
- movs r0, 0xC0
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _0801F4C4
- b _0801F5DC
-_0801F4C4:
- movs r0, 0x80
- lsls r0, 5
- orrs r1, r0
- str r1, [r2]
- ldr r1, _0801F4F8 @ =gLockedMove
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801F4FC @ =gCurrentMove
- ldrh r1, [r1]
- strh r1, [r0]
- bl Random
- mov r2, r8
- ldrb r1, [r2]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- movs r1, 0x1
- ands r1, r0
- adds r1, 0x2
- lsls r1, 10
- ldr r0, [r2]
-_0801F4F2:
- orrs r0, r1
- str r0, [r2]
- b _0801F5FA
- .align 2, 0
-_0801F4F8: .4byte gLockedMove
-_0801F4FC: .4byte gCurrentMove
-_0801F500:
- mov r5, r8
- ldrb r3, [r5]
- movs r4, 0x58
- adds r0, r3, 0
- muls r0, r4
- mov r2, r9
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0x3C
- bne _0801F540
- ldrh r0, [r1, 0x2E]
- cmp r0, 0
- beq _0801F5DC
- ldr r0, _0801F534 @ =gLastUsedAbility
- strb r2, [r0]
- ldr r1, _0801F538 @ =gBattlescriptCurrInstr
- ldr r0, _0801F53C @ =BattleScript_NoItemSteal
- str r0, [r1]
- ldrb r0, [r5]
- movs r1, 0x3C
- bl RecordAbilityBattle
- b _0801F5FA
- .align 2, 0
-_0801F534: .4byte gLastUsedAbility
-_0801F538: .4byte gBattlescriptCurrInstr
-_0801F53C: .4byte BattleScript_NoItemSteal
-_0801F540:
- ldrh r0, [r1, 0x2E]
- cmp r0, 0
- beq _0801F5DC
- adds r0, r3, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0801F5B8 @ =gLastUsedItem
- mov r3, r8
- ldrb r0, [r3]
- muls r0, r4
- add r0, r9
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
- ldrb r0, [r3]
- muls r0, r4
- add r0, r9
- movs r5, 0
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r2, _0801F5BC @ =gWishFutureKnock
- adds r2, 0x29
- adds r2, r6, r2
- ldr r3, _0801F5C0 @ =gBitTable
- ldr r1, _0801F5C4 @ =gBattlePartyID
- mov r4, r8
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r4, _0801F5C8 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F5CC @ =BattleScript_KnockedOff
- str r0, [r4]
- ldr r1, _0801F5D0 @ =0x02000000
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- ldr r3, _0801F5D4 @ =0x000160e8
- adds r0, r3
- adds r0, r1
- strb r5, [r0]
- ldrb r0, [r2]
- lsls r0, 1
- ldr r4, _0801F5D8 @ =0x000160e9
- adds r0, r4
- adds r0, r1
- strb r5, [r0]
- b _0801F5FA
- .align 2, 0
-_0801F5B8: .4byte gLastUsedItem
-_0801F5BC: .4byte gWishFutureKnock
-_0801F5C0: .4byte gBitTable
-_0801F5C4: .4byte gBattlePartyID
-_0801F5C8: .4byte gBattlescriptCurrInstr
-_0801F5CC: .4byte BattleScript_KnockedOff
-_0801F5D0: .4byte 0x02000000
-_0801F5D4: .4byte 0x000160e8
-_0801F5D8: .4byte 0x000160e9
-_0801F5DC:
- ldr r1, _0801F5E8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- b _0801F5FA
- .align 2, 0
-_0801F5E8: .4byte gBattlescriptCurrInstr
-_0801F5EC:
- ldr r4, _0801F60C @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F610 @ =gUnknown_081D94B0
-_0801F5F8:
- str r0, [r4]
-_0801F5FA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801F60C: .4byte gBattlescriptCurrInstr
-_0801F610: .4byte gUnknown_081D94B0
- thumb_func_end sub_801E3EC
-
- thumb_func_start atk15_seteffectwithchancetarget
-atk15_seteffectwithchancetarget: @ 801F614
- push {r4,lr}
- ldr r2, _0801F640 @ =gBattleMons
- ldr r0, _0801F644 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x20
- bne _0801F650
- ldr r2, _0801F648 @ =gBattleMoves
- ldr r0, _0801F64C @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 1
- b _0801F660
- .align 2, 0
-_0801F640: .4byte gBattleMons
-_0801F644: .4byte gBankAttacker
-_0801F648: .4byte gBattleMoves
-_0801F64C: .4byte gCurrentMove
-_0801F650:
- ldr r2, _0801F680 @ =gBattleMoves
- ldr r0, _0801F684 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r4, [r0, 0x5]
-_0801F660:
- ldr r3, _0801F688 @ =gBattleCommunication
- ldrb r2, [r3, 0x3]
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _0801F690
- ldr r0, _0801F68C @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801F690
- movs r0, 0x7F
- ands r0, r2
- strb r0, [r3, 0x3]
- b _0801F6BE
- .align 2, 0
-_0801F680: .4byte gBattleMoves
-_0801F684: .4byte gCurrentMove
-_0801F688: .4byte gBattleCommunication
-_0801F68C: .4byte gBattleMoveFlags
-_0801F690:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- bhi _0801F6DA
- ldr r0, _0801F6C8 @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- cmp r0, 0
- beq _0801F6DA
- ldr r0, _0801F6CC @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801F6DA
- cmp r4, 0x63
- bls _0801F6D0
-_0801F6BE:
- movs r0, 0
- movs r1, 0x80
- bl sub_801E3EC
- b _0801F6E2
- .align 2, 0
-_0801F6C8: .4byte gBattleCommunication
-_0801F6CC: .4byte gBattleMoveFlags
-_0801F6D0:
- movs r0, 0
- movs r1, 0
- bl sub_801E3EC
- b _0801F6E2
-_0801F6DA:
- ldr r1, _0801F6F8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801F6E2:
- ldr r0, _0801F6FC @ =gBattleCommunication
- movs r1, 0
- strb r1, [r0, 0x3]
- ldr r0, _0801F700 @ =0x02000000
- ldr r2, _0801F704 @ =0x00016112
- adds r0, r2
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801F6F8: .4byte gBattlescriptCurrInstr
-_0801F6FC: .4byte gBattleCommunication
-_0801F700: .4byte 0x02000000
-_0801F704: .4byte 0x00016112
- thumb_func_end atk15_seteffectwithchancetarget
-
- thumb_func_start atk16_seteffectprimary
-atk16_seteffectprimary: @ 801F708
- push {lr}
- movs r0, 0x1
- movs r1, 0
- bl sub_801E3EC
- pop {r0}
- bx r0
- thumb_func_end atk16_seteffectprimary
-
- thumb_func_start atk17_seteffectsecondary
-atk17_seteffectsecondary: @ 801F718
- push {lr}
- movs r0, 0
- movs r1, 0
- bl sub_801E3EC
- pop {r0}
- bx r0
- thumb_func_end atk17_seteffectsecondary
-
- thumb_func_start atk18_status_effect_clear
-atk18_status_effect_clear: @ 801F728
- push {lr}
- ldr r0, _0801F74C @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r2, _0801F750 @ =gActiveBank
- strb r0, [r2]
- ldr r3, _0801F754 @ =gBattleCommunication
- ldrb r0, [r3, 0x3]
- cmp r0, 0x6
- bhi _0801F75C
- ldr r1, _0801F758 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x4C
- b _0801F766
- .align 2, 0
-_0801F74C: .4byte gBattlescriptCurrInstr
-_0801F750: .4byte gActiveBank
-_0801F754: .4byte gBattleCommunication
-_0801F758: .4byte gBattleMons
-_0801F75C:
- ldr r1, _0801F794 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
-_0801F766:
- adds r2, r1
- ldr r1, _0801F798 @ =gStatusFlagsForMoveEffects
- ldrb r0, [r3, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- ldr r0, _0801F79C @ =gBattleCommunication
- movs r2, 0
- strb r2, [r0, 0x3]
- ldr r1, _0801F7A0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- ldr r0, _0801F7A4 @ =0x02000000
- ldr r1, _0801F7A8 @ =0x00016112
- adds r0, r1
- strb r2, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0801F794: .4byte gBattleMons
-_0801F798: .4byte gStatusFlagsForMoveEffects
-_0801F79C: .4byte gBattleCommunication
-_0801F7A0: .4byte gBattlescriptCurrInstr
-_0801F7A4: .4byte 0x02000000
-_0801F7A8: .4byte 0x00016112
- thumb_func_end atk18_status_effect_clear
-
- thumb_func_start atk19_faint_pokemon
-atk19_faint_pokemon: @ 801F7AC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _0801F81C @ =gBattlescriptCurrInstr
- ldr r2, [r0]
- ldrb r1, [r2, 0x2]
- adds r6, r0, 0
- cmp r1, 0
- beq _0801F834
- ldrb r0, [r2, 0x1]
- bl sub_8015150
- ldr r5, _0801F820 @ =gActiveBank
- strb r0, [r5]
- ldr r2, _0801F824 @ =gHitMarker
- ldr r1, _0801F828 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _0801F7E6
- b _0801FB1C
-_0801F7E6:
- ldr r1, [r6]
- ldrb r4, [r1, 0x3]
- ldrb r0, [r1, 0x4]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x6]
- lsls r0, 24
- orrs r4, r0
- bl b_movescr_stack_pop_cursor
- str r4, [r6]
- ldrb r0, [r5]
- bl GetBankSide
- ldr r1, _0801F82C @ =gSideAffecting
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r2, [r0]
- ldr r1, _0801F830 @ =0x0000fdff
- ands r1, r2
- strh r1, [r0]
- b _0801FB22
- .align 2, 0
-_0801F81C: .4byte gBattlescriptCurrInstr
-_0801F820: .4byte gActiveBank
-_0801F824: .4byte gHitMarker
-_0801F828: .4byte gBitTable
-_0801F82C: .4byte gSideAffecting
-_0801F830: .4byte 0x0000fdff
-_0801F834:
- ldrb r0, [r2, 0x1]
- cmp r0, 0x1
- bne _0801F85C
- ldr r1, _0801F84C @ =gActiveBank
- ldr r0, _0801F850 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0801F854 @ =gBankTarget
- ldrb r7, [r0]
- ldr r4, _0801F858 @ =gUnknown_081D8C58
- b _0801F86A
- .align 2, 0
-_0801F84C: .4byte gActiveBank
-_0801F850: .4byte gBankAttacker
-_0801F854: .4byte gBankTarget
-_0801F858: .4byte gUnknown_081D8C58
-_0801F85C:
- ldr r1, _0801F954 @ =gActiveBank
- ldr r0, _0801F958 @ =gBankTarget
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0801F95C @ =gBankAttacker
- ldrb r7, [r0]
- ldr r4, _0801F960 @ =gUnknown_081D8C65
-_0801F86A:
- ldr r0, _0801F964 @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r0, _0801F968 @ =gBitTable
- mov r12, r0
- ldr r2, _0801F954 @ =gActiveBank
- mov r8, r2
- ldrb r2, [r2]
- lsls r0, r2, 2
- add r0, r12
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801F886
- b _0801FB1C
-_0801F886:
- ldr r3, _0801F96C @ =gBattleMons
- mov r10, r3
- movs r5, 0x58
- mov r9, r5
- mov r0, r9
- muls r0, r2
- add r0, r10
- ldrh r3, [r0, 0x28]
- cmp r3, 0
- beq _0801F89C
- b _0801FB1C
-_0801F89C:
- ldr r2, _0801F970 @ =0x02000000
- lsls r1, r7, 1
- ldr r5, _0801F974 @ =0x000160ac
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- ldr r0, _0801F978 @ =0x000160ad
- adds r1, r0
- adds r1, r2
- strb r3, [r1]
- lsls r1, r7, 2
- adds r5, 0x54
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- adds r5, 0x1
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- adds r5, 0x1
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- ldr r0, _0801F97C @ =0x00016103
- adds r1, r0
- adds r1, r2
- strb r3, [r1]
- ldr r5, _0801F980 @ =gHitMarker
- mov r1, r8
- ldrb r0, [r1]
- lsls r0, 2
- add r0, r12
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r5]
- orrs r0, r1
- str r0, [r5]
- ldr r0, [r6]
- adds r0, 0x7
- bl b_movescr_stack_push
- str r4, [r6]
- mov r2, r8
- ldrb r0, [r2]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0801F9B0
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 15
- orrs r0, r1
- str r0, [r5]
- ldr r1, _0801F984 @ =gBattleResults
- ldrb r0, [r1]
- cmp r0, 0xFE
- bhi _0801F914
- adds r0, 0x1
- strb r0, [r1]
-_0801F914:
- mov r0, r9
- muls r0, r7
- add r0, r10
- adds r3, r0, 0
- adds r3, 0x2A
- mov r4, r8
- ldrb r2, [r4]
- mov r0, r9
- muls r0, r2
- add r0, r10
- adds r1, r0, 0
- adds r1, 0x2A
- ldrb r0, [r3]
- ldrb r5, [r1]
- cmp r0, r5
- bls _0801F9CC
- ldrb r1, [r1]
- subs r0, r1
- cmp r0, 0x1D
- ble _0801F990
- ldr r1, _0801F988 @ =gBattlePartyID
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0801F98C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x8
- bl AdjustFriendship
- b _0801F9CC
- .align 2, 0
-_0801F954: .4byte gActiveBank
-_0801F958: .4byte gBankTarget
-_0801F95C: .4byte gBankAttacker
-_0801F960: .4byte gUnknown_081D8C65
-_0801F964: .4byte gAbsentBankFlags
-_0801F968: .4byte gBitTable
-_0801F96C: .4byte gBattleMons
-_0801F970: .4byte 0x02000000
-_0801F974: .4byte 0x000160ac
-_0801F978: .4byte 0x000160ad
-_0801F97C: .4byte 0x00016103
-_0801F980: .4byte gHitMarker
-_0801F984: .4byte gBattleResults
-_0801F988: .4byte gBattlePartyID
-_0801F98C: .4byte gPlayerParty
-_0801F990:
- ldr r1, _0801F9A8 @ =gBattlePartyID
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0801F9AC @ =gPlayerParty
- adds r0, r1
- movs r1, 0x6
- bl AdjustFriendship
- b _0801F9CC
- .align 2, 0
-_0801F9A8: .4byte gBattlePartyID
-_0801F9AC: .4byte gPlayerParty
-_0801F9B0:
- ldr r1, _0801FAE0 @ =gBattleResults
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFE
- bhi _0801F9BC
- adds r0, 0x1
- strb r0, [r1, 0x1]
-_0801F9BC:
- ldr r2, _0801FAE4 @ =gActiveBank
- ldrb r0, [r2]
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- add r0, r10
- ldrh r0, [r0]
- strh r0, [r1, 0x20]
-_0801F9CC:
- ldr r0, _0801FAE8 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801FA02
- ldr r6, _0801FAEC @ =gBattleMons
- ldr r0, _0801FAF0 @ =gBankAttacker
- ldrb r0, [r0]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FA02
- ldr r4, _0801FAF4 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- bl b_movescr_stack_push
- ldr r1, _0801FAF8 @ =gBattleMoveDamage
- adds r0, r7, 0
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x28]
- str r0, [r1]
- ldr r0, _0801FAFC @ =gUnknown_081D9156
- str r0, [r4]
-_0801FA02:
- ldr r1, _0801FB00 @ =gStatuses3
- ldr r6, _0801FB04 @ =gBankTarget
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 7
- ands r0, r1
- cmp r0, 0
- bne _0801FA1A
- b _0801FB22
-_0801FA1A:
- ldr r0, _0801FAE8 @ =gHitMarker
- ldr r5, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r5, r0
- cmp r5, 0
- bne _0801FB22
- ldr r4, _0801FAF0 @ =gBankAttacker
- mov r8, r4
- ldrb r0, [r4]
- bl GetBankSide
- adds r4, r0, 0
- ldrb r0, [r6]
- bl GetBankSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _0801FB22
- ldr r0, _0801FAEC @ =gBattleMons
- mov r9, r0
- mov r1, r8
- ldrb r2, [r1]
- movs r7, 0x58
- adds r3, r2, 0
- muls r3, r7
- adds r0, r3, r0
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FB22
- ldr r0, _0801FB08 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xA5
- beq _0801FB22
- ldr r1, _0801FB0C @ =0x02000000
- ldr r4, _0801FB10 @ =0x0001608c
- adds r0, r2, r4
- adds r0, r1
- ldrb r4, [r0]
- adds r0, r4, r3
- mov r6, r9
- adds r6, 0x24
- adds r0, r6
- strb r5, [r0]
- ldr r5, _0801FAF4 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- bl b_movescr_stack_push
- ldr r0, _0801FB14 @ =gUnknown_081D9468
- str r0, [r5]
- ldr r5, _0801FAE4 @ =gActiveBank
- mov r1, r8
- ldrb r0, [r1]
- strb r0, [r5]
- adds r1, r4, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r5]
- muls r0, r7
- adds r0, r6
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl EmitSetAttributes
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r1, _0801FB18 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- lsls r4, 1
- mov r2, r8
- ldrb r0, [r2]
- muls r0, r7
- adds r0, r4, r0
- mov r2, r9
- adds r2, 0xC
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- mov r3, r8
- ldrb r0, [r3]
- muls r0, r7
- adds r4, r0
- adds r4, r2
- ldrh r0, [r4]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- b _0801FB22
- .align 2, 0
-_0801FAE0: .4byte gBattleResults
-_0801FAE4: .4byte gActiveBank
-_0801FAE8: .4byte gHitMarker
-_0801FAEC: .4byte gBattleMons
-_0801FAF0: .4byte gBankAttacker
-_0801FAF4: .4byte gBattlescriptCurrInstr
-_0801FAF8: .4byte gBattleMoveDamage
-_0801FAFC: .4byte gUnknown_081D9156
-_0801FB00: .4byte gStatuses3
-_0801FB04: .4byte gBankTarget
-_0801FB08: .4byte gCurrentMove
-_0801FB0C: .4byte 0x02000000
-_0801FB10: .4byte 0x0001608c
-_0801FB14: .4byte gUnknown_081D9468
-_0801FB18: .4byte gBattleTextBuff1
-_0801FB1C:
- ldr r0, [r6]
- adds r0, 0x7
- str r0, [r6]
-_0801FB22:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk19_faint_pokemon
-
- thumb_func_start atk1A_faint_animation
-atk1A_faint_animation: @ 801FB34
- push {r4,r5,lr}
- ldr r0, _0801FB64 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0801FB5E
- ldr r5, _0801FB68 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0801FB6C @ =gActiveBank
- strb r0, [r4]
- movs r0, 0
- bl EmitFaintAnimation
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_0801FB5E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FB64: .4byte gBattleExecBuffer
-_0801FB68: .4byte gBattlescriptCurrInstr
-_0801FB6C: .4byte gActiveBank
- thumb_func_end atk1A_faint_animation
-
- thumb_func_start atk1B_faint_effects_clear
-atk1B_faint_effects_clear: @ 801FB70
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _0801FBC4 @ =gBattleExecBuffer
- ldr r6, [r0]
- cmp r6, 0
- bne _0801FBBC
- ldr r5, _0801FBC8 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0801FBCC @ =gActiveBank
- strb r0, [r4]
- ldr r1, _0801FBD0 @ =gBattleMons
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- str r6, [r0]
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- bl UndoEffectsAfterFainting
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_0801FBBC:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FBC4: .4byte gBattleExecBuffer
-_0801FBC8: .4byte gBattlescriptCurrInstr
-_0801FBCC: .4byte gActiveBank
-_0801FBD0: .4byte gBattleMons
- thumb_func_end atk1B_faint_effects_clear
-
- thumb_func_start atk1C_jumpifstatus
-atk1C_jumpifstatus: @ 801FBD4
- push {r4,r5,lr}
- ldr r5, _0801FC30 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [r5]
- ldrb r4, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- lsls r1, 8
- adds r4, r1
- ldrb r1, [r2, 0x4]
- lsls r1, 16
- adds r4, r1
- ldrb r1, [r2, 0x5]
- lsls r1, 24
- adds r4, r1
- ldrb r3, [r2, 0x6]
- ldrb r1, [r2, 0x7]
- lsls r1, 8
- adds r3, r1
- ldrb r1, [r2, 0x8]
- lsls r1, 16
- adds r3, r1
- ldrb r1, [r2, 0x9]
- lsls r1, 24
- adds r3, r1
- ldr r2, _0801FC34 @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _0801FC38
- adds r0, r1, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FC38
- str r3, [r5]
- b _0801FC40
- .align 2, 0
-_0801FC30: .4byte gBattlescriptCurrInstr
-_0801FC34: .4byte gBattleMons
-_0801FC38:
- ldr r1, _0801FC48 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
-_0801FC40:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FC48: .4byte gBattlescriptCurrInstr
- thumb_func_end atk1C_jumpifstatus
-
- thumb_func_start atk1D_jumpifstatus2
-atk1D_jumpifstatus2: @ 801FC4C
- push {r4,r5,lr}
- ldr r5, _0801FCA8 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [r5]
- ldrb r4, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- lsls r1, 8
- adds r4, r1
- ldrb r1, [r2, 0x4]
- lsls r1, 16
- adds r4, r1
- ldrb r1, [r2, 0x5]
- lsls r1, 24
- adds r4, r1
- ldrb r3, [r2, 0x6]
- ldrb r1, [r2, 0x7]
- lsls r1, 8
- adds r3, r1
- ldrb r1, [r2, 0x8]
- lsls r1, 16
- adds r3, r1
- ldrb r1, [r2, 0x9]
- lsls r1, 24
- adds r3, r1
- ldr r2, _0801FCAC @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r0, r2, 0
- adds r0, 0x50
- adds r0, r1, r0
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _0801FCB0
- adds r0, r1, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FCB0
- str r3, [r5]
- b _0801FCB8
- .align 2, 0
-_0801FCA8: .4byte gBattlescriptCurrInstr
-_0801FCAC: .4byte gBattleMons
-_0801FCB0:
- ldr r1, _0801FCC0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
-_0801FCB8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FCC0: .4byte gBattlescriptCurrInstr
- thumb_func_end atk1D_jumpifstatus2
-
- thumb_func_start atk1E_jumpifability
-atk1E_jumpifability: @ 801FCC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r6, _0801FD18 @ =gBattlescriptCurrInstr
- ldr r2, [r6]
- ldrb r5, [r2, 0x2]
- mov r8, r5
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- adds r7, r1, r0
- ldrb r0, [r2, 0x1]
- cmp r0, 0x8
- bne _0801FD24
- ldr r0, _0801FD1C @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xD
- adds r2, r5, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0801FDA0
- ldr r1, _0801FD20 @ =gLastUsedAbility
- strb r5, [r1]
- str r7, [r6]
- subs r4, 0x1
- lsls r0, r4, 24
- lsrs r0, 24
- ldrb r1, [r1]
- b _0801FD80
- .align 2, 0
-_0801FD18: .4byte gBattlescriptCurrInstr
-_0801FD1C: .4byte gBankAttacker
-_0801FD20: .4byte gLastUsedAbility
-_0801FD24:
- cmp r0, 0x9
- bne _0801FD5C
- ldr r0, _0801FD54 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC
- adds r2, r5, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0801FDA0
- ldr r1, _0801FD58 @ =gLastUsedAbility
- strb r5, [r1]
- str r7, [r6]
- subs r4, 0x1
- lsls r0, r4, 24
- lsrs r0, 24
- ldrb r1, [r1]
- b _0801FD80
- .align 2, 0
-_0801FD54: .4byte gBankAttacker
-_0801FD58: .4byte gLastUsedAbility
-_0801FD5C:
- ldrb r0, [r2, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0801FD90 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, r8
- bne _0801FDA0
- ldr r0, _0801FD94 @ =gLastUsedAbility
- strb r1, [r0]
- str r7, [r6]
- ldrb r1, [r0]
- adds r0, r4, 0
-_0801FD80:
- bl RecordAbilityBattle
- ldr r0, _0801FD98 @ =0x02000000
- ldr r1, _0801FD9C @ =0x000160f8
- adds r0, r1
- strb r4, [r0]
- b _0801FDA6
- .align 2, 0
-_0801FD90: .4byte gBattleMons
-_0801FD94: .4byte gLastUsedAbility
-_0801FD98: .4byte 0x02000000
-_0801FD9C: .4byte 0x000160f8
-_0801FDA0:
- ldr r0, [r6]
- adds r0, 0x7
- str r0, [r6]
-_0801FDA6:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk1E_jumpifability
-
- thumb_func_start atk1F_jumpifsideaffecting
-atk1F_jumpifsideaffecting: @ 801FDB4
- push {r4-r6,lr}
- ldr r0, _0801FDCC @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r4, [r0, 0x1]
- cmp r4, 0x1
- bne _0801FDD4
- ldr r0, _0801FDD0 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity
- b _0801FDDE
- .align 2, 0
-_0801FDCC: .4byte gBattlescriptCurrInstr
-_0801FDD0: .4byte gBankAttacker
-_0801FDD4:
- ldr r0, _0801FE14 @ =gBankTarget
- ldrb r0, [r0]
- bl GetBankIdentity
- movs r4, 0x1
-_0801FDDE:
- ands r4, r0
- ldr r6, _0801FE18 @ =gBattlescriptCurrInstr
- ldr r3, [r6]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r1, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 24
- adds r5, r1, r0
- ldr r1, _0801FE1C @ =gSideAffecting
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _0801FE20
- str r5, [r6]
- b _0801FE26
- .align 2, 0
-_0801FE14: .4byte gBankTarget
-_0801FE18: .4byte gBattlescriptCurrInstr
-_0801FE1C: .4byte gSideAffecting
-_0801FE20:
- adds r0, r3, 0
- adds r0, 0x8
- str r0, [r6]
-_0801FE26:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk1F_jumpifsideaffecting
-
- thumb_func_start atk20_jumpifstat
-atk20_jumpifstat: @ 801FE2C
- push {r4,r5,lr}
- movs r5, 0
- ldr r4, _0801FE60 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0801FE64 @ =gBattleMons
- ldr r3, [r4]
- movs r1, 0x58
- muls r0, r1
- ldrb r1, [r3, 0x3]
- adds r0, r1
- adds r2, 0x18
- adds r0, r2
- ldrb r2, [r0]
- ldrb r0, [r3, 0x2]
- cmp r0, 0x5
- bhi _0801FEEA
- lsls r0, 2
- ldr r1, _0801FE68 @ =_0801FE6C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801FE60: .4byte gBattlescriptCurrInstr
-_0801FE64: .4byte gBattleMons
-_0801FE68: .4byte _0801FE6C
- .align 2, 0
-_0801FE6C:
- .4byte _0801FE84
- .4byte _0801FE94
- .4byte _0801FEA4
- .4byte _0801FEB4
- .4byte _0801FEC4
- .4byte _0801FED8
-_0801FE84:
- ldr r0, _0801FE90 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bne _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FE90: .4byte gBattlescriptCurrInstr
-_0801FE94:
- ldr r0, _0801FEA0 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- beq _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FEA0: .4byte gBattlescriptCurrInstr
-_0801FEA4:
- ldr r0, _0801FEB0 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bls _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FEB0: .4byte gBattlescriptCurrInstr
-_0801FEB4:
- ldr r0, _0801FEC0 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bcs _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FEC0: .4byte gBattlescriptCurrInstr
-_0801FEC4:
- ldr r0, _0801FED4 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- ands r2, r0
- cmp r2, 0
- beq _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FED4: .4byte gBattlescriptCurrInstr
-_0801FED8:
- ldr r0, _0801FF0C @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- ands r2, r0
- cmp r2, 0
- bne _0801FEEA
-_0801FEE4:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0801FEEA:
- cmp r5, 0
- beq _0801FF10
- ldr r3, _0801FF0C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- b _0801FF18
- .align 2, 0
-_0801FF0C: .4byte gBattlescriptCurrInstr
-_0801FF10:
- ldr r1, _0801FF20 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
-_0801FF18:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FF20: .4byte gBattlescriptCurrInstr
- thumb_func_end atk20_jumpifstat
-
- thumb_func_start atk21_jumpifstatus3
-atk21_jumpifstatus3: @ 801FF24
- push {r4-r6,lr}
- ldr r4, _0801FF78 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _0801FF7C @ =gActiveBank
- strb r0, [r5]
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- adds r6, r1, r0
- ldrb r1, [r2, 0x7]
- ldrb r0, [r2, 0x8]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x9]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0xA]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r0, [r2, 0x6]
- cmp r0, 0
- beq _0801FF84
- ldr r0, _0801FF80 @ =gStatuses3
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- ands r0, r6
- cmp r0, 0
- bne _0801FF9C
- b _0801FF94
- .align 2, 0
-_0801FF78: .4byte gBattlescriptCurrInstr
-_0801FF7C: .4byte gActiveBank
-_0801FF80: .4byte gStatuses3
-_0801FF84:
- ldr r0, _0801FF98 @ =gStatuses3
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- ands r0, r6
- cmp r0, 0
- beq _0801FF9C
-_0801FF94:
- str r3, [r4]
- b _0801FFA2
- .align 2, 0
-_0801FF98: .4byte gStatuses3
-_0801FF9C:
- adds r0, r2, 0
- adds r0, 0xB
- str r0, [r4]
-_0801FFA2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk21_jumpifstatus3
-
- thumb_func_start atk22_jumpiftype
-atk22_jumpiftype: @ 801FFA8
- push {r4-r6,lr}
- ldr r4, _0801FFF0 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [r4]
- ldrb r5, [r3, 0x2]
- ldrb r2, [r3, 0x3]
- ldrb r1, [r3, 0x4]
- lsls r1, 8
- adds r2, r1
- ldrb r1, [r3, 0x5]
- lsls r1, 16
- adds r2, r1
- ldrb r1, [r3, 0x6]
- lsls r1, 24
- adds r6, r2, r1
- ldr r2, _0801FFF4 @ =gBattleMons
- movs r1, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r5
- beq _0801FFEC
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r5
- bne _0801FFF8
-_0801FFEC:
- str r6, [r4]
- b _0801FFFC
- .align 2, 0
-_0801FFF0: .4byte gBattlescriptCurrInstr
-_0801FFF4: .4byte gBattleMons
-_0801FFF8:
- adds r0, r3, 0x7
- str r0, [r4]
-_0801FFFC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk22_jumpiftype
-
- thumb_func_start atk23_getexp
-atk23_getexp: @ 8020004
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- ldr r0, _0802004C @ =0x0201605c
- mov r10, r0
- ldr r0, _08020050 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08020054 @ =gBank1
- strb r0, [r1]
- ldr r2, _08020058 @ =gSentPokesToOpponent
- movs r1, 0x2
- ands r1, r0
- lsls r1, 24
- lsrs r1, 25
- adds r1, r2
- ldrb r1, [r1]
- mov r8, r1
- mov r0, r10
- subs r0, 0x4D
- ldrb r0, [r0]
- cmp r0, 0x6
- bls _08020040
- bl _08020996
-_08020040:
- lsls r0, 2
- ldr r1, _0802005C @ =_08020060
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802004C: .4byte 0x0201605c
-_08020050: .4byte gBattlescriptCurrInstr
-_08020054: .4byte gBank1
-_08020058: .4byte gSentPokesToOpponent
-_0802005C: .4byte _08020060
- .align 2, 0
-_08020060:
- .4byte _0802007C
- .4byte _080200FC
- .4byte _08020216
- .4byte _0802055C
- .4byte _08020648
- .4byte _08020910
- .4byte _0802096C
-_0802007C:
- ldr r4, _080200A8 @ =gBank1
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08020098
- ldr r0, _080200AC @ =gBattleTypeFlags
- ldrh r1, [r0]
- ldr r0, _080200B0 @ =0x00000982
- ands r0, r1
- cmp r0, 0
- beq _080200BC
-_08020098:
- ldr r0, _080200B4 @ =0x02000000
- ldr r1, _080200B8 @ =0x0001600f
- adds r0, r1
- movs r1, 0x6
- strb r1, [r0]
- bl _08020996
- .align 2, 0
-_080200A8: .4byte gBank1
-_080200AC: .4byte gBattleTypeFlags
-_080200B0: .4byte 0x00000982
-_080200B4: .4byte 0x02000000
-_080200B8: .4byte 0x0001600f
-_080200BC:
- ldr r2, _080200E8 @ =0x02000000
- ldr r3, _080200EC @ =0x0001600f
- adds r1, r2, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _080200F0 @ =0x00016113
- adds r2, r0
- ldr r3, _080200F4 @ =gBitTable
- ldr r1, _080200F8 @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- bl _08020996
- .align 2, 0
-_080200E8: .4byte 0x02000000
-_080200EC: .4byte 0x0001600f
-_080200F0: .4byte 0x00016113
-_080200F4: .4byte gBitTable
-_080200F8: .4byte gBattlePartyID
-_080200FC:
- movs r5, 0
- movs r7, 0
- ldr r1, _08020150 @ =gSaveBlock1 + 0x3688
- mov r9, r1
-_08020104:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _08020154 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802016A
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802016A
- ldr r0, _08020158 @ =gBitTable
- lsls r1, r7, 2
- adds r1, r0
- ldr r0, [r1]
- mov r2, r8
- ands r0, r2
- cmp r0, 0
- beq _08020138
- adds r5, 0x1
-_08020138:
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0802015C
- mov r3, r9
- ldrb r4, [r3]
- b _08020164
- .align 2, 0
-_08020150: .4byte gSaveBlock1 + 0x3688
-_08020154: .4byte gPlayerParty
-_08020158: .4byte gBitTable
-_0802015C:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
-_08020164:
- cmp r4, 0x19
- bne _0802016A
- adds r6, 0x1
-_0802016A:
- adds r7, 0x1
- cmp r7, 0x5
- ble _08020104
- ldr r3, _080201D0 @ =gBaseStats
- ldr r2, _080201D4 @ =gBattleMons
- ldr r0, _080201D8 @ =gBank1
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x9]
- adds r1, 0x2A
- ldrb r0, [r1]
- muls r0, r2
- movs r1, 0x7
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r6, 0
- beq _080201E0
- lsrs r4, r0, 17
- adds r0, r4, 0
- adds r1, r5, 0
- bl __divsi3
- mov r1, r10
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _080201B6
- movs r0, 0x1
- strh r0, [r1]
-_080201B6:
- ldr r5, _080201DC @ =gExpShareExp
- adds r0, r4, 0
- adds r1, r6, 0
- bl __divsi3
- strh r0, [r5]
- lsls r0, 16
- cmp r0, 0
- bne _080201FA
- movs r0, 0x1
- strh r0, [r5]
- b _080201FA
- .align 2, 0
-_080201D0: .4byte gBaseStats
-_080201D4: .4byte gBattleMons
-_080201D8: .4byte gBank1
-_080201DC: .4byte gExpShareExp
-_080201E0:
- adds r0, r1, 0
- adds r1, r5, 0
- bl __divsi3
- mov r2, r10
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bne _080201F6
- movs r0, 0x1
- strh r0, [r2]
-_080201F6:
- ldr r0, _08020248 @ =gExpShareExp
- strh r6, [r0]
-_080201FA:
- ldr r1, _0802024C @ =0x02000000
- ldr r3, _08020250 @ =0x0001600f
- adds r2, r1, r3
- ldrb r0, [r2]
- adds r0, 0x1
- movs r3, 0
- strb r0, [r2]
- ldr r2, _08020254 @ =0x00016018
- adds r0, r1, r2
- strb r3, [r0]
- ldr r3, _08020258 @ =0x0001605f
- adds r1, r3
- mov r0, r8
- strb r0, [r1]
-_08020216:
- ldr r0, _0802025C @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _08020220
- b _08020996
-_08020220:
- ldr r0, _0802024C @ =0x02000000
- ldr r1, _08020254 @ =0x00016018
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020260 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0802026C
- ldr r0, _08020264 @ =gSaveBlock1
- ldr r2, _08020268 @ =0x00003688
- adds r0, r2
- ldrb r4, [r0]
- b _08020274
- .align 2, 0
-_08020248: .4byte gExpShareExp
-_0802024C: .4byte 0x02000000
-_08020250: .4byte 0x0001600f
-_08020254: .4byte 0x00016018
-_08020258: .4byte 0x0001605f
-_0802025C: .4byte gBattleExecBuffer
-_08020260: .4byte gPlayerParty
-_08020264: .4byte gSaveBlock1
-_08020268: .4byte 0x00003688
-_0802026C:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
-_08020274:
- ldr r5, _08020294 @ =0x02000000
- cmp r4, 0x19
- beq _080202A0
- ldr r3, _08020298 @ =0x0001605f
- adds r1, r5, r3
- ldrb r0, [r1]
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- bne _080202A0
- lsrs r0, 1
- strb r0, [r1]
- ldr r0, _0802029C @ =0x0001600f
- adds r1, r5, r0
- b _080202C8
- .align 2, 0
-_08020294: .4byte 0x02000000
-_08020298: .4byte 0x0001605f
-_0802029C: .4byte 0x0001600f
-_080202A0:
- ldr r1, _080202D4 @ =0x00016018
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080202D8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- bne _080202E8
- ldr r2, _080202DC @ =0x0001605f
- adds r1, r5, r2
- ldrb r0, [r1]
- lsrs r0, 1
- movs r2, 0
- strb r0, [r1]
- ldr r3, _080202E0 @ =0x0001600f
- adds r1, r5, r3
-_080202C8:
- movs r0, 0x5
- strb r0, [r1]
- ldr r0, _080202E4 @ =gBattleMoveDamage
- str r2, [r0]
- b _08020996
- .align 2, 0
-_080202D4: .4byte 0x00016018
-_080202D8: .4byte gPlayerParty
-_080202DC: .4byte 0x0001605f
-_080202E0: .4byte 0x0001600f
-_080202E4: .4byte gBattleMoveDamage
-_080202E8:
- ldr r0, _0802034C @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08020316
- ldr r0, _08020350 @ =gBattleMons
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08020316
- ldr r0, _08020354 @ =0x0001601b
- adds r5, r0
- ldrb r0, [r5]
- cmp r0, 0
- bne _08020316
- bl sub_80325B8
- ldr r0, _08020358 @ =0x00000161
- bl PlayBGM
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_08020316:
- ldr r5, _0802035C @ =0x02000000
- ldr r1, _08020360 @ =0x00016018
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020364 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _08020332
- b _0802051E
-_08020332:
- ldr r2, _08020368 @ =0x0001605f
- adds r0, r5, r2
- ldrb r0, [r0]
- movs r3, 0x1
- ands r3, r0
- cmp r3, 0
- beq _08020370
- ldr r1, _0802036C @ =gBattleMoveDamage
- mov r3, r10
- ldrh r0, [r3]
- str r0, [r1]
- mov r8, r1
- b _08020376
- .align 2, 0
-_0802034C: .4byte gBattleTypeFlags
-_08020350: .4byte gBattleMons
-_08020354: .4byte 0x0001601b
-_08020358: .4byte 0x00000161
-_0802035C: .4byte 0x02000000
-_08020360: .4byte 0x00016018
-_08020364: .4byte gPlayerParty
-_08020368: .4byte 0x0001605f
-_0802036C: .4byte gBattleMoveDamage
-_08020370:
- ldr r0, _080203EC @ =gBattleMoveDamage
- str r3, [r0]
- mov r8, r0
-_08020376:
- cmp r4, 0x19
- bne _08020386
- ldr r0, _080203F0 @ =gExpShareExp
- ldrh r1, [r0]
- mov r2, r8
- ldr r0, [r2]
- adds r0, r1
- str r0, [r2]
-_08020386:
- cmp r4, 0x28
- bne _0802039C
- mov r3, r8
- ldr r1, [r3]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- mov r1, r8
- str r0, [r1]
-_0802039C:
- ldr r0, _080203F4 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080203B8
- ldr r4, _080203EC @ =gBattleMoveDamage
- ldr r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
-_080203B8:
- ldr r0, _080203F8 @ =0x02000000
- ldr r2, _080203FC @ =0x00016018
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020400 @ =gPlayerParty
- adds r0, r1
- bl IsTradedMon
- lsls r0, 24
- cmp r0, 0
- beq _08020404
- ldr r4, _080203EC @ =gBattleMoveDamage
- ldr r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- movs r7, 0xA5
- lsls r7, 1
- mov r8, r4
- b _0802040A
- .align 2, 0
-_080203EC: .4byte gBattleMoveDamage
-_080203F0: .4byte gExpShareExp
-_080203F4: .4byte gBattleTypeFlags
-_080203F8: .4byte 0x02000000
-_080203FC: .4byte 0x00016018
-_08020400: .4byte gPlayerParty
-_08020404:
- ldr r7, _0802043C @ =0x00000149
- ldr r3, _08020440 @ =gBattleMoveDamage
- mov r8, r3
-_0802040A:
- ldr r0, _08020444 @ =gBattleTypeFlags
- ldrh r0, [r0]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08020488
- ldr r1, _08020448 @ =gBattlePartyID
- ldr r0, _0802044C @ =0x02000000
- ldr r3, _08020450 @ =0x00016018
- adds r2, r0, r3
- ldrh r1, [r1, 0x4]
- adds r5, r0, 0
- ldr r4, _08020454 @ =gBitTable
- ldr r3, _08020458 @ =gAbsentBankFlags
- ldrb r2, [r2]
- cmp r1, r2
- bne _08020460
- ldrb r1, [r3]
- ldr r0, [r4, 0x8]
- ands r1, r0
- cmp r1, 0
- bne _08020460
- ldr r0, _0802045C @ =0x000160a2
- adds r1, r5, r0
- b _0802047C
- .align 2, 0
-_0802043C: .4byte 0x00000149
-_08020440: .4byte gBattleMoveDamage
-_08020444: .4byte gBattleTypeFlags
-_08020448: .4byte gBattlePartyID
-_0802044C: .4byte 0x02000000
-_08020450: .4byte 0x00016018
-_08020454: .4byte gBitTable
-_08020458: .4byte gAbsentBankFlags
-_0802045C: .4byte 0x000160a2
-_08020460:
- ldrb r2, [r3]
- ldr r0, [r4]
- ands r2, r0
- cmp r2, 0
- bne _08020478
- ldr r1, _08020474 @ =0x000160a2
- adds r0, r5, r1
- strb r2, [r0]
- b _08020490
- .align 2, 0
-_08020474: .4byte 0x000160a2
-_08020478:
- ldr r2, _08020484 @ =0x000160a2
- adds r1, r5, r2
-_0802047C:
- movs r0, 0x2
- strb r0, [r1]
- b _08020490
- .align 2, 0
-_08020484: .4byte 0x000160a2
-_08020488:
- ldr r0, _08020530 @ =0x02000000
- ldr r3, _08020534 @ =0x000160a2
- adds r0, r3
- strb r1, [r0]
-_08020490:
- ldr r1, _08020538 @ =gBattleTextBuff1
- movs r3, 0
- movs r2, 0xFD
- strb r2, [r1]
- movs r5, 0x4
- strb r5, [r1, 0x1]
- ldr r4, _08020530 @ =0x02000000
- ldr r0, _08020534 @ =0x000160a2
- adds r6, r4, r0
- ldrb r0, [r6]
- strb r0, [r1, 0x2]
- ldr r0, _0802053C @ =0x00016018
- adds r4, r0
- ldrb r0, [r4]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08020540 @ =gBattleTextBuff2
- strb r2, [r1]
- strb r3, [r1, 0x1]
- strb r7, [r1, 0x2]
- movs r3, 0xFF
- lsls r3, 8
- ands r7, r3
- asrs r0, r7, 8
- strb r0, [r1, 0x3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x4]
- ldr r1, _08020544 @ =gBattleTextBuff3
- strb r2, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- strb r5, [r1, 0x2]
- movs r0, 0x5
- strb r0, [r1, 0x3]
- mov r0, r8
- ldr r2, [r0]
- strb r2, [r1, 0x4]
- adds r0, r2, 0
- ands r0, r3
- asrs r0, 8
- strb r0, [r1, 0x5]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r2
- asrs r0, 16
- strb r0, [r1, 0x6]
- lsrs r2, 24
- strb r2, [r1, 0x7]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x8]
- ldrb r1, [r6]
- movs r0, 0xD
- bl PrepareStringBattle
- ldrb r1, [r4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020548 @ =gPlayerParty
- adds r0, r1
- ldr r3, _0802054C @ =gBattleMons
- ldr r1, _08020550 @ =gBank1
- ldrb r2, [r1]
- movs r1, 0x58
- muls r1, r2
- adds r1, r3
- ldrh r1, [r1]
- bl MonGainEVs
-_0802051E:
- ldr r1, _08020530 @ =0x02000000
- ldr r3, _08020554 @ =0x0001605f
- adds r2, r1, r3
- ldrb r0, [r2]
- lsrs r0, 1
- strb r0, [r2]
- ldr r0, _08020558 @ =0x0001600f
- adds r1, r0
- b _08020618
- .align 2, 0
-_08020530: .4byte 0x02000000
-_08020534: .4byte 0x000160a2
-_08020538: .4byte gBattleTextBuff1
-_0802053C: .4byte 0x00016018
-_08020540: .4byte gBattleTextBuff2
-_08020544: .4byte gBattleTextBuff3
-_08020548: .4byte gPlayerParty
-_0802054C: .4byte gBattleMons
-_08020550: .4byte gBank1
-_08020554: .4byte 0x0001605f
-_08020558: .4byte 0x0001600f
-_0802055C:
- ldr r0, _08020620 @ =gBattleExecBuffer
- ldr r2, [r0]
- cmp r2, 0
- beq _08020566
- b _08020996
-_08020566:
- ldr r1, _08020624 @ =gBattleBufferB
- ldr r4, _08020628 @ =0x02000000
- ldr r3, _0802062C @ =0x000160a2
- adds r3, r4
- mov r8, r3
- ldrb r0, [r3]
- lsls r0, 9
- adds r0, r1
- strb r2, [r0]
- ldr r0, _08020630 @ =0x00016018
- adds r7, r4, r0
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08020634 @ =gPlayerParty
- adds r0, r5
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08020612
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- beq _08020612
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3A
- bl GetMonData
- ldr r1, _08020638 @ =0x00017180
- adds r4, r1
- strh r0, [r4]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3B
- bl GetMonData
- strh r0, [r4, 0x2]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3C
- bl GetMonData
- strh r0, [r4, 0x4]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3D
- bl GetMonData
- strh r0, [r4, 0x6]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3E
- bl GetMonData
- strh r0, [r4, 0x8]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3F
- bl GetMonData
- strh r0, [r4, 0xA]
- ldr r4, _0802063C @ =gActiveBank
- mov r2, r8
- ldrb r0, [r2]
- strb r0, [r4]
- ldrb r1, [r7]
- ldr r0, _08020640 @ =gBattleMoveDamage
- ldrh r2, [r0]
- movs r0, 0
- bl EmitExpBarUpdate
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08020612:
- ldr r1, _08020628 @ =0x02000000
- ldr r3, _08020644 @ =0x0001600f
- adds r1, r3
-_08020618:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08020996
- .align 2, 0
-_08020620: .4byte gBattleExecBuffer
-_08020624: .4byte gBattleBufferB
-_08020628: .4byte 0x02000000
-_0802062C: .4byte 0x000160a2
-_08020630: .4byte 0x00016018
-_08020634: .4byte gPlayerParty
-_08020638: .4byte 0x00017180
-_0802063C: .4byte gActiveBank
-_08020640: .4byte gBattleMoveDamage
-_08020644: .4byte 0x0001600f
-_08020648:
- ldr r0, _080208AC @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _08020652
- b _08020996
-_08020652:
- ldr r1, _080208B0 @ =gActiveBank
- ldr r4, _080208B4 @ =0x02000000
- ldr r2, _080208B8 @ =0x000160a2
- adds r0, r4, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r2, _080208BC @ =gBattleBufferB
- ldrb r3, [r1]
- lsls r1, r3, 9
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x21
- beq _0802066E
- b _080208F0
-_0802066E:
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0xB
- beq _0802067A
- b _080208F0
-_0802067A:
- ldr r0, _080208C0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080206A8
- ldr r1, _080208C4 @ =gBattlePartyID
- lsls r0, r3, 1
- adds r2, r0, r1
- ldr r0, _080208C8 @ =0x00016018
- adds r1, r4, r0
- ldrh r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080206A8
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080208CC @ =gPlayerParty
- adds r0, r1
- adds r1, r3, 0
- bl sub_80324F8
-_080206A8:
- ldr r1, _080208D0 @ =gBattleTextBuff1
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r5, _080208B0 @ =gActiveBank
- ldrb r0, [r5]
- strb r0, [r1, 0x2]
- ldr r0, _080208B4 @ =0x02000000
- ldr r3, _080208C8 @ =0x00016018
- adds r6, r0, r3
- ldrb r0, [r6]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r4, _080208D4 @ =gBattleTextBuff2
- strb r2, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- movs r0, 0x3
- strb r0, [r4, 0x3]
- ldrb r0, [r6]
- movs r1, 0x64
- mov r8, r1
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldr r7, _080208CC @ =gPlayerParty
- adds r0, r7
- movs r1, 0x38
- bl GetMonData
- strb r0, [r4, 0x4]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r4, 0x5]
- bl b_movescr_stack_push_cursor
- ldr r2, _080208D8 @ =gLeveledUpInBattle
- ldr r1, _080208DC @ =gBitTable
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080208E0 @ =gBattlescriptCurrInstr
- ldr r0, _080208E4 @ =BattleScript_LevelUp
- str r0, [r1]
- ldr r4, _080208E8 @ =gBattleMoveDamage
- ldr r2, _080208BC @ =gBattleBufferB
- ldrb r1, [r5]
- lsls r1, 9
- adds r0, r2, 0x2
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x3
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- str r3, [r4]
- ldrb r0, [r6]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7
- movs r1, 0
- bl AdjustFriendship
- ldr r0, _080208C4 @ =gBattlePartyID
- ldrb r1, [r6]
- ldrh r0, [r0]
- cmp r0, r1
- bne _080207EC
- ldr r4, _080208EC @ =gBattleMons
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- beq _080207EC
- mov r0, r8
- muls r0, r1
- adds r0, r7
- movs r1, 0x38
- bl GetMonData
- adds r1, r4, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0x39
- bl GetMonData
- strh r0, [r4, 0x28]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r4, 0x2C]
- ldrb r0, [r6]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7
- movs r1, 0x3B
- bl GetMonData
- strh r0, [r4, 0x2]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0x3C
- bl GetMonData
- strh r0, [r4, 0x4]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3D
- bl GetMonData
- strh r0, [r4, 0x6]
- ldrb r0, [r6]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7
- movs r1, 0x3D
- bl GetMonData
- strh r0, [r4, 0x6]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0x3E
- bl GetMonData
- strh r0, [r4, 0x8]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3F
- bl GetMonData
- strh r0, [r4, 0xA]
-_080207EC:
- ldr r0, _080208C4 @ =gBattlePartyID
- ldr r1, _080208B4 @ =0x02000000
- ldr r3, _080208C8 @ =0x00016018
- adds r7, r1, r3
- ldrb r2, [r7]
- ldrh r0, [r0, 0x4]
- cmp r0, r2
- bne _080208F6
- ldr r6, _080208EC @ =gBattleMons
- movs r0, 0xD8
- adds r0, r6
- mov r8, r0
- ldrh r0, [r0]
- cmp r0, 0
- beq _080208F6
- ldr r0, _080208C0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080208F6
- movs r5, 0x64
- adds r0, r2, 0
- muls r0, r5
- ldr r4, _080208CC @ =gPlayerParty
- adds r0, r4
- movs r1, 0x38
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xDA
- strb r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xDC
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3B
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xB2
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3C
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xB4
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3D
- bl GetMonData
- movs r2, 0xB6
- adds r2, r6
- mov r8, r2
- strh r0, [r2]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3D
- bl GetMonData
- mov r3, r8
- strh r0, [r3]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3E
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xB8
- strh r0, [r1]
- b _080208F6
- .align 2, 0
-_080208AC: .4byte gBattleExecBuffer
-_080208B0: .4byte gActiveBank
-_080208B4: .4byte 0x02000000
-_080208B8: .4byte 0x000160a2
-_080208BC: .4byte gBattleBufferB
-_080208C0: .4byte gBattleTypeFlags
-_080208C4: .4byte gBattlePartyID
-_080208C8: .4byte 0x00016018
-_080208CC: .4byte gPlayerParty
-_080208D0: .4byte gBattleTextBuff1
-_080208D4: .4byte gBattleTextBuff2
-_080208D8: .4byte gLeveledUpInBattle
-_080208DC: .4byte gBitTable
-_080208E0: .4byte gBattlescriptCurrInstr
-_080208E4: .4byte BattleScript_LevelUp
-_080208E8: .4byte gBattleMoveDamage
-_080208EC: .4byte gBattleMons
-_080208F0:
- ldr r1, _08020904 @ =gBattleMoveDamage
- movs r0, 0
- str r0, [r1]
-_080208F6:
- ldr r0, _08020908 @ =0x02000000
- ldr r1, _0802090C @ =0x0001600f
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
- b _08020996
- .align 2, 0
-_08020904: .4byte gBattleMoveDamage
-_08020908: .4byte 0x02000000
-_0802090C: .4byte 0x0001600f
-_08020910:
- ldr r0, _08020924 @ =gBattleMoveDamage
- ldr r0, [r0]
- cmp r0, 0
- beq _08020930
- ldr r0, _08020928 @ =0x02000000
- ldr r2, _0802092C @ =0x0001600f
- adds r0, r2
- movs r1, 0x3
- strb r1, [r0]
- b _08020996
- .align 2, 0
-_08020924: .4byte gBattleMoveDamage
-_08020928: .4byte 0x02000000
-_0802092C: .4byte 0x0001600f
-_08020930:
- ldr r2, _08020950 @ =0x02000000
- ldr r3, _08020954 @ =0x00016018
- adds r1, r2, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _0802095C
- ldr r0, _08020958 @ =0x0001600f
- adds r1, r2, r0
- movs r0, 0x2
- strb r0, [r1]
- b _08020996
- .align 2, 0
-_08020950: .4byte 0x02000000
-_08020954: .4byte 0x00016018
-_08020958: .4byte 0x0001600f
-_0802095C:
- ldr r3, _08020968 @ =0x0001600f
- adds r1, r2, r3
- movs r0, 0x6
- strb r0, [r1]
- b _08020996
- .align 2, 0
-_08020968: .4byte 0x0001600f
-_0802096C:
- ldr r0, _080209A4 @ =gBattleExecBuffer
- ldr r5, [r0]
- cmp r5, 0
- bne _08020996
- ldr r4, _080209A8 @ =gBattleMons
- ldr r2, _080209AC @ =gBank1
- ldrb r0, [r2]
- movs r1, 0x58
- muls r0, r1
- adds r0, r4
- movs r3, 0
- strh r5, [r0, 0x2E]
- ldrb r0, [r2]
- muls r0, r1
- adds r0, r4
- adds r0, 0x20
- strb r3, [r0]
- ldr r1, _080209B0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08020996:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080209A4: .4byte gBattleExecBuffer
-_080209A8: .4byte gBattleMons
-_080209AC: .4byte gBank1
-_080209B0: .4byte gBattlescriptCurrInstr
- thumb_func_end atk23_getexp
-
- thumb_func_start atk24
-atk24: @ 80209B4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- ldr r0, _08020AF0 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _080209C6
- b _08020B46
-_080209C6:
- movs r5, 0
-_080209C8:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08020AF4 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080209F8
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080209F8
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
-_080209F8:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080209C8
- cmp r6, 0
- bne _08020A0C
- ldr r0, _08020AF8 @ =gBattleOutcome
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
-_08020A0C:
- movs r6, 0
- movs r5, 0
-_08020A10:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08020AFC @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08020A40
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08020A40
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
-_08020A40:
- adds r5, 0x1
- cmp r5, 0x5
- ble _08020A10
- ldr r2, _08020AF8 @ =gBattleOutcome
- cmp r6, 0
- bne _08020A54
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_08020A54:
- ldrb r0, [r2]
- cmp r0, 0
- bne _08020B3E
- ldr r2, _08020B00 @ =gBattleTypeFlags
- ldrh r1, [r2]
- movs r0, 0x2
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _08020B3E
- movs r2, 0
- movs r5, 0
- ldr r0, _08020B04 @ =gNoOfAllBanks
- ldrb r3, [r0]
- mov r12, r0
- ldr r7, _08020B08 @ =gBattlescriptCurrInstr
- cmp r2, r3
- bge _08020AA0
- ldr r0, _08020B0C @ =gHitMarker
- movs r1, 0x80
- lsls r1, 21
- ldr r6, [r0]
- adds r4, r3, 0
- ldr r3, _08020B10 @ =gSpecialStatuses
-_08020A84:
- adds r0, r1, 0
- lsls r0, r5
- ands r0, r6
- cmp r0, 0
- beq _08020A98
- ldrb r0, [r3]
- lsls r0, 25
- cmp r0, 0
- blt _08020A98
- adds r2, 0x1
-_08020A98:
- adds r3, 0x28
- adds r5, 0x2
- cmp r5, r4
- blt _08020A84
-_08020AA0:
- movs r4, 0
- movs r5, 0x1
- mov r0, r12
- ldrb r3, [r0]
- cmp r5, r3
- bge _08020ADA
- ldr r0, _08020B0C @ =gHitMarker
- movs r1, 0x80
- lsls r1, 21
- mov r12, r1
- ldr r1, [r0]
- ldr r0, _08020B10 @ =gSpecialStatuses
- adds r6, r3, 0
- adds r3, r0, 0
- adds r3, 0x14
-_08020ABE:
- mov r0, r12
- lsls r0, r5
- ands r0, r1
- cmp r0, 0
- beq _08020AD2
- ldrb r0, [r3]
- lsls r0, 25
- cmp r0, 0
- blt _08020AD2
- adds r4, 0x1
-_08020AD2:
- adds r3, 0x28
- adds r5, 0x2
- cmp r5, r6
- blt _08020ABE
-_08020ADA:
- mov r0, r8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08020B14
- adds r0, r4, r2
- cmp r0, 0x1
- bgt _08020B1C
- b _08020B36
- .align 2, 0
-_08020AF0: .4byte gBattleExecBuffer
-_08020AF4: .4byte gPlayerParty
-_08020AF8: .4byte gBattleOutcome
-_08020AFC: .4byte gEnemyParty
-_08020B00: .4byte gBattleTypeFlags
-_08020B04: .4byte gNoOfAllBanks
-_08020B08: .4byte gBattlescriptCurrInstr
-_08020B0C: .4byte gHitMarker
-_08020B10: .4byte gSpecialStatuses
-_08020B14:
- cmp r4, 0
- beq _08020B36
- cmp r2, 0
- beq _08020B36
-_08020B1C:
- ldr r2, [r7]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r7]
- b _08020B46
-_08020B36:
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- b _08020B46
-_08020B3E:
- ldr r1, _08020B50 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08020B46:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08020B50: .4byte gBattlescriptCurrInstr
- thumb_func_end atk24
-
- thumb_func_start sub_8020B54
-sub_8020B54: @ 8020B54
- ldr r1, _08020B80 @ =gBattleMoveFlags
- movs r0, 0
- strb r0, [r1]
- ldr r0, _08020B84 @ =0x02000000
- ldr r1, _08020B88 @ =0x0001601f
- adds r0, r1
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08020B8C @ =gCritMultiplier
- strb r1, [r0]
- ldr r0, _08020B90 @ =gBattleCommunication
- strb r2, [r0, 0x3]
- strb r2, [r0, 0x6]
- ldr r2, _08020B94 @ =gHitMarker
- ldr r0, [r2]
- subs r1, 0x42
- ands r0, r1
- ldr r1, _08020B98 @ =0xffffbfff
- ands r0, r1
- str r0, [r2]
- bx lr
- .align 2, 0
-_08020B80: .4byte gBattleMoveFlags
-_08020B84: .4byte 0x02000000
-_08020B88: .4byte 0x0001601f
-_08020B8C: .4byte gCritMultiplier
-_08020B90: .4byte gBattleCommunication
-_08020B94: .4byte gHitMarker
-_08020B98: .4byte 0xffffbfff
- thumb_func_end sub_8020B54
-
- thumb_func_start atk25_move_values_cleanup
-atk25_move_values_cleanup: @ 8020B9C
- push {lr}
- bl sub_8020B54
- ldr r1, _08020BB0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08020BB0: .4byte gBattlescriptCurrInstr
- thumb_func_end atk25_move_values_cleanup
-
- thumb_func_start atk26_set_multihit
-atk26_set_multihit: @ 8020BB4
- ldr r3, _08020BC4 @ =gMultiHitCounter
- ldr r2, _08020BC8 @ =gBattlescriptCurrInstr
- ldr r0, [r2]
- ldrb r1, [r0, 0x1]
- strb r1, [r3]
- adds r0, 0x2
- str r0, [r2]
- bx lr
- .align 2, 0
-_08020BC4: .4byte gMultiHitCounter
-_08020BC8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk26_set_multihit
-
- thumb_func_start atk27_decrement_multihit
-atk27_decrement_multihit: @ 8020BCC
- push {lr}
- ldr r1, _08020BE8 @ =gMultiHitCounter
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _08020BF0
- ldr r1, _08020BEC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08020C0A
- .align 2, 0
-_08020BE8: .4byte gMultiHitCounter
-_08020BEC: .4byte gBattlescriptCurrInstr
-_08020BF0:
- ldr r3, _08020C10 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
-_08020C0A:
- pop {r0}
- bx r0
- .align 2, 0
-_08020C10: .4byte gBattlescriptCurrInstr
- thumb_func_end atk27_decrement_multihit
-
- thumb_func_start atk28_goto
-atk28_goto: @ 8020C14
- ldr r3, _08020C30 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- bx lr
- .align 2, 0
-_08020C30: .4byte gBattlescriptCurrInstr
- thumb_func_end atk28_goto
-
- thumb_func_start atk29_jumpifbyte
-atk29_jumpifbyte: @ 8020C34
- push {r4-r6,lr}
- ldr r3, _08020C78 @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r2, [r1, 0x7]
- ldrb r0, [r1, 0x8]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x9]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xB
- str r1, [r3]
- cmp r6, 0x5
- bhi _08020CCC
- lsls r0, r6, 2
- ldr r1, _08020C7C @ =_08020C80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08020C78: .4byte gBattlescriptCurrInstr
-_08020C7C: .4byte _08020C80
- .align 2, 0
-_08020C80:
- .4byte _08020C98
- .4byte _08020CA0
- .4byte _08020CA8
- .4byte _08020CB0
- .4byte _08020CB8
- .4byte _08020CC2
-_08020C98:
- ldrb r0, [r5]
- cmp r0, r4
- bne _08020CCC
- b _08020CCA
-_08020CA0:
- ldrb r0, [r5]
- cmp r0, r4
- beq _08020CCC
- b _08020CCA
-_08020CA8:
- ldrb r0, [r5]
- cmp r0, r4
- bls _08020CCC
- b _08020CCA
-_08020CB0:
- ldrb r0, [r5]
- cmp r0, r4
- bcs _08020CCC
- b _08020CCA
-_08020CB8:
- ldrb r0, [r5]
- ands r4, r0
- cmp r4, 0
- beq _08020CCC
- b _08020CCA
-_08020CC2:
- ldrb r0, [r5]
- ands r4, r0
- cmp r4, 0
- bne _08020CCC
-_08020CCA:
- str r2, [r3]
-_08020CCC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk29_jumpifbyte
-
- thumb_func_start atk2A_jumpifhalfword
-atk2A_jumpifhalfword: @ 8020CD4
- push {r4-r6,lr}
- ldr r3, _08020D20 @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r0, [r1, 0x7]
- lsls r0, 8
- orrs r4, r0
- ldrb r2, [r1, 0x8]
- ldrb r0, [r1, 0x9]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xC
- str r1, [r3]
- cmp r6, 0x5
- bhi _08020D74
- lsls r0, r6, 2
- ldr r1, _08020D24 @ =_08020D28
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08020D20: .4byte gBattlescriptCurrInstr
-_08020D24: .4byte _08020D28
- .align 2, 0
-_08020D28:
- .4byte _08020D40
- .4byte _08020D48
- .4byte _08020D50
- .4byte _08020D58
- .4byte _08020D60
- .4byte _08020D6A
-_08020D40:
- ldrh r0, [r5]
- cmp r0, r4
- bne _08020D74
- b _08020D72
-_08020D48:
- ldrh r0, [r5]
- cmp r0, r4
- beq _08020D74
- b _08020D72
-_08020D50:
- ldrh r0, [r5]
- cmp r0, r4
- bls _08020D74
- b _08020D72
-_08020D58:
- ldrh r0, [r5]
- cmp r0, r4
- bcs _08020D74
- b _08020D72
-_08020D60:
- ldrh r0, [r5]
- ands r4, r0
- cmp r4, 0
- beq _08020D74
- b _08020D72
-_08020D6A:
- ldrh r0, [r5]
- ands r4, r0
- cmp r4, 0
- bne _08020D74
-_08020D72:
- str r2, [r3]
-_08020D74:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk2A_jumpifhalfword
-
- thumb_func_start atk2B_jumpifword
-atk2B_jumpifword: @ 8020D7C
- push {r4-r6,lr}
- ldr r3, _08020DD4 @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r0, [r1, 0x7]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x9]
- lsls r0, 24
- orrs r4, r0
- ldrb r2, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xE
- str r1, [r3]
- cmp r6, 0x5
- bhi _08020E28
- lsls r0, r6, 2
- ldr r1, _08020DD8 @ =_08020DDC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08020DD4: .4byte gBattlescriptCurrInstr
-_08020DD8: .4byte _08020DDC
- .align 2, 0
-_08020DDC:
- .4byte _08020DF4
- .4byte _08020DFC
- .4byte _08020E04
- .4byte _08020E0C
- .4byte _08020E14
- .4byte _08020E1E
-_08020DF4:
- ldr r0, [r5]
- cmp r0, r4
- bne _08020E28
- b _08020E26
-_08020DFC:
- ldr r0, [r5]
- cmp r0, r4
- beq _08020E28
- b _08020E26
-_08020E04:
- ldr r0, [r5]
- cmp r0, r4
- bls _08020E28
- b _08020E26
-_08020E0C:
- ldr r0, [r5]
- cmp r0, r4
- bcs _08020E28
- b _08020E26
-_08020E14:
- ldr r0, [r5]
- ands r0, r4
- cmp r0, 0
- beq _08020E28
- b _08020E26
-_08020E1E:
- ldr r0, [r5]
- ands r0, r4
- cmp r0, 0
- bne _08020E28
-_08020E26:
- str r2, [r3]
-_08020E28:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk2B_jumpifword
-
- thumb_func_start atk2C_jumpifarrayequal
-atk2C_jumpifarrayequal: @ 8020E30
- push {r4-r7,lr}
- ldr r2, _08020E88 @ =gBattlescriptCurrInstr
- ldr r3, [r2]
- ldrb r1, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r5, r1, r0
- ldrb r1, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 24
- adds r4, r1, r0
- ldrb r6, [r3, 0x9]
- ldrb r1, [r3, 0xA]
- ldrb r0, [r3, 0xB]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0xC]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0xD]
- lsls r0, 24
- adds r1, r0
- mov r12, r1
- movs r1, 0
- cmp r1, r6
- bcs _08020EA8
- ldrb r0, [r5]
- ldrb r7, [r4]
- cmp r0, r7
- beq _08020E8C
- adds r0, r3, 0
- b _08020EA4
- .align 2, 0
-_08020E88: .4byte gBattlescriptCurrInstr
-_08020E8C:
- adds r5, 0x1
- adds r4, 0x1
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r6
- bcs _08020EA8
- ldrb r0, [r5]
- ldrb r3, [r4]
- cmp r0, r3
- beq _08020E8C
- ldr r0, [r2]
-_08020EA4:
- adds r0, 0xE
- str r0, [r2]
-_08020EA8:
- cmp r1, r6
- bne _08020EB0
- mov r7, r12
- str r7, [r2]
-_08020EB0:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk2C_jumpifarrayequal
-
- thumb_func_start atk2D_jumpifarraynotequal
-atk2D_jumpifarraynotequal: @ 8020EB8
- push {r4-r7,lr}
- movs r7, 0
- ldr r3, _08020F2C @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r4, r2, r0
- ldrb r6, [r1, 0x9]
- ldrb r2, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- adds r2, r0
- mov r12, r2
- movs r1, 0
- cmp r7, r6
- bcs _08020F22
-_08020F06:
- ldrb r0, [r5]
- ldrb r2, [r4]
- cmp r0, r2
- bne _08020F14
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_08020F14:
- adds r5, 0x1
- adds r4, 0x1
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r6
- bcc _08020F06
-_08020F22:
- cmp r7, r6
- beq _08020F30
- mov r0, r12
- b _08020F34
- .align 2, 0
-_08020F2C: .4byte gBattlescriptCurrInstr
-_08020F30:
- ldr r0, [r3]
- adds r0, 0xE
-_08020F34:
- str r0, [r3]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk2D_jumpifarraynotequal
-
- thumb_func_start atk2E_setbyte
-atk2E_setbyte: @ 8020F3C
- ldr r3, _08020F60 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r2, 0x5]
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_08020F60: .4byte gBattlescriptCurrInstr
- thumb_func_end atk2E_setbyte
-
- thumb_func_start atk2F_addbyte
-atk2F_addbyte: @ 8020F64
- ldr r3, _08020F8C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r2, 0x5]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_08020F8C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk2F_addbyte
-
- thumb_func_start atk30_subbyte
-atk30_subbyte: @ 8020F90
- ldr r3, _08020FB8 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r1]
- ldrb r2, [r2, 0x5]
- subs r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_08020FB8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk30_subbyte
-
- thumb_func_start atk31_copyarray
-atk31_copyarray: @ 8020FBC
- push {r4-r6,lr}
- ldr r3, _0802100C @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r6, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x9]
- movs r2, 0
- cmp r2, r4
- bge _08021000
-_08020FF2:
- adds r0, r6, r2
- adds r1, r5, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r4
- blt _08020FF2
-_08021000:
- ldr r0, [r3]
- adds r0, 0xA
- str r0, [r3]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802100C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk31_copyarray
-
- thumb_func_start atk32_copyarray_withindex
-atk32_copyarray_withindex: @ 8021010
- push {r4-r7,lr}
- ldr r3, _08021078 @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r7, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r6, r2, r0
- ldrb r2, [r1, 0x9]
- ldrb r0, [r1, 0xA]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0xD]
- movs r2, 0
- cmp r2, r4
- bge _0802106C
-_0802105A:
- adds r0, r7, r2
- ldrb r1, [r5]
- adds r1, r2, r1
- adds r1, r6, r1
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r4
- blt _0802105A
-_0802106C:
- ldr r0, [r3]
- adds r0, 0xE
- str r0, [r3]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08021078: .4byte gBattlescriptCurrInstr
- thumb_func_end atk32_copyarray_withindex
-
- thumb_func_start atk33_orbyte
-atk33_orbyte: @ 802107C
- ldr r3, _080210A4 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r1]
- ldrb r2, [r2, 0x5]
- orrs r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_080210A4: .4byte gBattlescriptCurrInstr
- thumb_func_end atk33_orbyte
-
- thumb_func_start atk34_orhalfword
-atk34_orhalfword: @ 80210A8
- push {r4,lr}
- ldr r4, _080210DC @ =gBattlescriptCurrInstr
- ldr r3, [r4]
- ldrb r2, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r2, r0
- ldrb r1, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrh r0, [r2]
- orrs r1, r0
- strh r1, [r2]
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080210DC: .4byte gBattlescriptCurrInstr
- thumb_func_end atk34_orhalfword
-
- thumb_func_start atk35_orword
-atk35_orword: @ 80210E0
- push {r4,lr}
- ldr r4, _08021120 @ =gBattlescriptCurrInstr
- ldr r2, [r4]
- ldrb r3, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r3, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r3, r0
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- ldr r0, [r3]
- orrs r0, r1
- str r0, [r3]
- ldr r0, [r4]
- adds r0, 0x9
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08021120: .4byte gBattlescriptCurrInstr
- thumb_func_end atk35_orword
-
- thumb_func_start atk36_bicbyte
-atk36_bicbyte: @ 8021124
- ldr r3, _0802114C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r2, [r2, 0x5]
- ldrb r0, [r1]
- bics r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_0802114C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk36_bicbyte
-
- thumb_func_start atk37_bichalfword
-atk37_bichalfword: @ 8021150
- push {r4,lr}
- ldr r4, _08021184 @ =gBattlescriptCurrInstr
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r2, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- orrs r2, r0
- ldrh r0, [r1]
- bics r0, r2
- strh r0, [r1]
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08021184: .4byte gBattlescriptCurrInstr
- thumb_func_end atk37_bichalfword
-
- thumb_func_start atk38_bicword
-atk38_bicword: @ 8021188
- push {r4,lr}
- ldr r4, _080211C8 @ =gBattlescriptCurrInstr
- ldr r2, [r4]
- ldrb r3, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r3, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r3, r0
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- ldr r0, [r3]
- bics r0, r1
- str r0, [r3]
- ldr r0, [r4]
- adds r0, 0x9
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080211C8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk38_bicword
-
- thumb_func_start atk39_pause
-atk39_pause: @ 80211CC
- push {r4,r5,lr}
- ldr r0, _08021200 @ =gBattleExecBuffer
- ldr r4, [r0]
- cmp r4, 0
- bne _080211F8
- ldr r5, _08021204 @ =gBattlescriptCurrInstr
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r3, _08021208 @ =gPauseCounterBattle
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r1
- bcc _080211F8
- strh r4, [r3]
- adds r0, r2, 0x3
- str r0, [r5]
-_080211F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08021200: .4byte gBattleExecBuffer
-_08021204: .4byte gBattlescriptCurrInstr
-_08021208: .4byte gPauseCounterBattle
- thumb_func_end atk39_pause
-
- thumb_func_start atk3A_waitstate
-atk3A_waitstate: @ 802120C
- push {lr}
- ldr r0, _08021224 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0802121E
- ldr r1, _08021228 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0802121E:
- pop {r0}
- bx r0
- .align 2, 0
-_08021224: .4byte gBattleExecBuffer
-_08021228: .4byte gBattlescriptCurrInstr
- thumb_func_end atk3A_waitstate
-
- thumb_func_start atk3B_healthbar_update
-atk3B_healthbar_update: @ 802122C
- push {lr}
- ldr r0, _08021240 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0802124C
- ldr r0, _08021244 @ =gActiveBank
- ldr r1, _08021248 @ =gBankTarget
- b _08021250
- .align 2, 0
-_08021240: .4byte gBattlescriptCurrInstr
-_08021244: .4byte gActiveBank
-_08021248: .4byte gBankTarget
-_0802124C:
- ldr r0, _08021274 @ =gActiveBank
- ldr r1, _08021278 @ =gBankAttacker
-_08021250:
- ldrb r1, [r1]
- strb r1, [r0]
- ldr r0, _0802127C @ =gBattleMoveDamage
- ldrh r1, [r0]
- movs r0, 0
- bl EmitHealthBarUpdate
- ldr r0, _08021274 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _08021280 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08021274: .4byte gActiveBank
-_08021278: .4byte gBankAttacker
-_0802127C: .4byte gBattleMoveDamage
-_08021280: .4byte gBattlescriptCurrInstr
- thumb_func_end atk3B_healthbar_update
-
- thumb_func_start atk3C_return
-atk3C_return: @ 8021284
- push {lr}
- bl b_movescr_stack_pop_cursor
- pop {r0}
- bx r0
- thumb_func_end atk3C_return
-
- thumb_func_start atk3D_end
-atk3D_end: @ 8021290
- ldr r0, _080212A4 @ =gBattleMoveFlags
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080212A8 @ =gActiveBank
- strb r1, [r0]
- ldr r1, _080212AC @ =gFightStateTracker
- movs r0, 0xB
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080212A4: .4byte gBattleMoveFlags
-_080212A8: .4byte gActiveBank
-_080212AC: .4byte gFightStateTracker
- thumb_func_end atk3D_end
-
- thumb_func_start atk3E_end2
-atk3E_end2: @ 80212B0
- ldr r1, _080212C0 @ =gActiveBank
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080212C4 @ =gFightStateTracker
- movs r0, 0xB
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080212C0: .4byte gActiveBank
-_080212C4: .4byte gFightStateTracker
- thumb_func_end atk3E_end2
-
- thumb_func_start atk3F_end3
-atk3F_end3: @ 80212C8
- push {lr}
- bl b_movescr_stack_pop_cursor
- ldr r2, _080212F0 @ =0x02017140
- adds r1, r2, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0
- beq _080212DE
- subs r0, 0x1
- strb r0, [r1]
-_080212DE:
- ldr r0, _080212F4 @ =gBattleMainFunc
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080212F0: .4byte 0x02017140
-_080212F4: .4byte gBattleMainFunc
- thumb_func_end atk3F_end3
-
- thumb_func_start atk41_call
-atk41_call: @ 80212F8
- push {r4,lr}
- ldr r4, _08021324 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x5
- bl b_movescr_stack_push
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08021324: .4byte gBattlescriptCurrInstr
- thumb_func_end atk41_call
-
- thumb_func_start atk42_jumpiftype2
-atk42_jumpiftype2: @ 8021328
- push {r4,lr}
- ldr r4, _08021370 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [r4]
- ldr r2, _08021374 @ =gBattleMons
- movs r1, 0x58
- muls r0, r1
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r2, [r3, 0x2]
- ldrb r1, [r1]
- cmp r2, r1
- beq _08021356
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r2, r0
- bne _08021378
-_08021356:
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0802137C
- .align 2, 0
-_08021370: .4byte gBattlescriptCurrInstr
-_08021374: .4byte gBattleMons
-_08021378:
- adds r0, r3, 0x7
- str r0, [r4]
-_0802137C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atk42_jumpiftype2
-
- thumb_func_start atk43_jumpifabilitypresent
-atk43_jumpifabilitypresent: @ 8021384
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080213BC @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r2, [r0, 0x1]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _080213C0
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _080213C6
- .align 2, 0
-_080213BC: .4byte gBattlescriptCurrInstr
-_080213C0:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_080213C6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atk43_jumpifabilitypresent
-
- thumb_func_start atk44
-atk44: @ 80213D0
- ldr r1, _080213E4 @ =0x02000000
- ldr r0, _080213E8 @ =gBankAttacker
- ldrb r0, [r0]
- ldr r2, _080213EC @ =0x00016060
- adds r0, r2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080213E4: .4byte 0x02000000
-_080213E8: .4byte gBankAttacker
-_080213EC: .4byte 0x00016060
- thumb_func_end atk44
-
- thumb_func_start atk45_playanimation
-atk45_playanimation: @ 80213F0
- push {r4-r6,lr}
- ldr r5, _08021444 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r6, _08021448 @ =gActiveBank
- strb r0, [r6]
- ldr r2, [r5]
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r4, [r2, 0x2]
- adds r0, r4, 0
- cmp r0, 0x1
- beq _08021426
- cmp r0, 0x11
- beq _08021426
- cmp r0, 0x2
- bne _0802144C
-_08021426:
- ldr r4, _08021444 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r1, [r0, 0x2]
- ldrh r2, [r3]
- movs r0, 0
- bl EmitBattleAnimation
- ldr r0, _08021448 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- b _080214AE
- .align 2, 0
-_08021444: .4byte gBattlescriptCurrInstr
-_08021448: .4byte gActiveBank
-_0802144C:
- ldr r0, _08021464 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802146C
- adds r0, r2, 0x7
- bl b_movescr_stack_push
- ldr r0, _08021468 @ =BattleScript_Pausex20
- b _080214AC
- .align 2, 0
-_08021464: .4byte gHitMarker
-_08021468: .4byte BattleScript_Pausex20
-_0802146C:
- adds r0, r4, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08021498
- ldr r1, _08021490 @ =gStatuses3
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021494 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08021498
- adds r0, r2, 0x7
- b _080214AC
- .align 2, 0
-_08021490: .4byte gStatuses3
-_08021494: .4byte 0x000400c0
-_08021498:
- ldrb r1, [r2, 0x2]
- ldrh r2, [r3]
- movs r0, 0
- bl EmitBattleAnimation
- ldrb r0, [r6]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x7
-_080214AC:
- str r0, [r5]
-_080214AE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk45_playanimation
-
- thumb_func_start atk46_playanimation2
-atk46_playanimation2: @ 80214B4
- push {r4-r7,lr}
- ldr r6, _0802151C @ =gBattlescriptCurrInstr
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r7, _08021520 @ =gActiveBank
- strb r0, [r7]
- ldr r2, [r6]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r1, [r2, 0x6]
- ldrb r0, [r2, 0x7]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x9]
- lsls r0, 24
- adds r4, r1, r0
- ldrb r5, [r3]
- adds r0, r5, 0
- cmp r0, 0x1
- beq _080214FE
- cmp r0, 0x11
- beq _080214FE
- cmp r0, 0x2
- bne _08021524
-_080214FE:
- ldrb r1, [r3]
- ldrh r2, [r4]
- movs r0, 0
- bl EmitBattleAnimation
- ldr r0, _08021520 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _0802151C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
- b _0802157A
- .align 2, 0
-_0802151C: .4byte gBattlescriptCurrInstr
-_08021520: .4byte gActiveBank
-_08021524:
- ldr r0, _08021534 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08021538
- adds r0, r2, 0
- b _08021576
- .align 2, 0
-_08021534: .4byte gHitMarker
-_08021538:
- adds r0, r5, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08021564
- ldr r1, _0802155C @ =gStatuses3
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021560 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08021564
- adds r0, r2, 0
- b _08021576
- .align 2, 0
-_0802155C: .4byte gStatuses3
-_08021560: .4byte 0x000400c0
-_08021564:
- ldrb r1, [r3]
- ldrh r2, [r4]
- movs r0, 0
- bl EmitBattleAnimation
- ldrb r0, [r7]
- bl MarkBufferBankForExecution
- ldr r0, [r6]
-_08021576:
- adds r0, 0xA
- str r0, [r6]
-_0802157A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk46_playanimation2
-
- thumb_func_start atk47_setgraphicalstatchangevalues_setgraphicalstatchangevalues_setgraphicalstatchangevalues
-atk47_setgraphicalstatchangevalues_setgraphicalstatchangevalues_setgraphicalstatchangevalues: @ 8021580
- push {r4,lr}
- movs r3, 0
- ldr r0, _080215A0 @ =0x02000000
- ldr r2, _080215A4 @ =0x0001601e
- adds r1, r0, r2
- ldrb r1, [r1]
- movs r2, 0xF0
- ands r2, r1
- adds r4, r0, 0
- cmp r2, 0x20
- beq _080215B6
- cmp r2, 0x20
- bgt _080215A8
- cmp r2, 0x10
- beq _080215B2
- b _080215C0
- .align 2, 0
-_080215A0: .4byte 0x02000000
-_080215A4: .4byte 0x0001601e
-_080215A8:
- cmp r2, 0x90
- beq _080215BA
- cmp r2, 0xA0
- beq _080215BE
- b _080215C0
-_080215B2:
- movs r3, 0xF
- b _080215C0
-_080215B6:
- movs r3, 0x27
- b _080215C0
-_080215BA:
- movs r3, 0x16
- b _080215C0
-_080215BE:
- movs r3, 0x2E
-_080215C0:
- ldr r1, _080215EC @ =0x0001601e
- adds r0, r4, r1
- ldrb r1, [r0]
- movs r0, 0xF
- ands r0, r1
- adds r0, r3, r0
- subs r0, 0x1
- ldr r2, _080215F0 @ =0x000160a4
- adds r1, r4, r2
- movs r2, 0
- strb r0, [r1]
- ldr r1, _080215F4 @ =0x000160a5
- adds r0, r4, r1
- strb r2, [r0]
- ldr r1, _080215F8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080215EC: .4byte 0x0001601e
-_080215F0: .4byte 0x000160a4
-_080215F4: .4byte 0x000160a5
-_080215F8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk47_setgraphicalstatchangevalues_setgraphicalstatchangevalues_setgraphicalstatchangevalues
-
- thumb_func_start atk48_playstatchangeanimation
-atk48_playstatchangeanimation: @ 80215FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r7, 0
- movs r0, 0
- mov r8, r0
- movs r3, 0
- ldr r5, _08021670 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- str r3, [sp]
- bl sub_8015150
- ldr r2, _08021674 @ =gActiveBank
- strb r0, [r2]
- ldr r0, [r5]
- ldrb r4, [r0, 0x2]
- ldrb r1, [r0, 0x3]
- movs r0, 0x1
- ands r0, r1
- ldr r3, [sp]
- cmp r0, 0
- beq _08021710
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x15
- cmp r0, 0
- beq _0802163C
- movs r1, 0x2D
-_0802163C:
- cmp r4, 0
- beq _080216E4
- movs r0, 0x1
- mov r10, r0
- ldr r0, _08021678 @ =gUnknown_02024A98
- mov r9, r0
- lsls r5, r1, 16
-_0802164A:
- adds r0, r4, 0
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- beq _080216D6
- ldr r0, _08021670 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0802167C
- ldr r0, _08021674 @ =gActiveBank
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7, r0
- b _080216C4
- .align 2, 0
-_08021670: .4byte gBattlescriptCurrInstr
-_08021674: .4byte gActiveBank
-_08021678: .4byte gUnknown_02024A98
-_0802167C:
- ldr r6, _08021700 @ =gActiveBank
- ldrb r0, [r6]
- str r3, [sp]
- bl GetBankIdentity
- mov r1, r10
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08021704 @ =gSideTimer
- adds r0, r1
- ldrb r0, [r0, 0x2]
- ldr r3, [sp]
- cmp r0, 0
- bne _080216D6
- ldr r0, _08021708 @ =gBattleMons
- ldrb r2, [r6]
- movs r1, 0x58
- muls r2, r1
- adds r0, r2, r0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1D
- beq _080216D6
- cmp r0, 0x49
- beq _080216D6
- cmp r0, 0x33
- bne _080216BA
- cmp r7, 0x6
- beq _080216D6
-_080216BA:
- cmp r0, 0x34
- bne _080216C2
- cmp r7, 0x1
- beq _080216D6
-_080216C2:
- adds r0, r7, r2
-_080216C4:
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- ble _080216D6
- lsrs r0, r5, 16
- mov r8, r0
- adds r3, 0x1
-_080216D6:
- lsrs r4, 1
- movs r1, 0x80
- lsls r1, 9
- adds r5, r1
- adds r7, 0x1
- cmp r4, 0
- bne _0802164A
-_080216E4:
- ldr r0, _0802170C @ =gBattlescriptCurrInstr
- mov r9, r0
- cmp r3, 0x1
- ble _08021772
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x39
- mov r8, r1
- cmp r0, 0
- beq _08021772
- movs r0, 0x3A
- b _08021770
- .align 2, 0
-_08021700: .4byte gActiveBank
-_08021704: .4byte gSideTimer
-_08021708: .4byte gBattleMons
-_0802170C: .4byte gBattlescriptCurrInstr
-_08021710:
- movs r0, 0x2
- ands r0, r1
- movs r1, 0xE
- cmp r0, 0
- beq _0802171C
- movs r1, 0x26
-_0802171C:
- mov r9, r5
- cmp r4, 0
- beq _08021758
- ldr r6, _0802178C @ =gUnknown_02024A98
- adds r5, r2, 0
- lsls r2, r1, 16
-_08021728:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0802174A
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7, r0
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xB
- bgt _0802174A
- lsrs r1, r2, 16
- mov r8, r1
- adds r3, 0x1
-_0802174A:
- lsrs r4, 1
- movs r0, 0x80
- lsls r0, 9
- adds r2, r0
- adds r7, 0x1
- cmp r4, 0
- bne _08021728
-_08021758:
- cmp r3, 0x1
- ble _08021772
- mov r1, r9
- ldr r0, [r1]
- ldrb r1, [r0, 0x3]
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x37
- mov r8, r1
- cmp r0, 0
- beq _08021772
- movs r0, 0x38
-_08021770:
- mov r8, r0
-_08021772:
- mov r1, r9
- ldr r2, [r1]
- ldrb r1, [r2, 0x3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08021790
- cmp r3, 0x1
- bgt _08021790
- adds r0, r2, 0x4
- mov r1, r9
- b _080217E6
- .align 2, 0
-_0802178C: .4byte gUnknown_02024A98
-_08021790:
- cmp r3, 0
- beq _080217E0
- ldr r0, _080217D0 @ =0x02000000
- ldr r1, _080217D4 @ =0x000160dc
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- bne _080217E0
- movs r0, 0
- movs r1, 0x1
- mov r2, r8
- str r3, [sp]
- bl EmitBattleAnimation
- ldr r0, _080217D8 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r0, _080217DC @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x4
- ands r0, r1
- ldr r3, [sp]
- cmp r0, 0
- beq _080217CC
- cmp r3, 0x1
- ble _080217CC
- movs r0, 0x1
- strb r0, [r4]
-_080217CC:
- ldr r1, _080217DC @ =gBattlescriptCurrInstr
- b _080217E2
- .align 2, 0
-_080217D0: .4byte 0x02000000
-_080217D4: .4byte 0x000160dc
-_080217D8: .4byte gActiveBank
-_080217DC: .4byte gBattlescriptCurrInstr
-_080217E0:
- mov r1, r9
-_080217E2:
- ldr r0, [r1]
- adds r0, 0x4
-_080217E6:
- str r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk48_playstatchangeanimation
-
- thumb_func_start sub_80217F8
-sub_80217F8: @ 80217F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- movs r0, 0
- mov r10, r0
- ldr r0, _08021834 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r1, [r0, 0x1]
- str r1, [sp, 0x10]
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x14]
- ldr r1, _08021838 @ =gBattleMons
- ldr r0, _0802183C @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08021844
- ldr r1, _08021840 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x7]
- b _0802184E
- .align 2, 0
-_08021834: .4byte gBattlescriptCurrInstr
-_08021838: .4byte gBattleMons
-_0802183C: .4byte gBankAttacker
-_08021840: .4byte gEnigmaBerries
-_08021844:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_0802184E:
- str r0, [sp, 0x8]
- ldr r0, _0802186C @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 1
- ldr r0, _08021870 @ =0x020160e8
- adds r1, r0
- str r1, [sp, 0xC]
- subs r0, 0xCC
- ldrb r0, [r0]
- cmp r0, 0
- beq _080218C0
- movs r2, 0x3F
- ands r2, r0
- str r2, [sp, 0x4]
- b _080218D2
- .align 2, 0
-_0802186C: .4byte gBankAttacker
-_08021870: .4byte 0x020160e8
-_08021874:
- strb r2, [r7]
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- ldr r0, _080218AC @ =0x02000000
- ldr r3, _080218B0 @ =0x0001600c
- adds r0, r3
- strb r4, [r0]
- bl sub_8020B54
- ldr r2, _080218B4 @ =gUnknown_081D6BBC
- mov r4, r8
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- bl b_movescr_stack_push
- ldr r1, _080218B8 @ =gBattlescriptCurrInstr
- ldr r0, _080218BC @ =gUnknown_081D9B2D
- bl _0802229C
- .align 2, 0
-_080218AC: .4byte 0x02000000
-_080218B0: .4byte 0x0001600c
-_080218B4: .4byte gUnknown_081D6BBC
-_080218B8: .4byte gBattlescriptCurrInstr
-_080218BC: .4byte gUnknown_081D9B2D
-_080218C0:
- ldr r2, _080218D8 @ =gBattleMoves
- ldr r0, _080218DC @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x4]
-_080218D2:
- ldr r5, _080218E0 @ =0x02000000
- mov r12, r5
- b _080218EE
- .align 2, 0
-_080218D8: .4byte gBattleMoves
-_080218DC: .4byte gCurrentMove
-_080218E0: .4byte 0x02000000
-_080218E4:
- mov r0, r10
- cmp r0, 0
- beq _080218EE
- bl _08022286
-_080218EE:
- ldr r0, _08021908 @ =0x0001600c
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0x11
- bls _080218FC
- bl _0802224E
-_080218FC:
- lsls r0, 2
- ldr r1, _0802190C @ =_08021910
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08021908: .4byte 0x0001600c
-_0802190C: .4byte _08021910
- .align 2, 0
-_08021910:
- .4byte _08021958
- .4byte _08021A34
- .4byte _08021AF0
- .4byte _08021B20
- .4byte _08021B44
- .4byte _08021B78
- .4byte _08021B9C
- .4byte _08021C40
- .4byte _08021C78
- .4byte _08021CA8
- .4byte _08021CCC
- .4byte _08021D18
- .4byte _08021DAC
- .4byte _08021E30
- .4byte _08021E70
- .4byte _08022068
- .4byte _080221C0
- .4byte _0802224E
-_08021958:
- ldr r5, _08021A08 @ =gBattleMons
- ldr r2, _08021A0C @ =gBankTarget
- ldrb r4, [r2]
- movs r6, 0x58
- adds r3, r4, 0
- muls r3, r6
- adds r0, r5, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 16
- ands r1, r0
- cmp r1, 0
- beq _080219FE
- adds r0, r3, r5
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _080219FE
- ldr r0, _08021A10 @ =gBankAttacker
- ldrb r1, [r0]
- cmp r1, r4
- beq _080219FE
- adds r0, r1, 0
- bl GetBankSide
- adds r4, r0, 0
- ldr r1, _08021A0C @ =gBankTarget
- ldrb r0, [r1]
- bl GetBankSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080219FE
- ldr r0, _08021A14 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _080219FE
- ldr r2, _08021A18 @ =gProtectStructs
- ldr r4, _08021A0C @ =gBankTarget
- ldrb r3, [r4]
- lsls r1, r3, 4
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _080219C8
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080219FE
-_080219C8:
- ldr r2, _08021A1C @ =gBattleMoves
- ldr r0, _08021A20 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080219FE
- adds r0, r3, 0
- muls r0, r6
- adds r1, r0, r5
- ldrb r2, [r1, 0x19]
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _080219FE
- adds r0, r2, 0x1
- strb r0, [r1, 0x19]
- bl b_movescr_stack_push_cursor
- ldr r1, _08021A24 @ =gBattlescriptCurrInstr
- ldr r0, _08021A28 @ =gUnknown_081D9132
- str r0, [r1]
- movs r5, 0x1
- mov r10, r5
-_080219FE:
- ldr r2, _08021A2C @ =0x02000000
- ldr r0, _08021A30 @ =0x0001600c
- adds r1, r2, r0
- b _08021E00
- .align 2, 0
-_08021A08: .4byte gBattleMons
-_08021A0C: .4byte gBankTarget
-_08021A10: .4byte gBankAttacker
-_08021A14: .4byte gBattleMoveFlags
-_08021A18: .4byte gProtectStructs
-_08021A1C: .4byte gBattleMoves
-_08021A20: .4byte gCurrentMove
-_08021A24: .4byte gBattlescriptCurrInstr
-_08021A28: .4byte gUnknown_081D9132
-_08021A2C: .4byte 0x02000000
-_08021A30: .4byte 0x0001600c
-_08021A34:
- ldr r2, _08021AD0 @ =gBattleMons
- ldr r1, _08021AD4 @ =gBankTarget
- ldrb r4, [r1]
- movs r3, 0x58
- mov r12, r3
- mov r3, r12
- muls r3, r4
- adds r7, r2, 0
- adds r7, 0x4C
- adds r6, r3, r7
- ldr r5, [r6]
- movs r0, 0x20
- ands r0, r5
- cmp r0, 0
- bne _08021A54
- b _08021DFA
-_08021A54:
- adds r0, r3, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08021A5E
- b _08021DFA
-_08021A5E:
- ldr r0, _08021AD8 @ =gBankAttacker
- ldrb r0, [r0]
- cmp r0, r4
- bne _08021A68
- b _08021DFA
-_08021A68:
- ldr r0, _08021ADC @ =gSpecialStatuses
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 2
- adds r0, 0xC
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _08021A7C
- b _08021DFA
-_08021A7C:
- ldr r0, _08021AE0 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08021A8A
- b _08021DFA
-_08021A8A:
- ldr r4, [sp, 0x4]
- cmp r4, 0xA
- beq _08021A92
- b _08021DFA
-_08021A92:
- movs r0, 0x21
- negs r0, r0
- ands r5, r0
- str r5, [r6]
- ldr r4, _08021AE4 @ =gActiveBank
- ldr r5, _08021AD4 @ =gBankTarget
- ldrb r0, [r5]
- strb r0, [r4]
- ldrb r0, [r5]
- mov r1, r12
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- bl b_movescr_stack_push_cursor
- ldr r1, _08021AE8 @ =gBattlescriptCurrInstr
- ldr r0, _08021AEC @ =gUnknown_081D955D
- str r0, [r1]
- movs r2, 0x1
- mov r10, r2
- b _08021DFA
- .align 2, 0
-_08021AD0: .4byte gBattleMons
-_08021AD4: .4byte gBankTarget
-_08021AD8: .4byte gBankAttacker
-_08021ADC: .4byte gSpecialStatuses
-_08021AE0: .4byte gBattleMoveFlags
-_08021AE4: .4byte gActiveBank
-_08021AE8: .4byte gBattlescriptCurrInstr
-_08021AEC: .4byte gUnknown_081D955D
-_08021AF0:
- ldr r0, _08021B14 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x7
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08021B0C
- movs r4, 0x1
- mov r10, r4
-_08021B0C:
- ldr r2, _08021B18 @ =0x02000000
- ldr r5, _08021B1C @ =0x0001600c
- adds r1, r2, r5
- b _08021E00
- .align 2, 0
-_08021B14: .4byte gBankTarget
-_08021B18: .4byte 0x02000000
-_08021B1C: .4byte 0x0001600c
-_08021B20:
- ldr r0, _08021B40 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x4
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _08021B3A
- b _08021DFA
-_08021B3A:
- movs r0, 0x1
- mov r10, r0
- b _08021DFA
- .align 2, 0
-_08021B40: .4byte gBankTarget
-_08021B44:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x5
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08021B68
- movs r4, 0x1
- mov r10, r4
- ldr r5, _08021B64 @ =0x02000000
- mov r12, r5
- b _0802224E
- .align 2, 0
-_08021B64: .4byte 0x02000000
-_08021B68:
- ldr r2, _08021B70 @ =0x02000000
- ldr r0, _08021B74 @ =0x0001600c
- adds r1, r2, r0
- b _08021E00
- .align 2, 0
-_08021B70: .4byte 0x02000000
-_08021B74: .4byte 0x0001600c
-_08021B78:
- ldr r0, _08021B98 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x8
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _08021B92
- b _08021DFA
-_08021B92:
- movs r1, 0x1
- mov r10, r1
- b _08021DFA
- .align 2, 0
-_08021B98: .4byte gBankAttacker
-_08021B9C:
- ldr r0, _08021C28 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _08021BE0
- ldr r4, [sp, 0x8]
- cmp r4, 0x1D
- bne _08021BE0
- ldr r0, _08021C2C @ =gUnknown_02024BE8
- ldrh r2, [r0]
- adds r7, r0, 0
- cmp r2, 0xA5
- beq _08021BE0
- ldr r5, [sp, 0xC]
- ldrh r1, [r5]
- cmp r1, 0
- beq _08021BC8
- ldr r0, _08021C30 @ =0x0000ffff
- cmp r1, r0
- bne _08021BE0
-_08021BC8:
- cmp r2, 0xE2
- bne _08021BDA
- ldr r0, _08021C34 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08021BDA
- b _08022244
-_08021BDA:
- ldrh r0, [r7]
- ldr r1, [sp, 0xC]
- strh r0, [r1]
-_08021BE0:
- movs r4, 0
- ldr r2, _08021C38 @ =gBattleMons
- ldr r3, _08021C3C @ =gBankAttacker
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r2, 0xC
- adds r0, r2
- ldrh r0, [r0]
- ldr r5, [sp, 0xC]
- ldrh r1, [r5]
- mov r9, r3
- cmp r0, r1
- beq _08021C18
- mov r6, r9
- movs r3, 0x58
- adds r5, r1, 0
-_08021C02:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08021C18
- lsls r0, r4, 1
- ldrb r1, [r6]
- muls r1, r3
- adds r0, r1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r5
- bne _08021C02
-_08021C18:
- cmp r4, 0x4
- beq _08021C1E
- b _08022244
-_08021C1E:
- movs r0, 0
- ldr r1, [sp, 0xC]
-_08021C22:
- strh r0, [r1]
- b _08022244
- .align 2, 0
-_08021C28: .4byte gHitMarker
-_08021C2C: .4byte gUnknown_02024BE8
-_08021C30: .4byte 0x0000ffff
-_08021C34: .4byte gBattleMoveFlags
-_08021C38: .4byte gBattleMons
-_08021C3C: .4byte gBankAttacker
-_08021C40:
- movs r4, 0
- ldr r0, _08021C6C @ =gNoOfAllBanks
- ldrb r2, [r0]
- cmp r4, r2
- blt _08021C4C
- b _08022244
-_08021C4C:
- movs r5, 0
- ldr r2, _08021C70 @ =0x020160f0
- ldr r3, _08021C74 @ =gBattleMons
-_08021C52:
- ldrh r1, [r2]
- cmp r1, 0
- beq _08021C5C
- strh r1, [r3, 0x2E]
- strh r5, [r2]
-_08021C5C:
- adds r2, 0x2
- adds r3, 0x58
- adds r4, 0x1
- ldrb r1, [r0]
- cmp r4, r1
- blt _08021C52
- b _08022244
- .align 2, 0
-_08021C6C: .4byte gNoOfAllBanks
-_08021C70: .4byte 0x020160f0
-_08021C74: .4byte gBattleMons
-_08021C78:
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- beq _08021C98
- movs r2, 0x1
- mov r10, r2
- ldr r3, _08021C94 @ =0x02000000
- mov r12, r3
- b _0802224E
- .align 2, 0
-_08021C94: .4byte 0x02000000
-_08021C98:
- ldr r2, _08021CA0 @ =0x02000000
- ldr r4, _08021CA4 @ =0x0001600c
- adds r1, r2, r4
- b _08021E00
- .align 2, 0
-_08021CA0: .4byte 0x02000000
-_08021CA4: .4byte 0x0001600c
-_08021CA8:
- movs r0, 0x4
- movs r1, 0
- movs r2, 0
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- beq _08021CBC
- movs r5, 0x1
- mov r10, r5
-_08021CBC:
- ldr r2, _08021CC4 @ =0x02000000
- ldr r0, _08021CC8 @ =0x0001600c
- adds r1, r2, r0
- b _08021E00
- .align 2, 0
-_08021CC4: .4byte 0x02000000
-_08021CC8: .4byte 0x0001600c
-_08021CCC:
- ldr r1, _08021D04 @ =gStatuses3
- ldr r0, _08021D08 @ =gBankAttacker
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021D0C @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08021CE2
- b _08021DFA
-_08021CE2:
- ldr r0, _08021D10 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08021CF0
- b _08021DFA
-_08021CF0:
- ldr r4, _08021D14 @ =gActiveBank
- strb r2, [r4]
- movs r0, 0
- movs r1, 0x1
- bl EmitSpriteInvisibility
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _08021DFA
- .align 2, 0
-_08021D04: .4byte gStatuses3
-_08021D08: .4byte gBankAttacker
-_08021D0C: .4byte 0x000400c0
-_08021D10: .4byte gHitMarker
-_08021D14: .4byte gActiveBank
-_08021D18:
- ldr r0, _08021D88 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _08021D44
- ldr r1, _08021D8C @ =gStatuses3
- ldr r0, _08021D90 @ =gBankAttacker
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021D94 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08021D44
- adds r0, r2, 0
- bl sub_8015660
- lsls r0, 24
- cmp r0, 0
- beq _08021D7E
-_08021D44:
- ldr r4, _08021D98 @ =gActiveBank
- ldr r5, _08021D90 @ =gBankAttacker
- ldrb r0, [r5]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- bl EmitSpriteInvisibility
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, _08021D8C @ =gStatuses3
- ldrb r2, [r5]
- lsls r2, 2
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08021D9C @ =0xfffbff3f
- ands r0, r1
- str r0, [r2]
- ldr r2, _08021DA0 @ =gSpecialStatuses
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08021D7E:
- ldr r2, _08021DA4 @ =0x02000000
- ldr r4, _08021DA8 @ =0x0001600c
- adds r1, r2, r4
- b _08021E00
- .align 2, 0
-_08021D88: .4byte gBattleMoveFlags
-_08021D8C: .4byte gStatuses3
-_08021D90: .4byte gBankAttacker
-_08021D94: .4byte 0x000400c0
-_08021D98: .4byte gActiveBank
-_08021D9C: .4byte 0xfffbff3f
-_08021DA0: .4byte gSpecialStatuses
-_08021DA4: .4byte 0x02000000
-_08021DA8: .4byte 0x0001600c
-_08021DAC:
- ldr r2, _08021E0C @ =gSpecialStatuses
- ldr r1, _08021E10 @ =gBankTarget
- ldrb r3, [r1]
- lsls r4, r3, 2
- adds r0, r4, r3
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _08021DFA
- ldr r0, _08021E14 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r3, r0
- bcs _08021DFA
- ldr r5, _08021E18 @ =gStatuses3
- adds r0, r4, r5
- ldr r0, [r0]
- ldr r1, _08021E1C @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08021DFA
- ldr r4, _08021E20 @ =gActiveBank
- strb r3, [r4]
- movs r0, 0
- movs r1, 0
- bl EmitSpriteInvisibility
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, _08021E10 @ =gBankTarget
- ldrb r2, [r0]
- lsls r2, 2
- adds r2, r5
- ldr r0, [r2]
- ldr r1, _08021E24 @ =0xfffbff3f
- ands r0, r1
- str r0, [r2]
-_08021DFA:
- ldr r2, _08021E28 @ =0x02000000
- ldr r3, _08021E2C @ =0x0001600c
- adds r1, r2, r3
-_08021E00:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r12, r2
- b _0802224E
- .align 2, 0
-_08021E0C: .4byte gSpecialStatuses
-_08021E10: .4byte gBankTarget
-_08021E14: .4byte gNoOfAllBanks
-_08021E18: .4byte gStatuses3
-_08021E1C: .4byte 0x000400c0
-_08021E20: .4byte gActiveBank
-_08021E24: .4byte 0xfffbff3f
-_08021E28: .4byte 0x02000000
-_08021E2C: .4byte 0x0001600c
-_08021E30:
- movs r4, 0
- ldr r0, _08021E60 @ =gNoOfAllBanks
- ldrb r5, [r0]
- cmp r4, r5
- blt _08021E3C
- b _08022244
-_08021E3C:
- ldr r2, _08021E64 @ =gDisableStructs
- ldr r5, _08021E68 @ =0xfeffffff
- adds r3, r0, 0
- ldr r1, _08021E6C @ =gUnknown_02024AD0
-_08021E44:
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- bne _08021E50
- ldr r0, [r1]
- ands r0, r5
- str r0, [r1]
-_08021E50:
- adds r2, 0x1C
- adds r1, 0x58
- adds r4, 0x1
- ldrb r0, [r3]
- cmp r4, r0
- blt _08021E44
- b _08022244
- .align 2, 0
-_08021E60: .4byte gNoOfAllBanks
-_08021E64: .4byte gDisableStructs
-_08021E68: .4byte 0xfeffffff
-_08021E6C: .4byte gUnknown_02024AD0
-_08021E70:
- ldr r1, _08021F2C @ =gHitMarker
- ldr r3, [r1]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r3
- ldr r2, _08021F30 @ =gBankAttacker
- mov r9, r2
- adds r5, r1, 0
- cmp r0, 0
- beq _08021E9A
- ldr r0, _08021F34 @ =gActiveBank
- ldrb r2, [r2]
- strb r2, [r0]
- ldr r1, _08021F38 @ =gBankTarget
- ldrb r0, [r1]
- mov r4, r9
- strb r0, [r4]
- strb r2, [r1]
- ldr r0, _08021F3C @ =0xffffefff
- ands r3, r0
- str r3, [r5]
-_08021E9A:
- ldr r1, _08021F40 @ =gBattleMoves
- ldr r2, _08021F44 @ =gUnknown_02024BE8
- ldrh r3, [r2]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- mov r8, r1
- adds r7, r2, 0
- cmp r0, 0x7F
- bne _08021EBE
- ldr r0, _08021F48 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08021ECA
-_08021EBE:
- ldr r1, _08021F4C @ =gUnknown_02024C2C
- mov r2, r9
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- strh r3, [r0]
-_08021ECA:
- ldr r0, _08021F50 @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _08021F54 @ =gBitTable
- mov r3, r9
- ldrb r4, [r3]
- lsls r0, r4, 2
- adds r0, r2
- ldr r3, [r0]
- ands r1, r3
- adds r6, r2, 0
- cmp r1, 0
- beq _08021EE4
- b _08022244
-_08021EE4:
- ldr r0, _08021F58 @ =0x000160a6
- add r0, r12
- ldrb r0, [r0]
- ands r0, r3
- cmp r0, 0
- beq _08021EF2
- b _08022244
-_08021EF2:
- ldrh r2, [r7]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0x7F
- bne _08021F04
- b _08022244
-_08021F04:
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _08021F68
- ldr r1, _08021F5C @ =gLastUsedMove
- lsls r0, r4, 1
- adds r0, r1
- strh r2, [r0]
- ldr r0, _08021F60 @ =gUnknown_02024C4C
- mov r4, r9
- ldrb r1, [r4]
- lsls r1, 1
- adds r1, r0
- ldr r0, _08021F64 @ =gCurrentMove
- ldrh r0, [r0]
- strh r0, [r1]
- b _08021F82
- .align 2, 0
-_08021F2C: .4byte gHitMarker
-_08021F30: .4byte gBankAttacker
-_08021F34: .4byte gActiveBank
-_08021F38: .4byte gBankTarget
-_08021F3C: .4byte 0xffffefff
-_08021F40: .4byte gBattleMoves
-_08021F44: .4byte gUnknown_02024BE8
-_08021F48: .4byte gBattleMoveFlags
-_08021F4C: .4byte gUnknown_02024C2C
-_08021F50: .4byte gAbsentBankFlags
-_08021F54: .4byte gBitTable
-_08021F58: .4byte 0x000160a6
-_08021F5C: .4byte gLastUsedMove
-_08021F60: .4byte gUnknown_02024C4C
-_08021F64: .4byte gCurrentMove
-_08021F68:
- ldr r1, _08021FD0 @ =gLastUsedMove
- lsls r0, r4, 1
- adds r0, r1
- ldr r1, _08021FD4 @ =0x0000ffff
- strh r1, [r0]
- ldr r1, _08021FD8 @ =gUnknown_02024C4C
- mov r2, r9
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0]
-_08021F82:
- ldr r2, _08021FDC @ =gBankTarget
- ldrb r3, [r2]
- lsls r0, r3, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r0, 28
- ldr r1, [r5]
- ands r1, r0
- cmp r1, 0
- bne _08021FA0
- ldr r0, _08021FE0 @ =gUnknown_02024C5C
- adds r0, r3, r0
- mov r3, r9
- ldrb r1, [r3]
- strb r1, [r0]
-_08021FA0:
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _0802204C
- ldr r0, _08021FE4 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0802204C
- ldrh r2, [r7]
- ldr r0, _08021FD4 @ =0x0000ffff
- cmp r2, r0
- bne _08021FEC
- ldr r1, _08021FE8 @ =gMoveHitWith
- ldr r4, _08021FDC @ =gBankTarget
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- b _08022244
- .align 2, 0
-_08021FD0: .4byte gLastUsedMove
-_08021FD4: .4byte 0x0000ffff
-_08021FD8: .4byte gUnknown_02024C4C
-_08021FDC: .4byte gBankTarget
-_08021FE0: .4byte gUnknown_02024C5C
-_08021FE4: .4byte gBattleMoveFlags
-_08021FE8: .4byte gMoveHitWith
-_08021FEC:
- ldr r0, _08022014 @ =gMoveHitWith
- ldr r5, _08022018 @ =gBankTarget
- ldrb r1, [r5]
- lsls r1, 1
- adds r1, r0
- ldr r4, _0802201C @ =gCurrentMove
- ldrh r0, [r4]
- strh r0, [r1]
- ldr r0, _08022020 @ =0x0001601c
- add r0, r12
- ldrb r3, [r0]
- cmp r3, 0
- beq _08022028
- ldr r0, _08022024 @ =gUnknown_02024C44
- ldrb r1, [r5]
- lsls r1, 1
- adds r1, r0
- movs r0, 0x3F
- ands r0, r3
- b _08021C22
- .align 2, 0
-_08022014: .4byte gMoveHitWith
-_08022018: .4byte gBankTarget
-_0802201C: .4byte gCurrentMove
-_08022020: .4byte 0x0001601c
-_08022024: .4byte gUnknown_02024C44
-_08022028:
- ldr r0, _08022044 @ =gUnknown_02024C44
- ldr r1, _08022048 @ =gBankTarget
- ldrb r2, [r1]
- lsls r2, 1
- adds r2, r0
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x2]
- strh r0, [r2]
- b _08022244
- .align 2, 0
-_08022044: .4byte gUnknown_02024C44
-_08022048: .4byte gBankTarget
-_0802204C:
- ldr r0, _0802205C @ =gMoveHitWith
- ldr r2, _08022060 @ =gBankTarget
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- ldr r0, _08022064 @ =0x0000ffff
- b _08021C22
- .align 2, 0
-_0802205C: .4byte gMoveHitWith
-_08022060: .4byte gBankTarget
-_08022064: .4byte 0x0000ffff
-_08022068:
- ldr r0, _0802212C @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r6, _08022130 @ =gBitTable
- ldr r2, _08022134 @ =gBankAttacker
- ldrb r5, [r2]
- lsls r0, r5, 2
- adds r0, r6
- ldr r4, [r0]
- ands r1, r4
- mov r9, r2
- cmp r1, 0
- beq _08022082
- b _08022244
-_08022082:
- ldr r0, _08022138 @ =0x000160a6
- add r0, r12
- ldrb r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _08022090
- b _08022244
-_08022090:
- ldr r1, _0802213C @ =gBattleMoves
- ldr r4, _08022140 @ =gUnknown_02024BE8
- ldrh r3, [r4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802215C
- ldr r0, _08022144 @ =gHitMarker
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 18
- ands r0, r1
- cmp r0, 0
- beq _0802215C
- ldr r2, _08022148 @ =gBankTarget
- ldrb r0, [r2]
- cmp r5, r0
- bne _080220C0
- b _08022244
-_080220C0:
- adds r2, r0, 0
- lsls r0, r2, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r0, 28
- ands r1, r0
- cmp r1, 0
- bne _0802215C
- ldr r0, _0802214C @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0802215C
- lsls r0, r2, 1
- ldr r5, _08022150 @ =0x000160ac
- adds r0, r5
- add r0, r12
- strb r3, [r0]
- ldr r0, _08022148 @ =gBankTarget
- ldrb r1, [r0]
- lsls r1, 1
- ldr r2, _08022154 @ =0x000160ad
- adds r1, r2
- add r1, r12
- ldrh r0, [r4]
- lsrs r0, 8
- strb r0, [r1]
- ldr r3, _08022148 @ =gBankTarget
- ldrb r2, [r3]
- lsls r2, 2
- mov r5, r9
- ldrb r0, [r5]
- lsrs r0, 1
- lsls r0, 1
- ldr r1, _08022158 @ =0x00016100
- adds r0, r1
- adds r2, r0
- add r2, r12
- ldrh r0, [r4]
- strb r0, [r2]
- ldrb r2, [r3]
- lsls r2, 2
- ldrb r0, [r5]
- lsrs r0, 1
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- adds r2, r0
- add r2, r12
- ldrh r0, [r4]
- lsrs r0, 8
- strb r0, [r2]
- b _08022244
- .align 2, 0
-_0802212C: .4byte gAbsentBankFlags
-_08022130: .4byte gBitTable
-_08022134: .4byte gBankAttacker
-_08022138: .4byte 0x000160a6
-_0802213C: .4byte gBattleMoves
-_08022140: .4byte gUnknown_02024BE8
-_08022144: .4byte gHitMarker
-_08022148: .4byte gBankTarget
-_0802214C: .4byte gBattleMoveFlags
-_08022150: .4byte 0x000160ac
-_08022154: .4byte 0x000160ad
-_08022158: .4byte 0x00016100
-_0802215C:
- mov r1, r9
- ldrb r0, [r1]
- ldr r2, _080221B4 @ =gBankTarget
- ldrb r2, [r2]
- cmp r0, r2
- beq _08022244
- ldr r3, _080221B4 @ =gBankTarget
- ldrb r0, [r3]
- lsls r0, 1
- ldr r4, _080221B8 @ =0x000160ac
- adds r0, r4
- add r0, r12
- movs r3, 0
- strb r3, [r0]
- ldr r5, _080221B4 @ =gBankTarget
- ldrb r0, [r5]
- lsls r0, 1
- ldr r1, _080221BC @ =0x000160ad
- adds r0, r1
- add r0, r12
- strb r3, [r0]
- ldrb r2, [r5]
- lsls r2, 2
- mov r4, r9
- ldrb r0, [r4]
- lsrs r0, 1
- lsls r0, 1
- adds r1, 0x53
- adds r0, r1
- adds r2, r0
- add r2, r12
- strb r3, [r2]
- ldrb r2, [r5]
- lsls r2, 2
- ldrb r0, [r4]
- lsrs r0, 1
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- adds r2, r0
- add r2, r12
- strb r3, [r2]
- b _08022244
- .align 2, 0
-_080221B4: .4byte gBankTarget
-_080221B8: .4byte 0x000160ac
-_080221BC: .4byte 0x000160ad
-_080221C0:
- ldr r5, _080222B0 @ =gHitMarker
- ldr r2, [r5]
- movs r0, 0x80
- lsls r0, 12
- ands r0, r2
- cmp r0, 0
- bne _08022244
- ldr r0, _080222B4 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08022244
- ldr r1, _080222B8 @ =gProtectStructs
- ldr r0, _080222BC @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- cmp r0, 0
- blt _08022244
- ldr r0, _080222C0 @ =gBattleMoves
- mov r9, r0
- ldr r1, _080222C4 @ =gCurrentMove
- mov r8, r1
- ldrh r0, [r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- add r1, r9
- ldrb r0, [r1, 0x6]
- cmp r0, 0x8
- bne _08022244
- movs r6, 0x80
- lsls r6, 2
- adds r4, r6, 0
- ands r4, r2
- cmp r4, 0
- bne _08022244
- ldr r7, _080222C8 @ =gBankTarget
- ldrb r0, [r7]
- bl GetBankIdentity
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080222CC @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0802223A
- bl _08021874
-_0802223A:
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- ldr r2, _080222D0 @ =0x02000000
- mov r12, r2
-_08022244:
- ldr r1, _080222D4 @ =0x0001600c
- add r1, r12
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0802224E:
- ldr r3, [sp, 0x10]
- cmp r3, 0x1
- bne _08022262
- mov r4, r10
- cmp r4, 0
- bne _08022262
- ldr r1, _080222D4 @ =0x0001600c
- add r1, r12
- movs r0, 0x11
- strb r0, [r1]
-_08022262:
- ldr r5, [sp, 0x10]
- cmp r5, 0x2
- bne _08022278
- ldr r1, _080222D4 @ =0x0001600c
- add r1, r12
- ldr r0, [sp, 0x14]
- ldrb r2, [r1]
- cmp r0, r2
- bne _08022278
- movs r0, 0x11
- strb r0, [r1]
-_08022278:
- ldr r0, _080222D4 @ =0x0001600c
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0x11
- beq _08022286
- bl _080218E4
-_08022286:
- ldr r0, _080222D4 @ =0x0001600c
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0x11
- bne _0802229E
- mov r3, r10
- cmp r3, 0
- bne _0802229E
- ldr r1, _080222D8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x3
-_0802229C:
- str r0, [r1]
-_0802229E:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080222B0: .4byte gHitMarker
-_080222B4: .4byte gBattleTypeFlags
-_080222B8: .4byte gProtectStructs
-_080222BC: .4byte gBankAttacker
-_080222C0: .4byte gBattleMoves
-_080222C4: .4byte gCurrentMove
-_080222C8: .4byte gBankTarget
-_080222CC: .4byte gBattleMons
-_080222D0: .4byte 0x02000000
-_080222D4: .4byte 0x0001600c
-_080222D8: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80217F8
-
- thumb_func_start atk4A_damageflags
-atk4A_damageflags: @ 80222DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- movs r5, 0
- ldr r2, _08022340 @ =gBattleMoves
- ldr r0, _08022344 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r8, r0
- ldr r2, _08022348 @ =gBattleMons
- ldr r3, _0802234C @ =gBankTarget
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r12, r2
- adds r7, r3, 0
- cmp r0, 0x1A
- bne _08022370
- mov r1, r8
- cmp r1, 0x4
- bne _08022370
- ldr r3, _08022350 @ =gLastUsedAbility
- strb r0, [r3]
- ldr r2, _08022354 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x9
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08022358 @ =gMoveHitWith
- ldrb r0, [r7]
- lsls r0, 1
- adds r0, r1
- strh r4, [r0]
- ldr r0, _0802235C @ =gBattleCommunication
- mov r2, r8
- strb r2, [r0, 0x6]
- ldrb r0, [r7]
- ldrb r1, [r3]
- bl RecordAbilityBattle
- b _08022452
- .align 2, 0
-_08022340: .4byte gBattleMoves
-_08022344: .4byte gCurrentMove
-_08022348: .4byte gBattleMons
-_0802234C: .4byte gBankTarget
-_08022350: .4byte gLastUsedAbility
-_08022354: .4byte gBattleMoveFlags
-_08022358: .4byte gMoveHitWith
-_0802235C: .4byte gBattleCommunication
-_08022360:
- ldr r0, _0802236C @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
- b _08022452
- .align 2, 0
-_0802236C: .4byte gBattleMoveFlags
-_08022370:
- ldr r1, _0802237C @ =gTypeEffectiveness
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r6, r1, 0
- b _08022432
- .align 2, 0
-_0802237C: .4byte gTypeEffectiveness
-_08022380:
- adds r0, r5, r6
- ldrb r0, [r0]
- cmp r0, r8
- bne _0802242C
- adds r2, r5, 0x1
- adds r3, r2, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r0, 0x21
- ldrb r1, [r3]
- adds r3, r2, 0
- ldrb r0, [r0]
- cmp r1, r0
- bne _080223BE
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r1, [r0]
- cmp r1, 0
- beq _08022360
- cmp r1, 0x5
- bne _080223B2
- movs r0, 0x4
- orrs r4, r0
-_080223B2:
- cmp r1, 0x14
- bne _080223BE
- movs r0, 0x2
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_080223BE:
- adds r2, r3, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0802242C
- adds r0, 0x21
- ldrb r1, [r0]
- cmp r1, r2
- beq _080223E6
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0
- beq _08022360
-_080223E6:
- cmp r1, r2
- beq _080223FC
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _080223FC
- movs r0, 0x4
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_080223FC:
- adds r2, r3, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0802242C
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0802242C
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0802242C
- movs r0, 0x2
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_0802242C:
- adds r5, 0x3
- adds r0, r5, r6
- ldrb r0, [r0]
-_08022432:
- cmp r0, 0xFF
- beq _08022452
- cmp r0, 0xFE
- bne _08022380
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- mov r1, r12
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0802242C
-_08022452:
- ldr r2, _08022500 @ =gBattleMons
- ldr r0, _08022504 @ =gBankTarget
- mov r8, r0
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r6, [r0]
- cmp r6, 0x19
- bne _080224CE
- movs r5, 0x29
- ands r5, r4
- cmp r5, 0
- bne _080224CE
- ldr r0, _08022508 @ =gBankAttacker
- ldrb r0, [r0]
- ldr r7, _0802250C @ =gCurrentMove
- ldrh r1, [r7]
- bl move_weather_interaction
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _080224CE
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08022494
- movs r0, 0x6
- ands r4, r0
- cmp r4, 0x6
- bne _080224CE
-_08022494:
- ldr r2, _08022510 @ =gBattleMoves
- ldrh r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080224CE
- ldr r3, _08022514 @ =gLastUsedAbility
- strb r6, [r3]
- ldr r2, _08022518 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802251C @ =gMoveHitWith
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- strh r5, [r0]
- ldr r1, _08022520 @ =gBattleCommunication
- movs r0, 0x3
- strb r0, [r1, 0x6]
- ldrb r0, [r2]
- ldrb r1, [r3]
- bl RecordAbilityBattle
-_080224CE:
- ldr r0, _08022518 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080224EC
- ldr r2, _08022524 @ =gProtectStructs
- ldr r0, _08022508 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 4
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1, 0x1]
-_080224EC:
- ldr r1, _08022528 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08022500: .4byte gBattleMons
-_08022504: .4byte gBankTarget
-_08022508: .4byte gBankAttacker
-_0802250C: .4byte gCurrentMove
-_08022510: .4byte gBattleMoves
-_08022514: .4byte gLastUsedAbility
-_08022518: .4byte gBattleMoveFlags
-_0802251C: .4byte gMoveHitWith
-_08022520: .4byte gBattleCommunication
-_08022524: .4byte gProtectStructs
-_08022528: .4byte gBattlescriptCurrInstr
- thumb_func_end atk4A_damageflags
-
- thumb_func_start atk4B_cmd4b
-atk4B_cmd4b: @ 802252C
- push {r4,lr}
- ldr r4, _08022568 @ =gActiveBank
- ldr r0, _0802256C @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r2, _08022570 @ =gHitMarker
- ldr r1, _08022574 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _0802255A
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x06_a
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_0802255A:
- ldr r1, _08022578 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08022568: .4byte gActiveBank
-_0802256C: .4byte gBankAttacker
-_08022570: .4byte gHitMarker
-_08022574: .4byte gBitTable
-_08022578: .4byte gBattlescriptCurrInstr
- thumb_func_end atk4B_cmd4b
-
- thumb_func_start atk4C_switch1
-atk4C_switch1: @ 802257C
- push {r4-r6,lr}
- ldr r0, _080225D4 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _080225CC
- ldr r5, _080225D8 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _080225DC @ =gActiveBank
- strb r0, [r4]
- ldr r3, _080225E0 @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r3
- ldr r2, _080225E4 @ =0x02000000
- ldr r6, _080225E8 @ =0x00016068
- adds r0, r6
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1]
- ldr r1, _080225EC @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- movs r0, 0
- movs r1, 0
- bl EmitGetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_080225CC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080225D4: .4byte gBattleExecBuffer
-_080225D8: .4byte gBattlescriptCurrInstr
-_080225DC: .4byte gActiveBank
-_080225E0: .4byte gBattlePartyID
-_080225E4: .4byte 0x02000000
-_080225E8: .4byte 0x00016068
-_080225EC: .4byte gBitTable
- thumb_func_end atk4C_switch1
-
- thumb_func_start sub_80225F0
-sub_80225F0: @ 80225F0
- push {r4-r7,lr}
- sub sp, 0x58
- ldr r0, _0802274C @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _080225FE
- b _08022744
-_080225FE:
- ldr r0, _08022750 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08022754 @ =gActiveBank
- strb r0, [r4]
- ldr r6, _08022758 @ =gBattleMons
- ldrb r0, [r4]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- adds r1, r6
- mov r0, sp
- movs r2, 0x58
- bl memcpy
- ldrb r0, [r4]
- muls r0, r5
- adds r3, r0, r6
- movs r2, 0
- ldr r5, _0802275C @ =gBattleBufferB
- adds r7, r4, 0
-_0802262C:
- adds r0, r3, r2
- ldrb r1, [r4]
- lsls r1, 9
- adds r1, 0x4
- adds r1, r2, r1
- adds r1, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x57
- bls _0802262C
- ldr r4, _08022758 @ =gBattleMons
- ldrb r0, [r7]
- movs r6, 0x58
- adds r2, r0, 0
- muls r2, r6
- adds r2, r4
- ldr r3, _08022760 @ =gBaseStats
- ldrh r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x6]
- adds r2, 0x21
- strb r0, [r2]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r4
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x7]
- adds r1, 0x22
- strb r0, [r1]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r4
- ldrh r0, [r1]
- ldrb r1, [r1, 0x17]
- lsrs r1, 7
- bl GetAbilityBySpecies
- ldrb r1, [r7]
- muls r1, r6
- adds r1, r4
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r7]
- bl GetBankSide
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08022764 @ =gWishFutureKnock
- adds r0, 0x29
- adds r0, r2, r0
- ldrb r1, [r0]
- ldr r3, _08022768 @ =gBitTable
- ldr r2, _0802276C @ =gBattlePartyID
- ldrb r5, [r7]
- lsls r0, r5, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- mov r12, r4
- cmp r1, 0
- beq _080226CA
- adds r0, r5, 0
- muls r0, r6
- add r0, r12
- movs r1, 0
- strh r1, [r0, 0x2E]
-_080226CA:
- ldr r2, _08022770 @ =gBattleMoves
- ldr r0, _08022774 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7F
- bne _08022710
- movs r2, 0
- adds r4, r7, 0
- movs r6, 0x58
- mov r5, r12
- adds r5, 0x18
- add r3, sp, 0x18
-_080226EA:
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r2, r1
- adds r1, r5
- adds r0, r3, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _080226EA
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- mov r1, r12
- adds r1, 0x50
- adds r0, r1
- ldr r1, [sp, 0x50]
- str r1, [r0]
-_08022710:
- bl SwitchInClearStructs
- ldr r0, _08022778 @ =0x02000000
- ldr r3, _08022754 @ =gActiveBank
- ldrb r2, [r3]
- ldr r1, _0802277C @ =0x00016003
- adds r0, r1
- strb r2, [r0]
- ldr r1, _08022780 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- ldr r2, _0802276C @ =gBattlePartyID
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08022750 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08022744:
- add sp, 0x58
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802274C: .4byte gBattleExecBuffer
-_08022750: .4byte gBattlescriptCurrInstr
-_08022754: .4byte gActiveBank
-_08022758: .4byte gBattleMons
-_0802275C: .4byte gBattleBufferB
-_08022760: .4byte gBaseStats
-_08022764: .4byte gWishFutureKnock
-_08022768: .4byte gBitTable
-_0802276C: .4byte gBattlePartyID
-_08022770: .4byte gBattleMoves
-_08022774: .4byte gCurrentMove
-_08022778: .4byte 0x02000000
-_0802277C: .4byte 0x00016003
-_08022780: .4byte gBattleTextBuff1
- thumb_func_end sub_80225F0
-
- thumb_func_start sub_8022784
-sub_8022784: @ 8022784
- push {r4,r5,lr}
- ldr r0, _0802280C @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _08022806
- ldr r0, _08022810 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08022814 @ =gActiveBank
- strb r0, [r4]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080227D0
- ldr r0, _08022818 @ =gBattleTypeFlags
- ldrh r1, [r0]
- ldr r0, _0802281C @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _080227D0
- ldr r2, _08022820 @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl GetNationalPokedexFlag
-_080227D0:
- ldr r2, _08022824 @ =gAbsentBankFlags
- ldr r1, _08022828 @ =gBitTable
- ldr r5, _08022814 @ =gActiveBank
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
- ldr r1, _0802282C @ =gBattlePartyID
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrb r1, [r0]
- ldr r4, _08022810 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r2, [r0, 0x2]
- movs r0, 0
- bl sub_800C704
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
-_08022806:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802280C: .4byte gBattleExecBuffer
-_08022810: .4byte gBattlescriptCurrInstr
-_08022814: .4byte gActiveBank
-_08022818: .4byte gBattleTypeFlags
-_0802281C: .4byte 0x00000902
-_08022820: .4byte gBattleMons
-_08022824: .4byte gAbsentBankFlags
-_08022828: .4byte gBitTable
-_0802282C: .4byte gBattlePartyID
- thumb_func_end sub_8022784
-
- thumb_func_start sub_8022830
-sub_8022830: @ 8022830
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _08022894 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- movs r0, 0x7F
- ands r0, r1
- bl sub_8015150
- ldr r3, _08022898 @ =gActiveBank
- strb r0, [r3]
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080228A8
- ldr r1, _0802289C @ =gBattleMons
- ldrb r3, [r3]
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080228A0 @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- bne _0802287C
- ldr r1, _080228A4 @ =gStatuses3
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _080228A8
-_0802287C:
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08022A2C
- .align 2, 0
-_08022894: .4byte gBattlescriptCurrInstr
-_08022898: .4byte gActiveBank
-_0802289C: .4byte gBattleMons
-_080228A0: .4byte 0x0400e000
-_080228A4: .4byte gStatuses3
-_080228A8:
- ldr r5, _08022934 @ =gBattleTypeFlags
- ldrh r1, [r5]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08022948
- ldr r4, _08022938 @ =gActiveBank
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0802293C @ =gPlayerParty
- mov r8, r1
- cmp r0, 0x1
- bne _080228CC
- ldr r0, _08022940 @ =gEnemyParty
- mov r8, r0
-_080228CC:
- movs r5, 0
- ldrb r0, [r4]
- bl sub_803FC34
- lsls r0, 24
- lsrs r0, 24
- bl sub_803FBFC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _080228E6
- movs r5, 0x3
-_080228E6:
- adds r6, r5, 0x3
- cmp r5, r6
- bge _0802292E
- ldr r7, _08022944 @ =gBattlePartyID
-_080228EE:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08022928
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08022928
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08022928
- ldr r0, _08022938 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- cmp r0, r5
- bne _0802292E
-_08022928:
- adds r5, 0x1
- cmp r5, r6
- blt _080228EE
-_0802292E:
- cmp r5, r6
- beq _080229FC
- b _08022A24
- .align 2, 0
-_08022934: .4byte gBattleTypeFlags
-_08022938: .4byte gActiveBank
-_0802293C: .4byte gPlayerParty
-_08022940: .4byte gEnemyParty
-_08022944: .4byte gBattlePartyID
-_08022948:
- ldr r0, _08022978 @ =gActiveBank
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _08022988
- movs r0, 0x1
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r1, [r5]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0802297C
- movs r0, 0x3
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r6, r0, 24
- b _0802297E
- .align 2, 0
-_08022978: .4byte gActiveBank
-_0802297C:
- adds r6, r7, 0
-_0802297E:
- ldr r0, _08022984 @ =gEnemyParty
- mov r8, r0
- b _080229AE
- .align 2, 0
-_08022984: .4byte gEnemyParty
-_08022988:
- movs r0, 0
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080229A8
- movs r0, 0x2
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r6, r0, 24
- b _080229AA
-_080229A8:
- adds r6, r7, 0
-_080229AA:
- ldr r1, _08022A18 @ =gPlayerParty
- mov r8, r1
-_080229AE:
- movs r5, 0
-_080229B0:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080229F2
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080229F2
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080229F2
- ldr r1, _08022A1C @ =gBattlePartyID
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- beq _080229F2
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- bne _080229F8
-_080229F2:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080229B0
-_080229F8:
- cmp r5, 0x6
- bne _08022A24
-_080229FC:
- ldr r3, _08022A20 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08022A2C
- .align 2, 0
-_08022A18: .4byte gPlayerParty
-_08022A1C: .4byte gBattlePartyID
-_08022A20: .4byte gBattlescriptCurrInstr
-_08022A24:
- ldr r1, _08022A38 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
-_08022A2C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08022A38: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8022830
-
- thumb_func_start sub_8022A3C
-sub_8022A3C: @ 8022A3C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r4, _08022A84 @ =0x02000000
- ldr r5, _08022A88 @ =gActiveBank
- ldrb r0, [r5]
- ldr r3, _08022A8C @ =0x00016064
- adds r1, r0, r3
- adds r1, r4
- ldr r3, _08022A90 @ =gBattlePartyID
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- ldr r1, _08022A94 @ =0x0001606c
- adds r4, r1
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08022A84: .4byte 0x02000000
-_08022A88: .4byte gActiveBank
-_08022A8C: .4byte 0x00016064
-_08022A90: .4byte gBattlePartyID
-_08022A94: .4byte 0x0001606c
- thumb_func_end sub_8022A3C
-
- thumb_func_start atk50_openpartyscreen
-atk50_openpartyscreen: @ 8022A98
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r7, 0
- movs r0, 0
- mov r9, r0
- ldr r6, _08022B44 @ =gBattlescriptCurrInstr
- ldr r1, [r6]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- orrs r2, r0
- mov r8, r2
- ldrb r2, [r1, 0x1]
- adds r0, r2, 0
- mov r12, r6
- cmp r0, 0x5
- beq _08022ACE
- b _08022F74
-_08022ACE:
- ldr r0, _08022B48 @ =gBattleTypeFlags
- ldrh r0, [r0]
- movs r1, 0x41
- ands r1, r0
- cmp r1, 0x1
- beq _08022BBC
- ldr r1, _08022B4C @ =gActiveBank
- strb r7, [r1]
- ldr r0, _08022B50 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r7, r0
- bcc _08022AE8
- b _08022F62
-_08022AE8:
- ldr r7, _08022B54 @ =gHitMarker
- ldr r6, _08022B58 @ =gBitTable
- adds r4, r1, 0
- ldr r0, _08022B5C @ =gAbsentBankFlags
- mov r8, r0
-_08022AF2:
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r7]
- ands r0, r1
- cmp r0, 0
- beq _08022B94
- adds r0, r2, 0
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022B60
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- mov r2, r8
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r7]
- bics r0, r1
- str r0, [r7]
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _08022BA2
- .align 2, 0
-_08022B44: .4byte gBattlescriptCurrInstr
-_08022B48: .4byte gBattleTypeFlags
-_08022B4C: .4byte gActiveBank
-_08022B50: .4byte gNoOfAllBanks
-_08022B54: .4byte gHitMarker
-_08022B58: .4byte gBitTable
-_08022B5C: .4byte gAbsentBankFlags
-_08022B60:
- ldr r5, _08022B90 @ =gSpecialStatuses
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022BA2
- movs r0, 0x6
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022BA2
- .align 2, 0
-_08022B90: .4byte gSpecialStatuses
-_08022B94:
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08022BA2:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08022BB8 @ =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08022AF2
- b _08022F62
- .align 2, 0
-_08022BB8: .4byte gNoOfAllBanks
-_08022BBC:
- ands r1, r0
- cmp r1, 0
- bne _08022BC4
- b _08022F62
-_08022BC4:
- ldr r0, _08022C1C @ =gHitMarker
- mov r8, r0
- ldr r0, [r0]
- lsrs r5, r0, 28
- ldr r6, _08022C20 @ =gBitTable
- ldr r0, [r6]
- ands r0, r5
- cmp r0, 0
- beq _08022C7E
- ldr r4, _08022C24 @ =gActiveBank
- strb r7, [r4]
- movs r0, 0
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022C2C
- ldr r2, _08022C28 @ =gAbsentBankFlags
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- mov r2, r8
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _08022C7E
- .align 2, 0
-_08022C1C: .4byte gHitMarker
-_08022C20: .4byte gBitTable
-_08022C24: .4byte gActiveBank
-_08022C28: .4byte gAbsentBankFlags
-_08022C2C:
- ldr r6, _08022C60 @ =gSpecialStatuses
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022C6C
- ldr r0, _08022C64 @ =0x02000000
- ldr r1, _08022C68 @ =0x0001606a
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022C7E
- .align 2, 0
-_08022C60: .4byte gSpecialStatuses
-_08022C64: .4byte 0x02000000
-_08022C68: .4byte 0x0001606a
-_08022C6C:
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- movs r2, 0x1
- mov r9, r2
-_08022C7E:
- ldr r6, _08022CD8 @ =gBitTable
- ldr r0, [r6, 0x8]
- ands r0, r5
- cmp r0, 0
- beq _08022D40
- ldr r0, [r6]
- ands r0, r5
- cmp r0, 0
- bne _08022D40
- ldr r4, _08022CDC @ =gActiveBank
- movs r0, 0x2
- strb r0, [r4]
- movs r0, 0x2
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022CE8
- ldr r2, _08022CE0 @ =gAbsentBankFlags
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _08022CE4 @ =gHitMarker
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _08022D40
- .align 2, 0
-_08022CD8: .4byte gBitTable
-_08022CDC: .4byte gActiveBank
-_08022CE0: .4byte gAbsentBankFlags
-_08022CE4: .4byte gHitMarker
-_08022CE8:
- ldr r6, _08022D1C @ =gSpecialStatuses
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022D28
- ldr r0, _08022D20 @ =0x02000000
- ldr r1, _08022D24 @ =0x00016068
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022D40
- .align 2, 0
-_08022D1C: .4byte gSpecialStatuses
-_08022D20: .4byte 0x02000000
-_08022D24: .4byte 0x00016068
-_08022D28:
- movs r0, 0x1
- mov r2, r9
- ands r0, r2
- cmp r0, 0
- bne _08022D40
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08022D40:
- ldr r6, _08022D90 @ =gBitTable
- ldr r0, [r6, 0x4]
- ands r0, r5
- cmp r0, 0
- beq _08022DF6
- ldr r4, _08022D94 @ =gActiveBank
- movs r0, 0x1
- strb r0, [r4]
- movs r0, 0x1
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022DA0
- ldr r2, _08022D98 @ =gAbsentBankFlags
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _08022D9C @ =gHitMarker
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _08022DF6
- .align 2, 0
-_08022D90: .4byte gBitTable
-_08022D94: .4byte gActiveBank
-_08022D98: .4byte gAbsentBankFlags
-_08022D9C: .4byte gHitMarker
-_08022DA0:
- ldr r6, _08022DD4 @ =gSpecialStatuses
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022DE0
- ldr r0, _08022DD8 @ =0x02000000
- ldr r1, _08022DDC @ =0x0001606b
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022DF6
- .align 2, 0
-_08022DD4: .4byte gSpecialStatuses
-_08022DD8: .4byte 0x02000000
-_08022DDC: .4byte 0x0001606b
-_08022DE0:
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- movs r0, 0x2
- mov r2, r9
- orrs r2, r0
- mov r9, r2
-_08022DF6:
- ldr r6, _08022E50 @ =gBitTable
- ldr r0, [r6, 0xC]
- ands r0, r5
- cmp r0, 0
- beq _08022EB8
- ldr r0, [r6, 0x4]
- ands r0, r5
- cmp r0, 0
- bne _08022EB8
- ldr r4, _08022E54 @ =gActiveBank
- movs r0, 0x3
- strb r0, [r4]
- movs r0, 0x3
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022E60
- ldr r2, _08022E58 @ =gAbsentBankFlags
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _08022E5C @ =gHitMarker
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _08022EB8
- .align 2, 0
-_08022E50: .4byte gBitTable
-_08022E54: .4byte gActiveBank
-_08022E58: .4byte gAbsentBankFlags
-_08022E5C: .4byte gHitMarker
-_08022E60:
- ldr r6, _08022E94 @ =gSpecialStatuses
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022EA0
- ldr r0, _08022E98 @ =0x02000000
- ldr r1, _08022E9C @ =0x00016069
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022EB8
- .align 2, 0
-_08022E94: .4byte gSpecialStatuses
-_08022E98: .4byte 0x02000000
-_08022E9C: .4byte 0x00016069
-_08022EA0:
- movs r0, 0x2
- mov r2, r9
- ands r2, r0
- cmp r2, 0
- bne _08022EB8
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08022EB8:
- ldr r1, _08022EE8 @ =gSpecialStatuses
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022F0C
- adds r0, r1, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- blt _08022F0C
- cmp r5, 0
- beq _08022F0C
- ldr r0, _08022EEC @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r0, _08022EF0 @ =gBitTable
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08022EF8
- ldr r1, _08022EF4 @ =gActiveBank
- movs r0, 0x2
- strb r0, [r1]
- b _08022EFC
- .align 2, 0
-_08022EE8: .4byte gSpecialStatuses
-_08022EEC: .4byte gAbsentBankFlags
-_08022EF0: .4byte gBitTable
-_08022EF4: .4byte gActiveBank
-_08022EF8:
- ldr r0, _08022F3C @ =gActiveBank
- strb r1, [r0]
-_08022EFC:
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldr r0, _08022F3C @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
-_08022F0C:
- ldr r1, _08022F40 @ =gSpecialStatuses
- ldrb r0, [r1, 0x14]
- lsls r0, 25
- cmp r0, 0
- blt _08022F62
- adds r0, r1, 0
- adds r0, 0x3C
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- blt _08022F62
- cmp r5, 0
- beq _08022F62
- ldr r0, _08022F44 @ =gAbsentBankFlags
- ldrb r0, [r0]
- ldr r1, _08022F48 @ =gBitTable
- ldr r1, [r1, 0x4]
- ands r0, r1
- cmp r0, 0
- beq _08022F4C
- ldr r1, _08022F3C @ =gActiveBank
- movs r0, 0x3
- b _08022F50
- .align 2, 0
-_08022F3C: .4byte gActiveBank
-_08022F40: .4byte gSpecialStatuses
-_08022F44: .4byte gAbsentBankFlags
-_08022F48: .4byte gBitTable
-_08022F4C:
- ldr r1, _08022F6C @ =gActiveBank
- movs r0, 0x1
-_08022F50:
- strb r0, [r1]
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldr r0, _08022F6C @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
-_08022F62:
- ldr r1, _08022F70 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- b _08023302
- .align 2, 0
-_08022F6C: .4byte gActiveBank
-_08022F70: .4byte gBattlescriptCurrInstr
-_08022F74:
- cmp r0, 0x6
- beq _08022F7A
- b _08023170
-_08022F7A:
- ldr r0, _08022FF0 @ =gBattleTypeFlags
- ldrh r2, [r0]
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- beq _08022F88
- b _0802310C
-_08022F88:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _08022F92
- b _0802310C
-_08022F92:
- ldr r7, _08022FF4 @ =gHitMarker
- ldr r0, [r7]
- lsrs r5, r0, 28
- ldr r4, _08022FF8 @ =gBitTable
- ldr r0, [r4, 0x8]
- ands r0, r5
- cmp r0, 0
- beq _0802303A
- ldr r0, [r4]
- ands r0, r5
- cmp r0, 0
- beq _0802303A
- ldr r6, _08022FFC @ =gActiveBank
- movs r0, 0x2
- strb r0, [r6]
- ldr r0, _08023000 @ =gBattleBufferB
- ldrb r1, [r0, 0x1]
- movs r0, 0x2
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08023008
- ldr r2, _08023004 @ =gAbsentBankFlags
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r4
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r7]
- bics r0, r1
- str r0, [r7]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r6]
- bl MarkBufferBankForExecution
- b _0802303A
- .align 2, 0
-_08022FF0: .4byte gBattleTypeFlags
-_08022FF4: .4byte gHitMarker
-_08022FF8: .4byte gBitTable
-_08022FFC: .4byte gActiveBank
-_08023000: .4byte gBattleBufferB
-_08023004: .4byte gAbsentBankFlags
-_08023008:
- ldr r4, _08023098 @ =gSpecialStatuses
- ldrb r0, [r6]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _0802303A
- ldr r0, _0802309C @ =0x02000000
- ldr r1, _080230A0 @ =0x00016068
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
-_0802303A:
- ldr r4, _080230A4 @ =gBitTable
- ldr r0, [r4, 0xC]
- ands r0, r5
- cmp r0, 0
- beq _080230EE
- ldr r0, [r4, 0x4]
- ands r5, r0
- cmp r5, 0
- beq _080230EE
- ldr r5, _080230A8 @ =gActiveBank
- movs r0, 0x3
- strb r0, [r5]
- ldr r0, _080230AC @ =gBattleBufferB
- ldr r2, _080230B0 @ =0x00000201
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x3
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _080230BC
- ldr r2, _080230B4 @ =gAbsentBankFlags
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _080230B8 @ =gHitMarker
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- b _080230EE
- .align 2, 0
-_08023098: .4byte gSpecialStatuses
-_0802309C: .4byte 0x02000000
-_080230A0: .4byte 0x00016068
-_080230A4: .4byte gBitTable
-_080230A8: .4byte gActiveBank
-_080230AC: .4byte gBattleBufferB
-_080230B0: .4byte 0x00000201
-_080230B4: .4byte gAbsentBankFlags
-_080230B8: .4byte gHitMarker
-_080230BC:
- ldr r4, _080230FC @ =gSpecialStatuses
- ldrb r0, [r5]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _080230EE
- ldr r0, _08023100 @ =0x02000000
- ldr r1, _08023104 @ =0x00016069
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
-_080230EE:
- ldr r1, _08023108 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- mov r12, r1
- b _08023110
- .align 2, 0
-_080230FC: .4byte gSpecialStatuses
-_08023100: .4byte 0x02000000
-_08023104: .4byte 0x00016069
-_08023108: .4byte gBattlescriptCurrInstr
-_0802310C:
- adds r0, r1, 0x6
- str r0, [r6]
-_08023110:
- ldr r0, _08023160 @ =gHitMarker
- ldr r0, [r0]
- lsrs r5, r0, 28
- ldr r1, _08023164 @ =gBank1
- movs r0, 0
- strb r0, [r1]
- ldr r4, _08023168 @ =gBitTable
- ldr r2, [r4]
- ands r2, r5
- ldr r6, _0802316C @ =gNoOfAllBanks
- cmp r2, 0
- bne _0802314C
- adds r7, r6, 0
- ldrb r0, [r6]
- cmp r2, r0
- bcs _0802314C
- adds r3, r1, 0
-_08023132:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- ldrb r2, [r3]
- lsls r0, r2, 2
- adds r0, r4
- ldr r0, [r0]
- ands r0, r5
- cmp r0, 0
- bne _0802314C
- ldrb r0, [r7]
- cmp r2, r0
- bcc _08023132
-_0802314C:
- ldrb r0, [r1]
- ldrb r6, [r6]
- cmp r0, r6
- beq _08023156
- b _08023302
-_08023156:
- mov r1, r8
- mov r2, r12
- str r1, [r2]
- b _08023302
- .align 2, 0
-_08023160: .4byte gHitMarker
-_08023164: .4byte gBank1
-_08023168: .4byte gBitTable
-_0802316C: .4byte gNoOfAllBanks
-_08023170:
- movs r0, 0x80
- ands r0, r2
- movs r5, 0x1
- cmp r0, 0
- beq _0802317C
- movs r5, 0
-_0802317C:
- movs r0, 0x7F
- ands r0, r2
- bl sub_8015150
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080231A4 @ =gSpecialStatuses
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- bge _080231A8
- ldr r0, [r6]
- adds r0, 0x6
- str r0, [r6]
- b _08023302
- .align 2, 0
-_080231A4: .4byte gSpecialStatuses
-_080231A8:
- adds r0, r7, 0
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _080231F8
- ldr r2, _080231E8 @ =gActiveBank
- strb r7, [r2]
- ldr r3, _080231EC @ =gAbsentBankFlags
- ldr r4, _080231F0 @ =gBitTable
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r3]
- orrs r0, r1
- strb r0, [r3]
- ldr r3, _080231F4 @ =gHitMarker
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r4
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r3]
- bics r0, r1
- str r0, [r3]
- mov r0, r8
- str r0, [r6]
- b _08023302
- .align 2, 0
-_080231E8: .4byte gActiveBank
-_080231EC: .4byte gAbsentBankFlags
-_080231F0: .4byte gBitTable
-_080231F4: .4byte gHitMarker
-_080231F8:
- ldr r4, _080232A0 @ =gActiveBank
- strb r7, [r4]
- ldr r3, _080232A4 @ =0x02000000
- ldrb r0, [r4]
- ldr r2, _080232A8 @ =0x00016064
- adds r1, r0, r2
- adds r1, r3
- ldr r2, _080232AC @ =gBattlePartyID
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- ldr r1, _080232B0 @ =0x00016068
- adds r0, r1
- adds r0, r3
- ldrb r2, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- ldr r1, _080232B4 @ =0x0001606c
- adds r3, r1
- adds r0, r3
- str r0, [sp]
- movs r0, 0
- adds r1, r5, 0
- movs r3, 0
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r6]
- adds r0, 0x6
- str r0, [r6]
- ldrb r0, [r4]
- bl GetBankIdentity
- lsls r0, 24
- cmp r0, 0
- bne _0802325A
- ldr r1, _080232B8 @ =gBattleResults
- ldrb r0, [r1, 0x2]
- cmp r0, 0xFE
- bhi _0802325A
- adds r0, 0x1
- strb r0, [r1, 0x2]
-_0802325A:
- ldr r0, _080232BC @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080232C4
- ldr r1, _080232A0 @ =gActiveBank
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080232C0 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r0, 0
- beq _08023302
- adds r4, r1, 0
-_08023276:
- ldrb r0, [r4]
- cmp r0, r7
- beq _0802328A
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_0802328A:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _080232C0 @ =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08023276
- b _08023302
- .align 2, 0
-_080232A0: .4byte gActiveBank
-_080232A4: .4byte 0x02000000
-_080232A8: .4byte 0x00016064
-_080232AC: .4byte gBattlePartyID
-_080232B0: .4byte 0x00016068
-_080232B4: .4byte 0x0001606c
-_080232B8: .4byte gBattleResults
-_080232BC: .4byte gBattleTypeFlags
-_080232C0: .4byte gNoOfAllBanks
-_080232C4:
- adds r0, r7, 0
- bl GetBankIdentity
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- ldr r4, _08023310 @ =gActiveBank
- strb r0, [r4]
- ldr r0, _08023314 @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _08023318 @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080232F4
- movs r0, 0x2
- eors r3, r0
- strb r3, [r4]
-_080232F4:
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08023302:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023310: .4byte gActiveBank
-_08023314: .4byte gAbsentBankFlags
-_08023318: .4byte gBitTable
- thumb_func_end atk50_openpartyscreen
-
- thumb_func_start sub_802331C
-sub_802331C: @ 802331C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0802334C @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _0802332C
- b _080234FE
-_0802332C:
- ldr r4, _08023350 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r7, _08023354 @ =gActiveBank
- strb r0, [r7]
- ldr r0, [r4]
- ldrb r0, [r0, 0x2]
- cmp r0, 0x1
- beq _080233A0
- cmp r0, 0x1
- bgt _08023358
- cmp r0, 0
- beq _0802335E
- b _080234F6
- .align 2, 0
-_0802334C: .4byte gBattleExecBuffer
-_08023350: .4byte gBattlescriptCurrInstr
-_08023354: .4byte gActiveBank
-_08023358:
- cmp r0, 0x2
- beq _080233BC
- b _080234F6
-_0802335E:
- movs r3, 0
- ldr r2, _08023390 @ =gNoOfAllBanks
- ldrb r0, [r2]
- cmp r3, r0
- blt _0802336A
- b _080234F6
-_0802336A:
- ldr r0, _08023394 @ =0x02000000
- ldr r1, _08023398 @ =gBattleBufferB
- movs r5, 0x80
- lsls r5, 2
- adds r4, r2, 0
- ldr r6, _0802339C @ =0x00016068
- adds r2, r0, r6
-_08023378:
- ldrb r0, [r1]
- cmp r0, 0x22
- bne _08023382
- ldrb r0, [r1, 0x1]
- strb r0, [r2]
-_08023382:
- adds r1, r5
- adds r2, 0x1
- adds r3, 0x1
- ldrb r0, [r4]
- cmp r3, r0
- blt _08023378
- b _080234F6
- .align 2, 0
-_08023390: .4byte gNoOfAllBanks
-_08023394: .4byte 0x02000000
-_08023398: .4byte gBattleBufferB
-_0802339C: .4byte 0x00016068
-_080233A0:
- ldr r0, _080233B8 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080233AE
- b _080234F6
-_080233AE:
- ldrb r0, [r7]
- bl sub_8012258
- b _080234F6
- .align 2, 0
-_080233B8: .4byte gBattleTypeFlags
-_080233BC:
- ldr r1, _08023484 @ =gBattleCommunication
- ldr r4, _08023488 @ =gBattleBufferB
- ldrb r0, [r7]
- lsls r0, 9
- adds r2, r4, 0x1
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r6, _0802348C @ =0x02000000
- ldrb r0, [r7]
- ldr r3, _08023490 @ =0x00016068
- adds r1, r0, r3
- adds r1, r6
- lsls r0, 9
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _08023494 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080234A4
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- ldr r5, _08023498 @ =0x0001606c
- adds r1, r5
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- adds r1, r6
- lsls r0, 9
- adds r2, r4, 0x2
- mov r12, r2
- add r0, r12
- ldrb r2, [r0]
- movs r3, 0xF0
- adds r0, r3, 0
- ands r0, r2
- ldrb r2, [r1]
- orrs r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- ldr r2, _0802349C @ =0x0001606d
- adds r1, r2
- adds r1, r6
- lsls r0, 9
- adds r4, 0x3
- mov r8, r4
- add r0, r8
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r4, 0x2
- eors r0, r4
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- adds r1, r6
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- eors r0, r4
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- adds r1, r6
- ldrb r0, [r7]
- lsls r0, 9
- add r0, r12
- ldrb r0, [r0]
- ands r3, r0
- lsrs r3, 4
- ldrb r0, [r1]
- orrs r3, r0
- strb r3, [r1]
- ldrb r0, [r7]
- eors r4, r0
- lsls r1, r4, 1
- adds r1, r4
- ldr r3, _080234A0 @ =0x0001606e
- adds r1, r3
- adds r1, r6
- ldrb r0, [r7]
- lsls r0, 9
- add r0, r8
- ldrb r0, [r0]
- strb r0, [r1]
- b _080234AA
- .align 2, 0
-_08023484: .4byte gBattleCommunication
-_08023488: .4byte gBattleBufferB
-_0802348C: .4byte 0x02000000
-_08023490: .4byte 0x00016068
-_08023494: .4byte gBattleTypeFlags
-_08023498: .4byte 0x0001606c
-_0802349C: .4byte 0x0001606d
-_080234A0: .4byte 0x0001606e
-_080234A4:
- ldrb r0, [r7]
- bl sub_8012258
-_080234AA:
- ldr r1, _08023508 @ =gBattleTextBuff1
- movs r5, 0xFD
- strb r5, [r1]
- movs r0, 0x6
- strb r0, [r1, 0x1]
- ldr r4, _0802350C @ =gBattleMons
- ldr r3, _08023510 @ =gBankAttacker
- ldrb r0, [r3]
- movs r2, 0x58
- muls r0, r2
- adds r0, r4
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r3]
- muls r0, r2
- adds r0, r4
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r2, _08023514 @ =gBattleTextBuff2
- strb r5, [r2]
- movs r0, 0x7
- strb r0, [r2, 0x1]
- ldr r3, _08023518 @ =gActiveBank
- ldrb r0, [r3]
- strb r0, [r2, 0x2]
- ldr r1, _0802351C @ =gBattleBufferB
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2, 0x3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r2, 0x4]
-_080234F6:
- ldr r1, _08023520 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r1]
-_080234FE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023508: .4byte gBattleTextBuff1
-_0802350C: .4byte gBattleMons
-_08023510: .4byte gBankAttacker
-_08023514: .4byte gBattleTextBuff2
-_08023518: .4byte gActiveBank
-_0802351C: .4byte gBattleBufferB
-_08023520: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802331C
-
- thumb_func_start sub_8023524
-sub_8023524: @ 8023524
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r6, _08023630 @ =gBattlescriptCurrInstr
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08023634 @ =gActiveBank
- strb r0, [r4]
- ldrb r0, [r4]
- bl sub_80157C4
- ldr r2, _08023638 @ =gHitMarker
- ldr r1, _0802363C @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- ldr r2, _08023640 @ =gSpecialStatuses
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1]
- movs r0, 0x41
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- bl GetBankSide
- ldr r5, _08023644 @ =gSideAffecting
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 2
- mov r8, r0
- ands r0, r1
- cmp r0, 0
- bne _0802367C
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802367C
- ldr r1, _08023648 @ =gBattleMons
- mov r9, r1
- ldrb r2, [r4]
- movs r7, 0x58
- adds r0, r2, 0
- muls r0, r7
- adds r1, r0, r1
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0802367C
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0802367C
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- beq _0802367C
- adds r0, r2, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r2, [r0]
- mov r1, r8
- orrs r1, r2
- strh r1, [r0]
- ldrb r0, [r4]
- bl GetBankSide
- ldr r2, _0802364C @ =gSideTimer
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x6]
- movs r1, 0x5
- subs r1, r0
- lsls r1, 25
- lsrs r1, 24
- ldr r5, _08023650 @ =gBattleMoveDamage
- ldrb r0, [r4]
- muls r0, r7
- add r0, r9
- ldrh r0, [r0, 0x2C]
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _08023614
- movs r0, 0x1
- str r0, [r5]
-_08023614:
- ldr r0, _08023654 @ =0x02000000
- ldrb r1, [r4]
- ldr r2, _08023658 @ =0x00016003
- adds r0, r2
- strb r1, [r0]
- bl b_movescr_stack_push_cursor
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08023660
- ldr r0, _0802365C @ =gUnknown_081D919F
- str r0, [r6]
- b _080237B6
- .align 2, 0
-_08023630: .4byte gBattlescriptCurrInstr
-_08023634: .4byte gActiveBank
-_08023638: .4byte gHitMarker
-_0802363C: .4byte gBitTable
-_08023640: .4byte gSpecialStatuses
-_08023644: .4byte gSideAffecting
-_08023648: .4byte gBattleMons
-_0802364C: .4byte gSideTimer
-_08023650: .4byte gBattleMoveDamage
-_08023654: .4byte 0x02000000
-_08023658: .4byte 0x00016003
-_0802365C: .4byte gUnknown_081D919F
-_08023660:
- cmp r0, 0x1
- bne _08023670
- ldr r0, _0802366C @ =gUnknown_081D9171
- str r0, [r6]
- b _080237B6
- .align 2, 0
-_0802366C: .4byte gUnknown_081D9171
-_08023670:
- ldr r0, _08023678 @ =gUnknown_081D91CD
- str r0, [r6]
- b _080237B6
- .align 2, 0
-_08023678: .4byte gUnknown_081D91CD
-_0802367C:
- ldr r1, _08023754 @ =gBattleMons
- ldr r5, _08023758 @ =gActiveBank
- ldrb r2, [r5]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x36
- bne _080236A2
- ldr r1, _0802375C @ =gDisableStructs
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x18]
-_080236A2:
- ldrb r1, [r5]
- movs r0, 0
- str r0, [sp]
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _080236B8
- b _080237B6
-_080236B8:
- ldrb r1, [r5]
- movs r0, 0
- movs r2, 0
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- bne _080237B6
- ldrb r0, [r5]
- bl GetBankSide
- ldr r1, _08023760 @ =gSideAffecting
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r2, [r0]
- ldr r1, _08023764 @ =0x0000fdff
- ands r1, r2
- strh r1, [r0]
- movs r4, 0
- ldr r0, _08023768 @ =gNoOfAllBanks
- ldrb r3, [r0]
- cmp r4, r3
- bge _08023706
- ldr r6, _0802376C @ =gTurnOrder
- ldr r3, _08023770 @ =gUnknown_02024A76
- movs r2, 0xC
- adds r1, r0, 0
-_080236F0:
- adds r0, r4, r6
- ldrb r0, [r0]
- ldrb r7, [r5]
- cmp r0, r7
- bne _080236FE
- adds r0, r4, r3
- strb r2, [r0]
-_080236FE:
- adds r4, 0x1
- ldrb r0, [r1]
- cmp r4, r0
- blt _080236F0
-_08023706:
- movs r4, 0
- ldr r0, _08023768 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- bge _08023736
- ldr r5, _08023754 @ =gBattleMons
-_08023712:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 23
- ldr r1, _08023774 @ =0x020160bc
- adds r0, r1
- movs r1, 0x58
- muls r1, r4
- adds r1, r5
- ldrh r1, [r1, 0x28]
- strh r1, [r0]
- adds r4, 0x1
- ldr r0, _08023768 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08023712
-_08023736:
- ldr r0, _08023778 @ =gBattlescriptCurrInstr
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x5
- bne _080237B0
- ldr r0, _0802377C @ =gHitMarker
- ldr r0, [r0]
- lsrs r4, r0, 28
- ldr r1, _08023780 @ =gBank1
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r2, _08023784 @ =gBitTable
- b _08023796
- .align 2, 0
-_08023754: .4byte gBattleMons
-_08023758: .4byte gActiveBank
-_0802375C: .4byte gDisableStructs
-_08023760: .4byte gSideAffecting
-_08023764: .4byte 0x0000fdff
-_08023768: .4byte gNoOfAllBanks
-_0802376C: .4byte gTurnOrder
-_08023770: .4byte gUnknown_02024A76
-_08023774: .4byte 0x020160bc
-_08023778: .4byte gBattlescriptCurrInstr
-_0802377C: .4byte gHitMarker
-_08023780: .4byte gBank1
-_08023784: .4byte gBitTable
-_08023788:
- ldr r0, _080237C4 @ =gNoOfAllBanks
- ldrb r3, [r1]
- ldrb r0, [r0]
- cmp r3, r0
- bcs _080237B0
- adds r0, r3, 0x1
- strb r0, [r1]
-_08023796:
- ldrb r0, [r1]
- lsls r0, 2
- adds r0, r2
- ldr r3, [r0]
- adds r0, r4, 0
- ands r0, r3
- cmp r0, 0
- beq _08023788
- ldr r0, _080237C8 @ =gAbsentBankFlags
- ldrb r0, [r0]
- ands r0, r3
- cmp r0, 0
- bne _08023788
-_080237B0:
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_080237B6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080237C4: .4byte gNoOfAllBanks
-_080237C8: .4byte gAbsentBankFlags
- thumb_func_end sub_8023524
-
- thumb_func_start sub_80237CC
-sub_80237CC: @ 80237CC
- push {lr}
- ldr r0, _080237DC @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _080237E0
- movs r0, 0
- b _080237E2
- .align 2, 0
-_080237DC: .4byte gBattlescriptCurrInstr
-_080237E0:
- movs r0, 0x1
-_080237E2:
- bl GetBankByPlayerAI
- ldr r1, _08023804 @ =gActiveBank
- strb r0, [r1]
- movs r0, 0
- bl dp01_build_cmdbuf_x08_8_8_8
- ldr r0, _08023804 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _08023808 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08023804: .4byte gActiveBank
-_08023808: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80237CC
-
- thumb_func_start atk54_802511C
-atk54_802511C: @ 802380C
- push {r4,r5,lr}
- ldr r5, _0802383C @ =gActiveBank
- ldr r0, _08023840 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r4, _08023844 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0
- bl EmitEffectivenessSound
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802383C: .4byte gActiveBank
-_08023840: .4byte gBankAttacker
-_08023844: .4byte gBattlescriptCurrInstr
- thumb_func_end atk54_802511C
-
- thumb_func_start sub_8023848
-sub_8023848: @ 8023848
- push {r4,r5,lr}
- ldr r5, _08023878 @ =gActiveBank
- ldr r0, _0802387C @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r4, _08023880 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0
- bl sub_800D074
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08023878: .4byte gActiveBank
-_0802387C: .4byte gBankAttacker
-_08023880: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8023848
-
- thumb_func_start atk56_8025194
-atk56_8025194: @ 8023884
- push {r4,r5,lr}
- ldr r5, _080238AC @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _080238B0 @ =gActiveBank
- strb r0, [r4]
- movs r0, 0
- bl EmitFaintingCry
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080238AC: .4byte gBattlescriptCurrInstr
-_080238B0: .4byte gActiveBank
- thumb_func_end atk56_8025194
-
- thumb_func_start atk57_80251C4_flee
-atk57_80251C4_flee: @ 80238B4
- push {r4,lr}
- movs r0, 0
- bl GetBankByPlayerAI
- ldr r4, _080238E0 @ =gActiveBank
- strb r0, [r4]
- ldr r0, _080238E4 @ =gBattleOutcome
- ldrb r1, [r0]
- movs r0, 0
- bl dp01_build_cmdbuf_x37_a
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r1, _080238E8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080238E0: .4byte gActiveBank
-_080238E4: .4byte gBattleOutcome
-_080238E8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk57_80251C4_flee
-
- thumb_func_start atk58_cmd58
-atk58_cmd58: @ 80238EC
- push {r4,r5,lr}
- ldr r5, _08023918 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0802391C @ =gActiveBank
- strb r0, [r4]
- movs r0, 0
- movs r1, 0x1
- bl dp01_build_cmdbuf_x06_a
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08023918: .4byte gBattlescriptCurrInstr
-_0802391C: .4byte gActiveBank
- thumb_func_end atk58_cmd58
-
- thumb_func_start atk59_8025230
-atk59_8025230: @ 8023920
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0802399C @ =gBattlescriptCurrInstr
- ldr r2, [r0]
- ldrb r6, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r6, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r6, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r6, r0
- ldrb r4, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r4, r0
- ldr r0, _080239A0 @ =0x02000000
- ldr r1, _080239A4 @ =0x00016018
- adds r7, r0, r1
- ldrb r1, [r7]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080239A8 @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r2, 0x9]
- bl sub_803B7C8
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080239AC @ =0x0000fffe
- cmp r5, r0
- bne _08023992
- mov r9, r7
- mov r8, r5
- movs r7, 0x64
-_0802397A:
- mov r3, r9
- ldrb r0, [r3]
- muls r0, r7
- ldr r1, _080239A8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0
- bl sub_803B7C8
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- beq _0802397A
-_08023992:
- cmp r5, 0
- bne _080239B0
- ldr r0, _0802399C @ =gBattlescriptCurrInstr
- str r4, [r0]
- b _08023A58
- .align 2, 0
-_0802399C: .4byte gBattlescriptCurrInstr
-_080239A0: .4byte 0x02000000
-_080239A4: .4byte 0x00016018
-_080239A8: .4byte gPlayerParty
-_080239AC: .4byte 0x0000fffe
-_080239B0:
- ldr r0, _080239C0 @ =0x0000ffff
- cmp r5, r0
- bne _080239C8
- ldr r1, _080239C4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
- b _08023A58
- .align 2, 0
-_080239C0: .4byte 0x0000ffff
-_080239C4: .4byte gBattlescriptCurrInstr
-_080239C8:
- movs r0, 0
- bl GetBankByPlayerAI
- ldr r1, _08023A64 @ =gActiveBank
- strb r0, [r1]
- ldr r0, _08023A68 @ =gBattlePartyID
- ldrb r2, [r1]
- lsls r1, r2, 1
- adds r1, r0
- ldr r0, _08023A6C @ =0x02000000
- ldr r3, _08023A70 @ =0x00016018
- adds r0, r3
- ldrh r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bne _08023A08
- ldr r3, _08023A74 @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023A08
- adds r0, r2, r3
- adds r1, r5, 0
- bl GiveMoveToBattleMon
-_08023A08:
- ldr r0, _08023A78 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023A54
- movs r0, 0x2
- bl GetBankByPlayerAI
- ldr r1, _08023A64 @ =gActiveBank
- strb r0, [r1]
- ldr r0, _08023A68 @ =gBattlePartyID
- ldrb r2, [r1]
- lsls r1, r2, 1
- adds r1, r0
- ldr r0, _08023A6C @ =0x02000000
- ldr r3, _08023A70 @ =0x00016018
- adds r0, r3
- ldrh r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bne _08023A54
- ldr r3, _08023A74 @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023A54
- adds r0, r2, r3
- adds r1, r5, 0
- bl GiveMoveToBattleMon
-_08023A54:
- ldr r0, _08023A7C @ =gBattlescriptCurrInstr
- str r6, [r0]
-_08023A58:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023A64: .4byte gActiveBank
-_08023A68: .4byte gBattlePartyID
-_08023A6C: .4byte 0x02000000
-_08023A70: .4byte 0x00016018
-_08023A74: .4byte gBattleMons
-_08023A78: .4byte gBattleTypeFlags
-_08023A7C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk59_8025230
-
- thumb_func_start sub_8023A80
-sub_8023A80: @ 8023A80
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x18
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_802BBD4
- ldr r4, _08023AC8 @ =gUnknown_03004210
- ldr r1, _08023ACC @ =gUnknown_08400D7A
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x9
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x19
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08023AD0 @ =0x0000ffff
- ldr r3, _08023AD4 @ =0x00002d9f
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0
- movs r2, 0xC
- bl sub_814A5C0
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08023AC8: .4byte gUnknown_03004210
-_08023ACC: .4byte gUnknown_08400D7A
-_08023AD0: .4byte 0x0000ffff
-_08023AD4: .4byte 0x00002d9f
- thumb_func_end sub_8023A80
-
- thumb_func_start sub_8023AD8
-sub_8023AD8: @ 8023AD8
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x18
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_802BBD4
- bl DestroyMenuCursor
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8023AD8
-
- thumb_func_start sub_8023AF8
-sub_8023AF8: @ 8023AF8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r1, _08023B24 @ =gActiveBank
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08023B28 @ =0x02000000
- ldr r2, _08023B2C @ =0x0001601a
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x5
- bls _08023B18
- b _08023E5C
-_08023B18:
- lsls r0, 2
- ldr r1, _08023B30 @ =_08023B34
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08023B24: .4byte gActiveBank
-_08023B28: .4byte 0x02000000
-_08023B2C: .4byte 0x0001601a
-_08023B30: .4byte _08023B34
- .align 2, 0
-_08023B34:
- .4byte _08023B4C
- .4byte _08023B74
- .4byte _08023C30
- .4byte _08023C84
- .4byte _08023E38
- .4byte _08023E4C
-_08023B4C:
- bl sub_8023A80
- ldr r1, _08023B68 @ =0x02000000
- ldr r0, _08023B6C @ =0x0001601a
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, _08023B70 @ =gBattleCommunication
- strb r2, [r0, 0x1]
- bl sub_802BC6C
- b _08023E5C
- .align 2, 0
-_08023B68: .4byte 0x02000000
-_08023B6C: .4byte 0x0001601a
-_08023B70: .4byte gBattleCommunication
-_08023B74:
- ldr r0, _08023BFC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08023B9A
- ldr r4, _08023C00 @ =gBattleCommunication
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08023B9A
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023B9A:
- ldr r0, _08023BFC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023BC0
- ldr r4, _08023C00 @ =gBattleCommunication
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08023BC0
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023BC0:
- ldr r0, _08023BFC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023C0C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08023C00 @ =gBattleCommunication
- ldrb r4, [r0, 0x1]
- cmp r4, 0
- bne _08023C1C
- bl sub_8023AD8
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08023C04 @ =0x02000000
- ldr r2, _08023C08 @ =0x0001601a
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- b _08023E5A
- .align 2, 0
-_08023BFC: .4byte gMain
-_08023C00: .4byte gBattleCommunication
-_08023C04: .4byte 0x02000000
-_08023C08: .4byte 0x0001601a
-_08023C0C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08023C16
- b _08023E5C
-_08023C16:
- movs r0, 0x5
- bl PlaySE
-_08023C1C:
- ldr r0, _08023C28 @ =0x02000000
- ldr r1, _08023C2C @ =0x0001601a
- adds r0, r1
- movs r1, 0x4
- strb r1, [r0]
- b _08023E5C
- .align 2, 0
-_08023C28: .4byte 0x02000000
-_08023C2C: .4byte 0x0001601a
-_08023C30:
- ldr r0, _08023C68 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023C3E
- b _08023E5C
-_08023C3E:
- ldr r0, _08023C6C @ =gPlayerParty
- ldr r2, _08023C70 @ =0x00016018
- adds r1, r5, r2
- ldrb r1, [r1]
- ldr r2, _08023C74 @ =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08023C78 @ =ReshowBattleScreenAfterMenu
- ldr r4, _08023C7C @ =word_2024E82
- ldrh r4, [r4]
- str r4, [sp]
- bl sub_809D9F0
- ldr r0, _08023C80 @ =0x0001601a
- adds r1, r5, r0
- ldrb r0, [r1]
- adds r0, 0x1
- b _08023E5A
- .align 2, 0
-_08023C68: .4byte gPaletteFade
-_08023C6C: .4byte gPlayerParty
-_08023C70: .4byte 0x00016018
-_08023C74: .4byte gPlayerPartyCount
-_08023C78: .4byte ReshowBattleScreenAfterMenu
-_08023C7C: .4byte word_2024E82
-_08023C80: .4byte 0x0001601a
-_08023C84:
- ldr r0, _08023CB4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023C92
- b _08023E5C
-_08023C92:
- ldr r0, _08023CB8 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _08023CBC @ =sub_800F808
- cmp r1, r0
- beq _08023C9E
- b _08023E5C
-_08023C9E:
- bl sub_809FA30
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bne _08023CC8
- ldr r0, _08023CC0 @ =0x02000000
- ldr r1, _08023CC4 @ =0x0001601a
- adds r0, r1
- strb r5, [r0]
- b _08023E5C
- .align 2, 0
-_08023CB4: .4byte gPaletteFade
-_08023CB8: .4byte gMain
-_08023CBC: .4byte sub_800F808
-_08023CC0: .4byte 0x02000000
-_08023CC4: .4byte 0x0001601a
-_08023CC8:
- ldr r2, _08023D08 @ =0x02000000
- mov r9, r2
- ldr r6, _08023D0C @ =0x00016018
- add r6, r9
- ldrb r0, [r6]
- movs r1, 0x64
- mov r8, r1
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldr r7, _08023D10 @ =gPlayerParty
- adds r0, r7
- adds r1, r5, 0
- adds r1, 0xD
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl IsHMMove2
- cmp r0, 0
- beq _08023D20
- ldr r0, _08023D14 @ =0x0000013f
- ldr r1, _08023D18 @ =gActiveBank
- ldrb r1, [r1]
- bl PrepareStringBattle
- ldr r1, _08023D1C @ =0x0001601a
- add r1, r9
- movs r0, 0x5
- b _08023E5A
- .align 2, 0
-_08023D08: .4byte 0x02000000
-_08023D0C: .4byte 0x00016018
-_08023D10: .4byte gPlayerParty
-_08023D14: .4byte 0x0000013f
-_08023D18: .4byte gActiveBank
-_08023D1C: .4byte 0x0001601a
-_08023D20:
- ldr r3, _08023E10 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- ldr r1, _08023E14 @ =gBattleTextBuff2
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- strb r4, [r1, 0x2]
- lsrs r0, r4, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- adds r1, r5, 0
- bl RemoveMonPPBonus
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- ldr r7, _08023E18 @ =word_2024E82
- ldrh r1, [r7]
- adds r2, r5, 0
- bl SetMonMoveSlot
- ldr r0, _08023E1C @ =gBattlePartyID
- ldrh r0, [r0]
- ldrb r6, [r6]
- cmp r0, r6
- bne _08023DB0
- ldr r4, _08023E20 @ =gBattleMons
- ldr r0, [r4, 0x50]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023DB0
- ldr r0, _08023E24 @ =gDisableStructs
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _08023E28 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08023DB0
- adds r0, r4, 0
- adds r1, r5, 0
- bl RemoveBattleMonPPBonus
- ldrh r1, [r7]
- adds r0, r4, 0
- adds r2, r5, 0
- bl SetBattleMonMoveSlot
-_08023DB0:
- ldr r0, _08023E2C @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023E5C
- ldr r0, _08023E1C @ =gBattlePartyID
- ldr r1, _08023E30 @ =0x02000000
- ldr r2, _08023E34 @ =0x00016018
- adds r1, r2
- ldrh r0, [r0, 0x4]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08023E5C
- ldr r4, _08023E20 @ =gBattleMons
- movs r1, 0x80
- lsls r1, 1
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023E5C
- ldr r0, _08023E24 @ =gDisableStructs
- adds r0, 0x50
- ldrb r1, [r0]
- lsrs r1, 4
- ldr r2, _08023E28 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08023E5C
- adds r4, 0xB0
- adds r0, r4, 0
- adds r1, r5, 0
- bl RemoveBattleMonPPBonus
- ldr r0, _08023E18 @ =word_2024E82
- ldrh r1, [r0]
- adds r0, r4, 0
- adds r2, r5, 0
- bl SetBattleMonMoveSlot
- b _08023E5C
- .align 2, 0
-_08023E10: .4byte gBattlescriptCurrInstr
-_08023E14: .4byte gBattleTextBuff2
-_08023E18: .4byte word_2024E82
-_08023E1C: .4byte gBattlePartyID
-_08023E20: .4byte gBattleMons
-_08023E24: .4byte gDisableStructs
-_08023E28: .4byte gBitTable
-_08023E2C: .4byte gBattleTypeFlags
-_08023E30: .4byte 0x02000000
-_08023E34: .4byte 0x00016018
-_08023E38:
- bl sub_8023AD8
- ldr r1, _08023E48 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08023E5C
- .align 2, 0
-_08023E48: .4byte gBattlescriptCurrInstr
-_08023E4C:
- ldr r0, _08023E6C @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _08023E5C
- ldr r2, _08023E70 @ =0x0001601a
- adds r1, r5, r2
- movs r0, 0x2
-_08023E5A:
- strb r0, [r1]
-_08023E5C:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023E6C: .4byte gBattleExecBuffer
-_08023E70: .4byte 0x0001601a
- thumb_func_end sub_8023AF8
-
- thumb_func_start atk5B_80256E0
-atk5B_80256E0: @ 8023E74
- push {r4,r5,lr}
- ldr r0, _08023E88 @ =0x02000000
- ldr r1, _08023E8C @ =0x0001601a
- adds r5, r0, r1
- ldrb r4, [r5]
- cmp r4, 0
- beq _08023E90
- cmp r4, 0x1
- beq _08023EA8
- b _08023F78
- .align 2, 0
-_08023E88: .4byte 0x02000000
-_08023E8C: .4byte 0x0001601a
-_08023E90:
- bl sub_8023A80
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldr r0, _08023EA4 @ =gBattleCommunication
- strb r4, [r0, 0x1]
- bl sub_802BC6C
- b _08023F78
- .align 2, 0
-_08023EA4: .4byte gBattleCommunication
-_08023EA8:
- ldr r0, _08023F2C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08023ECE
- ldr r4, _08023F30 @ =gBattleCommunication
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08023ECE
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023ECE:
- ldr r0, _08023F2C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023EF4
- ldr r4, _08023F30 @ =gBattleCommunication
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08023EF4
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023EF4:
- ldr r0, _08023F2C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023F4C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08023F30 @ =gBattleCommunication
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _08023F38
- ldr r3, _08023F34 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08023F40
- .align 2, 0
-_08023F2C: .4byte gMain
-_08023F30: .4byte gBattleCommunication
-_08023F34: .4byte gBattlescriptCurrInstr
-_08023F38:
- ldr r1, _08023F48 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08023F40:
- bl sub_8023AD8
- b _08023F78
- .align 2, 0
-_08023F48: .4byte gBattlescriptCurrInstr
-_08023F4C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08023F78
- movs r0, 0x5
- bl PlaySE
- ldr r3, _08023F80 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- bl sub_8023AD8
-_08023F78:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08023F80: .4byte gBattlescriptCurrInstr
- thumb_func_end atk5B_80256E0
-
- thumb_func_start atk5C_cmd5c
-atk5C_cmd5c: @ 8023F84
- push {r4,lr}
- ldr r4, _08023FF0 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r2, _08023FF4 @ =gActiveBank
- strb r0, [r2]
- ldr r0, _08023FF8 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _08024008
- ldr r0, _08023FFC @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- cmp r0, 0
- beq _08023FD6
- ldr r1, _08024000 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08023FD6
- ldr r0, _08024004 @ =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _08024008
-_08023FD6:
- movs r0, 0
- bl EmitHitAnimation
- ldr r0, _08023FF4 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _08023FF0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- b _0802400E
- .align 2, 0
-_08023FF0: .4byte gBattlescriptCurrInstr
-_08023FF4: .4byte gActiveBank
-_08023FF8: .4byte gBattleMoveFlags
-_08023FFC: .4byte gHitMarker
-_08024000: .4byte gBattleMons
-_08024004: .4byte gDisableStructs
-_08024008:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
-_0802400E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atk5C_cmd5c
-
- thumb_func_start sub_8024014
-sub_8024014: @ 8024014
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- movs r5, 0
- ldr r0, _08024048 @ =gTrainerBattleOpponent
- ldrh r2, [r0]
- movs r1, 0x80
- lsls r1, 3
- cmp r2, r1
- bne _08024058
- ldr r0, _0802404C @ =0x02017000
- adds r1, r0, 0
- adds r1, 0x94
- ldrb r2, [r1]
- ldr r1, _08024050 @ =0xfffff056
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r4, r2, 0
- muls r4, r0
- ldr r0, _08024054 @ =gSaveBlock1 + 0x490
- mov r8, r0
- b _08024140
- .align 2, 0
-_08024048: .4byte gTrainerBattleOpponent
-_0802404C: .4byte 0x02017000
-_08024050: .4byte 0xfffff056
-_08024054: .4byte gSaveBlock1 + 0x490
-_08024058:
- ldr r2, _08024074 @ =gTrainers
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r3, r0, 3
- adds r4, r3, r2
- ldrb r1, [r4]
- cmp r1, 0x1
- beq _080240AE
- cmp r1, 0x1
- bgt _08024078
- cmp r1, 0
- beq _08024082
- b _080240C4
- .align 2, 0
-_08024074: .4byte gTrainers
-_08024078:
- cmp r1, 0x2
- beq _08024098
- cmp r1, 0x3
- beq _080240AE
- b _080240C4
-_08024082:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- subs r0, 0x8
- b _080240C2
-_08024098:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- subs r0, 0x8
- b _080240C2
-_080240AE:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- subs r0, 0x10
-_080240C2:
- ldrb r5, [r0, 0x2]
-_080240C4:
- ldr r0, _08024120 @ =gTrainerMoney
- lsls r1, r6, 2
- adds r3, r1, r0
- ldrb r1, [r3]
- mov r12, r0
- lsls r4, r5, 2
- ldr r5, _08024124 @ =0x02000000
- ldr r7, _08024128 @ =gBattleTypeFlags
- ldr r0, _0802412C @ =gSaveBlock1 + 0x490
- mov r8, r0
- cmp r1, 0xFF
- beq _080240FE
- ldr r2, _08024130 @ =gTrainers
- ldr r0, _08024134 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r2, [r0, 0x1]
- adds r1, r3, 0
-_080240EE:
- ldrb r0, [r1]
- cmp r0, r2
- beq _080240FE
- adds r1, 0x4
- adds r6, 0x1
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080240EE
-_080240FE:
- ldr r1, _08024138 @ =0x00016056
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r3, r4, 0
- muls r3, r0
- lsls r0, r6, 2
- add r0, r12
- ldrb r2, [r0, 0x1]
- ldrh r1, [r7]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802413C
- lsls r0, r2, 1
- adds r4, r3, 0
- muls r4, r0
- b _08024140
- .align 2, 0
-_08024120: .4byte gTrainerMoney
-_08024124: .4byte 0x02000000
-_08024128: .4byte gBattleTypeFlags
-_0802412C: .4byte gSaveBlock1 + 0x490
-_08024130: .4byte gTrainers
-_08024134: .4byte gTrainerBattleOpponent
-_08024138: .4byte 0x00016056
-_0802413C:
- adds r4, r3, 0
- muls r4, r2
-_08024140:
- mov r0, r8
- adds r1, r4, 0
- bl sub_80B79B8
- ldr r1, _0802418C @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r0, 0x4
- strb r0, [r1, 0x2]
- movs r0, 0x5
- strb r0, [r1, 0x3]
- strb r4, [r1, 0x4]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r4
- lsrs r0, 8
- strb r0, [r1, 0x5]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r4
- lsrs r0, 16
- strb r0, [r1, 0x6]
- lsrs r0, r4, 24
- strb r0, [r1, 0x7]
- movs r0, 0xFF
- strb r0, [r1, 0x8]
- ldr r1, _08024190 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802418C: .4byte gBattleTextBuff1
-_08024190: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8024014
-
- thumb_func_start atk5E_8025A70
-atk5E_8025A70: @ 8024194
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _080241B8 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r6, _080241BC @ =gActiveBank
- strb r0, [r6]
- ldr r5, _080241C0 @ =gBattleCommunication
- ldrb r0, [r5]
- mov r8, r4
- cmp r0, 0
- beq _080241C4
- cmp r0, 0x1
- beq _080241DC
- b _08024230
- .align 2, 0
-_080241B8: .4byte gBattlescriptCurrInstr
-_080241BC: .4byte gActiveBank
-_080241C0: .4byte gBattleCommunication
-_080241C4:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl EmitGetAttributes
- ldrb r0, [r6]
- bl MarkBufferBankForExecution
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _08024230
-_080241DC:
- ldr r0, _0802423C @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _08024230
- ldrb r0, [r6]
- lsls r0, 9
- ldr r1, _08024240 @ =gUnknown_02024264
- adds r0, r1
- mov r12, r0
- movs r2, 0
- adds r4, r6, 0
- movs r5, 0x58
- ldr r6, _08024244 @ =gUnknown_02024AA4
- adds r7, r6, 0
- subs r7, 0x18
- mov r3, r12
- adds r3, 0xC
-_080241FE:
- lsls r1, r2, 1
- ldrb r0, [r4]
- muls r0, r5
- adds r1, r0
- adds r1, r7
- ldrh r0, [r3]
- strh r0, [r1]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r2, r1
- adds r1, r6
- mov r0, r12
- adds r0, 0x24
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r3, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- ble _080241FE
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08024230:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802423C: .4byte gBattleExecBuffer
-_08024240: .4byte gUnknown_02024264
-_08024244: .4byte gUnknown_02024AA4
- thumb_func_end atk5E_8025A70
-
- thumb_func_start atk5F_8025B24
-atk5F_8025B24: @ 8024248
- push {lr}
- ldr r0, _08024270 @ =gActiveBank
- ldr r2, _08024274 @ =gBankAttacker
- ldrb r3, [r2]
- strb r3, [r0]
- ldr r1, _08024278 @ =gBankTarget
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- ldr r2, _0802427C @ =gHitMarker
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 5
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _08024284
- ldr r0, _08024280 @ =0xffffefff
- ands r1, r0
- b _08024286
- .align 2, 0
-_08024270: .4byte gActiveBank
-_08024274: .4byte gBankAttacker
-_08024278: .4byte gBankTarget
-_0802427C: .4byte gHitMarker
-_08024280: .4byte 0xffffefff
-_08024284:
- orrs r1, r3
-_08024286:
- str r1, [r2]
- ldr r1, _08024294 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024294: .4byte gBattlescriptCurrInstr
- thumb_func_end atk5F_8025B24
-
- thumb_func_start atk60_cmd60
-atk60_cmd60: @ 8024298
- push {lr}
- ldr r0, _080242C0 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080242B2
- ldr r0, _080242C4 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl IncrementGameStat
-_080242B2:
- ldr r1, _080242C4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080242C0: .4byte gBankAttacker
-_080242C4: .4byte gBattlescriptCurrInstr
- thumb_func_end atk60_cmd60
-
- thumb_func_start atk61_8025BA4
-atk61_8025BA4: @ 80242C8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x30
- ldr r0, _0802432C @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0802437C
- ldr r0, _08024330 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024334 @ =gActiveBank
- strb r0, [r1]
- ldrb r0, [r1]
- bl GetBankSide
- lsls r0, 24
- ldr r1, _08024338 @ =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _080242FA
- ldr r0, _0802433C @ =gPlayerParty
- mov r8, r0
-_080242FA:
- movs r7, 0
- add r6, sp, 0x4
- mov r5, sp
-_08024300:
- movs r0, 0x64
- muls r0, r7
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08024324
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _08024344
-_08024324:
- ldr r0, _08024340 @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _08024356
- .align 2, 0
-_0802432C: .4byte gBattleExecBuffer
-_08024330: .4byte gBattlescriptCurrInstr
-_08024334: .4byte gActiveBank
-_08024338: .4byte gEnemyParty
-_0802433C: .4byte gPlayerParty
-_08024340: .4byte 0x0000ffff
-_08024344:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_08024356:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _08024300
- movs r0, 0
- mov r1, sp
- movs r2, 0x1
- bl dp01_build_cmdbuf_x30_TODO
- ldr r0, _08024388 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _0802438C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0802437C:
- add sp, 0x30
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024388: .4byte gActiveBank
-_0802438C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk61_8025BA4
-
- thumb_func_start atk62_08025C6C
-atk62_08025C6C: @ 8024390
- push {r4,r5,lr}
- ldr r5, _080243B8 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _080243BC @ =gActiveBank
- strb r0, [r4]
- movs r0, 0
- bl dp01_build_cmdbuf_x31_31_31_31
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080243B8: .4byte gBattlescriptCurrInstr
-_080243BC: .4byte gActiveBank
- thumb_func_end atk62_08025C6C
-
- thumb_func_start atk63_jumptoattack
-atk63_jumptoattack: @ 80243C0
- push {r4,lr}
- ldr r0, _080243D8 @ =gBattlescriptCurrInstr
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0
- beq _080243E4
- ldr r0, _080243DC @ =gCurrentMove
- ldr r1, _080243E0 @ =gUnknown_02024BEA
- ldrh r1, [r1]
- strh r1, [r0]
- b _080243F2
- .align 2, 0
-_080243D8: .4byte gBattlescriptCurrInstr
-_080243DC: .4byte gCurrentMove
-_080243E0: .4byte gUnknown_02024BEA
-_080243E4:
- ldr r2, _08024410 @ =gUnknown_02024BE8
- ldr r1, _08024414 @ =gCurrentMove
- ldr r0, _08024418 @ =gUnknown_02024BEA
- ldrh r0, [r0]
- strh r0, [r1]
- strh r0, [r2]
- adds r0, r1, 0
-_080243F2:
- ldr r3, _0802441C @ =gUnknown_081D6BBC
- ldr r2, _08024420 @ =gBattleMoves
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08024410: .4byte gUnknown_02024BE8
-_08024414: .4byte gCurrentMove
-_08024418: .4byte gUnknown_02024BEA
-_0802441C: .4byte gUnknown_081D6BBC
-_08024420: .4byte gBattleMoves
- thumb_func_end atk63_jumptoattack
-
- thumb_func_start atk64_statusanimation
-atk64_statusanimation: @ 8024424
- push {r4,lr}
- ldr r0, _08024494 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0802448C
- ldr r0, _08024498 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0802449C @ =gActiveBank
- strb r0, [r4]
- ldr r1, _080244A0 @ =gStatuses3
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080244A4 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08024484
- ldr r0, _080244A8 @ =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _08024484
- ldr r0, _080244AC @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08024484
- ldr r1, _080244B0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0
- movs r1, 0
- bl EmitStatusAnimation
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08024484:
- ldr r1, _08024498 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0802448C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08024494: .4byte gBattleExecBuffer
-_08024498: .4byte gBattlescriptCurrInstr
-_0802449C: .4byte gActiveBank
-_080244A0: .4byte gStatuses3
-_080244A4: .4byte 0x000400c0
-_080244A8: .4byte gDisableStructs
-_080244AC: .4byte gHitMarker
-_080244B0: .4byte gBattleMons
- thumb_func_end atk64_statusanimation
-
- thumb_func_start atk65_8025D90
-atk65_8025D90: @ 80244B4
- push {r4,r5,lr}
- ldr r0, _0802453C @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _08024534
- ldr r4, _08024540 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _08024544 @ =gActiveBank
- strb r0, [r5]
- ldr r1, [r4]
- ldrb r3, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- orrs r3, r0
- ldr r1, _08024548 @ =gStatuses3
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _0802454C @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _0802452C
- ldr r0, _08024550 @ =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _0802452C
- ldr r0, _08024554 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802452C
- ldr r1, _08024558 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r2, [r0]
- ands r2, r3
- movs r0, 0
- movs r1, 0x1
- bl EmitStatusAnimation
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
-_0802452C:
- ldr r1, _08024540 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
-_08024534:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802453C: .4byte gBattleExecBuffer
-_08024540: .4byte gBattlescriptCurrInstr
-_08024544: .4byte gActiveBank
-_08024548: .4byte gStatuses3
-_0802454C: .4byte 0x000400c0
-_08024550: .4byte gDisableStructs
-_08024554: .4byte gHitMarker
-_08024558: .4byte gBattleMons
- thumb_func_end atk65_8025D90
-
- thumb_func_start atk66_8025E38
-atk66_8025E38: @ 802455C
- push {r4,r5,lr}
- ldr r0, _080245D4 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _080245CE
- ldr r4, _080245D8 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _080245DC @ =gActiveBank
- strb r0, [r5]
- ldr r4, [r4]
- ldrb r2, [r4, 0x3]
- ldrb r0, [r4, 0x4]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r4, 0x5]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r4, 0x6]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _080245E0 @ =gStatuses3
- ldrb r3, [r5]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080245E4 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _080245C6
- ldr r0, _080245E8 @ =gDisableStructs
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _080245C6
- ldr r0, _080245EC @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080245C6
- ldrb r1, [r4, 0x2]
- movs r0, 0
- bl EmitStatusAnimation
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
-_080245C6:
- ldr r1, _080245D8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x7
- str r0, [r1]
-_080245CE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080245D4: .4byte gBattleExecBuffer
-_080245D8: .4byte gBattlescriptCurrInstr
-_080245DC: .4byte gActiveBank
-_080245E0: .4byte gStatuses3
-_080245E4: .4byte 0x000400c0
-_080245E8: .4byte gDisableStructs
-_080245EC: .4byte gHitMarker
- thumb_func_end atk66_8025E38
-
- thumb_func_start atk67_8025ECC
-atk67_8025ECC: @ 80245F0
- push {r4,r5,lr}
- ldr r5, _08024600 @ =gBattleCommunication
- ldrb r4, [r5]
- cmp r4, 0
- beq _08024604
- cmp r4, 0x1
- beq _08024616
- b _08024696
- .align 2, 0
-_08024600: .4byte gBattleCommunication
-_08024604:
- bl sub_8023A80
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- strb r4, [r5, 0x1]
- bl sub_802BC6C
- b _08024696
-_08024616:
- ldr r0, _08024674 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802463A
- ldrb r0, [r5, 0x1]
- cmp r0, 0
- beq _0802463A
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r5, 0x1]
- bl sub_802BC6C
-_0802463A:
- ldr r0, _08024674 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08024660
- ldr r4, _08024678 @ =gBattleCommunication
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08024660
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08024660:
- ldr r0, _08024674 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802467C
- ldr r1, _08024678 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x1]
- b _08024684
- .align 2, 0
-_08024674: .4byte gMain
-_08024678: .4byte gBattleCommunication
-_0802467C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08024696
-_08024684:
- movs r0, 0x5
- bl PlaySE
- bl sub_8023AD8
- ldr r1, _0802469C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08024696:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802469C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk67_8025ECC
-
- thumb_func_start sub_80246A0
-sub_80246A0: @ 80246A0
- push {r4,r5,lr}
- movs r1, 0
- ldr r2, _080246CC @ =gNoOfAllBanks
- ldr r5, _080246D0 @ =gBattlescriptCurrInstr
- ldrb r0, [r2]
- cmp r1, r0
- bge _080246BE
- ldr r4, _080246D4 @ =gUnknown_02024A76
- movs r3, 0xC
-_080246B2:
- adds r0, r1, r4
- strb r3, [r0]
- adds r1, 0x1
- ldrb r0, [r2]
- cmp r1, r0
- blt _080246B2
-_080246BE:
- ldr r0, [r5]
- adds r0, 0x1
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080246CC: .4byte gNoOfAllBanks
-_080246D0: .4byte gBattlescriptCurrInstr
-_080246D4: .4byte gUnknown_02024A76
- thumb_func_end sub_80246A0
-
- thumb_func_start atk69_8025FE0
-atk69_8025FE0: @ 80246D8
- push {r4-r7,lr}
- ldr r7, _08024700 @ =gBattleMons
- ldr r6, _08024704 @ =gBankTarget
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0802470C
- ldr r1, _08024708 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _08024726
- .align 2, 0
-_08024700: .4byte gBattleMons
-_08024704: .4byte gBankTarget
-_08024708: .4byte gEnigmaBerries
-_0802470C:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_08024726:
- ldr r1, _080247E8 @ =gStringBank
- ldr r5, _080247EC @ =gBankTarget
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _08024764
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _08024764
- ldrb r0, [r5]
- movs r1, 0x27
- bl RecordItemBattle
- ldr r2, _080247F0 @ =gSpecialStatuses
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_08024764:
- ldr r2, _080247F4 @ =gBattleMons
- ldr r3, _080247EC @ =gBankTarget
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r1, r0
- adds r5, r2, 0
- cmp r1, 0
- bne _08024834
- ldr r2, _080247F8 @ =gBattleMoves
- ldr r0, _080247FC @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x65
- beq _080247B6
- ldr r0, _08024800 @ =gProtectStructs
- lsls r1, r4, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- blt _080247B6
- ldr r0, _080247F0 @ =gSpecialStatuses
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _08024834
-_080247B6:
- ldrb r0, [r3]
- movs r4, 0x58
- muls r0, r4
- adds r0, r5
- ldrh r1, [r0, 0x28]
- ldr r2, _08024804 @ =gBattleMoveDamage
- ldr r0, [r2]
- cmp r1, r0
- bgt _08024834
- subs r0, r1, 0x1
- str r0, [r2]
- ldr r1, _08024800 @ =gProtectStructs
- ldrb r3, [r3]
- lsls r0, r3, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bge _0802480C
- ldr r0, _08024808 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08024834
- .align 2, 0
-_080247E8: .4byte gStringBank
-_080247EC: .4byte gBankTarget
-_080247F0: .4byte gSpecialStatuses
-_080247F4: .4byte gBattleMons
-_080247F8: .4byte gBattleMoves
-_080247FC: .4byte gCurrentMove
-_08024800: .4byte gProtectStructs
-_08024804: .4byte gBattleMoveDamage
-_08024808: .4byte gBattleMoveFlags
-_0802480C:
- ldr r0, _08024844 @ =gSpecialStatuses
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _08024834
- ldr r2, _08024848 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802484C @ =gLastUsedItem
- adds r0, r3, 0
- muls r0, r4
- adds r0, r5
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
-_08024834:
- ldr r1, _08024850 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024844: .4byte gSpecialStatuses
-_08024848: .4byte gBattleMoveFlags
-_0802484C: .4byte gLastUsedItem
-_08024850: .4byte gBattlescriptCurrInstr
- thumb_func_end atk69_8025FE0
-
- thumb_func_start atk6A_stash_item_for_side
-atk6A_stash_item_for_side: @ 8024854
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _080248B0 @ =gBattlescriptCurrInstr
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _080248B4 @ =gActiveBank
- strb r0, [r5]
- ldrb r4, [r5]
- lsls r1, r4, 1
- ldr r0, _080248B8 @ =0x020160cc
- adds r1, r0
- ldr r2, _080248BC @ =gBattleMons
- movs r3, 0x58
- adds r0, r4, 0
- muls r0, r3
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldrb r0, [r5]
- muls r0, r3
- adds r2, 0x2E
- adds r0, r2
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl EmitSetAttributes
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r0, [r6]
- adds r0, 0x2
- str r0, [r6]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080248B0: .4byte gBattlescriptCurrInstr
-_080248B4: .4byte gActiveBank
-_080248B8: .4byte 0x020160cc
-_080248BC: .4byte gBattleMons
- thumb_func_end atk6A_stash_item_for_side
-
- thumb_func_start sub_80248C0
-sub_80248C0: @ 80248C0
- ldr r1, _080248EC @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- ldr r2, _080248F0 @ =gBankAttacker
- ldrb r0, [r2]
- strb r0, [r1, 0x2]
- ldr r3, _080248F4 @ =gBattlePartyID
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _080248F8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_080248EC: .4byte gBattleTextBuff1
-_080248F0: .4byte gBankAttacker
-_080248F4: .4byte gBattlePartyID
-_080248F8: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80248C0
-
- thumb_func_start sub_80248FC
-sub_80248FC: @ 80248FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r1, 0
- movs r7, 0
- ldr r0, _08024928 @ =0x02000000
- mov r10, r0
- ldr r4, _0802492C @ =0x0001609c
- add r4, r10
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _0802491C
- b _08024AF4
-_0802491C:
- cmp r0, 0x1
- bgt _08024930
- cmp r0, 0
- beq _0802493E
- b _08024C38
- .align 2, 0
-_08024928: .4byte 0x02000000
-_0802492C: .4byte 0x0001609c
-_08024930:
- cmp r0, 0x2
- bne _08024936
- b _08024C04
-_08024936:
- cmp r0, 0x3
- bne _0802493C
- b _08024C30
-_0802493C:
- b _08024C38
-_0802493E:
- str r1, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl sub_802BBD4
- ldr r0, _0802499C @ =gStringVar4
- ldr r1, _080249A0 @ =gUnknown_08400D9F
- bl StringCopy
- adds r5, r0, 0
- movs r1, 0
- mov r8, r1
-_0802495A:
- movs r2, 0
- mov r9, r2
- ldr r0, _080249A4 @ =gUnknown_0840165C
- mov r1, r8
- lsls r4, r1, 2
- adds r0, r4, r0
- ldr r1, [r0]
- adds r0, r5, 0
- bl StringAppend
- adds r5, r0, 0
- ldr r0, _080249A8 @ =0x02000000
- ldr r2, _080249AC @ =0x00016018
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080249B0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080249B4 @ =gLevelUpStatBoxStats
- add r1, r8
- ldrb r1, [r1]
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- mov r0, r8
- cmp r0, 0x5
- bhi _08024A1A
- ldr r0, _080249B8 @ =_080249BC
- adds r0, r4, r0
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802499C: .4byte gStringVar4
-_080249A0: .4byte gUnknown_08400D9F
-_080249A4: .4byte gUnknown_0840165C
-_080249A8: .4byte 0x02000000
-_080249AC: .4byte 0x00016018
-_080249B0: .4byte gPlayerParty
-_080249B4: .4byte gLevelUpStatBoxStats
-_080249B8: .4byte _080249BC
- .align 2, 0
-_080249BC:
- .4byte _080249D4
- .4byte _080249E0
- .4byte _080249EC
- .4byte _080249F8
- .4byte _08024A04
- .4byte _08024A10
-_080249D4:
- ldr r0, _080249DC @ =0x02017180
- ldrh r0, [r0]
- b _08024A14
- .align 2, 0
-_080249DC: .4byte 0x02017180
-_080249E0:
- ldr r0, _080249E8 @ =0x02017180
- ldrh r0, [r0, 0x8]
- b _08024A14
- .align 2, 0
-_080249E8: .4byte 0x02017180
-_080249EC:
- ldr r0, _080249F4 @ =0x02017180
- ldrh r0, [r0, 0x2]
- b _08024A14
- .align 2, 0
-_080249F4: .4byte 0x02017180
-_080249F8:
- ldr r0, _08024A00 @ =0x02017180
- ldrh r0, [r0, 0xA]
- b _08024A14
- .align 2, 0
-_08024A00: .4byte 0x02017180
-_08024A04:
- ldr r0, _08024A0C @ =0x02017180
- ldrh r0, [r0, 0x4]
- b _08024A14
- .align 2, 0
-_08024A0C: .4byte 0x02017180
-_08024A10:
- ldr r0, _08024A54 @ =0x02017180
- ldrh r0, [r0, 0x6]
-_08024A14:
- subs r0, r1, r0
- lsls r0, 16
- lsrs r7, r0, 16
-_08024A1A:
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, 0
- bge _08024A2C
- negs r0, r0
- lsls r0, 16
- lsrs r7, r0, 16
- movs r1, 0x1
- add r9, r1
-_08024A2C:
- movs r0, 0xFC
- strb r0, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r1, 0x1
- mov r2, r8
- ands r1, r2
- lsls r0, r1, 3
- adds r0, r1
- adds r0, 0x5
- lsls r0, 3
- adds r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- mov r0, r9
- cmp r0, 0
- beq _08024A5C
- ldr r1, _08024A58 @ =gUnknown_08400DAC
- b _08024A5E
- .align 2, 0
-_08024A54: .4byte 0x02017180
-_08024A58: .4byte gUnknown_08400DAC
-_08024A5C:
- ldr r1, _08024AA4 @ =gUnknown_08400DAA
-_08024A5E:
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
- movs r6, 0xFC
- strb r6, [r5]
- movs r4, 0x14
- strb r4, [r5, 0x1]
- movs r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- lsls r1, r7, 16
- asrs r1, 16
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r5, r0, 0
- strb r6, [r5]
- strb r4, [r5, 0x1]
- movs r0, 0
- strb r0, [r5, 0x2]
- adds r5, 0x3
- movs r0, 0x1
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _08024AA8
- movs r0, 0xFE
- strb r0, [r5]
- movs r0, 0xFF
- strb r0, [r5, 0x1]
- adds r5, 0x1
- b _08024AB8
- .align 2, 0
-_08024AA4: .4byte gUnknown_08400DAA
-_08024AA8:
- strb r6, [r5]
- movs r0, 0x11
- strb r0, [r5, 0x1]
- movs r0, 0x8
- strb r0, [r5, 0x2]
- adds r5, 0x3
- movs r0, 0xFF
- strb r0, [r5]
-_08024AB8:
- movs r2, 0x1
- add r8, r2
- mov r0, r8
- cmp r0, 0x5
- bgt _08024AC4
- b _0802495A
-_08024AC4:
- ldr r4, _08024AE4 @ =gUnknown_03004210
- ldr r1, _08024AE8 @ =gStringVar4
- adds r2, 0xFF
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0xC
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08024AEC @ =0x02000000
- ldr r2, _08024AF0 @ =0x0001609c
- adds r1, r2
- b _08024BEA
- .align 2, 0
-_08024AE4: .4byte gUnknown_03004210
-_08024AE8: .4byte gStringVar4
-_08024AEC: .4byte 0x02000000
-_08024AF0: .4byte 0x0001609c
-_08024AF4:
- ldr r0, _08024B94 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- bne _08024AFE
- b _08024C38
-_08024AFE:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08024B98 @ =gStringVar4
- ldr r1, _08024B9C @ =gUnknown_08400D9F
- bl StringCopy
- adds r5, r0, 0
- movs r0, 0
- mov r8, r0
- mov r9, r0
- movs r6, 0xFC
- movs r7, 0x14
- ldr r1, _08024BA0 @ =0x00016018
- add r10, r1
-_08024B1C:
- ldr r1, _08024BA4 @ =gUnknown_0840165C
- mov r2, r8
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r5, 0
- bl StringAppend
- adds r5, r0, 0
- mov r0, r10
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08024BA8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08024BAC @ =gLevelUpStatBoxStats
- add r1, r8
- ldrb r1, [r1]
- bl GetMonData
- adds r1, r0, 0
- strb r6, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r4, 0x1
- mov r2, r8
- ands r4, r2
- lsls r0, r4, 3
- adds r0, r4
- adds r0, 0x5
- lsls r0, 3
- adds r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- strb r6, [r5]
- strb r7, [r5, 0x1]
- movs r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- lsls r1, 16
- asrs r1, 16
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r5, r0, 0
- strb r6, [r5]
- strb r7, [r5, 0x1]
- mov r0, r9
- strb r0, [r5, 0x2]
- adds r5, 0x3
- cmp r4, 0
- beq _08024BB0
- movs r0, 0xFE
- strb r0, [r5]
- movs r0, 0xFF
- strb r0, [r5, 0x1]
- adds r5, 0x1
- b _08024BC0
- .align 2, 0
-_08024B94: .4byte gMain
-_08024B98: .4byte gStringVar4
-_08024B9C: .4byte gUnknown_08400D9F
-_08024BA0: .4byte 0x00016018
-_08024BA4: .4byte gUnknown_0840165C
-_08024BA8: .4byte gPlayerParty
-_08024BAC: .4byte gLevelUpStatBoxStats
-_08024BB0:
- strb r6, [r5]
- movs r0, 0x11
- strb r0, [r5, 0x1]
- movs r0, 0x8
- strb r0, [r5, 0x2]
- adds r5, 0x3
- movs r0, 0xFF
- strb r0, [r5]
-_08024BC0:
- movs r1, 0x1
- add r8, r1
- mov r2, r8
- cmp r2, 0x5
- ble _08024B1C
- ldr r4, _08024BF4 @ =gUnknown_03004210
- ldr r1, _08024BF8 @ =gStringVar4
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0xC
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08024BFC @ =0x02000000
- ldr r0, _08024C00 @ =0x0001609c
- adds r1, r0
-_08024BEA:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08024C38
- .align 2, 0
-_08024BF4: .4byte gUnknown_03004210
-_08024BF8: .4byte gStringVar4
-_08024BFC: .4byte 0x02000000
-_08024C00: .4byte 0x0001609c
-_08024C04:
- ldr r0, _08024C2C @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _08024C38
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl sub_802BBD4
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08024C38
- .align 2, 0
-_08024C2C: .4byte gMain
-_08024C30:
- ldr r1, _08024C48 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08024C38:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024C48: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80248FC
-
- thumb_func_start sub_8024C4C
-sub_8024C4C: @ 8024C4C
- push {lr}
- bl sub_80156DC
- ldr r1, _08024C60 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024C60: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8024C4C
-
- thumb_func_start atk6E_state0_side_becomes_attacker
-atk6E_state0_side_becomes_attacker: @ 8024C64
- push {lr}
- movs r0, 0
- bl GetBankByPlayerAI
- ldr r1, _08024C7C @ =gBankAttacker
- strb r0, [r1]
- ldr r1, _08024C80 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024C7C: .4byte gBankAttacker
-_08024C80: .4byte gBattlescriptCurrInstr
- thumb_func_end atk6E_state0_side_becomes_attacker
-
- thumb_func_start atk6F_8026810
-atk6F_8026810: @ 8024C84
- push {r4,r5,lr}
- ldr r5, _08024CB0 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08024CB4 @ =gActiveBank
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- bl EmitSpriteInvisibility
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08024CB0: .4byte gBattlescriptCurrInstr
-_08024CB4: .4byte gActiveBank
- thumb_func_end atk6F_8026810
-
- thumb_func_start atk70_record_ability_usage_of_side
-atk70_record_ability_usage_of_side: @ 8024CB8
- push {r4,lr}
- ldr r4, _08024CE0 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024CE4 @ =gActiveBank
- strb r0, [r1]
- ldrb r0, [r1]
- ldr r1, _08024CE8 @ =gLastUsedAbility
- ldrb r1, [r1]
- bl RecordAbilityBattle
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08024CE0: .4byte gBattlescriptCurrInstr
-_08024CE4: .4byte gActiveBank
-_08024CE8: .4byte gLastUsedAbility
- thumb_func_end atk70_record_ability_usage_of_side
-
- thumb_func_start sub_8024CEC
-sub_8024CEC: @ 8024CEC
- ldr r2, _08024D0C @ =gBattleTextBuff2
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x2
- strb r0, [r2, 0x1]
- ldr r0, _08024D10 @ =word_2024E82
- ldrh r1, [r0]
- strb r1, [r2, 0x2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r2, 0x3]
- movs r0, 0xFF
- strb r0, [r2, 0x4]
- bx lr
- .align 2, 0
-_08024D0C: .4byte gBattleTextBuff2
-_08024D10: .4byte word_2024E82
- thumb_func_end sub_8024CEC
-
- thumb_func_start atk71_80268A0
-atk71_80268A0: @ 8024D14
- push {lr}
- bl sub_8024CEC
- ldr r1, _08024D28 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024D28: .4byte gBattlescriptCurrInstr
- thumb_func_end atk71_80268A0
-
- thumb_func_start atk72_flee
-atk72_flee: @ 8024D2C
- push {lr}
- ldr r0, _08024D58 @ =gBank1
- ldrb r0, [r0]
- bl sub_8014AB8
- lsls r0, 24
- cmp r0, 0
- beq _08024D60
- ldr r3, _08024D5C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08024D68
- .align 2, 0
-_08024D58: .4byte gBank1
-_08024D5C: .4byte gBattlescriptCurrInstr
-_08024D60:
- ldr r1, _08024D6C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08024D68:
- pop {r0}
- bx r0
- .align 2, 0
-_08024D6C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk72_flee
-
- thumb_func_start atk73_cmd73
-atk73_cmd73: @ 8024D70
- push {r4,r5,lr}
- ldr r0, _08024DC0 @ =gBattleTypeFlags
- ldrh r0, [r0]
- movs r5, 0x1
- ands r5, r0
- cmp r5, 0
- bne _08024E12
- ldr r0, _08024DC4 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024DC8 @ =gActiveBank
- strb r0, [r1]
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08024DCC @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r4, [r1, 0x28]
- movs r0, 0x64
- muls r0, r4
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- cmp r0, 0
- bne _08024DAE
- movs r0, 0x1
-_08024DAE:
- cmp r0, 0x45
- bgt _08024DB6
- cmp r4, 0
- bne _08024DD8
-_08024DB6:
- ldr r0, _08024DD0 @ =0x02000000
- ldr r1, _08024DD4 @ =0x000160c1
- adds r0, r1
- strb r5, [r0]
- b _08024E12
- .align 2, 0
-_08024DC0: .4byte gBattleTypeFlags
-_08024DC4: .4byte gBattlescriptCurrInstr
-_08024DC8: .4byte gActiveBank
-_08024DCC: .4byte gBattleMons
-_08024DD0: .4byte 0x02000000
-_08024DD4: .4byte 0x000160c1
-_08024DD8:
- cmp r0, 0x27
- ble _08024DF0
- ldr r0, _08024DE8 @ =0x02000000
- ldr r1, _08024DEC @ =0x000160c1
- adds r0, r1
- movs r1, 0x1
- b _08024E10
- .align 2, 0
-_08024DE8: .4byte 0x02000000
-_08024DEC: .4byte 0x000160c1
-_08024DF0:
- cmp r0, 0x9
- ble _08024E08
- ldr r0, _08024E00 @ =0x02000000
- ldr r1, _08024E04 @ =0x000160c1
- adds r0, r1
- movs r1, 0x2
- b _08024E10
- .align 2, 0
-_08024E00: .4byte 0x02000000
-_08024E04: .4byte 0x000160c1
-_08024E08:
- ldr r0, _08024E20 @ =0x02000000
- ldr r1, _08024E24 @ =0x000160c1
- adds r0, r1
- movs r1, 0x3
-_08024E10:
- strb r1, [r0]
-_08024E12:
- ldr r1, _08024E28 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08024E20: .4byte 0x02000000
-_08024E24: .4byte 0x000160c1
-_08024E28: .4byte gBattlescriptCurrInstr
- thumb_func_end atk73_cmd73
-
- thumb_func_start atk74_hp_tresholds_2
-atk74_hp_tresholds_2: @ 8024E2C
- push {r4-r7,lr}
- ldr r0, _08024E8C @ =gBattleTypeFlags
- ldrh r0, [r0]
- movs r7, 0x1
- ands r7, r0
- cmp r7, 0
- bne _08024ED0
- ldr r0, _08024E90 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- adds r4, r0, 0
- ldr r0, _08024E94 @ =gActiveBank
- strb r4, [r0]
- movs r0, 0x1
- eors r4, r0
- lsls r4, 24
- lsrs r4, 24
- ldr r6, _08024E98 @ =0x02000000
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 23
- ldr r1, _08024E9C @ =0x000160bc
- adds r0, r1
- adds r0, r6
- ldrb r5, [r0]
- ldr r1, _08024EA0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r4, [r0, 0x28]
- subs r1, r5, r4
- movs r0, 0x64
- muls r0, r1
- adds r1, r5, 0
- bl __divsi3
- adds r1, r0, 0
- cmp r4, r5
- bcc _08024EA8
- ldr r1, _08024EA4 @ =0x000160c1
- adds r0, r6, r1
- strb r7, [r0]
- b _08024ED0
- .align 2, 0
-_08024E8C: .4byte gBattleTypeFlags
-_08024E90: .4byte gBattlescriptCurrInstr
-_08024E94: .4byte gActiveBank
-_08024E98: .4byte 0x02000000
-_08024E9C: .4byte 0x000160bc
-_08024EA0: .4byte gBattleMons
-_08024EA4: .4byte 0x000160c1
-_08024EA8:
- cmp r0, 0x1D
- bgt _08024EB8
- ldr r0, _08024EB4 @ =0x000160c1
- adds r1, r6, r0
- movs r0, 0x1
- b _08024ECE
- .align 2, 0
-_08024EB4: .4byte 0x000160c1
-_08024EB8:
- cmp r1, 0x45
- bgt _08024EC8
- ldr r0, _08024EC4 @ =0x000160c1
- adds r1, r6, r0
- movs r0, 0x2
- b _08024ECE
- .align 2, 0
-_08024EC4: .4byte 0x000160c1
-_08024EC8:
- ldr r0, _08024EE0 @ =0x000160c1
- adds r1, r6, r0
- movs r0, 0x3
-_08024ECE:
- strb r0, [r1]
-_08024ED0:
- ldr r1, _08024EE4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024EE0: .4byte 0x000160c1
-_08024EE4: .4byte gBattlescriptCurrInstr
- thumb_func_end atk74_hp_tresholds_2
-
- thumb_func_start atk75_8026A58
-atk75_8026A58: @ 8024EE8
- push {lr}
- sub sp, 0x4
- ldr r2, _08024F28 @ =gBankInMenu
- ldr r1, _08024F2C @ =gBankAttacker
- ldrb r0, [r1]
- strb r0, [r2]
- ldr r2, _08024F30 @ =gBattlePartyID
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r1, _08024F34 @ =gEnemyParty
- adds r0, r1
- ldr r1, _08024F38 @ =gLastUsedItem
- ldrh r1, [r1]
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0x1
- str r3, [sp]
- movs r3, 0
- bl sub_803E1B0
- ldr r1, _08024F3C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08024F28: .4byte gBankInMenu
-_08024F2C: .4byte gBankAttacker
-_08024F30: .4byte gBattlePartyID
-_08024F34: .4byte gEnemyParty
-_08024F38: .4byte gLastUsedItem
-_08024F3C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk75_8026A58
-
- thumb_func_start sub_8024F40
-sub_8024F40: @ 8024F40
- push {r4-r6,lr}
- ldr r4, _08024F64 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024F68 @ =gActiveBank
- strb r0, [r1]
- ldr r0, [r4]
- ldrb r0, [r0, 0x2]
- cmp r0, 0x6
- bls _08024F5A
- b _08025112
-_08024F5A:
- lsls r0, 2
- ldr r1, _08024F6C @ =_08024F70
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08024F64: .4byte gBattlescriptCurrInstr
-_08024F68: .4byte gActiveBank
-_08024F6C: .4byte _08024F70
- .align 2, 0
-_08024F70:
- .4byte _08024F8C
- .4byte _08024F9C
- .4byte _08024FFC
- .4byte _0802500C
- .4byte _08025024
- .4byte _08025060
- .4byte _08025098
-_08024F8C:
- ldr r0, _08024F98 @ =gActiveBank
- ldrb r0, [r0]
- bl CancelMultiTurnMoves
- b _08025112
- .align 2, 0
-_08024F98: .4byte gActiveBank
-_08024F9C:
- ldr r1, _08024FD8 @ =gBankAttacker
- ldr r4, _08024FDC @ =gBankTarget
- ldrb r0, [r4]
- strb r0, [r1]
- ldrb r0, [r1]
- bl GetBankSide
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08024FE0 @ =gSideTimer
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r2
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _08024FE8
- ldr r1, _08024FE4 @ =gBattleMons
- ldrb r2, [r2, 0x9]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08024FE8
- strb r2, [r4]
- b _08025112
- .align 2, 0
-_08024FD8: .4byte gBankAttacker
-_08024FDC: .4byte gBankTarget
-_08024FE0: .4byte gSideTimer
-_08024FE4: .4byte gBattleMons
-_08024FE8:
- ldr r0, _08024FF4 @ =gBankTarget
- ldr r1, _08024FF8 @ =gActiveBank
- ldrb r1, [r1]
- strb r1, [r0]
- b _08025112
- .align 2, 0
-_08024FF4: .4byte gBankTarget
-_08024FF8: .4byte gActiveBank
-_08024FFC:
- bl CanRunFromBattle
- ldr r1, _08025008 @ =gBattleCommunication
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_08025008: .4byte gBattleCommunication
-_0802500C:
- ldr r0, _0802501C @ =gCurrentMove
- ldrh r0, [r0]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08025020 @ =gBankTarget
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_0802501C: .4byte gCurrentMove
-_08025020: .4byte gBankTarget
-_08025024:
- ldr r2, _08025044 @ =gHitMarker
- ldr r1, _08025048 @ =gBitTable
- ldr r0, _0802504C @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r0, 28
- ldr r2, [r2]
- ands r2, r0
- cmp r2, 0
- beq _08025054
- ldr r1, _08025050 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_08025044: .4byte gHitMarker
-_08025048: .4byte gBitTable
-_0802504C: .4byte gActiveBank
-_08025050: .4byte gBattleCommunication
-_08025054:
- ldr r0, _0802505C @ =gBattleCommunication
- strb r2, [r0]
- b _08025112
- .align 2, 0
-_0802505C: .4byte gBattleCommunication
-_08025060:
- ldr r4, _08025090 @ =gSpecialStatuses
- ldr r3, _08025094 @ =gActiveBank
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_08025090: .4byte gSpecialStatuses
-_08025094: .4byte gActiveBank
-_08025098:
- ldr r3, _080250B8 @ =gBattlePartyID
- ldr r0, _080250BC @ =0x02000000
- ldr r1, _080250C0 @ =0x00016018
- adds r0, r1
- ldrh r2, [r3]
- ldrb r1, [r0]
- cmp r2, r1
- beq _080250B2
- ldrh r0, [r3, 0x4]
- cmp r0, r1
- bne _08025112
- cmp r2, r0
- bne _080250C8
-_080250B2:
- ldr r1, _080250C4 @ =gActiveBank
- movs r0, 0
- b _080250CC
- .align 2, 0
-_080250B8: .4byte gBattlePartyID
-_080250BC: .4byte 0x02000000
-_080250C0: .4byte 0x00016018
-_080250C4: .4byte gActiveBank
-_080250C8:
- ldr r1, _08025120 @ =gActiveBank
- movs r0, 0x2
-_080250CC:
- strb r0, [r1]
- adds r5, r1, 0
- ldrb r2, [r5]
- lsls r1, r2, 1
- ldr r0, _08025124 @ =0x020160e8
- adds r4, r1, r0
- movs r3, 0
- ldr r1, _08025128 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- ldrh r2, [r4]
- cmp r0, r2
- beq _0802510A
- adds r6, r5, 0
- movs r5, 0x58
- adds r2, r1, 0
-_080250F2:
- adds r3, 0x1
- cmp r3, 0x3
- bgt _0802510A
- lsls r1, r3, 1
- ldrb r0, [r6]
- muls r0, r5
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- ldrh r1, [r4]
- cmp r0, r1
- bne _080250F2
-_0802510A:
- cmp r3, 0x4
- bne _08025112
- movs r0, 0
- strh r0, [r4]
-_08025112:
- ldr r1, _0802512C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08025120: .4byte gActiveBank
-_08025124: .4byte 0x020160e8
-_08025128: .4byte gBattleMons
-_0802512C: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8024F40
-
- thumb_func_start atk77_setprotect
-atk77_setprotect: @ 8025130
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0x1
- ldr r2, _080251FC @ =gUnknown_02024C4C
- ldr r1, _08025200 @ =gBankAttacker
- ldrb r3, [r1]
- lsls r0, r3, 1
- adds r0, r2
- ldrh r0, [r0]
- mov r8, r1
- ldr r7, _08025204 @ =gDisableStructs
- cmp r0, 0xB6
- beq _08025160
- cmp r0, 0xC5
- beq _08025160
- cmp r0, 0xCB
- beq _08025160
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r7
- movs r1, 0
- strb r1, [r0, 0x8]
-_08025160:
- ldr r0, _08025208 @ =gCurrentMoveTurn
- ldrb r1, [r0]
- ldr r0, _0802520C @ =gNoOfAllBanks
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _08025170
- movs r6, 0
-_08025170:
- ldr r2, _08025210 @ =gProtectSuccessRates
- mov r5, r8
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r4, [r0, 0x8]
- lsls r4, 1
- adds r4, r2
- bl Random
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bls _08025224
- cmp r6, 0
- beq _08025224
- ldr r4, _08025214 @ =gBattleMoves
- ldr r3, _08025218 @ =gCurrentMove
- ldrh r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- cmp r0, 0x6F
- bne _080251C0
- ldr r0, _0802521C @ =gProtectStructs
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08025220 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
-_080251C0:
- ldrh r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- cmp r0, 0x74
- bne _080251E6
- ldr r0, _0802521C @ =gProtectStructs
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08025220 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_080251E6:
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r0, [r1, 0x8]
- adds r0, 0x1
- strb r0, [r1, 0x8]
- b _08025246
- .align 2, 0
-_080251FC: .4byte gUnknown_02024C4C
-_08025200: .4byte gBankAttacker
-_08025204: .4byte gDisableStructs
-_08025208: .4byte gCurrentMoveTurn
-_0802520C: .4byte gNoOfAllBanks
-_08025210: .4byte gProtectSuccessRates
-_08025214: .4byte gBattleMoves
-_08025218: .4byte gCurrentMove
-_0802521C: .4byte gProtectStructs
-_08025220: .4byte gBattleCommunication
-_08025224:
- ldr r2, _08025258 @ =gDisableStructs
- ldr r0, _0802525C @ =gBankAttacker
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x8]
- ldr r1, _08025260 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- ldr r2, _08025264 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_08025246:
- ldr r1, _08025268 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025258: .4byte gDisableStructs
-_0802525C: .4byte gBankAttacker
-_08025260: .4byte gBattleCommunication
-_08025264: .4byte gBattleMoveFlags
-_08025268: .4byte gBattlescriptCurrInstr
- thumb_func_end atk77_setprotect
-
- thumb_func_start atk78_faintifabilitynotdamp
-atk78_faintifabilitynotdamp: @ 802526C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08025328 @ =gBattleExecBuffer
- ldr r2, [r0]
- cmp r2, 0
- bne _08025370
- ldr r1, _0802532C @ =gBankTarget
- strb r2, [r1]
- ldr r0, _08025330 @ =gNoOfAllBanks
- ldrb r3, [r0]
- adds r5, r1, 0
- mov r8, r0
- ldr r6, _08025334 @ =gBattleMons
- cmp r2, r3
- bcs _080252B8
- adds r0, r6, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _080252B8
- adds r2, r3, 0
- adds r4, r6, 0
- movs r3, 0x58
-_0802529C:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r2
- bcs _080252B8
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _0802529C
-_080252B8:
- ldrb r0, [r5]
- mov r1, r8
- ldrb r1, [r1]
- cmp r0, r1
- bne _08025354
- ldr r4, _08025338 @ =gActiveBank
- ldr r7, _0802533C @ =gBankAttacker
- ldrb r0, [r7]
- strb r0, [r4]
- ldr r2, _08025340 @ =gBattleMoveDamage
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r6
- ldrh r0, [r0, 0x28]
- str r0, [r2]
- ldr r1, _08025344 @ =0x00007fff
- movs r0, 0
- bl EmitHealthBarUpdate
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r1, _08025348 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- movs r0, 0
- strb r0, [r5]
- mov r2, r8
- ldrb r0, [r2]
- cmp r0, 0
- beq _08025370
- adds r3, r5, 0
- ldrb r5, [r7]
- ldr r7, _0802534C @ =gBitTable
- adds r4, r0, 0
- ldr r6, _08025350 @ =gAbsentBankFlags
-_08025304:
- ldrb r2, [r3]
- cmp r2, r5
- beq _0802531A
- ldrb r0, [r6]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r7
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _08025370
-_0802531A:
- adds r0, r2, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcc _08025304
- b _08025370
- .align 2, 0
-_08025328: .4byte gBattleExecBuffer
-_0802532C: .4byte gBankTarget
-_08025330: .4byte gNoOfAllBanks
-_08025334: .4byte gBattleMons
-_08025338: .4byte gActiveBank
-_0802533C: .4byte gBankAttacker
-_08025340: .4byte gBattleMoveDamage
-_08025344: .4byte 0x00007fff
-_08025348: .4byte gBattlescriptCurrInstr
-_0802534C: .4byte gBitTable
-_08025350: .4byte gAbsentBankFlags
-_08025354:
- ldr r1, _0802537C @ =gLastUsedAbility
- movs r0, 0x6
- strb r0, [r1]
- ldrb r0, [r5]
- movs r1, 0x58
- muls r1, r0
- adds r1, r6
- adds r1, 0x20
- ldrb r1, [r1]
- bl RecordAbilityBattle
- ldr r1, _08025380 @ =gBattlescriptCurrInstr
- ldr r0, _08025384 @ =gUnknown_081D9834
- str r0, [r1]
-_08025370:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802537C: .4byte gLastUsedAbility
-_08025380: .4byte gBattlescriptCurrInstr
-_08025384: .4byte gUnknown_081D9834
- thumb_func_end atk78_faintifabilitynotdamp
-
- thumb_func_start atk79_setuserhptozero
-atk79_setuserhptozero: @ 8025388
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080253D4 @ =gBattleExecBuffer
- ldr r3, [r0]
- cmp r3, 0
- bne _080253CC
- ldr r4, _080253D8 @ =gActiveBank
- ldr r0, _080253DC @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _080253E0 @ =gBattleMons
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r0, r1
- strh r3, [r0, 0x28]
- ldrb r0, [r4]
- muls r0, r2
- adds r1, 0x28
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2A
- movs r2, 0
- movs r3, 0x2
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r1, _080253E4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_080253CC:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080253D4: .4byte gBattleExecBuffer
-_080253D8: .4byte gActiveBank
-_080253DC: .4byte gBankAttacker
-_080253E0: .4byte gBattleMons
-_080253E4: .4byte gBattlescriptCurrInstr
- thumb_func_end atk79_setuserhptozero
-
- thumb_func_start sub_80253E8
-sub_80253E8: @ 80253E8
- push {r4-r7,lr}
- ldr r3, _08025460 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r4, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r4, r0
- ldr r0, _08025464 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- adds r7, r3, 0
- cmp r0, 0
- beq _08025480
- ldr r0, _08025468 @ =gBankTarget
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r2, _0802546C @ =gBankAttacker
- lsls r1, 24
- lsrs r1, 24
- adds r3, r0, 0
- ldr r6, _08025470 @ =gAbsentBankFlags
- ldr r5, _08025474 @ =gBitTable
- ldr r0, _08025478 @ =gNoOfAllBanks
- mov r12, r0
- ldrb r0, [r2]
- cmp r1, r0
- bne _0802543E
-_0802542E:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2]
- cmp r0, r1
- beq _0802542E
-_0802543E:
- ldrb r0, [r6]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r5
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _0802542E
- ldrb r0, [r3]
- mov r2, r12
- ldrb r2, [r2]
- cmp r0, r2
- bcc _0802547C
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- b _08025484
- .align 2, 0
-_08025460: .4byte gBattlescriptCurrInstr
-_08025464: .4byte gBattleTypeFlags
-_08025468: .4byte gBankTarget
-_0802546C: .4byte gBankAttacker
-_08025470: .4byte gAbsentBankFlags
-_08025474: .4byte gBitTable
-_08025478: .4byte gNoOfAllBanks
-_0802547C:
- str r4, [r7]
- b _08025484
-_08025480:
- adds r0, r2, 0x5
- str r0, [r3]
-_08025484:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80253E8
-
- thumb_func_start sub_802548C
-sub_802548C: @ 802548C
- push {r4-r6,lr}
- ldr r4, _080254E8 @ =gBattlescriptCurrInstr
- ldr r1, [r4]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldrb r0, [r1, 0x5]
- ldr r3, _080254EC @ =gBankTarget
- cmp r0, 0x1
- bne _080254B4
- ldr r0, _080254F0 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r3]
-_080254B4:
- ldr r1, _080254F4 @ =gBattleMoveDamage
- ldr r6, _080254F8 @ =gBattleMons
- ldrb r0, [r3]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _080254CE
- movs r0, 0x1
- str r0, [r1]
-_080254CE:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldrb r0, [r3]
- muls r0, r5
- adds r0, r6
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- bne _080254FC
- str r2, [r4]
- b _08025502
- .align 2, 0
-_080254E8: .4byte gBattlescriptCurrInstr
-_080254EC: .4byte gBankTarget
-_080254F0: .4byte gBankAttacker
-_080254F4: .4byte gBattleMoveDamage
-_080254F8: .4byte gBattleMons
-_080254FC:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_08025502:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_802548C
-
- thumb_func_start sub_8025508
-sub_8025508: @ 8025508
- push {r4-r7,lr}
- ldr r3, _0802556C @ =0x02000000
- ldr r4, _08025570 @ =gBankAttacker
- ldrb r2, [r4]
- lsls r1, r2, 1
- ldr r5, _08025574 @ =0x000160ac
- adds r0, r1, r5
- adds r0, r3
- ldrb r7, [r0]
- ldr r0, _08025578 @ =0x000160ad
- adds r1, r0
- adds r1, r3
- ldrb r0, [r1]
- lsls r0, 8
- orrs r7, r0
- lsls r2, 2
- ldr r1, _0802557C @ =0x00016100
- adds r0, r2, r1
- adds r0, r3
- ldrb r6, [r0]
- adds r5, 0x55
- adds r0, r2, r5
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 8
- orrs r6, r0
- adds r1, 0x2
- adds r0, r2, r1
- adds r0, r3
- ldrb r5, [r0]
- ldr r0, _08025580 @ =0x00016103
- adds r2, r0
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r5, r0
- cmp r7, 0
- beq _08025594
- ldr r0, _08025584 @ =0x0000ffff
- cmp r7, r0
- beq _08025594
- ldr r2, _08025588 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _0802558C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08025590 @ =gCurrentMove
- strh r7, [r4]
- b _0802565C
- .align 2, 0
-_0802556C: .4byte 0x02000000
-_08025570: .4byte gBankAttacker
-_08025574: .4byte 0x000160ac
-_08025578: .4byte 0x000160ad
-_0802557C: .4byte 0x00016100
-_08025580: .4byte 0x00016103
-_08025584: .4byte 0x0000ffff
-_08025588: .4byte gHitMarker
-_0802558C: .4byte 0xfffffbff
-_08025590: .4byte gCurrentMove
-_08025594:
- cmp r6, 0
- beq _08025644
- cmp r5, 0
- beq _08025618
- ldr r0, _080255C4 @ =0x0000ffff
- cmp r6, r0
- beq _08025618
- cmp r5, r0
- beq _08025618
- ldr r2, _080255C8 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _080255CC @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080255D4
- ldr r0, _080255D0 @ =gCurrentMove
- strh r6, [r0]
- b _080255D8
- .align 2, 0
-_080255C4: .4byte 0x0000ffff
-_080255C8: .4byte gHitMarker
-_080255CC: .4byte 0xfffffbff
-_080255D0: .4byte gCurrentMove
-_080255D4:
- ldr r0, _08025604 @ =gCurrentMove
- strh r5, [r0]
-_080255D8:
- adds r5, r0, 0
- ldrh r0, [r5]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08025608 @ =gBankTarget
- strb r0, [r1]
- ldr r4, _0802560C @ =gBattlescriptCurrInstr
- ldr r3, _08025610 @ =gUnknown_081D6BBC
- ldr r2, _08025614 @ =gBattleMoves
- ldrh r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r4]
- b _080256C0
- .align 2, 0
-_08025604: .4byte gCurrentMove
-_08025608: .4byte gBankTarget
-_0802560C: .4byte gBattlescriptCurrInstr
-_08025610: .4byte gUnknown_081D6BBC
-_08025614: .4byte gBattleMoves
-_08025618:
- cmp r6, 0
- beq _08025644
- ldr r0, _08025634 @ =0x0000ffff
- cmp r6, r0
- beq _08025644
- ldr r2, _08025638 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _0802563C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08025640 @ =gCurrentMove
- strh r6, [r4]
- b _0802565C
- .align 2, 0
-_08025634: .4byte 0x0000ffff
-_08025638: .4byte gHitMarker
-_0802563C: .4byte 0xfffffbff
-_08025640: .4byte gCurrentMove
-_08025644:
- cmp r5, 0
- beq _080256A4
- ldr r0, _08025684 @ =0x0000ffff
- cmp r5, r0
- beq _080256A4
- ldr r2, _08025688 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _0802568C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08025690 @ =gCurrentMove
- strh r5, [r4]
-_0802565C:
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08025694 @ =gBankTarget
- strb r0, [r1]
- ldr r5, _08025698 @ =gBattlescriptCurrInstr
- ldr r3, _0802569C @ =gUnknown_081D6BBC
- ldr r2, _080256A0 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r5]
- b _080256C0
- .align 2, 0
-_08025684: .4byte 0x0000ffff
-_08025688: .4byte gHitMarker
-_0802568C: .4byte 0xfffffbff
-_08025690: .4byte gCurrentMove
-_08025694: .4byte gBankTarget
-_08025698: .4byte gBattlescriptCurrInstr
-_0802569C: .4byte gUnknown_081D6BBC
-_080256A0: .4byte gBattleMoves
-_080256A4:
- ldr r2, _080256C8 @ =gSpecialStatuses
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _080256CC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_080256C0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080256C8: .4byte gSpecialStatuses
-_080256CC: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8025508
-
- thumb_func_start sub_80256D0
-sub_80256D0: @ 80256D0
- push {lr}
- ldr r2, _080256F0 @ =gBattleWeather
- ldrh r0, [r2]
- movs r1, 0x7
- ands r1, r0
- cmp r1, 0
- beq _080256FC
- ldr r2, _080256F4 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080256F8 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _0802570C
- .align 2, 0
-_080256F0: .4byte gBattleWeather
-_080256F4: .4byte gBattleMoveFlags
-_080256F8: .4byte gBattleCommunication
-_080256FC:
- movs r0, 0x1
- strh r0, [r2]
- ldr r0, _08025718 @ =gBattleCommunication
- strb r1, [r0, 0x5]
- ldr r0, _0802571C @ =gWishFutureKnock
- adds r0, 0x28
- movs r1, 0x5
- strb r1, [r0]
-_0802570C:
- ldr r1, _08025720 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08025718: .4byte gBattleCommunication
-_0802571C: .4byte gWishFutureKnock
-_08025720: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80256D0
-
- thumb_func_start atk7E_setreflect
-atk7E_setreflect: @ 8025724
- push {r4-r6,lr}
- ldr r5, _08025754 @ =gBankAttacker
- ldrb r0, [r5]
- bl GetBankIdentity
- ldr r6, _08025758 @ =gSideAffecting
- movs r4, 0x1
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08025764
- ldr r2, _0802575C @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08025760 @ =gBattleCommunication
- movs r0, 0
- b _080257C4
- .align 2, 0
-_08025754: .4byte gBankAttacker
-_08025758: .4byte gSideAffecting
-_0802575C: .4byte gBattleMoveFlags
-_08025760: .4byte gBattleCommunication
-_08025764:
- ldrb r0, [r5]
- bl GetBankIdentity
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r5]
- bl GetBankIdentity
- ldr r2, _080257B4 @ =gSideTimer
- adds r1, r4, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0]
- ldr r0, _080257B8 @ =gBattleTypeFlags
- ldrh r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _080257C0
- movs r0, 0x1
- bl CountAliveMons
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _080257C0
- ldr r0, _080257BC @ =gBattleCommunication
- strb r1, [r0, 0x5]
- b _080257C6
- .align 2, 0
-_080257B4: .4byte gSideTimer
-_080257B8: .4byte gBattleTypeFlags
-_080257BC: .4byte gBattleCommunication
-_080257C0:
- ldr r1, _080257D4 @ =gBattleCommunication
- movs r0, 0x1
-_080257C4:
- strb r0, [r1, 0x5]
-_080257C6:
- ldr r1, _080257D8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080257D4: .4byte gBattleCommunication
-_080257D8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk7E_setreflect
-
- thumb_func_start sub_80257DC
-sub_80257DC: @ 80257DC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r7, _0802581C @ =gBattleMoveFlags
- ldrb r5, [r7]
- movs r0, 0x29
- ands r0, r5
- cmp r0, 0
- bne _0802580E
- ldr r0, _08025820 @ =gStatuses3
- mov r9, r0
- ldr r1, _08025824 @ =gBankTarget
- mov r8, r1
- ldrb r4, [r1]
- lsls r0, r4, 2
- mov r2, r9
- adds r6, r0, r2
- ldr r2, [r6]
- movs r0, 0x4
- mov r12, r0
- adds r3, r2, 0
- ands r3, r0
- cmp r3, 0
- beq _0802582C
-_0802580E:
- movs r0, 0x1
- orrs r0, r5
- strb r0, [r7]
- ldr r1, _08025828 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0802587C
- .align 2, 0
-_0802581C: .4byte gBattleMoveFlags
-_08025820: .4byte gStatuses3
-_08025824: .4byte gBankTarget
-_08025828: .4byte gBattleCommunication
-_0802582C:
- ldr r1, _08025858 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, r0, r1
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xC
- beq _08025848
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xC
- bne _08025860
-_08025848:
- movs r0, 0x1
- orrs r0, r5
- strb r0, [r7]
- ldr r1, _0802585C @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _0802587C
- .align 2, 0
-_08025858: .4byte gBattleMons
-_0802585C: .4byte gBattleCommunication
-_08025860:
- ldr r0, _08025890 @ =gBankAttacker
- ldrb r0, [r0]
- orrs r2, r0
- str r2, [r6]
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 2
- add r1, r9
- ldr r0, [r1]
- mov r2, r12
- orrs r0, r2
- str r0, [r1]
- ldr r0, _08025894 @ =gBattleCommunication
- strb r3, [r0, 0x5]
-_0802587C:
- ldr r1, _08025898 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025890: .4byte gBankAttacker
-_08025894: .4byte gBattleCommunication
-_08025898: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80257DC
-
- thumb_func_start atk80_manipulatedamage
-atk80_manipulatedamage: @ 802589C
- push {r4,lr}
- ldr r1, _080258B4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- ldrb r2, [r0, 0x1]
- adds r4, r1, 0
- cmp r2, 0x1
- beq _080258CC
- cmp r2, 0x1
- bgt _080258B8
- cmp r2, 0
- beq _080258BE
- b _0802590C
- .align 2, 0
-_080258B4: .4byte gBattlescriptCurrInstr
-_080258B8:
- cmp r2, 0x2
- beq _08025904
- b _0802590C
-_080258BE:
- ldr r1, _080258C8 @ =gBattleMoveDamage
- ldr r0, [r1]
- negs r0, r0
- b _0802590A
- .align 2, 0
-_080258C8: .4byte gBattleMoveDamage
-_080258CC:
- ldr r3, _080258F8 @ =gBattleMoveDamage
- ldr r0, [r3]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- str r0, [r3]
- cmp r0, 0
- bne _080258DE
- str r2, [r3]
-_080258DE:
- ldr r2, _080258FC @ =gBattleMons
- ldr r0, _08025900 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2C]
- lsrs r1, r0, 1
- ldr r0, [r3]
- cmp r1, r0
- bge _0802590C
- str r1, [r3]
- b _0802590C
- .align 2, 0
-_080258F8: .4byte gBattleMoveDamage
-_080258FC: .4byte gBattleMons
-_08025900: .4byte gBankTarget
-_08025904:
- ldr r1, _08025918 @ =gBattleMoveDamage
- ldr r0, [r1]
- lsls r0, 1
-_0802590A:
- str r0, [r1]
-_0802590C:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08025918: .4byte gBattleMoveDamage
- thumb_func_end atk80_manipulatedamage
-
- thumb_func_start atk81_setrest
-atk81_setrest: @ 802591C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r0, _08025974 @ =gBattlescriptCurrInstr
- mov r12, r0
- ldr r1, [r0]
- ldrb r6, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r6, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r6, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r6, r0
- ldr r5, _08025978 @ =gActiveBank
- ldr r2, _0802597C @ =gBankTarget
- ldr r0, _08025980 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r2]
- strb r0, [r5]
- ldr r4, _08025984 @ =gBattleMoveDamage
- ldr r1, _08025988 @ =gBattleMons
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- adds r0, r1
- ldrh r0, [r0, 0x2C]
- negs r0, r0
- str r0, [r4]
- ldrb r0, [r2]
- adds r4, r0, 0
- muls r4, r3
- adds r0, r4, r1
- ldrh r3, [r0, 0x28]
- adds r7, r5, 0
- adds r5, r2, 0
- adds r2, r1, 0
- ldrh r0, [r0, 0x2C]
- cmp r3, r0
- bne _0802598C
- mov r0, r12
- str r6, [r0]
- b _080259DC
- .align 2, 0
-_08025974: .4byte gBattlescriptCurrInstr
-_08025978: .4byte gActiveBank
-_0802597C: .4byte gBankTarget
-_08025980: .4byte gBankAttacker
-_08025984: .4byte gBattleMoveDamage
-_08025988: .4byte gBattleMons
-_0802598C:
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r4, r0
- ldr r1, [r0]
- movs r0, 0xF8
- ands r1, r0
- cmp r1, 0
- beq _080259A8
- ldr r1, _080259A4 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _080259AC
- .align 2, 0
-_080259A4: .4byte gBattleCommunication
-_080259A8:
- ldr r0, _080259E4 @ =gBattleCommunication
- strb r1, [r0, 0x5]
-_080259AC:
- ldrb r0, [r5]
- movs r3, 0x58
- muls r0, r3
- adds r2, 0x4C
- adds r0, r2
- movs r1, 0x3
- str r1, [r0]
- ldrb r0, [r7]
- muls r0, r3
- adds r0, r2
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r7]
- bl MarkBufferBankForExecution
- ldr r1, _080259E8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_080259DC:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080259E4: .4byte gBattleCommunication
-_080259E8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk81_setrest
-
- thumb_func_start atk82_jumpifnotfirstturn
-atk82_jumpifnotfirstturn: @ 80259EC
- push {r4,r5,lr}
- ldr r5, _08025A20 @ =gBattlescriptCurrInstr
- ldr r4, [r5]
- ldrb r3, [r4, 0x1]
- ldrb r0, [r4, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r4, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldr r2, _08025A24 @ =gDisableStructs
- ldr r0, _08025A28 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x16]
- cmp r0, 0
- beq _08025A2C
- adds r0, r4, 0x5
- str r0, [r5]
- b _08025A2E
- .align 2, 0
-_08025A20: .4byte gBattlescriptCurrInstr
-_08025A24: .4byte gDisableStructs
-_08025A28: .4byte gBankAttacker
-_08025A2C:
- str r3, [r5]
-_08025A2E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end atk82_jumpifnotfirstturn
-
- thumb_func_start sub_8025A34
-sub_8025A34: @ 8025A34
- ldr r1, _08025A40 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08025A40: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8025A34
-
- thumb_func_start sub_8025A44
-sub_8025A44: @ 8025A44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r0, _08025A9C @ =gNoOfAllBanks
- ldrb r1, [r0]
- mov r8, r0
- cmp r2, r1
- bge _08025AB8
- ldr r0, _08025AA0 @ =gBattleMons
- mov r12, r0
- movs r0, 0x58
- muls r0, r3
- add r0, r12
- adds r5, r0, 0
- adds r5, 0x20
- ldr r6, _08025AA4 @ =0x02016003
- movs r3, 0
- ldr r7, _08025AA8 @ =gBattleCommunication
- adds r4, r1, 0
-_08025A70:
- mov r0, r12
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- beq _08025AB0
- ldrb r0, [r5]
- cmp r0, 0x2B
- beq _08025AB0
- movs r3, 0
- strb r2, [r6]
- ldr r1, _08025AAC @ =gBankTarget
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08025AD0
- cmp r0, r2
- beq _08025AC4
- movs r0, 0x1
- strb r0, [r7, 0x5]
- b _08025AB8
- .align 2, 0
-_08025A9C: .4byte gNoOfAllBanks
-_08025AA0: .4byte gBattleMons
-_08025AA4: .4byte 0x02016003
-_08025AA8: .4byte gBattleCommunication
-_08025AAC: .4byte gBankTarget
-_08025AB0:
- adds r3, 0x58
- adds r2, 0x1
- cmp r2, r4
- blt _08025A70
-_08025AB8:
- mov r1, r8
- ldrb r1, [r1]
- cmp r2, r1
- beq _08025AD4
- movs r0, 0x1
- b _08025AD6
-_08025AC4:
- ldr r0, _08025ACC @ =gBattleCommunication
- strb r3, [r0, 0x5]
- b _08025AB8
- .align 2, 0
-_08025ACC: .4byte gBattleCommunication
-_08025AD0:
- strb r2, [r1]
- b _08025AB8
-_08025AD4:
- movs r0, 0
-_08025AD6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8025A44
-
- thumb_func_start sub_8025AE0
-sub_8025AE0: @ 8025AE0
- push {r4-r6,lr}
- ldr r5, _08025B0C @ =gBattlescriptCurrInstr
- ldr r1, [r5]
- ldrb r4, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r4, r0
- ldr r6, _08025B10 @ =gBankTarget
- ldrb r0, [r6]
- bl sub_8025A44
- lsls r0, 24
- cmp r0, 0
- beq _08025B14
- str r4, [r5]
- b _08025B56
- .align 2, 0
-_08025B0C: .4byte gBattlescriptCurrInstr
-_08025B10: .4byte gBankTarget
-_08025B14:
- ldr r1, _08025B44 @ =gBattleMons
- ldrb r3, [r6]
- movs r0, 0x58
- muls r0, r3
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- adds r1, r0, 0
- cmp r1, 0xF
- beq _08025B2C
- cmp r1, 0x48
- bne _08025B50
-_08025B2C:
- ldr r2, _08025B48 @ =gLastUsedAbility
- strb r0, [r2]
- ldr r1, _08025B4C @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- str r4, [r5]
- ldrb r1, [r2]
- adds r0, r3, 0
- bl RecordAbilityBattle
- b _08025B56
- .align 2, 0
-_08025B44: .4byte gBattleMons
-_08025B48: .4byte gLastUsedAbility
-_08025B4C: .4byte gBattleCommunication
-_08025B50:
- ldr r0, [r5]
- adds r0, 0x5
- str r0, [r5]
-_08025B56:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8025AE0
-
- thumb_func_start sub_8025B5C
-sub_8025B5C: @ 8025B5C
- push {r4,r5,lr}
- ldr r5, _08025B84 @ =gDisableStructs
- ldr r4, _08025B88 @ =gBankAttacker
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x9]
- cmp r0, 0x3
- bne _08025B94
- ldr r2, _08025B8C @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08025B90 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08025BBE
- .align 2, 0
-_08025B84: .4byte gDisableStructs
-_08025B88: .4byte gBankAttacker
-_08025B8C: .4byte gBattleMoveFlags
-_08025B90: .4byte gBattleCommunication
-_08025B94:
- adds r0, 0x1
- movs r3, 0
- strb r0, [r1, 0x9]
- ldr r2, _08025BCC @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x1
- strb r0, [r2, 0x1]
- strb r0, [r2, 0x2]
- strb r0, [r2, 0x3]
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x9]
- strb r0, [r2, 0x4]
- movs r0, 0xFF
- strb r0, [r2, 0x5]
- ldr r0, _08025BD0 @ =gBattleCommunication
- strb r3, [r0, 0x5]
-_08025BBE:
- ldr r1, _08025BD4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08025BCC: .4byte gBattleTextBuff1
-_08025BD0: .4byte gBattleCommunication
-_08025BD4: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8025B5C
-
- thumb_func_start atk86_stockpiletobasedamage
-atk86_stockpiletobasedamage: @ 8025BD8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r3, _08025C10 @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldr r7, _08025C14 @ =gDisableStructs
- ldr r6, _08025C18 @ =gBankAttacker
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- bne _08025C1C
- str r2, [r3]
- b _08025CC2
- .align 2, 0
-_08025C10: .4byte gBattlescriptCurrInstr
-_08025C14: .4byte gDisableStructs
-_08025C18: .4byte gBankAttacker
-_08025C1C:
- ldr r0, _08025CD0 @ =gBattleCommunication
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- beq _08025CA8
- ldr r0, _08025CD4 @ =gBattleMoveDamage
- mov r8, r0
- ldr r4, _08025CD8 @ =gSideAffecting
- ldr r5, _08025CDC @ =gBankTarget
- ldrb r0, [r5]
- bl GetBankIdentity
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldrb r0, [r6]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _08025CE0 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r5]
- muls r1, r4
- adds r1, r2
- ldr r2, _08025CE4 @ =gCurrentMove
- ldrh r2, [r2]
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- ldrb r4, [r6]
- str r4, [sp, 0x8]
- ldrb r4, [r5]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldrb r2, [r6]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r7
- ldrb r1, [r1, 0x9]
- adds r3, r0, 0
- muls r3, r1
- mov r1, r8
- str r3, [r1]
- ldr r2, _08025CE8 @ =0x02000000
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x9]
- ldr r1, _08025CEC @ =0x00016002
- adds r2, r1
- strb r0, [r2]
- ldr r1, _08025CF0 @ =gProtectStructs
- ldrb r0, [r6]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _08025CA8
- lsls r0, r3, 4
- subs r0, r3
- movs r1, 0xA
- bl __divsi3
- mov r1, r8
- str r0, [r1]
-_08025CA8:
- ldr r2, _08025CF4 @ =gDisableStructs
- ldr r0, _08025CF8 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x9]
- ldr r1, _08025CFC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08025CC2:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025CD0: .4byte gBattleCommunication
-_08025CD4: .4byte gBattleMoveDamage
-_08025CD8: .4byte gSideAffecting
-_08025CDC: .4byte gBankTarget
-_08025CE0: .4byte gBattleMons
-_08025CE4: .4byte gCurrentMove
-_08025CE8: .4byte 0x02000000
-_08025CEC: .4byte 0x00016002
-_08025CF0: .4byte gProtectStructs
-_08025CF4: .4byte gDisableStructs
-_08025CF8: .4byte gBankAttacker
-_08025CFC: .4byte gBattlescriptCurrInstr
- thumb_func_end atk86_stockpiletobasedamage
-
- thumb_func_start sub_8025D00
-sub_8025D00: @ 8025D00
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _08025D40 @ =gBattlescriptCurrInstr
- ldr r1, [r7]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldr r0, _08025D44 @ =gDisableStructs
- mov r8, r0
- ldr r6, _08025D48 @ =gBankAttacker
- ldrb r3, [r6]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- mov r1, r8
- adds r4, r0, r1
- ldrb r1, [r4, 0x9]
- cmp r1, 0
- bne _08025D50
- str r2, [r7]
- ldr r0, _08025D4C @ =gBattleCommunication
- strb r1, [r0, 0x5]
- b _08025DD0
- .align 2, 0
-_08025D40: .4byte gBattlescriptCurrInstr
-_08025D44: .4byte gDisableStructs
-_08025D48: .4byte gBankAttacker
-_08025D4C: .4byte gBattleCommunication
-_08025D50:
- ldr r1, _08025D74 @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, r0, r1
- ldrh r0, [r1, 0x2C]
- ldrh r3, [r1, 0x28]
- cmp r0, r3
- bne _08025D80
- movs r0, 0
- strb r0, [r4, 0x9]
- str r2, [r7]
- ldr r1, _08025D78 @ =gBankTarget
- ldrb r0, [r6]
- strb r0, [r1]
- ldr r1, _08025D7C @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08025DD0
- .align 2, 0
-_08025D74: .4byte gBattleMons
-_08025D78: .4byte gBankTarget
-_08025D7C: .4byte gBattleCommunication
-_08025D80:
- ldr r5, _08025DDC @ =gBattleMoveDamage
- ldrh r0, [r1, 0x2C]
- ldrb r1, [r4, 0x9]
- movs r2, 0x3
- subs r2, r1
- movs r4, 0x1
- adds r1, r4, 0
- lsls r1, r2
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _08025D9C
- str r4, [r5]
-_08025D9C:
- ldr r0, [r5]
- negs r0, r0
- str r0, [r5]
- ldr r2, _08025DE0 @ =0x02000000
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x9]
- ldr r1, _08025DE4 @ =0x00016002
- adds r2, r1
- movs r3, 0
- strb r0, [r2]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- strb r3, [r0, 0x9]
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- ldr r1, _08025DE8 @ =gBankTarget
- ldrb r0, [r6]
- strb r0, [r1]
-_08025DD0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025DDC: .4byte gBattleMoveDamage
-_08025DE0: .4byte 0x02000000
-_08025DE4: .4byte 0x00016002
-_08025DE8: .4byte gBankTarget
- thumb_func_end sub_8025D00
-
- thumb_func_start atk88_negativedamage
-atk88_negativedamage: @ 8025DEC
- push {lr}
- ldr r2, _08025E14 @ =gBattleMoveDamage
- ldr r0, _08025E18 @ =gHP_dealt
- ldr r0, [r0]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- negs r0, r0
- str r0, [r2]
- cmp r0, 0
- bne _08025E08
- movs r0, 0x1
- negs r0, r0
- str r0, [r2]
-_08025E08:
- ldr r1, _08025E1C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08025E14: .4byte gBattleMoveDamage
-_08025E18: .4byte gHP_dealt
-_08025E1C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk88_negativedamage
-
- thumb_func_start sub_8025E20
-sub_8025E20: @ 8025E20
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r3
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r0, 0
- mov r9, r0
- mov r10, r0
- movs r0, 0x40
- ands r0, r5
- cmp r0, 0
- beq _08025E54
- ldr r0, _08025E4C @ =gActiveBank
- ldr r1, _08025E50 @ =gBankAttacker
- b _08025E58
- .align 2, 0
-_08025E4C: .4byte gActiveBank
-_08025E50: .4byte gBankAttacker
-_08025E54:
- ldr r0, _08025EF8 @ =gActiveBank
- ldr r1, _08025EFC @ =gBankTarget
-_08025E58:
- ldrb r1, [r1]
- strb r1, [r0]
- movs r0, 0xBF
- ands r5, r0
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- beq _08025E72
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08025E72:
- movs r0, 0x7F
- ands r5, r0
- movs r0, 0x20
- ands r0, r5
- cmp r0, 0
- beq _08025E88
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
-_08025E88:
- movs r0, 0xDF
- ands r5, r0
- ldr r1, _08025F00 @ =gBattleTextBuff1
- movs r4, 0
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- strb r7, [r1, 0x2]
- movs r3, 0x1
- negs r3, r3
- mov r12, r3
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- lsls r0, r6, 24
- cmp r0, 0
- blt _08025EAC
- b _080261B0
-_08025EAC:
- ldr r4, _08025F04 @ =gSideTimer
- ldr r1, _08025EF8 @ =gActiveBank
- ldrb r0, [r1]
- bl GetBankIdentity
- movs r1, 0x1
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- beq _08025F54
- mov r2, r9
- cmp r2, 0
- bne _08025F54
- ldr r0, _08025F08 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08025F84
- cmp r5, 0x1
- bne _08025F74
- ldr r4, _08025F0C @ =gSpecialStatuses
- ldr r3, _08025EF8 @ =gActiveBank
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _08025F14
- ldr r0, _08025F10 @ =gBattlescriptCurrInstr
- mov r4, r8
- str r4, [r0]
- b _08025F74
- .align 2, 0
-_08025EF8: .4byte gActiveBank
-_08025EFC: .4byte gBankTarget
-_08025F00: .4byte gBattleTextBuff1
-_08025F04: .4byte gSideTimer
-_08025F08: .4byte gCurrentMove
-_08025F0C: .4byte gSpecialStatuses
-_08025F10: .4byte gBattlescriptCurrInstr
-_08025F14:
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08025F40 @ =0x02000000
- ldr r6, _08025F44 @ =gActiveBank
- ldrb r1, [r6]
- ldr r2, _08025F48 @ =0x00016003
- adds r0, r2
- strb r1, [r0]
- ldr r1, _08025F4C @ =gBattlescriptCurrInstr
- ldr r0, _08025F50 @ =gUnknown_081D9128
- str r0, [r1]
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _08025F74
- .align 2, 0
-_08025F40: .4byte 0x02000000
-_08025F44: .4byte gActiveBank
-_08025F48: .4byte 0x00016003
-_08025F4C: .4byte gBattlescriptCurrInstr
-_08025F50: .4byte gUnknown_081D9128
-_08025F54:
- ldr r0, _08025F78 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08025F84
- mov r3, r10
- cmp r3, 0x1
- beq _08025F84
- movs r0, 0
- bl sub_801C108
- lsls r0, 24
- cmp r0, 0
- beq _08025F84
- ldr r1, _08025F7C @ =gBattlescriptCurrInstr
- ldr r0, _08025F80 @ =BattleScript_1D83D6
- str r0, [r1]
-_08025F74:
- movs r0, 0x1
- b _080262A4
- .align 2, 0
-_08025F78: .4byte gCurrentMove
-_08025F7C: .4byte gBattlescriptCurrInstr
-_08025F80: .4byte BattleScript_1D83D6
-_08025F84:
- ldr r2, _08025FCC @ =gBattleMons
- ldr r1, _08025FD0 @ =gActiveBank
- ldrb r3, [r1]
- movs r4, 0x58
- adds r0, r3, 0
- muls r0, r4
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r10, r2
- cmp r0, 0x1D
- beq _08025FA0
- cmp r0, 0x49
- bne _08026040
-_08025FA0:
- mov r0, r9
- cmp r0, 0
- bne _08026040
- ldr r0, _08025FD4 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08026040
- cmp r5, 0x1
- bne _08025F74
- ldr r4, _08025FD8 @ =gSpecialStatuses
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _08025FE0
- ldr r0, _08025FDC @ =gBattlescriptCurrInstr
- mov r1, r8
- str r1, [r0]
- b _08025F74
- .align 2, 0
-_08025FCC: .4byte gBattleMons
-_08025FD0: .4byte gActiveBank
-_08025FD4: .4byte gCurrentMove
-_08025FD8: .4byte gSpecialStatuses
-_08025FDC: .4byte gBattlescriptCurrInstr
-_08025FE0:
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08026028 @ =0x02000000
- ldr r2, _0802602C @ =gActiveBank
- ldrb r1, [r2]
- ldr r3, _08026030 @ =0x00016003
- adds r0, r3
- strb r1, [r0]
- ldr r1, _08026034 @ =gBattlescriptCurrInstr
- ldr r0, _08026038 @ =gUnknown_081D989B
- str r0, [r1]
- ldr r1, _0802603C @ =gLastUsedAbility
- ldrb r0, [r2]
- movs r6, 0x58
- muls r0, r6
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r2]
- ldrb r1, [r1]
- bl RecordAbilityBattle
- ldr r0, _0802602C @ =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _08025F74
- .align 2, 0
-_08026028: .4byte 0x02000000
-_0802602C: .4byte gActiveBank
-_08026030: .4byte 0x00016003
-_08026034: .4byte gBattlescriptCurrInstr
-_08026038: .4byte gUnknown_081D989B
-_0802603C: .4byte gLastUsedAbility
-_08026040:
- ldr r1, _08026090 @ =gActiveBank
- ldrb r0, [r1]
- movs r4, 0x58
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x33
- bne _080260A8
- mov r2, r9
- cmp r2, 0
- bne _080260A8
- cmp r7, 0x6
- bne _080260A8
- cmp r5, 0x1
- bne _08025F74
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08026094 @ =0x02000000
- ldr r3, _08026090 @ =gActiveBank
- ldrb r1, [r3]
- ldr r6, _08026098 @ =0x00016003
- adds r0, r6
- strb r1, [r0]
- ldr r1, _0802609C @ =gBattlescriptCurrInstr
- ldr r0, _080260A0 @ =gUnknown_081D9903
- str r0, [r1]
- ldr r1, _080260A4 @ =gLastUsedAbility
- ldrb r0, [r3]
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r3]
- ldrb r1, [r1]
- bl RecordAbilityBattle
- b _08025F74
- .align 2, 0
-_08026090: .4byte gActiveBank
-_08026094: .4byte 0x02000000
-_08026098: .4byte 0x00016003
-_0802609C: .4byte gBattlescriptCurrInstr
-_080260A0: .4byte gUnknown_081D9903
-_080260A4: .4byte gLastUsedAbility
-_080260A8:
- ldr r1, _080260FC @ =gActiveBank
- ldrb r0, [r1]
- movs r4, 0x58
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x34
- bne _08026114
- mov r2, r9
- cmp r2, 0
- bne _08026114
- cmp r7, 0x1
- bne _08026114
- cmp r5, 0x1
- beq _080260CA
- b _08025F74
-_080260CA:
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08026100 @ =0x02000000
- ldr r3, _080260FC @ =gActiveBank
- ldrb r1, [r3]
- ldr r6, _08026104 @ =0x00016003
- adds r0, r6
- strb r1, [r0]
- ldr r1, _08026108 @ =gBattlescriptCurrInstr
- ldr r0, _0802610C @ =gUnknown_081D9903
- str r0, [r1]
- ldr r1, _08026110 @ =gLastUsedAbility
- ldrb r0, [r3]
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r3]
- ldrb r1, [r1]
- bl RecordAbilityBattle
- b _08025F74
- .align 2, 0
-_080260FC: .4byte gActiveBank
-_08026100: .4byte 0x02000000
-_08026104: .4byte 0x00016003
-_08026108: .4byte gBattlescriptCurrInstr
-_0802610C: .4byte gUnknown_081D9903
-_08026110: .4byte gLastUsedAbility
-_08026114:
- ldr r0, _080261A0 @ =gActiveBank
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x13
- bne _0802612C
- cmp r5, 0
- bne _0802612C
- b _08025F74
-_0802612C:
- lsls r0, r6, 24
- asrs r0, 28
- movs r1, 0x7
- ands r0, r1
- negs r0, r0
- lsls r0, 24
- ldr r3, _080261A4 @ =gBattleTextBuff2
- movs r4, 0
- movs r1, 0xFD
- strb r1, [r3]
- movs r2, 0x1
- lsrs r6, r0, 24
- asrs r0, 24
- subs r1, 0xFF
- cmp r0, r1
- bne _08026156
- strb r4, [r3, 0x1]
- movs r0, 0xD3
- strb r0, [r3, 0x2]
- strb r4, [r3, 0x3]
- movs r2, 0x4
-_08026156:
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xD4
- strb r0, [r1]
- adds r2, 0x1
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _080261A0 @ =gActiveBank
- ldrb r2, [r1]
- movs r0, 0x58
- muls r0, r2
- adds r0, r7, r0
- mov r1, r10
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _08026206
- movs r1, 0
- ldr r0, _080261A8 @ =gBankTarget
- ldrb r0, [r0]
- ldr r3, _080261AC @ =gBattleCommunication
- mov r8, r3
- cmp r0, r2
- bne _0802619A
- movs r1, 0x1
-_0802619A:
- mov r4, r8
- strb r1, [r4, 0x5]
- b _08026234
- .align 2, 0
-_080261A0: .4byte gActiveBank
-_080261A4: .4byte gBattleTextBuff2
-_080261A8: .4byte gBankTarget
-_080261AC: .4byte gBattleCommunication
-_080261B0:
- asrs r6, r0, 28
- movs r0, 0x7
- ands r6, r0
- ldr r3, _08026210 @ =gBattleTextBuff2
- strb r2, [r3]
- movs r2, 0x1
- cmp r6, 0x2
- bne _080261CA
- strb r4, [r3, 0x1]
- movs r0, 0xD1
- strb r0, [r3, 0x2]
- strb r4, [r3, 0x3]
- movs r2, 0x4
-_080261CA:
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xD2
- strb r0, [r1]
- adds r2, 0x1
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- ldrb r0, [r1]
- mov r2, r12
- orrs r0, r2
- strb r0, [r1]
- ldr r2, _08026214 @ =gBattleMons
- ldr r4, _08026218 @ =gActiveBank
- ldrb r3, [r4]
- movs r0, 0x58
- muls r0, r3
- adds r0, r7, r0
- adds r1, r2, 0
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- mov r10, r2
- cmp r0, 0xC
- bne _08026220
-_08026206:
- ldr r1, _0802621C @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- mov r8, r1
- b _08026234
- .align 2, 0
-_08026210: .4byte gBattleTextBuff2
-_08026214: .4byte gBattleMons
-_08026218: .4byte gActiveBank
-_0802621C: .4byte gBattleCommunication
-_08026220:
- movs r1, 0
- ldr r0, _080262B4 @ =gBankTarget
- ldrb r0, [r0]
- ldr r2, _080262B8 @ =gBattleCommunication
- mov r8, r2
- cmp r0, r3
- bne _08026230
- movs r1, 0x1
-_08026230:
- mov r3, r8
- strb r1, [r3, 0x5]
-_08026234:
- ldr r2, _080262BC @ =gActiveBank
- ldrb r0, [r2]
- movs r4, 0x58
- adds r1, r0, 0
- muls r1, r4
- adds r1, r7, r1
- mov r3, r10
- adds r3, 0x18
- adds r1, r3
- lsls r0, r6, 24
- asrs r0, 24
- ldrb r6, [r1]
- adds r0, r6
- strb r0, [r1]
- ldrb r0, [r2]
- muls r0, r4
- adds r0, r7, r0
- adds r1, r0, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bge _08026264
- movs r0, 0
- strb r0, [r1]
-_08026264:
- ldr r1, _080262BC @ =gActiveBank
- ldrb r0, [r1]
- muls r0, r4
- adds r0, r7, r0
- adds r1, r0, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0802627A
- movs r0, 0xC
- strb r0, [r1]
-_0802627A:
- mov r2, r8
- ldrb r0, [r2, 0x5]
- cmp r0, 0x2
- bne _080262A2
- movs r3, 0x1
- ands r3, r5
- cmp r3, 0
- beq _08026294
- ldr r0, _080262C0 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
-_08026294:
- mov r4, r8
- ldrb r0, [r4, 0x5]
- cmp r0, 0x2
- bne _080262A2
- cmp r3, 0
- bne _080262A2
- b _08025F74
-_080262A2:
- movs r0, 0
-_080262A4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080262B4: .4byte gBankTarget
-_080262B8: .4byte gBattleCommunication
-_080262BC: .4byte gActiveBank
-_080262C0: .4byte gBattleMoveFlags
- thumb_func_end sub_8025E20
-
- thumb_func_start atk89_statbuffchange
-atk89_statbuffchange: @ 80262C4
- push {r4,r5,lr}
- ldr r5, _0802630C @ =gBattlescriptCurrInstr
- ldr r2, [r5]
- ldrb r3, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r3, r0
- ldr r0, _08026310 @ =0x02000000
- ldr r1, _08026314 @ =0x0001601e
- adds r0, r1
- ldrb r4, [r0]
- movs r0, 0xF0
- ands r0, r4
- lsls r0, 24
- asrs r0, 24
- movs r1, 0xF
- ands r1, r4
- ldrb r2, [r2, 0x1]
- bl sub_8025E20
- lsls r0, 24
- cmp r0, 0
- bne _08026304
- ldr r0, [r5]
- adds r0, 0x6
- str r0, [r5]
-_08026304:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802630C: .4byte gBattlescriptCurrInstr
-_08026310: .4byte 0x02000000
-_08026314: .4byte 0x0001601e
- thumb_func_end atk89_statbuffchange
-
- thumb_func_start atk8A_normalisebuffs
-atk8A_normalisebuffs: @ 8026318
- push {r4-r7,lr}
- movs r2, 0
- ldr r0, _08026360 @ =gNoOfAllBanks
- ldrb r1, [r0]
- ldr r0, _08026364 @ =gBattlescriptCurrInstr
- mov r12, r0
- cmp r2, r1
- bge _08026350
- ldr r0, _08026368 @ =gBattleMons
- movs r4, 0x6
- adds r5, r1, 0
- movs r7, 0x58
- adds r6, r0, 0
- adds r6, 0x18
-_08026334:
- adds r3, r2, 0x1
- movs r1, 0x7
- adds r0, r2, 0
- muls r0, r7
- adds r0, r6
- adds r0, 0x7
-_08026340:
- strb r4, [r0]
- subs r0, 0x1
- subs r1, 0x1
- cmp r1, 0
- bge _08026340
- adds r2, r3, 0
- cmp r2, r5
- blt _08026334
-_08026350:
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08026360: .4byte gNoOfAllBanks
-_08026364: .4byte gBattlescriptCurrInstr
-_08026368: .4byte gBattleMons
- thumb_func_end atk8A_normalisebuffs
-
- thumb_func_start atk8B_setbide
-atk8B_setbide: @ 802636C
- push {r4,r5,lr}
- ldr r4, _080263C4 @ =gBattleMons
- ldr r3, _080263C8 @ =gBankAttacker
- ldrb r0, [r3]
- movs r5, 0x58
- adds r2, r0, 0
- muls r2, r5
- adds r4, 0x50
- adds r2, r4
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r2]
- ldr r1, _080263CC @ =gLockedMove
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _080263D0 @ =gCurrentMove
- ldrh r1, [r1]
- movs r2, 0
- strh r1, [r0]
- ldr r1, _080263D4 @ =gTakenDmg
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- str r2, [r0]
- ldrb r0, [r3]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 2
- orrs r0, r2
- str r0, [r1]
- ldr r1, _080263D8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080263C4: .4byte gBattleMons
-_080263C8: .4byte gBankAttacker
-_080263CC: .4byte gLockedMove
-_080263D0: .4byte gCurrentMove
-_080263D4: .4byte gTakenDmg
-_080263D8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk8B_setbide
-
- thumb_func_start atk8C_confuseifrepeatingattackends
-atk8C_confuseifrepeatingattackends: @ 80263DC
- push {lr}
- ldr r1, _0802640C @ =gBattleMons
- ldr r0, _08026410 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xC0
- lsls r1, 4
- ands r0, r1
- cmp r0, 0
- bne _080263FE
- ldr r1, _08026414 @ =gBattleCommunication
- movs r0, 0x75
- strb r0, [r1, 0x3]
-_080263FE:
- ldr r1, _08026418 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802640C: .4byte gBattleMons
-_08026410: .4byte gBankAttacker
-_08026414: .4byte gBattleCommunication
-_08026418: .4byte gBattlescriptCurrInstr
- thumb_func_end atk8C_confuseifrepeatingattackends
-
- thumb_func_start atk8D_setloopcounter
-atk8D_setloopcounter: @ 802641C
- push {r4,r5,lr}
- ldr r0, _08026430 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r1, [r0, 0x1]
- cmp r1, 0
- beq _08026438
- ldr r0, _08026434 @ =gMultiHitCounter
- strb r1, [r0]
- b _08026452
- .align 2, 0
-_08026430: .4byte gBattlescriptCurrInstr
-_08026434: .4byte gMultiHitCounter
-_08026438:
- ldr r4, _08026460 @ =gMultiHitCounter
- bl Random
- movs r5, 0x3
- ands r0, r5
- strb r0, [r4]
- cmp r0, 0x1
- bls _0802644E
- bl Random
- ands r0, r5
-_0802644E:
- adds r0, 0x2
- strb r0, [r4]
-_08026452:
- ldr r1, _08026464 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08026460: .4byte gMultiHitCounter
-_08026464: .4byte gBattlescriptCurrInstr
- thumb_func_end atk8D_setloopcounter
-
- thumb_func_start sub_8026468
-sub_8026468: @ 8026468
- push {r4,lr}
- ldr r1, _080264A8 @ =0x02000000
- ldr r0, _080264AC @ =0x000160e0
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0xFD
- strb r0, [r2]
- ldr r2, _080264B0 @ =0x000160e1
- adds r0, r1, r2
- movs r2, 0x1
- strb r2, [r0]
- ldr r4, _080264B4 @ =0x000160e2
- adds r0, r1, r4
- strb r2, [r0]
- adds r4, 0x1
- adds r0, r1, r4
- strb r2, [r0]
- ldr r2, _080264B8 @ =0x000160e4
- adds r0, r1, r2
- strb r3, [r0]
- adds r4, 0x2
- adds r1, r4
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _080264BC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080264A8: .4byte 0x02000000
-_080264AC: .4byte 0x000160e0
-_080264B0: .4byte 0x000160e1
-_080264B4: .4byte 0x000160e2
-_080264B8: .4byte 0x000160e4
-_080264BC: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8026468
-
- thumb_func_start sub_80264C0
-sub_80264C0: @ 80264C0
- push {r4-r7,lr}
- ldr r6, _080264F4 @ =gBattleMons
- ldr r7, _080264F8 @ =gBankAttacker
- ldrb r0, [r7]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- adds r1, r6
- adds r1, 0x2A
- ldr r4, _080264FC @ =gBankTarget
- ldrb r3, [r4]
- adds r0, r3, 0
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _0802650C
- ldr r0, _08026500 @ =0x02000000
- ldr r2, _08026504 @ =0x00016064
- adds r1, r3, r2
- adds r1, r0
- ldr r2, _08026508 @ =gBattlePartyID
- lsls r0, r3, 1
- b _08026568
- .align 2, 0
-_080264F4: .4byte gBattleMons
-_080264F8: .4byte gBankAttacker
-_080264FC: .4byte gBankTarget
-_08026500: .4byte 0x02000000
-_08026504: .4byte 0x00016064
-_08026508: .4byte gBattlePartyID
-_0802650C:
- bl Random
- movs r3, 0xFF
- ands r3, r0
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r2, [r0]
- ldrb r4, [r4]
- adds r0, r4, 0
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r1, [r0]
- adds r2, r1
- adds r0, r3, 0
- muls r0, r2
- asrs r0, 8
- adds r0, 0x1
- lsrs r1, 2
- cmp r0, r1
- bhi _0802655C
- ldr r3, _08026558 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- movs r0, 0
- b _08026576
- .align 2, 0
-_08026558: .4byte gBattlescriptCurrInstr
-_0802655C:
- ldr r0, _0802657C @ =0x02000000
- ldr r2, _08026580 @ =0x00016064
- adds r1, r4, r2
- adds r1, r0
- ldr r2, _08026584 @ =gBattlePartyID
- lsls r0, r4, 1
-_08026568:
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r1, _08026588 @ =gBattlescriptCurrInstr
- ldr r0, _0802658C @ =gUnknown_081D90FC
- str r0, [r1]
- movs r0, 0x1
-_08026576:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0802657C: .4byte 0x02000000
-_08026580: .4byte 0x00016064
-_08026584: .4byte gBattlePartyID
-_08026588: .4byte gBattlescriptCurrInstr
-_0802658C: .4byte gUnknown_081D90FC
- thumb_func_end sub_80264C0
-
- thumb_func_start sub_8026590
-sub_8026590: @ 8026590
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _08026628 @ =gBattleTypeFlags
- ldrh r1, [r4]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080265A4
- b _0802687C
-_080265A4:
- ldr r5, _0802662C @ =gBankTarget
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- ldr r1, _08026630 @ =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _080265BA
- ldr r2, _08026634 @ =gPlayerParty
- mov r8, r2
-_080265BA:
- ldrh r1, [r4]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08026638
- movs r7, 0
- movs r6, 0
- ldrb r0, [r5]
- bl sub_803FC34
- lsls r0, 24
- lsrs r0, 24
- bl sub_803FBFC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _080265E0
- movs r6, 0x3
-_080265E0:
- adds r5, r6, 0
- adds r0, r5, 0x3
- cmp r5, r0
- bge _08026678
-_080265E8:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802661A
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0802661A
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802661A
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_0802661A:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0x3
- cmp r5, r0
- blt _080265E8
- b _08026678
- .align 2, 0
-_08026628: .4byte gBattleTypeFlags
-_0802662C: .4byte gBankTarget
-_08026630: .4byte gEnemyParty
-_08026634: .4byte gPlayerParty
-_08026638:
- movs r7, 0
- movs r5, 0
-_0802663C:
- movs r0, 0x64
- muls r0, r5
- mov r2, r8
- adds r4, r2, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802666E
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0802666E
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802666E
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_0802666E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0802663C
-_08026678:
- cmp r7, 0x1
- bhi _08026688
- ldr r0, _080266BC @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x41
- ands r0, r1
- cmp r0, 0x1
- bne _080266A0
-_08026688:
- cmp r7, 0x2
- bhi _080266C4
- ldr r0, _080266BC @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080266C4
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080266C4
-_080266A0:
- ldr r3, _080266C0 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08026880
- .align 2, 0
-_080266BC: .4byte gBattleTypeFlags
-_080266C0: .4byte gBattlescriptCurrInstr
-_080266C4:
- bl sub_80264C0
- lsls r0, 24
- cmp r0, 0
- bne _080266D0
- b _08026880
-_080266D0:
- ldr r0, _08026710 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08026774
-_080266DC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08026714 @ =gBankTarget
- ldrb r0, [r0]
- bl sub_803FC34
- lsls r0, 24
- lsrs r0, 24
- bl sub_803FBFC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _08026718
- adds r0, r6, 0x3
- lsls r0, 24
- lsrs r5, r0, 24
- b _0802671A
- .align 2, 0
-_08026710: .4byte gBattleTypeFlags
-_08026714: .4byte gBankTarget
-_08026718:
- adds r5, r6, 0
-_0802671A:
- ldr r4, _0802676C @ =gBattlePartyID
- ldr r0, _08026770 @ =gBankTarget
- ldrb r2, [r0]
- lsls r1, r2, 1
- adds r1, r4
- lsls r0, r5, 16
- lsrs r3, r0, 16
- ldrh r1, [r1]
- cmp r3, r1
- beq _080266DC
- movs r0, 0x2
- eors r2, r0
- lsls r0, r2, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r3, r0
- beq _080266DC
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080266DC
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _080266DC
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080266DC
- b _08026832
- .align 2, 0
-_0802676C: .4byte gBattlePartyID
-_08026770: .4byte gBankTarget
-_08026774:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080267E4
- ldr r6, _080267DC @ =gBattlePartyID
-_0802677E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080267E0 @ =gBankTarget
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r6
- adds r2, r5, 0
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802677E
- movs r0, 0x2
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r6
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802677E
- movs r0, 0x64
- muls r0, r5
- mov r2, r8
- adds r4, r2, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802677E
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _0802677E
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802677E
- b _08026832
- .align 2, 0
-_080267DC: .4byte gBattlePartyID
-_080267E0: .4byte gBankTarget
-_080267E4:
- ldr r6, _0802686C @ =gBattlePartyID
-_080267E6:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08026870 @ =gBankTarget
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- cmp r5, r0
- beq _080267E6
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080267E6
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _080267E6
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080267E6
-_08026832:
- ldr r0, _08026874 @ =0x02000000
- ldr r4, _08026870 @ =gBankTarget
- ldrb r1, [r4]
- ldr r2, _08026878 @ =0x00016068
- adds r1, r2
- adds r1, r0
- strb r5, [r1]
- bl IsLinkDoubleBattle
- lsls r0, 24
- cmp r0, 0
- bne _08026850
- ldrb r0, [r4]
- bl sub_8012258
-_08026850:
- ldrb r0, [r4]
- adds r1, r5, 0
- movs r2, 0
- bl sub_8094B6C
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8094B6C
- b _08026880
- .align 2, 0
-_0802686C: .4byte gBattlePartyID
-_08026870: .4byte gBankTarget
-_08026874: .4byte 0x02000000
-_08026878: .4byte 0x00016068
-_0802687C:
- bl sub_80264C0
-_08026880:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8026590
-
- thumb_func_start sub_802688C
-sub_802688C: @ 802688C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- ldr r2, _08026920 @ =gBattleMons
- ldr r3, _08026924 @ =gBankAttacker
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r1, r2, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- mov r8, r2
- cmp r0, 0
- beq _080268CE
- movs r5, 0x58
- adds r2, r1, 0
-_080268B4:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bhi _080268CE
- lsls r1, r6, 1
- ldrb r0, [r3]
- muls r0, r5
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- cmp r0, 0
- bne _080268B4
-_080268CE:
- movs r3, 0
- cmp r3, r6
- bcs _08026950
- ldr r0, _08026928 @ =gBattleMoves
- mov r10, r0
- ldr r5, _08026920 @ =gBattleMons
- mov r12, r5
- ldr r7, _08026924 @ =gBankAttacker
- ldrb r0, [r7]
- movs r4, 0x58
- adds r5, r0, 0
- muls r5, r4
- movs r0, 0xC
- add r0, r12
- mov r9, r0
-_080268EC:
- lsls r0, r3, 1
- adds r0, r5
- add r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r10
- ldrb r2, [r0, 0x2]
- cmp r2, 0x9
- bne _0802692E
- mov r0, r8
- adds r1, r5, r0
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _0802691A
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _0802692C
-_0802691A:
- movs r2, 0x7
- b _0802692E
- .align 2, 0
-_08026920: .4byte gBattleMons
-_08026924: .4byte gBankAttacker
-_08026928: .4byte gBattleMoves
-_0802692C:
- movs r2, 0
-_0802692E:
- ldrb r0, [r7]
- muls r0, r4
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r2, r1
- beq _08026946
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r2, r0
- bne _08026950
-_08026946:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r6
- bcc _080268EC
-_08026950:
- cmp r3, r6
- bne _08026974
- ldr r3, _08026970 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08026A18
- .align 2, 0
-_08026970: .4byte gBattlescriptCurrInstr
-_08026974:
- movs r7, 0x3
- ldr r5, _080269CC @ =gBattleMoves
- mov r9, r5
-_0802697A:
- bl Random
- adds r3, r0, 0
- ands r3, r7
- cmp r3, r6
- bcs _0802697A
- ldr r4, _080269D0 @ =gBattleMons
- lsls r1, r3, 1
- ldr r3, _080269D4 @ =gBankAttacker
- ldrb r2, [r3]
- movs r0, 0x58
- adds r5, r2, 0
- muls r5, r0
- adds r1, r5
- adds r0, r4, 0
- adds r0, 0xC
- adds r1, r0
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r2, [r0, 0x2]
- mov r8, r4
- adds r4, r3, 0
- cmp r2, 0x9
- bne _080269DA
- mov r0, r8
- adds r2, r5, r0
- adds r0, r2, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _080269C8
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _080269D8
-_080269C8:
- movs r2, 0x7
- b _080269DA
- .align 2, 0
-_080269CC: .4byte gBattleMoves
-_080269D0: .4byte gBattleMons
-_080269D4: .4byte gBankAttacker
-_080269D8:
- movs r2, 0
-_080269DA:
- ldrb r0, [r4]
- movs r3, 0x58
- muls r0, r3
- add r0, r8
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r5, [r1]
- cmp r2, r5
- beq _0802697A
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r2, r0
- beq _0802697A
- strb r2, [r1]
- ldrb r0, [r4]
- muls r0, r3
- add r0, r8
- adds r0, 0x22
- strb r2, [r0]
- ldr r1, _08026A28 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _08026A2C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08026A18:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08026A28: .4byte gBattleTextBuff1
-_08026A2C: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802688C
-
- thumb_func_start atk91_givemoney
-atk91_givemoney: @ 8026A30
- push {r4,lr}
- ldr r0, _08026A8C @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08026AAC
- ldr r4, _08026A90 @ =gPaydayMoney
- ldrh r0, [r4]
- cmp r0, 0
- beq _08026AAC
- ldr r0, _08026A94 @ =gSaveBlock1 + 0x490
- ldrh r2, [r4]
- ldr r1, _08026A98 @ =0x02000000
- ldr r3, _08026A9C @ =0x00016056
- adds r1, r3
- ldrb r1, [r1]
- muls r1, r2
- bl sub_80B79B8
- ldr r1, _08026AA0 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0x5
- strb r0, [r1, 0x3]
- ldrh r2, [r4]
- strb r2, [r1, 0x4]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r2
- lsrs r0, 8
- strb r0, [r1, 0x5]
- movs r0, 0xFF
- strb r0, [r1, 0x6]
- ldr r4, _08026AA4 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _08026AA8 @ =gUnknown_081D95DB
- str r0, [r4]
- b _08026AB4
- .align 2, 0
-_08026A8C: .4byte gBattleTypeFlags
-_08026A90: .4byte gPaydayMoney
-_08026A94: .4byte gSaveBlock1 + 0x490
-_08026A98: .4byte 0x02000000
-_08026A9C: .4byte 0x00016056
-_08026AA0: .4byte gBattleTextBuff1
-_08026AA4: .4byte gBattlescriptCurrInstr
-_08026AA8: .4byte gUnknown_081D95DB
-_08026AAC:
- ldr r1, _08026ABC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08026AB4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08026ABC: .4byte gBattlescriptCurrInstr
- thumb_func_end atk91_givemoney
-
- thumb_func_start atk92_setlightscreen
-atk92_setlightscreen: @ 8026AC0
- push {r4-r6,lr}
- ldr r4, _08026AF0 @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankIdentity
- ldr r6, _08026AF4 @ =gSideAffecting
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08026B00
- ldr r2, _08026AF8 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08026AFC @ =gBattleCommunication
- movs r0, 0
- b _08026B60
- .align 2, 0
-_08026AF0: .4byte gBankAttacker
-_08026AF4: .4byte gSideAffecting
-_08026AF8: .4byte gBattleMoveFlags
-_08026AFC: .4byte gBattleCommunication
-_08026B00:
- ldrb r0, [r4]
- bl GetBankIdentity
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r4]
- bl GetBankIdentity
- ldr r2, _08026B50 @ =gSideTimer
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0, 0x1]
- ldr r0, _08026B54 @ =gBattleTypeFlags
- ldrh r1, [r0]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08026B5C
- movs r0, 0x1
- bl CountAliveMons
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08026B5C
- ldr r1, _08026B58 @ =gBattleCommunication
- movs r0, 0x4
- b _08026B60
- .align 2, 0
-_08026B50: .4byte gSideTimer
-_08026B54: .4byte gBattleTypeFlags
-_08026B58: .4byte gBattleCommunication
-_08026B5C:
- ldr r1, _08026B70 @ =gBattleCommunication
- movs r0, 0x3
-_08026B60:
- strb r0, [r1, 0x5]
- ldr r1, _08026B74 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08026B70: .4byte gBattleCommunication
-_08026B74: .4byte gBattlescriptCurrInstr
- thumb_func_end atk92_setlightscreen
-
- thumb_func_start sub_8026B78
-sub_8026B78: @ 8026B78
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r7, _08026BA8 @ =gBattleMons
- ldr r6, _08026BAC @ =gBankTarget
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08026BB4
- ldr r1, _08026BB0 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _08026BCE
- .align 2, 0
-_08026BA8: .4byte gBattleMons
-_08026BAC: .4byte gBankTarget
-_08026BB0: .4byte gEnigmaBerries
-_08026BB4:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_08026BCE:
- ldr r1, _08026C4C @ =gStringBank
- ldr r5, _08026C50 @ =gBankTarget
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _08026C0C
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _08026C0C
- ldrb r0, [r5]
- movs r1, 0x27
- bl RecordItemBattle
- ldr r2, _08026C54 @ =gSpecialStatuses
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_08026C0C:
- ldr r0, _08026C58 @ =gBattleMons
- mov r8, r0
- ldr r1, _08026C50 @ =gBankTarget
- ldrb r2, [r1]
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- mov r3, r8
- adds r5, r0, r3
- adds r0, r5, 0
- adds r0, 0x20
- ldrb r3, [r0]
- mov r10, r8
- cmp r3, 0x5
- bne _08026C6C
- ldr r2, _08026C5C @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08026C60 @ =gLastUsedAbility
- strb r3, [r0]
- ldr r1, _08026C64 @ =gBattlescriptCurrInstr
- ldr r0, _08026C68 @ =gUnknown_081D9826
- str r0, [r1]
- ldr r1, _08026C50 @ =gBankTarget
- ldrb r0, [r1]
- movs r1, 0x5
- bl RecordAbilityBattle
- b _08026E40
- .align 2, 0
-_08026C4C: .4byte gStringBank
-_08026C50: .4byte gBankTarget
-_08026C54: .4byte gSpecialStatuses
-_08026C58: .4byte gBattleMons
-_08026C5C: .4byte gBattleMoveFlags
-_08026C60: .4byte gLastUsedAbility
-_08026C64: .4byte gBattlescriptCurrInstr
-_08026C68: .4byte gUnknown_081D9826
-_08026C6C:
- ldr r1, _08026CE0 @ =gStatuses3
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x18
- ands r0, r1
- cmp r0, 0
- bne _08026CF4
- ldr r1, _08026CE4 @ =gBattleMoves
- ldr r0, _08026CE8 @ =gCurrentMove
- ldrh r0, [r0]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldr r7, _08026CEC @ =gBankAttacker
- ldrb r0, [r7]
- muls r0, r6
- add r0, r10
- adds r0, 0x2A
- ldrb r0, [r0]
- adds r1, r5, 0
- adds r1, 0x2A
- ldrb r1, [r1]
- subs r0, r1
- ldrb r2, [r2, 0x3]
- adds r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, 0x1
- cmp r0, r4
- bge _08026CDC
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- add r1, r10
- adds r1, 0x2A
- ldr r2, _08026CF0 @ =gBankTarget
- ldrb r0, [r2]
- muls r0, r6
- add r0, r10
- adds r0, 0x2A
- ldrb r1, [r1]
- movs r4, 0x1
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08026D20
-_08026CDC:
- mov r10, r8
- b _08026DE0
- .align 2, 0
-_08026CE0: .4byte gStatuses3
-_08026CE4: .4byte gBattleMoves
-_08026CE8: .4byte gCurrentMove
-_08026CEC: .4byte gBankAttacker
-_08026CF0: .4byte gBankTarget
-_08026CF4:
- ldr r0, _08026D4C @ =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r2, _08026D50 @ =gBankAttacker
- ldrb r0, [r1, 0x15]
- movs r4, 0
- ldrb r3, [r2]
- cmp r0, r3
- bne _08026D20
- ldrb r0, [r2]
- muls r0, r6
- add r0, r10
- adds r0, 0x2A
- adds r1, r5, 0
- adds r1, 0x2A
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08026D20
- movs r4, 0x1
-_08026D20:
- cmp r4, 0
- beq _08026DE0
- ldr r0, _08026D54 @ =gProtectStructs
- ldr r1, _08026D58 @ =gBankTarget
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- bge _08026D64
- ldr r1, _08026D5C @ =gBattleMoveDamage
- movs r0, 0x58
- muls r0, r2
- add r0, r10
- ldrh r0, [r0, 0x28]
- subs r0, 0x1
- str r0, [r1]
- ldr r2, _08026D60 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x40
- b _08026DC6
- .align 2, 0
-_08026D4C: .4byte gDisableStructs
-_08026D50: .4byte gBankAttacker
-_08026D54: .4byte gProtectStructs
-_08026D58: .4byte gBankTarget
-_08026D5C: .4byte gBattleMoveDamage
-_08026D60: .4byte gBattleMoveFlags
-_08026D64:
- ldr r0, _08026DA0 @ =gSpecialStatuses
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _08026DB4
- ldr r1, _08026DA4 @ =gBattleMoveDamage
- movs r3, 0x58
- adds r0, r2, 0
- muls r0, r3
- add r0, r10
- ldrh r0, [r0, 0x28]
- subs r0, 0x1
- str r0, [r1]
- ldr r2, _08026DA8 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08026DAC @ =gLastUsedItem
- ldr r2, _08026DB0 @ =gBankTarget
- ldrb r0, [r2]
- muls r0, r3
- add r0, r10
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
- b _08026DCA
- .align 2, 0
-_08026DA0: .4byte gSpecialStatuses
-_08026DA4: .4byte gBattleMoveDamage
-_08026DA8: .4byte gBattleMoveFlags
-_08026DAC: .4byte gLastUsedItem
-_08026DB0: .4byte gBankTarget
-_08026DB4:
- ldr r1, _08026DD4 @ =gBattleMoveDamage
- movs r0, 0x58
- muls r0, r2
- add r0, r10
- ldrh r0, [r0, 0x28]
- str r0, [r1]
- ldr r2, _08026DD8 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x10
-_08026DC6:
- orrs r0, r1
- strb r0, [r2]
-_08026DCA:
- ldr r1, _08026DDC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08026E40
- .align 2, 0
-_08026DD4: .4byte gBattleMoveDamage
-_08026DD8: .4byte gBattleMoveFlags
-_08026DDC: .4byte gBattlescriptCurrInstr
-_08026DE0:
- ldr r2, _08026E10 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08026E14 @ =gBankAttacker
- ldrb r0, [r0]
- movs r2, 0x58
- adds r1, r0, 0
- muls r1, r2
- add r1, r10
- adds r1, 0x2A
- ldr r3, _08026E18 @ =gBankTarget
- ldrb r0, [r3]
- muls r0, r2
- add r0, r10
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _08026E20
- ldr r1, _08026E1C @ =gBattleCommunication
- movs r0, 0
- b _08026E24
- .align 2, 0
-_08026E10: .4byte gBattleMoveFlags
-_08026E14: .4byte gBankAttacker
-_08026E18: .4byte gBankTarget
-_08026E1C: .4byte gBattleCommunication
-_08026E20:
- ldr r1, _08026E50 @ =gBattleCommunication
- movs r0, 0x1
-_08026E24:
- strb r0, [r1, 0x5]
- ldr r3, _08026E54 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08026E40:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08026E50: .4byte gBattleCommunication
-_08026E54: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8026B78
-
- thumb_func_start atk94_gethalfcurrentenemyhp
-atk94_gethalfcurrentenemyhp: @ 8026E58
- push {lr}
- ldr r3, _08026E84 @ =gBattleMoveDamage
- ldr r2, _08026E88 @ =gBattleMons
- ldr r0, _08026E8C @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- lsrs r0, 1
- str r0, [r3]
- cmp r0, 0
- bne _08026E76
- movs r0, 0x1
- str r0, [r3]
-_08026E76:
- ldr r1, _08026E90 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08026E84: .4byte gBattleMoveDamage
-_08026E88: .4byte gBattleMons
-_08026E8C: .4byte gBankTarget
-_08026E90: .4byte gBattlescriptCurrInstr
- thumb_func_end atk94_gethalfcurrentenemyhp
-
- thumb_func_start sub_8026E94
-sub_8026E94: @ 8026E94
- push {lr}
- ldr r2, _08026EB4 @ =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _08026EC0
- ldr r2, _08026EB8 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08026EBC @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08026ED2
- .align 2, 0
-_08026EB4: .4byte gBattleWeather
-_08026EB8: .4byte gBattleMoveFlags
-_08026EBC: .4byte gBattleCommunication
-_08026EC0:
- movs r0, 0x8
- strh r0, [r2]
- ldr r1, _08026EE0 @ =gBattleCommunication
- movs r0, 0x3
- strb r0, [r1, 0x5]
- ldr r0, _08026EE4 @ =gWishFutureKnock
- adds r0, 0x28
- movs r1, 0x5
- strb r1, [r0]
-_08026ED2:
- ldr r1, _08026EE8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08026EE0: .4byte gBattleCommunication
-_08026EE4: .4byte gWishFutureKnock
-_08026EE8: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8026E94
-
- thumb_func_start sub_8026EEC
-sub_8026EEC: @ 8026EEC
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08026F0A
- b _0802701C
-_08026F0A:
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08026F20
- b _0802701C
-_08026F20:
- ldr r2, _08026F94 @ =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x18
- ands r0, r1
- adds r4, r2, 0
- ldr r5, _08026F98 @ =gBankAttacker
- cmp r0, 0
- beq _08026FAE
- ldr r0, _08026F9C @ =gBattleMons
- ldrb r2, [r5]
- movs r1, 0x58
- muls r1, r2
- adds r3, r1, r0
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _08026FA8
- cmp r0, 0x8
- beq _08026FA8
- cmp r0, 0x4
- beq _08026FA8
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _08026FA8
- cmp r0, 0x8
- beq _08026FA8
- cmp r0, 0x4
- beq _08026FA8
- adds r0, r3, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x8
- beq _08026FA8
- ldr r0, _08026FA0 @ =gStatuses3
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08026FA8
- movs r0, 0x80
- lsls r0, 11
- ands r1, r0
- cmp r1, 0
- bne _08026FA8
- ldr r1, _08026FA4 @ =gBattleMoveDamage
- ldrh r0, [r3, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08026FAE
- movs r0, 0x1
- b _08026FAC
- .align 2, 0
-_08026F94: .4byte gBattleWeather
-_08026F98: .4byte gBankAttacker
-_08026F9C: .4byte gBattleMons
-_08026FA0: .4byte gStatuses3
-_08026FA4: .4byte gBattleMoveDamage
-_08026FA8:
- ldr r1, _08027004 @ =gBattleMoveDamage
- movs r0, 0
-_08026FAC:
- str r0, [r1]
-_08026FAE:
- ldrh r1, [r4]
- movs r4, 0x80
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08027024
- ldr r1, _08027008 @ =gBattleMons
- ldrb r3, [r5]
- movs r0, 0x58
- muls r0, r3
- adds r2, r0, r1
- adds r0, r2, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xF
- beq _08027010
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xF
- beq _08027010
- ldr r0, _0802700C @ =gStatuses3
- lsls r1, r3, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r1, 0
- ands r0, r4
- cmp r0, 0
- bne _08027010
- movs r0, 0x80
- lsls r0, 11
- ands r1, r0
- cmp r1, 0
- bne _08027010
- ldr r1, _08027004 @ =gBattleMoveDamage
- ldrh r0, [r2, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08027024
- movs r0, 0x1
- str r0, [r1]
- b _08027024
- .align 2, 0
-_08027004: .4byte gBattleMoveDamage
-_08027008: .4byte gBattleMons
-_0802700C: .4byte gStatuses3
-_08027010:
- ldr r1, _08027018 @ =gBattleMoveDamage
- movs r0, 0
- str r0, [r1]
- b _08027024
- .align 2, 0
-_08027018: .4byte gBattleMoveDamage
-_0802701C:
- ldr r1, _08027050 @ =gBattleMoveDamage
- movs r0, 0
- str r0, [r1]
- ldr r5, _08027054 @ =gBankAttacker
-_08027024:
- ldr r0, _08027058 @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _0802705C @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0802703E
- ldr r1, _08027050 @ =gBattleMoveDamage
- movs r0, 0
- str r0, [r1]
-_0802703E:
- ldr r1, _08027060 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08027050: .4byte gBattleMoveDamage
-_08027054: .4byte gBankAttacker
-_08027058: .4byte gAbsentBankFlags
-_0802705C: .4byte gBitTable
-_08027060: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8026EEC
-
- thumb_func_start sub_8027064
-sub_8027064: @ 8027064
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _08027090 @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0802709C
- ldr r1, _08027094 @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08027098 @ =gPlayerParty
- b _080270AC
- .align 2, 0
-_08027090: .4byte gBankAttacker
-_08027094: .4byte gBattlePartyID
-_08027098: .4byte gPlayerParty
-_0802709C:
- ldr r1, _080270D0 @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080270D4 @ =gEnemyParty
-_080270AC:
- adds r5, r1, r0
- ldr r4, _080270D8 @ =gBankTarget
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080270E0
- ldr r1, _080270D0 @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080270DC @ =gPlayerParty
- b _080270F0
- .align 2, 0
-_080270D0: .4byte gBattlePartyID
-_080270D4: .4byte gEnemyParty
-_080270D8: .4byte gBankTarget
-_080270DC: .4byte gPlayerParty
-_080270E0:
- ldr r1, _0802714C @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08027150 @ =gEnemyParty
-_080270F0:
- adds r4, r1, r0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- adds r0, r5, 0
- movs r1, 0
- bl GetMonData
- mov r9, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r7, r0, 0
- ldr r5, _08027154 @ =gBankTarget
- ldrb r0, [r5]
- movs r6, 0x58
- muls r0, r6
- ldr r1, _08027158 @ =gBattleMons
- adds r0, r1
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0xC
- bne _08027168
- ldr r1, _0802715C @ =gBattlescriptCurrInstr
- ldr r0, _08027160 @ =gUnknown_081D98C9
- str r0, [r1]
- ldr r0, _08027164 @ =gLastUsedAbility
- strb r2, [r0]
- ldrb r0, [r5]
- movs r1, 0xC
- bl RecordAbilityBattle
- b _0802721C
- .align 2, 0
-_0802714C: .4byte gBattlePartyID
-_08027150: .4byte gEnemyParty
-_08027154: .4byte gBankTarget
-_08027158: .4byte gBattleMons
-_0802715C: .4byte gBattlescriptCurrInstr
-_08027160: .4byte gUnknown_081D98C9
-_08027164: .4byte gLastUsedAbility
-_08027168:
- mov r0, r10
- mov r1, r9
- bl GetGenderFromSpeciesAndPersonality
- adds r4, r0, 0
- mov r0, r8
- adds r1, r7, 0
- bl GetGenderFromSpeciesAndPersonality
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080271CA
- ldr r1, _080271E8 @ =gStatuses3
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080271EC @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _080271CA
- adds r0, r2, 0
- muls r0, r6
- ldr r4, _080271F0 @ =gBattleMons
- adds r4, 0x50
- adds r0, r4
- ldr r0, [r0]
- movs r1, 0xF0
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- bne _080271CA
- mov r0, r10
- mov r1, r9
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080271CA
- mov r0, r8
- adds r1, r7, 0
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080271F8
-_080271CA:
- ldr r3, _080271F4 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802721C
- .align 2, 0
-_080271E8: .4byte gStatuses3
-_080271EC: .4byte 0x000400c0
-_080271F0: .4byte gBattleMons
-_080271F4: .4byte gBattlescriptCurrInstr
-_080271F8:
- ldrb r0, [r5]
- adds r2, r0, 0
- muls r2, r6
- adds r2, r4
- ldr r1, _0802722C @ =gBitTable
- ldr r0, _08027230 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 16
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08027234 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802721C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802722C: .4byte gBitTable
-_08027230: .4byte gBankAttacker
-_08027234: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8027064
-
- thumb_func_start sub_8027238
-sub_8027238: @ 8027238
- push {r4-r7,lr}
- ldr r0, _08027280 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _08027324
- ldr r5, _08027284 @ =gBattlescriptCurrInstr
- ldr r1, [r5]
- ldrb r0, [r1, 0x1]
- cmp r0, 0x4
- beq _08027290
- bl sub_8015150
- ldr r4, _08027288 @ =gActiveBank
- strb r0, [r4]
- ldr r3, _0802728C @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r1, [r0]
- adds r3, 0x50
- adds r2, r3
- ldr r2, [r2]
- movs r0, 0
- bl EmitStatusIconUpdate
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- b _08027324
- .align 2, 0
-_08027280: .4byte gBattleExecBuffer
-_08027284: .4byte gBattlescriptCurrInstr
-_08027288: .4byte gActiveBank
-_0802728C: .4byte gBattleMons
-_08027290:
- ldr r4, _0802732C @ =gActiveBank
- ldr r5, _08027330 @ =gBankAttacker
- ldrb r0, [r5]
- strb r0, [r4]
- ldr r6, _08027334 @ =gAbsentBankFlags
- ldrb r1, [r6]
- ldr r7, _08027338 @ =gBitTable
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r7
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080272CC
- ldr r3, _0802733C @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r1, [r0]
- adds r3, 0x50
- adds r2, r3
- ldr r2, [r2]
- movs r0, 0
- bl EmitStatusIconUpdate
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_080272CC:
- ldr r0, _08027340 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802731C
- ldrb r0, [r5]
- bl GetBankIdentity
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- strb r0, [r4]
- ldrb r1, [r6]
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r7
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802731C
- ldr r3, _0802733C @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r1, [r0]
- adds r3, 0x50
- adds r2, r3
- ldr r2, [r2]
- movs r0, 0
- bl EmitStatusIconUpdate
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_0802731C:
- ldr r1, _08027344 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08027324:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802732C: .4byte gActiveBank
-_08027330: .4byte gBankAttacker
-_08027334: .4byte gAbsentBankFlags
-_08027338: .4byte gBitTable
-_0802733C: .4byte gBattleMons
-_08027340: .4byte gBattleTypeFlags
-_08027344: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8027238
-
- thumb_func_start sub_8027348
-sub_8027348: @ 8027348
- push {r4-r6,lr}
- ldr r6, _08027378 @ =gSideTimer
- ldr r4, _0802737C @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankIdentity
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- beq _08027388
- ldr r2, _08027380 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08027384 @ =gBattleCommunication
- strb r5, [r0, 0x5]
- b _080273C0
- .align 2, 0
-_08027378: .4byte gSideTimer
-_0802737C: .4byte gBankAttacker
-_08027380: .4byte gBattleMoveFlags
-_08027384: .4byte gBattleCommunication
-_08027388:
- ldrb r0, [r4]
- bl GetBankIdentity
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5
- strb r1, [r0, 0x2]
- ldrb r0, [r4]
- bl GetBankIdentity
- ldr r2, _080273D0 @ =gSideAffecting
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- movs r3, 0
- orrs r0, r2
- strh r0, [r1]
- ldr r0, _080273D4 @ =gBattleCommunication
- strb r3, [r0, 0x5]
-_080273C0:
- ldr r1, _080273D8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080273D0: .4byte gSideAffecting
-_080273D4: .4byte gBattleCommunication
-_080273D8: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8027348
-
- thumb_func_start atk9A_setincreasedcriticalchance
-atk9A_setincreasedcriticalchance: @ 80273DC
- push {lr}
- ldr r1, _0802740C @ =gBattleMons
- ldr r0, _08027410 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r3, 0x80
- lsls r3, 13
- adds r2, r1, 0
- ands r2, r3
- cmp r2, 0
- beq _0802741C
- ldr r2, _08027414 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08027418 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08027424
- .align 2, 0
-_0802740C: .4byte gBattleMons
-_08027410: .4byte gBankAttacker
-_08027414: .4byte gBattleMoveFlags
-_08027418: .4byte gBattleCommunication
-_0802741C:
- orrs r1, r3
- str r1, [r0]
- ldr r0, _08027430 @ =gBattleCommunication
- strb r2, [r0, 0x5]
-_08027424:
- ldr r1, _08027434 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08027430: .4byte gBattleCommunication
-_08027434: .4byte gBattlescriptCurrInstr
- thumb_func_end atk9A_setincreasedcriticalchance
-
- thumb_func_start atk9B_transformdataexecution
-atk9B_transformdataexecution: @ 8027438
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r1, _08027490 @ =gUnknown_02024BE8
- ldr r2, _08027494 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08027498 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r7, _0802749C @ =gBattleMons
- ldr r0, _080274A0 @ =gBankTarget
- mov r12, r0
- ldrb r1, [r0]
- movs r6, 0x58
- adds r0, r1, 0
- muls r0, r6
- adds r5, r7, 0
- adds r5, 0x50
- adds r0, r5
- ldr r0, [r0]
- movs r4, 0x80
- lsls r4, 14
- ands r0, r4
- cmp r0, 0
- bne _0802747E
- ldr r0, _080274A4 @ =gStatuses3
- lsls r1, 2
- adds r1, r0
- ldr r2, [r1]
- ldr r0, _080274A8 @ =0x000400c0
- ands r2, r0
- cmp r2, 0
- beq _080274B4
-_0802747E:
- ldr r2, _080274AC @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080274B0 @ =gBattleCommunication
- movs r0, 0x1
- b _080275C8
- .align 2, 0
-_08027490: .4byte gUnknown_02024BE8
-_08027494: .4byte 0x0000ffff
-_08027498: .4byte gBattlescriptCurrInstr
-_0802749C: .4byte gBattleMons
-_080274A0: .4byte gBankTarget
-_080274A4: .4byte gStatuses3
-_080274A8: .4byte 0x000400c0
-_080274AC: .4byte gBattleMoveFlags
-_080274B0: .4byte gBattleCommunication
-_080274B4:
- ldr r3, _08027588 @ =gBankAttacker
- ldrb r0, [r3]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- ldr r0, [r1]
- orrs r0, r4
- str r0, [r1]
- ldr r4, _0802758C @ =gDisableStructs
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x4]
- ldrb r0, [r3]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0xB]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xB]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- mov r2, r12
- ldrb r1, [r2]
- muls r1, r6
- adds r2, r7, 0
- adds r2, 0x48
- adds r1, r2
- ldr r1, [r1]
- str r1, [r0]
- ldrb r0, [r3]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x18]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1, 0x18]
- ldr r1, _08027590 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x6
- strb r0, [r1, 0x1]
- mov r2, r12
- ldrb r0, [r2]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r2]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldrb r0, [r3]
- muls r0, r6
- adds r5, r0, r7
- ldrb r0, [r2]
- muls r0, r6
- adds r2, r0, r7
- movs r4, 0
- adds r6, r3, 0
- ldr r0, _08027594 @ =gActiveBank
- mov r8, r0
-_0802754C:
- adds r0, r5, r4
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x23
- bls _0802754C
- movs r4, 0
- ldr r7, _08027598 @ =gBattleMoves
- ldr r3, _0802759C @ =gUnknown_02024A8C
- adds r5, r3, 0
- adds r5, 0x18
-_08027564:
- lsls r1, r4, 1
- ldrb r2, [r6]
- movs r0, 0x58
- muls r2, r0
- adds r1, r2
- adds r1, r3
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r1, [r0, 0x4]
- cmp r1, 0x4
- bhi _080275A0
- adds r0, r4, r2
- adds r0, r5
- b _080275A6
- .align 2, 0
-_08027588: .4byte gBankAttacker
-_0802758C: .4byte gDisableStructs
-_08027590: .4byte gBattleTextBuff1
-_08027594: .4byte gActiveBank
-_08027598: .4byte gBattleMoves
-_0802759C: .4byte gUnknown_02024A8C
-_080275A0:
- adds r0, r4, r2
- adds r0, r5
- movs r1, 0x5
-_080275A6:
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x3
- ble _08027564
- ldrb r0, [r6]
- mov r1, r8
- strb r0, [r1]
- movs r0, 0
- movs r1, 0x2
- bl EmitResetActionMoveSelection
- mov r2, r8
- ldrb r0, [r2]
- bl MarkBufferBankForExecution
- ldr r1, _080275D4 @ =gBattleCommunication
- movs r0, 0
-_080275C8:
- strb r0, [r1, 0x5]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080275D4: .4byte gBattleCommunication
- thumb_func_end atk9B_transformdataexecution
-
- thumb_func_start sub_80275D8
-sub_80275D8: @ 80275D8
- push {r4-r7,lr}
- ldr r7, _08027608 @ =gBattleMons
- ldr r6, _0802760C @ =gBankAttacker
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r3, r0, r7
- ldrh r0, [r3, 0x2C]
- lsrs r1, r0, 2
- adds r2, r1, 0
- cmp r1, 0
- bne _080275F2
- movs r2, 0x1
-_080275F2:
- ldrh r0, [r3, 0x28]
- cmp r0, r2
- bhi _08027618
- ldr r1, _08027610 @ =gBattleMoveDamage
- movs r0, 0
- str r0, [r1]
- ldr r1, _08027614 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0802766C
- .align 2, 0
-_08027608: .4byte gBattleMons
-_0802760C: .4byte gBankAttacker
-_08027610: .4byte gBattleMoveDamage
-_08027614: .4byte gBattleCommunication
-_08027618:
- ldr r4, _0802767C @ =gBattleMoveDamage
- str r1, [r4]
- cmp r1, 0
- bne _08027624
- movs r0, 0x1
- str r0, [r4]
-_08027624:
- ldrb r0, [r6]
- adds r2, r0, 0
- muls r2, r5
- adds r3, r7, 0
- adds r3, 0x50
- adds r2, r3
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 17
- orrs r0, r1
- str r0, [r2]
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r3
- ldr r0, [r1]
- ldr r2, _08027680 @ =0xffff1fff
- ands r0, r2
- str r0, [r1]
- ldr r2, _08027684 @ =gDisableStructs
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, [r4]
- movs r2, 0
- strb r1, [r0, 0xA]
- ldr r0, _08027688 @ =gBattleCommunication
- strb r2, [r0, 0x5]
- ldr r2, _0802768C @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 1
- orrs r0, r1
- str r0, [r2]
-_0802766C:
- ldr r1, _08027690 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802767C: .4byte gBattleMoveDamage
-_08027680: .4byte 0xffff1fff
-_08027684: .4byte gDisableStructs
-_08027688: .4byte gBattleCommunication
-_0802768C: .4byte gHitMarker
-_08027690: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80275D8
-
- thumb_func_start sub_8027694
-sub_8027694: @ 8027694
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r3, 0
- ldr r0, _080276D4 @ =gUnknown_081FACFE
- ldrh r1, [r0]
- ldr r4, _080276D8 @ =0x0000fffe
- adds r5, r0, 0
- cmp r1, r4
- beq _080276BC
- cmp r1, r2
- beq _080276BC
- adds r1, r5, 0
-_080276AE:
- adds r1, 0x2
- adds r3, 0x1
- ldrh r0, [r1]
- cmp r0, r4
- beq _080276BC
- cmp r0, r2
- bne _080276AE
-_080276BC:
- lsls r0, r3, 1
- adds r0, r5
- ldrh r1, [r0]
- ldr r0, _080276D8 @ =0x0000fffe
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080276D4: .4byte gUnknown_081FACFE
-_080276D8: .4byte 0x0000fffe
- thumb_func_end sub_8027694
-
- thumb_func_start atk9D_copyattack
-atk9D_copyattack: @ 80276DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08027754 @ =gUnknown_02024BE8
- ldr r1, _08027758 @ =0x0000ffff
- adds r7, r1, 0
- strh r7, [r0]
- ldr r5, _0802775C @ =gLastUsedMove
- ldr r6, _08027760 @ =gBankTarget
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- bl sub_8027694
- lsls r0, 24
- cmp r0, 0
- bne _08027736
- ldr r3, _08027764 @ =gBattleMons
- ldr r2, _08027768 @ =gBankAttacker
- ldrb r1, [r2]
- movs r0, 0x58
- adds r4, r1, 0
- muls r4, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r4, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 14
- ands r1, r0
- mov r12, r3
- mov r9, r2
- cmp r1, 0
- bne _08027736
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r5
- ldrh r1, [r0]
- cmp r1, 0
- beq _08027736
- cmp r1, r7
- bne _08027770
-_08027736:
- ldr r3, _0802776C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _080278A8
- .align 2, 0
-_08027754: .4byte gUnknown_02024BE8
-_08027758: .4byte 0x0000ffff
-_0802775C: .4byte gLastUsedMove
-_08027760: .4byte gBankTarget
-_08027764: .4byte gBattleMons
-_08027768: .4byte gBankAttacker
-_0802776C: .4byte gBattlescriptCurrInstr
-_08027770:
- movs r2, 0
- mov r3, r12
- adds r3, 0xC
- adds r0, r4, r3
- ldrh r0, [r0]
- ldr r4, _08027800 @ =gBattlescriptCurrInstr
- mov r10, r4
- cmp r0, r1
- beq _080277AA
- mov r8, r3
- adds r7, r5, 0
- adds r5, r6, 0
- mov r4, r9
- movs r3, 0x58
-_0802778C:
- adds r2, 0x1
- cmp r2, 0x3
- bgt _080277AA
- lsls r1, r2, 1
- ldrb r0, [r4]
- muls r0, r3
- adds r1, r0
- add r1, r8
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r7
- ldrh r1, [r1]
- ldrh r0, [r0]
- cmp r1, r0
- bne _0802778C
-_080277AA:
- cmp r2, 0x4
- bne _0802788C
- ldr r5, _08027804 @ =gCurrMovePos
- ldrb r1, [r5]
- lsls r1, 1
- mov r2, r9
- ldrb r0, [r2]
- movs r6, 0x58
- muls r0, r6
- adds r1, r0
- mov r0, r12
- adds r0, 0xC
- adds r1, r0
- ldr r2, _08027808 @ =gLastUsedMove
- ldr r3, _0802780C @ =gBankTarget
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r4, _08027810 @ =gBattleMoves
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r4, [r0, 0x4]
- cmp r4, 0x4
- bhi _08027814
- mov r1, r9
- ldrb r0, [r1]
- muls r0, r6
- ldrb r1, [r5]
- adds r0, r1
- mov r1, r12
- adds r1, 0x24
- adds r0, r1
- strb r4, [r0]
- b _08027828
- .align 2, 0
-_08027800: .4byte gBattlescriptCurrInstr
-_08027804: .4byte gCurrMovePos
-_08027808: .4byte gLastUsedMove
-_0802780C: .4byte gBankTarget
-_08027810: .4byte gBattleMoves
-_08027814:
- mov r4, r9
- ldrb r0, [r4]
- muls r0, r6
- ldrb r1, [r5]
- adds r0, r1
- mov r1, r12
- adds r1, 0x24
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
-_08027828:
- ldr r1, _08027880 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08027884 @ =gDisableStructs
- mov r2, r9
- ldrb r0, [r2]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r4, [r2, 0x18]
- lsrs r3, r4, 4
- ldr r1, _08027888 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- orrs r1, r3
- lsls r1, 4
- movs r0, 0xF
- ands r0, r4
- orrs r0, r1
- strb r0, [r2, 0x18]
- mov r4, r10
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- b _080278A8
- .align 2, 0
-_08027880: .4byte gBattleTextBuff1
-_08027884: .4byte gDisableStructs
-_08027888: .4byte gBitTable
-_0802788C:
- mov r0, r10
- ldr r2, [r0]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- mov r2, r10
- str r1, [r2]
-_080278A8:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk9D_copyattack
-
- thumb_func_start sub_80278B8
-sub_80278B8: @ 80278B8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _08027938 @ =gCurrentMove
- movs r6, 0xB1
- lsls r6, 1
- ldr r5, _0802793C @ =gUnknown_081FACFE
- ldr r0, _08027940 @ =gBattlescriptCurrInstr
- mov r8, r0
-_080278CA:
- bl Random
- ldr r2, _08027944 @ =0x000001ff
- adds r1, r2, 0
- ands r0, r1
- adds r0, 0x1
- strh r0, [r7]
- cmp r0, r6
- bhi _080278CA
- movs r0, 0x3
-_080278DE:
- subs r0, 0x1
- cmp r0, 0
- bge _080278DE
- ldr r4, _08027938 @ =gCurrentMove
- ldrh r2, [r4]
- ldr r3, _08027948 @ =0x0000ffff
- subs r0, r5, 0x2
-_080278EC:
- adds r0, 0x2
- ldrh r1, [r0]
- cmp r1, r2
- beq _080278F8
- cmp r1, r3
- bne _080278EC
-_080278F8:
- ldr r0, _08027948 @ =0x0000ffff
- cmp r1, r0
- bne _080278CA
- ldr r2, _0802794C @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _08027950 @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r3, _08027954 @ =gUnknown_081D6BBC
- ldr r2, _08027958 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- mov r1, r8
- str r0, [r1]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _0802795C @ =gBankTarget
- strb r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027938: .4byte gCurrentMove
-_0802793C: .4byte gUnknown_081FACFE
-_08027940: .4byte gBattlescriptCurrInstr
-_08027944: .4byte 0x000001ff
-_08027948: .4byte 0x0000ffff
-_0802794C: .4byte gHitMarker
-_08027950: .4byte 0xfffffbff
-_08027954: .4byte gUnknown_081D6BBC
-_08027958: .4byte gBattleMoves
-_0802795C: .4byte gBankTarget
- thumb_func_end sub_80278B8
-
- thumb_func_start sub_8027960
-sub_8027960: @ 8027960
- ldr r3, _08027980 @ =gBattleMoveDamage
- ldr r2, _08027984 @ =gBattleMons
- ldr r0, _08027988 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r0, [r0]
- str r0, [r3]
- ldr r1, _0802798C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08027980: .4byte gBattleMoveDamage
-_08027984: .4byte gBattleMons
-_08027988: .4byte gBankAttacker
-_0802798C: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8027960
-
- thumb_func_start atkA0_psywavedamageeffect
-atkA0_psywavedamageeffect: @ 8027990
- push {r4,lr}
- movs r4, 0xF
-_08027994:
- bl Random
- adds r3, r4, 0
- ands r3, r0
- cmp r3, 0xA
- bgt _08027994
- lsls r0, r3, 2
- adds r0, r3
- lsls r3, r0, 1
- ldr r4, _080279D4 @ =gBattleMoveDamage
- ldr r2, _080279D8 @ =gBattleMons
- ldr r0, _080279DC @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r1, [r0]
- adds r0, r3, 0
- adds r0, 0x32
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- ldr r1, _080279E0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080279D4: .4byte gBattleMoveDamage
-_080279D8: .4byte gBattleMons
-_080279DC: .4byte gBankAttacker
-_080279E0: .4byte gBattlescriptCurrInstr
- thumb_func_end atkA0_psywavedamageeffect
-
- thumb_func_start atkA1_counterdamagecalculator
-atkA1_counterdamagecalculator: @ 80279E4
- push {r4-r6,lr}
- ldr r4, _08027A54 @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _08027A58 @ =gProtectStructs
- ldrb r0, [r4]
- lsls r0, 4
- adds r0, r5
- ldrb r0, [r0, 0xC]
- bl GetBankSide
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r0, r5, 0x4
- adds r0, r1, r0
- ldr r3, [r0]
- cmp r3, 0
- beq _08027A98
- cmp r6, r2
- beq _08027A98
- ldr r6, _08027A5C @ =gBattleMons
- adds r0, r1, r5
- ldrb r0, [r0, 0xC]
- movs r4, 0x58
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027A98
- ldr r1, _08027A60 @ =gBattleMoveDamage
- lsls r0, r3, 1
- str r0, [r1]
- ldr r1, _08027A64 @ =gSideTimer
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x8]
- cmp r0, 0
- beq _08027A6C
- ldrb r1, [r1, 0x9]
- adds r0, r1, 0
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027A6C
- ldr r0, _08027A68 @ =gBankTarget
- strb r1, [r0]
- b _08027A7C
- .align 2, 0
-_08027A54: .4byte gBankAttacker
-_08027A58: .4byte gProtectStructs
-_08027A5C: .4byte gBattleMons
-_08027A60: .4byte gBattleMoveDamage
-_08027A64: .4byte gSideTimer
-_08027A68: .4byte gBankTarget
-_08027A6C:
- ldr r2, _08027A88 @ =gBankTarget
- ldr r1, _08027A8C @ =gProtectStructs
- ldr r0, _08027A90 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0xC]
- strb r0, [r2]
-_08027A7C:
- ldr r1, _08027A94 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027AC8
- .align 2, 0
-_08027A88: .4byte gBankTarget
-_08027A8C: .4byte gProtectStructs
-_08027A90: .4byte gBankAttacker
-_08027A94: .4byte gBattlescriptCurrInstr
-_08027A98:
- ldr r2, _08027AD0 @ =gSpecialStatuses
- ldr r0, _08027AD4 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r3, _08027AD8 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027AC8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08027AD0: .4byte gSpecialStatuses
-_08027AD4: .4byte gBankAttacker
-_08027AD8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkA1_counterdamagecalculator
-
- thumb_func_start atkA2_mirrorcoatdamagecalculator
-atkA2_mirrorcoatdamagecalculator: @ 8027ADC
- push {r4-r6,lr}
- ldr r4, _08027B4C @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _08027B50 @ =gProtectStructs
- ldrb r0, [r4]
- lsls r0, 4
- adds r0, r5
- ldrb r0, [r0, 0xD]
- bl GetBankSide
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r0, r5, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r3, [r0]
- cmp r3, 0
- beq _08027B90
- cmp r6, r2
- beq _08027B90
- ldr r6, _08027B54 @ =gBattleMons
- adds r0, r1, r5
- ldrb r0, [r0, 0xD]
- movs r4, 0x58
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027B90
- ldr r1, _08027B58 @ =gBattleMoveDamage
- lsls r0, r3, 1
- str r0, [r1]
- ldr r1, _08027B5C @ =gSideTimer
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x8]
- cmp r0, 0
- beq _08027B64
- ldrb r1, [r1, 0x9]
- adds r0, r1, 0
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027B64
- ldr r0, _08027B60 @ =gBankTarget
- strb r1, [r0]
- b _08027B74
- .align 2, 0
-_08027B4C: .4byte gBankAttacker
-_08027B50: .4byte gProtectStructs
-_08027B54: .4byte gBattleMons
-_08027B58: .4byte gBattleMoveDamage
-_08027B5C: .4byte gSideTimer
-_08027B60: .4byte gBankTarget
-_08027B64:
- ldr r2, _08027B80 @ =gBankTarget
- ldr r1, _08027B84 @ =gProtectStructs
- ldr r0, _08027B88 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0xD]
- strb r0, [r2]
-_08027B74:
- ldr r1, _08027B8C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027BC0
- .align 2, 0
-_08027B80: .4byte gBankTarget
-_08027B84: .4byte gProtectStructs
-_08027B88: .4byte gBankAttacker
-_08027B8C: .4byte gBattlescriptCurrInstr
-_08027B90:
- ldr r2, _08027BC8 @ =gSpecialStatuses
- ldr r0, _08027BCC @ =gBankAttacker
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r3, _08027BD0 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027BC0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08027BC8: .4byte gSpecialStatuses
-_08027BCC: .4byte gBankAttacker
-_08027BD0: .4byte gBattlescriptCurrInstr
- thumb_func_end atkA2_mirrorcoatdamagecalculator
-
- thumb_func_start atkA3_disablelastusedattack
-atkA3_disablelastusedattack: @ 8027BD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r4, 0
- ldr r2, _08027CD4 @ =gBattleMons
- ldr r3, _08027CD8 @ =gBankTarget
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r7, r2, 0
- adds r7, 0xC
- adds r0, r7
- ldr r5, _08027CDC @ =gLastUsedMove
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r0]
- mov r9, r2
- adds r6, r3, 0
- ldr r2, _08027CE0 @ =gDisableStructs
- mov r8, r2
- ldrh r1, [r1]
- cmp r0, r1
- beq _08027C28
- mov r12, r6
- movs r3, 0x58
-_08027C08:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08027C28
- lsls r2, r4, 1
- mov r0, r12
- ldrb r1, [r0]
- adds r0, r1, 0
- muls r0, r3
- adds r2, r0
- adds r2, r7
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _08027C08
-_08027C28:
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- ldrh r0, [r0, 0x4]
- cmp r0, 0
- bne _08027CEC
- cmp r4, 0x4
- beq _08027CEC
- movs r5, 0x58
- adds r0, r1, 0
- muls r0, r5
- adds r0, r4, r0
- mov r1, r9
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08027CEC
- ldr r1, _08027CE4 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- lsls r2, r4, 1
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r2, r0
- mov r3, r9
- adds r3, 0xC
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r2, r0
- adds r0, r3
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- muls r1, r5
- adds r2, r1
- adds r2, r3
- ldrh r1, [r2]
- strh r1, [r0, 0x4]
- bl Random
- ldrb r2, [r6]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r8
- movs r2, 0x3
- ands r2, r0
- adds r2, 0x2
- ldrb r3, [r1, 0xB]
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xB]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r3, [r1, 0xB]
- lsls r2, r3, 28
- lsrs r2, 24
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xB]
- ldr r1, _08027CE8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027D06
- .align 2, 0
-_08027CD4: .4byte gBattleMons
-_08027CD8: .4byte gBankTarget
-_08027CDC: .4byte gLastUsedMove
-_08027CE0: .4byte gDisableStructs
-_08027CE4: .4byte gBattleTextBuff1
-_08027CE8: .4byte gBattlescriptCurrInstr
-_08027CEC:
- ldr r3, _08027D14 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027D06:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027D14: .4byte gBattlescriptCurrInstr
- thumb_func_end atkA3_disablelastusedattack
-
- thumb_func_start atkA4_setencore
-atkA4_setencore: @ 8027D18
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r5, 0
- ldr r3, _08027E0C @ =gBattleMons
- ldr r4, _08027E10 @ =gBankTarget
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r6, r3, 0
- adds r6, 0xC
- adds r0, r6
- ldr r2, _08027E14 @ =gLastUsedMove
- lsls r1, 1
- adds r1, r2
- ldrh r0, [r0]
- mov r10, r3
- mov r8, r2
- ldr r2, _08027E18 @ =gDisableStructs
- mov r9, r2
- ldrh r1, [r1]
- cmp r0, r1
- beq _08027D72
- mov r12, r4
- adds r7, r6, 0
- mov r6, r8
- movs r3, 0x58
-_08027D52:
- adds r5, 0x1
- cmp r5, 0x3
- bgt _08027D72
- lsls r2, r5, 1
- mov r0, r12
- ldrb r1, [r0]
- adds r0, r1, 0
- muls r0, r3
- adds r2, r0
- adds r2, r7
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _08027D52
-_08027D72:
- ldrb r0, [r4]
- lsls r0, 1
- add r0, r8
- ldrh r2, [r0]
- cmp r2, 0xA5
- beq _08027D86
- cmp r2, 0xE3
- beq _08027D86
- cmp r2, 0x77
- bne _08027D88
-_08027D86:
- movs r5, 0x4
-_08027D88:
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r2, r9
- adds r3, r0, r2
- ldrh r0, [r3, 0x6]
- cmp r0, 0
- bne _08027E20
- cmp r5, 0x4
- beq _08027E20
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- adds r0, r5, r2
- mov r1, r10
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08027E20
- lsls r0, r5, 1
- adds r0, r2
- subs r1, 0x18
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3, 0x6]
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- strb r5, [r0, 0xC]
- bl Random
- ldrb r2, [r4]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r9
- movs r2, 0x3
- ands r2, r0
- adds r2, 0x3
- ldrb r3, [r1, 0xE]
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xE]
- ldrb r0, [r4]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r9
- ldrb r3, [r1, 0xE]
- lsls r2, r3, 28
- lsrs r2, 24
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xE]
- ldr r1, _08027E1C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027E3A
- .align 2, 0
-_08027E0C: .4byte gBattleMons
-_08027E10: .4byte gBankTarget
-_08027E14: .4byte gLastUsedMove
-_08027E18: .4byte gDisableStructs
-_08027E1C: .4byte gBattlescriptCurrInstr
-_08027E20:
- ldr r3, _08027E48 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027E3A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027E48: .4byte gBattlescriptCurrInstr
- thumb_func_end atkA4_setencore
-
- thumb_func_start sub_8027E4C
-sub_8027E4C: @ 8027E4C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r7, _08027EEC @ =gBattleMons
- ldr r0, _08027EF0 @ =gBankTarget
- mov r8, r0
- ldrb r0, [r0]
- movs r6, 0x58
- adds r2, r0, 0
- muls r2, r6
- adds r0, r7, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _08027F18
- ldr r1, _08027EF4 @ =gBankAttacker
- mov r12, r1
- ldrb r0, [r1]
- muls r0, r6
- adds r0, r7
- ldrh r4, [r0, 0x28]
- adds r0, r2, r7
- ldrh r2, [r0, 0x28]
- adds r4, r2
- asrs r4, 1
- ldr r5, _08027EF8 @ =gBattleMoveDamage
- mov r9, r5
- subs r2, r4
- str r2, [r5]
- ldr r3, _08027EFC @ =0x02000000
- ldr r1, _08027F00 @ =0x00016014
- adds r0, r3, r1
- strb r2, [r0]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r2
- asrs r0, 8
- ldr r5, _08027F04 @ =0x00016015
- adds r1, r3, r5
- strb r0, [r1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r2
- asrs r0, 16
- adds r5, 0x1
- adds r1, r3, r5
- strb r0, [r1]
- lsrs r2, 24
- ldr r0, _08027F08 @ =0x00016017
- adds r3, r0
- strb r2, [r3]
- mov r1, r12
- ldrb r0, [r1]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0, 0x28]
- subs r0, r4
- mov r5, r9
- str r0, [r5]
- ldr r2, _08027F0C @ =gSpecialStatuses
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r0, r2
- ldr r1, _08027F10 @ =0x0000ffff
- str r1, [r0]
- ldr r1, _08027F14 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027F32
- .align 2, 0
-_08027EEC: .4byte gBattleMons
-_08027EF0: .4byte gBankTarget
-_08027EF4: .4byte gBankAttacker
-_08027EF8: .4byte gBattleMoveDamage
-_08027EFC: .4byte 0x02000000
-_08027F00: .4byte 0x00016014
-_08027F04: .4byte 0x00016015
-_08027F08: .4byte 0x00016017
-_08027F0C: .4byte gSpecialStatuses
-_08027F10: .4byte 0x0000ffff
-_08027F14: .4byte gBattlescriptCurrInstr
-_08027F18:
- ldr r3, _08027F40 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027F32:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027F40: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8027E4C
-
- thumb_func_start sub_8027F44
-sub_8027F44: @ 8027F44
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _08027FA8 @ =gMoveHitWith
- ldr r4, _08027FAC @ =gBankAttacker
- ldrb r0, [r4]
- lsls r0, 1
- adds r2, r0, r1
- ldrh r1, [r2]
- cmp r1, 0
- beq _08027F8C
- ldr r0, _08027FB0 @ =0x0000ffff
- cmp r1, r0
- beq _08027F8C
- ldrh r0, [r2]
- bl sub_8028350
- lsls r0, 24
- cmp r0, 0
- beq _08028024
- ldr r2, _08027FB4 @ =gProtectStructs
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08028024
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08028024
-_08027F8C:
- ldr r3, _08027FB8 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08028110
- .align 2, 0
-_08027FA8: .4byte gMoveHitWith
-_08027FAC: .4byte gBankAttacker
-_08027FB0: .4byte 0x0000ffff
-_08027FB4: .4byte gProtectStructs
-_08027FB8: .4byte gBattlescriptCurrInstr
-_08027FBC:
- mov r0, r12
- strb r5, [r0]
- mov r1, r10
- ldrb r0, [r1]
- muls r0, r2
- adds r0, r7
- adds r0, 0x22
- strb r5, [r0]
- ldr r1, _08027FE0 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r5, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _08027FE4 @ =gBattlescriptCurrInstr
- b _08028012
- .align 2, 0
-_08027FE0: .4byte gBattleTextBuff1
-_08027FE4: .4byte gBattlescriptCurrInstr
-_08027FE8:
- mov r0, r8
- adds r0, 0x1
- adds r0, r3
- ldrb r2, [r0]
- strb r2, [r4]
- mov r4, r10
- ldrb r0, [r4]
- muls r0, r6
- ldr r7, _0802801C @ =gBattleMons
- adds r0, r7
- adds r0, 0x22
- strb r2, [r0]
- ldr r1, _08028020 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- mov r1, r12
-_08028012:
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08028110
- .align 2, 0
-_0802801C: .4byte gBattleMons
-_08028020: .4byte gBattleTextBuff1
-_08028024:
- movs r4, 0
- mov r8, r4
- movs r7, 0x7F
- mov r9, r7
-_0802802C:
- bl Random
- mov r4, r9
- ands r4, r0
- cmp r4, 0x70
- bhi _0802802C
- lsls r0, r4, 1
- adds r4, r0, r4
- ldr r6, _08028120 @ =gTypeEffectiveness
- adds r3, r4, r6
- ldr r1, _08028124 @ =gUnknown_02024C44
- ldr r2, _08028128 @ =gBankAttacker
- ldrb r5, [r2]
- lsls r0, r5, 1
- adds r0, r1
- ldrb r1, [r3]
- mov r10, r2
- ldrh r0, [r0]
- cmp r1, r0
- bne _08028088
- adds r0, r4, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _08028088
- ldr r7, _0802812C @ =gBattleMons
- movs r2, 0x58
- adds r0, r5, 0
- muls r0, r2
- adds r3, r0, r7
- movs r0, 0x21
- adds r0, r3
- mov r12, r0
- adds r0, r4, 0x1
- adds r0, r6
- ldrb r5, [r0]
- mov r1, r12
- ldrb r0, [r1]
- adds r1, r5, 0
- cmp r0, r1
- beq _08028088
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- bne _08027FBC
-_08028088:
- movs r7, 0x1
- add r8, r7
- ldr r0, _08028130 @ =0x000003e7
- cmp r8, r0
- ble _0802802C
- movs r0, 0
- mov r8, r0
- ldr r1, _08028134 @ =gBattlescriptCurrInstr
- mov r12, r1
- ldr r3, _08028120 @ =gTypeEffectiveness
- adds r0, r4, 0x1
- adds r0, r3
- mov r9, r0
- adds r5, r3, 0
-_080280A4:
- ldrb r1, [r5]
- cmp r1, 0xFF
- bgt _080280AE
- cmp r1, 0xFE
- bge _080280E8
-_080280AE:
- mov r4, r10
- ldrb r2, [r4]
- lsls r0, r2, 1
- ldr r7, _08028124 @ =gUnknown_02024C44
- adds r0, r7
- ldrh r0, [r0]
- cmp r1, r0
- bne _080280E8
- ldrb r0, [r5, 0x2]
- cmp r0, 0x5
- bhi _080280E8
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- ldr r1, _0802812C @ =gBattleMons
- adds r2, r0, r1
- adds r4, r2, 0
- adds r4, 0x21
- ldrb r0, [r4]
- mov r7, r9
- ldrb r1, [r7]
- cmp r0, r1
- beq _080280E8
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- beq _080280E8
- b _08027FE8
-_080280E8:
- adds r5, 0x3
- movs r0, 0x3
- add r8, r0
- ldr r0, _08028138 @ =0x0000014f
- cmp r8, r0
- bls _080280A4
- mov r1, r12
- ldr r2, [r1]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- mov r4, r12
- str r1, [r4]
-_08028110:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028120: .4byte gTypeEffectiveness
-_08028124: .4byte gUnknown_02024C44
-_08028128: .4byte gBankAttacker
-_0802812C: .4byte gBattleMons
-_08028130: .4byte 0x000003e7
-_08028134: .4byte gBattlescriptCurrInstr
-_08028138: .4byte 0x0000014f
- thumb_func_end sub_8027F44
-
- thumb_func_start atkA7_setalwayshitflag
-atkA7_setalwayshitflag: @ 802813C
- push {r4,lr}
- ldr r4, _08028180 @ =gStatuses3
- ldr r3, _08028184 @ =gBankTarget
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x19
- negs r2, r2
- ands r0, r2
- str r0, [r1]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x10
- orrs r0, r2
- str r0, [r1]
- ldr r2, _08028188 @ =gDisableStructs
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0802818C @ =gBankAttacker
- ldrb r1, [r1]
- strb r1, [r0, 0x15]
- ldr r1, _08028190 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08028180: .4byte gStatuses3
-_08028184: .4byte gBankTarget
-_08028188: .4byte gDisableStructs
-_0802818C: .4byte gBankAttacker
-_08028190: .4byte gBattlescriptCurrInstr
- thumb_func_end atkA7_setalwayshitflag
-
- thumb_func_start atkA8_copymovepermanently
-atkA8_copymovepermanently: @ 8028194
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- ldr r0, _080282F4 @ =gUnknown_02024BE8
- ldr r1, _080282F8 @ =0x0000ffff
- adds r5, r1, 0
- strh r5, [r0]
- ldr r3, _080282FC @ =gBattleMons
- ldr r2, _08028300 @ =gBankAttacker
- ldrb r1, [r2]
- movs r0, 0x58
- adds r4, r1, 0
- muls r4, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r4, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 14
- ands r1, r0
- mov r12, r3
- mov r10, r2
- cmp r1, 0
- beq _080281CC
- b _08028320
-_080281CC:
- ldr r0, _08028304 @ =gUnknown_02024C2C
- ldr r2, _08028308 @ =gBankTarget
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- ldrh r1, [r1]
- mov r9, r0
- mov r8, r2
- cmp r1, 0xA5
- bne _080281E2
- b _08028320
-_080281E2:
- cmp r1, 0
- bne _080281E8
- b _08028320
-_080281E8:
- cmp r1, r5
- bne _080281EE
- b _08028320
-_080281EE:
- cmp r1, 0xA6
- bne _080281F4
- b _08028320
-_080281F4:
- movs r7, 0
- mov r5, r9
- mov r0, r12
- adds r0, 0xC
- adds r1, r4, r0
- mov r3, r8
-_08028200:
- ldrh r2, [r1]
- cmp r2, 0xA6
- beq _08028212
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802821A
-_08028212:
- adds r1, 0x2
- adds r7, 0x1
- cmp r7, 0x3
- ble _08028200
-_0802821A:
- cmp r7, 0x4
- beq _08028220
- b _08028320
-_08028220:
- ldr r4, _0802830C @ =gCurrMovePos
- ldrb r1, [r4]
- lsls r1, 1
- mov r2, r10
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- adds r1, r0
- mov r6, r12
- adds r6, 0xC
- adds r1, r6
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r1]
- mov r1, r10
- ldrb r0, [r1]
- adds r2, r0, 0
- muls r2, r3
- ldrb r4, [r4]
- adds r2, r4
- mov r5, r12
- adds r5, 0x24
- adds r2, r5
- ldr r4, _08028310 @ =gBattleMoves
- mov r1, r8
- ldrb r0, [r1]
- lsls r0, 1
- add r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x4]
- strb r0, [r2]
- ldr r1, _08028314 @ =gActiveBank
- mov r2, r10
- ldrb r0, [r2]
- strb r0, [r1]
- movs r7, 0
- ldrb r0, [r2]
- muls r0, r3
- adds r4, r0, r5
- adds r3, r0, 0
- add r2, sp, 0x4
- add r5, sp, 0xC
-_08028282:
- adds r0, r3, r6
- ldrh r0, [r0]
- strh r0, [r2]
- adds r1, r5, r7
- ldrb r0, [r4]
- strb r0, [r1]
- adds r4, 0x1
- adds r3, 0x2
- adds r2, 0x2
- adds r7, 0x1
- cmp r7, 0x3
- ble _08028282
- add r2, sp, 0x4
- mov r0, r10
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r0, 0x3B
- ldrb r0, [r0]
- strb r0, [r2, 0xC]
- str r2, [sp]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0
- movs r3, 0x10
- bl EmitSetAttributes
- ldr r0, _08028314 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _08028318 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldr r3, _08028304 @ =gUnknown_02024C2C
- ldr r2, _08028308 @ =gBankTarget
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802831C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802833A
- .align 2, 0
-_080282F4: .4byte gUnknown_02024BE8
-_080282F8: .4byte 0x0000ffff
-_080282FC: .4byte gBattleMons
-_08028300: .4byte gBankAttacker
-_08028304: .4byte gUnknown_02024C2C
-_08028308: .4byte gBankTarget
-_0802830C: .4byte gCurrMovePos
-_08028310: .4byte gBattleMoves
-_08028314: .4byte gActiveBank
-_08028318: .4byte gBattleTextBuff1
-_0802831C: .4byte gBattlescriptCurrInstr
-_08028320:
- ldr r3, _0802834C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802833A:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802834C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkA8_copymovepermanently
-
- thumb_func_start sub_8028350
-sub_8028350: @ 8028350
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08028380 @ =gBattleMoves
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1]
- cmp r0, 0x91
- beq _0802837A
- cmp r0, 0x27
- beq _0802837A
- cmp r0, 0x4B
- beq _0802837A
- cmp r0, 0x97
- beq _0802837A
- cmp r0, 0x9B
- beq _0802837A
- cmp r0, 0x1A
- bne _08028384
-_0802837A:
- movs r0, 0x1
- b _08028386
- .align 2, 0
-_08028380: .4byte gBattleMoves
-_08028384:
- movs r0, 0
-_08028386:
- pop {r1}
- bx r1
- thumb_func_end sub_8028350
-
- thumb_func_start sub_802838C
-sub_802838C: @ 802838C
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080283AA
- cmp r1, 0xD6
- beq _080283AA
- movs r0, 0x89
- lsls r0, 1
- cmp r1, r0
- beq _080283AA
- cmp r1, 0x77
- beq _080283AA
- cmp r1, 0x76
- bne _080283AE
-_080283AA:
- movs r0, 0x1
- b _080283B0
-_080283AE:
- movs r0, 0
-_080283B0:
- pop {r1}
- bx r1
- thumb_func_end sub_802838C
-
- thumb_func_start move_weather_interaction
-move_weather_interaction: @ 80283B4
- push {lr}
- lsls r1, 16
- lsrs r2, r1, 16
- ldr r1, _0802840C @ =gBattleMoves
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x97
- bne _080283D8
- ldr r0, _08028410 @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- bne _08028418
-_080283D8:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0x91
- beq _080283FA
- cmp r0, 0x27
- beq _080283FA
- cmp r0, 0x4B
- beq _080283FA
- cmp r0, 0x97
- beq _080283FA
- cmp r0, 0x9B
- beq _080283FA
- cmp r0, 0x1A
- bne _08028418
-_080283FA:
- ldr r0, _08028414 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 20
- ands r0, r1
- cmp r0, 0
- beq _08028418
- movs r0, 0x1
- b _0802841A
- .align 2, 0
-_0802840C: .4byte gBattleMoves
-_08028410: .4byte gBattleWeather
-_08028414: .4byte gHitMarker
-_08028418:
- movs r0, 0x2
-_0802841A:
- pop {r1}
- bx r1
- thumb_func_end move_weather_interaction
-
- thumb_func_start sub_8028420
-sub_8028420: @ 8028420
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- movs r5, 0
- ldr r0, _080284B0 @ =gBankAttacker
- mov r9, r0
- movs r1, 0x58
- mov r8, r1
- ldr r7, _080284B4 @ =gUnknown_02024A8C
- movs r0, 0x84
- lsls r0, 1
- mov r10, r0
-_0802843E:
- lsls r4, r5, 1
- mov r1, r9
- ldrb r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r4, r0
- adds r0, r7
- ldrh r0, [r0]
- bl sub_802838C
- lsls r0, 24
- cmp r0, 0
- bne _0802847E
- mov r1, r9
- ldrb r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r4, r0
- adds r0, r7
- ldrh r1, [r0]
- cmp r1, r10
- beq _0802847E
- cmp r1, 0xFD
- beq _0802847E
- adds r0, r1, 0
- bl sub_8028350
- lsls r0, 24
- cmp r0, 0
- beq _0802848C
-_0802847E:
- ldr r1, _080284B8 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r1
- ldr r0, [r0]
- orrs r6, r0
- lsls r0, r6, 24
- lsrs r6, r0, 24
-_0802848C:
- adds r5, 0x1
- cmp r5, 0x3
- ble _0802843E
- ldr r0, _080284B0 @ =gBankAttacker
- ldrb r0, [r0]
- adds r1, r6, 0
- movs r2, 0xFD
- bl sub_8015A98
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xF
- bne _080284C0
- ldr r1, _080284BC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08028524
- .align 2, 0
-_080284B0: .4byte gBankAttacker
-_080284B4: .4byte gUnknown_02024A8C
-_080284B8: .4byte gBitTable
-_080284BC: .4byte gBattlescriptCurrInstr
-_080284C0:
- movs r7, 0x3
- ldr r4, _08028534 @ =gBitTable
-_080284C4:
- bl Random
- adds r5, r7, 0
- ands r5, r0
- lsls r0, r5, 2
- adds r0, r4
- ldr r0, [r0]
- ands r0, r6
- cmp r0, 0
- bne _080284C4
- ldr r4, _08028538 @ =gUnknown_02024BEA
- ldr r2, _0802853C @ =gBattleMons
- lsls r1, r5, 1
- ldr r0, _08028540 @ =gBankAttacker
- ldrb r3, [r0]
- movs r0, 0x58
- muls r0, r3
- adds r1, r0
- adds r2, 0xC
- adds r1, r2
- ldrh r0, [r1]
- strh r0, [r4]
- ldr r0, _08028544 @ =gCurrMovePos
- strb r5, [r0]
- ldr r2, _08028548 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _0802854C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08028550 @ =gBankTarget
- strb r0, [r1]
- ldr r3, _08028554 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08028524:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028534: .4byte gBitTable
-_08028538: .4byte gUnknown_02024BEA
-_0802853C: .4byte gBattleMons
-_08028540: .4byte gBankAttacker
-_08028544: .4byte gCurrMovePos
-_08028548: .4byte gHitMarker
-_0802854C: .4byte 0xfffffbff
-_08028550: .4byte gBankTarget
-_08028554: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8028420
-
- thumb_func_start sub_8028558
-sub_8028558: @ 8028558
- ldr r1, _0802857C @ =gBattleMons
- ldr r0, _08028580 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 18
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08028584 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802857C: .4byte gBattleMons
-_08028580: .4byte gBankAttacker
-_08028584: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8028558
-
- thumb_func_start b_feature_update_destiny_bond
-b_feature_update_destiny_bond: @ 8028588
- push {r4,r5,lr}
- ldr r0, _080285D8 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080285DC @ =gBankTarget
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _080285E0 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _080285D2
- cmp r5, r3
- beq _080285D2
- ldr r2, _080285E4 @ =gHitMarker
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 17
- ands r0, r1
- cmp r0, 0
- bne _080285D2
- movs r0, 0x40
- orrs r1, r0
- str r1, [r2]
-_080285D2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080285D8: .4byte gBankAttacker
-_080285DC: .4byte gBankTarget
-_080285E0: .4byte gBattleMons
-_080285E4: .4byte gHitMarker
- thumb_func_end b_feature_update_destiny_bond
-
- thumb_func_start atkAB_802A458
-atkAB_802A458: @ 80285E8
- push {lr}
- bl b_feature_update_destiny_bond
- ldr r1, _080285FC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080285FC: .4byte gBattlescriptCurrInstr
- thumb_func_end atkAB_802A458
-
- thumb_func_start atkAC_remaininghptopower
-atkAC_remaininghptopower: @ 8028600
- push {lr}
- ldr r2, _08028654 @ =gBattleMons
- ldr r0, _08028658 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- movs r2, 0x28
- ldrsh r0, [r1, r2]
- movs r2, 0x2C
- ldrsh r1, [r1, r2]
- movs r2, 0x30
- bl GetScaledHPFraction
- lsls r0, 24
- lsrs r1, r0, 24
- movs r3, 0
- ldr r0, _0802865C @ =gUnknown_081FAD26
- ldrb r2, [r0]
- cmp r1, r2
- ble _0802863A
- adds r2, r0, 0
-_0802862C:
- adds r3, 0x2
- cmp r3, 0xB
- bgt _0802863A
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r1, r0
- bgt _0802862C
-_0802863A:
- ldr r2, _08028660 @ =gDynamicBasePower
- ldr r1, _0802865C @ =gUnknown_081FAD26
- adds r0, r3, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2]
- ldr r1, _08028664 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08028654: .4byte gBattleMons
-_08028658: .4byte gBankAttacker
-_0802865C: .4byte gUnknown_081FAD26
-_08028660: .4byte gDynamicBasePower
-_08028664: .4byte gBattlescriptCurrInstr
- thumb_func_end atkAC_remaininghptopower
-
- thumb_func_start sub_8028668
-sub_8028668: @ 8028668
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, _080287F8 @ =gLastUsedMove
- ldr r1, _080287FC @ =gBankTarget
- ldrb r2, [r1]
- lsls r0, r2, 1
- adds r0, r4
- ldrh r3, [r0]
- mov r8, r1
- cmp r3, 0
- bne _08028688
- b _08028828
-_08028688:
- ldr r0, _08028800 @ =0x0000ffff
- cmp r3, r0
- bne _08028690
- b _08028828
-_08028690:
- ldr r1, _08028804 @ =gStatuses3
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08028808 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _080286A2
- b _08028828
-_080286A2:
- movs r7, 0
- ldr r0, _0802880C @ =gBattleMons
- movs r1, 0x58
- muls r1, r2
- adds r2, r0, 0
- adds r2, 0xC
- adds r1, r2
- ldrh r1, [r1]
- cmp r3, r1
- beq _080286DA
- adds r6, r4, 0
- mov r5, r8
- adds r4, r2, 0
- movs r3, 0x58
-_080286BE:
- adds r7, 0x1
- cmp r7, 0x3
- bgt _080286DA
- ldrb r0, [r5]
- lsls r2, r0, 1
- adds r2, r6
- lsls r1, r7, 1
- muls r0, r3
- adds r1, r0
- adds r1, r4
- ldrh r0, [r2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _080286BE
-_080286DA:
- cmp r7, 0x4
- bne _080286E0
- b _08028828
-_080286E0:
- mov r4, r8
- ldrb r0, [r4]
- movs r1, 0x58
- mov r9, r1
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7, r0
- ldr r1, _0802880C @ =gBattleMons
- adds r1, 0x24
- mov r10, r1
- add r0, r10
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _08028700
- b _08028828
-_08028700:
- bl Random
- movs r1, 0x3
- ands r1, r0
- adds r6, r1, 0x2
- ldrb r0, [r4]
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7, r0
- add r0, r10
- ldrb r0, [r0]
- cmp r0, r6
- bge _0802871E
- adds r6, r0, 0
-_0802871E:
- ldr r1, _08028810 @ =gBattleTextBuff1
- movs r5, 0xFD
- strb r5, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldr r2, _080287F8 @ =gLastUsedMove
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r4, _08028814 @ =gBattleTextBuff2
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- strb r5, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- strb r6, [r4, 0x4]
- subs r0, 0x2
- strb r0, [r4, 0x5]
- mov r1, r8
- ldrb r0, [r1]
- mov r1, r9
- muls r1, r0
- adds r1, r7, r1
- add r1, r10
- ldrb r0, [r1]
- subs r0, r6
- strb r0, [r1]
- ldr r4, _08028818 @ =gActiveBank
- mov r3, r8
- ldrb r0, [r3]
- strb r0, [r4]
- ldr r1, _0802881C @ =gDisableStructs
- ldrb r3, [r4]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _08028820 @ =gBitTable
- lsls r0, r7, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080287D2
- mov r2, r9
- muls r2, r3
- ldr r0, _0802880C @ =gBattleMons
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _080287D2
- adds r1, r7, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- mov r3, r10
- adds r0, r2, r3
- adds r0, r7
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_080287D2:
- ldr r1, _08028824 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r1, _0802880C @ =gBattleMons
- ldr r0, _080287FC @ =gBankTarget
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r7, r0
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08028842
- adds r0, r2, 0
- bl CancelMultiTurnMoves
- b _08028842
- .align 2, 0
-_080287F8: .4byte gLastUsedMove
-_080287FC: .4byte gBankTarget
-_08028800: .4byte 0x0000ffff
-_08028804: .4byte gStatuses3
-_08028808: .4byte 0x000400c0
-_0802880C: .4byte gBattleMons
-_08028810: .4byte gBattleTextBuff1
-_08028814: .4byte gBattleTextBuff2
-_08028818: .4byte gActiveBank
-_0802881C: .4byte gDisableStructs
-_08028820: .4byte gBitTable
-_08028824: .4byte gBattlescriptCurrInstr
-_08028828:
- ldr r3, _08028854 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08028842:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028854: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8028668
-
- thumb_func_start sub_8028858
-sub_8028858: @ 8028858
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- movs r4, 0
- str r4, [sp, 0x4]
- movs r7, 0
- ldr r0, _080288AC @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xD7
- beq _08028872
- b _08028A26
-_08028872:
- ldr r5, _080288B0 @ =gBattleCommunication
- strb r7, [r5, 0x5]
- ldr r6, _080288B4 @ =gBankAttacker
- ldrb r0, [r6]
- bl GetBankSide
- lsls r0, 24
- ldr r1, _080288B8 @ =gEnemyParty
- mov r9, r1
- cmp r0, 0
- bne _0802888C
- ldr r2, _080288BC @ =gPlayerParty
- mov r9, r2
-_0802888C:
- ldr r4, _080288C0 @ =gBattleMons
- ldrb r3, [r6]
- movs r0, 0x58
- adds r2, r3, 0
- muls r2, r0
- adds r0, r2, r4
- adds r1, r0, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0x2B
- beq _080288C4
- adds r0, r4, 0
- adds r0, 0x4C
- adds r0, r2, r0
- str r7, [r0]
- b _080288D4
- .align 2, 0
-_080288AC: .4byte gCurrentMove
-_080288B0: .4byte gBattleCommunication
-_080288B4: .4byte gBankAttacker
-_080288B8: .4byte gEnemyParty
-_080288BC: .4byte gPlayerParty
-_080288C0: .4byte gBattleMons
-_080288C4:
- ldrb r1, [r1]
- adds r0, r3, 0
- bl RecordAbilityBattle
- ldrb r0, [r5, 0x5]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r5, 0x5]
-_080288D4:
- ldr r4, _08028934 @ =gActiveBank
- ldr r0, _08028938 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity
- movs r6, 0x2
- eors r0, r6
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- ldr r1, _0802893C @ =0x02000000
- ldr r2, _08028940 @ =0x00016003
- adds r1, r2
- strb r0, [r1]
- strb r0, [r4]
- ldr r0, _08028944 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08028964
- ldr r0, _08028948 @ =gAbsentBankFlags
- ldrb r2, [r0]
- ldr r1, _0802894C @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _08028964
- ldr r5, _08028950 @ =gBattleMons
- movs r0, 0x58
- adds r4, r3, 0
- muls r4, r0
- adds r0, r4, r5
- adds r1, r0, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0x2B
- beq _08028954
- adds r0, r5, 0
- adds r0, 0x4C
- adds r0, r4, r0
- str r2, [r0]
- b _08028964
- .align 2, 0
-_08028934: .4byte gActiveBank
-_08028938: .4byte gBankAttacker
-_0802893C: .4byte 0x02000000
-_08028940: .4byte 0x00016003
-_08028944: .4byte gBattleTypeFlags
-_08028948: .4byte gAbsentBankFlags
-_0802894C: .4byte gBitTable
-_08028950: .4byte gBattleMons
-_08028954:
- ldrb r1, [r1]
- adds r0, r3, 0
- bl RecordAbilityBattle
- ldr r1, _080289AC @ =gBattleCommunication
- ldrb r0, [r1, 0x5]
- orrs r0, r6
- strb r0, [r1, 0x5]
-_08028964:
- movs r6, 0
- ldr r0, _080289B0 @ =gBattleMons
- mov r8, r0
-_0802896A:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- add r4, r9
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r5, 0
- beq _08028A1E
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- beq _08028A1E
- ldr r2, _080289B4 @ =gBattlePartyID
- ldr r0, _080289B8 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r6
- bne _080289BC
- movs r0, 0x58
- muls r0, r1
- b _080289EC
- .align 2, 0
-_080289AC: .4byte gBattleCommunication
-_080289B0: .4byte gBattleMons
-_080289B4: .4byte gBattlePartyID
-_080289B8: .4byte gBankAttacker
-_080289BC:
- ldr r0, _080289F4 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08028A04
- ldr r0, _080289F8 @ =gActiveBank
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r6
- bne _08028A04
- ldr r0, _080289FC @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _08028A00 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08028A04
- movs r0, 0x58
- muls r0, r3
-_080289EC:
- add r0, r8
- adds r0, 0x20
- ldrb r0, [r0]
- b _08028A10
- .align 2, 0
-_080289F4: .4byte gBattleTypeFlags
-_080289F8: .4byte gActiveBank
-_080289FC: .4byte gAbsentBankFlags
-_08028A00: .4byte gBitTable
-_08028A04:
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetAbilityBySpecies
- lsls r0, 24
- lsrs r0, 24
-_08028A10:
- cmp r0, 0x2B
- beq _08028A1E
- movs r0, 0x1
- lsls r0, r6
- orrs r7, r0
- lsls r0, r7, 24
- lsrs r7, r0, 24
-_08028A1E:
- adds r6, 0x1
- cmp r6, 0x5
- ble _0802896A
- b _08028A7E
-_08028A26:
- ldr r1, _08028AB4 @ =gBattleCommunication
- movs r0, 0x4
- strb r0, [r1, 0x5]
- movs r7, 0x3F
- ldr r2, _08028AB8 @ =gBattleMons
- ldr r1, _08028ABC @ =gBankAttacker
- ldrb r0, [r1]
- movs r6, 0x58
- muls r0, r6
- adds r5, r2, 0
- adds r5, 0x4C
- adds r0, r5
- str r4, [r0]
- ldrb r0, [r1]
- bl GetBankIdentity
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- ldr r3, _08028AC0 @ =gActiveBank
- strb r0, [r3]
- ldr r0, _08028AC4 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08028A7E
- ldr r0, _08028AC8 @ =gAbsentBankFlags
- ldrb r2, [r0]
- ldr r1, _08028ACC @ =gBitTable
- ldrb r3, [r3]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _08028A7E
- adds r0, r3, 0
- muls r0, r6
- adds r0, r5
- str r2, [r0]
-_08028A7E:
- ldr r4, _08028AC0 @ =gActiveBank
- ldr r0, _08028ABC @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r4]
- add r1, sp, 0x4
- str r1, [sp]
- movs r0, 0
- movs r1, 0x28
- adds r2, r7, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r1, _08028AD0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028AB4: .4byte gBattleCommunication
-_08028AB8: .4byte gBattleMons
-_08028ABC: .4byte gBankAttacker
-_08028AC0: .4byte gActiveBank
-_08028AC4: .4byte gBattleTypeFlags
-_08028AC8: .4byte gAbsentBankFlags
-_08028ACC: .4byte gBitTable
-_08028AD0: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8028858
-
- thumb_func_start sub_8028AD4
-sub_8028AD4: @ 8028AD4
- push {r4-r7,lr}
- ldr r7, _08028B24 @ =gBattleMons
- ldr r0, _08028B28 @ =gBankTarget
- ldrb r3, [r0]
- movs r6, 0x58
- adds r1, r3, 0
- muls r1, r6
- adds r0, r7, 0
- adds r0, 0x50
- adds r4, r1, r0
- ldr r2, [r4]
- movs r5, 0x80
- lsls r5, 21
- adds r0, r2, 0
- ands r0, r5
- cmp r0, 0
- bne _08028B06
- ldr r1, _08028B2C @ =gStatuses3
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08028B30 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08028B38
-_08028B06:
- ldr r3, _08028B34 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08028B5C
- .align 2, 0
-_08028B24: .4byte gBattleMons
-_08028B28: .4byte gBankTarget
-_08028B2C: .4byte gStatuses3
-_08028B30: .4byte 0x000400c0
-_08028B34: .4byte gBattlescriptCurrInstr
-_08028B38:
- orrs r2, r5
- str r2, [r4]
- ldr r1, _08028B64 @ =gBattleMoveDamage
- ldr r0, _08028B68 @ =gBankAttacker
- ldrb r0, [r0]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _08028B54
- movs r0, 0x1
- str r0, [r1]
-_08028B54:
- ldr r1, _08028B6C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08028B5C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028B64: .4byte gBattleMoveDamage
-_08028B68: .4byte gBankAttacker
-_08028B6C: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8028AD4
-
- thumb_func_start sub_8028B70
-sub_8028B70: @ 8028B70
- push {r4,lr}
- ldr r4, _08028BC4 @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08028BC8 @ =gSideTimer
- lsls r2, r0, 1
- adds r0, r2, r0
- lsls r0, 2
- adds r3, r0, r1
- ldrb r0, [r3, 0x6]
- cmp r0, 0x3
- bne _08028BD4
- ldr r2, _08028BCC @ =gSpecialStatuses
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r3, _08028BD0 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08028BEE
- .align 2, 0
-_08028BC4: .4byte gBankAttacker
-_08028BC8: .4byte gSideTimer
-_08028BCC: .4byte gSpecialStatuses
-_08028BD0: .4byte gBattlescriptCurrInstr
-_08028BD4:
- ldr r1, _08028BF4 @ =gSideAffecting
- adds r1, r2, r1
- ldrh r2, [r1]
- movs r0, 0x10
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r3, 0x6]
- adds r0, 0x1
- strb r0, [r3, 0x6]
- ldr r1, _08028BF8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08028BEE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08028BF4: .4byte gSideAffecting
-_08028BF8: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8028B70
-
- thumb_func_start sub_8028BFC
-sub_8028BFC: @ 8028BFC
- ldr r1, _08028C20 @ =gBattleMons
- ldr r0, _08028C24 @ =gBankTarget
- ldrb r2, [r0]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 22
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08028C28 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08028C20: .4byte gBattleMons
-_08028C24: .4byte gBankTarget
-_08028C28: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8028BFC
-
- thumb_func_start atkB2_setperishsong
-atkB2_setperishsong: @ 8028C2C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- movs r3, 0
- ldr r0, _08028C70 @ =gNoOfAllBanks
- adds r7, r0, 0
- ldr r0, _08028C74 @ =gBankAttacker
- mov r8, r0
- ldrb r1, [r7]
- cmp r6, r1
- bge _08028C98
- movs r5, 0x20
- ldr r0, _08028C78 @ =gBattleMons
- mov r12, r0
- ldr r0, _08028C7C @ =gDisableStructs
- adds r4, r0, 0
- adds r4, 0xF
- ldr r2, _08028C80 @ =gStatuses3
-_08028C54:
- ldr r1, [r2]
- adds r0, r1, 0
- ands r0, r5
- cmp r0, 0
- bne _08028C6C
- movs r0, 0x58
- muls r0, r3
- add r0, r12
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2B
- bne _08028C84
-_08028C6C:
- adds r6, 0x1
- b _08028C8C
- .align 2, 0
-_08028C70: .4byte gNoOfAllBanks
-_08028C74: .4byte gBankAttacker
-_08028C78: .4byte gBattleMons
-_08028C7C: .4byte gDisableStructs
-_08028C80: .4byte gStatuses3
-_08028C84:
- orrs r1, r5
- str r1, [r2]
- movs r0, 0x33
- strb r0, [r4]
-_08028C8C:
- adds r4, 0x1C
- adds r2, 0x4
- adds r3, 0x1
- ldrb r0, [r7]
- cmp r3, r0
- blt _08028C54
-_08028C98:
- mov r1, r8
- ldrb r0, [r1]
- bl sub_80153D0
- ldr r0, _08028CC4 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r6, r0
- bne _08028CCC
- ldr r3, _08028CC8 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08028CD4
- .align 2, 0
-_08028CC4: .4byte gNoOfAllBanks
-_08028CC8: .4byte gBattlescriptCurrInstr
-_08028CCC:
- ldr r1, _08028CE0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08028CD4:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028CE0: .4byte gBattlescriptCurrInstr
- thumb_func_end atkB2_setperishsong
-
- thumb_func_start atkB3_rolloutdamagecalculation
-atkB3_rolloutdamagecalculation: @ 8028CE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08028D08 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08028D18
- ldr r0, _08028D0C @ =gBankAttacker
- ldrb r0, [r0]
- bl CancelMultiTurnMoves
- ldr r1, _08028D10 @ =gBattlescriptCurrInstr
- ldr r0, _08028D14 @ =BattleScript_1D6F74
- str r0, [r1]
- b _08028E30
- .align 2, 0
-_08028D08: .4byte gBattleMoveFlags
-_08028D0C: .4byte gBankAttacker
-_08028D10: .4byte gBattlescriptCurrInstr
-_08028D14: .4byte BattleScript_1D6F74
-_08028D18:
- ldr r2, _08028E3C @ =gBattleMons
- ldr r1, _08028E40 @ =gBankAttacker
- ldrb r3, [r1]
- movs r5, 0x58
- adds r0, r3, 0
- muls r0, r5
- adds r4, r2, 0
- adds r4, 0x50
- adds r0, r4
- ldr r0, [r0]
- movs r7, 0x80
- lsls r7, 5
- ands r0, r7
- adds r6, r1, 0
- mov r9, r2
- ldr r1, _08028E44 @ =gDisableStructs
- mov r12, r1
- ldr r2, _08028E48 @ =gCurrentMove
- mov r8, r2
- cmp r0, 0
- bne _08028D8A
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- add r0, r12
- ldrb r2, [r0, 0x11]
- movs r1, 0x10
- negs r1, r1
- ands r1, r2
- movs r2, 0x5
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r2, [r0, 0x11]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x50
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r4
- ldr r0, [r1]
- orrs r0, r7
- str r0, [r1]
- ldr r1, _08028E4C @ =gLockedMove
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r1
- mov r2, r8
- ldrh r1, [r2]
- strh r1, [r0]
-_08028D8A:
- ldrb r0, [r6]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- add r2, r12
- ldrb r3, [r2, 0x11]
- lsls r1, r3, 28
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x11]
- cmp r1, 0
- bne _08028DBE
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r4
- ldr r0, [r1]
- ldr r2, _08028E50 @ =0xffffefff
- ands r0, r2
- str r0, [r1]
-_08028DBE:
- ldr r3, _08028E54 @ =gDynamicBasePower
- ldr r2, _08028E58 @ =gBattleMoves
- mov r0, r8
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- strh r0, [r3]
- movs r2, 0x1
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r1, r12
- adds r4, r0, r1
- ldrb r0, [r4, 0x11]
- lsls r0, 28
- lsrs r0, 28
- movs r1, 0x5
- subs r1, r0
- ldr r7, _08028E5C @ =gBattlescriptCurrInstr
- adds r5, r3, 0
- cmp r2, r1
- bge _08028E0C
- adds r1, r5, 0
- adds r3, r4, 0
- movs r4, 0x5
-_08028DF8:
- ldrh r0, [r1]
- lsls r0, 1
- strh r0, [r1]
- adds r2, 0x1
- ldrb r0, [r3, 0x11]
- lsls r0, 28
- lsrs r0, 28
- subs r0, r4, r0
- cmp r2, r0
- blt _08028DF8
-_08028E0C:
- ldrb r1, [r6]
- movs r0, 0x58
- muls r0, r1
- mov r1, r9
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 23
- ands r0, r1
- cmp r0, 0
- beq _08028E2A
- ldrh r0, [r5]
- lsls r0, 1
- strh r0, [r5]
-_08028E2A:
- ldr r0, [r7]
- adds r0, 0x1
- str r0, [r7]
-_08028E30:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028E3C: .4byte gBattleMons
-_08028E40: .4byte gBankAttacker
-_08028E44: .4byte gDisableStructs
-_08028E48: .4byte gCurrentMove
-_08028E4C: .4byte gLockedMove
-_08028E50: .4byte 0xffffefff
-_08028E54: .4byte gDynamicBasePower
-_08028E58: .4byte gBattleMoves
-_08028E5C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkB3_rolloutdamagecalculation
-
- thumb_func_start atkB4_jumpifconfusedandattackmaxed
-atkB4_jumpifconfusedandattackmaxed: @ 8028E60
- push {r4,r5,lr}
- ldr r5, _08028EB0 @ =gBattleMons
- ldr r0, _08028EB4 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r5, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- ldr r4, _08028EB8 @ =gBattlescriptCurrInstr
- cmp r0, 0
- beq _08028EBC
- ldr r2, [r4]
- ldrb r0, [r2, 0x1]
- adds r0, r3
- adds r1, r5, 0
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xC
- bne _08028EBC
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08028EC2
- .align 2, 0
-_08028EB0: .4byte gBattleMons
-_08028EB4: .4byte gBankTarget
-_08028EB8: .4byte gBattlescriptCurrInstr
-_08028EBC:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_08028EC2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end atkB4_jumpifconfusedandattackmaxed
-
- thumb_func_start sub_8028EC8
-sub_8028EC8: @ 8028EC8
- push {r4,r5,lr}
- ldr r0, _08028EF0 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08028F04
- ldr r2, _08028EF4 @ =gDisableStructs
- ldr r0, _08028EF8 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x10]
- ldr r1, _08028EFC @ =gBattlescriptCurrInstr
- ldr r0, _08028F00 @ =BattleScript_1D6F74
- str r0, [r1]
- b _08028F5C
- .align 2, 0
-_08028EF0: .4byte gBattleMoveFlags
-_08028EF4: .4byte gDisableStructs
-_08028EF8: .4byte gBankAttacker
-_08028EFC: .4byte gBattlescriptCurrInstr
-_08028F00: .4byte BattleScript_1D6F74
-_08028F04:
- ldr r5, _08028F64 @ =gDisableStructs
- ldr r4, _08028F68 @ =gBankAttacker
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x10]
- cmp r0, 0x5
- beq _08028F1C
- adds r0, 0x1
- strb r0, [r1, 0x10]
-_08028F1C:
- ldr r3, _08028F6C @ =gDynamicBasePower
- ldr r2, _08028F70 @ =gBattleMoves
- ldr r0, _08028F74 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- strh r0, [r3]
- movs r2, 0x1
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r4, _08028F78 @ =gBattlescriptCurrInstr
- ldrb r1, [r0, 0x10]
- cmp r2, r1
- bge _08028F56
- adds r1, r3, 0
- adds r3, r0, 0
-_08028F48:
- ldrh r0, [r1]
- lsls r0, 1
- strh r0, [r1]
- adds r2, 0x1
- ldrb r0, [r3, 0x10]
- cmp r2, r0
- blt _08028F48
-_08028F56:
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
-_08028F5C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08028F64: .4byte gDisableStructs
-_08028F68: .4byte gBankAttacker
-_08028F6C: .4byte gDynamicBasePower
-_08028F70: .4byte gBattleMoves
-_08028F74: .4byte gCurrentMove
-_08028F78: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8028EC8
-
- thumb_func_start atkB6_happinesstodamagecalculation
-atkB6_happinesstodamagecalculation: @ 8028F7C
- push {r4,lr}
- ldr r2, _08028FA8 @ =gBattleMoves
- ldr r0, _08028FAC @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x79
- bne _08028FBC
- ldr r4, _08028FB0 @ =gDynamicBasePower
- ldr r2, _08028FB4 @ =gBattleMons
- ldr r0, _08028FB8 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2B
- ldrb r1, [r0]
- b _08028FD2
- .align 2, 0
-_08028FA8: .4byte gBattleMoves
-_08028FAC: .4byte gCurrentMove
-_08028FB0: .4byte gDynamicBasePower
-_08028FB4: .4byte gBattleMons
-_08028FB8: .4byte gBankAttacker
-_08028FBC:
- ldr r4, _08028FF0 @ =gDynamicBasePower
- ldr r2, _08028FF4 @ =gBattleMons
- ldr r0, _08028FF8 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2B
- ldrb r0, [r0]
- movs r1, 0xFF
- subs r1, r0
-_08028FD2:
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- movs r1, 0x19
- bl __divsi3
- strh r0, [r4]
- ldr r1, _08028FFC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08028FF0: .4byte gDynamicBasePower
-_08028FF4: .4byte gBattleMons
-_08028FF8: .4byte gBankAttacker
-_08028FFC: .4byte gBattlescriptCurrInstr
- thumb_func_end atkB6_happinesstodamagecalculation
-
- thumb_func_start atkB7_presentdamagecalculation
-atkB7_presentdamagecalculation: @ 8029000
- push {r4,lr}
- bl Random
- movs r4, 0xFF
- ands r4, r0
- cmp r4, 0x65
- bgt _0802901C
- ldr r1, _08029018 @ =gDynamicBasePower
- movs r0, 0x28
- strh r0, [r1]
- b _0802905E
- .align 2, 0
-_08029018: .4byte gDynamicBasePower
-_0802901C:
- cmp r4, 0xB1
- bgt _0802902C
- ldr r1, _08029028 @ =gDynamicBasePower
- movs r0, 0x50
- strh r0, [r1]
- b _0802905E
- .align 2, 0
-_08029028: .4byte gDynamicBasePower
-_0802902C:
- cmp r4, 0xCB
- bgt _0802903C
- ldr r1, _08029038 @ =gDynamicBasePower
- movs r0, 0x78
- strh r0, [r1]
- b _0802905E
- .align 2, 0
-_08029038: .4byte gDynamicBasePower
-_0802903C:
- ldr r3, _08029068 @ =gBattleMoveDamage
- ldr r2, _0802906C @ =gBattleMons
- ldr r0, _08029070 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2C]
- lsrs r0, 2
- str r0, [r3]
- cmp r0, 0
- bne _08029058
- movs r0, 0x1
- str r0, [r3]
-_08029058:
- ldr r0, [r3]
- negs r0, r0
- str r0, [r3]
-_0802905E:
- cmp r4, 0xCB
- bgt _0802907C
- ldr r1, _08029074 @ =gBattlescriptCurrInstr
- ldr r0, _08029078 @ =BattleScript_1D6F44
- b _080290AC
- .align 2, 0
-_08029068: .4byte gBattleMoveDamage
-_0802906C: .4byte gBattleMons
-_08029070: .4byte gBankTarget
-_08029074: .4byte gBattlescriptCurrInstr
-_08029078: .4byte BattleScript_1D6F44
-_0802907C:
- ldr r2, _08029098 @ =gBattleMons
- ldr r0, _0802909C @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0, 0x2C]
- ldrh r0, [r0, 0x28]
- cmp r1, r0
- bne _080290A8
- ldr r1, _080290A0 @ =gBattlescriptCurrInstr
- ldr r0, _080290A4 @ =BattleScript_1D83B5
- b _080290AC
- .align 2, 0
-_08029098: .4byte gBattleMons
-_0802909C: .4byte gBankTarget
-_080290A0: .4byte gBattlescriptCurrInstr
-_080290A4: .4byte BattleScript_1D83B5
-_080290A8:
- ldr r1, _080290B4 @ =gBattlescriptCurrInstr
- ldr r0, _080290B8 @ =BattleScript_1D839B
-_080290AC:
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080290B4: .4byte gBattlescriptCurrInstr
-_080290B8: .4byte BattleScript_1D839B
- thumb_func_end atkB7_presentdamagecalculation
-
- thumb_func_start sub_80290BC
-sub_80290BC: @ 80290BC
- push {r4-r6,lr}
- ldr r4, _080290F0 @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankIdentity
- ldr r6, _080290F4 @ =gSideAffecting
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08029100
- ldr r2, _080290F8 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080290FC @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
- b _08029132
- .align 2, 0
-_080290F0: .4byte gBankAttacker
-_080290F4: .4byte gSideAffecting
-_080290F8: .4byte gBattleMoveFlags
-_080290FC: .4byte gBattleCommunication
-_08029100:
- ldrb r0, [r4]
- bl GetBankIdentity
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r1]
- movs r2, 0x20
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r4]
- bl GetBankIdentity
- ldr r2, _08029140 @ =gSideTimer
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0, 0x7]
- ldr r0, _08029144 @ =gBattleCommunication
- strb r1, [r0, 0x5]
-_08029132:
- ldr r1, _08029148 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08029140: .4byte gSideTimer
-_08029144: .4byte gBattleCommunication
-_08029148: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80290BC
-
- thumb_func_start atkB9_magnitudedamagecalculation
-atkB9_magnitudedamagecalculation: @ 802914C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bgt _08029178
- ldr r1, _08029174 @ =gDynamicBasePower
- movs r0, 0xA
- strh r0, [r1]
- movs r3, 0x4
- b _080291E4
- .align 2, 0
-_08029174: .4byte gDynamicBasePower
-_08029178:
- cmp r3, 0xE
- bgt _0802918C
- ldr r1, _08029188 @ =gDynamicBasePower
- movs r0, 0x1E
- strh r0, [r1]
- movs r3, 0x5
- b _080291E4
- .align 2, 0
-_08029188: .4byte gDynamicBasePower
-_0802918C:
- cmp r3, 0x22
- bgt _080291A0
- ldr r1, _0802919C @ =gDynamicBasePower
- movs r0, 0x32
- strh r0, [r1]
- movs r3, 0x6
- b _080291E4
- .align 2, 0
-_0802919C: .4byte gDynamicBasePower
-_080291A0:
- cmp r3, 0x40
- bgt _080291B4
- ldr r1, _080291B0 @ =gDynamicBasePower
- movs r0, 0x46
- strh r0, [r1]
- movs r3, 0x7
- b _080291E4
- .align 2, 0
-_080291B0: .4byte gDynamicBasePower
-_080291B4:
- cmp r3, 0x54
- bgt _080291C8
- ldr r1, _080291C4 @ =gDynamicBasePower
- movs r0, 0x5A
- strh r0, [r1]
- movs r3, 0x8
- b _080291E4
- .align 2, 0
-_080291C4: .4byte gDynamicBasePower
-_080291C8:
- cmp r3, 0x5E
- bgt _080291DC
- ldr r1, _080291D8 @ =gDynamicBasePower
- movs r0, 0x6E
- strh r0, [r1]
- movs r3, 0x9
- b _080291E4
- .align 2, 0
-_080291D8: .4byte gDynamicBasePower
-_080291DC:
- ldr r1, _08029250 @ =gDynamicBasePower
- movs r0, 0x96
- strh r0, [r1]
- movs r3, 0xA
-_080291E4:
- ldr r1, _08029254 @ =gBattleTextBuff1
- movs r2, 0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- strb r0, [r1, 0x2]
- movs r0, 0x2
- strb r0, [r1, 0x3]
- strb r3, [r1, 0x4]
- movs r0, 0xFF
- strb r0, [r1, 0x5]
- ldr r1, _08029258 @ =gBankTarget
- strb r2, [r1]
- ldr r0, _0802925C @ =gNoOfAllBanks
- ldrb r3, [r0]
- adds r6, r1, 0
- ldr r0, _08029260 @ =gBattlescriptCurrInstr
- mov r8, r0
- cmp r2, r3
- bcs _0802923C
- adds r4, r6, 0
- ldr r0, _08029264 @ =gBankAttacker
- ldrb r5, [r0]
- ldr r1, _08029268 @ =gBitTable
- mov r12, r1
- ldr r7, _0802926C @ =gAbsentBankFlags
-_0802921A:
- ldrb r2, [r4]
- cmp r2, r5
- beq _08029230
- ldrb r0, [r7]
- ldrb r1, [r6]
- lsls r1, 2
- add r1, r12
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _0802923C
-_08029230:
- adds r0, r2, 0x1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r3
- bcc _0802921A
-_0802923C:
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029250: .4byte gDynamicBasePower
-_08029254: .4byte gBattleTextBuff1
-_08029258: .4byte gBankTarget
-_0802925C: .4byte gNoOfAllBanks
-_08029260: .4byte gBattlescriptCurrInstr
-_08029264: .4byte gBankAttacker
-_08029268: .4byte gBitTable
-_0802926C: .4byte gAbsentBankFlags
- thumb_func_end atkB9_magnitudedamagecalculation
-
- thumb_func_start sub_8029270
-sub_8029270: @ 8029270
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08029294 @ =gMultiHitCounter
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080292A0
- ldr r0, _08029298 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0802929C
- movs r0, 0x1
- b _080292BA
- .align 2, 0
-_08029294: .4byte gMultiHitCounter
-_08029298: .4byte gBankAttacker
-_0802929C:
- movs r0, 0
- b _080292BA
-_080292A0:
- ldr r0, _080292B4 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080292B8
- movs r0, 0x3
- b _080292BA
- .align 2, 0
-_080292B4: .4byte gBankAttacker
-_080292B8:
- movs r0, 0x2
-_080292BA:
- bl GetBankByPlayerAI
- ldr r1, _0802937C @ =gBankTarget
- strb r0, [r1]
- ldr r0, _08029380 @ =gActionForBanks
- ldr r1, _0802937C @ =gBankTarget
- mov r9, r1
- ldrb r3, [r1]
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080293BC
- ldr r5, _08029384 @ =gBankAttacker
- ldr r0, _08029388 @ =0x02000000
- ldr r2, _0802938C @ =0x00016010
- adds r1, r3, r2
- adds r1, r0
- ldrb r2, [r5]
- mov r10, r0
- ldrb r1, [r1]
- cmp r2, r1
- bne _080293BC
- ldr r4, _08029390 @ =gBattleMons
- movs r2, 0x58
- adds r0, r3, 0
- muls r0, r2
- adds r1, r4, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x27
- ands r0, r1
- cmp r0, 0
- bne _080293BC
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r4
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _080293BC
- ldr r0, _08029394 @ =gDisableStructs
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x18]
- lsls r0, 31
- cmp r0, 0
- bne _080293BC
- ldr r0, _08029398 @ =gChosenMovesByBanks
- lsls r1, r3, 1
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0xE4
- bne _080293BC
- movs r1, 0
- ldr r0, _0802939C @ =gNoOfAllBanks
- ldr r7, _080293A0 @ =gCurrentMove
- mov r8, r7
- ldr r2, _080293A4 @ =gHitMarker
- mov r12, r2
- ldrb r7, [r0]
- cmp r1, r7
- bge _0802935A
- ldr r6, _080293A8 @ =gTurnOrder
- mov r5, r9
- ldr r4, _080293AC @ =gUnknown_02024A76
- movs r3, 0xB
- adds r2, r0, 0
-_08029344:
- adds r0, r1, r6
- ldrb r0, [r0]
- ldrb r7, [r5]
- cmp r0, r7
- bne _08029352
- adds r0, r1, r4
- strb r3, [r0]
-_08029352:
- adds r1, 0x1
- ldrb r0, [r2]
- cmp r1, r0
- blt _08029344
-_0802935A:
- movs r0, 0xE4
- mov r1, r8
- strh r0, [r1]
- ldr r2, _080293B0 @ =gBattlescriptCurrInstr
- ldr r0, [r2]
- adds r0, 0x5
- str r0, [r2]
- ldr r1, _080293B4 @ =0x00016002
- add r1, r10
- movs r0, 0x1
- strb r0, [r1]
- mov r7, r12
- ldr r0, [r7]
- ldr r1, _080293B8 @ =0xfffffbff
- ands r0, r1
- str r0, [r7]
- b _080293D6
- .align 2, 0
-_0802937C: .4byte gBankTarget
-_08029380: .4byte gActionForBanks
-_08029384: .4byte gBankAttacker
-_08029388: .4byte 0x02000000
-_0802938C: .4byte 0x00016010
-_08029390: .4byte gBattleMons
-_08029394: .4byte gDisableStructs
-_08029398: .4byte gChosenMovesByBanks
-_0802939C: .4byte gNoOfAllBanks
-_080293A0: .4byte gCurrentMove
-_080293A4: .4byte gHitMarker
-_080293A8: .4byte gTurnOrder
-_080293AC: .4byte gUnknown_02024A76
-_080293B0: .4byte gBattlescriptCurrInstr
-_080293B4: .4byte 0x00016002
-_080293B8: .4byte 0xfffffbff
-_080293BC:
- ldr r3, _080293E4 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_080293D6:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080293E4: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8029270
-
- thumb_func_start sub_80293E8
-sub_80293E8: @ 80293E8
- push {lr}
- ldr r2, _08029408 @ =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08029414
- ldr r2, _0802940C @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08029410 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08029426
- .align 2, 0
-_08029408: .4byte gBattleWeather
-_0802940C: .4byte gBattleMoveFlags
-_08029410: .4byte gBattleCommunication
-_08029414:
- movs r0, 0x20
- strh r0, [r2]
- ldr r1, _08029434 @ =gBattleCommunication
- movs r0, 0x4
- strb r0, [r1, 0x5]
- ldr r0, _08029438 @ =gWishFutureKnock
- adds r0, 0x28
- movs r1, 0x5
- strb r1, [r0]
-_08029426:
- ldr r1, _0802943C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029434: .4byte gBattleCommunication
-_08029438: .4byte gWishFutureKnock
-_0802943C: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80293E8
-
- thumb_func_start atkBC_maxattackhalvehp
-atkBC_maxattackhalvehp: @ 8029440
- push {r4,r5,lr}
- ldr r5, _0802948C @ =gBattleMons
- ldr r4, _08029490 @ =gBankAttacker
- ldrb r0, [r4]
- movs r3, 0x58
- muls r0, r3
- adds r2, r0, r5
- ldrh r0, [r2, 0x2C]
- lsrs r1, r0, 1
- cmp r1, 0
- bne _08029458
- movs r1, 0x1
-_08029458:
- movs r0, 0x19
- ldrsb r0, [r2, r0]
- cmp r0, 0xB
- bgt _0802949C
- ldrh r0, [r2, 0x28]
- cmp r0, r1
- bls _0802949C
- movs r0, 0xC
- strb r0, [r2, 0x19]
- ldr r1, _08029494 @ =gBattleMoveDamage
- ldrb r0, [r4]
- muls r0, r3
- adds r0, r5
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _08029480
- movs r0, 0x1
- str r0, [r1]
-_08029480:
- ldr r1, _08029498 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _080294B6
- .align 2, 0
-_0802948C: .4byte gBattleMons
-_08029490: .4byte gBankAttacker
-_08029494: .4byte gBattleMoveDamage
-_08029498: .4byte gBattlescriptCurrInstr
-_0802949C:
- ldr r3, _080294BC @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_080294B6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080294BC: .4byte gBattlescriptCurrInstr
- thumb_func_end atkBC_maxattackhalvehp
-
- thumb_func_start atkBD_copyfoestats
-atkBD_copyfoestats: @ 80294C0
- push {r4-r7,lr}
- movs r2, 0
- ldr r7, _080294F8 @ =gBattlescriptCurrInstr
- ldr r6, _080294FC @ =gBankAttacker
- movs r4, 0x58
- ldr r3, _08029500 @ =gUnknown_02024A98
- ldr r5, _08029504 @ =gBankTarget
-_080294CE:
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r4
- adds r1, r2, r1
- adds r1, r3
- ldrb r0, [r5]
- muls r0, r4
- adds r0, r2, r0
- adds r0, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _080294CE
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080294F8: .4byte gBattlescriptCurrInstr
-_080294FC: .4byte gBankAttacker
-_08029500: .4byte gUnknown_02024A98
-_08029504: .4byte gBankTarget
- thumb_func_end atkBD_copyfoestats
-
- thumb_func_start atkBE_breakfree
-atkBE_breakfree: @ 8029508
- push {r4,r5,lr}
- ldr r1, _08029570 @ =gBattleMons
- ldr r5, _08029574 @ =gBankAttacker
- ldrb r2, [r5]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r3, r0, r1
- ldr r1, [r3]
- movs r0, 0xE0
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08029594
- ldr r0, _08029578 @ =0xffff1fff
- ands r1, r0
- str r1, [r3]
- ldr r1, _0802957C @ =gBankTarget
- ldr r2, _08029580 @ =0x02000000
- ldrb r0, [r5]
- ldr r3, _08029584 @ =0x00016020
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _08029588 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldrb r0, [r5]
- lsls r0, 1
- subs r3, 0x1C
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r5]
- lsls r0, 1
- adds r3, 0x1
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- bl b_movescr_stack_push_cursor
- ldr r1, _0802958C @ =gBattlescriptCurrInstr
- ldr r0, _08029590 @ =gUnknown_081D92C2
- b _0802963E
- .align 2, 0
-_08029570: .4byte gBattleMons
-_08029574: .4byte gBankAttacker
-_08029578: .4byte 0xffff1fff
-_0802957C: .4byte gBankTarget
-_08029580: .4byte 0x02000000
-_08029584: .4byte 0x00016020
-_08029588: .4byte gBattleTextBuff1
-_0802958C: .4byte gBattlescriptCurrInstr
-_08029590: .4byte gUnknown_081D92C2
-_08029594:
- ldr r4, _080295C8 @ =gStatuses3
- lsls r0, r2, 2
- adds r3, r0, r4
- ldr r1, [r3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080295D4
- movs r0, 0x5
- negs r0, r0
- ands r1, r0
- str r1, [r3]
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x4
- negs r2, r2
- ands r0, r2
- str r0, [r1]
- bl b_movescr_stack_push_cursor
- ldr r1, _080295CC @ =gBattlescriptCurrInstr
- ldr r0, _080295D0 @ =gUnknown_081D92C9
- b _0802963E
- .align 2, 0
-_080295C8: .4byte gStatuses3
-_080295CC: .4byte gBattlescriptCurrInstr
-_080295D0: .4byte gUnknown_081D92C9
-_080295D4:
- adds r0, r2, 0
- bl GetBankSide
- ldr r4, _08029624 @ =gSideAffecting
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08029638
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r2, [r0]
- ldr r1, _08029628 @ =0x0000ffef
- ands r1, r2
- movs r4, 0
- strh r1, [r0]
- ldrb r0, [r5]
- bl GetBankSide
- ldr r2, _0802962C @ =gSideTimer
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strb r4, [r1, 0x6]
- bl b_movescr_stack_push_cursor
- ldr r1, _08029630 @ =gBattlescriptCurrInstr
- ldr r0, _08029634 @ =gUnknown_081D92D0
- b _0802963E
- .align 2, 0
-_08029624: .4byte gSideAffecting
-_08029628: .4byte 0x0000ffef
-_0802962C: .4byte gSideTimer
-_08029630: .4byte gBattlescriptCurrInstr
-_08029634: .4byte gUnknown_081D92D0
-_08029638:
- ldr r1, _08029648 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
-_0802963E:
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08029648: .4byte gBattlescriptCurrInstr
- thumb_func_end atkBE_breakfree
-
- thumb_func_start sub_802964C
-sub_802964C: @ 802964C
- ldr r1, _08029670 @ =gBattleMons
- ldr r0, _08029674 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 23
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08029678 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08029670: .4byte gBattleMons
-_08029674: .4byte gBankAttacker
-_08029678: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802964C
-
- thumb_func_start atkC0_recoverbasedonsunlight
-atkC0_recoverbasedonsunlight: @ 802967C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _080296E8 @ =gBankTarget
- ldr r5, _080296EC @ =gBankAttacker
- ldrb r0, [r5]
- strb r0, [r1]
- ldr r7, _080296F0 @ =gBattleMons
- ldrb r0, [r5]
- movs r6, 0x58
- muls r0, r6
- adds r0, r7
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- beq _0802975C
- ldr r4, _080296F4 @ =gBattleWeather
- ldrh r0, [r4]
- cmp r0, 0
- beq _080296CE
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080296CE
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _080296FC
-_080296CE:
- ldr r3, _080296F8 @ =gBattleMoveDamage
- ldr r2, _080296F0 @ =gBattleMons
- ldr r0, _080296EC @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r3]
- adds r1, r3, 0
- b _08029736
- .align 2, 0
-_080296E8: .4byte gBankTarget
-_080296EC: .4byte gBankAttacker
-_080296F0: .4byte gBattleMons
-_080296F4: .4byte gBattleWeather
-_080296F8: .4byte gBattleMoveDamage
-_080296FC:
- ldrh r1, [r4]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08029728
- ldr r4, _08029724 @ =gBattleMoveDamage
- ldrb r0, [r5]
- muls r0, r6
- adds r0, r7
- ldrh r1, [r0, 0x2C]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- movs r1, 0x1E
- bl __divsi3
- str r0, [r4]
- adds r1, r4, 0
- b _08029736
- .align 2, 0
-_08029724: .4byte gBattleMoveDamage
-_08029728:
- ldr r1, _08029754 @ =gBattleMoveDamage
- ldrb r0, [r5]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0, 0x2C]
- lsrs r0, 2
- str r0, [r1]
-_08029736:
- adds r2, r1, 0
- ldr r0, [r2]
- cmp r0, 0
- bne _08029742
- movs r0, 0x1
- str r0, [r2]
-_08029742:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldr r1, _08029758 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08029776
- .align 2, 0
-_08029754: .4byte gBattleMoveDamage
-_08029758: .4byte gBattlescriptCurrInstr
-_0802975C:
- ldr r3, _08029780 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08029776:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029780: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC0_recoverbasedonsunlight
-
- thumb_func_start sub_8029784
-sub_8029784: @ 8029784
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, _08029894 @ =gBattleMons
- ldr r0, _08029898 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- adds r4, r1, 0
- muls r4, r0
- adds r4, r2
- ldrb r0, [r4, 0x14]
- mov r10, r0
- mov r7, r10
- lsls r7, 27
- adds r0, r7, 0
- lsrs r0, 27
- mov r10, r0
- movs r1, 0x2
- mov r2, r10
- ands r2, r1
- asrs r2, 1
- ldrh r7, [r4, 0x14]
- mov r9, r7
- mov r0, r9
- lsls r0, 22
- mov r9, r0
- lsrs r3, r0, 27
- adds r0, r1, 0
- ands r0, r3
- orrs r2, r0
- ldrb r7, [r4, 0x15]
- mov r8, r7
- mov r0, r8
- lsls r0, 25
- mov r8, r0
- lsrs r3, r0, 27
- adds r0, r1, 0
- ands r0, r3
- lsls r0, 1
- orrs r2, r0
- ldr r6, [r4, 0x14]
- lsls r6, 12
- lsrs r3, r6, 27
- adds r0, r1, 0
- ands r0, r3
- lsls r0, 2
- orrs r2, r0
- ldrh r5, [r4, 0x16]
- lsls r5, 23
- lsrs r3, r5, 27
- adds r0, r1, 0
- ands r0, r3
- lsls r0, 3
- orrs r2, r0
- ldrb r3, [r4, 0x17]
- lsls r3, 26
- lsrs r0, r3, 27
- ands r1, r0
- lsls r1, 4
- orrs r2, r1
- movs r1, 0x1
- adds r4, r1, 0
- mov r7, r10
- ands r4, r7
- mov r0, r9
- lsrs r0, 27
- mov r9, r0
- adds r0, r1, 0
- mov r7, r9
- ands r0, r7
- lsls r0, 1
- orrs r4, r0
- mov r0, r8
- lsrs r0, 27
- mov r8, r0
- adds r0, r1, 0
- mov r7, r8
- ands r0, r7
- lsls r0, 2
- orrs r4, r0
- lsrs r6, 27
- adds r0, r1, 0
- ands r0, r6
- lsls r0, 3
- orrs r4, r0
- lsrs r5, 27
- adds r0, r1, 0
- ands r0, r5
- lsls r0, 4
- orrs r4, r0
- lsrs r3, 27
- ands r1, r3
- lsls r1, 5
- orrs r4, r1
- ldr r5, _0802989C @ =gDynamicBasePower
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- movs r1, 0x3F
- bl __divsi3
- adds r0, 0x1E
- strh r0, [r5]
- ldr r5, _080298A0 @ =0x02000000
- lsls r0, r4, 4
- subs r0, r4
- movs r1, 0x3F
- bl __divsi3
- adds r1, r0, 0x1
- ldr r0, _080298A4 @ =0x0001601c
- adds r5, r0
- strb r1, [r5]
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0x8
- bls _08029876
- adds r0, r1, 0x1
- strb r0, [r5]
-_08029876:
- ldrb r0, [r5]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r5]
- ldr r1, _080298A8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029894: .4byte gBattleMons
-_08029898: .4byte gBankAttacker
-_0802989C: .4byte gDynamicBasePower
-_080298A0: .4byte 0x02000000
-_080298A4: .4byte 0x0001601c
-_080298A8: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8029784
-
- thumb_func_start atkC2_selectnexttarget
-atkC2_selectnexttarget: @ 80298AC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08029908 @ =gBankTarget
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0802990C @ =gNoOfAllBanks
- ldrb r1, [r1]
- adds r6, r0, 0
- ldr r0, _08029910 @ =gBattlescriptCurrInstr
- mov r8, r0
- cmp r1, 0
- beq _080298F6
- adds r3, r6, 0
- ldr r0, _08029914 @ =gBankAttacker
- ldrb r5, [r0]
- ldr r0, _08029918 @ =gBitTable
- mov r12, r0
- adds r4, r1, 0
- ldr r7, _0802991C @ =gAbsentBankFlags
-_080298D4:
- ldrb r2, [r3]
- cmp r2, r5
- beq _080298EA
- ldrb r0, [r7]
- ldrb r1, [r6]
- lsls r1, 2
- add r1, r12
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _080298F6
-_080298EA:
- adds r0, r2, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcc _080298D4
-_080298F6:
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029908: .4byte gBankTarget
-_0802990C: .4byte gNoOfAllBanks
-_08029910: .4byte gBattlescriptCurrInstr
-_08029914: .4byte gBankAttacker
-_08029918: .4byte gBitTable
-_0802991C: .4byte gAbsentBankFlags
- thumb_func_end atkC2_selectnexttarget
-
- thumb_func_start atkC3_setfutureattack
-atkC3_setfutureattack: @ 8029920
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r0, _08029958 @ =gWishFutureKnock
- mov r8, r0
- ldr r7, _0802995C @ =gBankTarget
- ldrb r1, [r7]
- adds r0, r1, r0
- ldrb r6, [r0]
- cmp r6, 0
- beq _08029964
- ldr r3, _08029960 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08029A2E
- .align 2, 0
-_08029958: .4byte gWishFutureKnock
-_0802995C: .4byte gBankTarget
-_08029960: .4byte gBattlescriptCurrInstr
-_08029964:
- lsls r1, 1
- mov r0, r8
- adds r0, 0x18
- adds r1, r0
- ldr r2, _08029A04 @ =gCurrentMove
- mov r9, r2
- ldrh r0, [r2]
- strh r0, [r1]
- mov r0, r8
- adds r0, 0x4
- ldrb r4, [r7]
- adds r0, r4
- ldr r5, _08029A08 @ =gBankAttacker
- ldrb r1, [r5]
- strb r1, [r0]
- ldrb r0, [r7]
- add r0, r8
- movs r1, 0x3
- strb r1, [r0]
- ldr r4, _08029A0C @ =gSideAffecting
- ldrb r0, [r7]
- bl GetBankIdentity
- movs r1, 0x1
- mov r10, r1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _08029A10 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r7]
- muls r1, r4
- adds r1, r2
- mov r4, r9
- ldrh r2, [r4]
- str r6, [sp]
- str r6, [sp, 0x4]
- ldrb r4, [r5]
- str r4, [sp, 0x8]
- ldrb r4, [r7]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldrb r1, [r7]
- lsls r1, 2
- mov r2, r8
- adds r2, 0x8
- adds r1, r2
- str r0, [r1]
- ldr r1, _08029A14 @ =gProtectStructs
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _080299F2
- ldrb r4, [r7]
- lsls r4, 2
- adds r4, r2
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_080299F2:
- mov r0, r9
- ldrh r1, [r0]
- ldr r0, _08029A18 @ =0x00000161
- cmp r1, r0
- bne _08029A20
- ldr r0, _08029A1C @ =gBattleCommunication
- mov r1, r10
- strb r1, [r0, 0x5]
- b _08029A26
- .align 2, 0
-_08029A04: .4byte gCurrentMove
-_08029A08: .4byte gBankAttacker
-_08029A0C: .4byte gSideAffecting
-_08029A10: .4byte gBattleMons
-_08029A14: .4byte gProtectStructs
-_08029A18: .4byte 0x00000161
-_08029A1C: .4byte gBattleCommunication
-_08029A20:
- ldr r1, _08029A40 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
-_08029A26:
- ldr r1, _08029A44 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08029A2E:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029A40: .4byte gBattleCommunication
-_08029A44: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC3_setfutureattack
-
- thumb_func_start atkC4_802B910
-atkC4_802B910: @ 8029A48
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08029A8C @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- ldr r7, _08029A90 @ =gEnemyParty
- cmp r0, 0
- bne _08029A62
- ldr r7, _08029A94 @ =gPlayerParty
-_08029A62:
- ldr r2, _08029A98 @ =gBattleMons
- ldr r0, _08029A9C @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08029AA4
- ldr r3, _08029AA0 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- b _08029C40
- .align 2, 0
-_08029A8C: .4byte gBankAttacker
-_08029A90: .4byte gEnemyParty
-_08029A94: .4byte gPlayerParty
-_08029A98: .4byte gBattleMons
-_08029A9C: .4byte gBankTarget
-_08029AA0: .4byte gBattlescriptCurrInstr
-_08029AA4:
- ldr r6, _08029BE0 @ =gBattleCommunication
- ldrb r0, [r6]
- mov r8, r0
- cmp r0, 0x5
- bls _08029AB0
- b _08029C0C
-_08029AB0:
- adds r4, r6, 0
- movs r5, 0x64
-_08029AB4:
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08029AF8
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08029AF8
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08029AF8
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x37
- bl GetMonData
- cmp r0, 0
- beq _08029B08
-_08029AF8:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r6, r4, 0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bls _08029AB4
-_08029B08:
- ldr r1, _08029BE0 @ =gBattleCommunication
- mov r9, r1
- ldrb r2, [r1]
- cmp r2, 0x5
- bhi _08029C0C
- ldr r1, _08029BE4 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r6, _08029BE8 @ =gBankAttacker
- ldrb r0, [r6]
- strb r0, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08029BEC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
- ldr r2, _08029BF0 @ =gBattleMoveDamage
- mov r8, r2
- ldr r5, _08029BF4 @ =gBaseStats
- mov r1, r9
- ldrb r0, [r1]
- movs r4, 0x64
- muls r0, r4
- adds r0, r7, r0
- movs r1, 0xB
- bl GetMonData
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r3, [r1, 0x1]
- mov r2, r8
- str r3, [r2]
- ldr r2, _08029BF8 @ =gBattleMoves
- ldr r0, _08029BFC @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- muls r0, r3
- mov r1, r8
- str r0, [r1]
- mov r2, r9
- ldrb r0, [r2]
- muls r0, r4
- adds r0, r7, r0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 1
- movs r1, 0x5
- bl __udivsi3
- adds r0, 0x2
- mov r2, r8
- ldr r1, [r2]
- muls r0, r1
- str r0, [r2]
- ldr r3, _08029C00 @ =gBattleMons
- ldr r1, _08029C04 @ =gBankTarget
- ldrb r2, [r1]
- movs r1, 0x58
- muls r1, r2
- adds r1, r3
- ldrh r2, [r1]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r5
- ldrb r1, [r1, 0x2]
- bl __divsi3
- mov r1, r8
- str r0, [r1]
- movs r1, 0x32
- bl __divsi3
- adds r2, r0, 0x2
- mov r0, r8
- str r2, [r0]
- ldr r1, _08029C08 @ =gProtectStructs
- ldrb r0, [r6]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _08029BD4
- lsls r0, r2, 4
- subs r0, r2
- movs r1, 0xA
- bl __divsi3
- mov r1, r8
- str r0, [r1]
-_08029BD4:
- mov r2, r9
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- b _08029C46
- .align 2, 0
-_08029BE0: .4byte gBattleCommunication
-_08029BE4: .4byte gBattleTextBuff1
-_08029BE8: .4byte gBankAttacker
-_08029BEC: .4byte gBattlescriptCurrInstr
-_08029BF0: .4byte gBattleMoveDamage
-_08029BF4: .4byte gBaseStats
-_08029BF8: .4byte gBattleMoves
-_08029BFC: .4byte gCurrentMove
-_08029C00: .4byte gBattleMons
-_08029C04: .4byte gBankTarget
-_08029C08: .4byte gProtectStructs
-_08029C0C:
- mov r0, r8
- cmp r0, 0
- beq _08029C2C
- ldr r3, _08029C28 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- b _08029C40
- .align 2, 0
-_08029C28: .4byte gBattlescriptCurrInstr
-_08029C2C:
- ldr r3, _08029C54 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
-_08029C40:
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08029C46:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029C54: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC4_802B910
-
- thumb_func_start atkC5_hidepreattack
-atkC5_hidepreattack: @ 8029C58
- push {lr}
- ldr r0, _08029C6C @ =gCurrentMove
- ldrh r1, [r0]
- cmp r1, 0x5B
- beq _08029C98
- cmp r1, 0x5B
- bgt _08029C70
- cmp r1, 0x13
- beq _08029C7C
- b _08029CC4
- .align 2, 0
-_08029C6C: .4byte gCurrentMove
-_08029C70:
- ldr r0, _08029C8C @ =0x00000123
- cmp r1, r0
- beq _08029CB0
- adds r0, 0x31
- cmp r1, r0
- bne _08029CC4
-_08029C7C:
- ldr r2, _08029C90 @ =gStatuses3
- ldr r0, _08029C94 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x40
- b _08029CC0
- .align 2, 0
-_08029C8C: .4byte 0x00000123
-_08029C90: .4byte gStatuses3
-_08029C94: .4byte gBankAttacker
-_08029C98:
- ldr r2, _08029CA8 @ =gStatuses3
- ldr r0, _08029CAC @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- b _08029CC0
- .align 2, 0
-_08029CA8: .4byte gStatuses3
-_08029CAC: .4byte gBankAttacker
-_08029CB0:
- ldr r2, _08029CD0 @ =gStatuses3
- ldr r0, _08029CD4 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 11
-_08029CC0:
- orrs r0, r2
- str r0, [r1]
-_08029CC4:
- ldr r1, _08029CD8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029CD0: .4byte gStatuses3
-_08029CD4: .4byte gBankAttacker
-_08029CD8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC5_hidepreattack
-
- thumb_func_start atkC6_unhidepostattack
-atkC6_unhidepostattack: @ 8029CDC
- push {lr}
- ldr r0, _08029CF0 @ =gCurrentMove
- ldrh r1, [r0]
- cmp r1, 0x5B
- beq _08029D20
- cmp r1, 0x5B
- bgt _08029CF4
- cmp r1, 0x13
- beq _08029D00
- b _08029D4E
- .align 2, 0
-_08029CF0: .4byte gCurrentMove
-_08029CF4:
- ldr r0, _08029D14 @ =0x00000123
- cmp r1, r0
- beq _08029D3C
- adds r0, 0x31
- cmp r1, r0
- bne _08029D4E
-_08029D00:
- ldr r2, _08029D18 @ =gStatuses3
- ldr r0, _08029D1C @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x41
- negs r2, r2
- b _08029D4A
- .align 2, 0
-_08029D14: .4byte 0x00000123
-_08029D18: .4byte gStatuses3
-_08029D1C: .4byte gBankAttacker
-_08029D20:
- ldr r2, _08029D34 @ =gStatuses3
- ldr r0, _08029D38 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x81
- negs r2, r2
- b _08029D4A
- .align 2, 0
-_08029D34: .4byte gStatuses3
-_08029D38: .4byte gBankAttacker
-_08029D3C:
- ldr r2, _08029D5C @ =gStatuses3
- ldr r0, _08029D60 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- ldr r2, _08029D64 @ =0xfffbffff
-_08029D4A:
- ands r0, r2
- str r0, [r1]
-_08029D4E:
- ldr r1, _08029D68 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029D5C: .4byte gStatuses3
-_08029D60: .4byte gBankAttacker
-_08029D64: .4byte 0xfffbffff
-_08029D68: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC6_unhidepostattack
-
- thumb_func_start atkC7_setminimize
-atkC7_setminimize: @ 8029D6C
- push {lr}
- ldr r0, _08029D9C @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _08029D90
- ldr r2, _08029DA0 @ =gStatuses3
- ldr r0, _08029DA4 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 1
- orrs r0, r2
- str r0, [r1]
-_08029D90:
- ldr r1, _08029DA8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029D9C: .4byte gHitMarker
-_08029DA0: .4byte gStatuses3
-_08029DA4: .4byte gBankAttacker
-_08029DA8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC7_setminimize
-
- thumb_func_start sub_8029DAC
-sub_8029DAC: @ 8029DAC
- push {lr}
- ldr r3, _08029DD0 @ =gBattleWeather
- ldrh r1, [r3]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08029DDC
- ldr r2, _08029DD4 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08029DD8 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08029DEA
- .align 2, 0
-_08029DD0: .4byte gBattleWeather
-_08029DD4: .4byte gBattleMoveFlags
-_08029DD8: .4byte gBattleCommunication
-_08029DDC:
- strh r2, [r3]
- ldr r0, _08029DF8 @ =gBattleCommunication
- movs r1, 0x5
- strb r1, [r0, 0x5]
- ldr r0, _08029DFC @ =gWishFutureKnock
- adds r0, 0x28
- strb r1, [r0]
-_08029DEA:
- ldr r1, _08029E00 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029DF8: .4byte gBattleCommunication
-_08029DFC: .4byte gWishFutureKnock
-_08029E00: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8029DAC
-
- thumb_func_start atkC9_jumpifattackandspecialattackcannotfall
-atkC9_jumpifattackandspecialattackcannotfall: @ 8029E04
- push {r4,lr}
- ldr r2, _08029E48 @ =gBattleMons
- ldr r0, _08029E4C @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- adds r3, r2, 0
- cmp r0, 0
- bne _08029E58
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bne _08029E58
- ldr r0, _08029E50 @ =gBattleCommunication
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- beq _08029E58
- ldr r3, _08029E54 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08029E84
- .align 2, 0
-_08029E48: .4byte gBattleMons
-_08029E4C: .4byte gBankTarget
-_08029E50: .4byte gBattleCommunication
-_08029E54: .4byte gBattlescriptCurrInstr
-_08029E58:
- ldr r4, _08029E8C @ =gActiveBank
- ldr r0, _08029E90 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r2, _08029E94 @ =gBattleMoveDamage
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- str r0, [r2]
- ldr r1, _08029E98 @ =0x00007fff
- movs r0, 0
- bl EmitHealthBarUpdate
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r1, _08029E9C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08029E84:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08029E8C: .4byte gActiveBank
-_08029E90: .4byte gBankAttacker
-_08029E94: .4byte gBattleMoveDamage
-_08029E98: .4byte 0x00007fff
-_08029E9C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC9_jumpifattackandspecialattackcannotfall
-
- thumb_func_start atkCA_setforcedtarget
-atkCA_setforcedtarget: @ 8029EA0
- push {r4,r5,lr}
- ldr r4, _08029EE0 @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- ldr r5, _08029EE4 @ =gSideTimer
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x1
- strb r0, [r1, 0x8]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r4]
- strb r0, [r1, 0x9]
- ldr r1, _08029EE8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08029EE0: .4byte gBankAttacker
-_08029EE4: .4byte gSideTimer
-_08029EE8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkCA_setforcedtarget
-
- thumb_func_start atkCB_setcharge
-atkCB_setcharge: @ 8029EEC
- push {r4,lr}
- ldr r0, _08029F40 @ =gStatuses3
- ldr r3, _08029F44 @ =gBankAttacker
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 2
- orrs r0, r2
- str r0, [r1]
- ldr r4, _08029F48 @ =gDisableStructs
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x12]
- movs r1, 0x10
- negs r1, r1
- ands r1, r2
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0, 0x12]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x12]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x12]
- ldr r1, _08029F4C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08029F40: .4byte gStatuses3
-_08029F44: .4byte gBankAttacker
-_08029F48: .4byte gDisableStructs
-_08029F4C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkCB_setcharge
-
- thumb_func_start atkCC_callterrainattack
-atkCC_callterrainattack: @ 8029F50
- push {r4,lr}
- ldr r2, _08029FA0 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _08029FA4 @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08029FA8 @ =gCurrentMove
- ldr r1, _08029FAC @ =gNaturePowerMoves
- ldr r0, _08029FB0 @ =gBattleTerrain
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08029FB4 @ =gBankTarget
- strb r0, [r1]
- ldr r3, _08029FB8 @ =gUnknown_081D6BBC
- ldr r2, _08029FBC @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- bl b_movescr_stack_push
- ldr r1, _08029FC0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08029FA0: .4byte gHitMarker
-_08029FA4: .4byte 0xfffffbff
-_08029FA8: .4byte gCurrentMove
-_08029FAC: .4byte gNaturePowerMoves
-_08029FB0: .4byte gBattleTerrain
-_08029FB4: .4byte gBankTarget
-_08029FB8: .4byte gUnknown_081D6BBC
-_08029FBC: .4byte gBattleMoves
-_08029FC0: .4byte gBattlescriptCurrInstr
- thumb_func_end atkCC_callterrainattack
-
- thumb_func_start atkCD_cureifburnedparalysedorpoisoned
-atkCD_cureifburnedparalysedorpoisoned: @ 8029FC4
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r1, _0802A010 @ =gBattleMons
- ldr r3, _0802A014 @ =gBankAttacker
- ldrb r0, [r3]
- movs r6, 0x58
- muls r0, r6
- adds r5, r1, 0
- adds r5, 0x4C
- adds r2, r0, r5
- ldr r0, [r2]
- movs r1, 0xD8
- ands r0, r1
- cmp r0, 0
- beq _0802A020
- movs r0, 0
- str r0, [r2]
- ldr r1, _0802A018 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r4, _0802A01C @ =gActiveBank
- ldrb r0, [r3]
- strb r0, [r4]
- ldrb r0, [r4]
- muls r0, r6
- adds r0, r5
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _0802A03A
- .align 2, 0
-_0802A010: .4byte gBattleMons
-_0802A014: .4byte gBankAttacker
-_0802A018: .4byte gBattlescriptCurrInstr
-_0802A01C: .4byte gActiveBank
-_0802A020:
- ldr r3, _0802A044 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A03A:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A044: .4byte gBattlescriptCurrInstr
- thumb_func_end atkCD_cureifburnedparalysedorpoisoned
-
- thumb_func_start atkCE_settorment
-atkCE_settorment: @ 802A048
- push {lr}
- ldr r1, _0802A080 @ =gBattleMons
- ldr r0, _0802A084 @ =gBankTarget
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 24
- cmp r1, 0
- bge _0802A08C
- ldr r3, _0802A088 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A098
- .align 2, 0
-_0802A080: .4byte gBattleMons
-_0802A084: .4byte gBankTarget
-_0802A088: .4byte gBattlescriptCurrInstr
-_0802A08C:
- orrs r1, r2
- str r1, [r0]
- ldr r1, _0802A09C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A098:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A09C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkCE_settorment
-
- thumb_func_start atkCF_jumpifnodamage
-atkCF_jumpifnodamage: @ 802A0A0
- push {lr}
- ldr r2, _0802A0CC @ =gProtectStructs
- ldr r0, _0802A0D0 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0802A0C0
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802A0D8
-_0802A0C0:
- ldr r1, _0802A0D4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A0F2
- .align 2, 0
-_0802A0CC: .4byte gProtectStructs
-_0802A0D0: .4byte gBankAttacker
-_0802A0D4: .4byte gBattlescriptCurrInstr
-_0802A0D8:
- ldr r3, _0802A0F8 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A0F2:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A0F8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkCF_jumpifnodamage
-
- thumb_func_start atkD0_settaunt
-atkD0_settaunt: @ 802A0FC
- push {r4,lr}
- ldr r4, _0802A140 @ =gDisableStructs
- ldr r3, _0802A144 @ =gBankTarget
- ldrb r0, [r3]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r2, r1, r4
- ldrb r1, [r2, 0x13]
- lsls r0, r1, 28
- cmp r0, 0
- bne _0802A14C
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x13]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x13]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x13]
- ldr r1, _0802A148 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A166
- .align 2, 0
-_0802A140: .4byte gDisableStructs
-_0802A144: .4byte gBankTarget
-_0802A148: .4byte gBattlescriptCurrInstr
-_0802A14C:
- ldr r3, _0802A16C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A166:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A16C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkD0_settaunt
-
- thumb_func_start sub_802A170
-sub_802A170: @ 802A170
- push {r4,lr}
- ldr r4, _0802A1D8 @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankIdentity
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- ldr r3, _0802A1DC @ =gBankTarget
- strb r0, [r3]
- ldr r0, _0802A1E0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802A1F4
- ldr r0, _0802A1E4 @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _0802A1E8 @ =gBitTable
- ldrb r3, [r3]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802A1F4
- ldr r1, _0802A1EC @ =gProtectStructs
- ldrb r0, [r4]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- blt _0802A1F4
- lsls r0, r3, 4
- adds r2, r0, r1
- ldrb r1, [r2]
- lsls r0, r1, 28
- cmp r0, 0
- blt _0802A1F4
- movs r0, 0x8
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802A1F0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A20E
- .align 2, 0
-_0802A1D8: .4byte gBankAttacker
-_0802A1DC: .4byte gBankTarget
-_0802A1E0: .4byte gBattleTypeFlags
-_0802A1E4: .4byte gAbsentBankFlags
-_0802A1E8: .4byte gBitTable
-_0802A1EC: .4byte gProtectStructs
-_0802A1F0: .4byte gBattlescriptCurrInstr
-_0802A1F4:
- ldr r3, _0802A214 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A20E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A214: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802A170
-
- thumb_func_start sub_802A218
-sub_802A218: @ 802A218
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _0802A30C @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802A24C
- ldr r0, _0802A310 @ =gBattleTypeFlags
- ldrh r1, [r0]
- ldr r0, _0802A314 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0802A24C
- ldr r0, _0802A318 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _0802A2EE
-_0802A24C:
- ldr r4, _0802A30C @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0802A310 @ =gBattleTypeFlags
- ldrh r1, [r0]
- ldr r0, _0802A314 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0802A290
- ldr r0, _0802A318 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0802A290
- ldr r0, _0802A31C @ =gWishFutureKnock
- adds r0, 0x29
- adds r0, r2, r0
- ldrb r1, [r0]
- ldr r3, _0802A320 @ =gBitTable
- ldr r2, _0802A324 @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802A2EE
-_0802A290:
- ldr r0, _0802A328 @ =gBattleMons
- mov r9, r0
- ldr r1, _0802A30C @ =gBankAttacker
- ldrb r4, [r1]
- movs r2, 0x58
- mov r8, r2
- mov r0, r8
- muls r0, r4
- mov r3, r9
- adds r5, r0, r3
- ldrh r3, [r5, 0x2E]
- adds r1, r3, 0
- cmp r1, 0
- bne _0802A2BE
- ldr r0, _0802A32C @ =gBankTarget
- ldrb r0, [r0]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _0802A2EE
-_0802A2BE:
- cmp r1, 0xAF
- beq _0802A2EE
- ldr r7, _0802A32C @ =gBankTarget
- ldrb r0, [r7]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- mov r1, r9
- adds r2, r0, r1
- ldrh r1, [r2, 0x2E]
- cmp r1, 0xAF
- beq _0802A2EE
- adds r0, r3, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bls _0802A2EE
- adds r0, r1, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bhi _0802A334
-_0802A2EE:
- ldr r3, _0802A330 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A49A
- .align 2, 0
-_0802A30C: .4byte gBankAttacker
-_0802A310: .4byte gBattleTypeFlags
-_0802A314: .4byte 0x00000902
-_0802A318: .4byte gTrainerBattleOpponent
-_0802A31C: .4byte gWishFutureKnock
-_0802A320: .4byte gBitTable
-_0802A324: .4byte gBattlePartyID
-_0802A328: .4byte gBattleMons
-_0802A32C: .4byte gBankTarget
-_0802A330: .4byte gBattlescriptCurrInstr
-_0802A334:
- adds r0, r2, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3C
- bne _0802A36C
- ldr r1, _0802A360 @ =gBattlescriptCurrInstr
- ldr r0, _0802A364 @ =BattleScript_NoItemSteal
- str r0, [r1]
- ldr r1, _0802A368 @ =gLastUsedAbility
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- ldrb r1, [r1]
- bl RecordAbilityBattle
- b _0802A49A
- .align 2, 0
-_0802A360: .4byte gBattlescriptCurrInstr
-_0802A364: .4byte BattleScript_NoItemSteal
-_0802A368: .4byte gLastUsedAbility
-_0802A36C:
- lsls r0, r4, 1
- ldr r4, _0802A458 @ =0x020160f0
- adds r6, r0, r4
- ldrh r5, [r5, 0x2E]
- mov r10, r5
- strh r1, [r6]
- ldr r3, _0802A45C @ =gBankAttacker
- ldrb r0, [r3]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- mov r3, r10
- strh r3, [r0, 0x2E]
- ldr r5, _0802A460 @ =gActiveBank
- ldr r1, _0802A45C @ =gBankAttacker
- ldrb r0, [r1]
- strb r0, [r5]
- str r6, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl EmitSetAttributes
- ldr r2, _0802A45C @ =gBankAttacker
- ldrb r0, [r2]
- bl MarkBufferBankForExecution
- ldrb r0, [r7]
- strb r0, [r5]
- ldrb r0, [r7]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- mov r1, r9
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl EmitSetAttributes
- ldrb r0, [r7]
- bl MarkBufferBankForExecution
- ldr r0, _0802A464 @ =0xfffe9f10
- adds r4, r0
- ldrb r0, [r7]
- lsls r0, 1
- ldr r2, _0802A468 @ =0x000160e8
- adds r0, r2
- adds r0, r4
- movs r1, 0
- strb r1, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _0802A46C @ =0x000160e9
- adds r0, r1
- adds r0, r4
- movs r3, 0
- strb r3, [r0]
- ldr r3, _0802A45C @ =gBankAttacker
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- adds r0, r4
- movs r2, 0
- strb r2, [r0]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- adds r0, r4
- strb r2, [r0]
- ldr r1, _0802A470 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r1, _0802A474 @ =gBattleTextBuff1
- movs r3, 0xFD
- strb r3, [r1]
- movs r2, 0xA
- strb r2, [r1, 0x1]
- ldrh r0, [r6]
- strb r0, [r1, 0x2]
- ldrh r0, [r6]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802A478 @ =gBattleTextBuff2
- strb r3, [r1]
- strb r2, [r1, 0x1]
- mov r3, r10
- strb r3, [r1, 0x2]
- mov r2, r10
- lsrs r0, r2, 8
- strb r0, [r1, 0x3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x4]
- cmp r2, 0
- beq _0802A480
- ldrh r0, [r6]
- cmp r0, 0
- beq _0802A494
- ldr r1, _0802A47C @ =gBattleCommunication
- movs r0, 0x2
- b _0802A498
- .align 2, 0
-_0802A458: .4byte 0x020160f0
-_0802A45C: .4byte gBankAttacker
-_0802A460: .4byte gActiveBank
-_0802A464: .4byte 0xfffe9f10
-_0802A468: .4byte 0x000160e8
-_0802A46C: .4byte 0x000160e9
-_0802A470: .4byte gBattlescriptCurrInstr
-_0802A474: .4byte gBattleTextBuff1
-_0802A478: .4byte gBattleTextBuff2
-_0802A47C: .4byte gBattleCommunication
-_0802A480:
- ldrh r0, [r6]
- cmp r0, 0
- beq _0802A494
- ldr r0, _0802A490 @ =gBattleCommunication
- movs r3, 0
- strb r3, [r0, 0x5]
- b _0802A49A
- .align 2, 0
-_0802A490: .4byte gBattleCommunication
-_0802A494:
- ldr r1, _0802A4AC @ =gBattleCommunication
- movs r0, 0x1
-_0802A498:
- strb r0, [r1, 0x5]
-_0802A49A:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A4AC: .4byte gBattleCommunication
- thumb_func_end sub_802A218
-
- thumb_func_start sub_802A4B0
-sub_802A4B0: @ 802A4B0
- push {r4,lr}
- ldr r3, _0802A4F0 @ =gBattleMons
- ldr r4, _0802A4F4 @ =gBankTarget
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r1, [r0]
- adds r0, r1, 0
- cmp r0, 0
- beq _0802A504
- cmp r0, 0x19
- beq _0802A504
- ldr r0, _0802A4F8 @ =gBankAttacker
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- strb r1, [r0]
- ldr r1, _0802A4FC @ =gLastUsedAbility
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _0802A500 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A51E
- .align 2, 0
-_0802A4F0: .4byte gBattleMons
-_0802A4F4: .4byte gBankTarget
-_0802A4F8: .4byte gBankAttacker
-_0802A4FC: .4byte gLastUsedAbility
-_0802A500: .4byte gBattlescriptCurrInstr
-_0802A504:
- ldr r3, _0802A524 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A51E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A524: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802A4B0
-
- thumb_func_start atkD4_802C408
-atkD4_802C408: @ 802A528
- push {r4-r7,lr}
- ldr r7, _0802A53C @ =gBattlescriptCurrInstr
- ldr r2, [r7]
- ldrb r3, [r2, 0x1]
- cmp r3, 0
- beq _0802A540
- cmp r3, 0x1
- beq _0802A578
- b _0802A5F4
- .align 2, 0
-_0802A53C: .4byte gBattlescriptCurrInstr
-_0802A540:
- ldr r1, _0802A56C @ =gWishFutureKnock
- ldr r4, _0802A570 @ =gBankAttacker
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r5, [r4]
- adds r3, r0, r5
- ldrb r0, [r3]
- cmp r0, 0
- bne _0802A5C4
- movs r0, 0x2
- strb r0, [r3]
- ldrb r0, [r4]
- adds r1, 0x24
- adds r1, r0, r1
- ldr r2, _0802A574 @ =gBattlePartyID
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r0, [r7]
- adds r0, 0x6
- b _0802A5F2
- .align 2, 0
-_0802A56C: .4byte gWishFutureKnock
-_0802A570: .4byte gBankAttacker
-_0802A574: .4byte gBattlePartyID
-_0802A578:
- ldr r1, _0802A5DC @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r4, _0802A5E0 @ =gBankTarget
- ldrb r0, [r4]
- strb r0, [r1, 0x2]
- ldr r0, _0802A5E4 @ =gWishFutureKnock
- adds r0, 0x24
- ldrb r5, [r4]
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802A5E8 @ =gBattleMoveDamage
- ldr r6, _0802A5EC @ =gBattleMons
- ldrb r0, [r4]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _0802A5B0
- str r3, [r1]
-_0802A5B0:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- bne _0802A5F0
-_0802A5C4:
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r7]
- b _0802A5F4
- .align 2, 0
-_0802A5DC: .4byte gBattleTextBuff1
-_0802A5E0: .4byte gBankTarget
-_0802A5E4: .4byte gWishFutureKnock
-_0802A5E8: .4byte gBattleMoveDamage
-_0802A5EC: .4byte gBattleMons
-_0802A5F0:
- adds r0, r2, 0x6
-_0802A5F2:
- str r0, [r7]
-_0802A5F4:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atkD4_802C408
-
- thumb_func_start sub_802A5FC
-sub_802A5FC: @ 802A5FC
- push {lr}
- ldr r1, _0802A634 @ =gStatuses3
- ldr r0, _0802A638 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 3
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0802A640
- ldr r3, _0802A63C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A64C
- .align 2, 0
-_0802A634: .4byte gStatuses3
-_0802A638: .4byte gBankAttacker
-_0802A63C: .4byte gBattlescriptCurrInstr
-_0802A640:
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802A650 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A64C:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A650: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802A5FC
-
- thumb_func_start atkD6_doubledamagedealtifdamaged
-atkD6_doubledamagedealtifdamaged: @ 802A654
- push {lr}
- ldr r3, _0802A6A4 @ =gProtectStructs
- ldr r0, _0802A6A8 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r0, r3, 0x4
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802A674
- adds r0, r2, r3
- ldr r1, _0802A6AC @ =gBankTarget
- ldrb r0, [r0, 0xC]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0802A68C
-_0802A674:
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802A696
- adds r0, r2, r3
- ldr r1, _0802A6AC @ =gBankTarget
- ldrb r0, [r0, 0xD]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0802A696
-_0802A68C:
- ldr r0, _0802A6B0 @ =0x02000000
- ldr r1, _0802A6B4 @ =0x0001601f
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
-_0802A696:
- ldr r1, _0802A6B8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802A6A4: .4byte gProtectStructs
-_0802A6A8: .4byte gBankAttacker
-_0802A6AC: .4byte gBankTarget
-_0802A6B0: .4byte 0x02000000
-_0802A6B4: .4byte 0x0001601f
-_0802A6B8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkD6_doubledamagedealtifdamaged
-
- thumb_func_start sub_802A6BC
-sub_802A6BC: @ 802A6BC
- push {r4,lr}
- ldr r1, _0802A700 @ =gStatuses3
- ldr r0, _0802A704 @ =gBankTarget
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r4, r0, r1
- ldr r2, [r4]
- movs r0, 0xC0
- lsls r0, 5
- ands r0, r2
- cmp r0, 0
- bne _0802A6E4
- ldr r1, _0802A708 @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x4C
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802A710
-_0802A6E4:
- ldr r3, _0802A70C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A720
- .align 2, 0
-_0802A700: .4byte gStatuses3
-_0802A704: .4byte gBankTarget
-_0802A708: .4byte gBattleMons
-_0802A70C: .4byte gBattlescriptCurrInstr
-_0802A710:
- movs r0, 0x80
- lsls r0, 5
- orrs r2, r0
- str r2, [r4]
- ldr r1, _0802A728 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A720:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A728: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802A6BC
-
- thumb_func_start atkD8_setdamagetohealthdifference
-atkD8_setdamagetohealthdifference: @ 802A72C
- push {lr}
- ldr r2, _0802A768 @ =gBattleMons
- ldr r0, _0802A76C @ =gBankTarget
- ldrb r0, [r0]
- movs r1, 0x58
- muls r0, r1
- adds r3, r0, r2
- ldr r0, _0802A770 @ =gBankAttacker
- ldrb r0, [r0]
- muls r0, r1
- adds r1, r0, r2
- ldrh r0, [r3, 0x28]
- ldrh r2, [r1, 0x28]
- cmp r0, r2
- bhi _0802A778
- ldr r3, _0802A774 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A78A
- .align 2, 0
-_0802A768: .4byte gBattleMons
-_0802A76C: .4byte gBankTarget
-_0802A770: .4byte gBankAttacker
-_0802A774: .4byte gBattlescriptCurrInstr
-_0802A778:
- ldr r2, _0802A790 @ =gBattleMoveDamage
- ldrh r0, [r3, 0x28]
- ldrh r1, [r1, 0x28]
- subs r0, r1
- str r0, [r2]
- ldr r1, _0802A794 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A78A:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A790: .4byte gBattleMoveDamage
-_0802A794: .4byte gBattlescriptCurrInstr
- thumb_func_end atkD8_setdamagetohealthdifference
-
- thumb_func_start atkD9_scaledamagebyhealthratio
-atkD9_scaledamagebyhealthratio: @ 802A798
- push {r4,lr}
- ldr r4, _0802A7E4 @ =gDynamicBasePower
- ldrh r0, [r4]
- cmp r0, 0
- bne _0802A7D4
- ldr r2, _0802A7E8 @ =gBattleMoves
- ldr r0, _0802A7EC @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r3, [r0, 0x1]
- ldr r2, _0802A7F0 @ =gBattleMons
- ldr r0, _0802A7F4 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r0, [r1, 0x28]
- muls r0, r3
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- strh r0, [r4]
- lsls r0, 16
- cmp r0, 0
- bne _0802A7D4
- movs r0, 0x1
- strh r0, [r4]
-_0802A7D4:
- ldr r1, _0802A7F8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A7E4: .4byte gDynamicBasePower
-_0802A7E8: .4byte gBattleMoves
-_0802A7EC: .4byte gCurrentMove
-_0802A7F0: .4byte gBattleMons
-_0802A7F4: .4byte gBankAttacker
-_0802A7F8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkD9_scaledamagebyhealthratio
-
- thumb_func_start atkDA_abilityswap
-atkDA_abilityswap: @ 802A7FC
- push {r4-r6,lr}
- ldr r5, _0802A860 @ =gBattleMons
- ldr r0, _0802A864 @ =gBankAttacker
- ldrb r0, [r0]
- movs r4, 0x58
- muls r0, r4
- adds r0, r5
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r1, [r2]
- cmp r1, 0
- bne _0802A824
- ldr r0, _0802A868 @ =gBankTarget
- ldrb r0, [r0]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802A844
-_0802A824:
- cmp r1, 0x19
- beq _0802A844
- ldr r6, _0802A868 @ =gBankTarget
- ldrb r0, [r6]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- ldrb r3, [r0]
- cmp r3, 0x19
- beq _0802A844
- ldr r0, _0802A86C @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0802A874
-_0802A844:
- ldr r3, _0802A870 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A88A
- .align 2, 0
-_0802A860: .4byte gBattleMons
-_0802A864: .4byte gBankAttacker
-_0802A868: .4byte gBankTarget
-_0802A86C: .4byte gBattleMoveFlags
-_0802A870: .4byte gBattlescriptCurrInstr
-_0802A874:
- ldrb r1, [r2]
- strb r3, [r2]
- ldrb r0, [r6]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- strb r1, [r0]
- ldr r1, _0802A890 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A88A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A890: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDA_abilityswap
-
- thumb_func_start atkDB_imprisoneffect
-atkDB_imprisoneffect: @ 802A894
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r0, 0
- mov r8, r0
- ldr r1, _0802A8B8 @ =gStatuses3
- ldr r0, _0802A8BC @ =gBankAttacker
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0802A8E8
- b _0802A95E
- .align 2, 0
-_0802A8B8: .4byte gStatuses3
-_0802A8BC: .4byte gBankAttacker
-_0802A8C0:
- ldr r0, _0802A8E0 @ =gStatuses3
- mov r2, r9
- ldrb r1, [r2]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 6
- orrs r0, r2
- str r0, [r1]
- ldr r1, _0802A8E4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A956
- .align 2, 0
-_0802A8E0: .4byte gStatuses3
-_0802A8E4: .4byte gBattlescriptCurrInstr
-_0802A8E8:
- adds r0, r2, 0
- bl sub_801529C
- movs r6, 0
- b _0802A94E
-_0802A8F2:
- adds r0, r6, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r8, r0
- beq _0802A948
- movs r4, 0
- ldr r7, _0802A984 @ =gBankAttacker
- mov r9, r7
- ldr r0, _0802A988 @ =gBattleMons
- mov r12, r0
- mov r1, r9
- ldrb r0, [r1]
- mov r2, r12
- adds r2, 0xC
- movs r1, 0x58
- muls r0, r1
- adds r3, r0, r2
- adds r5, r6, 0
- muls r5, r1
-_0802A91C:
- movs r2, 0
- ldrh r1, [r3]
- mov r0, r12
- adds r0, 0xC
- adds r0, r5, r0
-_0802A926:
- ldrh r7, [r0]
- cmp r1, r7
- bne _0802A930
- cmp r1, 0
- bne _0802A938
-_0802A930:
- adds r0, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- ble _0802A926
-_0802A938:
- cmp r2, 0x4
- bne _0802A944
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0802A91C
-_0802A944:
- cmp r4, 0x4
- bne _0802A8C0
-_0802A948:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0802A94E:
- ldr r0, _0802A98C @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r6, r0
- bcc _0802A8F2
-_0802A956:
- ldr r0, _0802A98C @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r6, r0
- bne _0802A978
-_0802A95E:
- ldr r3, _0802A990 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A978:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A984: .4byte gBankAttacker
-_0802A988: .4byte gBattleMons
-_0802A98C: .4byte gNoOfAllBanks
-_0802A990: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDB_imprisoneffect
-
- thumb_func_start atkDC_setgrudge
-atkDC_setgrudge: @ 802A994
- push {lr}
- ldr r1, _0802A9CC @ =gStatuses3
- ldr r0, _0802A9D0 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 7
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0802A9D8
- ldr r3, _0802A9D4 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A9E4
- .align 2, 0
-_0802A9CC: .4byte gStatuses3
-_0802A9D0: .4byte gBankAttacker
-_0802A9D4: .4byte gBattlescriptCurrInstr
-_0802A9D8:
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802A9E8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A9E4:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A9E8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDC_setgrudge
-
- thumb_func_start atkDD_weightdamagecalculation
-atkDD_weightdamagecalculation: @ 802A9EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r2, _0802AA50 @ =gWeightDamage
- ldrh r0, [r2]
- ldr r1, _0802AA54 @ =0x0000ffff
- cmp r0, r1
- beq _0802AA64
- adds r6, r2, 0
- ldr r0, _0802AA58 @ =gBattleMons
- mov r8, r0
- adds r7, r1, 0
- adds r4, r6, 0
-_0802AA08:
- ldr r0, _0802AA5C @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r8
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetPokedexHeightWeight
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0802AA36
- adds r4, 0x4
- adds r5, 0x2
- ldrh r0, [r4]
- cmp r0, r7
- bne _0802AA08
-_0802AA36:
- lsls r0, r5, 1
- adds r0, r6
- ldrh r1, [r0]
- ldr r0, _0802AA54 @ =0x0000ffff
- cmp r1, r0
- beq _0802AA64
- ldr r0, _0802AA60 @ =gDynamicBasePower
- adds r1, r5, 0x1
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- strh r1, [r0]
- b _0802AA6A
- .align 2, 0
-_0802AA50: .4byte gWeightDamage
-_0802AA54: .4byte 0x0000ffff
-_0802AA58: .4byte gBattleMons
-_0802AA5C: .4byte gBankTarget
-_0802AA60: .4byte gDynamicBasePower
-_0802AA64:
- ldr r1, _0802AA7C @ =gDynamicBasePower
- movs r0, 0x78
- strh r0, [r1]
-_0802AA6A:
- ldr r1, _0802AA80 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802AA7C: .4byte gDynamicBasePower
-_0802AA80: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDD_weightdamagecalculation
-
- thumb_func_start atkDE_asistattackselect
-atkDE_asistattackselect: @ 802AA84
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r10, r0
- ldr r0, _0802AB9C @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity
- movs r1, 0x1
- ands r1, r0
- ldr r0, _0802ABA0 @ =gPlayerParty
- str r0, [sp]
- cmp r1, 0
- beq _0802AAAC
- ldr r1, _0802ABA4 @ =gEnemyParty
- str r1, [sp]
-_0802AAAC:
- movs r2, 0
-_0802AAAE:
- ldr r1, _0802ABA8 @ =gBattlePartyID
- ldr r0, _0802AB9C @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- adds r1, r2, 0x1
- str r1, [sp, 0x4]
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802AB54
- movs r0, 0x64
- adds r6, r2, 0
- muls r6, r0
- ldr r0, [sp]
- adds r4, r0, r6
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _0802AB54
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0802AB54
- movs r5, 0
- ldr r1, _0802ABAC @ =0x0000ffff
- mov r8, r1
- mov r9, r6
- mov r1, r10
- lsls r0, r1, 1
- ldr r1, _0802ABB0 @ =0x02016024
- adds r6, r0, r1
-_0802AAF8:
- movs r7, 0
- adds r1, r5, 0
- adds r1, 0xD
- ldr r0, [sp]
- add r0, r9
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_802838C
- lsls r0, 24
- adds r1, r5, 0x1
- cmp r0, 0
- bne _0802AB4E
- ldr r0, _0802ABB4 @ =gUnknown_081FACFE
- ldrh r2, [r0]
- adds r3, r0, 0
- cmp r2, r8
- beq _0802AB42
- cmp r4, r2
- beq _0802AB38
- ldr r5, _0802ABAC @ =0x0000ffff
- adds r2, r3, 0
-_0802AB2A:
- adds r2, 0x2
- adds r7, 0x1
- ldrh r0, [r2]
- cmp r0, r5
- beq _0802AB42
- cmp r4, r0
- bne _0802AB2A
-_0802AB38:
- lsls r0, r7, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r8
- bne _0802AB4E
-_0802AB42:
- cmp r4, 0
- beq _0802AB4E
- strh r4, [r6]
- adds r6, 0x2
- movs r0, 0x1
- add r10, r0
-_0802AB4E:
- adds r5, r1, 0
- cmp r5, 0x3
- ble _0802AAF8
-_0802AB54:
- ldr r2, [sp, 0x4]
- cmp r2, 0x5
- ble _0802AAAE
- mov r1, r10
- cmp r1, 0
- beq _0802ABCC
- ldr r2, _0802ABB8 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _0802ABBC @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _0802ABC0 @ =gUnknown_02024BEA
- bl Random
- movs r1, 0xFF
- ands r1, r0
- mov r0, r10
- muls r0, r1
- asrs r0, 8
- lsls r0, 1
- ldr r1, _0802ABB0 @ =0x02016024
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _0802ABC4 @ =gBankTarget
- strb r0, [r1]
- ldr r1, _0802ABC8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802ABE6
- .align 2, 0
-_0802AB9C: .4byte gBankAttacker
-_0802ABA0: .4byte gPlayerParty
-_0802ABA4: .4byte gEnemyParty
-_0802ABA8: .4byte gBattlePartyID
-_0802ABAC: .4byte 0x0000ffff
-_0802ABB0: .4byte 0x02016024
-_0802ABB4: .4byte gUnknown_081FACFE
-_0802ABB8: .4byte gHitMarker
-_0802ABBC: .4byte 0xfffffbff
-_0802ABC0: .4byte gUnknown_02024BEA
-_0802ABC4: .4byte gBankTarget
-_0802ABC8: .4byte gBattlescriptCurrInstr
-_0802ABCC:
- ldr r3, _0802ABF8 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802ABE6:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802ABF8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDE_asistattackselect
-
- thumb_func_start atkDF_setmagiccoat
-atkDF_setmagiccoat: @ 802ABFC
- push {lr}
- ldr r1, _0802AC44 @ =gBankTarget
- ldr r3, _0802AC48 @ =gBankAttacker
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r2, _0802AC4C @ =gSpecialStatuses
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0802AC50 @ =gCurrentMoveTurn
- ldrb r1, [r0]
- ldr r0, _0802AC54 @ =gNoOfAllBanks
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _0802AC5C
- ldr r3, _0802AC58 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802AC74
- .align 2, 0
-_0802AC44: .4byte gBankTarget
-_0802AC48: .4byte gBankAttacker
-_0802AC4C: .4byte gSpecialStatuses
-_0802AC50: .4byte gCurrentMoveTurn
-_0802AC54: .4byte gNoOfAllBanks
-_0802AC58: .4byte gBattlescriptCurrInstr
-_0802AC5C:
- ldr r0, _0802AC78 @ =gProtectStructs
- ldrb r1, [r3]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x10
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _0802AC7C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802AC74:
- pop {r0}
- bx r0
- .align 2, 0
-_0802AC78: .4byte gProtectStructs
-_0802AC7C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDF_setmagiccoat
-
- thumb_func_start atkE0_setstealstatchange
-atkE0_setstealstatchange: @ 802AC80
- push {lr}
- ldr r2, _0802ACC4 @ =gSpecialStatuses
- ldr r3, _0802ACC8 @ =gBankAttacker
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0802ACCC @ =gCurrentMoveTurn
- ldrb r1, [r0]
- ldr r0, _0802ACD0 @ =gNoOfAllBanks
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _0802ACD8
- ldr r3, _0802ACD4 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802ACEE
- .align 2, 0
-_0802ACC4: .4byte gSpecialStatuses
-_0802ACC8: .4byte gBankAttacker
-_0802ACCC: .4byte gCurrentMoveTurn
-_0802ACD0: .4byte gNoOfAllBanks
-_0802ACD4: .4byte gBattlescriptCurrInstr
-_0802ACD8:
- ldr r0, _0802ACF4 @ =gProtectStructs
- ldrb r1, [r3]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _0802ACF8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802ACEE:
- pop {r0}
- bx r0
- .align 2, 0
-_0802ACF4: .4byte gProtectStructs
-_0802ACF8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkE0_setstealstatchange
-
- thumb_func_start atkE1_802CBE4
-atkE1_802CBE4: @ 802ACFC
- push {r4-r6,lr}
- ldr r4, _0802ADA0 @ =0x02000000
- ldr r1, _0802ADA4 @ =0x000160dd
- adds r0, r4, r1
- ldrb r0, [r0]
- subs r1, 0xDA
- adds r4, r1
- strb r0, [r4]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _0802ADA8 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x9
- strb r0, [r2, 0x1]
- ldr r3, _0802ADAC @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r2, _0802ADB0 @ =gBankTarget
- ldr r1, _0802ADB4 @ =gNoOfAllBanks
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0802AD84
- adds r4, r2, 0
- ldr r6, _0802ADB8 @ =gBitTable
-_0802AD44:
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- beq _0802AD66
- ldr r0, _0802ADBC @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ands r1, r0
- ldr r2, _0802ADB4 @ =gNoOfAllBanks
- cmp r1, 0
- beq _0802AD7A
-_0802AD66:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _0802ADB4 @ =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- adds r2, r1, 0
- ldrb r1, [r2]
- cmp r0, r1
- bcc _0802AD44
-_0802AD7A:
- ldr r0, _0802ADB0 @ =gBankTarget
- ldrb r0, [r0]
- ldrb r2, [r2]
- cmp r0, r2
- bcc _0802ADC4
-_0802AD84:
- ldr r3, _0802ADC0 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802ADCC
- .align 2, 0
-_0802ADA0: .4byte 0x02000000
-_0802ADA4: .4byte 0x000160dd
-_0802ADA8: .4byte gBattleTextBuff1
-_0802ADAC: .4byte gBattleMons
-_0802ADB0: .4byte gBankTarget
-_0802ADB4: .4byte gNoOfAllBanks
-_0802ADB8: .4byte gBitTable
-_0802ADBC: .4byte gAbsentBankFlags
-_0802ADC0: .4byte gBattlescriptCurrInstr
-_0802ADC4:
- ldr r1, _0802ADD4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802ADCC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802ADD4: .4byte gBattlescriptCurrInstr
- thumb_func_end atkE1_802CBE4
-
- thumb_func_start sub_802ADD8
-sub_802ADD8: @ 802ADD8
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r6, _0802AE44 @ =gBattlescriptCurrInstr
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _0802AE48 @ =gActiveBank
- strb r0, [r5]
- ldr r4, _0802AE4C @ =gBattleMons
- ldrb r0, [r5]
- movs r1, 0x58
- mov r12, r1
- mov r1, r12
- muls r1, r0
- adds r0, r1, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1E
- bne _0802AE34
- adds r4, 0x4C
- adds r1, r4
- movs r0, 0
- str r0, [r1]
- ldr r2, _0802AE50 @ =gBitTable
- ldr r1, _0802AE54 @ =0x02000000
- ldrb r3, [r5]
- ldr r7, _0802AE58 @ =0x00016064
- adds r0, r3, r7
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0]
- mov r0, r12
- muls r0, r3
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
-_0802AE34:
- ldr r0, [r6]
- adds r0, 0x2
- str r0, [r6]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802AE44: .4byte gBattlescriptCurrInstr
-_0802AE48: .4byte gActiveBank
-_0802AE4C: .4byte gBattleMons
-_0802AE50: .4byte gBitTable
-_0802AE54: .4byte 0x02000000
-_0802AE58: .4byte 0x00016064
- thumb_func_end sub_802ADD8
-
- thumb_func_start atkE3_jumpiffainted
-atkE3_jumpiffainted: @ 802AE5C
- push {r4,lr}
- ldr r4, _0802AE98 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _0802AE9C @ =gActiveBank
- strb r0, [r1]
- ldr r2, _0802AEA0 @ =gBattleMons
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0802AEA4
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0802AEAA
- .align 2, 0
-_0802AE98: .4byte gBattlescriptCurrInstr
-_0802AE9C: .4byte gActiveBank
-_0802AEA0: .4byte gBattleMons
-_0802AEA4:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_0802AEAA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atkE3_jumpiffainted
-
- thumb_func_start sub_802AEB0
-sub_802AEB0: @ 802AEB0
- push {lr}
- ldr r0, _0802AEC4 @ =gBattleTerrain
- ldrb r0, [r0]
- cmp r0, 0x7
- bhi _0802AF4C
- lsls r0, 2
- ldr r1, _0802AEC8 @ =_0802AECC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802AEC4: .4byte gBattleTerrain
-_0802AEC8: .4byte _0802AECC
- .align 2, 0
-_0802AECC:
- .4byte _0802AEEC
- .4byte _0802AEF8
- .4byte _0802AF04
- .4byte _0802AF10
- .4byte _0802AF1C
- .4byte _0802AF28
- .4byte _0802AF34
- .4byte _0802AF40
-_0802AEEC:
- ldr r1, _0802AEF4 @ =gBattleCommunication
- movs r0, 0x2
- b _0802AF50
- .align 2, 0
-_0802AEF4: .4byte gBattleCommunication
-_0802AEF8:
- ldr r1, _0802AF00 @ =gBattleCommunication
- movs r0, 0x1
- b _0802AF50
- .align 2, 0
-_0802AF00: .4byte gBattleCommunication
-_0802AF04:
- ldr r1, _0802AF0C @ =gBattleCommunication
- movs r0, 0x1B
- b _0802AF50
- .align 2, 0
-_0802AF0C: .4byte gBattleCommunication
-_0802AF10:
- ldr r1, _0802AF18 @ =gBattleCommunication
- movs r0, 0x17
- b _0802AF50
- .align 2, 0
-_0802AF18: .4byte gBattleCommunication
-_0802AF1C:
- ldr r1, _0802AF24 @ =gBattleCommunication
- movs r0, 0x16
- b _0802AF50
- .align 2, 0
-_0802AF24: .4byte gBattleCommunication
-_0802AF28:
- ldr r1, _0802AF30 @ =gBattleCommunication
- movs r0, 0x18
- b _0802AF50
- .align 2, 0
-_0802AF30: .4byte gBattleCommunication
-_0802AF34:
- ldr r1, _0802AF3C @ =gBattleCommunication
- movs r0, 0x7
- b _0802AF50
- .align 2, 0
-_0802AF3C: .4byte gBattleCommunication
-_0802AF40:
- ldr r1, _0802AF48 @ =gBattleCommunication
- movs r0, 0x8
- b _0802AF50
- .align 2, 0
-_0802AF48: .4byte gBattleCommunication
-_0802AF4C:
- ldr r1, _0802AF60 @ =gBattleCommunication
- movs r0, 0x5
-_0802AF50:
- strb r0, [r1, 0x3]
- ldr r1, _0802AF64 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802AF60: .4byte gBattleCommunication
-_0802AF64: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802AEB0
-
- thumb_func_start sub_802AF68
-sub_802AF68: @ 802AF68
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r7, 0
- ldr r0, _0802AFB4 @ =gBaseStats
- mov r9, r0
- ldr r1, _0802AFB8 @ =gPickupItems
- mov r8, r1
-_0802AF7A:
- movs r0, 0x64
- adds r4, r7, 0
- muls r4, r0
- ldr r0, _0802AFBC @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- cmp r0, 0
- beq _0802AFC0
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x17]
- b _0802AFCA
- .align 2, 0
-_0802AFB4: .4byte gBaseStats
-_0802AFB8: .4byte gPickupItems
-_0802AFBC: .4byte gPlayerParty
-_0802AFC0:
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x16]
-_0802AFCA:
- adds r4, r7, 0x1
- cmp r0, 0x35
- bne _0802B032
- cmp r5, 0
- beq _0802B032
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- beq _0802B032
- cmp r6, 0
- bne _0802B032
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _0802B032
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- mov r1, r8
- ldrh r0, [r1, 0x2]
- cmp r0, r3
- bgt _0802B020
- adds r1, 0x2
-_0802B012:
- adds r1, 0x4
- adds r2, 0x2
- cmp r2, 0x11
- bgt _0802B020
- ldrh r0, [r1]
- cmp r0, r3
- ble _0802B012
-_0802B020:
- movs r0, 0x64
- muls r0, r7
- ldr r1, _0802B04C @ =gPlayerParty
- adds r0, r1
- lsls r2, 1
- add r2, r8
- movs r1, 0xC
- bl SetMonData
-_0802B032:
- adds r7, r4, 0
- cmp r7, 0x5
- ble _0802AF7A
- ldr r1, _0802B050 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B04C: .4byte gPlayerParty
-_0802B050: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802AF68
-
- thumb_func_start atkE6_castform_transform
-atkE6_castform_transform: @ 802B054
- push {r4,lr}
- ldr r4, _0802B0A8 @ =gActiveBank
- ldr r3, _0802B0AC @ =0x02000000
- ldr r1, _0802B0B0 @ =0x00016003
- adds r0, r3, r1
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _0802B0B4 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0802B086
- ldr r0, _0802B0B8 @ =0x0001609b
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x80
- orrs r0, r1
- strb r0, [r2]
-_0802B086:
- ldr r1, _0802B0B8 @ =0x0001609b
- adds r0, r3, r1
- ldrb r2, [r0]
- movs r0, 0
- movs r1, 0
- bl EmitBattleAnimation
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r1, _0802B0BC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B0A8: .4byte gActiveBank
-_0802B0AC: .4byte 0x02000000
-_0802B0B0: .4byte 0x00016003
-_0802B0B4: .4byte gBattleMons
-_0802B0B8: .4byte 0x0001609b
-_0802B0BC: .4byte gBattlescriptCurrInstr
- thumb_func_end atkE6_castform_transform
-
- thumb_func_start atkE7_castform_switch
-atkE7_castform_switch: @ 802B0C0
- push {r4,r5,lr}
- ldr r1, _0802B0F4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r5, _0802B0F8 @ =0x02000000
- ldr r1, _0802B0FC @ =0x00016003
- adds r0, r5, r1
- ldrb r0, [r0]
- bl castform_switch
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0802B0EC
- ldr r0, _0802B100 @ =gUnknown_081D977D
- bl b_push_move_exec
- subs r1, r4, 0x1
- ldr r2, _0802B104 @ =0x0001609b
- adds r0, r5, r2
- strb r1, [r0]
-_0802B0EC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B0F4: .4byte gBattlescriptCurrInstr
-_0802B0F8: .4byte 0x02000000
-_0802B0FC: .4byte 0x00016003
-_0802B100: .4byte gUnknown_081D977D
-_0802B104: .4byte 0x0001609b
- thumb_func_end atkE7_castform_switch
-
- thumb_func_start atkE8_settypebasedhalvers
-atkE8_settypebasedhalvers: @ 802B108
- push {r4,lr}
- movs r4, 0
- ldr r2, _0802B144 @ =gBattleMoves
- ldr r0, _0802B148 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0xC9
- bne _0802B158
- ldr r1, _0802B14C @ =gStatuses3
- ldr r0, _0802B150 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 9
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0802B17C
- orrs r1, r3
- str r1, [r2]
- ldr r0, _0802B154 @ =gBattleCommunication
- strb r4, [r0, 0x5]
- b _0802B180
- .align 2, 0
-_0802B144: .4byte gBattleMoves
-_0802B148: .4byte gCurrentMove
-_0802B14C: .4byte gStatuses3
-_0802B150: .4byte gBankAttacker
-_0802B154: .4byte gBattleCommunication
-_0802B158:
- ldr r1, _0802B18C @ =gStatuses3
- ldr r0, _0802B190 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 10
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0802B17C
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802B194 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- movs r4, 0x1
-_0802B17C:
- cmp r4, 0
- beq _0802B19C
-_0802B180:
- ldr r1, _0802B198 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802B1B6
- .align 2, 0
-_0802B18C: .4byte gStatuses3
-_0802B190: .4byte gBankAttacker
-_0802B194: .4byte gBattleCommunication
-_0802B198: .4byte gBattlescriptCurrInstr
-_0802B19C:
- ldr r3, _0802B1BC @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802B1B6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B1BC: .4byte gBattlescriptCurrInstr
- thumb_func_end atkE8_settypebasedhalvers
-
- thumb_func_start sub_802B1C0
-sub_802B1C0: @ 802B1C0
- push {lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0802B276
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0802B276
- ldr r3, _0802B218 @ =gBattleWeather
- ldrb r0, [r3]
- ldr r2, _0802B21C @ =0x02000000
- cmp r0, 0
- beq _0802B202
- ldr r0, _0802B220 @ =0x0001601f
- adds r1, r2, r0
- movs r0, 0x2
- strb r0, [r1]
-_0802B202:
- ldrh r1, [r3]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0802B228
- ldr r0, _0802B224 @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x8B
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B218: .4byte gBattleWeather
-_0802B21C: .4byte 0x02000000
-_0802B220: .4byte 0x0001601f
-_0802B224: .4byte 0x0001601c
-_0802B228:
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _0802B240
- ldr r0, _0802B23C @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x85
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B23C: .4byte 0x0001601c
-_0802B240:
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0802B258
- ldr r0, _0802B254 @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x8A
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B254: .4byte 0x0001601c
-_0802B258:
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0802B270
- ldr r0, _0802B26C @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x8F
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B26C: .4byte 0x0001601c
-_0802B270:
- ldr r1, _0802B284 @ =0x0001601c
- adds r0, r2, r1
- strb r3, [r0]
-_0802B276:
- ldr r1, _0802B288 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0802B284: .4byte 0x0001601c
-_0802B288: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802B1C0
-
- thumb_func_start atkEA_recycleitem
-atkEA_recycleitem: @ 802B28C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r7, _0802B2F0 @ =gActiveBank
- ldr r0, _0802B2F4 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r7]
- ldrb r2, [r7]
- lsls r1, r2, 1
- ldr r0, _0802B2F8 @ =0x020160cc
- adds r6, r1, r0
- ldrh r5, [r6]
- cmp r5, 0
- beq _0802B308
- ldr r4, _0802B2FC @ =gBattleMons
- movs r3, 0x58
- adds r0, r2, 0
- muls r0, r3
- adds r0, r4
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- bne _0802B308
- ldr r1, _0802B300 @ =gLastUsedItem
- strh r5, [r1]
- strh r0, [r6]
- ldrb r0, [r7]
- muls r0, r3
- adds r0, r4
- ldrh r1, [r1]
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- muls r0, r3
- adds r1, r4, 0
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl EmitSetAttributes
- ldrb r0, [r7]
- bl MarkBufferBankForExecution
- ldr r1, _0802B304 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802B322
- .align 2, 0
-_0802B2F0: .4byte gActiveBank
-_0802B2F4: .4byte gBankAttacker
-_0802B2F8: .4byte 0x020160cc
-_0802B2FC: .4byte gBattleMons
-_0802B300: .4byte gLastUsedItem
-_0802B304: .4byte gBattlescriptCurrInstr
-_0802B308:
- ldr r3, _0802B32C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802B322:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B32C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkEA_recycleitem
-
- thumb_func_start atkEB_settypetoterrain
-atkEB_settypetoterrain: @ 802B330
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0802B3A0 @ =gBattleMons
- mov r8, r0
- ldr r7, _0802B3A4 @ =gBankAttacker
- ldrb r0, [r7]
- movs r6, 0x58
- muls r0, r6
- mov r1, r8
- adds r3, r0, r1
- movs r0, 0x21
- adds r0, r3
- mov r12, r0
- ldr r5, _0802B3A8 @ =gTerrainToType
- ldr r4, _0802B3AC @ =gBattleTerrain
- ldrb r0, [r4]
- adds r0, r5
- ldrb r2, [r0]
- mov r1, r12
- ldrb r0, [r1]
- adds r1, r2, 0
- cmp r0, r1
- beq _0802B3B8
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- beq _0802B3B8
- mov r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- add r1, r8
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- adds r1, 0x22
- strb r0, [r1]
- ldr r1, _0802B3B0 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _0802B3B4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802B3D2
- .align 2, 0
-_0802B3A0: .4byte gBattleMons
-_0802B3A4: .4byte gBankAttacker
-_0802B3A8: .4byte gTerrainToType
-_0802B3AC: .4byte gBattleTerrain
-_0802B3B0: .4byte gBattleTextBuff1
-_0802B3B4: .4byte gBattlescriptCurrInstr
-_0802B3B8:
- ldr r3, _0802B3DC @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802B3D2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B3DC: .4byte gBattlescriptCurrInstr
- thumb_func_end atkEB_settypetoterrain
-
- thumb_func_start sub_802B3E0
-sub_802B3E0: @ 802B3E0
- push {r4,r5,lr}
- ldr r5, _0802B45C @ =gBankAttacker
- ldrb r0, [r5]
- bl GetBankIdentity
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- ldr r4, _0802B460 @ =gActiveBank
- strb r0, [r4]
- ldr r0, _0802B464 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802B490
- ldr r0, _0802B468 @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _0802B46C @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802B490
- ldr r0, _0802B470 @ =gActionForBanks
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802B490
- ldr r1, _0802B474 @ =gChosenMovesByBanks
- lsls r0, r3, 1
- adds r0, r1
- ldrh r2, [r0]
- cmp r2, 0xE4
- bne _0802B490
- ldr r0, _0802B478 @ =gUnknown_02024A76
- adds r0, r3, r0
- movs r1, 0xB
- strb r1, [r0]
- ldr r0, _0802B47C @ =gCurrentMove
- strh r2, [r0]
- ldr r1, _0802B480 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r1, _0802B484 @ =0x02000000
- ldr r0, _0802B488 @ =0x00016002
- adds r2, r1, r0
- movs r0, 0x1
- strb r0, [r2]
- ldrb r0, [r5]
- ldr r2, _0802B48C @ =0x000160a7
- adds r1, r2
- strb r0, [r1]
- ldrb r0, [r4]
- strb r0, [r5]
- b _0802B4AA
- .align 2, 0
-_0802B45C: .4byte gBankAttacker
-_0802B460: .4byte gActiveBank
-_0802B464: .4byte gBattleTypeFlags
-_0802B468: .4byte gAbsentBankFlags
-_0802B46C: .4byte gBitTable
-_0802B470: .4byte gActionForBanks
-_0802B474: .4byte gChosenMovesByBanks
-_0802B478: .4byte gUnknown_02024A76
-_0802B47C: .4byte gCurrentMove
-_0802B480: .4byte gBattlescriptCurrInstr
-_0802B484: .4byte 0x02000000
-_0802B488: .4byte 0x00016002
-_0802B48C: .4byte 0x000160a7
-_0802B490:
- ldr r3, _0802B4B0 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802B4AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B4B0: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802B3E0
-
- thumb_func_start sub_802B4B4
-sub_802B4B4: @ 802B4B4
- push {r4,r5,lr}
- ldr r1, _0802B4DC @ =gEffectBank
- ldr r3, _0802B4E0 @ =gBankAttacker
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r2, _0802B4E4 @ =gBankTarget
- lsls r0, 24
- lsrs r0, 24
- adds r4, r1, 0
- ldrb r1, [r2]
- cmp r0, r1
- bne _0802B4F0
- ldr r0, _0802B4E8 @ =0x02000000
- ldr r5, _0802B4EC @ =0x00016003
- adds r1, r0, r5
- ldrb r1, [r1]
- strb r1, [r2]
- strb r1, [r3]
- b _0802B4FA
- .align 2, 0
-_0802B4DC: .4byte gEffectBank
-_0802B4E0: .4byte gBankAttacker
-_0802B4E4: .4byte gBankTarget
-_0802B4E8: .4byte 0x02000000
-_0802B4EC: .4byte 0x00016003
-_0802B4F0:
- ldr r0, _0802B510 @ =0x02000000
- ldr r3, _0802B514 @ =0x00016003
- adds r1, r0, r3
- ldrb r1, [r1]
- strb r1, [r2]
-_0802B4FA:
- ldrb r1, [r4]
- ldr r5, _0802B514 @ =0x00016003
- adds r0, r5
- strb r1, [r0]
- ldr r1, _0802B518 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B510: .4byte 0x02000000
-_0802B514: .4byte 0x00016003
-_0802B518: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802B4B4
-
- thumb_func_start sub_802B51C
-sub_802B51C: @ 802B51C
- push {r4,lr}
- ldr r0, _0802B56C @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0802B570 @ =gSideTimer
- lsls r3, r0, 1
- adds r0, r3, r0
- lsls r0, 2
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- bne _0802B544
- ldrb r2, [r4, 0x1]
- cmp r2, 0
- beq _0802B58C
-_0802B544:
- ldr r2, _0802B574 @ =gSideAffecting
- adds r2, r3, r2
- ldrh r1, [r2]
- ldr r0, _0802B578 @ =0x0000fffe
- ands r0, r1
- movs r3, 0
- ldr r1, _0802B57C @ =0x0000fffd
- ands r0, r1
- strh r0, [r2]
- strb r3, [r4]
- strb r3, [r4, 0x1]
- ldr r0, _0802B580 @ =0x02000000
- ldr r2, _0802B584 @ =0x00016002
- adds r1, r0, r2
- movs r2, 0x1
- strb r2, [r1]
- ldr r3, _0802B588 @ =0x000160a1
- adds r0, r3
- b _0802B598
- .align 2, 0
-_0802B56C: .4byte gBankAttacker
-_0802B570: .4byte gSideTimer
-_0802B574: .4byte gSideAffecting
-_0802B578: .4byte 0x0000fffe
-_0802B57C: .4byte 0x0000fffd
-_0802B580: .4byte 0x02000000
-_0802B584: .4byte 0x00016002
-_0802B588: .4byte 0x000160a1
-_0802B58C:
- ldr r0, _0802B5A8 @ =0x02000000
- ldr r3, _0802B5AC @ =0x00016002
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _0802B5B0 @ =0x000160a1
- adds r0, r1
-_0802B598:
- strb r2, [r0]
- ldr r1, _0802B5B4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B5A8: .4byte 0x02000000
-_0802B5AC: .4byte 0x00016002
-_0802B5B0: .4byte 0x000160a1
-_0802B5B4: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802B51C
-
- thumb_func_start sub_802B5B8
-sub_802B5B8: @ 802B5B8
- push {r4-r7,lr}
- movs r4, 0
- ldr r0, _0802B5F8 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _0802B5C6
- b _0802B94E
-_0802B5C6:
- ldr r5, _0802B5FC @ =gActiveBank
- ldr r0, _0802B600 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r6, _0802B604 @ =gBankTarget
- movs r1, 0x1
- eors r0, r1
- strb r0, [r6]
- ldr r0, _0802B608 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0802B614
- movs r0, 0
- movs r1, 0x5
- bl dp01_build_cmdbuf_x0D_a
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r1, _0802B60C @ =gBattlescriptCurrInstr
- ldr r0, _0802B610 @ =gUnknown_081D9F35
- b _0802B94C
- .align 2, 0
-_0802B5F8: .4byte gBattleExecBuffer
-_0802B5FC: .4byte gActiveBank
-_0802B600: .4byte gBankAttacker
-_0802B604: .4byte gBankTarget
-_0802B608: .4byte gBattleTypeFlags
-_0802B60C: .4byte gBattlescriptCurrInstr
-_0802B610: .4byte gUnknown_081D9F35
-_0802B614:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0802B63C
- movs r0, 0
- movs r1, 0x4
- bl dp01_build_cmdbuf_x0D_a
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r1, _0802B634 @ =gBattlescriptCurrInstr
- ldr r0, _0802B638 @ =gUnknown_081D9F00
- b _0802B94C
- .align 2, 0
-_0802B634: .4byte gBattlescriptCurrInstr
-_0802B638: .4byte gUnknown_081D9F00
-_0802B63C:
- ldr r0, _0802B660 @ =gLastUsedItem
- ldrh r0, [r0]
- cmp r0, 0x5
- bne _0802B66C
- ldr r0, _0802B664 @ =0x02000000
- ldr r1, _0802B668 @ =0x00016089
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 8
- subs r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 24
- lsrs r5, r0, 24
- b _0802B684
- .align 2, 0
-_0802B660: .4byte gLastUsedItem
-_0802B664: .4byte 0x02000000
-_0802B668: .4byte 0x00016089
-_0802B66C:
- ldr r3, _0802B6A0 @ =gBaseStats
- ldr r2, _0802B6A4 @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r5, [r0, 0x8]
-_0802B684:
- ldr r2, _0802B6A8 @ =gLastUsedItem
- ldrh r0, [r2]
- cmp r0, 0x5
- bhi _0802B68E
- b _0802B784
-_0802B68E:
- subs r0, 0x6
- cmp r0, 0x6
- bls _0802B696
- b _0802B78E
-_0802B696:
- lsls r0, 2
- ldr r1, _0802B6AC @ =_0802B6B0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802B6A0: .4byte gBaseStats
-_0802B6A4: .4byte gBattleMons
-_0802B6A8: .4byte gLastUsedItem
-_0802B6AC: .4byte _0802B6B0
- .align 2, 0
-_0802B6B0:
- .4byte _0802B6CC
- .4byte _0802B6FC
- .4byte _0802B70E
- .4byte _0802B73C
- .4byte _0802B76C
- .4byte _0802B72E
- .4byte _0802B72E
-_0802B6CC:
- ldr r2, _0802B6F4 @ =gBattleMons
- ldr r0, _0802B6F8 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r1, 0xB
- beq _0802B760
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xB
- beq _0802B760
- cmp r1, 0x6
- beq _0802B760
- cmp r0, 0x6
- beq _0802B760
- b _0802B72E
- .align 2, 0
-_0802B6F4: .4byte gBattleMons
-_0802B6F8: .4byte gBankTarget
-_0802B6FC:
- bl sav1_map_get_light_level
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0xA
- cmp r0, 0x5
- bne _0802B78E
- movs r4, 0x23
- b _0802B78E
-_0802B70E:
- ldr r2, _0802B734 @ =gBattleMons
- ldr r0, _0802B738 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r1, [r0]
- cmp r1, 0x27
- bhi _0802B72E
- movs r0, 0x28
- subs r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bhi _0802B78E
-_0802B72E:
- movs r4, 0xA
- b _0802B78E
- .align 2, 0
-_0802B734: .4byte gBattleMons
-_0802B738: .4byte gBankTarget
-_0802B73C:
- ldr r2, _0802B764 @ =gBattleMons
- ldr r0, _0802B768 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetNationalPokedexFlag
- lsls r0, 24
- movs r4, 0xA
- cmp r0, 0
- beq _0802B78E
-_0802B760:
- movs r4, 0x1E
- b _0802B78E
- .align 2, 0
-_0802B764: .4byte gBattleMons
-_0802B768: .4byte gBankTarget
-_0802B76C:
- ldr r0, _0802B780 @ =gBattleResults
- ldrb r0, [r0, 0x13]
- adds r0, 0xA
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x28
- bls _0802B78E
- movs r4, 0x28
- b _0802B78E
- .align 2, 0
-_0802B780: .4byte gBattleResults
-_0802B784:
- ldr r1, _0802B7F4 @ =gBallCatchBonuses
- ldrh r0, [r2]
- subs r0, 0x2
- adds r0, r1
- ldrb r4, [r0]
-_0802B78E:
- adds r0, r5, 0
- muls r0, r4
- movs r1, 0xA
- bl __divsi3
- ldr r5, _0802B7F8 @ =gBattleMons
- ldr r1, _0802B7FC @ =gBankTarget
- ldrb r1, [r1]
- movs r7, 0x58
- adds r4, r1, 0
- muls r4, r7
- adds r3, r4, r5
- ldrh r2, [r3, 0x2C]
- lsls r1, r2, 1
- adds r1, r2
- ldrh r2, [r3, 0x28]
- lsls r2, 1
- subs r2, r1, r2
- muls r0, r2
- bl __divsi3
- adds r6, r0, 0
- adds r5, 0x4C
- adds r4, r5
- ldr r4, [r4]
- movs r0, 0x27
- ands r0, r4
- cmp r0, 0
- beq _0802B7CA
- lsls r6, 1
-_0802B7CA:
- ands r4, r7
- cmp r4, 0
- beq _0802B7DC
- lsls r0, r6, 4
- subs r0, r6
- movs r1, 0xA
- bl __udivsi3
- adds r6, r0, 0
-_0802B7DC:
- ldr r1, _0802B800 @ =gLastUsedItem
- ldrh r0, [r1]
- cmp r0, 0x5
- beq _0802B81C
- cmp r0, 0x1
- bne _0802B808
- ldr r0, _0802B804 @ =gBattleResults
- ldrb r1, [r0, 0x5]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0, 0x5]
- b _0802B81C
- .align 2, 0
-_0802B7F4: .4byte gBallCatchBonuses
-_0802B7F8: .4byte gBattleMons
-_0802B7FC: .4byte gBankTarget
-_0802B800: .4byte gLastUsedItem
-_0802B804: .4byte gBattleResults
-_0802B808:
- ldr r0, _0802B860 @ =gBattleResults
- ldrh r1, [r1]
- adds r0, r1
- adds r1, r0, 0
- adds r1, 0x34
- ldrb r0, [r1]
- cmp r0, 0xFE
- bhi _0802B81C
- adds r0, 0x1
- strb r0, [r1]
-_0802B81C:
- cmp r6, 0xFE
- bls _0802B880
- movs r0, 0
- movs r1, 0x4
- bl dp01_build_cmdbuf_x0D_a
- ldr r0, _0802B864 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _0802B868 @ =gBattlescriptCurrInstr
- ldr r0, _0802B86C @ =gUnknown_081D9EC2
- str r0, [r1]
- ldr r1, _0802B870 @ =gBattlePartyID
- ldr r0, _0802B874 @ =gBankTarget
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802B878 @ =gEnemyParty
- adds r0, r1
- ldr r2, _0802B87C @ =gLastUsedItem
- movs r1, 0x26
- bl SetMonData
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- beq _0802B90E
- b _0802B938
- .align 2, 0
-_0802B860: .4byte gBattleResults
-_0802B864: .4byte gActiveBank
-_0802B868: .4byte gBattlescriptCurrInstr
-_0802B86C: .4byte gUnknown_081D9EC2
-_0802B870: .4byte gBattlePartyID
-_0802B874: .4byte gBankTarget
-_0802B878: .4byte gEnemyParty
-_0802B87C: .4byte gLastUsedItem
-_0802B880:
- movs r0, 0xFF
- lsls r0, 16
- adds r1, r6, 0
- bl __udivsi3
- bl Sqrt
- lsls r0, 16
- lsrs r0, 16
- bl Sqrt
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _0802B8A8 @ =0x000ffff0
- adds r1, r6, 0
- bl __udivsi3
- adds r6, r0, 0
- movs r4, 0
- b _0802B8B2
- .align 2, 0
-_0802B8A8: .4byte 0x000ffff0
-_0802B8AC:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0802B8B2:
- cmp r4, 0x3
- bhi _0802B8C2
- bl Random
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcc _0802B8AC
-_0802B8C2:
- ldr r5, _0802B918 @ =gLastUsedItem
- ldrh r0, [r5]
- cmp r0, 0x1
- bne _0802B8CC
- movs r4, 0x4
-_0802B8CC:
- movs r0, 0
- adds r1, r4, 0
- bl dp01_build_cmdbuf_x0D_a
- ldr r0, _0802B91C @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- cmp r4, 0x4
- bne _0802B944
- ldr r1, _0802B920 @ =gBattlescriptCurrInstr
- ldr r0, _0802B924 @ =gUnknown_081D9EC2
- str r0, [r1]
- ldr r1, _0802B928 @ =gBattlePartyID
- ldr r0, _0802B92C @ =gBankTarget
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802B930 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x26
- adds r2, r5, 0
- bl SetMonData
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _0802B938
-_0802B90E:
- ldr r1, _0802B934 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
- b _0802B94E
- .align 2, 0
-_0802B918: .4byte gLastUsedItem
-_0802B91C: .4byte gActiveBank
-_0802B920: .4byte gBattlescriptCurrInstr
-_0802B924: .4byte gUnknown_081D9EC2
-_0802B928: .4byte gBattlePartyID
-_0802B92C: .4byte gBankTarget
-_0802B930: .4byte gEnemyParty
-_0802B934: .4byte gBattleCommunication
-_0802B938:
- ldr r1, _0802B940 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0802B94E
- .align 2, 0
-_0802B940: .4byte gBattleCommunication
-_0802B944:
- ldr r0, _0802B954 @ =gBattleCommunication
- strb r4, [r0, 0x5]
- ldr r1, _0802B958 @ =gBattlescriptCurrInstr
- ldr r0, _0802B95C @ =gUnknown_081D9F0A
-_0802B94C:
- str r0, [r1]
-_0802B94E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B954: .4byte gBattleCommunication
-_0802B958: .4byte gBattlescriptCurrInstr
-_0802B95C: .4byte gUnknown_081D9F0A
- thumb_func_end sub_802B5B8
-
- thumb_func_start sub_802B960
-sub_802B960: @ 802B960
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r0, _0802B9C8 @ =gBattlePartyID
- mov r9, r0
- ldr r5, _0802B9CC @ =gBankAttacker
- ldrb r0, [r5]
- movs r4, 0x1
- eors r0, r4
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r6, _0802B9D0 @ =gEnemyParty
- adds r0, r6
- bl GiveMonToPlayer
- ldr r2, _0802B9D4 @ =gBattleResults
- ldr r1, _0802B9D8 @ =gBattleMons
- ldrb r0, [r5]
- eors r4, r0
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2, 0x28]
- lsls r4, 1
- add r4, r9
- ldrh r0, [r4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- adds r2, 0x2A
- movs r1, 0x2
- bl GetMonData
- ldr r1, _0802B9DC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B9C8: .4byte gBattlePartyID
-_0802B9CC: .4byte gBankAttacker
-_0802B9D0: .4byte gEnemyParty
-_0802B9D4: .4byte gBattleResults
-_0802B9D8: .4byte gBattleMons
-_0802B9DC: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802B960
-
- thumb_func_start sub_802B9E0
-sub_802B9E0: @ 802B9E0
- push {r4-r6,lr}
- ldr r4, _0802BA20 @ =gBattleMons
- ldr r6, _0802BA24 @ =gBankTarget
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r0, r4
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetNationalPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _0802BA2C
- ldr r3, _0802BA28 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802BA82
- .align 2, 0
-_0802BA20: .4byte gBattleMons
-_0802BA24: .4byte gBankTarget
-_0802BA28: .4byte gBattlescriptCurrInstr
-_0802BA2C:
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl GetNationalPokedexFlag
- ldrb r0, [r6]
- adds r2, r0, 0
- muls r2, r5
- adds r0, r2, r4
- ldrh r0, [r0]
- cmp r0, 0xC9
- bne _0802BA5C
- ldr r0, _0802BA88 @ =gSaveBlock2
- adds r1, r4, 0
- adds r1, 0x48
- adds r1, r2, r1
- ldr r1, [r1]
- str r1, [r0, 0x1C]
-_0802BA5C:
- ldrb r0, [r6]
- adds r2, r0, 0
- muls r2, r5
- adds r0, r2, r4
- ldrh r1, [r0]
- movs r0, 0x9A
- lsls r0, 1
- cmp r1, r0
- bne _0802BA7A
- ldr r0, _0802BA88 @ =gSaveBlock2
- adds r1, r4, 0
- adds r1, 0x48
- adds r1, r2, r1
- ldr r1, [r1]
- str r1, [r0, 0x20]
-_0802BA7A:
- ldr r1, _0802BA8C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802BA82:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BA88: .4byte gSaveBlock2
-_0802BA8C: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802B9E0
-
- thumb_func_start sub_802BA90
-sub_802BA90: @ 802BA90
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r7, _0802BAA8 @ =gBattleCommunication
- ldrb r1, [r7]
- cmp r1, 0x1
- beq _0802BAC6
- cmp r1, 0x1
- bgt _0802BAAC
- cmp r1, 0
- beq _0802BAB8
- b _0802BBC4
- .align 2, 0
-_0802BAA8: .4byte gBattleCommunication
-_0802BAAC:
- cmp r1, 0x2
- beq _0802BB10
- cmp r1, 0x3
- bne _0802BAB6
- b _0802BBB0
-_0802BAB6:
- b _0802BBC4
-_0802BAB8:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- b _0802BB6E
-_0802BAC6:
- ldr r0, _0802BB04 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BBC4
- ldr r4, _0802BB08 @ =gBattleMons
- ldr r6, _0802BB0C @ =gBankTarget
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r0, r4
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r6]
- adds r2, r1, 0
- muls r2, r5
- adds r1, r4, 0
- adds r1, 0x54
- adds r1, r2, r1
- ldr r1, [r1]
- adds r4, 0x48
- adds r2, r4
- ldr r2, [r2]
- bl sub_809070C
- strb r0, [r7, 0x1]
- b _0802BB72
- .align 2, 0
-_0802BB04: .4byte gPaletteFade
-_0802BB08: .4byte gBattleMons
-_0802BB0C: .4byte gBankTarget
-_0802BB10:
- ldr r0, _0802BB7C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BBC4
- ldr r0, _0802BB80 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802BB84 @ =sub_800F808
- cmp r1, r0
- bne _0802BBC4
- ldr r2, _0802BB88 @ =gTasks
- ldrb r1, [r7, 0x1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r4, [r0, 0x4]
- cmp r4, 0
- bne _0802BBC4
- ldr r0, _0802BB8C @ =gBattleTerrainTiles_Building
- ldr r1, _0802BB90 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0802BB94 @ =gBattleTerrainTilemap_Building
- ldr r1, _0802BB98 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0802BB9C @ =gBattleTerrainPalette_BattleTower
- movs r1, 0x20
- movs r2, 0x60
- bl LoadCompressedPalette
- ldr r1, _0802BBA0 @ =REG_BG3CNT
- ldr r2, _0802BBA4 @ =0x00005a0b
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0802BBA8 @ =gUnknown_030041B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0802BBAC @ =0x0000fffc
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
-_0802BB6E:
- bl BeginNormalPaletteFade
-_0802BB72:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- b _0802BBC4
- .align 2, 0
-_0802BB7C: .4byte gPaletteFade
-_0802BB80: .4byte gMain
-_0802BB84: .4byte sub_800F808
-_0802BB88: .4byte gTasks
-_0802BB8C: .4byte gBattleTerrainTiles_Building
-_0802BB90: .4byte 0x06008000
-_0802BB94: .4byte gBattleTerrainTilemap_Building
-_0802BB98: .4byte 0x0600d000
-_0802BB9C: .4byte gBattleTerrainPalette_BattleTower
-_0802BBA0: .4byte REG_BG3CNT
-_0802BBA4: .4byte 0x00005a0b
-_0802BBA8: .4byte gUnknown_030041B0
-_0802BBAC: .4byte 0x0000fffc
-_0802BBB0:
- ldr r0, _0802BBCC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BBC4
- ldr r1, _0802BBD0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0802BBC4:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BBCC: .4byte gPaletteFade
-_0802BBD0: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802BA90
-
- thumb_func_start sub_802BBD4
-sub_802BBD4: @ 802BBD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- mov r2, r12
- cmp r2, r7
- bgt _0802BC5A
- lsls r1, r6, 1
- ldr r0, _0802BC20 @ =0x0600c000
- adds r1, r0
- mov r9, r1
-_0802BC06:
- adds r1, r6, 0
- adds r0, r2, 0x1
- mov r10, r0
- cmp r1, r5
- bgt _0802BC54
- lsls r0, r2, 6
- mov r4, r9
- adds r3, r4, r0
-_0802BC16:
- cmp r2, r12
- bne _0802BC28
- ldr r0, _0802BC24 @ =0x00001022
- b _0802BC36
- .align 2, 0
-_0802BC20: .4byte 0x0600c000
-_0802BC24: .4byte 0x00001022
-_0802BC28:
- cmp r2, r7
- bne _0802BC34
- ldr r0, _0802BC30 @ =0x00001028
- b _0802BC36
- .align 2, 0
-_0802BC30: .4byte 0x00001028
-_0802BC34:
- ldr r0, _0802BC68 @ =0x00001025
-_0802BC36:
- cmp r1, r6
- beq _0802BC42
- adds r0, 0x1
- cmp r1, r5
- bne _0802BC42
- adds r0, 0x1
-_0802BC42:
- mov r4, r8
- cmp r4, 0
- beq _0802BC4A
- movs r0, 0
-_0802BC4A:
- strh r0, [r3]
- adds r3, 0x2
- adds r1, 0x1
- cmp r1, r5
- ble _0802BC16
-_0802BC54:
- mov r2, r10
- cmp r2, r7
- ble _0802BC06
-_0802BC5A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BC68: .4byte 0x00001025
- thumb_func_end sub_802BBD4
-
- thumb_func_start sub_802BC6C
-sub_802BC6C: @ 802BC6C
- push {lr}
- ldr r0, _0802BC88 @ =gBattleCommunication
- ldrb r1, [r0, 0x1]
- lsls r1, 28
- movs r0, 0x90
- lsls r0, 23
- adds r1, r0
- lsrs r1, 24
- movs r0, 0xC8
- bl sub_814A880
- pop {r0}
- bx r0
- .align 2, 0
-_0802BC88: .4byte gBattleCommunication
- thumb_func_end sub_802BC6C
-
- thumb_func_start nullsub_6
-nullsub_6: @ 802BC8C
- bx lr
- thumb_func_end nullsub_6
-
- thumb_func_start atkF3_receive_new_pokemon_maybe
-atkF3_receive_new_pokemon_maybe: @ 802BC90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r0, _0802BCB4 @ =gBattleCommunication
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x4
- bls _0802BCA8
- b _0802BEDA
-_0802BCA8:
- lsls r0, r1, 2
- ldr r1, _0802BCB8 @ =_0802BCBC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802BCB4: .4byte gBattleCommunication
-_0802BCB8: .4byte _0802BCBC
- .align 2, 0
-_0802BCBC:
- .4byte _0802BCD0
- .4byte _0802BCEC
- .4byte _0802BD84
- .4byte _0802BE50
- .4byte _0802BEA4
-_0802BCD0:
- bl sub_8023A80
- ldr r0, _0802BCE8 @ =gBattleCommunication
- ldrb r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- bl sub_802BC6C
- b _0802BEDA
- .align 2, 0
-_0802BCE8: .4byte gBattleCommunication
-_0802BCEC:
- ldr r0, _0802BD60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802BD10
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _0802BD10
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_0802BD10:
- ldr r0, _0802BD60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802BD36
- ldr r4, _0802BD64 @ =gBattleCommunication
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _0802BD36
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_0802BD36:
- ldr r0, _0802BD60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802BD68
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802BD64 @ =gBattleCommunication
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0802BD7A
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0x3
- bl BeginFastPaletteFade
- b _0802BEDA
- .align 2, 0
-_0802BD60: .4byte gMain
-_0802BD64: .4byte gBattleCommunication
-_0802BD68:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0802BD72
- b _0802BEDA
-_0802BD72:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802BD80 @ =gBattleCommunication
-_0802BD7A:
- movs r0, 0x4
- strb r0, [r1]
- b _0802BEDA
- .align 2, 0
-_0802BD80: .4byte gBattleCommunication
-_0802BD84:
- ldr r0, _0802BE34 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802BD92
- b _0802BEDA
-_0802BD92:
- ldr r7, _0802BE38 @ =gBattlePartyID
- ldr r0, _0802BE3C @ =gBankAttacker
- mov r10, r0
- ldrb r0, [r0]
- movs r4, 0x1
- eors r0, r4
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r1, 0x64
- mov r9, r1
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- ldr r1, _0802BE40 @ =gEnemyParty
- mov r8, r1
- add r0, r8
- movs r1, 0x2
- ldr r2, _0802BE44 @ =0x02016079
- bl GetMonData
- mov r1, r10
- ldrb r0, [r1]
- eors r0, r4
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- movs r1, 0xB
- bl GetMonData
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- mov r1, r10
- ldrb r0, [r1]
- eors r0, r4
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- bl GetMonGender
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- mov r1, r10
- ldrb r0, [r1]
- eors r4, r0
- lsls r4, 1
- adds r4, r7
- ldrh r0, [r4]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- movs r1, 0
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r0, _0802BE48 @ =sub_800F808
- str r0, [sp, 0x4]
- movs r0, 0x2
- ldr r1, _0802BE44 @ =0x02016079
- adds r2, r6, 0
- adds r3, r5, 0
- bl DoNamingScreen
- ldr r1, _0802BE4C @ =gBattleCommunication
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0802BEDA
- .align 2, 0
-_0802BE34: .4byte gPaletteFade
-_0802BE38: .4byte gBattlePartyID
-_0802BE3C: .4byte gBankAttacker
-_0802BE40: .4byte gEnemyParty
-_0802BE44: .4byte 0x02016079
-_0802BE48: .4byte sub_800F808
-_0802BE4C: .4byte gBattleCommunication
-_0802BE50:
- ldr r0, _0802BE88 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802BE8C @ =sub_800F808
- cmp r1, r0
- bne _0802BEDA
- ldr r0, _0802BE90 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BEDA
- ldr r2, _0802BE94 @ =gBattlePartyID
- ldr r0, _0802BE98 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x1
- eors r0, r1
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802BE9C @ =gEnemyParty
- adds r0, r1
- ldr r2, _0802BEA0 @ =0x02016079
- movs r1, 0x2
- bl SetMonData
- b _0802BEC0
- .align 2, 0
-_0802BE88: .4byte gMain
-_0802BE8C: .4byte sub_800F808
-_0802BE90: .4byte gPaletteFade
-_0802BE94: .4byte gBattlePartyID
-_0802BE98: .4byte gBankAttacker
-_0802BE9C: .4byte gEnemyParty
-_0802BEA0: .4byte 0x02016079
-_0802BEA4:
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _0802BEC0
- ldr r1, _0802BEBC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802BEDA
- .align 2, 0
-_0802BEBC: .4byte gBattlescriptCurrInstr
-_0802BEC0:
- ldr r3, _0802BEEC @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802BEDA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BEEC: .4byte gBattlescriptCurrInstr
- thumb_func_end atkF3_receive_new_pokemon_maybe
-
- thumb_func_start sub_802BEF0
-sub_802BEF0: @ 802BEF0
- ldr r2, _0802BF10 @ =gBattleMons
- ldr r0, _0802BF14 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldr r0, _0802BF18 @ =gBattleMoveDamage
- ldr r2, [r0]
- ldrh r0, [r1, 0x28]
- subs r0, r2
- strh r0, [r1, 0x28]
- ldr r1, _0802BF1C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802BF10: .4byte gBattleMons
-_0802BF14: .4byte gBankAttacker
-_0802BF18: .4byte gBattleMoveDamage
-_0802BF1C: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802BEF0
-
- thumb_func_start sub_802BF20
-sub_802BF20: @ 802BF20
- ldr r1, _0802BF3C @ =gBattleMons
- ldr r0, _0802BF40 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- ldr r1, _0802BF44 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802BF3C: .4byte gBattleMons
-_0802BF40: .4byte gBankAttacker
-_0802BF44: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802BF20
-
- thumb_func_start sub_802BF48
-sub_802BF48: @ 802BF48
- ldr r1, _0802BF50 @ =gFightStateTracker
- movs r0, 0xC
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0802BF50: .4byte gFightStateTracker
- thumb_func_end sub_802BF48
-
- thumb_func_start sub_802BF54
-sub_802BF54: @ 802BF54
- ldr r1, _0802BF64 @ =gFightStateTracker
- movs r0, 0xC
- strb r0, [r1]
- ldr r1, _0802BF68 @ =gCurrentMoveTurn
- ldr r0, _0802BF6C @ =gNoOfAllBanks
- ldrb r0, [r0]
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0802BF64: .4byte gFightStateTracker
-_0802BF68: .4byte gCurrentMoveTurn
-_0802BF6C: .4byte gNoOfAllBanks
- thumb_func_end sub_802BF54
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_5.s b/asm/battle_5.s
deleted file mode 100644
index b72266193..000000000
--- a/asm/battle_5.s
+++ /dev/null
@@ -1,4591 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start nullsub_91
-nullsub_91: @ 802BF70
- bx lr
- thumb_func_end nullsub_91
-
- thumb_func_start SetBankFuncToPlayerBufferRunCommand
-SetBankFuncToPlayerBufferRunCommand: @ 802BF74
- ldr r1, _0802BF8C @ =gBattleBankFunc
- ldr r0, _0802BF90 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802BF94 @ =PlayerBufferRunCommand
- str r1, [r0]
- ldr r1, _0802BF98 @ =gDoingBattleAnim
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0802BF8C: .4byte gBattleBankFunc
-_0802BF90: .4byte gActiveBank
-_0802BF94: .4byte PlayerBufferRunCommand
-_0802BF98: .4byte gDoingBattleAnim
- thumb_func_end SetBankFuncToPlayerBufferRunCommand
-
- thumb_func_start PlayerBufferExecCompleted
-PlayerBufferExecCompleted: @ 802BF9C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _0802BFDC @ =gBattleBankFunc
- ldr r4, _0802BFE0 @ =gActiveBank
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802BFE4 @ =PlayerBufferRunCommand
- str r1, [r0]
- ldr r0, _0802BFE8 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802BFF0
- bl GetMultiplayerId
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl dp01_prepare_buffer_wireless_probably
- ldr r1, _0802BFEC @ =gBattleBufferA
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _0802C002
- .align 2, 0
-_0802BFDC: .4byte gBattleBankFunc
-_0802BFE0: .4byte gActiveBank
-_0802BFE4: .4byte PlayerBufferRunCommand
-_0802BFE8: .4byte gBattleTypeFlags
-_0802BFEC: .4byte gBattleBufferA
-_0802BFF0:
- ldr r2, _0802C00C @ =gBattleExecBuffer
- ldr r1, _0802C010 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_0802C002:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C00C: .4byte gBattleExecBuffer
-_0802C010: .4byte gBitTable
- thumb_func_end PlayerBufferExecCompleted
-
- thumb_func_start PlayerBufferRunCommand
-PlayerBufferRunCommand: @ 802C014
- push {lr}
- ldr r2, _0802C048 @ =gBattleExecBuffer
- ldr r1, _0802C04C @ =gBitTable
- ldr r0, _0802C050 @ =gActiveBank
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0802C060
- ldr r0, _0802C054 @ =gBattleBufferA
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _0802C05C
- ldr r0, _0802C058 @ =gPlayerBufferCommands
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _0802C060
- .align 2, 0
-_0802C048: .4byte gBattleExecBuffer
-_0802C04C: .4byte gBitTable
-_0802C050: .4byte gActiveBank
-_0802C054: .4byte gBattleBufferA
-_0802C058: .4byte gPlayerBufferCommands
-_0802C05C:
- bl PlayerBufferExecCompleted
-_0802C060:
- pop {r0}
- bx r0
- thumb_func_end PlayerBufferRunCommand
-
- thumb_func_start bx_0802E404
-bx_0802E404: @ 802C064
- push {lr}
- ldr r2, _0802C08C @ =gSprites
- ldr r1, _0802C090 @ =gObjectBankIDs
- ldr r0, _0802C094 @ =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0802C086
- bl PlayerBufferExecCompleted
-_0802C086:
- pop {r0}
- bx r0
- .align 2, 0
-_0802C08C: .4byte gSprites
-_0802C090: .4byte gObjectBankIDs
-_0802C094: .4byte gActiveBank
- thumb_func_end bx_0802E404
-
- thumb_func_start sub_802C098
-sub_802C098: @ 802C098
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _0802C0FC @ =gBattleBufferA
- ldr r4, _0802C100 @ =gActiveBank
- ldrb r0, [r4]
- lsls r2, r0, 9
- adds r1, r7, 0x2
- adds r1, r2, r1
- ldrb r5, [r1]
- adds r1, r7, 0x3
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r5, r1
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x1
- bl dp11b_obj_instanciate
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0x7
- movs r3, 0x1
- bl dp11b_obj_instanciate
- ldr r0, _0802C104 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0802C13E
- movs r0, 0x5
- bl PlaySE
- bl DestroyMenuCursor
- ldr r1, _0802C108 @ =gActionSelectionCursor
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0802C11C
- cmp r0, 0x1
- bgt _0802C10C
- cmp r0, 0
- beq _0802C116
- b _0802C138
- .align 2, 0
-_0802C0FC: .4byte gBattleBufferA
-_0802C100: .4byte gActiveBank
-_0802C104: .4byte gMain
-_0802C108: .4byte gActionSelectionCursor
-_0802C10C:
- cmp r0, 0x2
- beq _0802C122
- cmp r0, 0x3
- beq _0802C12E
- b _0802C138
-_0802C116:
- movs r0, 0x1
- movs r1, 0
- b _0802C126
-_0802C11C:
- movs r0, 0x1
- movs r1, 0x1
- b _0802C126
-_0802C122:
- movs r0, 0x1
- movs r1, 0x2
-_0802C126:
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- b _0802C138
-_0802C12E:
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_0802C138:
- bl PlayerBufferExecCompleted
- b _0802C2AC
-_0802C13E:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0802C178
- ldr r5, _0802C174 @ =gActionSelectionCursor
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0802C158
- b _0802C2AC
-_0802C158:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _0802C200
- .align 2, 0
-_0802C174: .4byte gActionSelectionCursor
-_0802C178:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802C1B0
- ldr r5, _0802C1AC @ =gActionSelectionCursor
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0802C192
- b _0802C2AC
-_0802C192:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _0802C200
- .align 2, 0
-_0802C1AC: .4byte gActionSelectionCursor
-_0802C1B0:
- movs r0, 0x40
- mov r8, r0
- ands r0, r1
- cmp r0, 0
- beq _0802C1D0
- ldr r5, _0802C1CC @ =gActionSelectionCursor
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C2AC
- b _0802C1E8
- .align 2, 0
-_0802C1CC: .4byte gActionSelectionCursor
-_0802C1D0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802C218
- ldr r5, _0802C214 @ =gActionSelectionCursor
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0802C2AC
-_0802C1E8:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x2
-_0802C200:
- eors r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
- b _0802C2AC
- .align 2, 0
-_0802C214: .4byte gActionSelectionCursor
-_0802C218:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C2A0
- ldr r6, _0802C294 @ =gBattleTypeFlags
- ldrh r1, [r6]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0802C2AC
- ldrb r0, [r4]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0802C2AC
- movs r0, 0
- bl GetBankByPlayerAI
- ldr r1, _0802C298 @ =gAbsentBankFlags
- ldrb r1, [r1]
- ldr r2, _0802C29C @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802C2AC
- ldrh r1, [r6]
- mov r0, r8
- ands r0, r1
- cmp r0, 0
- bne _0802C2AC
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, r7, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0802C278
- cmp r5, 0xC
- bhi _0802C2AC
- adds r0, r5, 0
- movs r1, 0x1
- bl AddBagItem
-_0802C278:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- bl PlayerBufferExecCompleted
- bl DestroyMenuCursor
- b _0802C2AC
- .align 2, 0
-_0802C294: .4byte gBattleTypeFlags
-_0802C298: .4byte gAbsentBankFlags
-_0802C29C: .4byte gBitTable
-_0802C2A0:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0802C2AC
- bl sub_804454C
-_0802C2AC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_802C098
-
- thumb_func_start unref_sub_802C2B8
-unref_sub_802C2B8: @ 802C2B8
- push {r4,lr}
- ldr r4, _0802C2E0 @ =gActiveBank
- ldrb r0, [r4]
- movs r1, 0x1
- bl dp11b_obj_free
- ldrb r0, [r4]
- movs r1, 0
- bl dp11b_obj_free
- ldr r1, _0802C2E4 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802C2E8 @ =sub_802C2EC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C2E0: .4byte gActiveBank
-_0802C2E4: .4byte gBattleBankFunc
-_0802C2E8: .4byte sub_802C2EC
- thumb_func_end unref_sub_802C2B8
-
- thumb_func_start sub_802C2EC
-sub_802C2EC: @ 802C2EC
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _0802C384 @ =gUnknown_081FAE7C
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- ldr r0, _0802C388 @ =gUnknown_03004344
- ldrb r0, [r0]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0x1
- bl dp11b_obj_instanciate
- movs r4, 0
- ldr r0, _0802C38C @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802C32E
-_0802C312:
- ldr r0, _0802C388 @ =gUnknown_03004344
- ldrb r0, [r0]
- cmp r4, r0
- beq _0802C324
- lsls r0, r4, 24
- lsrs r0, 24
- movs r1, 0x1
- bl dp11b_obj_free
-_0802C324:
- adds r4, 0x1
- ldr r0, _0802C38C @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _0802C312
-_0802C32E:
- ldr r0, _0802C390 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802C3A8
- bl DestroyMenuCursor
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0802C394 @ =gSprites
- ldr r1, _0802C398 @ =gObjectBankIDs
- ldr r4, _0802C388 @ =gUnknown_03004344
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C39C @ =sub_8010574
- str r1, [r0]
- ldr r1, _0802C3A0 @ =gMoveSelectionCursor
- ldr r0, _0802C3A4 @ =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldrb r0, [r4]
- lsls r0, 8
- orrs r2, r0
- movs r0, 0x1
- movs r1, 0xA
- bl dp01_build_cmdbuf_x21_a_bb
- ldrb r0, [r4]
- movs r1, 0x1
- bl dp11b_obj_free
- bl PlayerBufferExecCompleted
- b _0802C658
- .align 2, 0
-_0802C384: .4byte gUnknown_081FAE7C
-_0802C388: .4byte gUnknown_03004344
-_0802C38C: .4byte gNoOfAllBanks
-_0802C390: .4byte gMain
-_0802C394: .4byte gSprites
-_0802C398: .4byte gObjectBankIDs
-_0802C39C: .4byte sub_8010574
-_0802C3A0: .4byte gMoveSelectionCursor
-_0802C3A4: .4byte gActiveBank
-_0802C3A8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C41C
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0802C400 @ =gSprites
- ldr r1, _0802C404 @ =gObjectBankIDs
- ldr r5, _0802C408 @ =gUnknown_03004344
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C40C @ =sub_8010574
- str r1, [r0]
- ldr r1, _0802C410 @ =gBattleBankFunc
- ldr r4, _0802C414 @ =gActiveBank
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802C418 @ =sub_802C68C
- str r1, [r0]
- ldrb r0, [r4]
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x1
- bl dp11b_obj_instanciate
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0x7
- movs r3, 0x1
- bl dp11b_obj_instanciate
- ldrb r0, [r5]
- movs r1, 0x1
- bl dp11b_obj_free
- b _0802C658
- .align 2, 0
-_0802C400: .4byte gSprites
-_0802C404: .4byte gObjectBankIDs
-_0802C408: .4byte gUnknown_03004344
-_0802C40C: .4byte sub_8010574
-_0802C410: .4byte gBattleBankFunc
-_0802C414: .4byte gActiveBank
-_0802C418: .4byte sub_802C68C
-_0802C41C:
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- bne _0802C426
- b _0802C540
-_0802C426:
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0802C458 @ =gSprites
- ldr r1, _0802C45C @ =gObjectBankIDs
- ldr r3, _0802C460 @ =gUnknown_03004344
- ldrb r0, [r3]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C464 @ =sub_8010574
- str r1, [r0]
- adds r5, r3, 0
-_0802C448:
- ldrb r0, [r5]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r1, r0, 24
- movs r4, 0
- mov r0, sp
- b _0802C472
- .align 2, 0
-_0802C458: .4byte gSprites
-_0802C45C: .4byte gObjectBankIDs
-_0802C460: .4byte gUnknown_03004344
-_0802C464: .4byte sub_8010574
-_0802C468:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _0802C478
- mov r2, sp
- adds r0, r2, r4
-_0802C472:
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802C468
-_0802C478:
- subs r4, 0x1
- cmp r4, 0
- bge _0802C480
- movs r4, 0x3
-_0802C480:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- bl GetBankByPlayerAI
- strb r0, [r5]
- ldr r1, _0802C4B4 @ =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- beq _0802C478
- movs r4, 0
- ldrb r0, [r5]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0802C4FE
- cmp r0, 0x1
- bgt _0802C4B8
- cmp r0, 0
- beq _0802C4C2
- b _0802C500
- .align 2, 0
-_0802C4B4: .4byte gNoOfAllBanks
-_0802C4B8:
- cmp r0, 0x2
- beq _0802C4C2
- cmp r0, 0x3
- beq _0802C4FE
- b _0802C500
-_0802C4C2:
- ldr r2, _0802C520 @ =gActiveBank
- ldrb r0, [r2]
- ldrb r1, [r5]
- cmp r0, r1
- bne _0802C4FE
- ldr r1, _0802C524 @ =gBattlePartyID
- ldrb r2, [r2]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802C528 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802C52C @ =gMoveSelectionCursor
- adds r2, r1
- ldrb r1, [r2]
- adds r1, 0xD
- bl GetMonData
- ldr r2, _0802C530 @ =gBattleMoves
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x6]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C500
-_0802C4FE:
- adds r4, 0x1
-_0802C500:
- ldr r0, _0802C534 @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _0802C538 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- ldr r0, _0802C53C @ =gUnknown_03004344
- cmp r1, 0
- beq _0802C518
- movs r4, 0
-_0802C518:
- cmp r4, 0
- beq _0802C448
- b _0802C640
- .align 2, 0
-_0802C520: .4byte gActiveBank
-_0802C524: .4byte gBattlePartyID
-_0802C528: .4byte gPlayerParty
-_0802C52C: .4byte gMoveSelectionCursor
-_0802C530: .4byte gBattleMoves
-_0802C534: .4byte gAbsentBankFlags
-_0802C538: .4byte gBitTable
-_0802C53C: .4byte gUnknown_03004344
-_0802C540:
- movs r0, 0x90
- ands r0, r1
- cmp r0, 0
- bne _0802C54A
- b _0802C658
-_0802C54A:
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0802C57C @ =gSprites
- ldr r1, _0802C580 @ =gObjectBankIDs
- ldr r3, _0802C584 @ =gUnknown_03004344
- ldrb r0, [r3]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C588 @ =sub_8010574
- str r1, [r0]
- adds r5, r3, 0
-_0802C56C:
- ldrb r0, [r5]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r1, r0, 24
- movs r4, 0
- mov r0, sp
- b _0802C596
- .align 2, 0
-_0802C57C: .4byte gSprites
-_0802C580: .4byte gObjectBankIDs
-_0802C584: .4byte gUnknown_03004344
-_0802C588: .4byte sub_8010574
-_0802C58C:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _0802C59C
- mov r2, sp
- adds r0, r2, r4
-_0802C596:
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802C58C
-_0802C59C:
- adds r4, 0x1
- cmp r4, 0x3
- ble _0802C5A4
- movs r4, 0
-_0802C5A4:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- bl GetBankByPlayerAI
- strb r0, [r5]
- ldr r1, _0802C5D8 @ =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- beq _0802C59C
- movs r4, 0
- ldrb r0, [r5]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0802C622
- cmp r0, 0x1
- bgt _0802C5DC
- cmp r0, 0
- beq _0802C5E6
- b _0802C624
- .align 2, 0
-_0802C5D8: .4byte gNoOfAllBanks
-_0802C5DC:
- cmp r0, 0x2
- beq _0802C5E6
- cmp r0, 0x3
- beq _0802C622
- b _0802C624
-_0802C5E6:
- ldr r2, _0802C660 @ =gActiveBank
- ldrb r0, [r2]
- ldrb r1, [r5]
- cmp r0, r1
- bne _0802C622
- ldr r1, _0802C664 @ =gBattlePartyID
- ldrb r2, [r2]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802C668 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802C66C @ =gMoveSelectionCursor
- adds r2, r1
- ldrb r1, [r2]
- adds r1, 0xD
- bl GetMonData
- ldr r2, _0802C670 @ =gBattleMoves
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x6]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C624
-_0802C622:
- adds r4, 0x1
-_0802C624:
- ldr r0, _0802C674 @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _0802C678 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- ldr r0, _0802C67C @ =gUnknown_03004344
- cmp r1, 0
- beq _0802C63C
- movs r4, 0
-_0802C63C:
- cmp r4, 0
- beq _0802C56C
-_0802C640:
- ldr r2, _0802C680 @ =gSprites
- ldr r1, _0802C684 @ =gObjectBankIDs
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C688 @ =sub_8010520
- str r1, [r0]
-_0802C658:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C660: .4byte gActiveBank
-_0802C664: .4byte gBattlePartyID
-_0802C668: .4byte gPlayerParty
-_0802C66C: .4byte gMoveSelectionCursor
-_0802C670: .4byte gBattleMoves
-_0802C674: .4byte gAbsentBankFlags
-_0802C678: .4byte gBitTable
-_0802C67C: .4byte gUnknown_03004344
-_0802C680: .4byte gSprites
-_0802C684: .4byte gObjectBankIDs
-_0802C688: .4byte sub_8010520
- thumb_func_end sub_802C2EC
-
- thumb_func_start sub_802C68C
-sub_802C68C: @ 802C68C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r0, 0
- mov r8, r0
- ldr r7, _0802C6E4 @ =gActiveBank
- ldrb r2, [r7]
- lsls r0, r2, 9
- ldr r1, _0802C6E8 @ =gUnknown_02023A64
- adds r6, r0, r1
- ldr r0, _0802C6EC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r5, 0x1
- adds r4, r5, 0
- ands r4, r1
- cmp r4, 0
- bne _0802C6B2
- b _0802C864
-_0802C6B2:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802C6F0 @ =gMoveSelectionCursor
- ldrb r0, [r7]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r1, r6, r0
- ldrh r0, [r1]
- cmp r0, 0xAE
- bne _0802C6F4
- ldrb r0, [r6, 0x12]
- movs r4, 0
- cmp r0, 0x7
- beq _0802C702
- ldrb r1, [r6, 0x13]
- movs r0, 0x7
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- asrs r4, r0, 31
- movs r0, 0x10
- ands r4, r0
- b _0802C702
- .align 2, 0
-_0802C6E4: .4byte gActiveBank
-_0802C6E8: .4byte gUnknown_02023A64
-_0802C6EC: .4byte gMain
-_0802C6F0: .4byte gMoveSelectionCursor
-_0802C6F4:
- ldr r2, _0802C714 @ =gBattleMoves
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r4, [r0, 0x6]
-_0802C702:
- movs r0, 0x10
- ands r0, r4
- cmp r0, 0
- beq _0802C720
- ldr r0, _0802C718 @ =gUnknown_03004344
- ldr r1, _0802C71C @ =gActiveBank
- ldrb r1, [r1]
- strb r1, [r0]
- b _0802C73A
- .align 2, 0
-_0802C714: .4byte gBattleMoves
-_0802C718: .4byte gUnknown_03004344
-_0802C71C: .4byte gActiveBank
-_0802C720:
- ldr r0, _0802C764 @ =gActiveBank
- ldrb r0, [r0]
- bl GetBankIdentity
- adds r1, r0, 0
- movs r2, 0x1
- movs r0, 0x1
- ands r0, r1
- eors r0, r2
- bl GetBankByPlayerAI
- ldr r1, _0802C768 @ =gUnknown_03004344
- strb r0, [r1]
-_0802C73A:
- ldr r3, _0802C76C @ =gBattleBufferA
- ldr r5, _0802C764 @ =gActiveBank
- ldrb r2, [r5]
- lsls r1, r2, 9
- adds r0, r3, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802C770
- movs r0, 0x2
- ands r0, r4
- cmp r0, 0
- beq _0802C7B2
- adds r0, r3, 0x2
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802C7B2
- movs r2, 0x1
- add r8, r2
- b _0802C7B2
- .align 2, 0
-_0802C764: .4byte gActiveBank
-_0802C768: .4byte gUnknown_03004344
-_0802C76C: .4byte gBattleBufferA
-_0802C770:
- movs r0, 0x7D
- ands r0, r4
- cmp r0, 0
- bne _0802C77C
- movs r0, 0x1
- add r8, r0
-_0802C77C:
- ldr r0, _0802C7D0 @ =gMoveSelectionCursor
- adds r0, r2, r0
- adds r1, r6, 0
- adds r1, 0x8
- ldrb r0, [r0]
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0802C7B8
- movs r0, 0x12
- ands r0, r4
- cmp r0, 0
- bne _0802C7B2
- movs r0, 0
- bl CountAliveMons
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0802C7B2
- ldrb r0, [r5]
- bl sub_803C434
- ldr r1, _0802C7D4 @ =gUnknown_03004344
- strb r0, [r1]
- movs r2, 0
- mov r8, r2
-_0802C7B2:
- mov r0, r8
- cmp r0, 0
- bne _0802C7DC
-_0802C7B8:
- bl DestroyMenuCursor
- ldr r1, _0802C7D0 @ =gMoveSelectionCursor
- ldr r0, _0802C7D8 @ =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r0, _0802C7D4 @ =gUnknown_03004344
- ldrb r0, [r0]
- lsls r0, 8
- orrs r2, r0
- b _0802C888
- .align 2, 0
-_0802C7D0: .4byte gMoveSelectionCursor
-_0802C7D4: .4byte gUnknown_03004344
-_0802C7D8: .4byte gActiveBank
-_0802C7DC:
- ldr r1, _0802C7F8 @ =gBattleBankFunc
- ldr r2, _0802C7FC @ =gActiveBank
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802C800 @ =sub_802C2EC
- str r1, [r0]
- movs r0, 0x12
- ands r4, r0
- cmp r4, 0
- beq _0802C808
- ldr r1, _0802C804 @ =gUnknown_03004344
- ldrb r0, [r2]
- b _0802C838
- .align 2, 0
-_0802C7F8: .4byte gBattleBankFunc
-_0802C7FC: .4byte gActiveBank
-_0802C800: .4byte sub_802C2EC
-_0802C804: .4byte gUnknown_03004344
-_0802C808:
- movs r0, 0x1
- bl GetBankByPlayerAI
- ldr r1, _0802C828 @ =gAbsentBankFlags
- ldrb r1, [r1]
- ldr r2, _0802C82C @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0802C830
- movs r0, 0x3
- b _0802C832
- .align 2, 0
-_0802C828: .4byte gAbsentBankFlags
-_0802C82C: .4byte gBitTable
-_0802C830:
- movs r0, 0x1
-_0802C832:
- bl GetBankByPlayerAI
- ldr r1, _0802C854 @ =gUnknown_03004344
-_0802C838:
- strb r0, [r1]
- ldr r2, _0802C858 @ =gSprites
- ldr r1, _0802C85C @ =gObjectBankIDs
- ldr r0, _0802C854 @ =gUnknown_03004344
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C860 @ =sub_8010520
- b _0802CA36
- .align 2, 0
-_0802C854: .4byte gUnknown_03004344
-_0802C858: .4byte gSprites
-_0802C85C: .4byte gObjectBankIDs
-_0802C860: .4byte sub_8010520
-_0802C864:
- movs r6, 0x2
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0802C8A4
- bl DestroyMenuCursor
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0802C898 @ =gUnknown_030042A4
- strh r4, [r0]
- ldr r1, _0802C89C @ =gUnknown_030042A0
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _0802C8A0 @ =0x0000ffff
-_0802C888:
- movs r0, 0x1
- movs r1, 0xA
- bl dp01_build_cmdbuf_x21_a_bb
- bl PlayerBufferExecCompleted
- b _0802CA38
- .align 2, 0
-_0802C898: .4byte gUnknown_030042A4
-_0802C89C: .4byte gUnknown_030042A0
-_0802C8A0: .4byte 0x0000ffff
-_0802C8A4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0802C8D4
- ldr r4, _0802C8D0 @ =gMoveSelectionCursor
- adds r2, r4
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _0802C8BC
- b _0802CA38
-_0802C8BC:
- ldrb r0, [r2]
- bl nullsub_7
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- movs r2, 0x1
- eors r0, r2
- b _0802C976
- .align 2, 0
-_0802C8D0: .4byte gMoveSelectionCursor
-_0802C8D4:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802C914
- ldr r4, _0802C90C @ =gMoveSelectionCursor
- adds r3, r2, r4
- ldrb r2, [r3]
- movs r6, 0x1
- adds r0, r5, 0
- ands r0, r2
- cmp r0, 0
- beq _0802C8EE
- b _0802CA38
-_0802C8EE:
- ldr r1, _0802C910 @ =gUnknown_03004348
- adds r0, r6, 0
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0802C8FC
- b _0802CA38
-_0802C8FC:
- ldrb r0, [r3]
- bl nullsub_7
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- eors r0, r6
- b _0802C976
- .align 2, 0
-_0802C90C: .4byte gMoveSelectionCursor
-_0802C910: .4byte gUnknown_03004348
-_0802C914:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802C944
- ldr r4, _0802C940 @ =gMoveSelectionCursor
- adds r2, r4
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _0802C92C
- b _0802CA38
-_0802C92C:
- ldrb r0, [r2]
- bl nullsub_7
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- movs r2, 0x2
- eors r0, r2
- b _0802C976
- .align 2, 0
-_0802C940: .4byte gMoveSelectionCursor
-_0802C944:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802C99C
- ldr r4, _0802C994 @ =gMoveSelectionCursor
- adds r3, r2, r4
- ldrb r2, [r3]
- movs r5, 0x2
- adds r0, r6, 0
- ands r0, r2
- cmp r0, 0
- bne _0802CA38
- ldr r1, _0802C998 @ =gUnknown_03004348
- adds r0, r5, 0
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0802CA38
- ldrb r0, [r3]
- bl nullsub_7
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- eors r0, r5
-_0802C976:
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3B4
- bl sub_802E220
- bl sub_802E2D4
- b _0802CA38
- .align 2, 0
-_0802C994: .4byte gMoveSelectionCursor
-_0802C998: .4byte gUnknown_03004348
-_0802C99C:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0802CA38
- ldr r0, _0802C9D8 @ =gUnknown_03004348
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0802CA38
- ldr r0, _0802C9DC @ =gBattleTypeFlags
- ldrh r1, [r0]
- adds r0, r6, 0
- ands r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- bne _0802CA38
- ldr r4, _0802C9E0 @ =gMoveSelectionCursor
- adds r0, r2, r4
- ldrb r0, [r0]
- ldr r1, _0802C9E4 @ =gUnknown_081FAE80
- bl sub_802E12C
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802C9EC
- ldr r0, _0802C9E8 @ =gUnknown_03004344
- strb r5, [r0]
- b _0802C9F4
- .align 2, 0
-_0802C9D8: .4byte gUnknown_03004348
-_0802C9DC: .4byte gBattleTypeFlags
-_0802C9E0: .4byte gMoveSelectionCursor
-_0802C9E4: .4byte gUnknown_081FAE80
-_0802C9E8: .4byte gUnknown_03004344
-_0802C9EC:
- ldr r1, _0802CA44 @ =gUnknown_03004344
- adds r0, 0x1
- strb r0, [r1]
- adds r0, r1, 0
-_0802C9F4:
- ldrb r0, [r0]
- movs r1, 0x1B
- bl sub_802E3B4
- ldr r4, _0802CA48 @ =gUnknown_03004210
- ldr r1, _0802CA4C @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x37
- bl FillWindowRect
- ldr r1, _0802CA50 @ =gUnknown_08400D89
- movs r2, 0xA4
- lsls r2, 2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x17
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0802CA54 @ =gBattleBankFunc
- ldr r0, _0802CA58 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802CA5C @ =sub_802CA60
-_0802CA36:
- str r1, [r0]
-_0802CA38:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802CA44: .4byte gUnknown_03004344
-_0802CA48: .4byte gUnknown_03004210
-_0802CA4C: .4byte 0x00001016
-_0802CA50: .4byte gUnknown_08400D89
-_0802CA54: .4byte gBattleBankFunc
-_0802CA58: .4byte gActiveBank
-_0802CA5C: .4byte sub_802CA60
- thumb_func_end sub_802C68C
-
- thumb_func_start sub_802CA60
-sub_802CA60: @ 802CA60
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- ldr r0, _0802CDEC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x5
- ands r0, r1
- cmp r0, 0
- bne _0802CA7A
- b _0802CE78
-_0802CA7A:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0802CDF0 @ =gMoveSelectionCursor
- mov r10, r0
- ldr r1, _0802CDF4 @ =gActiveBank
- mov r8, r1
- ldrb r1, [r1]
- adds r2, r1, r0
- ldr r5, _0802CDF8 @ =gUnknown_03004344
- ldrb r0, [r2]
- ldrb r3, [r5]
- cmp r0, r3
- bne _0802CA98
- b _0802CE14
-_0802CA98:
- lsls r1, 9
- ldr r0, _0802CDFC @ =gUnknown_02023A64
- adds r1, r0
- mov r9, r1
- ldrb r1, [r2]
- lsls r1, 1
- add r1, r9
- ldrh r6, [r1]
- ldrb r0, [r5]
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r1]
- ldrb r0, [r5]
- lsls r0, 1
- add r0, r9
- strh r6, [r0]
- mov r1, r8
- ldrb r0, [r1]
- add r0, r10
- ldrb r1, [r0]
- mov r7, r9
- adds r7, 0x8
- adds r1, r7, r1
- ldrb r6, [r1]
- ldrb r0, [r5]
- adds r0, r7, r0
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r5]
- adds r0, r7, r0
- strb r6, [r0]
- mov r2, r8
- ldrb r0, [r2]
- add r0, r10
- ldrb r1, [r0]
- mov r2, r9
- adds r2, 0xC
- adds r1, r2, r1
- ldrb r6, [r1]
- ldrb r0, [r5]
- adds r0, r2, r0
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r5]
- adds r2, r0
- strb r6, [r2]
- mov r3, r8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r2, _0802CE00 @ =gDisableStructs
- adds r6, r0, r2
- ldrb r4, [r6, 0x18]
- lsls r3, r4, 24
- lsrs r2, r3, 28
- ldr r0, _0802CE04 @ =gBitTable
- mov r12, r0
- add r1, r10
- ldrb r0, [r1]
- lsls r0, 2
- add r0, r12
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _0802CB52
- lsrs r1, r3, 28
- bics r1, r0
- lsls r1, 4
- movs r2, 0xF
- adds r0, r2, 0
- ands r0, r4
- orrs r0, r1
- strb r0, [r6, 0x18]
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r3, _0802CE00 @ =gDisableStructs
- adds r1, r3
- ldrb r4, [r1, 0x18]
- lsrs r3, r4, 4
- ldrb r0, [r5]
- lsls r0, 2
- add r0, r12
- ldr r0, [r0]
- orrs r0, r3
- lsls r0, 4
- ands r2, r4
- orrs r2, r0
- strb r2, [r1, 0x18]
-_0802CB52:
- bl sub_802E1B0
- movs r6, 0
- mov r12, r7
- mov r5, sp
- adds r5, 0x20
- str r5, [sp, 0x28]
- ldr r2, _0802CE08 @ =gBattleMons
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r4, r0, 0
- adds r4, 0x3B
- mov r7, r8
- mov r10, r2
- movs r5, 0x3
-_0802CB76:
- mov r3, sp
- adds r3, r6
- adds r3, 0x8
- ldrb r1, [r4]
- lsls r2, r6, 1
- adds r0, r5, 0
- lsls r0, r2
- ands r1, r0
- asrs r1, r2
- strb r1, [r3]
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CB76
- ldr r1, _0802CDF0 @ =gMoveSelectionCursor
- ldrb r0, [r7]
- adds r0, r1
- ldrb r0, [r0]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- ldr r2, [sp, 0x28]
- strb r0, [r2]
- ldrb r0, [r7]
- adds r0, r1
- ldrb r0, [r0]
- mov r2, sp
- adds r2, r0
- adds r2, 0x8
- ldr r1, _0802CDF8 @ =gUnknown_03004344
- ldrb r0, [r1]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- movs r3, 0
- strb r0, [r2]
- ldrb r0, [r1]
- mov r1, sp
- adds r1, r0
- adds r1, 0x8
- ldr r5, [sp, 0x28]
- ldrb r0, [r5]
- strb r0, [r1]
- strb r3, [r5]
- movs r6, 0
- ldr r2, [sp, 0x28]
-_0802CBD0:
- mov r0, sp
- adds r0, r6
- adds r0, 0x8
- ldrb r1, [r0]
- lsls r0, r6, 1
- lsls r1, r0
- ldrb r0, [r2]
- orrs r0, r1
- strb r0, [r2]
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CBD0
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r10
- adds r0, 0x3B
- ldr r2, [sp, 0x28]
- ldrb r1, [r2]
- strb r1, [r0]
- movs r6, 0
- adds r4, r7, 0
- movs r3, 0x58
- movs r5, 0x24
- add r5, r10
- mov r8, r5
- mov r2, r9
- mov r7, r10
- adds r7, 0xC
- mov r5, r12
-_0802CC0C:
- lsls r1, r6, 1
- ldrb r0, [r4]
- muls r0, r3
- adds r1, r0
- adds r1, r7
- ldrh r0, [r2]
- strh r0, [r1]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r3
- adds r1, r6, r1
- add r1, r8
- adds r0, r5, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CC0C
- ldr r2, _0802CDF4 @ =gActiveBank
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- mov r1, r10
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- beq _0802CC4E
- b _0802CE1C
-_0802CC4E:
- movs r6, 0
- mov r0, sp
- adds r0, 0xC
- str r0, [sp, 0x24]
- add r1, sp, 0x14
- mov r10, r1
- ldr r3, _0802CE0C @ =gBattlePartyID
- mov r9, r3
- mov r8, r2
- movs r7, 0x64
- ldr r5, _0802CE10 @ =gPlayerParty
- adds r4, r0, 0
-_0802CC66:
- mov r1, r8
- ldrb r0, [r1]
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- muls r0, r7
- adds r0, r5
- adds r1, r6, 0
- adds r1, 0xD
- bl GetMonData
- strh r0, [r4]
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- muls r0, r7
- adds r0, r5
- adds r1, r6, 0
- adds r1, 0x11
- bl GetMonData
- mov r3, r10
- adds r1, r3, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CC66
- ldr r1, _0802CE0C @ =gBattlePartyID
- ldr r0, _0802CDF4 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802CE10 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- ldr r5, [sp, 0x28]
- strb r0, [r5]
- movs r6, 0
- movs r5, 0x3
- ldr r4, [sp, 0x28]
-_0802CCC6:
- mov r3, sp
- adds r3, r6
- adds r3, 0x8
- lsls r2, r6, 1
- adds r1, r5, 0
- lsls r1, r2
- ldrb r0, [r4]
- ands r0, r1
- asrs r0, r2
- strb r0, [r3]
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CCC6
- ldr r4, _0802CDF0 @ =gMoveSelectionCursor
- ldr r3, _0802CDF4 @ =gActiveBank
- ldrb r0, [r3]
- adds r0, r4
- ldrb r1, [r0]
- lsls r1, 1
- ldr r0, [sp, 0x24]
- adds r1, r0, r1
- ldrh r6, [r1]
- ldr r2, _0802CDF8 @ =gUnknown_03004344
- ldrb r0, [r2]
- lsls r0, 1
- ldr r5, [sp, 0x24]
- adds r0, r5, r0
- ldrh r0, [r0]
- movs r5, 0
- strh r0, [r1]
- ldrb r0, [r2]
- lsls r0, 1
- ldr r1, [sp, 0x24]
- adds r0, r1, r0
- strh r6, [r0]
- ldrb r0, [r3]
- adds r0, r4
- ldrb r1, [r0]
- add r1, r10
- ldrb r6, [r1]
- ldrb r0, [r2]
- add r0, r10
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r2]
- add r0, r10
- strb r6, [r0]
- ldrb r0, [r3]
- adds r0, r4
- ldrb r0, [r0]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- ldr r1, [sp, 0x28]
- strb r0, [r1]
- ldrb r0, [r3]
- adds r0, r4
- ldrb r0, [r0]
- mov r1, sp
- adds r1, r0
- adds r1, 0x8
- ldrb r0, [r2]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r2]
- mov r1, sp
- adds r1, r0
- adds r1, 0x8
- ldr r2, [sp, 0x28]
- ldrb r0, [r2]
- strb r0, [r1]
- strb r5, [r2]
- movs r6, 0
- ldr r2, [sp, 0x28]
-_0802CD5E:
- mov r0, sp
- adds r0, r6
- adds r0, 0x8
- ldrb r1, [r0]
- lsls r0, r6, 1
- lsls r1, r0
- ldrb r0, [r2]
- orrs r0, r1
- strb r0, [r2]
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CD5E
- movs r6, 0
- ldr r3, _0802CE0C @ =gBattlePartyID
- mov r10, r3
- ldr r5, _0802CDF4 @ =gActiveBank
- mov r9, r5
- movs r0, 0x64
- mov r8, r0
- ldr r7, _0802CE10 @ =gPlayerParty
- ldr r5, [sp, 0x24]
- adds r5, 0x8
- ldr r4, [sp, 0x24]
-_0802CD8C:
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- add r0, r10
- ldrh r0, [r0]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- adds r1, r6, 0
- adds r1, 0xD
- adds r2, r4, 0
- bl SetMonData
- mov r3, r9
- ldrb r0, [r3]
- lsls r0, 1
- add r0, r10
- ldrh r0, [r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- adds r1, r6, 0
- adds r1, 0x11
- adds r2, r5, 0
- bl SetMonData
- adds r5, 0x1
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CD8C
- ldr r1, _0802CE0C @ =gBattlePartyID
- ldr r0, _0802CDF4 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802CE10 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- ldr r2, [sp, 0x28]
- bl SetMonData
- b _0802CE1C
- .align 2, 0
-_0802CDEC: .4byte gMain
-_0802CDF0: .4byte gMoveSelectionCursor
-_0802CDF4: .4byte gActiveBank
-_0802CDF8: .4byte gUnknown_03004344
-_0802CDFC: .4byte gUnknown_02023A64
-_0802CE00: .4byte gDisableStructs
-_0802CE04: .4byte gBitTable
-_0802CE08: .4byte gBattleMons
-_0802CE0C: .4byte gBattlePartyID
-_0802CE10: .4byte gPlayerParty
-_0802CE14:
- ldrb r0, [r5]
- ldr r1, _0802CF20 @ =gUnknown_08400D49
- bl sub_802E12C
-_0802CE1C:
- ldr r1, _0802CF24 @ =gBattleBankFunc
- ldr r2, _0802CF28 @ =gActiveBank
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802CF2C @ =sub_802C68C
- str r1, [r0]
- ldr r3, _0802CF30 @ =gMoveSelectionCursor
- ldrb r0, [r2]
- adds r0, r3
- ldr r1, _0802CF34 @ =gUnknown_03004344
- ldrb r1, [r1]
- strb r1, [r0]
- ldrb r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3B4
- ldr r4, _0802CF38 @ =gUnknown_03004210
- ldr r1, _0802CF3C @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x37
- bl FillWindowRect
- ldr r1, _0802CF40 @ =gUnknown_08400D38
- movs r2, 0xA4
- lsls r2, 2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x17
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- bl sub_802E220
- bl sub_802E2D4
-_0802CE78:
- ldr r6, _0802CF44 @ =gMain
- ldrh r1, [r6, 0x2E]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- beq _0802CEF0
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0802CF34 @ =gUnknown_03004344
- ldrb r0, [r0]
- bl nullsub_7
- ldr r5, _0802CF30 @ =gMoveSelectionCursor
- ldr r4, _0802CF28 @ =gActiveBank
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3B4
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- ldr r1, _0802CF20 @ =gUnknown_08400D49
- bl sub_802E12C
- ldr r1, _0802CF24 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802CF2C @ =sub_802C68C
- str r1, [r0]
- ldr r4, _0802CF38 @ =gUnknown_03004210
- ldr r1, _0802CF3C @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x37
- bl FillWindowRect
- ldr r1, _0802CF40 @ =gUnknown_08400D38
- movs r2, 0xA4
- lsls r2, 2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x17
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- bl sub_802E220
- bl sub_802E2D4
-_0802CEF0:
- ldrh r1, [r6, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0802CF8C
- ldr r3, _0802CF34 @ =gUnknown_03004344
- ldrb r2, [r3]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _0802CF8C
- ldr r0, _0802CF30 @ =gMoveSelectionCursor
- ldr r1, _0802CF28 @ =gActiveBank
- ldrb r1, [r1]
- adds r1, r0
- ldrb r5, [r1]
- cmp r2, r5
- bne _0802CF48
- ldrb r0, [r1]
- movs r1, 0x1D
- bl sub_802E3B4
- b _0802CF4E
- .align 2, 0
-_0802CF20: .4byte gUnknown_08400D49
-_0802CF24: .4byte gBattleBankFunc
-_0802CF28: .4byte gActiveBank
-_0802CF2C: .4byte sub_802C68C
-_0802CF30: .4byte gMoveSelectionCursor
-_0802CF34: .4byte gUnknown_03004344
-_0802CF38: .4byte gUnknown_03004210
-_0802CF3C: .4byte 0x00001016
-_0802CF40: .4byte gUnknown_08400D38
-_0802CF44: .4byte gMain
-_0802CF48:
- ldrb r0, [r3]
- bl nullsub_7
-_0802CF4E:
- ldr r4, _0802CF78 @ =gUnknown_03004344
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802CF7C @ =gMoveSelectionCursor
- ldr r0, _0802CF80 @ =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802CF84
- adds r0, r1, 0
- movs r1, 0
- bl sub_802E3B4
- b _0802CF8C
- .align 2, 0
-_0802CF78: .4byte gUnknown_03004344
-_0802CF7C: .4byte gMoveSelectionCursor
-_0802CF80: .4byte gActiveBank
-_0802CF84:
- ldrb r0, [r4]
- movs r1, 0x1B
- bl sub_802E3B4
-_0802CF8C:
- ldr r0, _0802CFC8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802D020
- ldr r3, _0802CFCC @ =gUnknown_03004344
- ldrb r2, [r3]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _0802D020
- ldr r1, _0802CFD0 @ =gUnknown_03004348
- movs r0, 0x1
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0802D020
- ldr r0, _0802CFD4 @ =gMoveSelectionCursor
- ldr r1, _0802CFD8 @ =gActiveBank
- ldrb r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- cmp r2, r0
- bne _0802CFDC
- ldrb r0, [r1]
- movs r1, 0x1D
- bl sub_802E3B4
- b _0802CFE2
- .align 2, 0
-_0802CFC8: .4byte gMain
-_0802CFCC: .4byte gUnknown_03004344
-_0802CFD0: .4byte gUnknown_03004348
-_0802CFD4: .4byte gMoveSelectionCursor
-_0802CFD8: .4byte gActiveBank
-_0802CFDC:
- ldrb r0, [r3]
- bl nullsub_7
-_0802CFE2:
- ldr r4, _0802D00C @ =gUnknown_03004344
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802D010 @ =gMoveSelectionCursor
- ldr r0, _0802D014 @ =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802D018
- adds r0, r1, 0
- movs r1, 0
- bl sub_802E3B4
- b _0802D020
- .align 2, 0
-_0802D00C: .4byte gUnknown_03004344
-_0802D010: .4byte gMoveSelectionCursor
-_0802D014: .4byte gActiveBank
-_0802D018:
- ldrb r0, [r4]
- movs r1, 0x1B
- bl sub_802E3B4
-_0802D020:
- ldr r0, _0802D050 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802D0A4
- ldr r3, _0802D054 @ =gUnknown_03004344
- ldrb r2, [r3]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0802D0A4
- ldr r0, _0802D058 @ =gMoveSelectionCursor
- ldr r1, _0802D05C @ =gActiveBank
- ldrb r1, [r1]
- adds r1, r0
- ldrb r5, [r1]
- cmp r2, r5
- bne _0802D060
- ldrb r0, [r1]
- movs r1, 0x1D
- bl sub_802E3B4
- b _0802D066
- .align 2, 0
-_0802D050: .4byte gMain
-_0802D054: .4byte gUnknown_03004344
-_0802D058: .4byte gMoveSelectionCursor
-_0802D05C: .4byte gActiveBank
-_0802D060:
- ldrb r0, [r3]
- bl nullsub_7
-_0802D066:
- ldr r4, _0802D090 @ =gUnknown_03004344
- ldrb r0, [r4]
- movs r1, 0x2
- eors r0, r1
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802D094 @ =gMoveSelectionCursor
- ldr r0, _0802D098 @ =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802D09C
- adds r0, r1, 0
- movs r1, 0
- bl sub_802E3B4
- b _0802D0A4
- .align 2, 0
-_0802D090: .4byte gUnknown_03004344
-_0802D094: .4byte gMoveSelectionCursor
-_0802D098: .4byte gActiveBank
-_0802D09C:
- ldrb r0, [r4]
- movs r1, 0x1B
- bl sub_802E3B4
-_0802D0A4:
- ldr r0, _0802D0E0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802D138
- ldr r3, _0802D0E4 @ =gUnknown_03004344
- ldrb r2, [r3]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- bne _0802D138
- ldr r1, _0802D0E8 @ =gUnknown_03004348
- movs r0, 0x2
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0802D138
- ldr r0, _0802D0EC @ =gMoveSelectionCursor
- ldr r1, _0802D0F0 @ =gActiveBank
- ldrb r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- cmp r2, r0
- bne _0802D0F4
- ldrb r0, [r1]
- movs r1, 0x1D
- bl sub_802E3B4
- b _0802D0FA
- .align 2, 0
-_0802D0E0: .4byte gMain
-_0802D0E4: .4byte gUnknown_03004344
-_0802D0E8: .4byte gUnknown_03004348
-_0802D0EC: .4byte gMoveSelectionCursor
-_0802D0F0: .4byte gActiveBank
-_0802D0F4:
- ldrb r0, [r3]
- bl nullsub_7
-_0802D0FA:
- ldr r4, _0802D124 @ =gUnknown_03004344
- ldrb r0, [r4]
- movs r1, 0x2
- eors r0, r1
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802D128 @ =gMoveSelectionCursor
- ldr r0, _0802D12C @ =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802D130
- adds r0, r1, 0
- movs r1, 0
- bl sub_802E3B4
- b _0802D138
- .align 2, 0
-_0802D124: .4byte gUnknown_03004344
-_0802D128: .4byte gMoveSelectionCursor
-_0802D12C: .4byte gActiveBank
-_0802D130:
- ldrb r0, [r4]
- movs r1, 0x1B
- bl sub_802E3B4
-_0802D138:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_802CA60
-
- thumb_func_start sub_802D148
-sub_802D148: @ 802D148
- push {lr}
- ldr r0, _0802D178 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802D174
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r3, _0802D17C @ =gMain
- ldr r0, _0802D180 @ =0x0000043d
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _0802D184 @ =gPreBattleCallback1
- ldr r0, [r0]
- str r0, [r3]
- ldr r0, _0802D188 @ =c2_8011A1C
- bl SetMainCallback2
-_0802D174:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D178: .4byte gReceivedRemoteLinkPlayers
-_0802D17C: .4byte gMain
-_0802D180: .4byte 0x0000043d
-_0802D184: .4byte gPreBattleCallback1
-_0802D188: .4byte c2_8011A1C
- thumb_func_end sub_802D148
-
- thumb_func_start sub_802D18C
-sub_802D18C: @ 802D18C
- push {lr}
- ldr r0, _0802D1BC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802D1F2
- ldr r0, _0802D1C0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802D1D0
- bl sub_800832C
- ldr r1, _0802D1C4 @ =gBattleBankFunc
- ldr r0, _0802D1C8 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802D1CC @ =sub_802D148
- str r1, [r0]
- b _0802D1F2
- .align 2, 0
-_0802D1BC: .4byte gPaletteFade
-_0802D1C0: .4byte gBattleTypeFlags
-_0802D1C4: .4byte gBattleBankFunc
-_0802D1C8: .4byte gActiveBank
-_0802D1CC: .4byte sub_802D148
-_0802D1D0:
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r2, _0802D1F8 @ =gMain
- ldr r0, _0802D1FC @ =0x0000043d
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _0802D200 @ =gPreBattleCallback1
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_0802D1F2:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D1F8: .4byte gMain
-_0802D1FC: .4byte 0x0000043d
-_0802D200: .4byte gPreBattleCallback1
- thumb_func_end sub_802D18C
-
- thumb_func_start sub_802D204
-sub_802D204: @ 802D204
- push {lr}
- ldr r2, _0802D22C @ =gSprites
- ldr r1, _0802D230 @ =gObjectBankIDs
- ldr r0, _0802D234 @ =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0802D238 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D228
- bl PlayerBufferExecCompleted
-_0802D228:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D22C: .4byte gSprites
-_0802D230: .4byte gObjectBankIDs
-_0802D234: .4byte gActiveBank
-_0802D238: .4byte SpriteCallbackDummy
- thumb_func_end sub_802D204
-
- thumb_func_start sub_802D23C
-sub_802D23C: @ 802D23C
- push {lr}
- ldr r2, _0802D264 @ =gSprites
- ldr r1, _0802D268 @ =gObjectBankIDs
- ldr r0, _0802D26C @ =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0802D270 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D260
- bl PlayerBufferExecCompleted
-_0802D260:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D264: .4byte gSprites
-_0802D268: .4byte gObjectBankIDs
-_0802D26C: .4byte gActiveBank
-_0802D270: .4byte SpriteCallbackDummy
- thumb_func_end sub_802D23C
-
- thumb_func_start sub_802D274
-sub_802D274: @ 802D274
- push {r4-r6,lr}
- ldr r6, _0802D2CC @ =gSprites
- ldr r5, _0802D2D0 @ =gObjectBankIDs
- ldr r4, _0802D2D4 @ =gActiveBank
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _0802D2D8 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D2C6
- ldr r0, _0802D2DC @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- bl nullsub_10
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl FreeSpriteOamMatrix
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- bl PlayerBufferExecCompleted
-_0802D2C6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D2CC: .4byte gSprites
-_0802D2D0: .4byte gObjectBankIDs
-_0802D2D4: .4byte gActiveBank
-_0802D2D8: .4byte SpriteCallbackDummy
-_0802D2DC: .4byte gSaveBlock2
- thumb_func_end sub_802D274
-
- thumb_func_start sub_802D2E0
-sub_802D2E0: @ 802D2E0
- push {lr}
- ldr r3, _0802D314 @ =gActiveBank
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _0802D318 @ =0x02017810
- adds r1, r2
- ldrb r0, [r1, 0x9]
- subs r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0802D310
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strb r0, [r1, 0x9]
- bl PlayerBufferExecCompleted
-_0802D310:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D314: .4byte gActiveBank
-_0802D318: .4byte 0x02017810
- thumb_func_end sub_802D2E0
-
- thumb_func_start sub_802D31C
-sub_802D31C: @ 802D31C
- push {r4-r7,lr}
- movs r6, 0
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _0802D340
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _0802D374
- ldr r0, _0802D360 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802D374
-_0802D340:
- ldr r2, _0802D364 @ =gSprites
- ldr r1, _0802D368 @ =gHealthboxIDs
- ldr r0, _0802D36C @ =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0802D370 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D3AA
- b _0802D3A8
- .align 2, 0
-_0802D360: .4byte gBattleTypeFlags
-_0802D364: .4byte gSprites
-_0802D368: .4byte gHealthboxIDs
-_0802D36C: .4byte gActiveBank
-_0802D370: .4byte SpriteCallbackDummy
-_0802D374:
- ldr r2, _0802D45C @ =gSprites
- ldr r5, _0802D460 @ =gHealthboxIDs
- ldr r0, _0802D464 @ =gActiveBank
- ldrb r3, [r0]
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r4, [r0]
- ldr r0, _0802D468 @ =SpriteCallbackDummy
- cmp r4, r0
- bne _0802D3AA
- movs r0, 0x2
- eors r3, r0
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, r4
- bne _0802D3AA
-_0802D3A8:
- movs r6, 0x1
-_0802D3AA:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _0802D3B6
- movs r6, 0
-_0802D3B6:
- cmp r6, 0
- bne _0802D3BC
- b _0802D4DA
-_0802D3BC:
- ldr r7, _0802D464 @ =gActiveBank
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r5, _0802D46C @ =0x02017810
- adds r4, r0, r5
- ldrb r1, [r4, 0x1]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0802D3D8
- b _0802D4DA
-_0802D3D8:
- movs r6, 0x2
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0802D4DA
- ldrb r1, [r4]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldr r4, _0802D470 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r0, _0802D474 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802D47C
- ldr r0, _0802D478 @ =gMPlay_BGM
- bl m4aMPlayContinue
- b _0802D488
- .align 2, 0
-_0802D45C: .4byte gSprites
-_0802D460: .4byte gHealthboxIDs
-_0802D464: .4byte gActiveBank
-_0802D468: .4byte SpriteCallbackDummy
-_0802D46C: .4byte 0x02017810
-_0802D470: .4byte 0x000027f9
-_0802D474: .4byte gBattleTypeFlags
-_0802D478: .4byte gMPlay_BGM
-_0802D47C:
- ldr r0, _0802D4E0 @ =gMPlay_BGM
- ldr r1, _0802D4E4 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_0802D488:
- ldr r7, _0802D4E8 @ =gBattlePartyID
- ldr r4, _0802D4EC @ =gActiveBank
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0802D4F0 @ =gPlayerParty
- adds r0, r5
- bl sub_80324F8
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _0802D4BE
- ldrb r0, [r4]
- movs r1, 0x2
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- bl sub_80324F8
-_0802D4BE:
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802D4F4 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x9]
- ldr r1, _0802D4F8 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802D4FC @ =sub_802D2E0
- str r1, [r0]
-_0802D4DA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D4E0: .4byte gMPlay_BGM
-_0802D4E4: .4byte 0x0000ffff
-_0802D4E8: .4byte gBattlePartyID
-_0802D4EC: .4byte gActiveBank
-_0802D4F0: .4byte gPlayerParty
-_0802D4F4: .4byte 0x02017810
-_0802D4F8: .4byte gBattleBankFunc
-_0802D4FC: .4byte sub_802D2E0
- thumb_func_end sub_802D31C
-
- thumb_func_start sub_802D500
-sub_802D500: @ 802D500
- push {r4-r7,lr}
- ldr r5, _0802D654 @ =gActiveBank
- ldrb r2, [r5]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r4, _0802D658 @ =0x02017810
- adds r0, r4
- ldrb r1, [r0]
- movs r7, 0x88
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _0802D530
- ldr r0, _0802D65C @ =gBattlePartyID
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0802D660 @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_0802D530:
- ldrb r0, [r5]
- movs r6, 0x2
- adds r2, r6, 0
- eors r2, r0
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _0802D55E
- ldr r0, _0802D65C @ =gBattlePartyID
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0802D660 @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_0802D55E:
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r3, 0x8
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0802D64C
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0802D64C
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _0802D5EE
- ldr r0, _0802D664 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802D5EE
- ldr r1, _0802D668 @ =gUnknown_0300434C
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802D66C @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r4, _0802D670 @ =gHealthboxIDs
- ldrb r0, [r5]
- adds r1, r6, 0
- eors r1, r0
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _0802D65C @ =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0802D660 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- eors r0, r6
- bl sub_804777C
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
-_0802D5EE:
- ldr r1, _0802D668 @ =gUnknown_0300434C
- ldr r4, _0802D654 @ =gActiveBank
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802D66C @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r5, _0802D670 @ =gHealthboxIDs
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _0802D65C @ =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0802D660 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- ldr r2, _0802D674 @ =0x02017840
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _0802D678 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802D67C @ =sub_802D31C
- str r1, [r0]
-_0802D64C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D654: .4byte gActiveBank
-_0802D658: .4byte 0x02017810
-_0802D65C: .4byte gBattlePartyID
-_0802D660: .4byte gPlayerParty
-_0802D664: .4byte gBattleTypeFlags
-_0802D668: .4byte gUnknown_0300434C
-_0802D66C: .4byte gSprites
-_0802D670: .4byte gHealthboxIDs
-_0802D674: .4byte 0x02017840
-_0802D678: .4byte gBattleBankFunc
-_0802D67C: .4byte sub_802D31C
- thumb_func_end sub_802D500
-
- thumb_func_start sub_802D680
-sub_802D680: @ 802D680
- push {r4-r6,lr}
- ldr r2, _0802D710 @ =gSprites
- ldr r0, _0802D714 @ =gHealthboxIDs
- ldr r6, _0802D718 @ =gActiveBank
- ldrb r3, [r6]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0802D71C @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D708
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r5, _0802D720 @ =0x02017810
- adds r2, r0, r5
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802D708
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r6]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _0802D724 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldrb r2, [r6]
- lsls r0, r2, 2
- adds r1, r5, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0802D6FC
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_0802D6FC:
- ldr r0, _0802D728 @ =gBattleBankFunc
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0802D72C @ =sub_802D730
- str r0, [r1]
-_0802D708:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D710: .4byte gSprites
-_0802D714: .4byte gHealthboxIDs
-_0802D718: .4byte gActiveBank
-_0802D71C: .4byte SpriteCallbackDummy
-_0802D720: .4byte 0x02017810
-_0802D724: .4byte 0x000027f9
-_0802D728: .4byte gBattleBankFunc
-_0802D72C: .4byte sub_802D730
- thumb_func_end sub_802D680
-
- thumb_func_start sub_802D730
-sub_802D730: @ 802D730
- push {r4,lr}
- ldr r4, _0802D780 @ =gActiveBank
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802D784 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802D77A
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- bne _0802D77A
- ldr r0, _0802D788 @ =gMPlay_BGM
- ldr r1, _0802D78C @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- ldr r2, _0802D790 @ =gBattlePartyID
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802D794 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- bl PlayerBufferExecCompleted
-_0802D77A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D780: .4byte gActiveBank
-_0802D784: .4byte 0x02017810
-_0802D788: .4byte gMPlay_BGM
-_0802D78C: .4byte 0x0000ffff
-_0802D790: .4byte gBattlePartyID
-_0802D794: .4byte gPlayerParty
- thumb_func_end sub_802D730
-
- thumb_func_start sub_802D798
-sub_802D798: @ 802D798
- push {r4-r6,lr}
- ldr r5, _0802D844 @ =gActiveBank
- ldrb r2, [r5]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r6, _0802D848 @ =0x02017810
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _0802D7C6
- ldr r0, _0802D84C @ =gBattlePartyID
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0802D850 @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_0802D7C6:
- ldr r4, _0802D854 @ =gSprites
- ldr r0, _0802D858 @ =gUnknown_0300434C
- ldrb r2, [r5]
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r3, r0
- ldr r1, [r0]
- ldr r0, _0802D85C @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D83C
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0802D83C
- adds r0, r3, r4
- bl DestroySprite
- ldr r4, _0802D860 @ =gHealthboxIDs
- ldrb r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _0802D84C @ =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0802D850 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- bl sub_804777C
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r0, [r5]
- bl sub_8031F88
- ldr r1, _0802D864 @ =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802D868 @ =sub_802D680
- str r1, [r0]
-_0802D83C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D844: .4byte gActiveBank
-_0802D848: .4byte 0x02017810
-_0802D84C: .4byte gBattlePartyID
-_0802D850: .4byte gPlayerParty
-_0802D854: .4byte gSprites
-_0802D858: .4byte gUnknown_0300434C
-_0802D85C: .4byte SpriteCallbackDummy
-_0802D860: .4byte gHealthboxIDs
-_0802D864: .4byte gBattleBankFunc
-_0802D868: .4byte sub_802D680
- thumb_func_end sub_802D798
-
- thumb_func_start c3_0802FDF4
-c3_0802FDF4: @ 802D86C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- bne _0802D88E
- ldr r0, _0802D894 @ =gMPlay_BGM
- ldr r1, _0802D898 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- adds r0, r4, 0
- bl DestroyTask
-_0802D88E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D894: .4byte gMPlay_BGM
-_0802D898: .4byte 0x0000ffff
- thumb_func_end c3_0802FDF4
-
- thumb_func_start bx_t1_healthbar_update
-bx_t1_healthbar_update: @ 802D89C
- push {r4-r6,lr}
- ldr r5, _0802D8DC @ =gActiveBank
- ldrb r0, [r5]
- ldr r6, _0802D8E0 @ =gHealthboxIDs
- adds r1, r0, r6
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- bl sub_8043DFC
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0802D8E4
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- movs r2, 0
- bl sub_80440EC
- b _0802D8FE
- .align 2, 0
-_0802D8DC: .4byte gActiveBank
-_0802D8E0: .4byte gHealthboxIDs
-_0802D8E4:
- ldr r2, _0802D904 @ =gBattlePartyID
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802D908 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- bl PlayerBufferExecCompleted
-_0802D8FE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D904: .4byte gBattlePartyID
-_0802D908: .4byte gPlayerParty
- thumb_func_end bx_t1_healthbar_update
-
- thumb_func_start sub_802D90C
-sub_802D90C: @ 802D90C
- push {lr}
- ldr r0, _0802D920 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _0802D91A
- bl PlayerBufferExecCompleted
-_0802D91A:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D920: .4byte gUnknown_03004210
- thumb_func_end sub_802D90C
-
- thumb_func_start sub_802D924
-sub_802D924: @ 802D924
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _0802DA24 @ =gTasks
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- mov r8, r0
- ldrb r0, [r0, 0x8]
- mov r10, r0
- mov r1, r8
- ldrb r7, [r1, 0xC]
- str r7, [sp, 0x8]
- ldrh r2, [r1, 0xA]
- str r2, [sp, 0xC]
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0802D96A
- ldr r1, _0802DA28 @ =gBattlePartyID
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r10, r0
- bne _0802D96A
- b _0802DA80
-_0802D96A:
- movs r0, 0x64
- mov r1, r10
- muls r1, r0
- ldr r0, _0802DA2C @ =gPlayerParty
- adds r6, r1, r0
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x4]
- ldr r3, _0802DA30 @ =gExperienceTables
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _0802DA34 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x13]
- movs r1, 0xCA
- lsls r1, 1
- muls r1, r2
- adds r4, r1
- adds r4, r3
- ldr r2, [r4]
- str r2, [sp]
- ldr r3, [sp, 0xC]
- lsls r1, r3, 16
- asrs r1, 16
- adds r0, r1
- cmp r0, r2
- bcc _0802DA58
- adds r0, r6, 0
- movs r1, 0x19
- mov r2, sp
- bl SetMonData
- adds r0, r6, 0
- bl CalculateMonStats
- ldr r2, [sp]
- add r0, sp, 0x4
- ldrh r0, [r0]
- subs r2, r0
- ldr r0, [sp, 0xC]
- subs r2, r0, r2
- ldr r4, _0802DA38 @ =gActiveBank
- ldrb r5, [r4]
- strb r7, [r4]
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x1
- movs r1, 0xB
- bl dp01_build_cmdbuf_x21_a_bb
- strb r5, [r4]
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802DA40
- ldr r2, _0802DA28 @ =gBattlePartyID
- lsls r0, r7, 1
- adds r0, r2
- mov r1, r10
- ldrh r0, [r0]
- cmp r1, r0
- beq _0802DA1E
- movs r0, 0x2
- eors r7, r0
- lsls r0, r7, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r1, r0
- bne _0802DA40
-_0802DA1E:
- ldr r0, _0802DA3C @ =sub_802DCB0
- b _0802DA82
- .align 2, 0
-_0802DA24: .4byte gTasks
-_0802DA28: .4byte gBattlePartyID
-_0802DA2C: .4byte gPlayerParty
-_0802DA30: .4byte gExperienceTables
-_0802DA34: .4byte gBaseStats
-_0802DA38: .4byte gActiveBank
-_0802DA3C: .4byte sub_802DCB0
-_0802DA40:
- ldr r0, _0802DA50 @ =gTasks
- mov r2, r9
- lsls r1, r2, 2
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldr r0, _0802DA54 @ =sub_802DDC4
- b _0802DA84
- .align 2, 0
-_0802DA50: .4byte gTasks
-_0802DA54: .4byte sub_802DDC4
-_0802DA58:
- str r0, [sp, 0x4]
- add r2, sp, 0x4
- adds r0, r6, 0
- movs r1, 0x19
- bl SetMonData
- ldr r1, _0802DA78 @ =gBattleBankFunc
- ldr r3, [sp, 0x8]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, _0802DA7C @ =sub_802D90C
- str r1, [r0]
- mov r0, r9
- bl DestroyTask
- b _0802DA86
- .align 2, 0
-_0802DA78: .4byte gBattleBankFunc
-_0802DA7C: .4byte sub_802D90C
-_0802DA80:
- ldr r0, _0802DA98 @ =sub_802DA9C
-_0802DA82:
- mov r1, r8
-_0802DA84:
- str r0, [r1]
-_0802DA86:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DA98: .4byte sub_802DA9C
- thumb_func_end sub_802D924
-
- thumb_func_start sub_802DA9C
-sub_802DA9C: @ 802DA9C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0802DB54 @ =gTasks
- lsls r2, r0, 2
- mov r8, r2
- add r8, r0
- mov r0, r8
- lsls r0, 3
- mov r8, r0
- add r8, r1
- mov r2, r8
- ldrb r1, [r2, 0x8]
- movs r0, 0xA
- ldrsh r2, [r2, r0]
- mov r9, r2
- mov r2, r8
- ldrb r2, [r2, 0xC]
- mov r10, r2
- movs r0, 0x64
- adds r6, r1, 0
- muls r6, r0
- ldr r0, _0802DB58 @ =gPlayerParty
- adds r6, r0
- adds r0, r6, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- movs r1, 0x19
- bl GetMonData
- adds r3, r0, 0
- ldr r6, _0802DB5C @ =gExperienceTables
- lsls r1, r4, 2
- ldr r2, _0802DB60 @ =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
- adds r1, r6
- ldr r1, [r1]
- subs r3, r1
- adds r4, 0x1
- lsls r4, 2
- adds r4, r0
- adds r4, r6
- ldr r2, [r4]
- subs r2, r1
- ldr r0, _0802DB64 @ =gHealthboxIDs
- add r0, r10
- ldrb r1, [r0]
- mov r0, r9
- negs r0, r0
- str r0, [sp]
- mov r0, r10
- bl sub_8043D84
- movs r0, 0x21
- bl PlaySE
- ldr r0, _0802DB68 @ =sub_802DB6C
- mov r1, r8
- str r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DB54: .4byte gTasks
-_0802DB58: .4byte gPlayerParty
-_0802DB5C: .4byte gExperienceTables
-_0802DB60: .4byte gBaseStats
-_0802DB64: .4byte gHealthboxIDs
-_0802DB68: .4byte sub_802DB6C
- thumb_func_end sub_802DA9C
-
- thumb_func_start sub_802DB6C
-sub_802DB6C: @ 802DB6C
- 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
- ldr r1, _0802DB98 @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r6, r0, r1
- ldrh r1, [r6, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r6, r2]
- cmp r0, 0xC
- bgt _0802DB9C
- adds r0, r1, 0x1
- strh r0, [r6, 0x1C]
- b _0802DC98
- .align 2, 0
-_0802DB98: .4byte gTasks
-_0802DB9C:
- ldrb r0, [r6, 0x8]
- mov r9, r0
- ldrh r2, [r6, 0xA]
- mov r10, r2
- ldrb r7, [r6, 0xC]
- ldr r5, _0802DC64 @ =gHealthboxIDs
- adds r5, r7, r5
- ldrb r1, [r5]
- adds r0, r7, 0
- movs r2, 0x1
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- bl sub_8043DFC
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- bne _0802DC98
- movs r0, 0x21
- bl m4aSongNumStop
- movs r0, 0x64
- mov r1, r9
- muls r1, r0
- ldr r0, _0802DC68 @ =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r3, _0802DC6C @ =gExperienceTables
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _0802DC70 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r1
- adds r4, r0
- adds r4, r3
- ldr r1, [r4]
- str r1, [sp]
- mov r2, r10
- lsls r0, r2, 16
- asrs r4, r0, 16
- ldr r0, [sp, 0x4]
- adds r0, r4
- cmp r0, r1
- blt _0802DC7C
- adds r0, r5, 0
- movs r1, 0x19
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- bl CalculateMonStats
- ldr r2, [sp]
- add r0, sp, 0x4
- ldrh r0, [r0]
- subs r2, r0
- subs r2, r4, r2
- ldr r4, _0802DC74 @ =gActiveBank
- ldrb r5, [r4]
- strb r7, [r4]
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x1
- movs r1, 0xB
- bl dp01_build_cmdbuf_x21_a_bb
- strb r5, [r4]
- ldr r0, _0802DC78 @ =sub_802DCB0
- str r0, [r6]
- b _0802DC98
- .align 2, 0
-_0802DC64: .4byte gHealthboxIDs
-_0802DC68: .4byte gPlayerParty
-_0802DC6C: .4byte gExperienceTables
-_0802DC70: .4byte gBaseStats
-_0802DC74: .4byte gActiveBank
-_0802DC78: .4byte sub_802DCB0
-_0802DC7C:
- str r0, [sp, 0x4]
- add r2, sp, 0x4
- adds r0, r5, 0
- movs r1, 0x19
- bl SetMonData
- ldr r1, _0802DCA8 @ =gBattleBankFunc
- lsls r0, r7, 2
- adds r0, r1
- ldr r1, _0802DCAC @ =sub_802D90C
- str r1, [r0]
- mov r0, r8
- bl DestroyTask
-_0802DC98:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DCA8: .4byte gBattleBankFunc
-_0802DCAC: .4byte sub_802D90C
- thumb_func_end sub_802DB6C
-
- thumb_func_start sub_802DCB0
-sub_802DCB0: @ 802DCB0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0802DD04 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrb r4, [r0, 0xC]
- ldrb r6, [r0, 0x8]
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802DCE4
- ldr r1, _0802DD08 @ =gBattlePartyID
- movs r0, 0x2
- adds r2, r4, 0
- eors r2, r0
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- bne _0802DCE4
- adds r4, r2, 0
-_0802DCE4:
- adds r0, r4, 0
- adds r1, r4, 0
- adds r2, r4, 0
- movs r3, 0
- bl move_anim_start_t4
- ldr r0, _0802DD04 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0802DD0C @ =sub_802DD10
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DD04: .4byte gTasks
-_0802DD08: .4byte gBattlePartyID
-_0802DD0C: .4byte sub_802DD10
- thumb_func_end sub_802DCB0
-
- thumb_func_start sub_802DD10
-sub_802DD10: @ 802DD10
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0802DD78 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r2, r0, r1
- ldrb r5, [r2, 0xC]
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- ldr r1, _0802DD7C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802DDAE
- ldrb r4, [r2, 0x8]
- movs r0, 0x64
- adds r1, r4, 0
- muls r1, r0
- ldr r0, _0802DD80 @ =gPlayerParty
- adds r7, r1, r0
- adds r0, r7, 0
- movs r1, 0x38
- bl GetMonData
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802DD8C
- ldr r1, _0802DD84 @ =gBattlePartyID
- movs r0, 0x2
- adds r2, r5, 0
- eors r2, r0
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- bne _0802DD8C
- ldr r0, _0802DD88 @ =gHealthboxIDs
- adds r0, r2, r0
- ldrb r0, [r0]
- adds r1, r7, 0
- movs r2, 0
- bl sub_8045A5C
- b _0802DDA0
- .align 2, 0
-_0802DD78: .4byte gTasks
-_0802DD7C: .4byte 0x02017810
-_0802DD80: .4byte gPlayerParty
-_0802DD84: .4byte gBattlePartyID
-_0802DD88: .4byte gHealthboxIDs
-_0802DD8C:
- ldr r0, _0802DDB4 @ =gHealthboxIDs
- adds r0, r5, r0
- ldrb r0, [r0]
- movs r1, 0x64
- muls r1, r4
- ldr r2, _0802DDB8 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
-_0802DDA0:
- ldr r0, _0802DDBC @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0802DDC0 @ =sub_802DDC4
- str r0, [r1]
-_0802DDAE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DDB4: .4byte gHealthboxIDs
-_0802DDB8: .4byte gPlayerParty
-_0802DDBC: .4byte gTasks
-_0802DDC0: .4byte sub_802DDC4
- thumb_func_end sub_802DD10
-
- thumb_func_start sub_802DDC4
-sub_802DDC4: @ 802DDC4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0802DE00 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r1, [r4, 0x8]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802DE04 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- bl GetMonData
- ldrb r0, [r4, 0xC]
- ldr r1, _0802DE08 @ =gBattleBankFunc
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802DE0C @ =sub_802D90C
- str r1, [r0]
- adds r0, r5, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DE00: .4byte gTasks
-_0802DE04: .4byte gPlayerParty
-_0802DE08: .4byte gBattleBankFunc
-_0802DE0C: .4byte sub_802D90C
- thumb_func_end sub_802DDC4
-
- thumb_func_start sub_802DE10
-sub_802DE10: @ 802DE10
- push {r4-r6,lr}
- ldr r6, _0802DE94 @ =gSprites
- ldr r5, _0802DE98 @ =gObjectBankIDs
- ldr r4, _0802DE9C @ =gActiveBank
- ldrb r2, [r4]
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r3, 0x22
- ldrsh r1, [r0, r3]
- movs r3, 0x26
- ldrsh r0, [r0, r3]
- adds r1, r0
- cmp r1, 0xA0
- ble _0802DE8C
- ldr r1, _0802DEA0 @ =gBattlePartyID
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802DEA4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl nullsub_9
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- ldr r1, _0802DEA8 @ =gHealthboxIDs
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl PlayerBufferExecCompleted
-_0802DE8C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DE94: .4byte gSprites
-_0802DE98: .4byte gObjectBankIDs
-_0802DE9C: .4byte gActiveBank
-_0802DEA0: .4byte gBattlePartyID
-_0802DEA4: .4byte gPlayerParty
-_0802DEA8: .4byte gHealthboxIDs
- thumb_func_end sub_802DE10
-
- thumb_func_start sub_802DEAC
-sub_802DEAC: @ 802DEAC
- push {r4-r6,lr}
- ldr r6, _0802DF04 @ =gActiveBank
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _0802DF08 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802DEFC
- ldr r5, _0802DF0C @ =gObjectBankIDs
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0802DF10 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _0802DF14 @ =gHealthboxIDs
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl PlayerBufferExecCompleted
-_0802DEFC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DF04: .4byte gActiveBank
-_0802DF08: .4byte 0x02017810
-_0802DF0C: .4byte gObjectBankIDs
-_0802DF10: .4byte gSprites
-_0802DF14: .4byte gHealthboxIDs
- thumb_func_end sub_802DEAC
-
- thumb_func_start sub_802DF18
-sub_802DF18: @ 802DF18
- push {lr}
- ldr r0, _0802DF2C @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _0802DF26
- bl PlayerBufferExecCompleted
-_0802DF26:
- pop {r0}
- bx r0
- .align 2, 0
-_0802DF2C: .4byte gUnknown_03004210
- thumb_func_end sub_802DF18
-
- thumb_func_start sub_802DF30
-sub_802DF30: @ 802DF30
- push {r4,lr}
- ldr r0, _0802DF70 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802DF6A
- ldr r1, _0802DF74 @ =gBattleBankFunc
- ldr r2, _0802DF78 @ =gActiveBank
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802DF7C @ =sub_802DF88
- str r1, [r0]
- ldr r3, _0802DF80 @ =gTasks
- ldr r1, _0802DF84 @ =gUnknown_0300434C
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldrb r4, [r1, 0x8]
- bl DestroyTask
- adds r0, r4, 0
- bl sub_8094E20
-_0802DF6A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DF70: .4byte gPaletteFade
-_0802DF74: .4byte gBattleBankFunc
-_0802DF78: .4byte gActiveBank
-_0802DF7C: .4byte sub_802DF88
-_0802DF80: .4byte gTasks
-_0802DF84: .4byte gUnknown_0300434C
- thumb_func_end sub_802DF30
-
- thumb_func_start sub_802DF88
-sub_802DF88: @ 802DF88
- push {lr}
- ldr r0, _0802DFB8 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802DFBC @ =sub_800F808
- cmp r1, r0
- bne _0802DFF8
- ldr r0, _0802DFC0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802DFF8
- ldr r0, _0802DFC4 @ =gUnknown_0202E8F4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0802DFD0
- ldr r0, _0802DFC8 @ =gUnknown_0202E8F5
- ldrb r1, [r0]
- ldr r2, _0802DFCC @ =gUnknown_02038470
- movs r0, 0x1
- bl dp01_build_cmdbuf_x22_a_three_bytes
- b _0802DFDA
- .align 2, 0
-_0802DFB8: .4byte gMain
-_0802DFBC: .4byte sub_800F808
-_0802DFC0: .4byte gPaletteFade
-_0802DFC4: .4byte gUnknown_0202E8F4
-_0802DFC8: .4byte gUnknown_0202E8F5
-_0802DFCC: .4byte gUnknown_02038470
-_0802DFD0:
- movs r0, 0x1
- movs r1, 0x6
- movs r2, 0
- bl dp01_build_cmdbuf_x22_a_three_bytes
-_0802DFDA:
- ldr r1, _0802DFFC @ =gBattleBufferA
- ldr r0, _0802E000 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x1
- bne _0802DFF4
- bl b_link_standby_message
-_0802DFF4:
- bl PlayerBufferExecCompleted
-_0802DFF8:
- pop {r0}
- bx r0
- .align 2, 0
-_0802DFFC: .4byte gBattleBufferA
-_0802E000: .4byte gActiveBank
- thumb_func_end sub_802DF88
-
- thumb_func_start sub_802E004
-sub_802E004: @ 802E004
- push {lr}
- ldr r0, _0802E02C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802E028
- ldr r1, _0802E030 @ =gBattleBankFunc
- ldr r0, _0802E034 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802E038 @ =sub_802E03C
- str r1, [r0]
- bl nullsub_14
- bl sub_80A6DCC
-_0802E028:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E02C: .4byte gPaletteFade
-_0802E030: .4byte gBattleBankFunc
-_0802E034: .4byte gActiveBank
-_0802E038: .4byte sub_802E03C
- thumb_func_end sub_802E004
-
- thumb_func_start sub_802E03C
-sub_802E03C: @ 802E03C
- push {lr}
- ldr r0, _0802E068 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802E06C @ =sub_800F808
- cmp r1, r0
- bne _0802E062
- ldr r0, _0802E070 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802E062
- ldr r0, _0802E074 @ =gScriptItemId
- ldrh r1, [r0]
- movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
- bl PlayerBufferExecCompleted
-_0802E062:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E068: .4byte gMain
-_0802E06C: .4byte sub_800F808
-_0802E070: .4byte gPaletteFade
-_0802E074: .4byte gScriptItemId
- thumb_func_end sub_802E03C
-
- thumb_func_start bx_wait_t1
-bx_wait_t1: @ 802E078
- push {lr}
- ldr r0, _0802E0A4 @ =gDoingBattleAnim
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802E09A
- ldr r0, _0802E0A8 @ =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802E0AC @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802E09E
-_0802E09A:
- bl PlayerBufferExecCompleted
-_0802E09E:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E0A4: .4byte gDoingBattleAnim
-_0802E0A8: .4byte gActiveBank
-_0802E0AC: .4byte 0x02017810
- thumb_func_end bx_wait_t1
-
- thumb_func_start bx_blink_t1
-bx_blink_t1: @ 802E0B0
- push {r4,lr}
- ldr r1, _0802E0EC @ =gObjectBankIDs
- ldr r0, _0802E0F0 @ =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _0802E0F4 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _0802E0FC
- movs r3, 0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- ldr r0, _0802E0F8 @ =gDoingBattleAnim
- strb r3, [r0]
- bl PlayerBufferExecCompleted
- b _0802E126
- .align 2, 0
-_0802E0EC: .4byte gObjectBankIDs
-_0802E0F0: .4byte gActiveBank
-_0802E0F4: .4byte gSprites
-_0802E0F8: .4byte gDoingBattleAnim
-_0802E0FC:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0802E120
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_0802E120:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_0802E126:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end bx_blink_t1
-
- thumb_func_start sub_802E12C
-sub_802E12C: @ 802E12C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r0, _0802E180 @ =gActiveBank
- ldrb r4, [r0]
- lsls r4, 9
- ldr r0, _0802E184 @ =gUnknown_02023A64
- adds r4, r0
- ldr r5, _0802E188 @ =gDisplayedStringBattle
- adds r0, r5, 0
- bl StringCopy
- lsls r0, r6, 1
- adds r4, r0
- ldrh r1, [r4]
- movs r0, 0xD
- muls r1, r0
- ldr r0, _0802E18C @ =gMoveNames
- adds r1, r0
- adds r0, r5, 0
- bl StringAppend
- ldr r4, _0802E190 @ =gUnknown_03004210
- adds r1, r5, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 18
- movs r2, 0xC0
- lsls r2, 18
- adds r0, r2
- lsrs r2, r0, 16
- movs r0, 0x1
- ands r0, r6
- movs r3, 0x1
- cmp r0, 0
- beq _0802E176
- movs r3, 0xB
-_0802E176:
- cmp r6, 0x1
- bgt _0802E194
- movs r0, 0x37
- b _0802E196
- .align 2, 0
-_0802E180: .4byte gActiveBank
-_0802E184: .4byte gUnknown_02023A64
-_0802E188: .4byte gDisplayedStringBattle
-_0802E18C: .4byte gMoveNames
-_0802E190: .4byte gUnknown_03004210
-_0802E194:
- movs r0, 0x39
-_0802E196:
- str r0, [sp]
- adds r0, r4, 0
- bl InitWindow
- ldr r0, _0802E1AC @ =gUnknown_03004210
- bl sub_8002F44
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E1AC: .4byte gUnknown_03004210
- thumb_func_end sub_802E12C
-
- thumb_func_start sub_802E1B0
-sub_802E1B0: @ 802E1B0
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r0, _0802E208 @ =gActiveBank
- ldrb r4, [r0]
- lsls r4, 9
- ldr r0, _0802E20C @ =gUnknown_02023A64
- adds r4, r0
- ldr r5, _0802E210 @ =gUnknown_03004348
- movs r0, 0
- strb r0, [r5]
- ldr r0, _0802E214 @ =gUnknown_03004210
- ldr r1, _0802E218 @ =0x00001016
- movs r2, 0x14
- str r2, [sp]
- movs r2, 0x3A
- str r2, [sp, 0x4]
- movs r2, 0x1
- movs r3, 0x37
- bl FillWindowRect
- movs r6, 0
-_0802E1DA:
- lsls r0, r6, 24
- lsrs r0, 24
- bl nullsub_7
- adds r0, r6, 0
- ldr r1, _0802E21C @ =gUnknown_08400D49
- bl sub_802E12C
- ldrh r0, [r4]
- cmp r0, 0
- beq _0802E1F6
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_0802E1F6:
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802E1DA
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E208: .4byte gActiveBank
-_0802E20C: .4byte gUnknown_02023A64
-_0802E210: .4byte gUnknown_03004348
-_0802E214: .4byte gUnknown_03004210
-_0802E218: .4byte 0x00001016
-_0802E21C: .4byte gUnknown_08400D49
- thumb_func_end sub_802E1B0
-
- thumb_func_start sub_802E220
-sub_802E220: @ 802E220
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r4, _0802E2B8 @ =gBattleBufferA
- ldr r6, _0802E2BC @ =gActiveBank
- ldrb r0, [r6]
- lsls r1, r0, 9
- adds r0, r4, 0x2
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0802E2B0
- adds r4, 0x4
- adds r4, r1, r4
- ldr r2, _0802E2C0 @ =gDisplayedStringBattle
- ldr r1, _0802E2C4 @ =gUnknown_08400D49
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- movs r1, 0xFC
- strb r1, [r2]
- movs r0, 0x11
- strb r0, [r2, 0x1]
- movs r0, 0x2
- strb r0, [r2, 0x2]
- adds r2, 0x3
- strb r1, [r2]
- movs r0, 0x14
- strb r0, [r2, 0x1]
- movs r0, 0x6
- strb r0, [r2, 0x2]
- adds r2, 0x3
- ldr r5, _0802E2C8 @ =gMoveSelectionCursor
- ldrb r1, [r6]
- adds r1, r5
- adds r0, r4, 0
- adds r0, 0x8
- ldrb r1, [r1]
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- adds r2, 0x1
- ldrb r0, [r6]
- adds r0, r5
- adds r4, 0xC
- ldrb r0, [r0]
- adds r4, r0
- ldrb r1, [r4]
- adds r0, r2, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r4, _0802E2CC @ =gUnknown_03004210
- ldr r1, _0802E2C0 @ =gDisplayedStringBattle
- ldr r2, _0802E2D0 @ =0x000002a2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x19
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
-_0802E2B0:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E2B8: .4byte gBattleBufferA
-_0802E2BC: .4byte gActiveBank
-_0802E2C0: .4byte gDisplayedStringBattle
-_0802E2C4: .4byte gUnknown_08400D49
-_0802E2C8: .4byte gMoveSelectionCursor
-_0802E2CC: .4byte gUnknown_03004210
-_0802E2D0: .4byte 0x000002a2
- thumb_func_end sub_802E220
-
- thumb_func_start sub_802E2D4
-sub_802E2D4: @ 802E2D4
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, _0802E314 @ =gBattleBufferA
- ldr r5, _0802E318 @ =gActiveBank
- ldrb r0, [r5]
- lsls r1, r0, 9
- adds r0, r4, 0x2
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0802E328
- ldr r4, _0802E31C @ =gUnknown_03004210
- ldr r1, _0802E320 @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x37
- bl FillWindowRect
- ldr r1, _0802E324 @ =gUnknown_08400D52
- movs r2, 0xA4
- lsls r2, 2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x13
- bl InitWindow
- b _0802E388
- .align 2, 0
-_0802E314: .4byte gBattleBufferA
-_0802E318: .4byte gActiveBank
-_0802E31C: .4byte gUnknown_03004210
-_0802E320: .4byte 0x00001016
-_0802E324: .4byte gUnknown_08400D52
-_0802E328:
- adds r4, 0x4
- adds r4, r1, r4
- ldr r3, _0802E398 @ =gDisplayedStringBattle
- ldr r1, _0802E39C @ =gUnknown_08400D49
- adds r0, r3, 0
- bl StringCopy
- adds r3, r0, 0
- ldr r2, _0802E3A0 @ =gBattleMoves
- ldr r1, _0802E3A4 @ =gMoveSelectionCursor
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r0
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- lsls r1, r0, 3
- subs r1, r0
- ldr r0, _0802E3A8 @ =gTypeNames
- adds r1, r0
- adds r0, r3, 0
- bl StringCopy
- ldr r4, _0802E3AC @ =gUnknown_03004210
- ldr r1, _0802E3B0 @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x39
- bl FillWindowRect
- ldr r1, _0802E398 @ =gDisplayedStringBattle
- movs r2, 0xB0
- lsls r2, 2
- movs r0, 0x39
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x17
- bl InitWindow
-_0802E388:
- ldr r0, _0802E3AC @ =gUnknown_03004210
- bl sub_8002F44
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E398: .4byte gDisplayedStringBattle
-_0802E39C: .4byte gUnknown_08400D49
-_0802E3A0: .4byte gBattleMoves
-_0802E3A4: .4byte gMoveSelectionCursor
-_0802E3A8: .4byte gTypeNames
-_0802E3AC: .4byte gUnknown_03004210
-_0802E3B0: .4byte 0x00001016
- thumb_func_end sub_802E2D4
-
- thumb_func_start sub_802E3B4
-sub_802E3B4: @ 802E3B4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x48
- bl sub_814A958
- ldr r1, _0802E3DC @ =gUnknown_081FAE89
- lsls r4, 1
- adds r0, r4, r1
- ldrb r0, [r0]
- adds r1, 0x1
- adds r4, r1
- ldrb r1, [r4]
- bl sub_814A880
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E3DC: .4byte gUnknown_081FAE89
- thumb_func_end sub_802E3B4
-
- thumb_func_start nullsub_7
-nullsub_7: @ 802E3E0
- bx lr
- thumb_func_end nullsub_7
-
- thumb_func_start sub_802E3E4
-sub_802E3E4: @ 802E3E4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2A
- bl sub_814A958
- ldr r1, _0802E40C @ =gUnknown_081FAE91
- lsls r4, 1
- adds r0, r4, r1
- ldrb r0, [r0]
- adds r1, 0x1
- adds r4, r1
- ldrb r1, [r4]
- bl sub_814A880
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E40C: .4byte gUnknown_081FAE91
- thumb_func_end sub_802E3E4
-
- thumb_func_start nullsub_8
-nullsub_8: @ 802E410
- bx lr
- thumb_func_end nullsub_8
-
- thumb_func_start sub_802E414
-sub_802E414: @ 802E414
- push {lr}
- ldr r0, _0802E420 @ =ReshowBattleScreenAfterMenu
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0802E420: .4byte ReshowBattleScreenAfterMenu
- thumb_func_end sub_802E414
-
- thumb_func_start sub_802E424
-sub_802E424: @ 802E424
- push {lr}
- ldr r0, _0802E430 @ =ReshowBattleScreenAfterMenu
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0802E430: .4byte ReshowBattleScreenAfterMenu
- thumb_func_end sub_802E424
-
- thumb_func_start sub_802E434
-sub_802E434: @ 802E434
- push {lr}
- ldr r0, _0802E458 @ =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802E45C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0802E452
- bl PlayerBufferExecCompleted
-_0802E452:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E458: .4byte gActiveBank
-_0802E45C: .4byte 0x02017810
- thumb_func_end sub_802E434
-
- thumb_func_start sub_802E460
-sub_802E460: @ 802E460
- push {lr}
- ldr r0, _0802E484 @ =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802E488 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0802E47E
- bl PlayerBufferExecCompleted
-_0802E47E:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E484: .4byte gActiveBank
-_0802E488: .4byte 0x02017810
- thumb_func_end sub_802E460
-
- thumb_func_start b_link_standby_message
-b_link_standby_message: @ 802E48C
- push {lr}
- sub sp, 0x4
- ldr r0, _0802E4BC @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802E4B6
- ldr r0, _0802E4C0 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0802E4C4 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r0, _0802E4C8 @ =gUnknown_03004210
- ldr r1, _0802E4CC @ =gUnknown_08400CE0
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
-_0802E4B6:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0802E4BC: .4byte gBattleTypeFlags
-_0802E4C0: .4byte gUnknown_030042A4
-_0802E4C4: .4byte gUnknown_030042A0
-_0802E4C8: .4byte gUnknown_03004210
-_0802E4CC: .4byte gUnknown_08400CE0
- thumb_func_end b_link_standby_message
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_9.s b/asm/battle_9.s
index fffb56dc9..e92c2db33 100644
--- a/asm/battle_9.s
+++ b/asm/battle_9.s
@@ -6,8 +6,8 @@
.text
- thumb_func_start ai_switch_perish_song
-ai_switch_perish_song: @ 8035FEC
+ thumb_func_start AI_SwitchIfPerishSong
+AI_SwitchIfPerishSong: @ 8035FEC
push {lr}
ldr r1, _08036038 @ =gStatuses3
ldr r0, _0803603C @ =gActiveBank
@@ -41,7 +41,7 @@ ai_switch_perish_song: @ 8035FEC
movs r0, 0x1
movs r1, 0x2
movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
+ bl Emitcmd33
movs r0, 0x1
b _0803604E
.align 2, 0
@@ -55,10 +55,10 @@ _0803604C:
_0803604E:
pop {r1}
bx r1
- thumb_func_end ai_switch_perish_song
+ thumb_func_end AI_SwitchIfPerishSong
- thumb_func_start sub_8036054
-sub_8036054: @ 8036054
+ thumb_func_start AI_SwitchIfWonderguard
+AI_SwitchIfWonderguard: @ 8036054
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -86,7 +86,7 @@ _08036070:
movs r0, 0x1
movs r1, 0x2
movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
+ bl Emitcmd33
movs r0, 0x1
b _080361CA
.align 2, 0
@@ -136,7 +136,7 @@ _080360D8:
ldrh r1, [r4]
mov r3, r8
ldrb r2, [r3]
- bl ai_rate_move
+ bl AI_TypeCalc
lsls r0, 24
lsrs r1, r0, 24
movs r0, 0x2
@@ -211,7 +211,7 @@ _0803617C:
beq _080361BC
ldrh r1, [r5]
ldrb r2, [r7]
- bl ai_rate_move
+ bl AI_TypeCalc
lsls r0, 24
lsrs r1, r0, 24
movs r0, 0x2
@@ -250,7 +250,7 @@ _080361D8: .4byte gBattleMons
_080361DC: .4byte gActiveBank
_080361E0: .4byte gEnemyParty
_080361E4: .4byte gBattlePartyID
- thumb_func_end sub_8036054
+ thumb_func_end AI_SwitchIfWonderguard
thumb_func_start sub_80361E8
sub_80361E8: @ 80361E8
@@ -410,7 +410,7 @@ _0803630C:
movs r0, 0x1
movs r1, 0x2
movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
+ bl Emitcmd33
movs r0, 0x1
b _08036402
.align 2, 0
@@ -521,8 +521,8 @@ _08036402:
bx r1
thumb_func_end sub_80361E8
- thumb_func_start ai_switchout_natural_cure
-ai_switchout_natural_cure: @ 8036410
+ thumb_func_start AI_SwitchIfNaturalCure
+AI_SwitchIfNaturalCure: @ 8036410
push {r4,r5,lr}
ldr r3, _08036468 @ =gBattleMons
ldr r5, _0803646C @ =gActiveBank
@@ -634,7 +634,7 @@ _080364E0:
movs r0, 0x1
movs r1, 0x2
movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
+ bl Emitcmd33
_080364FE:
movs r0, 0x1
_08036500:
@@ -645,7 +645,7 @@ _08036500:
_08036508: .4byte gActiveBank
_0803650C: .4byte 0x02000000
_08036510: .4byte 0x000160c8
- thumb_func_end ai_switchout_natural_cure
+ thumb_func_end AI_SwitchIfNaturalCure
thumb_func_start ai_has_super_effective_move_on_field
ai_has_super_effective_move_on_field: @ 8036514
@@ -693,7 +693,7 @@ _08036550:
ldrh r1, [r5]
mov r3, r9
ldrb r2, [r3]
- bl ai_rate_move
+ bl AI_TypeCalc
lsls r0, 24
lsrs r1, r0, 24
movs r0, 0x2
@@ -770,7 +770,7 @@ _080365F2:
ldrh r1, [r5]
mov r3, r9
ldrb r2, [r3]
- bl ai_rate_move
+ bl AI_TypeCalc
lsls r0, 24
lsrs r1, r0, 24
movs r0, 0x2
@@ -808,8 +808,8 @@ _08036654: .4byte gBattleMons
_08036658: .4byte gActiveBank
thumb_func_end ai_has_super_effective_move_on_field
- thumb_func_start ai_is_too_invested_in_stat_buffs
-ai_is_too_invested_in_stat_buffs: @ 803665C
+ thumb_func_start AI_AreStatsRaised
+AI_AreStatsRaised: @ 803665C
push {r4,lr}
movs r4, 0
ldr r1, _0803669C @ =gBattleMons
@@ -848,7 +848,7 @@ _08036696:
.align 2, 0
_0803669C: .4byte gBattleMons
_080366A0: .4byte gActiveBank
- thumb_func_end ai_is_too_invested_in_stat_buffs
+ thumb_func_end AI_AreStatsRaised
thumb_func_start sub_80366A4
sub_80366A4: @ 80366A4
@@ -958,7 +958,7 @@ _08036768:
movs r0, 0x1
movs r1, 0x2
movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
+ bl Emitcmd33
movs r0, 0x1
b _080368DA
.align 2, 0
@@ -1061,7 +1061,7 @@ _08036850:
adds r0, r1
ldrh r0, [r0]
adds r1, r4, 0
- bl ai_rate_move
+ bl AI_TypeCalc
ldr r1, [sp]
ands r1, r0
cmp r1, 0
@@ -1096,7 +1096,7 @@ _0803688E:
beq _080368CA
ldrh r1, [r5]
ldrb r2, [r7]
- bl ai_rate_move
+ bl AI_TypeCalc
lsls r0, 24
lsrs r1, r0, 24
movs r0, 0x2
@@ -1140,8 +1140,8 @@ _080368FC: .4byte gBattleMons
_08036900: .4byte gEnemyParty
thumb_func_end sub_80366A4
- thumb_func_start sub_8036904
-sub_8036904: @ 8036904
+ thumb_func_start AI_ShouldSwitch
+AI_ShouldSwitch: @ 8036904
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -1331,11 +1331,11 @@ _08036A7E:
mov r2, r8
cmp r2, 0
beq _08036AFC
- bl ai_switch_perish_song
+ bl AI_SwitchIfPerishSong
lsls r0, 24
cmp r0, 0
bne _08036AE4
- bl sub_8036054
+ bl AI_SwitchIfWonderguard
lsls r0, 24
cmp r0, 0
bne _08036AE4
@@ -1343,7 +1343,7 @@ _08036A7E:
lsls r0, 24
cmp r0, 0
bne _08036AE4
- bl ai_switchout_natural_cure
+ bl AI_SwitchIfNaturalCure
lsls r0, 24
cmp r0, 0
bne _08036AE4
@@ -1352,7 +1352,7 @@ _08036A7E:
lsls r0, 24
cmp r0, 0
bne _08036AFC
- bl ai_is_too_invested_in_stat_buffs
+ bl AI_AreStatsRaised
lsls r0, 24
cmp r0, 0
bne _08036AFC
@@ -1386,7 +1386,7 @@ _08036AFE:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_8036904
+ thumb_func_end AI_ShouldSwitch
thumb_func_start sub_8036B0C
sub_8036B0C: @ 8036B0C
@@ -1399,7 +1399,7 @@ sub_8036B0C: @ 8036B0C
bne _08036B1C
b _08036C2E
_08036B1C:
- bl sub_8036904
+ bl AI_ShouldSwitch
lsls r0, 24
cmp r0, 0
bne _08036B28
@@ -1521,7 +1521,7 @@ _08036C18: .4byte 0x00016068
_08036C1C: .4byte gActiveBank
_08036C20: .4byte 0x000160c8
_08036C24:
- bl sub_803708C
+ bl AI_ShouldUseItem
lsls r0, 24
cmp r0, 0
bne _08036C40
@@ -1533,7 +1533,7 @@ _08036C2E:
lsls r2, 8
movs r0, 0x1
movs r1, 0
- bl dp01_build_cmdbuf_x21_a_bb
+ bl Emitcmd33
_08036C40:
pop {r4-r6}
pop {r0}
@@ -2083,8 +2083,8 @@ _08037086:
bx r1
thumb_func_end ai_identify_item_effect
- thumb_func_start sub_803708C
-sub_803708C: @ 803708C
+ thumb_func_start AI_ShouldUseItem
+AI_ShouldUseItem: @ 803708C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -2623,7 +2623,7 @@ _080374AE:
movs r0, 0x1
movs r1, 0x1
movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
+ bl Emitcmd33
ldr r1, _080374DC @ =0x02000000
ldr r0, _080374E0 @ =gActiveBank
ldrb r0, [r0]
@@ -2665,1416 +2665,6 @@ _080374FA:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_803708C
-
- thumb_func_start nullsub_47
-nullsub_47: @ 803750C
- bx lr
- thumb_func_end nullsub_47
-
- thumb_func_start SetBankFuncToLinkOpponentBufferRunCommand
-SetBankFuncToLinkOpponentBufferRunCommand: @ 8037510
- ldr r1, _08037520 @ =gBattleBankFunc
- ldr r0, _08037524 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037528 @ =sub_803752C
- str r1, [r0]
- bx lr
- .align 2, 0
-_08037520: .4byte gBattleBankFunc
-_08037524: .4byte gActiveBank
-_08037528: .4byte sub_803752C
- thumb_func_end SetBankFuncToLinkOpponentBufferRunCommand
-
- thumb_func_start sub_803752C
-sub_803752C: @ 803752C
- push {lr}
- ldr r2, _08037560 @ =gBattleExecBuffer
- ldr r1, _08037564 @ =gBitTable
- ldr r0, _08037568 @ =gActiveBank
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08037578
- ldr r0, _0803756C @ =gBattleBufferA
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _08037574
- ldr r0, _08037570 @ =gLinkOpponentBufferCommands
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _08037578
- .align 2, 0
-_08037560: .4byte gBattleExecBuffer
-_08037564: .4byte gBitTable
-_08037568: .4byte gActiveBank
-_0803756C: .4byte gBattleBufferA
-_08037570: .4byte gLinkOpponentBufferCommands
-_08037574:
- bl dp01_tbl4_exec_completed
-_08037578:
- pop {r0}
- bx r0
- thumb_func_end sub_803752C
-
- thumb_func_start sub_803757C
-sub_803757C: @ 803757C
- push {lr}
- ldr r2, _080375A4 @ =gSprites
- ldr r1, _080375A8 @ =gObjectBankIDs
- ldr r0, _080375AC @ =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _080375B0 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _080375A0
- bl dp01_tbl4_exec_completed
-_080375A0:
- pop {r0}
- bx r0
- .align 2, 0
-_080375A4: .4byte gSprites
-_080375A8: .4byte gObjectBankIDs
-_080375AC: .4byte gActiveBank
-_080375B0: .4byte SpriteCallbackDummy
- thumb_func_end sub_803757C
-
- thumb_func_start sub_80375B4
-sub_80375B4: @ 80375B4
- push {r4-r6,lr}
- ldr r4, _0803762C @ =gSprites
- ldr r6, _08037630 @ =gObjectBankIDs
- ldr r5, _08037634 @ =gActiveBank
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r2, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, [r0]
- ldr r0, _08037638 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08037624
- adds r0, r2, r4
- ldrh r0, [r0, 0x6]
- bl sub_8031B74
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x38]
- ldr r2, _0803763C @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08037640 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- bl dp01_tbl4_exec_completed
-_08037624:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803762C: .4byte gSprites
-_08037630: .4byte gObjectBankIDs
-_08037634: .4byte gActiveBank
-_08037638: .4byte SpriteCallbackDummy
-_0803763C: .4byte 0x000003ff
-_08037640: .4byte 0xfffffc00
- thumb_func_end sub_80375B4
-
- thumb_func_start sub_8037644
-sub_8037644: @ 8037644
- push {lr}
- ldr r3, _08037678 @ =gActiveBank
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _0803767C @ =0x02017810
- adds r1, r2
- ldrb r0, [r1, 0x9]
- subs r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _08037674
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strb r0, [r1, 0x9]
- bl dp01_tbl4_exec_completed
-_08037674:
- pop {r0}
- bx r0
- .align 2, 0
-_08037678: .4byte gActiveBank
-_0803767C: .4byte 0x02017810
- thumb_func_end sub_8037644
-
- thumb_func_start sub_8037680
-sub_8037680: @ 8037680
- push {r4-r7,lr}
- movs r6, 0
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _080376A4
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _080376D8
- ldr r0, _080376C4 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080376D8
-_080376A4:
- ldr r2, _080376C8 @ =gSprites
- ldr r1, _080376CC @ =gHealthboxIDs
- ldr r0, _080376D0 @ =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _080376D4 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0803770E
- b _0803770C
- .align 2, 0
-_080376C4: .4byte gBattleTypeFlags
-_080376C8: .4byte gSprites
-_080376CC: .4byte gHealthboxIDs
-_080376D0: .4byte gActiveBank
-_080376D4: .4byte SpriteCallbackDummy
-_080376D8:
- ldr r2, _080377D8 @ =gSprites
- ldr r5, _080377DC @ =gHealthboxIDs
- ldr r0, _080377E0 @ =gActiveBank
- ldrb r3, [r0]
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r4, [r0]
- ldr r0, _080377E4 @ =SpriteCallbackDummy
- cmp r4, r0
- bne _0803770E
- movs r0, 0x2
- eors r3, r0
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, r4
- bne _0803770E
-_0803770C:
- movs r6, 0x1
-_0803770E:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _0803771A
- movs r6, 0
-_0803771A:
- cmp r6, 0
- bne _08037720
- b _08037822
-_08037720:
- ldr r7, _080377E0 @ =gActiveBank
- ldrb r0, [r7]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1
- bne _080377B4
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r5, _080377E8 @ =0x02017810
- adds r4, r0, r5
- ldrb r1, [r4, 0x1]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08037822
- movs r6, 0x2
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08037822
- ldrb r1, [r4]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldr r4, _080377EC @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
-_080377B4:
- ldr r0, _080377F0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080377F8
- ldrb r0, [r7]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08037804
- ldr r0, _080377F4 @ =gMPlay_BGM
- bl m4aMPlayContinue
- b _08037804
- .align 2, 0
-_080377D8: .4byte gSprites
-_080377DC: .4byte gHealthboxIDs
-_080377E0: .4byte gActiveBank
-_080377E4: .4byte SpriteCallbackDummy
-_080377E8: .4byte 0x02017810
-_080377EC: .4byte 0x000027f9
-_080377F0: .4byte gBattleTypeFlags
-_080377F4: .4byte gMPlay_BGM
-_080377F8:
- ldr r0, _08037828 @ =gMPlay_BGM
- ldr r1, _0803782C @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_08037804:
- ldr r2, _08037830 @ =gActiveBank
- ldrb r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037834 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x9]
- ldr r1, _08037838 @ =gBattleBankFunc
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803783C @ =sub_8037644
- str r1, [r0]
-_08037822:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08037828: .4byte gMPlay_BGM
-_0803782C: .4byte 0x0000ffff
-_08037830: .4byte gActiveBank
-_08037834: .4byte 0x02017810
-_08037838: .4byte gBattleBankFunc
-_0803783C: .4byte sub_8037644
- thumb_func_end sub_8037680
-
- thumb_func_start sub_8037840
-sub_8037840: @ 8037840
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r6, _08037A48 @ =gActiveBank
- ldrb r2, [r6]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r5, _08037A4C @ =0x02017810
- adds r0, r5
- ldrb r1, [r0]
- movs r4, 0x88
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _08037878
- ldr r0, _08037A50 @ =gBattlePartyID
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08037A54 @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08037878:
- ldrb r0, [r6]
- movs r7, 0x2
- adds r2, r7, 0
- eors r2, r0
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _080378A6
- ldr r0, _08037A50 @ =gBattlePartyID
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08037A54 @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_080378A6:
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- movs r3, 0x8
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080378BE
- b _08037A3A
-_080378BE:
- adds r1, r2, 0
- eors r1, r7
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080378DA
- b _08037A3A
-_080378DA:
- ldr r0, _08037A58 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0803791A
- adds r0, r2, 0
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0803791A
- ldrb r0, [r6]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x9]
- adds r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0803790E
- b _08037A3A
-_0803790E:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strb r4, [r0, 0x9]
-_0803791A:
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _080379B2
- ldr r0, _08037A58 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080379B2
- ldr r1, _08037A5C @ =gUnknown_0300434C
- ldr r5, _08037A48 @ =gActiveBank
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037A60 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r0, _08037A64 @ =gHealthboxIDs
- mov r8, r0
- ldrb r0, [r5]
- adds r1, r4, 0
- eors r1, r0
- mov r2, r8
- adds r0, r1, r2
- ldrb r0, [r0]
- ldr r2, _08037A50 @ =gBattlePartyID
- mov r10, r2
- lsls r1, 1
- add r1, r10
- ldrh r1, [r1]
- movs r2, 0x64
- mov r9, r2
- mov r2, r9
- muls r2, r1
- adds r1, r2, 0
- ldr r6, _08037A54 @ =gEnemyParty
- adds r1, r6
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- eors r0, r4
- bl sub_804777C
- ldrb r0, [r5]
- eors r0, r4
- add r0, r8
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r0, [r5]
- eors r4, r0
- lsls r0, r4, 1
- add r0, r10
- ldrh r0, [r0]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
-_080379B2:
- ldr r1, _08037A5C @ =gUnknown_0300434C
- ldr r4, _08037A48 @ =gActiveBank
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037A60 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r5, _08037A64 @ =gHealthboxIDs
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _08037A50 @ =gBattlePartyID
- mov r9, r2
- lsls r1, 1
- add r1, r9
- ldrh r1, [r1]
- movs r2, 0x64
- mov r8, r2
- mov r2, r8
- muls r2, r1
- adds r1, r2, 0
- ldr r6, _08037A54 @ =gEnemyParty
- adds r1, r6
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r5, [r4]
- lsls r0, r5, 1
- add r0, r9
- ldrh r0, [r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_8032984
- ldr r2, _08037A68 @ =0x02017840
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _08037A6C @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037A70 @ =sub_8037680
- str r1, [r0]
-_08037A3A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08037A48: .4byte gActiveBank
-_08037A4C: .4byte 0x02017810
-_08037A50: .4byte gBattlePartyID
-_08037A54: .4byte gEnemyParty
-_08037A58: .4byte gBattleTypeFlags
-_08037A5C: .4byte gUnknown_0300434C
-_08037A60: .4byte gSprites
-_08037A64: .4byte gHealthboxIDs
-_08037A68: .4byte 0x02017840
-_08037A6C: .4byte gBattleBankFunc
-_08037A70: .4byte sub_8037680
- thumb_func_end sub_8037840
-
- thumb_func_start sub_8037A74
-sub_8037A74: @ 8037A74
- push {r4-r7,lr}
- ldr r2, _08037ACC @ =gSprites
- ldr r0, _08037AD0 @ =gObjectBankIDs
- ldr r7, _08037AD4 @ =gActiveBank
- ldrb r3, [r7]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r2, r0, 31
- cmp r2, 0x1
- bne _08037B18
- movs r4, 0x24
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bne _08037B18
- lsls r4, r3, 1
- adds r0, r4, r3
- lsls r0, 2
- ldr r6, _08037AD8 @ =0x02017810
- adds r1, r0, r6
- ldrb r5, [r1]
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- bne _08037AE4
- ldr r0, _08037ADC @ =gBattlePartyID
- adds r0, r4, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08037AE0 @ =gEnemyParty
- adds r1, r0
- adds r0, r3, 0
- bl sub_8141828
- b _08037B18
- .align 2, 0
-_08037ACC: .4byte gSprites
-_08037AD0: .4byte gObjectBankIDs
-_08037AD4: .4byte gActiveBank
-_08037AD8: .4byte 0x02017810
-_08037ADC: .4byte gBattlePartyID
-_08037AE0: .4byte gEnemyParty
-_08037AE4:
- ldrb r0, [r1, 0x1]
- ands r2, r0
- cmp r2, 0
- beq _08037B18
- movs r0, 0x7F
- ands r0, r5
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _08037B20 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- bl dp01_tbl4_exec_completed
-_08037B18:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08037B20: .4byte 0x000027f9
- thumb_func_end sub_8037A74
-
- thumb_func_start sub_8037B24
-sub_8037B24: @ 8037B24
- push {r4-r6,lr}
- ldr r6, _08037B64 @ =gActiveBank
- ldrb r0, [r6]
- ldr r5, _08037B68 @ =gHealthboxIDs
- adds r1, r0, r5
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08037B6C
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- movs r2, 0
- bl sub_80440EC
- b _08037B70
- .align 2, 0
-_08037B64: .4byte gActiveBank
-_08037B68: .4byte gHealthboxIDs
-_08037B6C:
- bl dp01_tbl4_exec_completed
-_08037B70:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8037B24
-
- thumb_func_start sub_8037B78
-sub_8037B78: @ 8037B78
- push {lr}
- ldr r2, _08037BAC @ =gSprites
- ldr r0, _08037BB0 @ =gObjectBankIDs
- ldr r1, _08037BB4 @ =gActiveBank
- ldrb r3, [r1]
- adds r0, r3, 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, 31
- cmp r0, 0
- bne _08037BA6
- ldr r0, _08037BB8 @ =gHealthboxIDs
- adds r0, r3, r0
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl4_exec_completed
-_08037BA6:
- pop {r0}
- bx r0
- .align 2, 0
-_08037BAC: .4byte gSprites
-_08037BB0: .4byte gObjectBankIDs
-_08037BB4: .4byte gActiveBank
-_08037BB8: .4byte gHealthboxIDs
- thumb_func_end sub_8037B78
-
- thumb_func_start sub_8037BBC
-sub_8037BBC: @ 8037BBC
- push {r4-r6,lr}
- ldr r6, _08037C18 @ =gActiveBank
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _08037C1C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08037C12
- ldr r5, _08037C20 @ =gObjectBankIDs
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08037C24 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldrb r0, [r6]
- bl sub_8032A08
- ldr r1, _08037C28 @ =gHealthboxIDs
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl4_exec_completed
-_08037C12:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08037C18: .4byte gActiveBank
-_08037C1C: .4byte 0x02017810
-_08037C20: .4byte gObjectBankIDs
-_08037C24: .4byte gSprites
-_08037C28: .4byte gHealthboxIDs
- thumb_func_end sub_8037BBC
-
- thumb_func_start sub_8037C2C
-sub_8037C2C: @ 8037C2C
- push {lr}
- ldr r0, _08037C40 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _08037C3A
- bl dp01_tbl4_exec_completed
-_08037C3A:
- pop {r0}
- bx r0
- .align 2, 0
-_08037C40: .4byte gUnknown_03004210
- thumb_func_end sub_8037C2C
-
- thumb_func_start dp01t_0F_4_move_anim
-dp01t_0F_4_move_anim: @ 8037C44
- push {r4,lr}
- ldr r1, _08037C80 @ =gObjectBankIDs
- ldr r0, _08037C84 @ =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _08037C88 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _08037C90
- movs r3, 0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08037C8C @ =gDoingBattleAnim
- strb r3, [r0]
- bl dp01_tbl4_exec_completed
- b _08037CBA
- .align 2, 0
-_08037C80: .4byte gObjectBankIDs
-_08037C84: .4byte gActiveBank
-_08037C88: .4byte gSprites
-_08037C8C: .4byte gDoingBattleAnim
-_08037C90:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08037CB4
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_08037CB4:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_08037CBA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end dp01t_0F_4_move_anim
-
- thumb_func_start sub_8037CC0
-sub_8037CC0: @ 8037CC0
- push {r4,lr}
- ldr r2, _08037D10 @ =gSprites
- ldr r0, _08037D14 @ =gHealthboxIDs
- ldr r4, _08037D18 @ =gActiveBank
- ldrb r3, [r4]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08037D1C @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08037D08
- lsls r0, r3, 2
- ldr r1, _08037D20 @ =0x02017800
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08037CFC
- adds r0, r3, 0
- adds r1, r3, 0
- adds r2, r3, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_08037CFC:
- ldr r0, _08037D24 @ =gBattleBankFunc
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08037D28 @ =sub_8037D2C
- str r0, [r1]
-_08037D08:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08037D10: .4byte gSprites
-_08037D14: .4byte gHealthboxIDs
-_08037D18: .4byte gActiveBank
-_08037D1C: .4byte SpriteCallbackDummy
-_08037D20: .4byte 0x02017800
-_08037D24: .4byte gBattleBankFunc
-_08037D28: .4byte sub_8037D2C
- thumb_func_end sub_8037CC0
-
- thumb_func_start sub_8037D2C
-sub_8037D2C: @ 8037D2C
- push {lr}
- ldr r0, _08037D58 @ =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037D5C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08037D52
- ldr r0, _08037D60 @ =c3_0802FDF4
- movs r1, 0xA
- bl CreateTask
- bl dp01_tbl4_exec_completed
-_08037D52:
- pop {r0}
- bx r0
- .align 2, 0
-_08037D58: .4byte gActiveBank
-_08037D5C: .4byte 0x02017810
-_08037D60: .4byte c3_0802FDF4
- thumb_func_end sub_8037D2C
-
- thumb_func_start sub_8037D64
-sub_8037D64: @ 8037D64
- push {r4,r5,lr}
- ldr r5, _08037E08 @ =gActiveBank
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _08037E0C @ =0x02017810
- adds r2, r0, r3
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08037E00
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _08037E10 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r1, _08037E14 @ =gObjectBankIDs
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037E18 @ =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- ldr r4, _08037E1C @ =gHealthboxIDs
- ldrb r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _08037E20 @ =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08037E24 @ =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- bl sub_804777C
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r0, [r5]
- bl sub_8031F88
- ldr r1, _08037E28 @ =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037E2C @ =sub_8037CC0
- str r1, [r0]
-_08037E00:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08037E08: .4byte gActiveBank
-_08037E0C: .4byte 0x02017810
-_08037E10: .4byte 0x000027f9
-_08037E14: .4byte gObjectBankIDs
-_08037E18: .4byte gSprites
-_08037E1C: .4byte gHealthboxIDs
-_08037E20: .4byte gBattlePartyID
-_08037E24: .4byte gEnemyParty
-_08037E28: .4byte gBattleBankFunc
-_08037E2C: .4byte sub_8037CC0
- thumb_func_end sub_8037D64
-
- thumb_func_start sub_8037E30
-sub_8037E30: @ 8037E30
- push {r4-r6,lr}
- ldr r5, _08037ECC @ =gActiveBank
- ldrb r2, [r5]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r6, _08037ED0 @ =0x02017810
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _08037E5E
- ldr r0, _08037ED4 @ =gBattlePartyID
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08037ED8 @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08037E5E:
- ldr r4, _08037EDC @ =gSprites
- ldr r0, _08037EE0 @ =gUnknown_0300434C
- ldrb r2, [r5]
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r3, r0
- ldr r1, [r0]
- ldr r0, _08037EE4 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08037EC4
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08037EC4
- adds r0, r3, r4
- bl DestroySprite
- ldrb r4, [r5]
- ldr r1, _08037ED4 @ =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08037ED8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
- ldr r1, _08037EE8 @ =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037EEC @ =sub_8037D64
- str r1, [r0]
-_08037EC4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08037ECC: .4byte gActiveBank
-_08037ED0: .4byte 0x02017810
-_08037ED4: .4byte gBattlePartyID
-_08037ED8: .4byte gEnemyParty
-_08037EDC: .4byte gSprites
-_08037EE0: .4byte gUnknown_0300434C
-_08037EE4: .4byte SpriteCallbackDummy
-_08037EE8: .4byte gBattleBankFunc
-_08037EEC: .4byte sub_8037D64
- thumb_func_end sub_8037E30
-
- thumb_func_start sub_8037EF0
-sub_8037EF0: @ 8037EF0
- push {lr}
- ldr r0, _08037F20 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08037F1C
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r3, _08037F24 @ =gMain
- ldr r0, _08037F28 @ =0x0000043d
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08037F2C @ =gPreBattleCallback1
- ldr r0, [r0]
- str r0, [r3]
- ldr r0, _08037F30 @ =c2_8011A1C
- bl SetMainCallback2
-_08037F1C:
- pop {r0}
- bx r0
- .align 2, 0
-_08037F20: .4byte gReceivedRemoteLinkPlayers
-_08037F24: .4byte gMain
-_08037F28: .4byte 0x0000043d
-_08037F2C: .4byte gPreBattleCallback1
-_08037F30: .4byte c2_8011A1C
- thumb_func_end sub_8037EF0
-
- thumb_func_start sub_8037F34
-sub_8037F34: @ 8037F34
- push {lr}
- ldr r0, _08037F64 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08037F9A
- ldr r0, _08037F68 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08037F78
- bl sub_800832C
- ldr r1, _08037F6C @ =gBattleBankFunc
- ldr r0, _08037F70 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037F74 @ =sub_8037EF0
- str r1, [r0]
- b _08037F9A
- .align 2, 0
-_08037F64: .4byte gPaletteFade
-_08037F68: .4byte gBattleTypeFlags
-_08037F6C: .4byte gBattleBankFunc
-_08037F70: .4byte gActiveBank
-_08037F74: .4byte sub_8037EF0
-_08037F78:
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r2, _08037FA0 @ =gMain
- ldr r0, _08037FA4 @ =0x0000043d
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _08037FA8 @ =gPreBattleCallback1
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_08037F9A:
- pop {r0}
- bx r0
- .align 2, 0
-_08037FA0: .4byte gMain
-_08037FA4: .4byte 0x0000043d
-_08037FA8: .4byte gPreBattleCallback1
- thumb_func_end sub_8037F34
-
- thumb_func_start sub_8037FAC
-sub_8037FAC: @ 8037FAC
- push {lr}
- ldr r0, _08037FD0 @ =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037FD4 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08037FCA
- bl dp01_tbl4_exec_completed
-_08037FCA:
- pop {r0}
- bx r0
- .align 2, 0
-_08037FD0: .4byte gActiveBank
-_08037FD4: .4byte 0x02017810
- thumb_func_end sub_8037FAC
-
- thumb_func_start sub_8037FD8
-sub_8037FD8: @ 8037FD8
- push {lr}
- ldr r0, _08037FFC @ =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08038000 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08037FF6
- bl dp01_tbl4_exec_completed
-_08037FF6:
- pop {r0}
- bx r0
- .align 2, 0
-_08037FFC: .4byte gActiveBank
-_08038000: .4byte 0x02017810
- thumb_func_end sub_8037FD8
-
- thumb_func_start dp01_tbl4_exec_completed
-dp01_tbl4_exec_completed: @ 8038004
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _08038044 @ =gBattleBankFunc
- ldr r4, _08038048 @ =gActiveBank
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803804C @ =sub_803752C
- str r1, [r0]
- ldr r0, _08038050 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08038058
- bl GetMultiplayerId
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl dp01_prepare_buffer_wireless_probably
- ldr r1, _08038054 @ =gBattleBufferA
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _0803806A
- .align 2, 0
-_08038044: .4byte gBattleBankFunc
-_08038048: .4byte gActiveBank
-_0803804C: .4byte sub_803752C
-_08038050: .4byte gBattleTypeFlags
-_08038054: .4byte gBattleBufferA
-_08038058:
- ldr r2, _08038074 @ =gBattleExecBuffer
- ldr r1, _08038078 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_0803806A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08038074: .4byte gBattleExecBuffer
-_08038078: .4byte gBitTable
- thumb_func_end dp01_tbl4_exec_completed
+ thumb_func_end AI_ShouldUseItem
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_807B69C.s b/asm/battle_anim_807B69C.s
deleted file mode 100644
index e34f47f1c..000000000
--- a/asm/battle_anim_807B69C.s
+++ /dev/null
@@ -1,960 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start unref_sub_807B69C
-unref_sub_807B69C: @ 807B69C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0807B740 @ =gObjectBankIDs
- adds r0, r4, r0
- ldrb r6, [r0]
- ldr r0, _0807B744 @ =sub_807B7E0
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0807B748 @ =gBattleAnimPicTable + (136 * 8)
- bl LoadCompressedObjectPic
- ldr r0, _0807B74C @ =gBattleAnimPaletteTable + (136 * 8)
- bl LoadCompressedObjectPalette
- ldr r1, _0807B750 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r1
- strh r4, [r1, 0x8]
- cmp r5, 0
- beq _0807B75C
- movs r0, 0x1F
- strh r0, [r1, 0xA]
- movs r5, 0
- lsls r0, r6, 4
- ldr r7, _0807B754 @ =gSprites
- adds r0, r6
- lsls r0, 2
- adds r6, r0, r7
-_0807B6F0:
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- ldrh r2, [r6, 0x22]
- adds r2, 0x20
- lsls r2, 16
- asrs r2, 16
- ldr r0, _0807B758 @ =gSpriteTemplate_83931F8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r3, r0, r7
- lsls r0, r5, 1
- adds r0, r5
- lsls r1, r0, 4
- adds r0, r1
- strh r0, [r3, 0x2E]
- movs r0, 0xFF
- lsls r0, 8
- strh r0, [r3, 0x30]
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- cmp r5, 0x4
- bls _0807B734
- movs r0, 0x15
- strh r0, [r3, 0x3A]
-_0807B734:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _0807B6F0
- b _0807B7BC
- .align 2, 0
-_0807B740: .4byte gObjectBankIDs
-_0807B744: .4byte sub_807B7E0
-_0807B748: .4byte gBattleAnimPicTable + (136 * 8)
-_0807B74C: .4byte gBattleAnimPaletteTable + (136 * 8)
-_0807B750: .4byte gTasks
-_0807B754: .4byte gSprites
-_0807B758: .4byte gSpriteTemplate_83931F8
-_0807B75C:
- movs r0, 0xF8
- lsls r0, 7
- strh r0, [r1, 0xA]
- movs r5, 0
- lsls r0, r6, 4
- ldr r7, _0807B7D8 @ =gSprites
- adds r0, r6
- lsls r0, 2
- adds r6, r0, r7
-_0807B76E:
- movs r2, 0x20
- ldrsh r1, [r6, r2]
- ldrh r2, [r6, 0x22]
- subs r2, 0x20
- lsls r2, 16
- asrs r2, 16
- ldr r0, _0807B7DC @ =gSpriteTemplate_83931F8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r3, r0, r7
- lsls r0, r5, 1
- adds r0, r5
- lsls r1, r0, 4
- adds r0, r1
- strh r0, [r3, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r3, 0x30]
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- cmp r5, 0x4
- bls _0807B7B2
- movs r0, 0x15
- strh r0, [r3, 0x3A]
-_0807B7B2:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _0807B76E
-_0807B7BC:
- ldr r0, _0807B7D8 @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x3C]
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0807B7D8: .4byte gSprites
-_0807B7DC: .4byte gSpriteTemplate_83931F8
- thumb_func_end unref_sub_807B69C
-
- thumb_func_start sub_807B7E0
-sub_807B7E0: @ 807B7E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0807B838 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0xC]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x2
- bne _0807B866
- movs r0, 0
- strh r0, [r4, 0xC]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 20
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r0, 16
- ldrb r2, [r4, 0x10]
- ldrh r3, [r4, 0xA]
- movs r1, 0x10
- bl BlendPalette
- ldrh r2, [r4, 0x12]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0807B83C
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0807B86A
- movs r0, 0x1
- eors r0, r2
- strh r0, [r4, 0x12]
- b _0807B86A
- .align 2, 0
-_0807B838: .4byte gTasks
-_0807B83C:
- ldrh r1, [r4, 0x10]
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bge _0807B86A
- strh r1, [r4, 0x10]
- movs r0, 0x1
- eors r0, r2
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0807B86A
- adds r0, r5, 0
- bl DestroyTask
- b _0807B86A
-_0807B866:
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
-_0807B86A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_807B7E0
-
- thumb_func_start sub_807B870
-sub_807B870: @ 807B870
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x3A]
- movs r3, 0x3A
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _0807B89C
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r3]
- ldr r1, _0807B898 @ =sub_807B8A4
- str r1, [r2, 0x1C]
- adds r0, r2, 0
- bl _call_via_r1
- b _0807B8A0
- .align 2, 0
-_0807B898: .4byte sub_807B8A4
-_0807B89C:
- subs r0, r1, 0x1
- strh r0, [r2, 0x3A]
-_0807B8A0:
- pop {r0}
- bx r0
- thumb_func_end sub_807B870
-
- thumb_func_start sub_807B8A4
-sub_807B8A4: @ 807B8A4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- bgt _0807B8D0
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
- b _0807B8D6
-_0807B8D0:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
-_0807B8D6:
- strb r0, [r1]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x34
- bne _0807B918
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0807B912
- adds r0, r4, 0
- bl DestroySpriteAndFreeResources
- b _0807B918
-_0807B912:
- adds r0, r4, 0
- bl DestroySprite
-_0807B918:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_807B8A4
-
- thumb_func_start sub_807B920
-sub_807B920: @ 807B920
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _0807B9B0 @ =gBattleAnimEnemyMonIndex
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- ldr r1, _0807B9B4 @ =0xffe00000
- adds r0, r1
- lsrs r5, r0, 16
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- ldr r2, _0807B9B8 @ =0xffdc0000
- adds r0, r2
- lsrs r4, r0, 16
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0807B95E
- lsls r0, r5, 16
- ldr r1, _0807B9BC @ =0xfffa0000
- adds r0, r1
- lsrs r5, r0, 16
-_0807B95E:
- ldr r1, _0807B9C0 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0807B9C4 @ =gSpriteTemplate_83931E0
- lsls r1, r5, 16
- asrs r1, 16
- lsls r2, r4, 16
- asrs r2, 16
- movs r3, 0x4
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _0807B9C8 @ =gSprites
- adds r0, r1
- ldr r1, _0807B9CC @ =gSubspriteTables_83931D8
- bl SetSubspriteTables
- ldr r1, _0807B9D0 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x26]
- ldr r1, _0807B9D4 @ =sub_807B9D8
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B9B0: .4byte gBattleAnimEnemyMonIndex
-_0807B9B4: .4byte 0xffe00000
-_0807B9B8: .4byte 0xffdc0000
-_0807B9BC: .4byte 0xfffa0000
-_0807B9C0: .4byte REG_BLDCNT
-_0807B9C4: .4byte gSpriteTemplate_83931E0
-_0807B9C8: .4byte gSprites
-_0807B9CC: .4byte gSubspriteTables_83931D8
-_0807B9D0: .4byte gTasks
-_0807B9D4: .4byte sub_807B9D8
- thumb_func_end sub_807B920
-
- thumb_func_start sub_807B9D8
-sub_807B9D8: @ 807B9D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807BA04 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- adds r2, r0, 0
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _0807BA0C
- ldr r0, _0807BA08 @ =sub_807BA24
- str r0, [r1]
- movs r0, 0
- strh r0, [r1, 0xA]
- b _0807BA1C
- .align 2, 0
-_0807BA04: .4byte gTasks
-_0807BA08: .4byte sub_807BA24
-_0807BA0C:
- lsls r0, r2, 24
- lsrs r0, 24
- ldr r2, _0807BA20 @ =REG_BLDALPHA
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- strh r1, [r2]
-_0807BA1C:
- pop {r0}
- bx r0
- .align 2, 0
-_0807BA20: .4byte REG_BLDALPHA
- thumb_func_end sub_807B9D8
-
- thumb_func_start sub_807BA24
-sub_807BA24: @ 807BA24
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0807BABC @ =0x0000271a
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0807BAC0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0xA]
- adds r1, r0, 0x1
- strh r1, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- ble _0807BAB4
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0807BAB4
- ldr r3, _0807BAC4 @ =gPlttBufferFaded
- lsls r2, 4
- mov r12, r2
- ldr r1, _0807BAC8 @ =0x0000010d
- add r1, r12
- lsls r1, 1
- adds r1, r3
- ldrh r4, [r1]
- movs r2, 0x87
- lsls r2, 1
- add r2, r12
- lsls r2, 1
- adds r2, r3
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r0, _0807BACC @ =0x0000010f
- add r0, r12
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- strh r1, [r2]
- strh r4, [r0]
- strh r6, [r5, 0xC]
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0807BAB4
- strh r6, [r5, 0xE]
- strh r6, [r5, 0xA]
- ldrh r0, [r5, 0x10]
- adds r0, 0x1
- strh r0, [r5, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0807BAB4
- movs r0, 0x9
- strh r0, [r5, 0xA]
- ldr r0, _0807BAD0 @ =sub_807BAD4
- str r0, [r5]
-_0807BAB4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BABC: .4byte 0x0000271a
-_0807BAC0: .4byte gTasks
-_0807BAC4: .4byte gPlttBufferFaded
-_0807BAC8: .4byte 0x0000010d
-_0807BACC: .4byte 0x0000010f
-_0807BAD0: .4byte sub_807BAD4
- thumb_func_end sub_807BA24
-
- thumb_func_start sub_807BAD4
-sub_807BAD4: @ 807BAD4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807BB04 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- ldrh r0, [r2, 0xA]
- subs r0, 0x1
- adds r3, r0, 0
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0807BB0C
- ldr r0, _0807BB08 @ =sub_807BB24
- str r0, [r2]
- movs r0, 0
- strh r0, [r2, 0xA]
- b _0807BB1C
- .align 2, 0
-_0807BB04: .4byte gTasks
-_0807BB08: .4byte sub_807BB24
-_0807BB0C:
- lsls r0, r3, 24
- lsrs r0, 24
- ldr r2, _0807BB20 @ =REG_BLDALPHA
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- strh r1, [r2]
-_0807BB1C:
- pop {r0}
- bx r0
- .align 2, 0
-_0807BB20: .4byte REG_BLDALPHA
- thumb_func_end sub_807BAD4
-
- thumb_func_start sub_807BB24
-sub_807BB24: @ 807BB24
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- ldr r1, _0807BB64 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x25
- bne _0807BB6C
- ldrh r0, [r1, 0x26]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0807BB68 @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- b _0807BB7E
- .align 2, 0
-_0807BB64: .4byte gTasks
-_0807BB68: .4byte gSprites
-_0807BB6C:
- cmp r0, 0x27
- bne _0807BB7E
- ldr r0, _0807BB84 @ =REG_BLDCNT
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_0807BB7E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BB84: .4byte REG_BLDCNT
- thumb_func_end sub_807BB24
-
- thumb_func_start sub_807BB88
-sub_807BB88: @ 807BB88
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r3, 0
- ldr r0, _0807BBA8 @ =0x02017840
- ldrh r0, [r0]
- subs r0, 0xF
- cmp r0, 0x2B
- bls _0807BB9C
- b _0807BD20
-_0807BB9C:
- lsls r0, 2
- ldr r1, _0807BBAC @ =_0807BBB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807BBA8: .4byte 0x02017840
-_0807BBAC: .4byte _0807BBB0
- .align 2, 0
-_0807BBB0:
- .4byte _0807BC60
- .4byte _0807BC66
- .4byte _0807BC6C
- .4byte _0807BC72
- .4byte _0807BC78
- .4byte _0807BC7E
- .4byte _0807BC84
- .4byte _0807BC8A
- .4byte _0807BC90
- .4byte _0807BC96
- .4byte _0807BC9C
- .4byte _0807BCA2
- .4byte _0807BCA8
- .4byte _0807BCAE
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BCB4
- .4byte _0807BCB8
- .4byte _0807BCBC
- .4byte _0807BCC0
- .4byte _0807BCC4
- .4byte _0807BCC8
- .4byte _0807BCCC
- .4byte _0807BCD0
- .4byte _0807BCD8
- .4byte _0807BCE0
- .4byte _0807BCE8
- .4byte _0807BCF0
- .4byte _0807BCF8
- .4byte _0807BD00
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD08
- .4byte _0807BD0C
- .4byte _0807BD10
- .4byte _0807BD18
-_0807BC60:
- movs r5, 0
- movs r2, 0
- b _0807BD28
-_0807BC66:
- movs r5, 0
- movs r2, 0x1
- b _0807BD28
-_0807BC6C:
- movs r5, 0
- movs r2, 0x3
- b _0807BD28
-_0807BC72:
- movs r5, 0
- movs r2, 0x5
- b _0807BD28
-_0807BC78:
- movs r5, 0
- movs r2, 0x6
- b _0807BD28
-_0807BC7E:
- movs r5, 0
- movs r2, 0x2
- b _0807BD28
-_0807BC84:
- movs r5, 0
- movs r2, 0x4
- b _0807BD28
-_0807BC8A:
- movs r5, 0x1
- movs r2, 0
- b _0807BD28
-_0807BC90:
- movs r5, 0x1
- movs r2, 0x1
- b _0807BD28
-_0807BC96:
- movs r5, 0x1
- movs r2, 0x3
- b _0807BD28
-_0807BC9C:
- movs r5, 0x1
- movs r2, 0x5
- b _0807BD28
-_0807BCA2:
- movs r5, 0x1
- movs r2, 0x6
- b _0807BD28
-_0807BCA8:
- movs r5, 0x1
- movs r2, 0x2
- b _0807BD28
-_0807BCAE:
- movs r5, 0x1
- movs r2, 0x4
- b _0807BD28
-_0807BCB4:
- movs r5, 0
- b _0807BCD2
-_0807BCB8:
- movs r5, 0
- b _0807BCDA
-_0807BCBC:
- movs r5, 0
- b _0807BCE2
-_0807BCC0:
- movs r5, 0
- b _0807BCEA
-_0807BCC4:
- movs r5, 0
- b _0807BCF2
-_0807BCC8:
- movs r5, 0
- b _0807BCFA
-_0807BCCC:
- movs r5, 0
- b _0807BD02
-_0807BCD0:
- movs r5, 0x1
-_0807BCD2:
- movs r2, 0
- movs r3, 0x1
- b _0807BD28
-_0807BCD8:
- movs r5, 0x1
-_0807BCDA:
- movs r2, 0x1
- movs r3, 0x1
- b _0807BD28
-_0807BCE0:
- movs r5, 0x1
-_0807BCE2:
- movs r2, 0x3
- movs r3, 0x1
- b _0807BD28
-_0807BCE8:
- movs r5, 0x1
-_0807BCEA:
- movs r2, 0x5
- movs r3, 0x1
- b _0807BD28
-_0807BCF0:
- movs r5, 0x1
-_0807BCF2:
- movs r2, 0x6
- movs r3, 0x1
- b _0807BD28
-_0807BCF8:
- movs r5, 0x1
-_0807BCFA:
- movs r2, 0x2
- movs r3, 0x1
- b _0807BD28
-_0807BD00:
- movs r5, 0x1
-_0807BD02:
- movs r2, 0x4
- movs r3, 0x1
- b _0807BD28
-_0807BD08:
- movs r5, 0
- b _0807BD12
-_0807BD0C:
- movs r5, 0
- b _0807BD1A
-_0807BD10:
- movs r5, 0x1
-_0807BD12:
- movs r2, 0xFF
- movs r3, 0
- b _0807BD28
-_0807BD18:
- movs r5, 0x1
-_0807BD1A:
- movs r2, 0xFF
- movs r3, 0x1
- b _0807BD28
-_0807BD20:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _0807BD4A
-_0807BD28:
- ldr r0, _0807BD50 @ =gBattleAnimArgs
- movs r1, 0
- strh r5, [r0]
- strh r2, [r0, 0x2]
- strh r1, [r0, 0x4]
- strh r1, [r0, 0x6]
- strh r3, [r0, 0x8]
- ldr r1, _0807BD54 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0807BD58 @ =sub_80E32E0
- str r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_0807BD4A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BD50: .4byte gBattleAnimArgs
-_0807BD54: .4byte gTasks
-_0807BD58: .4byte sub_80E32E0
- thumb_func_end sub_807BB88
-
- thumb_func_start move_anim_start_t2
-move_anim_start_t2: @ 807BD5C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _0807BD98 @ =gBattleAnimPlayerMonIndex
- strb r4, [r0]
- ldr r0, _0807BD9C @ =gBattleAnimEnemyMonIndex
- strb r4, [r0]
- ldr r0, _0807BDA0 @ =gBattleAnims_StatusConditions
- movs r2, 0
- bl DoMoveAnim
- ldr r0, _0807BDA4 @ =sub_807BDAC
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807BDA8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BD98: .4byte gBattleAnimPlayerMonIndex
-_0807BD9C: .4byte gBattleAnimEnemyMonIndex
-_0807BDA0: .4byte gBattleAnims_StatusConditions
-_0807BDA4: .4byte sub_807BDAC
-_0807BDA8: .4byte gTasks
- thumb_func_end move_anim_start_t2
-
- thumb_func_start sub_807BDAC
-sub_807BDAC: @ 807BDAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0807BDF0 @ =gAnimScriptCallback
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _0807BDF4 @ =gAnimScriptActive
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807BDEA
- ldr r1, _0807BDF8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _0807BDFC @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_0807BDEA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BDF0: .4byte gAnimScriptCallback
-_0807BDF4: .4byte gAnimScriptActive
-_0807BDF8: .4byte gTasks
-_0807BDFC: .4byte 0x02017810
- thumb_func_end sub_807BDAC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_80CA710.s b/asm/battle_anim_80CA710.s
index fd5b9fb88..7b506ac24 100644
--- a/asm/battle_anim_80CA710.s
+++ b/asm/battle_anim_80CA710.s
@@ -23,7 +23,7 @@ sub_80CA710: @ 80CA710
strh r0, [r4, 0x2E]
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x30]
- ldr r0, _080CA748 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CA748 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -34,7 +34,7 @@ sub_80CA710: @ 80CA710
b _080CA74E
.align 2, 0
_080CA744: .4byte gBattleAnimArgs
-_080CA748: .4byte gBattleAnimPlayerMonIndex
+_080CA748: .4byte gBattleAnimBankAttacker
_080CA74C:
ldrh r0, [r5, 0x8]
_080CA74E:
@@ -101,7 +101,7 @@ sub_80CA7B0: @ 80CA7B0
ldr r0, _080CA7F0 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
- ldr r5, _080CA7F4 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080CA7F4 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -118,13 +118,13 @@ sub_80CA7B0: @ 80CA7B0
str r0, [r4, 0x1C]
ldr r1, _080CA7FC @ =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080CA7F0: .4byte gBattleAnimArgs
-_080CA7F4: .4byte gBattleAnimPlayerMonIndex
+_080CA7F4: .4byte gBattleAnimBankAttacker
_080CA7F8: .4byte sub_8078B34
_080CA7FC: .4byte move_anim_8074EE0
thumb_func_end sub_80CA7B0
@@ -141,7 +141,7 @@ sub_80CA800: @ 80CA800
bl StartSpriteAnim
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
- ldr r5, _080CA84C @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080CA84C @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -158,13 +158,13 @@ sub_80CA800: @ 80CA800
str r0, [r4, 0x1C]
ldr r1, _080CA854 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080CA848: .4byte gBattleAnimArgs
-_080CA84C: .4byte gBattleAnimEnemyMonIndex
+_080CA84C: .4byte gBattleAnimBankTarget
_080CA850: .4byte sub_8078B34
_080CA854: .4byte move_anim_8072740
thumb_func_end sub_80CA800
@@ -180,7 +180,7 @@ sub_80CA858: @ 80CA858
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r5, _080CA8AC @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080CA8AC @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -208,7 +208,7 @@ sub_80CA858: @ 80CA858
bx r0
.align 2, 0
_080CA8A8: .4byte gBattleAnimArgs
-_080CA8AC: .4byte gBattleAnimEnemyMonIndex
+_080CA8AC: .4byte gBattleAnimBankTarget
_080CA8B0: .4byte sub_80CA8B4
thumb_func_end sub_80CA858
@@ -228,15 +228,15 @@ _080CA8CA:
ldrsh r0, [r4, r1]
cmp r0, 0x7F
ble _080CA8E4
- ldr r0, _080CA8E0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CA8E0 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079E90
adds r0, 0x1
b _080CA8EE
.align 2, 0
-_080CA8E0: .4byte gBattleAnimEnemyMonIndex
+_080CA8E0: .4byte gBattleAnimBankTarget
_080CA8E4:
- ldr r0, _080CA924 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CA924 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079E90
adds r0, 0x6
@@ -268,7 +268,7 @@ _080CA91E:
pop {r0}
bx r0
.align 2, 0
-_080CA924: .4byte gBattleAnimEnemyMonIndex
+_080CA924: .4byte gBattleAnimBankTarget
thumb_func_end sub_80CA8B4
thumb_func_start sub_80CA928
@@ -305,7 +305,7 @@ sub_80CA928: @ 80CA928
strh r0, [r1, 0x4]
strh r2, [r1, 0x6]
ldr r4, _080CA9A0 @ =gSpriteTemplate_83D631C
- ldr r0, _080CA9A4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CA9A4 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079E90
adds r3, r0, 0
@@ -331,7 +331,7 @@ _080CA990:
_080CA998: .4byte gTasks
_080CA99C: .4byte gBattleAnimArgs
_080CA9A0: .4byte gSpriteTemplate_83D631C
-_080CA9A4: .4byte gBattleAnimEnemyMonIndex
+_080CA9A4: .4byte gBattleAnimBankTarget
thumb_func_end sub_80CA928
thumb_func_start sub_80CA9A8
@@ -343,7 +343,7 @@ sub_80CA9A8: @ 80CA9A8
ldr r6, _080CA9EC @ =gBattleAnimArgs
ldrh r0, [r6, 0x6]
strh r0, [r4, 0x2E]
- ldr r5, _080CA9F0 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080CA9F0 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -367,7 +367,7 @@ sub_80CA9A8: @ 80CA9A8
bx r0
.align 2, 0
_080CA9EC: .4byte gBattleAnimArgs
-_080CA9F0: .4byte gBattleAnimPlayerMonIndex
+_080CA9F0: .4byte gBattleAnimBankAttacker
_080CA9F4: .4byte sub_80CA9F8
thumb_func_end sub_80CA9A8
@@ -399,7 +399,7 @@ sub_80CAA14: @ 80CAA14
ands r1, r0
adds r0, r5, 0
bl StartSpriteAnim
- ldr r4, _080CAA5C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CAA5C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -421,7 +421,7 @@ sub_80CAA14: @ 80CAA14
subs r0, 0x14
b _080CAA64
.align 2, 0
-_080CAA5C: .4byte gBattleAnimPlayerMonIndex
+_080CAA5C: .4byte gBattleAnimBankAttacker
_080CAA60:
ldrh r0, [r5, 0x20]
adds r0, 0x14
@@ -436,7 +436,7 @@ _080CAA64:
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, _080CAAC4 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CAAC4 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -469,7 +469,7 @@ _080CAA64:
pop {r0}
bx r0
.align 2, 0
-_080CAAC4: .4byte gBattleAnimEnemyMonIndex
+_080CAAC4: .4byte gBattleAnimBankTarget
_080CAAC8: .4byte sub_80CAACC
thumb_func_end sub_80CAA14
@@ -522,7 +522,7 @@ sub_80CAB18: @ 80CAB18
adds r6, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080CAB78 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CAB78 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -536,7 +536,7 @@ _080CAB38:
ldr r4, _080CAB7C @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
- ldr r5, _080CAB80 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080CAB80 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -563,9 +563,9 @@ _080CAB38:
pop {r0}
bx r0
.align 2, 0
-_080CAB78: .4byte gBattleAnimPlayerMonIndex
+_080CAB78: .4byte gBattleAnimBankAttacker
_080CAB7C: .4byte gBattleAnimArgs
-_080CAB80: .4byte gBattleAnimEnemyMonIndex
+_080CAB80: .4byte gBattleAnimBankTarget
_080CAB84: .4byte sub_80CAB88
thumb_func_end sub_80CAB18
@@ -589,7 +589,7 @@ sub_80CAB88: @ 80CAB88
str r0, [r4, 0x1C]
ldr r1, _080CABBC @ =sub_80CABC0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_080CABB2:
pop {r4}
pop {r0}
@@ -619,7 +619,7 @@ sub_80CABC0: @ 80CABC0
str r0, [r4, 0x1C]
ldr r1, _080CABF4 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -693,7 +693,7 @@ sub_80CAC44: @ 80CAC44
lsrs r0, 16
cmp r0, 0x7F
bhi _080CAC98
- ldr r0, _080CAC94 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CAC94 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -706,9 +706,9 @@ sub_80CAC44: @ 80CAC44
orrs r0, r1
b _080CACBC
.align 2, 0
-_080CAC94: .4byte gBattleAnimEnemyMonIndex
+_080CAC94: .4byte gBattleAnimBankTarget
_080CAC98:
- ldr r0, _080CACE8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CACE8 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
adds r0, 0x1
@@ -749,7 +749,7 @@ _080CACE0:
pop {r0}
bx r0
.align 2, 0
-_080CACE8: .4byte gBattleAnimEnemyMonIndex
+_080CACE8: .4byte gBattleAnimBankTarget
thumb_func_end sub_80CAC44
thumb_func_start sub_80CACEC
@@ -770,7 +770,7 @@ _080CAD06:
bl DestroyAnimVisualTask
b _080CAD4A
_080CAD0E:
- ldr r0, _080CAD2C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CAD2C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -784,7 +784,7 @@ _080CAD0E:
strb r1, [r0]
b _080CAD44
.align 2, 0
-_080CAD2C: .4byte gBattleAnimEnemyMonIndex
+_080CAD2C: .4byte gBattleAnimBankTarget
_080CAD30: .4byte REG_BG2CNT
_080CAD34:
ldr r2, _080CAD50 @ =REG_BG1CNT
@@ -820,7 +820,7 @@ sub_80CAD54: @ 80CAD54
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
- ldr r0, _080CADA0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CADA0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
movs r1, 0x3
bl sub_8077ABC
@@ -842,7 +842,7 @@ sub_80CAD54: @ 80CAD54
bx r0
.align 2, 0
_080CAD9C: .4byte gBattleAnimArgs
-_080CADA0: .4byte gBattleAnimPlayerMonIndex
+_080CADA0: .4byte gBattleAnimBankAttacker
_080CADA4: .4byte sub_80CADA8
thumb_func_end sub_80CAD54
@@ -875,15 +875,15 @@ sub_80CADA8: @ 80CADA8
lsrs r0, 16
cmp r0, 0x7F
bhi _080CADF4
- ldr r0, _080CADF0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CADF0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079E90
subs r0, 0x1
b _080CADFE
.align 2, 0
-_080CADF0: .4byte gBattleAnimPlayerMonIndex
+_080CADF0: .4byte gBattleAnimBankAttacker
_080CADF4:
- ldr r0, _080CAE10 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CAE10 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079E90
adds r0, 0x1
@@ -898,7 +898,7 @@ _080CADFE:
strh r0, [r4, 0x38]
b _080CAE1A
.align 2, 0
-_080CAE10: .4byte gBattleAnimPlayerMonIndex
+_080CAE10: .4byte gBattleAnimBankAttacker
_080CAE14:
adds r0, r4, 0
bl move_anim_8072740
@@ -922,7 +922,7 @@ sub_80CAE20: @ 80CAE20
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
- ldr r0, _080CAE6C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CAE6C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
movs r1, 0x3
bl sub_8077ABC
@@ -944,7 +944,7 @@ sub_80CAE20: @ 80CAE20
bx r0
.align 2, 0
_080CAE68: .4byte gBattleAnimArgs
-_080CAE6C: .4byte gBattleAnimPlayerMonIndex
+_080CAE6C: .4byte gBattleAnimBankAttacker
_080CAE70: .4byte sub_80CAE74
thumb_func_end sub_80CAE20
@@ -1007,7 +1007,7 @@ _080CAED2:
sub_80CAED8: @ 80CAED8
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080CAF14 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080CAF14 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -1033,7 +1033,7 @@ sub_80CAED8: @ 80CAED8
pop {r0}
bx r0
.align 2, 0
-_080CAF14: .4byte gBattleAnimPlayerMonIndex
+_080CAF14: .4byte gBattleAnimBankAttacker
_080CAF18: .4byte gBattleAnimArgs
_080CAF1C: .4byte sub_80CAF20
thumb_func_end sub_80CAED8
@@ -1087,7 +1087,7 @@ _080CAF68:
sub_80CAF6C: @ 80CAF6C
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CAF8C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CAF8C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -1100,7 +1100,7 @@ sub_80CAF6C: @ 80CAF6C
negs r0, r0
b _080CAF9A
.align 2, 0
-_080CAF8C: .4byte gBattleAnimPlayerMonIndex
+_080CAF8C: .4byte gBattleAnimBankAttacker
_080CAF90:
movs r1, 0x2E
ldrsh r0, [r4, r1]
@@ -1142,7 +1142,7 @@ sub_80CAFD0: @ 80CAFD0
adds r5, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080CB024 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CB024 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -1160,7 +1160,7 @@ _080CAFF0:
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080CB030
- ldr r4, _080CB02C @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CB02C @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -1178,11 +1178,11 @@ _080CAFF0:
adds r0, r6
b _080CB050
.align 2, 0
-_080CB024: .4byte gBattleAnimPlayerMonIndex
+_080CB024: .4byte gBattleAnimBankAttacker
_080CB028: .4byte gBattleAnimArgs
-_080CB02C: .4byte gBattleAnimEnemyMonIndex
+_080CB02C: .4byte gBattleAnimBankTarget
_080CB030:
- ldr r0, _080CB07C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CB07C @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -1204,11 +1204,11 @@ _080CB050:
strh r0, [r5, 0x38]
adds r0, r5, 0
bl sub_80786EC
- ldr r0, _080CB084 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CB084 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
adds r4, r0, 0
- ldr r0, _080CB07C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CB07C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r4, 24
@@ -1218,9 +1218,9 @@ _080CB050:
movs r0, 0x1
b _080CB08A
.align 2, 0
-_080CB07C: .4byte gBattleAnimEnemyMonIndex
+_080CB07C: .4byte gBattleAnimBankTarget
_080CB080: .4byte gBattleAnimArgs
-_080CB084: .4byte gBattleAnimPlayerMonIndex
+_080CB084: .4byte gBattleAnimBankAttacker
_080CB088:
movs r0, 0
_080CB08A:
@@ -1338,7 +1338,7 @@ sub_80CB144: @ 80CB144
lsrs r0, 24
cmp r0, 0x1
bne _080CB170
- ldr r0, _080CB198 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CB198 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -1367,7 +1367,7 @@ _080CB170:
pop {r0}
bx r0
.align 2, 0
-_080CB198: .4byte gBattleAnimEnemyMonIndex
+_080CB198: .4byte gBattleAnimBankTarget
_080CB19C: .4byte gBattleAnimArgs
_080CB1A0: .4byte sub_80CB1A4
thumb_func_end sub_80CB144
@@ -1426,7 +1426,7 @@ _080CB1E0:
ldrsh r0, [r4, r1]
cmp r0, 0x7F
bgt _080CB220
- ldr r0, _080CB21C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CB21C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
lsls r0, 24
@@ -1434,9 +1434,9 @@ _080CB1E0:
subs r0, 0x1
b _080CB22E
.align 2, 0
-_080CB21C: .4byte gBattleAnimEnemyMonIndex
+_080CB21C: .4byte gBattleAnimBankTarget
_080CB220:
- ldr r0, _080CB258 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CB258 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
lsls r0, 24
@@ -1465,7 +1465,7 @@ _080CB252:
pop {r0}
bx r0
.align 2, 0
-_080CB258: .4byte gBattleAnimEnemyMonIndex
+_080CB258: .4byte gBattleAnimBankTarget
thumb_func_end sub_80CB1A4
thumb_func_start sub_80CB25C
@@ -1514,7 +1514,7 @@ sub_80CB298: @ 80CB298
ands r0, r1
strb r0, [r2]
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
movs r0, 0x80
lsls r0, 1
strh r0, [r4, 0x2E]
@@ -1535,7 +1535,7 @@ sub_80CB2D4: @ 80CB2D4
push {r4,lr}
adds r4, r0, 0
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
movs r1, 0x32
ldrsh r0, [r4, r1]
cmp r0, 0
@@ -1596,7 +1596,7 @@ sub_80CB340: @ 80CB340
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r2, r0, 24
ldr r1, _080CB36C @ =gSprites
@@ -1650,7 +1650,7 @@ sub_80CB3A8: @ 80CB3A8
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
@@ -1671,7 +1671,7 @@ sub_80CB3A8: @ 80CB3A8
lsls r1, 16
asrs r1, 24
strh r1, [r5, 0x24]
- ldr r0, _080CB430 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CB430 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -1709,7 +1709,7 @@ _080CB420:
.align 2, 0
_080CB428: .4byte gTasks
_080CB42C: .4byte gSprites
-_080CB430: .4byte gBattleAnimEnemyMonIndex
+_080CB430: .4byte gBattleAnimBankTarget
_080CB434: .4byte sub_80CB438
thumb_func_end sub_80CB3A8
@@ -1734,7 +1734,7 @@ sub_80CB438: @ 80CB438
cmp r5, 0
bne _080CB4A8
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -1800,7 +1800,7 @@ sub_80CB4CC: @ 80CB4CC
beq _080CB538
b _080CB58A
_080CB4DE:
- ldr r6, _080CB530 @ =gBattleAnimEnemyMonIndex
+ ldr r6, _080CB530 @ =gBattleAnimBankTarget
ldrb r0, [r6]
bl GetBankSide
lsls r0, 24
@@ -1840,7 +1840,7 @@ _080CB4F6:
strh r0, [r5, 0x2E]
b _080CB58A
.align 2, 0
-_080CB530: .4byte gBattleAnimEnemyMonIndex
+_080CB530: .4byte gBattleAnimBankTarget
_080CB534: .4byte gBattleAnimArgs
_080CB538:
adds r2, r5, 0
@@ -1862,7 +1862,7 @@ _080CB538:
bl ChangeSpriteAffineAnim
movs r0, 0x19
strh r0, [r5, 0x2E]
- ldr r4, _080CB590 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CB590 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -1879,13 +1879,13 @@ _080CB538:
str r0, [r5, 0x1C]
ldr r1, _080CB598 @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_080CB58A:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080CB590: .4byte gBattleAnimPlayerMonIndex
+_080CB590: .4byte gBattleAnimBankAttacker
_080CB594: .4byte sub_8078CC0
_080CB598: .4byte move_anim_8072740
thumb_func_end sub_80CB4CC
@@ -1898,7 +1898,7 @@ sub_80CB59C: @ 80CB59C
ldrsh r0, [r5, r1]
cmp r0, 0
bne _080CB608
- ldr r4, _080CB614 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CB614 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -1950,7 +1950,7 @@ _080CB608:
pop {r0}
bx r0
.align 2, 0
-_080CB614: .4byte gBattleAnimPlayerMonIndex
+_080CB614: .4byte gBattleAnimBankAttacker
_080CB618: .4byte gBattleAnimArgs
_080CB61C: .4byte sub_80CB710
thumb_func_end sub_80CB59C
@@ -1964,7 +1964,7 @@ sub_80CB620: @ 80CB620
push {r4-r6}
sub sp, 0x4
mov r9, r0
- ldr r4, _080CB6FC @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CB6FC @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -1979,7 +1979,7 @@ sub_80CB620: @ 80CB620
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r6, _080CB700 @ =gBattleAnimEnemyMonIndex
+ ldr r6, _080CB700 @ =gBattleAnimBankTarget
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
@@ -2060,8 +2060,8 @@ sub_80CB620: @ 80CB620
pop {r0}
bx r0
.align 2, 0
-_080CB6FC: .4byte gBattleAnimPlayerMonIndex
-_080CB700: .4byte gBattleAnimEnemyMonIndex
+_080CB6FC: .4byte gBattleAnimBankAttacker
+_080CB700: .4byte gBattleAnimBankTarget
_080CB704: .4byte gBattleAnimArgs
_080CB708: .4byte sub_80CB710
_080CB70C: .4byte gUnknown_03000728
@@ -2123,7 +2123,7 @@ sub_80CB768: @ 80CB768
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080CB7A8
- ldr r5, _080CB7E4 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080CB7E4 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -2178,7 +2178,7 @@ _080CB7DE:
pop {r0}
bx r0
.align 2, 0
-_080CB7E4: .4byte gBattleAnimPlayerMonIndex
+_080CB7E4: .4byte gBattleAnimBankAttacker
_080CB7E8: .4byte gBattleAnimArgs
thumb_func_end sub_80CB768
@@ -2380,7 +2380,7 @@ sub_80CB94C: @ 80CB94C
adds r5, r0, 0
movs r1, 0
bl sub_80787B0
- ldr r4, _080CB994 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CB994 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -2391,7 +2391,7 @@ sub_80CB94C: @ 80CB94C
bl sub_8077ABC
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _080CB998 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CB998 @ =gBattleAnimBankAttacker
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -2408,8 +2408,8 @@ sub_80CB94C: @ 80CB94C
movs r0, 0x1
b _080CB9AE
.align 2, 0
-_080CB994: .4byte gBattleAnimEnemyMonIndex
-_080CB998: .4byte gBattleAnimPlayerMonIndex
+_080CB994: .4byte gBattleAnimBankTarget
+_080CB998: .4byte gBattleAnimBankAttacker
_080CB99C:
strh r6, [r5, 0x3A]
adds r0, r2, 0
@@ -2487,7 +2487,7 @@ _080CBA20:
sub_80CBA28: @ 80CBA28
push {r4-r6,lr}
adds r5, r0, 0
- ldr r4, _080CBA64 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CBA64 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x1
bl sub_8077ABC
@@ -2513,7 +2513,7 @@ sub_80CBA28: @ 80CBA28
ldr r0, _080CBA68 @ =sub_80CB8E8
b _080CBA96
.align 2, 0
-_080CBA64: .4byte gBattleAnimEnemyMonIndex
+_080CBA64: .4byte gBattleAnimBankTarget
_080CBA68: .4byte sub_80CB8E8
_080CBA6C:
movs r0, 0xFF
@@ -2589,7 +2589,7 @@ sub_80CBAE8: @ 80CBAE8
adds r5, r0, 0
movs r1, 0
bl sub_8078764
- ldr r4, _080CBB30 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CBB30 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -2600,7 +2600,7 @@ sub_80CBAE8: @ 80CBAE8
bl sub_8077ABC
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _080CBB34 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CBB34 @ =gBattleAnimBankTarget
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -2617,8 +2617,8 @@ sub_80CBAE8: @ 80CBAE8
movs r0, 0x1
b _080CBB4A
.align 2, 0
-_080CBB30: .4byte gBattleAnimPlayerMonIndex
-_080CBB34: .4byte gBattleAnimEnemyMonIndex
+_080CBB30: .4byte gBattleAnimBankAttacker
+_080CBB34: .4byte gBattleAnimBankTarget
_080CBB38:
strh r6, [r5, 0x3A]
adds r0, r2, 0
@@ -3002,7 +3002,7 @@ sub_80CBDF4: @ 80CBDF4
lsls r0, 3
ldr r1, _080CBF48 @ =gTasks
adds r5, r0, r1
- ldr r4, _080CBF4C @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CBF4C @ =gBattleAnimBankTarget
ldrb r0, [r4]
bl sub_8079E90
lsls r0, 24
@@ -3156,7 +3156,7 @@ _080CBE94:
bx r0
.align 2, 0
_080CBF48: .4byte gTasks
-_080CBF4C: .4byte gBattleAnimEnemyMonIndex
+_080CBF4C: .4byte gBattleAnimBankTarget
_080CBF50: .4byte gSpriteTemplate_83D6884
_080CBF54: .4byte gSprites
_080CBF58: .4byte sub_80CBF5C
@@ -3832,13 +3832,13 @@ sub_80CC474: @ 80CC474
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CC490
- ldr r0, _080CC48C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CC48C @ =gBattleAnimBankAttacker
b _080CC492
.align 2, 0
_080CC488: .4byte gBattleAnimArgs
-_080CC48C: .4byte gBattleAnimPlayerMonIndex
+_080CC48C: .4byte gBattleAnimBankAttacker
_080CC490:
- ldr r0, _080CC4B0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CC4B0 @ =gBattleAnimBankTarget
_080CC492:
ldrb r6, [r0]
adds r0, r6, 0
@@ -3854,7 +3854,7 @@ _080CC492:
ldr r0, _080CC4B8 @ =0x0000fff0
b _080CC4CC
.align 2, 0
-_080CC4B0: .4byte gBattleAnimEnemyMonIndex
+_080CC4B0: .4byte gBattleAnimBankTarget
_080CC4B4: .4byte gBattleAnimArgs
_080CC4B8: .4byte 0x0000fff0
_080CC4BC:
@@ -3923,7 +3923,7 @@ _080CC518:
strb r0, [r4, 0x5]
b _080CC56C
_080CC534:
- ldr r0, _080CC578 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CC578 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x3
bl sub_8077ABC
@@ -3933,7 +3933,7 @@ _080CC534:
adds r0, r7
strh r0, [r4, 0x22]
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
_080CC54E:
adds r0, r6, 0
bl sub_8079ED4
@@ -3956,7 +3956,7 @@ _080CC56C:
pop {r0}
bx r0
.align 2, 0
-_080CC578: .4byte gBattleAnimEnemyMonIndex
+_080CC578: .4byte gBattleAnimBankTarget
_080CC57C: .4byte sub_80CC580
thumb_func_end sub_80CC474
@@ -4149,12 +4149,12 @@ _080CC6E8:
ldrsh r0, [r1, r3]
cmp r0, 0
bne _080CC6F8
- ldr r4, _080CC6F4 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CC6F4 @ =gBattleAnimBankAttacker
b _080CC6FA
.align 2, 0
-_080CC6F4: .4byte gBattleAnimPlayerMonIndex
+_080CC6F4: .4byte gBattleAnimBankAttacker
_080CC6F8:
- ldr r4, _080CC734 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CC734 @ =gBattleAnimBankTarget
_080CC6FA:
ldrb r0, [r4]
movs r1, 0x2
@@ -4184,7 +4184,7 @@ _080CC6FA:
strh r2, [r6, 0x3A]
b _080CC74C
.align 2, 0
-_080CC734: .4byte gBattleAnimEnemyMonIndex
+_080CC734: .4byte gBattleAnimBankTarget
_080CC738: .4byte gBattleAnimArgs
_080CC73C:
strh r5, [r6, 0x20]
@@ -4317,7 +4317,7 @@ _080CC826:
sub_80CC82C: @ 80CC82C
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CC84C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CC84C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4331,7 +4331,7 @@ sub_80CC82C: @ 80CC82C
ldrh r0, [r2, 0x2]
b _080CC860
.align 2, 0
-_080CC84C: .4byte gBattleAnimPlayerMonIndex
+_080CC84C: .4byte gBattleAnimBankAttacker
_080CC850: .4byte gBattleAnimArgs
_080CC854:
ldr r0, _080CC878 @ =gBattleAnimArgs
@@ -4348,7 +4348,7 @@ _080CC860:
str r0, [r4, 0x1C]
ldr r1, _080CC880 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -4362,7 +4362,7 @@ _080CC880: .4byte move_anim_8072740
sub_80CC884: @ 80CC884
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080CC8BC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CC8BC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4387,7 +4387,7 @@ _080CC89E:
pop {r0}
bx r0
.align 2, 0
-_080CC8BC: .4byte gBattleAnimPlayerMonIndex
+_080CC8BC: .4byte gBattleAnimBankAttacker
_080CC8C0: .4byte sub_80CC810
_080CC8C4: .4byte gBattleAnimArgs
thumb_func_end sub_80CC884
@@ -4418,7 +4418,7 @@ sub_80CC8C8: @ 80CC8C8
bl StartSpriteAffineAnim
ldr r1, _080CC90C @ =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CC910 @ =sub_8078504
str r0, [r4, 0x1C]
pop {r4}
@@ -4434,7 +4434,7 @@ _080CC910: .4byte sub_8078504
sub_80CC914: @ 80CC914
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080CC964 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CC964 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -4470,7 +4470,7 @@ _080CC948:
strh r0, [r5, 0x20]
b _080CC984
.align 2, 0
-_080CC964: .4byte gBattleAnimEnemyMonIndex
+_080CC964: .4byte gBattleAnimBankTarget
_080CC968: .4byte sub_80CCB00
_080CC96C: .4byte gBattleAnimArgs
_080CC970:
@@ -4535,7 +4535,7 @@ sub_80CC9BC: @ 80CC9BC
.align 2, 0
_080CC9D8: .4byte gBattleAnimArgs
_080CC9DC:
- ldr r5, _080CC9F8 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080CC9F8 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r4, 0x2
eors r0, r4
@@ -4548,9 +4548,9 @@ _080CC9DC:
adds r0, r4, 0
b _080CCA68
.align 2, 0
-_080CC9F8: .4byte gBattleAnimEnemyMonIndex
+_080CC9F8: .4byte gBattleAnimBankTarget
_080CC9FC:
- ldr r5, _080CCA54 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080CCA54 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -4566,7 +4566,7 @@ _080CC9FC:
mov r8, r2
mov r1, r8
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080CCA72
@@ -4590,9 +4590,9 @@ _080CC9FC:
lsrs r4, r0, 1
b _080CCA72
.align 2, 0
-_080CCA54: .4byte gBattleAnimEnemyMonIndex
+_080CCA54: .4byte gBattleAnimBankTarget
_080CCA58:
- ldr r4, _080CCAA4 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CCAA4 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -4607,7 +4607,7 @@ _080CCA68:
_080CCA72:
strh r7, [r6, 0x20]
strh r4, [r6, 0x22]
- ldr r0, _080CCAA4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CCAA4 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4631,7 +4631,7 @@ _080CCA8A:
strh r0, [r6, 0x20]
b _080CCAC4
.align 2, 0
-_080CCAA4: .4byte gBattleAnimEnemyMonIndex
+_080CCAA4: .4byte gBattleAnimBankTarget
_080CCAA8: .4byte sub_80CCB00
_080CCAAC: .4byte gBattleAnimArgs
_080CCAB0:
@@ -4723,7 +4723,7 @@ _080CCB26:
bne _080CCB5C
ldr r1, _080CCB64 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
movs r0, 0x3
strh r0, [r4, 0x2E]
ldr r0, _080CCB68 @ =sub_80782D8
@@ -4861,7 +4861,7 @@ sub_80CCC50: @ 80CCC50
ldr r4, _080CCC70 @ =gBattleAnimArgs
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x2E]
- ldr r0, _080CCC74 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CCC74 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4873,7 +4873,7 @@ sub_80CCC50: @ 80CCC50
b _080CCC7E
.align 2, 0
_080CCC70: .4byte gBattleAnimArgs
-_080CCC74: .4byte gBattleAnimPlayerMonIndex
+_080CCC74: .4byte gBattleAnimBankAttacker
_080CCC78:
ldrh r0, [r4]
ldrh r1, [r5, 0x20]
@@ -4977,7 +4977,7 @@ sub_80CCD24: @ 80CCD24
adds r0, 0x8
strh r0, [r1, 0x2]
_080CCD3A:
- ldr r6, _080CCD9C @ =gBattleAnimPlayerMonIndex
+ ldr r6, _080CCD9C @ =gBattleAnimBankAttacker
ldrb r0, [r6]
movs r1, 0
bl sub_8077EE4
@@ -5022,7 +5022,7 @@ _080CCD78:
b _080CCDB8
.align 2, 0
_080CCD98: .4byte gBattleAnimArgs
-_080CCD9C: .4byte gBattleAnimPlayerMonIndex
+_080CCD9C: .4byte gBattleAnimBankAttacker
_080CCDA0:
ldrb r0, [r6]
bl sub_8079ED4
@@ -5207,7 +5207,7 @@ _080CCF00: .4byte sub_807861C
sub_80CCF04: @ 80CCF04
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, _080CCF5C @ =gBattleAnimEnemyMonIndex
+ ldr r6, _080CCF5C @ =gBattleAnimBankTarget
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
@@ -5248,7 +5248,7 @@ sub_80CCF04: @ 80CCF04
pop {r0}
bx r0
.align 2, 0
-_080CCF5C: .4byte gBattleAnimEnemyMonIndex
+_080CCF5C: .4byte gBattleAnimBankTarget
_080CCF60: .4byte 0x0000ffe8
_080CCF64: .4byte REG_BLDCNT
_080CCF68: .4byte REG_BLDALPHA
@@ -5531,7 +5531,7 @@ _080CD154:
strh r0, [r4, 0x32]
ldr r1, _080CD188 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CD18C @ =sub_8078394
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -5552,13 +5552,13 @@ sub_80CD190: @ 80CD190
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CD1AC
- ldr r0, _080CD1A8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CD1A8 @ =gBattleAnimBankAttacker
b _080CD1AE
.align 2, 0
_080CD1A4: .4byte gBattleAnimArgs
-_080CD1A8: .4byte gBattleAnimPlayerMonIndex
+_080CD1A8: .4byte gBattleAnimBankAttacker
_080CD1AC:
- ldr r0, _080CD1F0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CD1F0 @ =gBattleAnimBankTarget
_080CD1AE:
ldrb r6, [r0]
bl IsDoubleBattle
@@ -5568,7 +5568,7 @@ _080CD1AE:
movs r1, 0x2
adds r0, r6, 0
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080CD1F8
@@ -5590,7 +5590,7 @@ _080CD1AE:
strh r0, [r5, 0x22]
b _080CD248
.align 2, 0
-_080CD1F0: .4byte gBattleAnimEnemyMonIndex
+_080CD1F0: .4byte gBattleAnimBankTarget
_080CD1F4: .4byte gBattleAnimArgs
_080CD1F8:
ldr r4, _080CD218 @ =gBattleAnimArgs
@@ -5640,7 +5640,7 @@ _080CD248:
strh r0, [r5, 0x32]
ldr r1, _080CD26C @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CD270 @ =sub_8078394
str r0, [r5, 0x1C]
pop {r4-r6}
@@ -5657,7 +5657,7 @@ sub_80CD274: @ 80CD274
push {r4,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r0, _080CD2A0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CD2A0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -5674,7 +5674,7 @@ sub_80CD274: @ 80CD274
strh r0, [r4, 0x22]
b _080CD2C2
.align 2, 0
-_080CD2A0: .4byte gBattleAnimPlayerMonIndex
+_080CD2A0: .4byte gBattleAnimBankAttacker
_080CD2A4: .4byte gBattleAnimArgs
_080CD2A8:
ldr r2, _080CD2CC @ =gBattleAnimArgs
@@ -5749,7 +5749,7 @@ sub_80CD328: @ 80CD328
push {r4,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r0, _080CD358 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CD358 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -5768,7 +5768,7 @@ sub_80CD328: @ 80CD328
strh r0, [r4, 0x34]
b _080CD37E
.align 2, 0
-_080CD358: .4byte gBattleAnimPlayerMonIndex
+_080CD358: .4byte gBattleAnimBankAttacker
_080CD35C: .4byte gBattleAnimArgs
_080CD360:
ldr r2, _080CD388 @ =gBattleAnimArgs
@@ -5850,7 +5850,7 @@ sub_80CD3E0: @ 80CD3E0
ldr r1, _080CD400 @ =sub_80782D8
str r1, [r0, 0x1C]
ldr r1, _080CD404 @ =sub_80CD408
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
@@ -5877,7 +5877,7 @@ _080CD41E:
str r0, [r5, 0x1C]
ldr r1, _080CD434 @ =sub_80CD408
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
b _080CD49E
.align 2, 0
_080CD430: .4byte sub_80782D8
@@ -5917,7 +5917,7 @@ _080CD438:
str r0, [r5, 0x1C]
ldr r1, _080CD4B4 @ =sub_80CD4B8
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
movs r1, 0x80
lsls r1, 1
adds r0, r1, 0
@@ -5960,7 +5960,7 @@ sub_80CD4B8: @ 80CD4B8
str r0, [r2, 0x1C]
ldr r1, _080CD4DC @ =sub_80CD4EC
adds r0, r2, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
b _080CD4E4
.align 2, 0
_080CD4D8: .4byte sub_80782D8
@@ -5990,7 +5990,7 @@ sub_80CD4EC: @ 80CD4EC
str r0, [r5, 0x1C]
ldr r1, _080CD510 @ =sub_80CD5A8
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
b _080CD594
.align 2, 0
_080CD50C: .4byte sub_80782D8
@@ -6043,7 +6043,7 @@ _080CD54C:
strh r1, [r5, 0x24]
movs r0, 0x6
strh r0, [r5, 0x2E]
- ldr r4, _080CD59C @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CD59C @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -6062,13 +6062,13 @@ _080CD54C:
str r0, [r5, 0x1C]
ldr r1, _080CD5A4 @ =sub_80CD654
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_080CD594:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
-_080CD59C: .4byte gBattleAnimEnemyMonIndex
+_080CD59C: .4byte gBattleAnimBankTarget
_080CD5A0: .4byte sub_8078B34
_080CD5A4: .4byte sub_80CD654
thumb_func_end sub_80CD4EC
@@ -6376,7 +6376,7 @@ sub_80CD7CC: @ 80CD7CC
adds r4, r0, 0
movs r0, 0x6
strh r0, [r4, 0x2E]
- ldr r5, _080CD80C @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080CD80C @ =gBattleAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
lsls r0, 24
@@ -6397,14 +6397,14 @@ _080CD7EA:
strh r0, [r4, 0x34]
ldr r1, _080CD814 @ =sub_80CD81C
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CD818 @ =sub_8078458
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080CD80C: .4byte gBattleAnimPlayerMonIndex
+_080CD80C: .4byte gBattleAnimBankAttacker
_080CD810: .4byte gObjectBankIDs
_080CD814: .4byte sub_80CD81C
_080CD818: .4byte sub_8078458
@@ -6419,7 +6419,7 @@ sub_80CD81C: @ 80CD81C
cmp r6, 0
bne _080CD858
ldr r1, _080CD898 @ =gObjectBankIDs
- ldr r4, _080CD89C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CD89C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
@@ -6475,7 +6475,7 @@ _080CD892:
bx r0
.align 2, 0
_080CD898: .4byte gObjectBankIDs
-_080CD89C: .4byte gBattleAnimPlayerMonIndex
+_080CD89C: .4byte gBattleAnimBankAttacker
_080CD8A0: .4byte 0xfffffd00
_080CD8A4: .4byte sub_80CD9B8
thumb_func_end sub_80CD81C
@@ -6486,7 +6486,7 @@ sub_80CD8A8: @ 80CD8A8
adds r4, r0, 0
movs r0, 0x4
strh r0, [r4, 0x2E]
- ldr r5, _080CD8E8 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080CD8E8 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
lsls r0, 24
@@ -6507,14 +6507,14 @@ _080CD8C6:
strh r0, [r4, 0x34]
ldr r1, _080CD8F0 @ =sub_80CD9B8
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CD8F4 @ =sub_8078458
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080CD8E8: .4byte gBattleAnimPlayerMonIndex
+_080CD8E8: .4byte gBattleAnimBankAttacker
_080CD8EC: .4byte gObjectBankIDs
_080CD8F0: .4byte sub_80CD9B8
_080CD8F4: .4byte sub_8078458
@@ -6551,7 +6551,7 @@ sub_80CD91C: @ 80CD91C
cmp r0, 0
bne _080CD96C
ldr r1, _080CD958 @ =gObjectBankIDs
- ldr r4, _080CD95C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CD95C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
@@ -6574,7 +6574,7 @@ sub_80CD91C: @ 80CD91C
b _080CD96A
.align 2, 0
_080CD958: .4byte gObjectBankIDs
-_080CD95C: .4byte gBattleAnimPlayerMonIndex
+_080CD95C: .4byte gBattleAnimBankAttacker
_080CD960:
movs r0, 0x80
lsls r0, 3
@@ -6660,7 +6660,7 @@ _080CD9EA:
_080CD9F0:
strh r5, [r4, 0x30]
ldr r1, _080CDA74 @ =gObjectBankIDs
- ldr r2, _080CDA78 @ =gBattleAnimPlayerMonIndex
+ ldr r2, _080CDA78 @ =gBattleAnimBankAttacker
ldrb r0, [r2]
adds r0, r1
ldrb r0, [r0]
@@ -6724,7 +6724,7 @@ _080CDA2E:
b _080CDAC2
.align 2, 0
_080CDA74: .4byte gObjectBankIDs
-_080CDA78: .4byte gBattleAnimPlayerMonIndex
+_080CDA78: .4byte gBattleAnimBankAttacker
_080CDA7C: .4byte 0xfffffe00
_080CDA80:
ldrh r0, [r4, 0x36]
@@ -6773,7 +6773,7 @@ sub_80CDAC8: @ 80CDAC8
lsls r0, 3
adds r5, r0, r1
ldr r1, _080CDB10 @ =gObjectBankIDs
- ldr r2, _080CDB14 @ =gBattleAnimPlayerMonIndex
+ ldr r2, _080CDB14 @ =gBattleAnimBankAttacker
ldrb r0, [r2]
adds r0, r1
ldrb r0, [r0]
@@ -6798,7 +6798,7 @@ sub_80CDAC8: @ 80CDAC8
.align 2, 0
_080CDB0C: .4byte gTasks
_080CDB10: .4byte gObjectBankIDs
-_080CDB14: .4byte gBattleAnimPlayerMonIndex
+_080CDB14: .4byte gBattleAnimBankAttacker
_080CDB18: .4byte gBattleAnimArgs
_080CDB1C:
strh r1, [r5, 0xC]
@@ -7134,13 +7134,13 @@ sub_80CDD74: @ 80CDD74
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080CDD90
- ldr r4, _080CDD8C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CDD8C @ =gBattleAnimBankAttacker
b _080CDD92
.align 2, 0
_080CDD88: .4byte gBattleAnimArgs
-_080CDD8C: .4byte gBattleAnimPlayerMonIndex
+_080CDD8C: .4byte gBattleAnimBankAttacker
_080CDD90:
- ldr r4, _080CDDD0 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CDDD0 @ =gBattleAnimBankTarget
_080CDD92:
ldrb r0, [r4]
movs r1, 0x2
@@ -7163,14 +7163,14 @@ _080CDD92:
strh r0, [r5, 0x30]
ldr r1, _080CDDD4 @ =sub_80CDEC0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CDDD8 @ =sub_8078600
str r0, [r5, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080CDDD0: .4byte gBattleAnimEnemyMonIndex
+_080CDDD0: .4byte gBattleAnimBankTarget
_080CDDD4: .4byte sub_80CDEC0
_080CDDD8: .4byte sub_8078600
thumb_func_end sub_80CDD74
@@ -7179,7 +7179,7 @@ _080CDDD8: .4byte sub_8078600
sub_80CDDDC: @ 80CDDDC
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080CDE14 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080CDE14 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -7196,14 +7196,14 @@ sub_80CDDDC: @ 80CDDDC
strh r0, [r4, 0x22]
ldr r1, _080CDE1C @ =sub_80CDE78
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CDE20 @ =sub_8078600
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080CDE14: .4byte gBattleAnimEnemyMonIndex
+_080CDE14: .4byte gBattleAnimBankTarget
_080CDE18: .4byte 0x0000ffd0
_080CDE1C: .4byte sub_80CDE78
_080CDE20: .4byte sub_8078600
@@ -7213,7 +7213,7 @@ _080CDE20: .4byte sub_8078600
sub_80CDE24: @ 80CDE24
push {r4-r6,lr}
adds r4, r0, 0
- ldr r5, _080CDE68 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080CDE68 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -7243,7 +7243,7 @@ sub_80CDE24: @ 80CDE24
pop {r0}
bx r0
.align 2, 0
-_080CDE68: .4byte gBattleAnimEnemyMonIndex
+_080CDE68: .4byte gBattleAnimBankTarget
_080CDE6C: .4byte gBattleAnimArgs
_080CDE70: .4byte 0x0000ffd0
_080CDE74: .4byte sub_80CDEC0
@@ -7268,7 +7268,7 @@ sub_80CDE78: @ 80CDE78
strh r0, [r4, 0x32]
ldr r1, _080CDEA8 @ =sub_80CDEB0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CDEAC @ =sub_8078364
str r0, [r4, 0x1C]
_080CDEA2:
@@ -7343,13 +7343,13 @@ sub_80CDF0C: @ 80CDF0C
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080CDF28
- ldr r4, _080CDF24 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CDF24 @ =gBattleAnimBankAttacker
b _080CDF2A
.align 2, 0
_080CDF20: .4byte gBattleAnimArgs
-_080CDF24: .4byte gBattleAnimPlayerMonIndex
+_080CDF24: .4byte gBattleAnimBankAttacker
_080CDF28:
- ldr r4, _080CDF64 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CDF64 @ =gBattleAnimBankTarget
_080CDF2A:
ldrb r0, [r4]
movs r1, 0
@@ -7378,7 +7378,7 @@ _080CDF2A:
pop {r0}
bx r0
.align 2, 0
-_080CDF64: .4byte gBattleAnimEnemyMonIndex
+_080CDF64: .4byte gBattleAnimBankTarget
_080CDF68: .4byte gBattleAnimArgs
_080CDF6C: .4byte sub_80CDF70
thumb_func_end sub_80CDF0C
@@ -7424,7 +7424,7 @@ _080CDFAC:
sub_80CDFB0: @ 80CDFB0
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, _080CDFF8 @ =gBattleAnimPlayerMonIndex
+ ldr r6, _080CDFF8 @ =gBattleAnimBankAttacker
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
@@ -7456,7 +7456,7 @@ sub_80CDFB0: @ 80CDFB0
pop {r0}
bx r0
.align 2, 0
-_080CDFF8: .4byte gBattleAnimPlayerMonIndex
+_080CDFF8: .4byte gBattleAnimBankAttacker
_080CDFFC: .4byte sub_80CE000
thumb_func_end sub_80CDFB0
@@ -7551,7 +7551,7 @@ sub_80CE09C: @ 80CE09C
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080CE0E6
- ldr r4, _080CE0FC @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CE0FC @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -7593,7 +7593,7 @@ _080CE0F6:
pop {r0}
bx r0
.align 2, 0
-_080CE0FC: .4byte gBattleAnimPlayerMonIndex
+_080CE0FC: .4byte gBattleAnimBankAttacker
_080CE100: .4byte gBattleAnimArgs
_080CE104: .4byte 0x0000ffff
thumb_func_end sub_80CE09C
@@ -7708,7 +7708,7 @@ _080CE1C0:
strb r0, [r2]
movs r0, 0x1E
strh r0, [r5, 0x2E]
- ldr r4, _080CE204 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CE204 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -7725,13 +7725,13 @@ _080CE1C0:
str r0, [r5, 0x1C]
ldr r1, _080CE20C @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_080CE1FC:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080CE204: .4byte gBattleAnimPlayerMonIndex
+_080CE204: .4byte gBattleAnimBankAttacker
_080CE208: .4byte sub_8078B34
_080CE20C: .4byte move_anim_8072740
thumb_func_end sub_80CE1AC
@@ -7926,7 +7926,7 @@ _080CE366:
sub_80CE36C: @ 80CE36C
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CE3A4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CE3A4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
movs r1, 0x2
bl sub_8077ABC
@@ -7951,7 +7951,7 @@ sub_80CE36C: @ 80CE36C
pop {r0}
bx r0
.align 2, 0
-_080CE3A4: .4byte gBattleAnimPlayerMonIndex
+_080CE3A4: .4byte gBattleAnimBankAttacker
_080CE3A8: .4byte gBattleAnimArgs
_080CE3AC: .4byte sub_80CE3B0
thumb_func_end sub_80CE36C
@@ -8339,7 +8339,7 @@ _080CE68E:
strh r0, [r5, 0x2E]
ldrh r0, [r6, 0x4]
strh r0, [r5, 0x30]
- ldr r4, _080CE6F8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CE6F8 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -8384,10 +8384,10 @@ _080CE68E:
b _080CE726
.align 2, 0
_080CE6F4: .4byte gBattleAnimArgs
-_080CE6F8: .4byte gBattleAnimEnemyMonIndex
+_080CE6F8: .4byte gBattleAnimBankTarget
_080CE6FC: .4byte 0xffffec00
_080CE700:
- ldr r0, _080CE740 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CE740 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -8417,7 +8417,7 @@ _080CE726:
strh r0, [r5, 0x38]
b _080CE784
.align 2, 0
-_080CE740: .4byte gBattleAnimPlayerMonIndex
+_080CE740: .4byte gBattleAnimBankAttacker
_080CE744: .4byte 0xfffff600
_080CE748:
ldrh r0, [r5, 0x20]
@@ -8515,7 +8515,7 @@ sub_80CE7E0: @ 80CE7E0
ldr r1, _080CE870 @ =gTasks
adds r6, r0, r1
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x8]
@@ -8615,7 +8615,7 @@ _080CE8B4:
_080CE8C6:
ldr r0, _080CE8E8 @ =sub_80CE910
str r0, [r6]
- ldr r0, _080CE8EC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CE8EC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -8630,7 +8630,7 @@ _080CE8C6:
.align 2, 0
_080CE8E4: .4byte sub_80CE974
_080CE8E8: .4byte sub_80CE910
-_080CE8EC: .4byte gBattleAnimPlayerMonIndex
+_080CE8EC: .4byte gBattleAnimBankAttacker
_080CE8F0: .4byte 0x0000fdff
_080CE8F4:
movs r2, 0x80
@@ -8664,7 +8664,7 @@ sub_80CE910: @ 80CE910
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CE968
- ldr r0, _080CE948 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CE948 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -8679,7 +8679,7 @@ sub_80CE910: @ 80CE910
b _080CE956
.align 2, 0
_080CE944: .4byte gTasks
-_080CE948: .4byte gBattleAnimPlayerMonIndex
+_080CE948: .4byte gBattleAnimBankAttacker
_080CE94C:
movs r0, 0x80
lsls r0, 19
@@ -8782,7 +8782,7 @@ sub_80CEA04: @ 80CEA04
push {r4,lr}
adds r4, r0, 0
ldr r1, _080CEA18 @ =move_anim_8072740
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CEA1C @ =sub_8078600
str r0, [r4, 0x1C]
pop {r4}
@@ -8964,7 +8964,7 @@ _080CEB48:
_080CEB64: .4byte gBattleAnimArgs
_080CEB68: .4byte gUnknown_083D712C
_080CEB6C:
- ldr r4, _080CEBBC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CEBBC @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -9002,7 +9002,7 @@ _080CEB86:
pop {r0}
bx r0
.align 2, 0
-_080CEBBC: .4byte gBattleAnimEnemyMonIndex
+_080CEBBC: .4byte gBattleAnimBankTarget
_080CEBC0: .4byte sub_80CEC1C
thumb_func_end sub_80CEB0C
@@ -9165,7 +9165,7 @@ _080CECE4: .4byte gUnknown_083D712C
sub_80CECE8: @ 80CECE8
push {r4-r7,lr}
adds r6, r0, 0
- ldr r7, _080CED6C @ =gBattleAnimPlayerMonIndex
+ ldr r7, _080CED6C @ =gBattleAnimBankAttacker
ldrb r0, [r7]
bl GetBankSide
lsls r0, 24
@@ -9225,7 +9225,7 @@ _080CED06:
pop {r0}
bx r0
.align 2, 0
-_080CED6C: .4byte gBattleAnimPlayerMonIndex
+_080CED6C: .4byte gBattleAnimBankAttacker
_080CED70: .4byte gBattleAnimArgs
_080CED74: .4byte sub_80CED78
thumb_func_end sub_80CECE8
@@ -9316,7 +9316,7 @@ _080CEE10: .4byte gBattleAnimArgs
_080CEE14:
ldr r6, _080CEE50 @ =0x0000fff0
_080CEE16:
- ldr r4, _080CEE54 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CEE54 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -9337,13 +9337,13 @@ _080CEE16:
str r0, [r5, 0x1C]
ldr r1, _080CEE5C @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080CEE50: .4byte 0x0000fff0
-_080CEE54: .4byte gBattleAnimPlayerMonIndex
+_080CEE54: .4byte gBattleAnimBankAttacker
_080CEE58: .4byte sub_80782D8
_080CEE5C: .4byte move_anim_8072740
thumb_func_end sub_80CEDF0
@@ -9519,13 +9519,13 @@ sub_80CEF9C: @ 80CEF9C
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CEFB8
- ldr r0, _080CEFB4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CEFB4 @ =gBattleAnimBankAttacker
b _080CEFBA
.align 2, 0
_080CEFB0: .4byte gBattleAnimArgs
-_080CEFB4: .4byte gBattleAnimPlayerMonIndex
+_080CEFB4: .4byte gBattleAnimBankAttacker
_080CEFB8:
- ldr r0, _080CEFF8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CEFF8 @ =gBattleAnimBankTarget
_080CEFBA:
ldrb r4, [r0]
adds r0, r4, 0
@@ -9547,14 +9547,14 @@ _080CEFBA:
bl StartSpriteAnim
ldr r1, _080CF000 @ =sub_80CF008
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CF004 @ =sub_8078600
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080CEFF8: .4byte gBattleAnimEnemyMonIndex
+_080CEFF8: .4byte gBattleAnimBankTarget
_080CEFFC: .4byte gBattleAnimArgs
_080CF000: .4byte sub_80CF008
_080CF004: .4byte sub_8078600
@@ -9572,7 +9572,7 @@ sub_80CF008: @ 80CF008
bne _080CF030
ldr r1, _080CF038 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrh r1, [r4, 0x30]
lsls r1, 24
lsrs r1, 24
@@ -9598,13 +9598,13 @@ sub_80CF040: @ 80CF040
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CF05C
- ldr r0, _080CF058 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CF058 @ =gBattleAnimBankAttacker
b _080CF05E
.align 2, 0
_080CF054: .4byte gBattleAnimArgs
-_080CF058: .4byte gBattleAnimPlayerMonIndex
+_080CF058: .4byte gBattleAnimBankAttacker
_080CF05C:
- ldr r0, _080CF07C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CF07C @ =gBattleAnimBankTarget
_080CF05E:
ldrb r0, [r0]
adds r1, r4, 0
@@ -9613,14 +9613,14 @@ _080CF05E:
strh r0, [r4, 0x2E]
ldr r1, _080CF080 @ =sub_80CF088
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CF084 @ =sub_80785E4
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.align 2, 0
-_080CF07C: .4byte gBattleAnimEnemyMonIndex
+_080CF07C: .4byte gBattleAnimBankTarget
_080CF080: .4byte sub_80CF088
_080CF084: .4byte sub_80785E4
thumb_func_end sub_80CF040
@@ -9641,7 +9641,7 @@ sub_80CF088: @ 80CF088
bl StartSpriteAffineAnim
ldr r1, _080CF0B4 @ =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CF0B8 @ =sub_80785E4
str r0, [r4, 0x1C]
_080CF0AE:
@@ -9662,13 +9662,13 @@ sub_80CF0BC: @ 80CF0BC
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CF0D8
- ldr r0, _080CF0D4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CF0D4 @ =gBattleAnimBankAttacker
b _080CF0DA
.align 2, 0
_080CF0D0: .4byte gBattleAnimArgs
-_080CF0D4: .4byte gBattleAnimPlayerMonIndex
+_080CF0D4: .4byte gBattleAnimBankAttacker
_080CF0D8:
- ldr r0, _080CF12C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CF12C @ =gBattleAnimBankTarget
_080CF0DA:
ldrb r5, [r0]
adds r0, r5, 0
@@ -9702,14 +9702,14 @@ _080CF102:
strh r6, [r4, 0x36]
ldr r1, _080CF130 @ =sub_80CF138
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CF134 @ =sub_80785E4
str r0, [r4, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080CF12C: .4byte gBattleAnimEnemyMonIndex
+_080CF12C: .4byte gBattleAnimBankTarget
_080CF130: .4byte sub_80CF138
_080CF134: .4byte sub_80785E4
thumb_func_end sub_80CF0BC
@@ -9808,13 +9808,13 @@ sub_80CF1C8: @ 80CF1C8
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CF1E4
- ldr r0, _080CF1E0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CF1E0 @ =gBattleAnimBankAttacker
b _080CF1E6
.align 2, 0
_080CF1DC: .4byte gBattleAnimArgs
-_080CF1E0: .4byte gBattleAnimPlayerMonIndex
+_080CF1E0: .4byte gBattleAnimBankAttacker
_080CF1E4:
- ldr r0, _080CF208 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CF208 @ =gBattleAnimBankTarget
_080CF1E6:
ldrb r4, [r0]
adds r0, r4, 0
@@ -9831,7 +9831,7 @@ _080CF1E6:
movs r0, 0x2
b _080CF216
.align 2, 0
-_080CF208: .4byte gBattleAnimEnemyMonIndex
+_080CF208: .4byte gBattleAnimBankTarget
_080CF20C:
adds r0, r5, 0
movs r1, 0x1
@@ -9868,7 +9868,7 @@ sub_80CF228: @ 80CF228
bl StartSpriteAnim
ldr r1, _080CF25C @ =sub_80CF264
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CF260 @ =sub_8078600
str r0, [r4, 0x1C]
_080CF256:
@@ -9922,7 +9922,7 @@ sub_80CF280: @ 80CF280
strh r0, [r4, 0x36]
ldr r1, _080CF2C8 @ =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, _080CF2CC @ =sub_8078278
str r1, [r4, 0x1C]
adds r0, r4, 0
@@ -9945,13 +9945,13 @@ sub_80CF2D0: @ 80CF2D0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CF2EC
- ldr r0, _080CF2E8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CF2E8 @ =gBattleAnimBankAttacker
b _080CF2EE
.align 2, 0
_080CF2E4: .4byte gBattleAnimArgs
-_080CF2E8: .4byte gBattleAnimPlayerMonIndex
+_080CF2E8: .4byte gBattleAnimBankAttacker
_080CF2EC:
- ldr r0, _080CF308 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CF308 @ =gBattleAnimBankTarget
_080CF2EE:
ldrb r0, [r0]
adds r1, r4, 0
@@ -9965,7 +9965,7 @@ _080CF2EE:
pop {r0}
bx r0
.align 2, 0
-_080CF308: .4byte gBattleAnimEnemyMonIndex
+_080CF308: .4byte gBattleAnimBankTarget
_080CF30C: .4byte sub_80CF310
thumb_func_end sub_80CF2D0
@@ -10075,7 +10075,7 @@ _080CF3C0: .4byte gSprites
sub_80CF3C4: @ 80CF3C4
push {r4-r6,lr}
adds r5, r0, 0
- ldr r4, _080CF40C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CF40C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -10089,7 +10089,7 @@ sub_80CF3C4: @ 80CF3C4
lsrs r0, 24
strh r0, [r5, 0x22]
ldr r1, _080CF410 @ =gObjectBankIDs
- ldr r0, _080CF414 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CF414 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r0, r1
ldrb r6, [r0]
@@ -10106,9 +10106,9 @@ sub_80CF3C4: @ 80CF3C4
adds r1, r0, 0
b _080CF426
.align 2, 0
-_080CF40C: .4byte gBattleAnimPlayerMonIndex
+_080CF40C: .4byte gBattleAnimBankAttacker
_080CF410: .4byte gObjectBankIDs
-_080CF414: .4byte gBattleAnimEnemyMonIndex
+_080CF414: .4byte gBattleAnimBankTarget
_080CF418: .4byte gBattleAnimArgs
_080CF41C:
ldr r1, _080CF450 @ =gBattleAnimArgs
@@ -10159,7 +10159,7 @@ sub_80CF458: @ 80CF458
str r0, [r4, 0x1C]
ldr r1, _080CF48C @ =sub_80CF490
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -10182,7 +10182,7 @@ sub_80CF490: @ 80CF490
ldr r1, _080CF4B0 @ =sub_8078B34
str r1, [r0, 0x1C]
ldr r1, _080CF4B4 @ =sub_80CF4B8
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
@@ -10217,7 +10217,7 @@ sub_80CF4D8: @ 80CF4D8
lsls r4, 24
lsrs r4, 24
ldr r1, _080CF504 @ =gObjectBankIDs
- ldr r0, _080CF508 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CF508 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -10235,7 +10235,7 @@ sub_80CF4D8: @ 80CF4D8
bx r0
.align 2, 0
_080CF504: .4byte gObjectBankIDs
-_080CF508: .4byte gBattleAnimPlayerMonIndex
+_080CF508: .4byte gBattleAnimBankAttacker
_080CF50C: .4byte gTasks
_080CF510: .4byte sub_80CF514
thumb_func_end sub_80CF4D8
@@ -10246,7 +10246,7 @@ sub_80CF514: @ 80CF514
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _080CF544 @ =gObjectBankIDs
- ldr r0, _080CF548 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CF548 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r1, r0, r1
ldrb r4, [r1]
@@ -10267,7 +10267,7 @@ sub_80CF514: @ 80CF514
b _080CF55E
.align 2, 0
_080CF544: .4byte gObjectBankIDs
-_080CF548: .4byte gBattleAnimPlayerMonIndex
+_080CF548: .4byte gBattleAnimBankAttacker
_080CF54C: .4byte gTasks
_080CF550:
ldr r2, _080CF590 @ =gTasks
@@ -10382,7 +10382,7 @@ sub_80CF610: @ 80CF610
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
- ldr r0, _080CF65C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CF65C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -10404,7 +10404,7 @@ sub_80CF610: @ 80CF610
b _080CF674
.align 2, 0
_080CF658: .4byte gBattleAnimArgs
-_080CF65C: .4byte gBattleAnimPlayerMonIndex
+_080CF65C: .4byte gBattleAnimBankAttacker
_080CF660:
movs r1, 0x4
ldrsh r0, [r5, r1]
@@ -10421,7 +10421,7 @@ _080CF674:
str r0, [r4, 0x1C]
ldr r1, _080CF68C @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -10440,7 +10440,7 @@ sub_80CF690: @ 80CF690
str r0, [r4, 0x1C]
ldr r1, _080CF6B0 @ =sub_80CF6B4
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -10462,7 +10462,7 @@ sub_80CF6B4: @ 80CF6B4
ldr r1, _080CF6D4 @ =sub_8078B34
str r1, [r0, 0x1C]
ldr r1, _080CF6D8 @ =move_anim_8072740
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
@@ -10489,7 +10489,7 @@ sub_80CF6DC: @ 80CF6DC
.align 2, 0
_080CF6FC: .4byte gBattleAnimArgs
_080CF700:
- ldr r0, _080CF7C8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CF7C8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -10509,7 +10509,7 @@ _080CF722:
adds r0, r5, 0
movs r1, 0x1
bl sub_80787B0
- ldr r4, _080CF7D0 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CF7D0 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -10575,7 +10575,7 @@ _080CF794:
str r0, [r5, 0x1C]
ldr r1, _080CF7DC @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
add sp, 0x4
pop {r3}
mov r8, r3
@@ -10583,9 +10583,9 @@ _080CF794:
pop {r0}
bx r0
.align 2, 0
-_080CF7C8: .4byte gBattleAnimPlayerMonIndex
+_080CF7C8: .4byte gBattleAnimBankAttacker
_080CF7CC: .4byte gBattleAnimArgs
-_080CF7D0: .4byte gBattleAnimEnemyMonIndex
+_080CF7D0: .4byte gBattleAnimBankTarget
_080CF7D4: .4byte 0xffffa000
_080CF7D8: .4byte sub_8078B34
_080CF7DC: .4byte move_anim_8072740
@@ -11068,7 +11068,7 @@ _080CFB68:
b _080CFBCA
_080CFB70:
ldr r1, _080CFBB4 @ =gBanksBySide
- ldr r0, _080CFBB8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CFBB8 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -11102,7 +11102,7 @@ _080CFB70:
b _080CFBC8
.align 2, 0
_080CFBB4: .4byte gBanksBySide
-_080CFBB8: .4byte gBattleAnimEnemyMonIndex
+_080CFBB8: .4byte gBattleAnimBankTarget
_080CFBBC: .4byte gTasks
_080CFBC0: .4byte gBattleAnimArgs
_080CFBC4:
@@ -11111,7 +11111,7 @@ _080CFBC4:
_080CFBC8:
strh r0, [r2, 0x4]
_080CFBCA:
- ldr r5, _080CFC24 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080CFC24 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -11137,11 +11137,11 @@ _080CFBCA:
ands r0, r1
cmp r0, 0
beq _080CFC34
- ldr r4, _080CFC30 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CFC30 @ =gBattleAnimBankTarget
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080CFC34
@@ -11152,13 +11152,13 @@ _080CFBCA:
bl sub_807A3FC
b _080CFC56
.align 2, 0
-_080CFC24: .4byte gBattleAnimPlayerMonIndex
+_080CFC24: .4byte gBattleAnimBankAttacker
_080CFC28: .4byte gTasks
_080CFC2C: .4byte gBattleTypeFlags
-_080CFC30: .4byte gBattleAnimEnemyMonIndex
+_080CFC30: .4byte gBattleAnimBankTarget
_080CFC34:
mov r5, sp
- ldr r4, _080CFC90 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CFC90 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -11203,7 +11203,7 @@ _080CFC56:
subs r0, r2, r1
b _080CFC9E
.align 2, 0
-_080CFC90: .4byte gBattleAnimEnemyMonIndex
+_080CFC90: .4byte gBattleAnimBankTarget
_080CFC94: .4byte gTasks
_080CFC98: .4byte gBattleAnimArgs
_080CFC9C:
@@ -11301,7 +11301,7 @@ _080CFD3C:
asrs r0, 16
cmp r0, 0x3F
ble _080CFDB4
- ldr r0, _080CFD84 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CFD84 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079E90
lsls r0, 24
@@ -11315,14 +11315,14 @@ _080CFD3C:
.align 2, 0
_080CFD7C: .4byte gTasks
_080CFD80: .4byte gBattleAnimArgs
-_080CFD84: .4byte gBattleAnimEnemyMonIndex
+_080CFD84: .4byte gBattleAnimBankTarget
_080CFD88: .4byte 0x0000ffc0
_080CFD8C:
lsls r0, r1, 16
asrs r0, 16
cmp r0, 0x3F
ble _080CFDB4
- ldr r0, _080CFDAC @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CFDAC @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079E90
lsls r0, 24
@@ -11334,10 +11334,10 @@ _080CFD8C:
adds r0, r1
b _080CFDC4
.align 2, 0
-_080CFDAC: .4byte gBattleAnimEnemyMonIndex
+_080CFDAC: .4byte gBattleAnimBankTarget
_080CFDB0: .4byte 0x0000ffc0
_080CFDB4:
- ldr r0, _080CFDF0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CFDF0 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079E90
lsls r0, 24
@@ -11369,7 +11369,7 @@ _080CFDDC:
pop {r0}
bx r0
.align 2, 0
-_080CFDF0: .4byte gBattleAnimEnemyMonIndex
+_080CFDF0: .4byte gBattleAnimBankTarget
_080CFDF4: .4byte gTasks
_080CFDF8: .4byte sub_80CFA20
thumb_func_end sub_80CFB04
@@ -11466,7 +11466,7 @@ sub_80CFE9C: @ 80CFE9C
adds r5, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r4, _080CFF3C @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CFF3C @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -11482,7 +11482,7 @@ sub_80CFE9C: @ 80CFE9C
adds r0, r1
lsls r0, 16
lsrs r7, r0, 16
- ldr r0, _080CFF44 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CFF44 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11530,15 +11530,15 @@ _080CFEE0:
str r0, [r5, 0x1C]
ldr r1, _080CFF4C @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
-_080CFF3C: .4byte gBattleAnimEnemyMonIndex
+_080CFF3C: .4byte gBattleAnimBankTarget
_080CFF40: .4byte gBattleAnimArgs
-_080CFF44: .4byte gBattleAnimPlayerMonIndex
+_080CFF44: .4byte gBattleAnimBankAttacker
_080CFF48: .4byte sub_8078C00
_080CFF4C: .4byte move_anim_8072740
thumb_func_end sub_80CFE9C
@@ -11568,7 +11568,7 @@ sub_80CFF68: @ 80CFF68
lsls r0, 16
asrs r0, 24
strh r0, [r4, 0x24]
- ldr r0, _080CFFD4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CFFD4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11613,7 +11613,7 @@ _080CFFCC:
pop {r0}
bx r0
.align 2, 0
-_080CFFD4: .4byte gBattleAnimPlayerMonIndex
+_080CFFD4: .4byte gBattleAnimBankAttacker
thumb_func_end sub_80CFF68
thumb_func_start sub_80CFFD8
@@ -11624,7 +11624,7 @@ sub_80CFFD8: @ 80CFFD8
bl sub_80787B0
movs r0, 0x14
strh r0, [r4, 0x2E]
- ldr r5, _080D0024 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080D0024 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -11647,12 +11647,12 @@ sub_80CFFD8: @ 80CFFD8
strb r0, [r2]
ldr r1, _080D002C @ =sub_80D0030
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080D0024: .4byte gBattleAnimEnemyMonIndex
+_080D0024: .4byte gBattleAnimBankTarget
_080D0028: .4byte sub_8078B34
_080D002C: .4byte sub_80D0030
thumb_func_end sub_80CFFD8
@@ -11781,7 +11781,7 @@ sub_80D0118: @ 80D0118
adds r4, r0, 0
movs r1, 0
bl sub_80787B0
- ldr r0, _080D0168 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D0168 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11806,7 +11806,7 @@ _080D0136:
str r0, [r4, 0x1C]
ldr r1, _080D0174 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
@@ -11814,7 +11814,7 @@ _080D0136:
pop {r0}
bx r0
.align 2, 0
-_080D0168: .4byte gBattleAnimPlayerMonIndex
+_080D0168: .4byte gBattleAnimBankAttacker
_080D016C: .4byte gBattleAnimArgs
_080D0170: .4byte sub_8078114
_080D0174: .4byte move_anim_8072740
@@ -11856,7 +11856,7 @@ _080D01A4:
strh r0, [r5, 0x22]
movs r0, 0x6
strh r0, [r5, 0x2E]
- ldr r4, _080D0200 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D0200 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -11875,7 +11875,7 @@ _080D01A4:
str r0, [r5, 0x1C]
ldr r1, _080D0208 @ =sub_80D020C
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r3}
mov r8, r3
pop {r4-r7}
@@ -11885,7 +11885,7 @@ _080D01A4:
_080D01F4: .4byte 0x0000ffe0
_080D01F8: .4byte 0x0000fff0
_080D01FC: .4byte gBattleAnimArgs
-_080D0200: .4byte gBattleAnimEnemyMonIndex
+_080D0200: .4byte gBattleAnimBankTarget
_080D0204: .4byte sub_8078B34
_080D0208: .4byte sub_80D020C
thumb_func_end sub_80D0178
@@ -11949,7 +11949,7 @@ _080D025C:
movs r0, 0x6
strh r0, [r5, 0x2E]
strh r1, [r5, 0x30]
- ldr r4, _080D02C8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D02C8 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -11984,7 +11984,7 @@ _080D025C:
_080D02BC: .4byte 0x0000ffe0
_080D02C0: .4byte 0x0000fff0
_080D02C4: .4byte gBattleAnimArgs
-_080D02C8: .4byte gBattleAnimEnemyMonIndex
+_080D02C8: .4byte gBattleAnimBankTarget
_080D02CC: .4byte sub_80D02D0
thumb_func_end sub_80D0228
@@ -12125,7 +12125,7 @@ sub_80D03C4: @ 80D03C4
lsls r5, 24
lsrs r5, 24
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -12185,7 +12185,7 @@ sub_80D0428: @ 80D0428
cmp r1, r0
bne _080D0478
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -12223,7 +12223,7 @@ sub_80D0488: @ 80D0488
ldr r0, _080D04D4 @ =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
movs r5, 0
@@ -12238,7 +12238,7 @@ sub_80D0488: @ 80D0488
strh r0, [r4, 0x10]
strh r5, [r4, 0x12]
strh r5, [r4, 0x14]
- ldr r0, _080D04D8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D04D8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079E90
lsls r0, 24
@@ -12251,7 +12251,7 @@ sub_80D0488: @ 80D0488
bx r0
.align 2, 0
_080D04D4: .4byte gTasks
-_080D04D8: .4byte gBattleAnimPlayerMonIndex
+_080D04D8: .4byte gBattleAnimBankAttacker
_080D04DC: .4byte sub_80D04E0
thumb_func_end sub_80D0488
@@ -12593,7 +12593,7 @@ _080D0770: .4byte gTasks
_080D0774: .4byte gBattleAnimArgs
_080D0778:
ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -12775,7 +12775,7 @@ sub_80D08C8: @ 80D08C8
ldr r0, _080D08F8 @ =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -12821,7 +12821,7 @@ _080D092C: .4byte gTasks
sub_80D0930: @ 80D0930
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D0960 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080D0960 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
lsls r0, 24
@@ -12840,7 +12840,7 @@ sub_80D0930: @ 80D0930
movs r0, 0x40
b _080D097E
.align 2, 0
-_080D0960: .4byte gBattleAnimPlayerMonIndex
+_080D0960: .4byte gBattleAnimBankAttacker
_080D0964:
adds r0, r4, 0
movs r1, 0x1
@@ -12855,7 +12855,7 @@ _080D0964:
ldr r0, _080D09B0 @ =0x0000ffc0
_080D097E:
strh r0, [r4, 0x30]
- ldr r0, _080D09B4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D09B4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
movs r1, 0x3
bl sub_8077ABC
@@ -12870,7 +12870,7 @@ _080D097E:
strh r1, [r4, 0x36]
ldr r1, _080D09B8 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D09BC @ =sub_8078394
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -12878,7 +12878,7 @@ _080D097E:
bx r0
.align 2, 0
_080D09B0: .4byte 0x0000ffc0
-_080D09B4: .4byte gBattleAnimPlayerMonIndex
+_080D09B4: .4byte gBattleAnimBankAttacker
_080D09B8: .4byte move_anim_8072740
_080D09BC: .4byte sub_8078394
thumb_func_end sub_80D0930
@@ -12892,13 +12892,13 @@ sub_80D09C0: @ 80D09C0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D09DC
- ldr r0, _080D09D8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D09D8 @ =gBattleAnimBankAttacker
b _080D09DE
.align 2, 0
_080D09D4: .4byte gBattleAnimArgs
-_080D09D8: .4byte gBattleAnimPlayerMonIndex
+_080D09D8: .4byte gBattleAnimBankAttacker
_080D09DC:
- ldr r0, _080D0A3C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D0A3C @ =gBattleAnimBankTarget
_080D09DE:
ldrb r5, [r0]
adds r0, r5, 0
@@ -12939,14 +12939,14 @@ _080D09F8:
_080D0A2A:
ldr r1, _080D0A44 @ =move_anim_8074EE0
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D0A48 @ =sub_80785E4
str r0, [r6, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080D0A3C: .4byte gBattleAnimEnemyMonIndex
+_080D0A3C: .4byte gBattleAnimBankTarget
_080D0A40: .4byte gBattleAnimArgs
_080D0A44: .4byte move_anim_8074EE0
_080D0A48: .4byte sub_80785E4
@@ -12963,7 +12963,7 @@ sub_80D0A4C: @ 80D0A4C
ldr r0, _080D0A80 @ =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -13019,7 +13019,7 @@ sub_80D0AB8: @ 80D0AB8
ldr r0, _080D0B2C @ =gTasks
adds r4, r1, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
movs r2, 0
@@ -13050,7 +13050,7 @@ sub_80D0AB8: @ 80D0AB8
strh r2, [r4, 0x18]
movs r0, 0x2
strh r0, [r4, 0x1A]
- ldr r0, _080D0B34 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D0B34 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -13070,7 +13070,7 @@ _080D0B22:
.align 2, 0
_080D0B2C: .4byte gTasks
_080D0B30: .4byte gSprites
-_080D0B34: .4byte gBattleAnimPlayerMonIndex
+_080D0B34: .4byte gBattleAnimBankAttacker
_080D0B38: .4byte sub_80D0B3C
thumb_func_end sub_80D0AB8
@@ -13260,7 +13260,7 @@ sub_80D0C88: @ 80D0C88
lsls r1, 3
ldr r0, _080D0CD8 @ =gTasks
adds r5, r1, r0
- ldr r4, _080D0CDC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D0CDC @ =gBattleAnimBankTarget
ldrb r0, [r4]
bl sub_8077FC0
lsls r0, 24
@@ -13290,7 +13290,7 @@ sub_80D0C88: @ 80D0C88
b _080D0CF0
.align 2, 0
_080D0CD8: .4byte gTasks
-_080D0CDC: .4byte gBattleAnimEnemyMonIndex
+_080D0CDC: .4byte gBattleAnimBankTarget
_080D0CE0: .4byte gUnknown_030042C0
_080D0CE4: .4byte REG_BG1HOFS
_080D0CE8:
@@ -13472,7 +13472,7 @@ _080D0E2C: .4byte gUnknown_03004DC0
sub_80D0E30: @ 80D0E30
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, _080D0E84 @ =gBattleAnimEnemyMonIndex
+ ldr r6, _080D0E84 @ =gBattleAnimBankTarget
ldrb r0, [r6]
movs r1, 0
bl sub_8077ABC
@@ -13509,7 +13509,7 @@ sub_80D0E30: @ 80D0E30
pop {r0}
bx r0
.align 2, 0
-_080D0E84: .4byte gBattleAnimEnemyMonIndex
+_080D0E84: .4byte gBattleAnimBankTarget
_080D0E88: .4byte sub_80D0E8C
thumb_func_end sub_80D0E30
@@ -13709,13 +13709,13 @@ sub_80D0FD8: @ 80D0FD8
adds r1, r0, 0
cmp r2, 0
bne _080D1004
- ldr r0, _080D1000 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D1000 @ =gBattleAnimBankAttacker
b _080D1006
.align 2, 0
_080D0FFC: .4byte gBattleAnimArgs
-_080D1000: .4byte gBattleAnimPlayerMonIndex
+_080D1000: .4byte gBattleAnimBankAttacker
_080D1004:
- ldr r0, _080D1040 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D1040 @ =gBattleAnimBankTarget
_080D1006:
ldrb r5, [r0]
ldrb r1, [r1, 0x6]
@@ -13729,7 +13729,7 @@ _080D1006:
movs r1, 0x2
adds r0, r5, 0
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080D107E
@@ -13744,7 +13744,7 @@ _080D1006:
movs r1, 0
b _080D1048
.align 2, 0
-_080D1040: .4byte gBattleAnimEnemyMonIndex
+_080D1040: .4byte gBattleAnimBankTarget
_080D1044:
adds r0, r5, 0
movs r1, 0x2
@@ -13826,18 +13826,18 @@ sub_80D10B8: @ 80D10B8
ldrsh r0, [r0, r2]
cmp r0, 0
bne _080D10F0
- ldr r0, _080D10E8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D10E8 @ =gBattleAnimBankAttacker
ldrb r7, [r0]
- ldr r0, _080D10EC @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D10EC @ =gBattleAnimBankTarget
b _080D10F6
.align 2, 0
_080D10E4: .4byte gBattleAnimArgs
-_080D10E8: .4byte gBattleAnimPlayerMonIndex
-_080D10EC: .4byte gBattleAnimEnemyMonIndex
+_080D10E8: .4byte gBattleAnimBankAttacker
+_080D10EC: .4byte gBattleAnimBankTarget
_080D10F0:
- ldr r0, _080D1110 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D1110 @ =gBattleAnimBankTarget
ldrb r7, [r0]
- ldr r0, _080D1114 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D1114 @ =gBattleAnimBankAttacker
_080D10F6:
ldrb r0, [r0]
mov r8, r0
@@ -13852,8 +13852,8 @@ _080D10F6:
str r1, [sp, 0x4]
b _080D1124
.align 2, 0
-_080D1110: .4byte gBattleAnimEnemyMonIndex
-_080D1114: .4byte gBattleAnimPlayerMonIndex
+_080D1110: .4byte gBattleAnimBankTarget
+_080D1114: .4byte gBattleAnimBankAttacker
_080D1118: .4byte gBattleAnimArgs
_080D111C:
movs r2, 0x2
@@ -13881,7 +13881,7 @@ _080D1124:
mov r4, r8
eors r4, r0
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080D1170
@@ -13925,7 +13925,7 @@ _080D1180:
movs r0, 0x2
eors r4, r0
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080D1204
@@ -14002,7 +14002,7 @@ _080D121A:
mov r0, r8
movs r1, 0x2
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080D127C
@@ -14139,7 +14139,7 @@ sub_80D1368: @ 80D1368
adds r4, r0, 0
movs r1, 0
bl sub_80787B0
- ldr r0, _080D139C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D139C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -14161,7 +14161,7 @@ _080D1384:
pop {r0}
bx r0
.align 2, 0
-_080D139C: .4byte gBattleAnimPlayerMonIndex
+_080D139C: .4byte gBattleAnimBankAttacker
_080D13A0: .4byte 0x0000ff60
_080D13A4: .4byte gBattleAnimArgs
_080D13A8: .4byte sub_80D13AC
@@ -14184,7 +14184,7 @@ sub_80D13AC: @ 80D13AC
strh r0, [r4, 0x24]
subs r2, 0x20
strh r2, [r4, 0x2E]
- ldr r0, _080D1418 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D1418 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -14223,7 +14223,7 @@ _080D1410:
pop {r0}
bx r0
.align 2, 0
-_080D1418: .4byte gBattleAnimPlayerMonIndex
+_080D1418: .4byte gBattleAnimBankAttacker
_080D141C: .4byte 0x0000ff60
_080D1420: .4byte sub_80D1424
thumb_func_end sub_80D13AC
@@ -14449,7 +14449,7 @@ sub_80D15A4: @ 80D15A4
ldr r0, _080D15D4 @ =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -14531,7 +14531,7 @@ sub_80D1638: @ 80D1638
strh r0, [r4, 0xE]
movs r0, 0x3
strh r0, [r4, 0x20]
- ldr r0, _080D1670 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D1670 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -14543,7 +14543,7 @@ sub_80D1638: @ 80D1638
b _080D167E
.align 2, 0
_080D166C: .4byte gTasks
-_080D1670: .4byte gBattleAnimEnemyMonIndex
+_080D1670: .4byte gBattleAnimBankTarget
_080D1674: .4byte 0x0000ffff
_080D1678:
movs r0, 0x1
@@ -14552,7 +14552,7 @@ _080D1678:
_080D167E:
strh r0, [r4, 0x24]
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -14745,7 +14745,7 @@ sub_80D17C4: @ 80D17C4
movs r0, 0x2
strh r0, [r4, 0x24]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -14888,7 +14888,7 @@ sub_80D18D4: @ 80D18D4
strh r0, [r4, 0x16]
strh r0, [r4, 0x18]
strh r0, [r4, 0x22]
- ldr r5, _080D1928 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080D1928 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -14908,7 +14908,7 @@ sub_80D18D4: @ 80D18D4
bx r0
.align 2, 0
_080D1924: .4byte gTasks
-_080D1928: .4byte gBattleAnimPlayerMonIndex
+_080D1928: .4byte gBattleAnimBankAttacker
_080D192C: .4byte sub_80D1930
thumb_func_end sub_80D18D4
@@ -15171,7 +15171,7 @@ _080D1AF4:
adds r1, r0
_080D1B1C:
adds r0, r4, 0
- bl sub_800D238
+ bl LZDecompressWram
movs r5, 0
_080D1B24:
lsls r4, r5, 5
@@ -15293,7 +15293,7 @@ sub_80D1C08: @ 80D1C08
adds r5, r0, 0
movs r1, 0
bl sub_80787B0
- ldr r6, _080D1C70 @ =gBattleAnimPlayerMonIndex
+ ldr r6, _080D1C70 @ =gBattleAnimBankAttacker
ldrb r0, [r6]
bl GetBankSide
lsls r0, 24
@@ -15327,7 +15327,7 @@ _080D1C28:
str r0, [r5, 0x1C]
ldr r1, _080D1C7C @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrb r1, [r4, 0xA]
ldrb r2, [r4, 0xC]
adds r0, r5, 0
@@ -15336,7 +15336,7 @@ _080D1C28:
pop {r0}
bx r0
.align 2, 0
-_080D1C70: .4byte gBattleAnimPlayerMonIndex
+_080D1C70: .4byte gBattleAnimBankAttacker
_080D1C74: .4byte gBattleAnimArgs
_080D1C78: .4byte sub_8078B34
_080D1C7C: .4byte move_anim_8072740
@@ -15569,7 +15569,7 @@ sub_80D1E38: @ 80D1E38
lsrs r0, 24
adds r6, r0, 0
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080D1E88 @ =gTasks
@@ -15585,7 +15585,7 @@ sub_80D1E38: @ 80D1E38
cmp r0, 0x1
bne _080D1E94
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -15638,7 +15638,7 @@ sub_80D1EC8: @ 80D1EC8
lsrs r0, 24
adds r6, r0, 0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080D1F18 @ =gTasks
@@ -15654,7 +15654,7 @@ sub_80D1EC8: @ 80D1EC8
cmp r0, 0x1
bne _080D1F24
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -15710,7 +15710,7 @@ sub_80D1F58: @ 80D1F58
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r5, _080D1F9C @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080D1F9C @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -15733,7 +15733,7 @@ sub_80D1F58: @ 80D1F58
pop {r0}
bx r0
.align 2, 0
-_080D1F9C: .4byte gBattleAnimEnemyMonIndex
+_080D1F9C: .4byte gBattleAnimBankTarget
_080D1FA0: .4byte sub_80D1FA4
thumb_func_end sub_80D1F58
@@ -15853,7 +15853,7 @@ sub_80D2064: @ 80D2064
ldr r1, _080D208C @ =sub_80782D8
str r1, [r0, 0x1C]
ldr r1, _080D2090 @ =sub_80D2094
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
@@ -16330,7 +16330,7 @@ _080D2450: .4byte 0x040000d4
_080D2454: .4byte 0x85000400
_080D2458: .4byte gBattleAnimBackgroundTilemap_ScaryFaceContest
_080D245C:
- ldr r0, _080D2478 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D2478 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -16343,7 +16343,7 @@ _080D246E:
bl LZDecompressVram
b _080D2488
.align 2, 0
-_080D2478: .4byte gBattleAnimEnemyMonIndex
+_080D2478: .4byte gBattleAnimBankTarget
_080D247C: .4byte gBattleAnimBackgroundTilemap_ScaryFacePlayer
_080D2480:
ldr r0, _080D24CC @ =gBattleAnimBackgroundTilemap_ScaryFaceOpponent
@@ -16621,7 +16621,7 @@ _080D26A0: .4byte REG_BLDCNT
sub_80D26A4: @ 80D26A4
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D26F8 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080D26F8 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -16658,7 +16658,7 @@ sub_80D26A4: @ 80D26A4
pop {r0}
bx r0
.align 2, 0
-_080D26F8: .4byte gBattleAnimPlayerMonIndex
+_080D26F8: .4byte gBattleAnimBankAttacker
_080D26FC: .4byte gBattleAnimArgs
_080D2700: .4byte sub_80D2704
thumb_func_end sub_80D26A4
@@ -16779,7 +16779,7 @@ _080D27DC: .4byte 0x0000ffff
sub_80D27E0: @ 80D27E0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D2828 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D2828 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -16809,7 +16809,7 @@ sub_80D27E0: @ 80D27E0
pop {r0}
bx r0
.align 2, 0
-_080D2828: .4byte gBattleAnimPlayerMonIndex
+_080D2828: .4byte gBattleAnimBankAttacker
_080D282C: .4byte gBattleAnimArgs
_080D2830: .4byte sub_80D2834
thumb_func_end sub_80D27E0
@@ -16887,7 +16887,7 @@ _080D28A8:
sub_80D28AC: @ 80D28AC
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D28F8 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D28F8 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -16919,7 +16919,7 @@ sub_80D28AC: @ 80D28AC
pop {r0}
bx r0
.align 2, 0
-_080D28F8: .4byte gBattleAnimPlayerMonIndex
+_080D28F8: .4byte gBattleAnimBankAttacker
_080D28FC: .4byte gBattleAnimArgs
_080D2900: .4byte sub_80D287C
thumb_func_end sub_80D28AC
@@ -17179,7 +17179,7 @@ sub_80D2ABC: @ 80D2ABC
adds r0, r4, 0
movs r1, 0
bl StartSpriteAnim
- ldr r0, _080D2BBC @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D2BBC @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079E90
subs r0, 0x1
@@ -17291,7 +17291,7 @@ _080D2B80:
b _080D2BD2
.align 2, 0
_080D2BB8: .4byte gBattleAnimArgs
-_080D2BBC: .4byte gBattleAnimEnemyMonIndex
+_080D2BBC: .4byte gBattleAnimBankTarget
_080D2BC0: .4byte 0x0000ffff
_080D2BC4:
adds r2, r4, 0
@@ -17375,12 +17375,12 @@ _080D2C54:
ldrsh r0, [r1, r2]
cmp r0, 0
bne _080D2C64
- ldr r4, _080D2C60 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D2C60 @ =gBattleAnimBankAttacker
b _080D2C66
.align 2, 0
-_080D2C60: .4byte gBattleAnimPlayerMonIndex
+_080D2C60: .4byte gBattleAnimBankAttacker
_080D2C64:
- ldr r4, _080D2C94 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D2C94 @ =gBattleAnimBankTarget
_080D2C66:
ldrb r0, [r4]
movs r1, 0x2
@@ -17404,7 +17404,7 @@ _080D2C66:
adds r0, 0x20
b _080D2CA0
.align 2, 0
-_080D2C94: .4byte gBattleAnimEnemyMonIndex
+_080D2C94: .4byte gBattleAnimBankTarget
_080D2C98: .4byte gBattleAnimArgs
_080D2C9C:
ldrh r0, [r5, 0x20]
@@ -17467,7 +17467,7 @@ sub_80D2CF8: @ 80D2CF8
lsrs r5, 24
ldr r0, _080D2D2C @ =gBattleAnimArgs
ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -17524,13 +17524,13 @@ sub_80D2D68: @ 80D2D68
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D2D84
- ldr r0, _080D2D80 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D2D80 @ =gBattleAnimBankAttacker
b _080D2D86
.align 2, 0
_080D2D7C: .4byte gBattleAnimArgs
-_080D2D80: .4byte gBattleAnimPlayerMonIndex
+_080D2D80: .4byte gBattleAnimBankAttacker
_080D2D84:
- ldr r0, _080D2E1C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D2E1C @ =gBattleAnimBankTarget
_080D2D86:
ldrb r6, [r0]
adds r0, r6, 0
@@ -17607,7 +17607,7 @@ _080D2DF0:
pop {r0}
bx r0
.align 2, 0
-_080D2E1C: .4byte gBattleAnimEnemyMonIndex
+_080D2E1C: .4byte gBattleAnimBankTarget
_080D2E20: .4byte gBattleAnimArgs
_080D2E24: .4byte 0x000003ff
_080D2E28: .4byte 0xfffffc00
@@ -17882,11 +17882,11 @@ sub_80D3014: @ 80D3014
ands r0, r1
cmp r0, 0
beq _080D3060
- ldr r4, _080D305C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D305C @ =gBattleAnimBankAttacker
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080D3060
@@ -17906,9 +17906,9 @@ sub_80D3014: @ 80D3014
b _080D3080
.align 2, 0
_080D3058: .4byte gBattleTypeFlags
-_080D305C: .4byte gBattleAnimPlayerMonIndex
+_080D305C: .4byte gBattleAnimBankAttacker
_080D3060:
- ldr r4, _080D30A0 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D30A0 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -17934,12 +17934,12 @@ _080D3080:
str r0, [r5, 0x1C]
ldr r1, _080D30A8 @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080D30A0: .4byte gBattleAnimPlayerMonIndex
+_080D30A0: .4byte gBattleAnimBankAttacker
_080D30A4: .4byte sub_8078B34
_080D30A8: .4byte move_anim_8072740
thumb_func_end sub_80D3014
@@ -18099,7 +18099,7 @@ _080D31C2:
sub_80D31C8: @ 80D31C8
push {r4-r6,lr}
adds r6, r0, 0
- ldr r5, _080D31F0 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080D31F0 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
lsls r0, 24
@@ -18115,7 +18115,7 @@ sub_80D31C8: @ 80D31C8
subs r0, r1
b _080D320A
.align 2, 0
-_080D31F0: .4byte gBattleAnimPlayerMonIndex
+_080D31F0: .4byte gBattleAnimBankAttacker
_080D31F4: .4byte gBattleAnimArgs
_080D31F8:
ldrb r0, [r5]
@@ -18142,7 +18142,7 @@ _080D320A:
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
- ldr r0, _080D32D4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D32D4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -18158,7 +18158,7 @@ _080D3240:
strh r0, [r6, 0x2E]
ldrh r0, [r6, 0x20]
strh r0, [r6, 0x30]
- ldr r4, _080D32D8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D32D8 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -18220,8 +18220,8 @@ _080D3240:
bx r0
.align 2, 0
_080D32D0: .4byte gBattleAnimArgs
-_080D32D4: .4byte gBattleAnimPlayerMonIndex
-_080D32D8: .4byte gBattleAnimEnemyMonIndex
+_080D32D4: .4byte gBattleAnimBankAttacker
+_080D32D8: .4byte gBattleAnimBankTarget
_080D32DC: .4byte SpriteCallbackDummy
_080D32E0: .4byte gSprites
_080D32E4: .4byte sub_80D32E8
@@ -18309,7 +18309,7 @@ sub_80D3370: @ 80D3370
ldr r1, _080D3390 @ =sub_8078600
str r1, [r0, 0x1C]
ldr r1, _080D3394 @ =sub_80D3398
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
@@ -18325,7 +18325,7 @@ sub_80D3398: @ 80D3398
ldr r1, _080D33AC @ =sub_80782D8
str r1, [r0, 0x1C]
ldr r1, _080D33B0 @ =move_anim_8074EE0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
@@ -18339,7 +18339,7 @@ sub_80D33B4: @ 80D33B4
adds r5, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080D33DC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D33DC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -18353,7 +18353,7 @@ sub_80D33B4: @ 80D33B4
adds r7, r1, 0
b _080D33EA
.align 2, 0
-_080D33DC: .4byte gBattleAnimPlayerMonIndex
+_080D33DC: .4byte gBattleAnimBankAttacker
_080D33E0: .4byte gBattleAnimArgs
_080D33E4:
ldr r0, _080D3440 @ =gBattleAnimArgs
@@ -18364,7 +18364,7 @@ _080D33EA:
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, _080D3444 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D3444 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -18400,7 +18400,7 @@ _080D33EA:
bx r0
.align 2, 0
_080D3440: .4byte gBattleAnimArgs
-_080D3444: .4byte gBattleAnimEnemyMonIndex
+_080D3444: .4byte gBattleAnimBankTarget
_080D3448: .4byte sub_80D344C
thumb_func_end sub_80D33B4
@@ -18551,7 +18551,7 @@ sub_80D3554: @ 80D3554
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, _080D35BC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D35BC @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -18590,7 +18590,7 @@ sub_80D3554: @ 80D3554
strh r0, [r5, 0x3C]
b _080D35C8
.align 2, 0
-_080D35BC: .4byte gBattleAnimEnemyMonIndex
+_080D35BC: .4byte gBattleAnimBankTarget
_080D35C0: .4byte gBattleAnimArgs
_080D35C4:
lsls r0, r1, 8
@@ -18711,7 +18711,7 @@ _080D3694: .4byte gTasks
sub_80D3698: @ 80D3698
push {r4-r7,lr}
adds r4, r0, 0
- ldr r7, _080D36E4 @ =gBattleAnimPlayerMonIndex
+ ldr r7, _080D36E4 @ =gBattleAnimBankAttacker
ldrb r0, [r7]
movs r1, 0
bl sub_8077ABC
@@ -18743,7 +18743,7 @@ sub_80D3698: @ 80D3698
strh r0, [r4, 0x24]
b _080D36F4
.align 2, 0
-_080D36E4: .4byte gBattleAnimPlayerMonIndex
+_080D36E4: .4byte gBattleAnimBankAttacker
_080D36E8: .4byte 0x0000fff6
_080D36EC:
strh r6, [r4, 0x24]
@@ -18787,11 +18787,11 @@ _080D3722:
sub_80D3728: @ 80D3728
push {r4-r7,lr}
adds r6, r0, 0
- ldr r5, _080D37E8 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080D37E8 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
adds r4, r0, 0
- ldr r0, _080D37EC @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D37EC @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r4, 24
@@ -18839,7 +18839,7 @@ _080D3786:
_080D3790:
adds r0, r6, 0
bl sub_80787B0
- ldr r0, _080D37E8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D37E8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -18851,7 +18851,7 @@ _080D3790:
_080D37AA:
ldrh r0, [r5, 0x8]
strh r0, [r6, 0x2E]
- ldr r4, _080D37EC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D37EC @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -18872,13 +18872,13 @@ _080D37AA:
str r0, [r6, 0x1C]
ldr r1, _080D37F8 @ =move_anim_8072740
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
-_080D37E8: .4byte gBattleAnimPlayerMonIndex
-_080D37EC: .4byte gBattleAnimEnemyMonIndex
+_080D37E8: .4byte gBattleAnimBankAttacker
+_080D37EC: .4byte gBattleAnimBankTarget
_080D37F0: .4byte gBattleAnimArgs
_080D37F4: .4byte sub_8078B34
_080D37F8: .4byte move_anim_8072740
@@ -18904,7 +18904,7 @@ sub_80D37FC: @ 80D37FC
str r0, [r4, 0x1C]
ldr r1, _080D3834 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -19080,7 +19080,7 @@ _080D3920:
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
- ldr r0, _080D39A0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D39A0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -19095,7 +19095,7 @@ _080D3990: .4byte 0x00003f42
_080D3994: .4byte REG_BG1CNT
_080D3998: .4byte 0x040000d4
_080D399C: .4byte 0x85000400
-_080D39A0: .4byte gBattleAnimPlayerMonIndex
+_080D39A0: .4byte gBattleAnimBankAttacker
_080D39A4: .4byte gUnknown_08E70968
_080D39A8:
ldr r0, _080D39B4 @ =gUnknown_08E70C38
@@ -19203,7 +19203,7 @@ _080D3A88: .4byte gUnknown_030042C0
_080D3A8C: .4byte 0x0000ffd0
_080D3A90: .4byte gUnknown_030041B4
_080D3A94:
- ldr r0, _080D3AC4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D3AC4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -19226,7 +19226,7 @@ _080D3A94:
strh r1, [r7, 0xE]
b _080D3AEE
.align 2, 0
-_080D3AC4: .4byte gBattleAnimPlayerMonIndex
+_080D3AC4: .4byte gBattleAnimBankAttacker
_080D3AC8: .4byte 0x0000ff20
_080D3ACC: .4byte gUnknown_030042C0
_080D3AD0: .4byte gUnknown_030041B4
@@ -20048,7 +20048,7 @@ sub_80D40F4: @ 80D40F4
ldr r0, _080D4144 @ =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -20374,7 +20374,7 @@ _080D438A:
thumb_func_start sub_80D4394
sub_80D4394: @ 80D4394
push {r4,r5,lr}
- ldr r4, _080D43B8 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D43B8 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -20390,7 +20390,7 @@ sub_80D4394: @ 80D4394
ldr r0, _080D43C0 @ =gPlayerParty
b _080D43D8
.align 2, 0
-_080D43B8: .4byte gBattleAnimPlayerMonIndex
+_080D43B8: .4byte gBattleAnimBankAttacker
_080D43BC: .4byte gBattlePartyID
_080D43C0: .4byte gPlayerParty
_080D43C4:
@@ -20451,7 +20451,7 @@ sub_80D4418: @ 80D4418
lsls r1, 24
lsrs r1, 24
str r1, [sp]
- ldr r4, _080D4520 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D4520 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -20571,7 +20571,7 @@ _080D44EA:
pop {r0}
bx r0
.align 2, 0
-_080D4520: .4byte gBattleAnimPlayerMonIndex
+_080D4520: .4byte gBattleAnimBankAttacker
_080D4524: .4byte gSpriteTemplate_83D9378
_080D4528: .4byte gSprites
thumb_func_end sub_80D4418
@@ -20681,7 +20681,7 @@ sub_80D45D8: @ 80D45D8
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0xA]
- ldr r0, _080D460C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D460C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -20693,7 +20693,7 @@ sub_80D45D8: @ 80D45D8
b _080D4616
.align 2, 0
_080D4608: .4byte gTasks
-_080D460C: .4byte gBattleAnimPlayerMonIndex
+_080D460C: .4byte gBattleAnimBankAttacker
_080D4610:
movs r0, 0x10
strh r0, [r4, 0x10]
@@ -21079,7 +21079,7 @@ sub_80D48F4: @ 80D48F4
lsls r1, 3
ldr r0, _080D4978 @ =gTasks
adds r5, r1, r0
- ldr r4, _080D497C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D497C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -21136,7 +21136,7 @@ _080D494C:
bx r0
.align 2, 0
_080D4978: .4byte gTasks
-_080D497C: .4byte gBattleAnimPlayerMonIndex
+_080D497C: .4byte gBattleAnimBankAttacker
_080D4980: .4byte 0x0000ffe0
_080D4984: .4byte sub_80D4988
thumb_func_end sub_80D48F4
@@ -21556,7 +21556,7 @@ sub_80D4CA4: @ 80D4CA4
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r5, _080D4CE0 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080D4CE0 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -21580,7 +21580,7 @@ sub_80D4CA4: @ 80D4CA4
pop {r0}
bx r0
.align 2, 0
-_080D4CE0: .4byte gBattleAnimEnemyMonIndex
+_080D4CE0: .4byte gBattleAnimBankTarget
_080D4CE4: .4byte gBattleAnimArgs
_080D4CE8: .4byte sub_80D4CEC
thumb_func_end sub_80D4CA4
@@ -21734,7 +21734,7 @@ _080D4DF2:
strh r0, [r4, 0x2E]
mov r0, r9
strh r0, [r4, 0x30]
- ldr r0, _080D4E3C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D4E3C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079E90
subs r0, 0x1
@@ -21750,7 +21750,7 @@ _080D4DF2:
.align 2, 0
_080D4E34: .4byte gSpriteTemplate_83D9420
_080D4E38: .4byte gSprites
-_080D4E3C: .4byte gBattleAnimPlayerMonIndex
+_080D4E3C: .4byte gBattleAnimBankAttacker
_080D4E40:
strh r7, [r4, 0x32]
_080D4E42:
@@ -21792,7 +21792,7 @@ _080D4E68:
strh r0, [r4, 0x2E]
mov r0, r9
strh r0, [r4, 0x30]
- ldr r0, _080D4EB4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D4EB4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079E90
subs r0, 0x1
@@ -21808,7 +21808,7 @@ _080D4E68:
.align 2, 0
_080D4EAC: .4byte gSpriteTemplate_83D9420
_080D4EB0: .4byte gSprites
-_080D4EB4: .4byte gBattleAnimPlayerMonIndex
+_080D4EB4: .4byte gBattleAnimBankAttacker
_080D4EB8:
strh r7, [r4, 0x32]
_080D4EBA:
@@ -21847,7 +21847,7 @@ sub_80D4ED8: @ 80D4ED8
strh r0, [r4, 0x36]
ldr r1, _080D4F10 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, _080D4F14 @ =sub_8078174
str r1, [r4, 0x1C]
adds r0, r4, 0
@@ -21884,7 +21884,7 @@ sub_80D4F18: @ 80D4F18
str r0, [r4, 0x1C]
ldr r1, _080D4F58 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -21899,7 +21899,7 @@ sub_80D4F5C: @ 80D4F5C
push {r4,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r0, _080D4F90 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D4F90 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -21920,7 +21920,7 @@ sub_80D4F5C: @ 80D4F5C
adds r1, r2, 0
b _080D4FAE
.align 2, 0
-_080D4F90: .4byte gBattleAnimPlayerMonIndex
+_080D4F90: .4byte gBattleAnimBankAttacker
_080D4F94: .4byte gBattleAnimArgs
_080D4F98:
ldr r1, _080D4FC4 @ =gBattleAnimArgs
@@ -21955,7 +21955,7 @@ _080D4FC8: .4byte sub_80D5038
sub_80D4FCC: @ 80D4FCC
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D4FF8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D4FF8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -21975,7 +21975,7 @@ sub_80D4FCC: @ 80D4FCC
adds r1, r2, 0
b _080D5018
.align 2, 0
-_080D4FF8: .4byte gBattleAnimPlayerMonIndex
+_080D4FF8: .4byte gBattleAnimBankAttacker
_080D4FFC: .4byte gBattleAnimArgs
_080D5000:
ldr r1, _080D5030 @ =gBattleAnimArgs
@@ -22047,7 +22047,7 @@ sub_80D5074: @ 80D5074
push {r4,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r0, _080D5098 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D5098 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -22060,7 +22060,7 @@ sub_80D5074: @ 80D5074
strh r1, [r4, 0x20]
b _080D50B2
.align 2, 0
-_080D5098: .4byte gBattleAnimPlayerMonIndex
+_080D5098: .4byte gBattleAnimBankAttacker
_080D509C: .4byte gBattleAnimArgs
_080D50A0:
ldr r0, _080D50E0 @ =gBattleAnimArgs
@@ -22194,7 +22194,7 @@ sub_80D517C: @ 80D517C
ldr r1, _080D51A0 @ =sub_8078B34
str r1, [r0, 0x1C]
ldr r1, _080D51A4 @ =move_anim_8072740
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
@@ -22206,11 +22206,11 @@ _080D51A4: .4byte move_anim_8072740
sub_80D51A8: @ 80D51A8
push {r4-r6,lr}
adds r6, r0, 0
- ldr r5, _080D5200 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080D5200 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
adds r4, r0, 0
- ldr r0, _080D5204 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D5204 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r4, 24
@@ -22245,8 +22245,8 @@ _080D51EE:
pop {r0}
bx r0
.align 2, 0
-_080D5200: .4byte gBattleAnimPlayerMonIndex
-_080D5204: .4byte gBattleAnimEnemyMonIndex
+_080D5200: .4byte gBattleAnimBankAttacker
+_080D5204: .4byte gBattleAnimBankTarget
_080D5208: .4byte gBattleAnimArgs
_080D520C: .4byte sub_8079534
thumb_func_end sub_80D51A8
@@ -22305,7 +22305,7 @@ sub_80D5254: @ 80D5254
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, _080D52A4 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D52A4 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -22329,7 +22329,7 @@ _080D529E:
pop {r0}
bx r0
.align 2, 0
-_080D52A4: .4byte gBattleAnimEnemyMonIndex
+_080D52A4: .4byte gBattleAnimBankTarget
_080D52A8: .4byte sub_80D52AC
thumb_func_end sub_80D5254
@@ -22343,7 +22343,7 @@ sub_80D52AC: @ 80D52AC
beq _080D52F4
movs r4, 0
strh r4, [r6, 0x2E]
- ldr r5, _080D52EC @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080D52EC @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -22364,7 +22364,7 @@ sub_80D52AC: @ 80D52AC
bl _call_via_r1
b _080D531E
.align 2, 0
-_080D52EC: .4byte gBattleAnimEnemyMonIndex
+_080D52EC: .4byte gBattleAnimBankTarget
_080D52F0: .4byte sub_80D5324
_080D52F4:
movs r1, 0x3C
@@ -22457,7 +22457,7 @@ sub_80D5374: @ 80D5374
strh r0, [r4, 0x32]
ldr r1, _080D53AC @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D53B0 @ =sub_8078364
str r0, [r4, 0x1C]
pop {r4}
@@ -22490,7 +22490,7 @@ sub_80D53B4: @ 80D53B4
str r0, [r4, 0x1C]
ldr r1, _080D53F0 @ =sub_80D53F4
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -22577,7 +22577,7 @@ sub_80D5470: @ 80D5470
ldr r0, _080D54D0 @ =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
movs r5, 0
@@ -22595,7 +22595,7 @@ sub_80D5470: @ 80D5470
adds r0, r2
ldrh r0, [r0, 0x22]
strh r0, [r4, 0x10]
- ldr r0, _080D54D8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D54D8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -22615,7 +22615,7 @@ sub_80D5470: @ 80D5470
.align 2, 0
_080D54D0: .4byte gTasks
_080D54D4: .4byte gSprites
-_080D54D8: .4byte gBattleAnimPlayerMonIndex
+_080D54D8: .4byte gBattleAnimBankAttacker
_080D54DC: .4byte sub_80D54E0
thumb_func_end sub_80D5470
@@ -23021,7 +23021,7 @@ sub_80D57C4: @ 80D57C4
lsls r0, 2
adds r0, r1
ldrh r4, [r0, 0x20]
- ldr r0, _080D5818 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D5818 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -23035,7 +23035,7 @@ sub_80D57C4: @ 80D57C4
b _080D5826
.align 2, 0
_080D5814: .4byte gSprites
-_080D5818: .4byte gBattleAnimPlayerMonIndex
+_080D5818: .4byte gBattleAnimBankAttacker
_080D581C:
adds r0, r4, 0
adds r0, 0x10
@@ -23203,7 +23203,7 @@ sub_80D5940: @ 80D5940
adds r0, r2
lsls r0, 16
lsrs r4, r0, 16
- ldr r0, _080D597C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D597C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -23215,7 +23215,7 @@ sub_80D5940: @ 80D5940
b _080D5986
.align 2, 0
_080D5978: .4byte gSprites
-_080D597C: .4byte gBattleAnimPlayerMonIndex
+_080D597C: .4byte gBattleAnimBankAttacker
_080D5980:
lsls r0, r4, 16
movs r1, 0xB0
@@ -23466,7 +23466,7 @@ _080D5B28:
bl StartSpriteAnim
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x3C]
- ldr r0, _080D5B54 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D5B54 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -23476,12 +23476,12 @@ _080D5B28:
b _080D5B5A
.align 2, 0
_080D5B50: .4byte gBattleAnimArgs
-_080D5B54: .4byte gBattleAnimPlayerMonIndex
+_080D5B54: .4byte gBattleAnimBankAttacker
_080D5B58:
ldr r0, _080D5B78 @ =0x0000fffc
_080D5B5A:
strh r0, [r5, 0x36]
- ldr r0, _080D5B7C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D5B7C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -23496,12 +23496,12 @@ _080D5B5A:
b _080D5BD6
.align 2, 0
_080D5B78: .4byte 0x0000fffc
-_080D5B7C: .4byte gBattleAnimEnemyMonIndex
+_080D5B7C: .4byte gBattleAnimBankTarget
_080D5B80:
ldrh r0, [r5, 0x30]
adds r0, 0xC0
strh r0, [r5, 0x30]
- ldr r0, _080D5BA0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D5BA0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -23513,7 +23513,7 @@ _080D5B80:
negs r0, r0
b _080D5BAA
.align 2, 0
-_080D5BA0: .4byte gBattleAnimPlayerMonIndex
+_080D5BA0: .4byte gBattleAnimBankAttacker
_080D5BA4:
ldrh r0, [r5, 0x30]
lsls r0, 16
@@ -23579,7 +23579,7 @@ _080D5BDE:
lsls r0, 1
strh r0, [r5, 0x2E]
strh r1, [r5, 0x30]
- ldr r4, _080D5C54 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D5C54 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -23603,7 +23603,7 @@ _080D5C4E:
pop {r0}
bx r0
.align 2, 0
-_080D5C54: .4byte gBattleAnimEnemyMonIndex
+_080D5C54: .4byte gBattleAnimBankTarget
_080D5C58: .4byte sub_80D5C5C
thumb_func_end sub_80D5B0C
@@ -23715,7 +23715,7 @@ _080D5CD8:
lsrs r0, 16
cmp r0, 0x83
bls _080D5D5C
- ldr r0, _080D5D58 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D5D58 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -23732,9 +23732,9 @@ _080D5CD8:
_080D5D4C: .4byte gBattleAnimArgs
_080D5D50: .4byte gMain
_080D5D54: .4byte 0x0000043d
-_080D5D58: .4byte gBattleAnimEnemyMonIndex
+_080D5D58: .4byte gBattleAnimBankTarget
_080D5D5C:
- ldr r0, _080D5D80 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D5D80 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
lsls r0, 24
@@ -23751,7 +23751,7 @@ _080D5D5C:
strb r1, [r4, 0x5]
b _080D5DA0
.align 2, 0
-_080D5D80: .4byte gBattleAnimEnemyMonIndex
+_080D5D80: .4byte gBattleAnimBankTarget
_080D5D84:
adds r0, r2, 0
subs r0, 0x40
@@ -23813,7 +23813,7 @@ sub_80D5DDC: @ 80D5DDC
lsls r1, 3
ldr r0, _080D5E3C @ =gTasks
adds r4, r1, r0
- ldr r0, _080D5E40 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D5E40 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -23825,22 +23825,22 @@ sub_80D5DDC: @ 80D5DDC
movs r1, 0x1
_080D5E02:
strh r1, [r4, 0x20]
- ldr r0, _080D5E44 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D5E44 @ =gBattleAnimBankTarget
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
strh r0, [r4, 0x22]
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x24]
movs r0, 0x3
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -23851,8 +23851,8 @@ _080D5E02:
bx r0
.align 2, 0
_080D5E3C: .4byte gTasks
-_080D5E40: .4byte gBattleAnimPlayerMonIndex
-_080D5E44: .4byte gBattleAnimEnemyMonIndex
+_080D5E40: .4byte gBattleAnimBankAttacker
+_080D5E44: .4byte gBattleAnimBankTarget
_080D5E48: .4byte sub_80D5E4C
thumb_func_end sub_80D5DDC
@@ -24222,7 +24222,7 @@ _080D60EA:
adds r0, 0x1
strh r0, [r2, 0x8]
ldr r1, _080D6114 @ =gObjectBankIDs
- ldr r0, _080D6118 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D6118 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r0, r1
ldrb r6, [r0]
@@ -24238,7 +24238,7 @@ _080D60EA:
_080D610C: .4byte gTasks
_080D6110: .4byte gBattleAnimArgs
_080D6114: .4byte gObjectBankIDs
-_080D6118: .4byte gBattleAnimEnemyMonIndex
+_080D6118: .4byte gBattleAnimBankTarget
_080D611C: .4byte gUnknown_083D9794
_080D6120:
ldr r4, _080D616C @ =gUnknown_083D97A4
@@ -24331,7 +24331,7 @@ _080D61C4: .4byte gSprites
sub_80D61C8: @ 80D61C8
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D61E8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D61E8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -24344,7 +24344,7 @@ sub_80D61C8: @ 80D61C8
strh r1, [r4, 0x20]
b _080D61FC
.align 2, 0
-_080D61E8: .4byte gBattleAnimPlayerMonIndex
+_080D61E8: .4byte gBattleAnimBankAttacker
_080D61EC: .4byte gBattleAnimArgs
_080D61F0:
ldr r1, _080D6210 @ =gBattleAnimArgs
@@ -24389,7 +24389,7 @@ _080D622E:
sub_80D6234: @ 80D6234
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D6254 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D6254 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -24402,7 +24402,7 @@ sub_80D6234: @ 80D6234
strh r1, [r4, 0x20]
b _080D6266
.align 2, 0
-_080D6254: .4byte gBattleAnimPlayerMonIndex
+_080D6254: .4byte gBattleAnimBankAttacker
_080D6258: .4byte gBattleAnimArgs
_080D625C:
ldr r0, _080D6270 @ =gBattleAnimArgs
@@ -24442,7 +24442,7 @@ _080D628E:
sub_80D6294: @ 80D6294
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D62D8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D62D8 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -24455,7 +24455,7 @@ sub_80D6294: @ 80D6294
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r0, _080D62DC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D62DC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -24472,8 +24472,8 @@ sub_80D6294: @ 80D6294
strh r0, [r5, 0x22]
b _080D62F8
.align 2, 0
-_080D62D8: .4byte gBattleAnimEnemyMonIndex
-_080D62DC: .4byte gBattleAnimPlayerMonIndex
+_080D62D8: .4byte gBattleAnimBankTarget
+_080D62DC: .4byte gBattleAnimBankAttacker
_080D62E0: .4byte gBattleAnimArgs
_080D62E4:
ldr r0, _080D631C @ =gBattleAnimArgs
@@ -24497,7 +24497,7 @@ _080D62F8:
strh r0, [r5, 0x34]
ldr r1, _080D6320 @ =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D6324 @ =sub_8078114
str r0, [r5, 0x1C]
pop {r4,r5}
@@ -24532,46 +24532,46 @@ _080D6344:
beq _080D637C
b _080D63A0
_080D634E:
- ldr r0, _080D6354 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D6354 @ =gBattleAnimBankAttacker
b _080D63A2
.align 2, 0
-_080D6354: .4byte gBattleAnimPlayerMonIndex
+_080D6354: .4byte gBattleAnimBankAttacker
_080D6358:
- ldr r4, _080D6370 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D6370 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r6, 0x2
eors r0, r6
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
bne _080D6374
ldrb r4, [r4]
b _080D63A4
.align 2, 0
-_080D6370: .4byte gBattleAnimPlayerMonIndex
+_080D6370: .4byte gBattleAnimBankAttacker
_080D6374:
ldrb r0, [r4]
adds r4, r6, 0
eors r4, r0
b _080D63A4
_080D637C:
- ldr r0, _080D6398 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D6398 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
movs r4, 0x2
eors r0, r4
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080D63A0
- ldr r0, _080D639C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D639C @ =gBattleAnimBankTarget
ldrb r0, [r0]
eors r4, r0
b _080D63A4
.align 2, 0
-_080D6398: .4byte gBattleAnimPlayerMonIndex
-_080D639C: .4byte gBattleAnimEnemyMonIndex
+_080D6398: .4byte gBattleAnimBankAttacker
+_080D639C: .4byte gBattleAnimBankTarget
_080D63A0:
- ldr r0, _080D63C4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D63C4 @ =gBattleAnimBankTarget
_080D63A2:
ldrb r4, [r0]
_080D63A4:
@@ -24590,7 +24590,7 @@ _080D63A4:
movs r1, 0x1
b _080D63DE
.align 2, 0
-_080D63C4: .4byte gBattleAnimEnemyMonIndex
+_080D63C4: .4byte gBattleAnimBankTarget
_080D63C8: .4byte gBattleAnimArgs
_080D63CC:
adds r0, r4, 0
@@ -24698,7 +24698,7 @@ sub_80D648C: @ 80D648C
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r6, _080D6504 @ =gBattleAnimEnemyMonIndex
+ ldr r6, _080D6504 @ =gBattleAnimBankTarget
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
@@ -24744,7 +24744,7 @@ sub_80D648C: @ 80D648C
bx r0
.align 2, 0
_080D6500: .4byte gBattleAnimArgs
-_080D6504: .4byte gBattleAnimEnemyMonIndex
+_080D6504: .4byte gBattleAnimBankTarget
_080D6508: .4byte 0x000003ff
_080D650C: .4byte 0xfffffc00
_080D6510: .4byte sub_80D6514
@@ -24866,7 +24866,7 @@ sub_80D65DC: @ 80D65DC
ands r0, r1
cmp r0, 0
beq _080D65FE
- ldr r0, _080D664C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D664C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -24878,7 +24878,7 @@ _080D65FE:
negs r0, r0
strh r0, [r1, 0x2]
_080D6606:
- ldr r5, _080D664C @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080D664C @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -24909,7 +24909,7 @@ _080D6606:
.align 2, 0
_080D6644: .4byte gMain
_080D6648: .4byte 0x0000043d
-_080D664C: .4byte gBattleAnimEnemyMonIndex
+_080D664C: .4byte gBattleAnimBankTarget
_080D6650: .4byte gBattleAnimArgs
_080D6654: .4byte sub_80D658C
thumb_func_end sub_80D65DC
@@ -24928,13 +24928,13 @@ sub_80D6658: @ 80D6658
ands r0, r1
cmp r0, 0
beq _080D667C
- ldr r0, _080D6678 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D6678 @ =gBattleAnimBankTarget
b _080D667E
.align 2, 0
_080D6674: .4byte gBattleAnimArgs
-_080D6678: .4byte gBattleAnimEnemyMonIndex
+_080D6678: .4byte gBattleAnimBankTarget
_080D667C:
- ldr r0, _080D670C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D670C @ =gBattleAnimBankAttacker
_080D667E:
ldrb r6, [r0]
ldr r0, _080D6710 @ =gMain
@@ -25005,7 +25005,7 @@ _080D66A4:
pop {r0}
bx r0
.align 2, 0
-_080D670C: .4byte gBattleAnimPlayerMonIndex
+_080D670C: .4byte gBattleAnimBankAttacker
_080D6710: .4byte gMain
_080D6714: .4byte 0x0000043d
_080D6718: .4byte gBattleAnimArgs
@@ -25126,7 +25126,7 @@ _080D67F6:
str r0, [r4, 0x1C]
ldr r1, _080D6818 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -25142,7 +25142,7 @@ sub_80D681C: @ 80D681C
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r6, _080D6864 @ =gBattleAnimEnemyMonIndex
+ ldr r6, _080D6864 @ =gBattleAnimBankTarget
ldrb r0, [r6]
movs r1, 0
bl sub_8077ABC
@@ -25173,7 +25173,7 @@ sub_80D681C: @ 80D681C
pop {r0}
bx r0
.align 2, 0
-_080D6864: .4byte gBattleAnimEnemyMonIndex
+_080D6864: .4byte gBattleAnimBankTarget
_080D6868: .4byte gTasks
_080D686C: .4byte gBattleAnimArgs
_080D6870: .4byte sub_80D6874
@@ -25556,14 +25556,14 @@ sub_80D6B3C: @ 80D6B3C
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D6B68
- ldr r4, _080D6B64 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D6B64 @ =gBattleAnimBankAttacker
b _080D6B6A
.align 2, 0
_080D6B5C: .4byte gTasks
_080D6B60: .4byte gBattleAnimArgs
-_080D6B64: .4byte gBattleAnimPlayerMonIndex
+_080D6B64: .4byte gBattleAnimBankAttacker
_080D6B68:
- ldr r4, _080D6BAC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D6BAC @ =gBattleAnimBankTarget
_080D6B6A:
ldrb r0, [r4]
movs r1, 0x2
@@ -25596,7 +25596,7 @@ _080D6B6A:
pop {r0}
bx r0
.align 2, 0
-_080D6BAC: .4byte gBattleAnimEnemyMonIndex
+_080D6BAC: .4byte gBattleAnimBankTarget
_080D6BB0: .4byte gBattleAnimArgs
_080D6BB4: .4byte sub_80D6BB8
thumb_func_end sub_80D6B3C
@@ -25681,7 +25681,7 @@ sub_80D6BB8: @ 80D6BB8
bl obj_translate_based_on_private_1_2_3_4
ldr r1, _080D6CB0 @ =sub_80D6D00
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D6CB4 @ =sub_8078600
str r0, [r4, 0x1C]
ldrh r0, [r5, 0x1A]
@@ -25790,13 +25790,13 @@ sub_80D6D18: @ 80D6D18
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D6D34
- ldr r4, _080D6D30 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D6D30 @ =gBattleAnimBankAttacker
b _080D6D36
.align 2, 0
_080D6D2C: .4byte gBattleAnimArgs
-_080D6D30: .4byte gBattleAnimPlayerMonIndex
+_080D6D30: .4byte gBattleAnimBankAttacker
_080D6D34:
- ldr r4, _080D6D64 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D6D64 @ =gBattleAnimBankTarget
_080D6D36:
ldrb r0, [r4]
movs r1, 0x2
@@ -25812,14 +25812,14 @@ _080D6D36:
strh r0, [r5, 0x22]
ldr r1, _080D6D68 @ =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D6D6C @ =sub_80785E4
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080D6D64: .4byte gBattleAnimEnemyMonIndex
+_080D6D64: .4byte gBattleAnimBankTarget
_080D6D68: .4byte move_anim_8074EE0
_080D6D6C: .4byte sub_80785E4
thumb_func_end sub_80D6D18
@@ -25833,13 +25833,13 @@ sub_80D6D70: @ 80D6D70
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D6D8C
- ldr r4, _080D6D88 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D6D88 @ =gBattleAnimBankAttacker
b _080D6D8E
.align 2, 0
_080D6D84: .4byte gBattleAnimArgs
-_080D6D88: .4byte gBattleAnimPlayerMonIndex
+_080D6D88: .4byte gBattleAnimBankAttacker
_080D6D8C:
- ldr r4, _080D6DC8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D6DC8 @ =gBattleAnimBankTarget
_080D6D8E:
ldrb r0, [r4]
movs r1, 0x2
@@ -25860,14 +25860,14 @@ _080D6D8E:
strh r0, [r5, 0x26]
ldr r1, _080D6DD0 @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D6DD4 @ =sub_8078600
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080D6DC8: .4byte gBattleAnimEnemyMonIndex
+_080D6DC8: .4byte gBattleAnimBankTarget
_080D6DCC: .4byte gBattleAnimArgs
_080D6DD0: .4byte move_anim_8072740
_080D6DD4: .4byte sub_8078600
@@ -25879,7 +25879,7 @@ sub_80D6DD8: @ 80D6DD8
adds r5, r0, 0
movs r1, 0x1
bl StartSpriteAffineAnim
- ldr r4, _080D6E30 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D6E30 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -25893,7 +25893,7 @@ sub_80D6DD8: @ 80D6DD8
lsrs r0, 24
strh r0, [r5, 0x22]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x3A]
@@ -25916,7 +25916,7 @@ _080D6E26:
pop {r0}
bx r0
.align 2, 0
-_080D6E30: .4byte gBattleAnimPlayerMonIndex
+_080D6E30: .4byte gBattleAnimBankAttacker
_080D6E34: .4byte sub_80D6E38
thumb_func_end sub_80D6DD8
@@ -26006,12 +26006,12 @@ _080D6ECE:
b _080D7000
_080D6ED0:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
movs r6, 0
strh r0, [r5, 0x26]
- ldr r4, _080D6F04 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D6F04 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -26028,7 +26028,7 @@ _080D6ED0:
movs r0, 0x2
b _080D6F12
.align 2, 0
-_080D6F04: .4byte gBattleAnimPlayerMonIndex
+_080D6F04: .4byte gBattleAnimBankAttacker
_080D6F08: .4byte 0x0000ffe0
_080D6F0C:
movs r0, 0x20
@@ -26193,7 +26193,7 @@ _080D7034:
_080D703A:
b _080D718E
_080D703C:
- ldr r4, _080D707C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D707C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -26225,7 +26225,7 @@ _080D7052:
ldr r0, _080D7084 @ =0x0000fff0
b _080D70F0
.align 2, 0
-_080D707C: .4byte gBattleAnimPlayerMonIndex
+_080D707C: .4byte gBattleAnimBankAttacker
_080D7080: .4byte gBattleAnimArgs
_080D7084: .4byte 0x0000fff0
_080D7088:
@@ -26254,7 +26254,7 @@ _080D70B0:
movs r0, 0x78
subs r0, r1
strh r0, [r5, 0xE]
- ldr r4, _080D70E4 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D70E4 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x3
bl sub_8077ABC
@@ -26273,7 +26273,7 @@ _080D70B0:
strh r0, [r5, 0x10]
b _080D7126
.align 2, 0
-_080D70E4: .4byte gBattleAnimEnemyMonIndex
+_080D70E4: .4byte gBattleAnimBankTarget
_080D70E8:
ldr r0, _080D710C @ =0x0000fff0
strh r0, [r5, 0xE]
@@ -26506,7 +26506,7 @@ sub_80D727C: @ 80D727C
beq _080D72C0
b _080D72D4
_080D728E:
- ldr r4, _080D72BC @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D72BC @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -26527,7 +26527,7 @@ _080D728E:
strh r0, [r5, 0x2E]
b _080D72D4
.align 2, 0
-_080D72BC: .4byte gBattleAnimPlayerMonIndex
+_080D72BC: .4byte gBattleAnimBankAttacker
_080D72C0:
adds r0, r5, 0
adds r0, 0x3F
@@ -26576,7 +26576,7 @@ _080D7308:
.4byte _080D7444
.4byte _080D7454
_080D731C:
- ldr r4, _080D73A0 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D73A0 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -26591,7 +26591,7 @@ _080D731C:
strh r0, [r5, 0x16]
movs r0, 0x4
strh r0, [r5, 0x18]
- ldr r0, _080D73A4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D73A4 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x2
bl sub_8077ABC
@@ -26636,8 +26636,8 @@ _080D731C:
adds r0, 0x1
b _080D7466
.align 2, 0
-_080D73A0: .4byte gBattleAnimPlayerMonIndex
-_080D73A4: .4byte gBattleAnimEnemyMonIndex
+_080D73A0: .4byte gBattleAnimBankAttacker
+_080D73A4: .4byte gBattleAnimBankTarget
_080D73A8: .4byte 0x0000ffff
_080D73AC:
ldrh r0, [r5, 0xA]
@@ -26934,7 +26934,7 @@ _080D75C4:
beq _080D7640
b _080D764E
_080D75CA:
- ldr r0, _080D7614 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D7614 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x1
bl sub_8077ABC
@@ -26956,7 +26956,7 @@ _080D75E4:
bgt _080D75E4
strh r1, [r5, 0x24]
_080D75F4:
- ldr r4, _080D7614 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D7614 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -26971,7 +26971,7 @@ _080D75F4:
strh r0, [r5, 0x20]
b _080D7638
.align 2, 0
-_080D7614: .4byte gBattleAnimEnemyMonIndex
+_080D7614: .4byte gBattleAnimBankTarget
_080D7618:
ldrh r0, [r5, 0xA]
adds r0, 0x1
@@ -27121,7 +27121,7 @@ sub_80D7704: @ 80D7704
ands r0, r2
orrs r0, r1
strh r0, [r5, 0x4]
- ldr r4, _080D7814 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D7814 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -27134,7 +27134,7 @@ sub_80D7704: @ 80D7704
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r4, _080D7818 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D7818 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -27235,8 +27235,8 @@ _080D77DE:
.align 2, 0
_080D780C: .4byte 0x000003ff
_080D7810: .4byte 0xfffffc00
-_080D7814: .4byte gBattleAnimEnemyMonIndex
-_080D7818: .4byte gBattleAnimPlayerMonIndex
+_080D7814: .4byte gBattleAnimBankTarget
+_080D7818: .4byte gBattleAnimBankAttacker
_080D781C: .4byte gBattleAnimArgs
_080D7820:
lsls r1, r3, 16
@@ -27365,7 +27365,7 @@ sub_80D78EC: @ 80D78EC
strh r0, [r4, 0x36]
ldr r1, _080D7924 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, _080D7928 @ =sub_8078174
str r1, [r4, 0x1C]
adds r0, r4, 0
@@ -27385,14 +27385,14 @@ sub_80D792C: @ 80D792C
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080D7960 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D7960 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
- ldr r0, _080D7964 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D7964 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -27405,8 +27405,8 @@ sub_80D792C: @ 80D792C
strh r1, [r4, 0x32]
b _080D7976
.align 2, 0
-_080D7960: .4byte gBattleAnimEnemyMonIndex
-_080D7964: .4byte gBattleAnimPlayerMonIndex
+_080D7960: .4byte gBattleAnimBankTarget
+_080D7964: .4byte gBattleAnimBankAttacker
_080D7968: .4byte gBattleAnimArgs
_080D796C:
ldr r0, _080D79A4 @ =gBattleAnimArgs
@@ -27415,7 +27415,7 @@ _080D796C:
adds r0, r1
strh r0, [r4, 0x32]
_080D7976:
- ldr r0, _080D79A8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D79A8 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x3
bl sub_8077ABC
@@ -27429,7 +27429,7 @@ _080D7976:
strh r0, [r4, 0x2E]
ldr r1, _080D79AC @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D79B0 @ =sub_8078B34
str r0, [r4, 0x1C]
pop {r4}
@@ -27437,7 +27437,7 @@ _080D7976:
bx r0
.align 2, 0
_080D79A4: .4byte gBattleAnimArgs
-_080D79A8: .4byte gBattleAnimEnemyMonIndex
+_080D79A8: .4byte gBattleAnimBankTarget
_080D79AC: .4byte move_anim_8072740
_080D79B0: .4byte sub_8078B34
thumb_func_end sub_80D792C
@@ -27458,7 +27458,7 @@ sub_80D79B4: @ 80D79B4
.align 2, 0
_080D79CC: .4byte gBattleAnimArgs
_080D79D0:
- ldr r0, _080D7A18 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D7A18 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -27466,7 +27466,7 @@ _080D79D0:
adds r3, 0x22
movs r1, 0x1
bl sub_807A3FC
- ldr r0, _080D7A1C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D7A1C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -27487,15 +27487,15 @@ _080D79F6:
_080D7A06:
ldr r1, _080D7A20 @ =sub_80D7A28
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D7A24 @ =sub_80785E4
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080D7A18: .4byte gBattleAnimEnemyMonIndex
-_080D7A1C: .4byte gBattleAnimPlayerMonIndex
+_080D7A18: .4byte gBattleAnimBankTarget
+_080D7A1C: .4byte gBattleAnimBankAttacker
_080D7A20: .4byte sub_80D7A28
_080D7A24: .4byte sub_80785E4
thumb_func_end sub_80D79B4
@@ -27551,7 +27551,7 @@ sub_80D7A64: @ 80D7A64
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080D7AB4
- ldr r4, _080D7AB0 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D7AB0 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -27569,9 +27569,9 @@ sub_80D7A64: @ 80D7A64
b _080D7AC6
.align 2, 0
_080D7AAC: .4byte gBattleAnimArgs
-_080D7AB0: .4byte gBattleAnimEnemyMonIndex
+_080D7AB0: .4byte gBattleAnimBankTarget
_080D7AB4:
- ldr r0, _080D7AE0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D7AE0 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -27580,7 +27580,7 @@ _080D7AB4:
movs r1, 0x1
bl sub_807A3FC
_080D7AC6:
- ldr r0, _080D7AE4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D7AE4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -27593,8 +27593,8 @@ _080D7AC6:
strh r1, [r5, 0x32]
b _080D7AF6
.align 2, 0
-_080D7AE0: .4byte gBattleAnimEnemyMonIndex
-_080D7AE4: .4byte gBattleAnimPlayerMonIndex
+_080D7AE0: .4byte gBattleAnimBankTarget
+_080D7AE4: .4byte gBattleAnimBankAttacker
_080D7AE8: .4byte gBattleAnimArgs
_080D7AEC:
ldr r0, _080D7B94 @ =gBattleAnimArgs
@@ -27678,7 +27678,7 @@ _080D7B76:
bge _080D7B76
str r6, [r5, 0x1C]
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
add sp, 0x10
pop {r4-r7}
pop {r0}
@@ -27706,7 +27706,7 @@ sub_80D7BA0: @ 80D7BA0
strh r5, [r4, 0x24]
movs r0, 0x80
strh r0, [r4, 0x2E]
- ldr r0, _080D7BFC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D7BFC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -27735,7 +27735,7 @@ _080D7BD0:
pop {r0}
bx r0
.align 2, 0
-_080D7BFC: .4byte gBattleAnimPlayerMonIndex
+_080D7BFC: .4byte gBattleAnimBankAttacker
_080D7C00: .4byte 0x0000ffec
_080D7C04: .4byte sub_80D7C08
thumb_func_end sub_80D7BA0
@@ -27744,7 +27744,7 @@ _080D7C04: .4byte sub_80D7C08
sub_80D7C08: @ 80D7C08
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D7C5C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D7C5C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -27782,7 +27782,7 @@ _080D7C1E:
strh r0, [r4, 0x38]
b _080D7C82
.align 2, 0
-_080D7C5C: .4byte gBattleAnimPlayerMonIndex
+_080D7C5C: .4byte gBattleAnimBankAttacker
_080D7C60: .4byte 0x0000ffec
_080D7C64:
ldrh r0, [r4, 0x24]
@@ -27866,7 +27866,7 @@ sub_80D7CD4: @ 80D7CD4
ldrsh r0, [r1, r2]
cmp r0, 0
bne _080D7D20
- ldr r4, _080D7D1C @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D7D1C @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -27882,9 +27882,9 @@ sub_80D7CD4: @ 80D7CD4
b _080D7D32
.align 2, 0
_080D7D18: .4byte gBattleAnimArgs
-_080D7D1C: .4byte gBattleAnimEnemyMonIndex
+_080D7D1C: .4byte gBattleAnimBankTarget
_080D7D20:
- ldr r0, _080D7D50 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D7D50 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -27893,7 +27893,7 @@ _080D7D20:
movs r1, 0x1
bl sub_807A3FC
_080D7D32:
- ldr r0, _080D7D54 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D7D54 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -27907,8 +27907,8 @@ _080D7D32:
adds r1, r0, 0
b _080D7D66
.align 2, 0
-_080D7D50: .4byte gBattleAnimEnemyMonIndex
-_080D7D54: .4byte gBattleAnimPlayerMonIndex
+_080D7D50: .4byte gBattleAnimBankTarget
+_080D7D54: .4byte gBattleAnimBankAttacker
_080D7D58: .4byte gBattleAnimArgs
_080D7D5C:
ldr r1, _080D7E10 @ =gBattleAnimArgs
@@ -28088,7 +28088,7 @@ sub_80D7E88: @ 80D7E88
.align 2, 0
_080D7EA8: .4byte gBattleAnimArgs
_080D7EAC:
- ldr r0, _080D7EEC @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D7EEC @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -28096,7 +28096,7 @@ _080D7EAC:
adds r3, 0x22
movs r1, 0
bl sub_807A3FC
- ldr r0, _080D7EF0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D7EF0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -28120,8 +28120,8 @@ _080D7EE2:
strh r0, [r4, 0x2E]
b _080D7F08
.align 2, 0
-_080D7EEC: .4byte gBattleAnimEnemyMonIndex
-_080D7EF0: .4byte gBattleAnimPlayerMonIndex
+_080D7EEC: .4byte gBattleAnimBankTarget
+_080D7EF0: .4byte gBattleAnimBankAttacker
_080D7EF4:
adds r0, r4, 0
adds r0, 0x3F
@@ -28158,7 +28158,7 @@ sub_80D7F10: @ 80D7F10
.align 2, 0
_080D7F30: .4byte gBattleAnimArgs
_080D7F34:
- ldr r4, _080D7F5C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D7F5C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
adds r2, r5, 0
adds r2, 0x20
@@ -28176,7 +28176,7 @@ _080D7F34:
subs r0, r1
b _080D7F66
.align 2, 0
-_080D7F5C: .4byte gBattleAnimPlayerMonIndex
+_080D7F5C: .4byte gBattleAnimBankAttacker
_080D7F60:
ldrh r0, [r6]
ldrh r1, [r5, 0x20]
@@ -28189,11 +28189,11 @@ _080D7F66:
adds r0, r1
strh r0, [r5, 0x22]
_080D7F72:
- ldr r0, _080D7F7C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D7F7C @ =gBattleAnimBankAttacker
b _080D7FD0
.align 2, 0
_080D7F78: .4byte gBattleAnimArgs
-_080D7F7C: .4byte gBattleAnimPlayerMonIndex
+_080D7F7C: .4byte gBattleAnimBankAttacker
_080D7F80:
movs r1, 0xA
ldrsh r0, [r6, r1]
@@ -28204,7 +28204,7 @@ _080D7F80:
bl sub_8078764
b _080D7FCE
_080D7F92:
- ldr r4, _080D7FB8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D7FB8 @ =gBattleAnimBankTarget
ldrb r0, [r4]
adds r2, r5, 0
adds r2, 0x20
@@ -28222,7 +28222,7 @@ _080D7F92:
subs r0, r1
b _080D7FC2
.align 2, 0
-_080D7FB8: .4byte gBattleAnimEnemyMonIndex
+_080D7FB8: .4byte gBattleAnimBankTarget
_080D7FBC:
ldrh r0, [r6]
ldrh r1, [r5, 0x20]
@@ -28235,7 +28235,7 @@ _080D7FC2:
adds r0, r1
strh r0, [r5, 0x22]
_080D7FCE:
- ldr r0, _080D7FF0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D7FF0 @ =gBattleAnimBankTarget
_080D7FD0:
ldrb r0, [r0]
strh r0, [r5, 0x3C]
@@ -28253,12 +28253,12 @@ _080D7FE8:
b _080D7FF6
.align 2, 0
_080D7FEC: .4byte gBattleAnimArgs
-_080D7FF0: .4byte gBattleAnimEnemyMonIndex
+_080D7FF0: .4byte gBattleAnimBankTarget
_080D7FF4:
movs r0, 0x40
_080D7FF6:
strh r0, [r5, 0x3A]
- ldr r0, _080D803C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D803C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -28291,7 +28291,7 @@ _080D800C:
pop {r0}
bx r0
.align 2, 0
-_080D803C: .4byte gBattleAnimEnemyMonIndex
+_080D803C: .4byte gBattleAnimBankTarget
_080D8040: .4byte gBattleAnimArgs
_080D8044: .4byte sub_80D8048
thumb_func_end sub_80D7F10
@@ -28742,7 +28742,7 @@ _080D83DC: .4byte REG_BLDCNT
sub_80D83E0: @ 80D83E0
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D840C @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080D840C @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -28761,7 +28761,7 @@ sub_80D83E0: @ 80D83E0
pop {r0}
bx r0
.align 2, 0
-_080D840C: .4byte gBattleAnimPlayerMonIndex
+_080D840C: .4byte gBattleAnimBankAttacker
_080D8410: .4byte sub_807941C
thumb_func_end sub_80D83E0
@@ -29129,13 +29129,13 @@ sub_80D8700: @ 80D8700
ldr r6, _080D87E8 @ =gBattleAnimArgs
ldrh r0, [r6]
strh r0, [r5, 0x2E]
- ldr r0, _080D87EC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D87EC @ =gBattleAnimBankAttacker
mov r8, r0
ldrb r0, [r0]
movs r1, 0x2
bl sub_8077ABC
adds r4, r0, 0
- ldr r7, _080D87F0 @ =gBattleAnimEnemyMonIndex
+ ldr r7, _080D87F0 @ =gBattleAnimBankTarget
ldrb r0, [r7]
movs r1, 0x2
bl sub_8077ABC
@@ -29178,7 +29178,7 @@ _080D8734:
cmp r0, 0
bne _080D8790
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, _080D87F8 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -29196,7 +29196,7 @@ _080D8790:
movs r0, 0x1
strh r0, [r5, 0x3A]
_080D8794:
- ldr r4, _080D87EC @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D87EC @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -29218,7 +29218,7 @@ _080D8794:
ldrh r1, [r5, 0x20]
adds r0, r1
strh r0, [r5, 0x30]
- ldr r4, _080D87F0 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D87F0 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -29236,8 +29236,8 @@ _080D8794:
b _080D8824
.align 2, 0
_080D87E8: .4byte gBattleAnimArgs
-_080D87EC: .4byte gBattleAnimPlayerMonIndex
-_080D87F0: .4byte gBattleAnimEnemyMonIndex
+_080D87EC: .4byte gBattleAnimBankAttacker
+_080D87F0: .4byte gBattleAnimBankTarget
_080D87F4: .4byte gBanksBySide
_080D87F8: .4byte gSprites
_080D87FC:
@@ -29245,7 +29245,7 @@ _080D87FC:
ldrh r1, [r5, 0x20]
adds r0, r1
strh r0, [r5, 0x30]
- ldr r4, _080D886C @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D886C @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -29295,7 +29295,7 @@ _080D8858:
pop {r0}
bx r0
.align 2, 0
-_080D886C: .4byte gBattleAnimEnemyMonIndex
+_080D886C: .4byte gBattleAnimBankTarget
_080D8870: .4byte sub_80D8874
thumb_func_end sub_80D8700
@@ -29357,7 +29357,7 @@ _080D88C8:
_080D88D6:
movs r5, 0x50
strh r5, [r4, 0x2E]
- ldr r6, _080D8928 @ =gBattleAnimEnemyMonIndex
+ ldr r6, _080D8928 @ =gBattleAnimBankTarget
ldrb r0, [r6]
movs r1, 0
bl sub_8077ABC
@@ -29396,7 +29396,7 @@ _080D88D6:
strh r0, [r4, 0x38]
b _080D893A
.align 2, 0
-_080D8928: .4byte gBattleAnimEnemyMonIndex
+_080D8928: .4byte gBattleAnimBankTarget
_080D892C: .4byte gMain
_080D8930: .4byte 0x0000043d
_080D8934: .4byte gBanksBySide
@@ -29545,7 +29545,7 @@ _080D8A12:
cmp r0, 0
beq _080D8A78
ldr r1, _080D8A70 @ =gBanksBySide
- ldr r0, _080D8A74 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D8A74 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -29560,7 +29560,7 @@ _080D8A12:
_080D8A68: .4byte gMain
_080D8A6C: .4byte 0x0000043d
_080D8A70: .4byte gBanksBySide
-_080D8A74: .4byte gBattleAnimEnemyMonIndex
+_080D8A74: .4byte gBattleAnimBankTarget
_080D8A78:
ldr r0, _080D8A90 @ =0x0000fff0
_080D8A7A:
@@ -29764,7 +29764,7 @@ sub_80D8BA8: @ 80D8BA8
lsls r0, 24
lsrs r5, r0, 24
adds r0, r5, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080D8C94
@@ -30089,7 +30089,7 @@ _080D8E6A:
ldr r6, _080D8ED0 @ =gBattleAnimArgs
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
- ldr r0, _080D8ED4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D8ED4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -30099,7 +30099,7 @@ _080D8E6A:
negs r0, r0
strh r0, [r6, 0x4]
_080D8E92:
- ldr r4, _080D8ED8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D8ED8 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -30128,8 +30128,8 @@ _080D8E92:
.align 2, 0
_080D8ECC: .4byte gDisableStructMoveAnim
_080D8ED0: .4byte gBattleAnimArgs
-_080D8ED4: .4byte gBattleAnimPlayerMonIndex
-_080D8ED8: .4byte gBattleAnimEnemyMonIndex
+_080D8ED4: .4byte gBattleAnimBankAttacker
+_080D8ED8: .4byte gBattleAnimBankTarget
_080D8EDC: .4byte sub_80D8EE0
thumb_func_end unc_080B06FC
@@ -30148,7 +30148,7 @@ sub_80D8EE0: @ 80D8EE0
str r0, [r4, 0x1C]
ldr r1, _080D8F0C @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_080D8F02:
pop {r4}
pop {r0}
@@ -30296,7 +30296,7 @@ unc_080B08A0: @ 80D8FF0
str r0, [r4, 0x1C]
ldr r1, _080D9028 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -30315,7 +30315,7 @@ sub_80D902C: @ 80D902C
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _080D9054
- ldr r0, _080D9074 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9074 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -30341,7 +30341,7 @@ _080D9054:
bx r0
.align 2, 0
_080D9070: .4byte gBattleAnimArgs
-_080D9074: .4byte gBattleAnimPlayerMonIndex
+_080D9074: .4byte gBattleAnimBankAttacker
thumb_func_end sub_80D902C
thumb_func_start sub_80D9078
@@ -30398,7 +30398,7 @@ _080D90D0:
str r0, [r5, 0x1C]
ldr r1, _080D90F0 @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -30421,13 +30421,13 @@ sub_80D90F4: @ 80D90F4
mov r9, r0
cmp r1, 0
bne _080D9118
- ldr r0, _080D9114 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9114 @ =gBattleAnimBankAttacker
b _080D911A
.align 2, 0
_080D9110: .4byte gBattleAnimArgs
-_080D9114: .4byte gBattleAnimPlayerMonIndex
+_080D9114: .4byte gBattleAnimBankAttacker
_080D9118:
- ldr r0, _080D9260 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D9260 @ =gBattleAnimBankTarget
_080D911A:
ldrb r0, [r0]
mov r8, r0
@@ -30584,7 +30584,7 @@ _080D9250:
pop {r0}
bx r0
.align 2, 0
-_080D9260: .4byte gBattleAnimEnemyMonIndex
+_080D9260: .4byte gBattleAnimBankTarget
_080D9264: .4byte gBanksBySide
_080D9268: .4byte 0xfff00000
_080D926C: .4byte gBattleAnimSpriteTemplate_83DB4A8
@@ -30675,7 +30675,7 @@ _080D9306:
str r0, [r4, 0x1C]
ldr r1, _080D9324 @ =sub_80D9328
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -30716,7 +30716,7 @@ sub_80D9328: @ 80D9328
str r0, [r5, 0x1C]
ldr r1, _080D9374 @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_080D9368:
pop {r4-r6}
pop {r0}
@@ -30730,10 +30730,10 @@ _080D9374: .4byte move_anim_8072740
sub_80D9378: @ 80D9378
push {r4-r6,lr}
adds r6, r0, 0
- ldr r0, _080D93F4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D93F4 @ =gBattleAnimBankAttacker
ldrb r1, [r0]
movs r0, 0x2
- ldr r2, _080D93F8 @ =gBattleAnimEnemyMonIndex
+ ldr r2, _080D93F8 @ =gBattleAnimBankTarget
eors r0, r1
ldrb r1, [r2]
cmp r0, r1
@@ -30753,7 +30753,7 @@ _080D93A4:
adds r0, r6, 0
movs r1, 0x1
bl sub_8078764
- ldr r0, _080D93F4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D93F4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -30789,8 +30789,8 @@ _080D93C2:
pop {r0}
bx r0
.align 2, 0
-_080D93F4: .4byte gBattleAnimPlayerMonIndex
-_080D93F8: .4byte gBattleAnimEnemyMonIndex
+_080D93F4: .4byte gBattleAnimBankAttacker
+_080D93F8: .4byte gBattleAnimBankTarget
_080D93FC: .4byte gBattleAnimArgs
_080D9400: .4byte sub_80D9404
thumb_func_end sub_80D9378
@@ -30842,7 +30842,7 @@ sub_80D943C: @ 80D943C
str r0, [r4, 0x1C]
ldr r1, _080D9470 @ =sub_80D9474
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -30870,7 +30870,7 @@ sub_80D9474: @ 80D9474
str r0, [r4, 0x1C]
ldr r1, _080D94A4 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -30913,7 +30913,7 @@ sub_80D94CC: @ 80D94CC
bne _080D9510
movs r0, 0x6
strh r0, [r5, 0x2E]
- ldr r4, _080D9518 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D9518 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -30930,13 +30930,13 @@ sub_80D94CC: @ 80D94CC
str r0, [r5, 0x1C]
ldr r1, _080D9520 @ =sub_80D9524
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_080D9510:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080D9518: .4byte gBattleAnimEnemyMonIndex
+_080D9518: .4byte gBattleAnimBankTarget
_080D951C: .4byte sub_8078B34
_080D9520: .4byte sub_80D9524
thumb_func_end sub_80D94CC
@@ -30949,7 +30949,7 @@ sub_80D9524: @ 80D9524
ldr r1, _080D9538 @ =sub_80782D8
str r1, [r0, 0x1C]
ldr r1, _080D953C @ =move_anim_8072740
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
@@ -31040,13 +31040,13 @@ sub_80D95D0: @ 80D95D0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D95EC
- ldr r4, _080D95E8 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D95E8 @ =gBattleAnimBankAttacker
b _080D95EE
.align 2, 0
_080D95E4: .4byte gBattleAnimArgs
-_080D95E8: .4byte gBattleAnimPlayerMonIndex
+_080D95E8: .4byte gBattleAnimBankAttacker
_080D95EC:
- ldr r4, _080D9634 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D9634 @ =gBattleAnimBankTarget
_080D95EE:
ldrb r0, [r4]
movs r1, 0
@@ -31082,7 +31082,7 @@ _080D95EE:
pop {r0}
bx r0
.align 2, 0
-_080D9634: .4byte gBattleAnimEnemyMonIndex
+_080D9634: .4byte gBattleAnimBankTarget
_080D9638: .4byte gBattleAnimArgs
_080D963C: .4byte sub_80D9640
thumb_func_end sub_80D95D0
@@ -31165,7 +31165,7 @@ sub_80D96B8: @ 80D96B8
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080D96E4
- ldr r4, _080D96E0 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D96E0 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -31176,9 +31176,9 @@ sub_80D96B8: @ 80D96B8
b _080D96F6
.align 2, 0
_080D96DC: .4byte gBattleAnimArgs
-_080D96E0: .4byte gBattleAnimPlayerMonIndex
+_080D96E0: .4byte gBattleAnimBankAttacker
_080D96E4:
- ldr r4, _080D9740 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D9740 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -31224,7 +31224,7 @@ _080D96F6:
beq _080D975A
b _080D978A
.align 2, 0
-_080D9740: .4byte gBattleAnimEnemyMonIndex
+_080D9740: .4byte gBattleAnimBankTarget
_080D9744: .4byte gBattleAnimArgs
_080D9748: .4byte 0x000003ff
_080D974C: .4byte 0xfffffc00
@@ -31322,7 +31322,7 @@ sub_80D97CC: @ 80D97CC
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r0, _080D9820 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9820 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -31334,15 +31334,15 @@ sub_80D97CC: @ 80D97CC
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
- ldr r0, _080D9824 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D9824 @ =gBattleAnimBankTarget
b _080D9844
.align 2, 0
_080D9818: .4byte gBattleAnimArgs
_080D981C: .4byte gBankAttacker
-_080D9820: .4byte gBattleAnimPlayerMonIndex
-_080D9824: .4byte gBattleAnimEnemyMonIndex
+_080D9820: .4byte gBattleAnimBankAttacker
+_080D9824: .4byte gBattleAnimBankTarget
_080D9828:
- ldr r0, _080D9860 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D9860 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -31354,7 +31354,7 @@ _080D9828:
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
- ldr r0, _080D9864 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9864 @ =gBattleAnimBankAttacker
_080D9844:
ldrb r0, [r0]
strh r0, [r5, 0x3C]
@@ -31370,8 +31370,8 @@ _080D9844:
pop {r0}
bx r0
.align 2, 0
-_080D9860: .4byte gBattleAnimEnemyMonIndex
-_080D9864: .4byte gBattleAnimPlayerMonIndex
+_080D9860: .4byte gBattleAnimBankTarget
+_080D9864: .4byte gBattleAnimBankAttacker
_080D9868: .4byte sub_80D986C
thumb_func_end sub_80D97CC
@@ -31415,7 +31415,7 @@ sub_80D986C: @ 80D986C
bl obj_translate_based_on_private_1_2_3_4
ldr r1, _080D98D0 @ =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D98D4 @ =sub_8078BB8
str r0, [r4, 0x1C]
_080D98C6:
@@ -31515,7 +31515,7 @@ _080D997E:
strh r0, [r7, 0x2E]
b _080D99DC
_080D9986:
- ldr r4, _080D99E8 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D99E8 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -31528,7 +31528,7 @@ _080D9986:
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r2, _080D99EC @ =gBattleAnimEnemyMonIndex
+ ldr r2, _080D99EC @ =gBattleAnimBankTarget
mov r8, r2
ldrb r0, [r2]
movs r1, 0x2
@@ -31561,8 +31561,8 @@ _080D99DC:
pop {r0}
bx r0
.align 2, 0
-_080D99E8: .4byte gBattleAnimPlayerMonIndex
-_080D99EC: .4byte gBattleAnimEnemyMonIndex
+_080D99E8: .4byte gBattleAnimBankAttacker
+_080D99EC: .4byte gBattleAnimBankTarget
_080D99F0: .4byte sub_80D99F4
thumb_func_end sub_80D9934
@@ -31627,19 +31627,19 @@ sub_80D9A38: @ 80D9A38
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r0, _080D9A74 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D9A74 @ =gBattleAnimBankTarget
ldrb r4, [r0]
- ldr r0, _080D9A78 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9A78 @ =gBattleAnimBankAttacker
b _080D9A82
.align 2, 0
_080D9A6C: .4byte gBattleAnimArgs
_080D9A70: .4byte gBankAttacker
-_080D9A74: .4byte gBattleAnimEnemyMonIndex
-_080D9A78: .4byte gBattleAnimPlayerMonIndex
+_080D9A74: .4byte gBattleAnimBankTarget
+_080D9A78: .4byte gBattleAnimBankAttacker
_080D9A7C:
- ldr r0, _080D9AB4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9AB4 @ =gBattleAnimBankAttacker
ldrb r4, [r0]
- ldr r0, _080D9AB8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D9AB8 @ =gBattleAnimBankTarget
_080D9A82:
ldrb r0, [r0]
bl sub_8079ED4
@@ -31665,8 +31665,8 @@ _080D9A82:
subs r0, 0x47
b _080D9AD6
.align 2, 0
-_080D9AB4: .4byte gBattleAnimPlayerMonIndex
-_080D9AB8: .4byte gBattleAnimEnemyMonIndex
+_080D9AB4: .4byte gBattleAnimBankAttacker
+_080D9AB8: .4byte gBattleAnimBankTarget
_080D9ABC:
adds r0, r4, 0
bl GetBankSide
@@ -31707,7 +31707,7 @@ _080D9ADC:
bl obj_translate_based_on_private_1_2_3_4
ldr r1, _080D9B1C @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D9B20 @ =sub_8078BB8
str r0, [r5, 0x1C]
pop {r4,r5}
@@ -31743,7 +31743,7 @@ _080D9B3A:
sub_80D9B48: @ 80D9B48
push {r4-r6,lr}
adds r5, r0, 0
- ldr r4, _080D9BC4 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D9BC4 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -31802,7 +31802,7 @@ _080D9BA6:
pop {r0}
bx r0
.align 2, 0
-_080D9BC4: .4byte gBattleAnimEnemyMonIndex
+_080D9BC4: .4byte gBattleAnimBankTarget
_080D9BC8: .4byte gBattleAnimArgs
_080D9BCC: .4byte gUnknown_0202F7C4
_080D9BD0: .4byte sub_80D9B24
@@ -31837,7 +31837,7 @@ _080D9BF8:
bl StartSpriteAnim
b _080D9C22
_080D9C0C:
- ldr r0, _080D9C34 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9C34 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -31851,12 +31851,12 @@ _080D9C22:
str r0, [r4, 0x1C]
ldr r1, _080D9C3C @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
.align 2, 0
-_080D9C34: .4byte gBattleAnimPlayerMonIndex
+_080D9C34: .4byte gBattleAnimBankAttacker
_080D9C38: .4byte sub_8078600
_080D9C3C: .4byte move_anim_8072740
thumb_func_end sub_80D9BD4
@@ -31952,7 +31952,7 @@ _080D9CDE:
ldrh r1, [r4, 0x1C]
adds r0, r1
strh r0, [r4, 0x1C]
- ldr r0, _080D9D0C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D9D0C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -31968,7 +31968,7 @@ _080D9CDE:
adds r7, r1, 0
b _080D9D24
.align 2, 0
-_080D9D0C: .4byte gBattleAnimEnemyMonIndex
+_080D9D0C: .4byte gBattleAnimBankTarget
_080D9D10: .4byte gUnknown_030041B0
_080D9D14:
ldr r2, _080D9D64 @ =gUnknown_030041B0
@@ -32034,7 +32034,7 @@ _080D9D86:
bl sub_80787B0
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x2E]
- ldr r4, _080D9DC8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D9DC8 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -32058,7 +32058,7 @@ _080D9D86:
bx r0
.align 2, 0
_080D9DC4: .4byte gBattleAnimArgs
-_080D9DC8: .4byte gBattleAnimEnemyMonIndex
+_080D9DC8: .4byte gBattleAnimBankTarget
_080D9DCC: .4byte 0x0000ffe2
_080D9DD0: .4byte sub_80D9DD4
thumb_func_end sub_80D9D70
@@ -32096,7 +32096,7 @@ _080D9E08:
adds r0, r4, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080D9E68 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D9E68 @ =gBattleAnimBankTarget
ldrb r0, [r0]
mov r6, sp
adds r6, 0x2
@@ -32104,7 +32104,7 @@ _080D9E08:
mov r2, sp
adds r3, r6, 0
bl sub_807A3FC
- ldr r0, _080D9E6C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9E6C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -32137,8 +32137,8 @@ _080D9E36:
bx r0
.align 2, 0
_080D9E64: .4byte gBattleAnimArgs
-_080D9E68: .4byte gBattleAnimEnemyMonIndex
-_080D9E6C: .4byte gBattleAnimPlayerMonIndex
+_080D9E68: .4byte gBattleAnimBankTarget
+_080D9E6C: .4byte gBattleAnimBankAttacker
_080D9E70: .4byte 0x0000ffe2
_080D9E74: .4byte sub_80D9E78
thumb_func_end sub_80D9DF0
@@ -32229,7 +32229,7 @@ _080D9F0E:
sub_80D9F14: @ 80D9F14
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D9F74 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D9F74 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -32237,7 +32237,7 @@ sub_80D9F14: @ 80D9F14
adds r3, 0x22
movs r1, 0x1
bl sub_807A3FC
- ldr r0, _080D9F78 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9F78 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -32268,13 +32268,13 @@ _080D9F40:
str r0, [r4, 0x1C]
ldr r1, _080D9F84 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
.align 2, 0
-_080D9F74: .4byte gBattleAnimEnemyMonIndex
-_080D9F78: .4byte gBattleAnimPlayerMonIndex
+_080D9F74: .4byte gBattleAnimBankTarget
+_080D9F78: .4byte gBattleAnimBankAttacker
_080D9F7C: .4byte gBattleAnimArgs
_080D9F80: .4byte sub_8078B34
_080D9F84: .4byte move_anim_8072740
@@ -32296,7 +32296,7 @@ sub_80D9F88: @ 80D9F88
.align 2, 0
_080D9FA0: .4byte gBattleAnimArgs
_080D9FA4:
- ldr r0, _080D9FE4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D9FE4 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -32304,7 +32304,7 @@ _080D9FA4:
adds r3, 0x22
movs r1, 0x1
bl sub_807A3FC
- ldr r0, _080D9FE8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9FE8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -32329,8 +32329,8 @@ _080D9FDA:
pop {r0}
bx r0
.align 2, 0
-_080D9FE4: .4byte gBattleAnimEnemyMonIndex
-_080D9FE8: .4byte gBattleAnimPlayerMonIndex
+_080D9FE4: .4byte gBattleAnimBankTarget
+_080D9FE8: .4byte gBattleAnimBankAttacker
_080D9FEC: .4byte sub_80D9FF0
thumb_func_end sub_80D9F88
@@ -32538,7 +32538,7 @@ sub_80DA16C: @ 80DA16C
adds r6, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080DA1D8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DA1D8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -32554,7 +32554,7 @@ _080DA18C:
strh r0, [r6, 0x2E]
ldrh r0, [r6, 0x20]
strh r0, [r6, 0x30]
- ldr r5, _080DA1E0 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080DA1E0 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -32579,14 +32579,14 @@ _080DA18C:
str r0, [r6, 0x1C]
ldr r1, _080DA1E8 @ =sub_80DA1EC
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080DA1D8: .4byte gBattleAnimPlayerMonIndex
+_080DA1D8: .4byte gBattleAnimBankAttacker
_080DA1DC: .4byte gBattleAnimArgs
-_080DA1E0: .4byte gBattleAnimEnemyMonIndex
+_080DA1E0: .4byte gBattleAnimBankTarget
_080DA1E4: .4byte sub_80785E4
_080DA1E8: .4byte sub_80DA1EC
thumb_func_end sub_80DA16C
@@ -32611,7 +32611,7 @@ _080DA200:
sub_80DA208: @ 80DA208
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080DA2A4 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DA2A4 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -32668,7 +32668,7 @@ _080DA24C:
ldrsh r0, [r2, r3]
cmp r0, 0
bne _080DA2B0
- ldr r4, _080DA2AC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DA2AC @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -32683,11 +32683,11 @@ _080DA24C:
strh r0, [r5, 0x36]
b _080DA2C2
.align 2, 0
-_080DA2A4: .4byte gBattleAnimPlayerMonIndex
+_080DA2A4: .4byte gBattleAnimBankAttacker
_080DA2A8: .4byte gBattleAnimArgs
-_080DA2AC: .4byte gBattleAnimEnemyMonIndex
+_080DA2AC: .4byte gBattleAnimBankTarget
_080DA2B0:
- ldr r0, _080DA2F0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DA2F0 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -32709,7 +32709,7 @@ _080DA2C2:
str r0, [r5, 0x1C]
ldr r1, _080DA2FC @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrb r1, [r4, 0xA]
adds r0, r5, 0
bl SeekSpriteAnim
@@ -32717,7 +32717,7 @@ _080DA2C2:
pop {r0}
bx r0
.align 2, 0
-_080DA2F0: .4byte gBattleAnimEnemyMonIndex
+_080DA2F0: .4byte gBattleAnimBankTarget
_080DA2F4: .4byte gBattleAnimArgs
_080DA2F8: .4byte sub_8078B34
_080DA2FC: .4byte move_anim_8072740
@@ -32737,7 +32737,7 @@ sub_80DA300: @ 80DA300
ldr r0, _080DA340 @ =sub_80DA348
str r0, [r4, 0x1C]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, _080DA344 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -32802,7 +32802,7 @@ _080DA386:
sub_80DA38C: @ 80DA38C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080DA3B4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DA3B4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -32818,7 +32818,7 @@ sub_80DA38C: @ 80DA38C
bl StartSpriteAffineAnim
b _080DA3C2
.align 2, 0
-_080DA3B4: .4byte gBattleAnimPlayerMonIndex
+_080DA3B4: .4byte gBattleAnimBankAttacker
_080DA3B8: .4byte 0x0000ffe0
_080DA3BC:
ldr r0, _080DA400 @ =0x0000ffe0
@@ -32830,7 +32830,7 @@ _080DA3C2:
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, _080DA408 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DA408 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -32855,7 +32855,7 @@ _080DA3C2:
.align 2, 0
_080DA400: .4byte 0x0000ffe0
_080DA404: .4byte gBattleAnimArgs
-_080DA408: .4byte gBattleAnimEnemyMonIndex
+_080DA408: .4byte gBattleAnimBankTarget
_080DA40C: .4byte sub_80DA410
thumb_func_end sub_80DA38C
@@ -32900,7 +32900,7 @@ _080DA438:
ble _080DA480
_080DA45A:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, _080DA488 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -32980,13 +32980,13 @@ sub_80DA4D8: @ 80DA4D8
ands r0, r1
cmp r0, 0
beq _080DA500
- ldr r0, _080DA4FC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DA4FC @ =gBattleAnimBankAttacker
b _080DA502
.align 2, 0
_080DA4F8: .4byte gBattleAnimArgs
-_080DA4FC: .4byte gBattleAnimPlayerMonIndex
+_080DA4FC: .4byte gBattleAnimBankAttacker
_080DA500:
- ldr r0, _080DA5B0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DA5B0 @ =gBattleAnimBankTarget
_080DA502:
ldrb r6, [r0]
adds r0, r6, 0
@@ -33073,7 +33073,7 @@ _080DA518:
strb r1, [r7, 0x5]
b _080DA5D8
.align 2, 0
-_080DA5B0: .4byte gBattleAnimEnemyMonIndex
+_080DA5B0: .4byte gBattleAnimBankTarget
_080DA5B4: .4byte gBattleAnimArgs
_080DA5B8: .4byte gMain
_080DA5BC: .4byte 0x0000043d
@@ -34081,7 +34081,7 @@ _080DAD2C: .4byte sub_80DA48C
sub_80DAD30: @ 80DAD30
push {r4,r5,lr}
adds r4, r0, 0
- ldr r0, _080DAD78 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DAD78 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -34093,7 +34093,7 @@ sub_80DAD30: @ 80DAD30
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x5]
- ldr r5, _080DAD7C @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080DAD7C @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -34112,8 +34112,8 @@ sub_80DAD30: @ 80DAD30
pop {r0}
bx r0
.align 2, 0
-_080DAD78: .4byte gBattleAnimEnemyMonIndex
-_080DAD7C: .4byte gBattleAnimPlayerMonIndex
+_080DAD78: .4byte gBattleAnimBankTarget
+_080DAD7C: .4byte gBattleAnimBankAttacker
_080DAD80: .4byte sub_807941C
thumb_func_end sub_80DAD30
@@ -34137,7 +34137,7 @@ sub_80DAD84: @ 80DAD84
cmp r0, 0
beq _080DAE44
ldr r0, _080DADD8 @ =gBanksBySide
- ldr r1, _080DADDC @ =gBattleAnimEnemyMonIndex
+ ldr r1, _080DADDC @ =gBattleAnimBankTarget
ldrb r2, [r1]
adds r0, r2, r0
ldrb r1, [r0]
@@ -34158,7 +34158,7 @@ _080DADCC: .4byte gBattleAnimArgs
_080DADD0: .4byte gMain
_080DADD4: .4byte 0x0000043d
_080DADD8: .4byte gBanksBySide
-_080DADDC: .4byte gBattleAnimEnemyMonIndex
+_080DADDC: .4byte gBattleAnimBankTarget
_080DADE0:
adds r0, r2, 0
movs r1, 0x1
@@ -34173,7 +34173,7 @@ _080DADEE:
ldrsh r0, [r0, r1]
cmp r0, 0
beq _080DAE24
- ldr r0, _080DAE20 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DAE20 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
lsls r0, 24
@@ -34191,9 +34191,9 @@ _080DADEE:
b _080DAE58
.align 2, 0
_080DAE1C: .4byte gBattleAnimArgs
-_080DAE20: .4byte gBattleAnimEnemyMonIndex
+_080DAE20: .4byte gBattleAnimBankTarget
_080DAE24:
- ldr r0, _080DAE40 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DAE40 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -34207,9 +34207,9 @@ _080DAE24:
strb r0, [r4, 0x5]
b _080DAE58
.align 2, 0
-_080DAE40: .4byte gBattleAnimEnemyMonIndex
+_080DAE40: .4byte gBattleAnimBankTarget
_080DAE44:
- ldr r0, _080DAEFC @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DAEFC @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x1
bl sub_8077ABC
@@ -34303,7 +34303,7 @@ _080DAEF2:
pop {r0}
bx r0
.align 2, 0
-_080DAEFC: .4byte gBattleAnimEnemyMonIndex
+_080DAEFC: .4byte gBattleAnimBankTarget
_080DAF00: .4byte gSineTable
_080DAF04: .4byte gOamMatrices
_080DAF08: .4byte sub_80DAF0C
@@ -34463,7 +34463,7 @@ _080DB024:
ldrsh r0, [r4, r2]
cmp r0, 0
bne _080DB03C
- ldr r0, _080DB090 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DB090 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -34474,7 +34474,7 @@ _080DB03C:
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _080DB058
- ldr r0, _080DB094 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DB094 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -34512,8 +34512,8 @@ _080DB058:
bx r0
.align 2, 0
_080DB08C: .4byte gBattleAnimArgs
-_080DB090: .4byte gBattleAnimPlayerMonIndex
-_080DB094: .4byte gBattleAnimEnemyMonIndex
+_080DB090: .4byte gBattleAnimBankAttacker
+_080DB094: .4byte gBattleAnimBankTarget
_080DB098: .4byte 0x00000ccc
_080DB09C: .4byte sub_80DB0A0
thumb_func_end sub_80DB000
@@ -34599,7 +34599,7 @@ sub_80DB0E8: @ 80DB0E8
strh r0, [r4, 0x6]
ldr r0, _080DB18C @ =gBattleAnimSpriteTemplate_83DB538
mov r8, r0
- ldr r5, _080DB190 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080DB190 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -34637,7 +34637,7 @@ _080DB180: .4byte gTasks
_080DB184: .4byte gAnimVisualTaskCount
_080DB188: .4byte gBattleAnimArgs
_080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538
-_080DB190: .4byte gBattleAnimEnemyMonIndex
+_080DB190: .4byte gBattleAnimBankTarget
thumb_func_end sub_80DB0E8
thumb_func_start sub_80DB194
@@ -34656,7 +34656,7 @@ _080DB1A6:
movs r1, 0x1
bl sub_80787B0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, _080DB1D4 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -34709,7 +34709,7 @@ _080DB20A:
beq _080DB240
b _080DB27E
_080DB210:
- ldr r0, _080DB228 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DB228 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x1
bl sub_8077ABC
@@ -34721,7 +34721,7 @@ _080DB210:
strh r0, [r4, 0x26]
b _080DB238
.align 2, 0
-_080DB228: .4byte gBattleAnimEnemyMonIndex
+_080DB228: .4byte gBattleAnimBankTarget
_080DB22C:
ldrh r0, [r4, 0x26]
adds r0, 0xA
@@ -34748,7 +34748,7 @@ _080DB240:
cmp r0, r1
bge _080DB27E
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, _080DB284 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -34786,7 +34786,7 @@ sub_80DB288: @ 80DB288
ldr r0, _080DB2C8 @ =sub_80DB2D0
str r0, [r4, 0x1C]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, _080DB2CC @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -34919,13 +34919,13 @@ _080DB388:
ldrsh r0, [r0, r2]
cmp r0, 0
bne _080DB3A0
- ldr r4, _080DB39C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DB39C @ =gBattleAnimBankAttacker
b _080DB3A2
.align 2, 0
_080DB398: .4byte gBattleAnimArgs
-_080DB39C: .4byte gBattleAnimPlayerMonIndex
+_080DB39C: .4byte gBattleAnimBankAttacker
_080DB3A0:
- ldr r4, _080DB3DC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DB3DC @ =gBattleAnimBankTarget
_080DB3A2:
ldrb r0, [r4]
movs r1, 0
@@ -34954,7 +34954,7 @@ _080DB3A2:
strh r0, [r5, 0x2E]
b _080DB44C
.align 2, 0
-_080DB3DC: .4byte gBattleAnimEnemyMonIndex
+_080DB3DC: .4byte gBattleAnimBankTarget
_080DB3E0:
movs r1, 0x32
ldrsh r0, [r5, r1]
@@ -35079,13 +35079,13 @@ _080DB4C0:
ldrsh r0, [r2, r1]
cmp r0, 0
bne _080DB4D4
- ldr r4, _080DB4D0 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DB4D0 @ =gBattleAnimBankAttacker
b _080DB4D6
.align 2, 0
_080DB4CC: .4byte gBattleAnimArgs
-_080DB4D0: .4byte gBattleAnimPlayerMonIndex
+_080DB4D0: .4byte gBattleAnimBankAttacker
_080DB4D4:
- ldr r4, _080DB500 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DB500 @ =gBattleAnimBankTarget
_080DB4D6:
ldrb r0, [r4]
movs r1, 0
@@ -35106,7 +35106,7 @@ _080DB4D6:
pop {r0}
bx r0
.align 2, 0
-_080DB500: .4byte gBattleAnimEnemyMonIndex
+_080DB500: .4byte gBattleAnimBankTarget
_080DB504: .4byte sub_80DB508
thumb_func_end sub_80DB458
@@ -35245,7 +35245,7 @@ sub_80DB5E4: @ 80DB5E4
mov r8, r0
ldrh r4, [r0, 0x20]
ldrh r5, [r0, 0x22]
- ldr r6, _080DB698 @ =gBattleAnimPlayerMonIndex
+ ldr r6, _080DB698 @ =gBattleAnimBankAttacker
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
@@ -35321,7 +35321,7 @@ sub_80DB5E4: @ 80DB5E4
pop {r0}
bx r0
.align 2, 0
-_080DB698: .4byte gBattleAnimPlayerMonIndex
+_080DB698: .4byte gBattleAnimBankAttacker
_080DB69C: .4byte sub_80DB6A0
thumb_func_end sub_80DB5E4
@@ -35375,7 +35375,7 @@ unref_sub_80DB6E4: @ 80DB6E4
cmp r0, 0
bne _080DB71C
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, _080DB718 @ =gSprites
@@ -35393,7 +35393,7 @@ _080DB714: .4byte gBattleAnimArgs
_080DB718: .4byte gSprites
_080DB71C:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, _080DB748 @ =gSprites
@@ -35421,7 +35421,7 @@ _080DB748: .4byte gSprites
sub_80DB74C: @ 80DB74C
push {r4-r7,lr}
adds r6, r0, 0
- ldr r0, _080DB804 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DB804 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -35463,7 +35463,7 @@ _080DB77E:
orrs r1, r0
lsrs r5, r1, 31
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080DB7BC
@@ -35475,7 +35475,7 @@ _080DB7BC:
adds r4, r0, 0
eors r4, r7
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080DB7DA
@@ -35493,7 +35493,7 @@ _080DB7DA:
lsls r0, 24
cmp r0, 0
beq _080DB810
- ldr r0, _080DB804 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DB804 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -35504,14 +35504,14 @@ _080DB7DA:
movs r0, 0x50
b _080DB84A
.align 2, 0
-_080DB804: .4byte gBattleAnimPlayerMonIndex
+_080DB804: .4byte gBattleAnimBankAttacker
_080DB808:
movs r0, 0xB0
strh r0, [r6, 0x20]
movs r0, 0x28
b _080DB84A
_080DB810:
- ldr r5, _080DB880 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080DB880 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
lsls r0, 24
@@ -35565,7 +35565,7 @@ _080DB85C:
pop {r0}
bx r0
.align 2, 0
-_080DB880: .4byte gBattleAnimPlayerMonIndex
+_080DB880: .4byte gBattleAnimBankAttacker
_080DB884: .4byte gBattleAnimArgs
_080DB888: .4byte sub_80DB88C
thumb_func_end sub_80DB74C
@@ -35689,7 +35689,7 @@ sub_80DB92C: @ 80DB92C
lsrs r4, r0, 24
adds r6, r4, 0
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080DB98E
@@ -35712,7 +35712,7 @@ _080DB98E:
adds r4, r0, 0
eors r4, r6
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080DB9BC
@@ -35772,7 +35772,7 @@ sub_80DB9E4: @ 80DB9E4
orrs r1, r0
lsrs r5, r1, 31
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080DBA22
@@ -35782,7 +35782,7 @@ _080DBA22:
movs r0, 0x2
eors r4, r0
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080DBA3C
@@ -35824,7 +35824,7 @@ _080DBA66:
lsls r0, 24
cmp r0, 0
beq _080DBAAE
- ldr r0, _080DBA9C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DBA9C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -35840,7 +35840,7 @@ _080DBA66:
b _080DBAD0
.align 2, 0
_080DBA98: .4byte gBattleAnimArgs
-_080DBA9C: .4byte gBattleAnimPlayerMonIndex
+_080DBA9C: .4byte gBattleAnimBankAttacker
_080DBAA0:
ldrh r0, [r5]
adds r0, 0xB0
@@ -35890,7 +35890,7 @@ _080DBAEC:
sub_80DBAF4: @ 80DBAF4
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080DBB3C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DBB3C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -35920,7 +35920,7 @@ sub_80DBAF4: @ 80DBAF4
ldr r0, _080DBB40 @ =0x0000ffff
b _080DBB52
.align 2, 0
-_080DBB3C: .4byte gBattleAnimPlayerMonIndex
+_080DBB3C: .4byte gBattleAnimBankAttacker
_080DBB40: .4byte 0x0000ffff
_080DBB44:
ldrh r0, [r5, 0x20]
@@ -35934,7 +35934,7 @@ _080DBB52:
strh r0, [r5, 0x30]
ldr r1, _080DBB68 @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080DBB6C @ =sub_8078600
str r0, [r5, 0x1C]
pop {r4,r5}
@@ -35949,7 +35949,7 @@ _080DBB6C: .4byte sub_8078600
sub_80DBB70: @ 80DBB70
push {r4-r7,lr}
adds r5, r0, 0
- ldr r6, _080DBBF4 @ =gBattleAnimPlayerMonIndex
+ ldr r6, _080DBBF4 @ =gBattleAnimBankAttacker
ldrb r0, [r6]
movs r1, 0x1
bl sub_807A100
@@ -36003,14 +36003,14 @@ _080DBBB6:
_080DBBE2:
ldr r1, _080DBBF8 @ =sub_80DBC00
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080DBBFC @ =sub_8078600
str r0, [r5, 0x1C]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
-_080DBBF4: .4byte gBattleAnimPlayerMonIndex
+_080DBBF4: .4byte gBattleAnimBankAttacker
_080DBBF8: .4byte sub_80DBC00
_080DBBFC: .4byte sub_8078600
thumb_func_end sub_80DBB70
@@ -36105,7 +36105,7 @@ sub_80DBC94: @ 80DBC94
ldr r0, _080DBCC4 @ =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -36159,14 +36159,14 @@ sub_80DBCFC: @ 80DBCFC
ldr r0, _080DBD48 @ =gTasks
adds r4, r1, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
movs r1, 0
strh r0, [r4, 0x8]
strh r1, [r4, 0xA]
strh r1, [r4, 0xC]
- ldr r0, _080DBD4C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DBD4C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -36187,7 +36187,7 @@ _080DBD30:
bx r0
.align 2, 0
_080DBD48: .4byte gTasks
-_080DBD4C: .4byte gBattleAnimPlayerMonIndex
+_080DBD4C: .4byte gBattleAnimBankAttacker
_080DBD50: .4byte gUnknown_083DA8C4
_080DBD54: .4byte sub_80DBD58
thumb_func_end sub_80DBCFC
@@ -36294,7 +36294,7 @@ sub_80DBE00: @ 80DBE00
movs r7, 0x10
strh r7, [r5, 0xE]
strh r0, [r5, 0x10]
- ldr r4, _080DBE88 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DBE88 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -36345,7 +36345,7 @@ _080DBE6A:
bx r0
.align 2, 0
_080DBE84: .4byte gTasks
-_080DBE88: .4byte gBattleAnimPlayerMonIndex
+_080DBE88: .4byte gBattleAnimBankAttacker
_080DBE8C: .4byte REG_BLDCNT
_080DBE90: .4byte REG_BLDALPHA
_080DBE94: .4byte sub_80DBE98
@@ -36614,7 +36614,7 @@ sub_80DC068: @ 80DC068
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080DC094
- ldr r4, _080DC0A8 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DC0A8 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -36637,7 +36637,7 @@ _080DC094:
bx r0
.align 2, 0
_080DC0A4: .4byte gBattleAnimArgs
-_080DC0A8: .4byte gBattleAnimPlayerMonIndex
+_080DC0A8: .4byte gBattleAnimBankAttacker
_080DC0AC: .4byte sub_80DC020
thumb_func_end sub_80DC068
@@ -36662,7 +36662,7 @@ sub_80DC0B0: @ 80DC0B0
bne _080DC120
ldr r0, _080DC114 @ =0x0000fff6
strh r0, [r5, 0x1C]
- ldr r4, _080DC118 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DC118 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x5
bl sub_807A100
@@ -36673,7 +36673,7 @@ sub_80DC0B0: @ 80DC0B0
bl sub_807A100
adds r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, _080DC11C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DC11C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x5
bl sub_807A100
@@ -36688,12 +36688,12 @@ sub_80DC0B0: @ 80DC0B0
_080DC10C: .4byte gTasks
_080DC110: .4byte gBattleAnimArgs
_080DC114: .4byte 0x0000fff6
-_080DC118: .4byte gBattleAnimEnemyMonIndex
-_080DC11C: .4byte gBattleAnimPlayerMonIndex
+_080DC118: .4byte gBattleAnimBankTarget
+_080DC11C: .4byte gBattleAnimBankAttacker
_080DC120:
movs r0, 0xA
strh r0, [r5, 0x1C]
- ldr r4, _080DC14C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DC14C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x4
bl sub_807A100
@@ -36704,15 +36704,15 @@ _080DC120:
bl sub_807A100
subs r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, _080DC150 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DC150 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x4
bl sub_807A100
adds r0, 0x8
b _080DC1D2
.align 2, 0
-_080DC14C: .4byte gBattleAnimPlayerMonIndex
-_080DC150: .4byte gBattleAnimEnemyMonIndex
+_080DC14C: .4byte gBattleAnimBankAttacker
+_080DC150: .4byte gBattleAnimBankTarget
_080DC154:
ldr r0, _080DC198 @ =gBattleAnimArgs
movs r1, 0
@@ -36721,7 +36721,7 @@ _080DC154:
bne _080DC1A8
ldr r0, _080DC19C @ =0x0000fff6
strh r0, [r5, 0x1C]
- ldr r4, _080DC1A0 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DC1A0 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x4
bl sub_807A100
@@ -36732,7 +36732,7 @@ _080DC154:
bl sub_807A100
adds r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, _080DC1A4 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DC1A4 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x4
bl sub_807A100
@@ -36746,12 +36746,12 @@ _080DC154:
.align 2, 0
_080DC198: .4byte gBattleAnimArgs
_080DC19C: .4byte 0x0000fff6
-_080DC1A0: .4byte gBattleAnimEnemyMonIndex
-_080DC1A4: .4byte gBattleAnimPlayerMonIndex
+_080DC1A0: .4byte gBattleAnimBankTarget
+_080DC1A4: .4byte gBattleAnimBankAttacker
_080DC1A8:
movs r0, 0xA
strh r0, [r5, 0x1C]
- ldr r4, _080DC1F0 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DC1F0 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x5
bl sub_807A100
@@ -36762,7 +36762,7 @@ _080DC1A8:
bl sub_807A100
subs r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, _080DC1F4 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DC1F4 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x5
bl sub_807A100
@@ -36783,8 +36783,8 @@ _080DC1DE:
pop {r0}
bx r0
.align 2, 0
-_080DC1F0: .4byte gBattleAnimPlayerMonIndex
-_080DC1F4: .4byte gBattleAnimEnemyMonIndex
+_080DC1F0: .4byte gBattleAnimBankAttacker
+_080DC1F4: .4byte gBattleAnimBankTarget
_080DC1F8: .4byte sub_80DC1FC
thumb_func_end sub_80DC0B0
@@ -36909,7 +36909,7 @@ sub_80DC2D4: @ 80DC2D4
lsls r1, 3
ldr r0, _080DC30C @ =gTasks
adds r4, r1, r0
- ldr r0, _080DC310 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DC310 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8077FC0
lsls r0, 24
@@ -36929,7 +36929,7 @@ sub_80DC2D4: @ 80DC2D4
b _080DC346
.align 2, 0
_080DC30C: .4byte gTasks
-_080DC310: .4byte gBattleAnimEnemyMonIndex
+_080DC310: .4byte gBattleAnimBankTarget
_080DC314: .4byte gBattleAnimArgs
_080DC318:
cmp r0, 0x2
@@ -36967,7 +36967,7 @@ _080DC346:
movs r0, 0
strh r0, [r4, 0x24]
_080DC352:
- ldr r0, _080DC36C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DC36C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -36980,7 +36980,7 @@ _080DC352:
ldr r0, _080DC374 @ =REG_BG1HOFS
b _080DC380
.align 2, 0
-_080DC36C: .4byte gBattleAnimEnemyMonIndex
+_080DC36C: .4byte gBattleAnimBankTarget
_080DC370: .4byte gUnknown_030042C0
_080DC374: .4byte REG_BG1HOFS
_080DC378:
@@ -37282,7 +37282,7 @@ _080DC554:
bl CalcCenterToCornerVec
ldr r1, _080DC5EC @ =gBattleAnimArgs
ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r7, 0x22]
@@ -37461,7 +37461,7 @@ _080DC716:
beq _080DC808
b _080DC818
_080DC720:
- ldr r4, _080DC76C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DC76C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -37498,7 +37498,7 @@ _080DC74E:
strh r0, [r2]
b _080DC7A2
.align 2, 0
-_080DC76C: .4byte gBattleAnimPlayerMonIndex
+_080DC76C: .4byte gBattleAnimBankAttacker
_080DC770: .4byte REG_BLDCNT
_080DC774: .4byte REG_BLDALPHA
_080DC778:
@@ -37612,7 +37612,7 @@ sub_80DC824: @ 80DC824
.align 2, 0
_080DC84C: .4byte gBattleAnimArgs
_080DC850:
- ldr r0, _080DC8E4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DC8E4 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -37635,7 +37635,7 @@ _080DC850:
negs r0, r0
strh r0, [r1]
_080DC880:
- ldr r5, _080DC8E4 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080DC8E4 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077EE4
@@ -37675,12 +37675,12 @@ _080DC880:
str r0, [r6, 0x1C]
ldr r1, _080DC8F0 @ =move_anim_8072740
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080DC8E4: .4byte gBattleAnimEnemyMonIndex
+_080DC8E4: .4byte gBattleAnimBankTarget
_080DC8E8: .4byte gBattleAnimArgs
_080DC8EC: .4byte sub_8078B34
_080DC8F0: .4byte move_anim_8072740
@@ -37705,7 +37705,7 @@ sub_80DC8F4: @ 80DC8F4
.align 2, 0
_080DC914: .4byte gBattleAnimArgs
_080DC918:
- ldr r0, _080DC990 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DC990 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -37719,7 +37719,7 @@ _080DC918:
negs r1, r1
strh r1, [r0]
_080DC934:
- ldr r5, _080DC990 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080DC990 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077EE4
@@ -37755,12 +37755,12 @@ _080DC934:
str r0, [r6, 0x1C]
ldr r1, _080DC99C @ =move_anim_8072740
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080DC990: .4byte gBattleAnimEnemyMonIndex
+_080DC990: .4byte gBattleAnimBankTarget
_080DC994: .4byte gBattleAnimArgs
_080DC998: .4byte sub_8078B34
_080DC99C: .4byte move_anim_8072740
@@ -37796,7 +37796,7 @@ _080DC9BC:
ldrsh r0, [r1, r2]
cmp r0, 0
bne _080DCA04
- ldr r4, _080DCA00 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DCA00 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -37812,9 +37812,9 @@ _080DC9BC:
b _080DCA16
.align 2, 0
_080DC9FC: .4byte gBattleAnimArgs
-_080DCA00: .4byte gBattleAnimEnemyMonIndex
+_080DCA00: .4byte gBattleAnimBankTarget
_080DCA04:
- ldr r0, _080DCA2C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DCA2C @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -37834,7 +37834,7 @@ _080DCA16:
pop {r0}
bx r0
.align 2, 0
-_080DCA2C: .4byte gBattleAnimEnemyMonIndex
+_080DCA2C: .4byte gBattleAnimBankTarget
_080DCA30: .4byte gBattleAnimArgs
_080DCA34: .4byte sub_80DCA38
thumb_func_end sub_80DC9A0
@@ -37874,7 +37874,7 @@ _080DCA6A:
sub_80DCA70: @ 80DCA70
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080DCAA0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DCAA0 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -37882,7 +37882,7 @@ sub_80DCA70: @ 80DCA70
adds r3, 0x22
movs r1, 0
bl sub_807A3FC
- ldr r0, _080DCAA4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DCAA4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -37895,8 +37895,8 @@ sub_80DCA70: @ 80DCA70
strh r1, [r4, 0x20]
b _080DCAB8
.align 2, 0
-_080DCAA0: .4byte gBattleAnimEnemyMonIndex
-_080DCAA4: .4byte gBattleAnimPlayerMonIndex
+_080DCAA0: .4byte gBattleAnimBankTarget
+_080DCAA4: .4byte gBattleAnimBankAttacker
_080DCAA8: .4byte gBattleAnimArgs
_080DCAAC:
ldr r1, _080DCAE0 @ =gBattleAnimArgs
@@ -37910,7 +37910,7 @@ _080DCAB8:
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
- ldr r0, _080DCAE4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DCAE4 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -37927,7 +37927,7 @@ _080DCAD4:
bx r0
.align 2, 0
_080DCAE0: .4byte gBattleAnimArgs
-_080DCAE4: .4byte gBattleAnimEnemyMonIndex
+_080DCAE4: .4byte gBattleAnimBankTarget
_080DCAE8: .4byte sub_80DCAEC
thumb_func_end sub_80DCA70
@@ -38075,7 +38075,7 @@ sub_80DCBCC: @ 80DCBCC
.align 2, 0
_080DCBE8: .4byte gBattleAnimArgs
_080DCBEC:
- ldr r0, _080DCCE8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DCCE8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -38096,11 +38096,11 @@ _080DCC0E:
lsls r0, 24
cmp r0, 0
bne _080DCC5E
- ldr r0, _080DCCE8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DCCE8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
adds r4, r0, 0
- ldr r5, _080DCCF0 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080DCCF0 @ =gBattleAnimBankTarget
ldrb r0, [r5]
bl GetBankSide
lsls r4, 24
@@ -38132,7 +38132,7 @@ _080DCC5E:
adds r0, r7, 0
movs r1, 0x1
bl sub_80787B0
- ldr r5, _080DCCF0 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080DCCF0 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -38186,15 +38186,15 @@ _080DCC5E:
str r0, [r7, 0x1C]
ldr r1, _080DCCF8 @ =move_anim_8072740
adds r0, r7, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
-_080DCCE8: .4byte gBattleAnimPlayerMonIndex
+_080DCCE8: .4byte gBattleAnimBankAttacker
_080DCCEC: .4byte gBattleAnimArgs
-_080DCCF0: .4byte gBattleAnimEnemyMonIndex
+_080DCCF0: .4byte gBattleAnimBankTarget
_080DCCF4: .4byte sub_8078B34
_080DCCF8: .4byte move_anim_8072740
thumb_func_end sub_80DCBCC
@@ -38205,7 +38205,7 @@ sub_80DCCFC: @ 80DCCFC
adds r6, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080DCD68 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DCD68 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -38219,7 +38219,7 @@ _080DCD1C:
ldr r4, _080DCD6C @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
- ldr r5, _080DCD70 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080DCD70 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -38252,9 +38252,9 @@ _080DCD1C:
pop {r0}
bx r0
.align 2, 0
-_080DCD68: .4byte gBattleAnimPlayerMonIndex
+_080DCD68: .4byte gBattleAnimBankAttacker
_080DCD6C: .4byte gBattleAnimArgs
-_080DCD70: .4byte gBattleAnimEnemyMonIndex
+_080DCD70: .4byte gBattleAnimBankTarget
_080DCD74: .4byte sub_80DCD78
thumb_func_end sub_80DCCFC
@@ -38370,13 +38370,13 @@ sub_80DCE40: @ 80DCE40
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080DCE5C
- ldr r4, _080DCE58 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DCE58 @ =gBattleAnimBankAttacker
b _080DCE5E
.align 2, 0
_080DCE54: .4byte gBattleAnimArgs
-_080DCE58: .4byte gBattleAnimPlayerMonIndex
+_080DCE58: .4byte gBattleAnimBankAttacker
_080DCE5C:
- ldr r4, _080DCE90 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DCE90 @ =gBattleAnimBankTarget
_080DCE5E:
ldrb r0, [r4]
movs r1, 0x2
@@ -38393,14 +38393,14 @@ _080DCE5E:
strh r0, [r5, 0x22]
ldr r1, _080DCE94 @ =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080DCE98 @ =sub_80785E4
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080DCE90: .4byte gBattleAnimEnemyMonIndex
+_080DCE90: .4byte gBattleAnimBankTarget
_080DCE94: .4byte move_anim_8074EE0
_080DCE98: .4byte sub_80785E4
thumb_func_end sub_80DCE40
@@ -38414,7 +38414,7 @@ sub_80DCE9C: @ 80DCE9C
ldrsh r0, [r6, r1]
cmp r0, 0
beq _080DCEBC
- ldr r0, _080DCF0C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DCF0C @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x20
@@ -38448,7 +38448,7 @@ _080DCEBC:
strh r0, [r5, 0x38]
ldr r1, _080DCF14 @ =sub_80DCF1C
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, _080DCF18 @ =sub_8078278
str r1, [r5, 0x1C]
adds r0, r5, 0
@@ -38458,7 +38458,7 @@ _080DCEBC:
bx r0
.align 2, 0
_080DCF08: .4byte gBattleAnimArgs
-_080DCF0C: .4byte gBattleAnimEnemyMonIndex
+_080DCF0C: .4byte gBattleAnimBankTarget
_080DCF10: .4byte 0x0000ffba
_080DCF14: .4byte sub_80DCF1C
_080DCF18: .4byte sub_8078278
@@ -38483,7 +38483,7 @@ sub_80DCF1C: @ 80DCF1C
strh r0, [r4, 0x36]
ldr r1, _080DCF58 @ =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, _080DCF5C @ =sub_8078278
str r1, [r4, 0x1C]
adds r0, r4, 0
@@ -38506,7 +38506,7 @@ sub_80DCF60: @ 80DCF60
bl StartSpriteAnim
adds r0, r5, 0
bl AnimateSprite
- ldr r0, _080DCF8C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DCF8C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -38518,7 +38518,7 @@ sub_80DCF60: @ 80DCF60
b _080DCF96
.align 2, 0
_080DCF88: .4byte gBattleAnimArgs
-_080DCF8C: .4byte gBattleAnimPlayerMonIndex
+_080DCF8C: .4byte gBattleAnimBankAttacker
_080DCF90:
ldrh r0, [r4]
ldrh r1, [r5, 0x20]
@@ -38550,7 +38550,7 @@ _080DCF96:
str r0, [r5, 0x1C]
ldr r1, _080DCFE0 @ =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -38726,7 +38726,7 @@ _080DD120:
ldrsh r0, [r0, r1]
cmp r0, 0
beq _080DD13A
- ldr r0, _080DD184 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DD184 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -38759,7 +38759,7 @@ _080DD174: .4byte gBattleAnimBackgroundTilemap_SandstormBrew
_080DD178: .4byte gBattleAnimBackgroundImage_SandstormBrew
_080DD17C: .4byte gBattleAnimSpritePalette_261
_080DD180: .4byte gBattleAnimArgs
-_080DD184: .4byte gBattleAnimPlayerMonIndex
+_080DD184: .4byte gBattleAnimBankAttacker
_080DD188: .4byte gTasks
_080DD18C: .4byte sub_80DD190
thumb_func_end do_boulder_dust
@@ -39044,7 +39044,7 @@ sub_80DD3AC: @ 80DD3AC
ldrsh r0, [r4, r2]
cmp r0, 0
beq _080DD3F8
- ldr r0, _080DD3F4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DD3F4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -39067,7 +39067,7 @@ sub_80DD3AC: @ 80DD3AC
b _080DD3FC
.align 2, 0
_080DD3F0: .4byte gBattleAnimArgs
-_080DD3F4: .4byte gBattleAnimPlayerMonIndex
+_080DD3F4: .4byte gBattleAnimBankAttacker
_080DD3F8:
ldr r0, _080DD41C @ =0x0000ffc0
strh r0, [r5, 0x20]
@@ -39169,7 +39169,7 @@ sub_80DD490: @ 80DD490
str r0, [r4, 0x1C]
ldr r1, _080DD4D0 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -39193,7 +39193,7 @@ sub_80DD4D4: @ 80DD4D4
lsls r1, 3
ldr r0, _080DD554 @ =gTasks
adds r6, r1, r0
- ldr r5, _080DD558 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080DD558 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -39209,7 +39209,7 @@ sub_80DD4D4: @ 80DD4D4
lsls r1, 13
adds r0, r1
lsrs r7, r0, 16
- ldr r4, _080DD55C @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DD55C @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -39243,8 +39243,8 @@ _080DD544:
b _080DD566
.align 2, 0
_080DD554: .4byte gTasks
-_080DD558: .4byte gBattleAnimPlayerMonIndex
-_080DD55C: .4byte gBattleAnimEnemyMonIndex
+_080DD558: .4byte gBattleAnimBankAttacker
+_080DD55C: .4byte gBattleAnimBankTarget
_080DD560:
lsls r1, r5, 3
movs r0, 0x30
@@ -39308,7 +39308,7 @@ _080DD57E:
strh r0, [r6, 0x24]
strh r5, [r6, 0xA]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x26]
@@ -39787,7 +39787,7 @@ _080DD972:
sub_80DD978: @ 80DD978
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080DD9A0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DD9A0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -39804,14 +39804,14 @@ _080DD994:
pop {r0}
bx r0
.align 2, 0
-_080DD9A0: .4byte gBattleAnimPlayerMonIndex
+_080DD9A0: .4byte gBattleAnimBankAttacker
thumb_func_end sub_80DD978
thumb_func_start sub_80DD9A4
sub_80DD9A4: @ 80DD9A4
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080DD9F0 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080DD9F0 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -39844,7 +39844,7 @@ sub_80DD9A4: @ 80DD9A4
pop {r0}
bx r0
.align 2, 0
-_080DD9F0: .4byte gBattleAnimEnemyMonIndex
+_080DD9F0: .4byte gBattleAnimBankTarget
_080DD9F4: .4byte gBattleAnimArgs
_080DD9F8: .4byte sub_80DD9FC
thumb_func_end sub_80DD9A4
@@ -40049,7 +40049,7 @@ sub_80DDB6C: @ 80DDB6C
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r5, _080DDBCC @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080DDBCC @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -40083,7 +40083,7 @@ sub_80DDB6C: @ 80DDB6C
bx r0
.align 2, 0
_080DDBC8: .4byte gBattleAnimArgs
-_080DDBCC: .4byte gBattleAnimEnemyMonIndex
+_080DDBCC: .4byte gBattleAnimBankTarget
_080DDBD0: .4byte sub_80DDBD8
_080DDBD4: .4byte REG_BLDCNT
thumb_func_end sub_80DDB6C
@@ -40389,7 +40389,7 @@ sub_80DDDF0: @ 80DDDF0
adds r0, r2, 0
strh r0, [r1]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -40506,7 +40506,7 @@ sub_80DDED0: @ 80DDED0
_080DDEF4: .4byte gTasks
_080DDEF8:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r1, r0, 24
ldrh r0, [r4, 0x8]
@@ -40551,7 +40551,7 @@ sub_80DDF40: @ 80DDF40
adds r4, r0, 0
ldrh r5, [r4, 0x20]
ldrh r6, [r4, 0x22]
- ldr r0, _080DDFDC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DDFDC @ =gBattleAnimBankAttacker
mov r8, r0
ldrb r0, [r0]
movs r1, 0x2
@@ -40618,7 +40618,7 @@ sub_80DDF40: @ 80DDF40
pop {r0}
bx r0
.align 2, 0
-_080DDFDC: .4byte gBattleAnimPlayerMonIndex
+_080DDFDC: .4byte gBattleAnimBankAttacker
_080DDFE0: .4byte gBattleAnimArgs
_080DDFE4: .4byte sub_80DDFE8
thumb_func_end sub_80DDF40
@@ -40671,7 +40671,7 @@ _080DE032:
lsls r0, 16
cmp r0, 0
bgt _080DE0F6
- ldr r4, _080DE098 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DE098 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -40712,7 +40712,7 @@ _080DE032:
strh r0, [r5, 0x3C]
b _080DE0E2
.align 2, 0
-_080DE098: .4byte gBattleAnimEnemyMonIndex
+_080DE098: .4byte gBattleAnimBankTarget
_080DE09C:
ldrh r0, [r5, 0x3A]
ldrh r1, [r5, 0x36]
@@ -40734,7 +40734,7 @@ _080DE09C:
lsls r0, 16
cmp r0, 0
bgt _080DE0F6
- ldr r4, _080DE0EC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DE0EC @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -40753,7 +40753,7 @@ _080DE0E2:
strh r0, [r5, 0x2E]
b _080DE0F6
.align 2, 0
-_080DE0EC: .4byte gBattleAnimEnemyMonIndex
+_080DE0EC: .4byte gBattleAnimBankTarget
_080DE0F0:
adds r0, r5, 0
bl move_anim_8074EE0
@@ -40917,7 +40917,7 @@ _080DE1E0:
adds r0, r4
movs r1, 0x50
strh r1, [r0, 0x2E]
- ldr r0, _080DE250 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DE250 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -40943,7 +40943,7 @@ _080DE1E0:
_080DE244: .4byte REG_BLDCNT
_080DE248: .4byte REG_BLDALPHA
_080DE24C: .4byte gSprites
-_080DE250: .4byte gBattleAnimEnemyMonIndex
+_080DE250: .4byte gBattleAnimBankTarget
_080DE254: .4byte 0x0000ff70
_080DE258:
movs r2, 0x8
@@ -40986,7 +40986,7 @@ _080DE276:
lsls r0, 2
adds r0, r4
ldr r1, _080DE2D0 @ =SpriteCallbackDummy
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
@@ -41156,7 +41156,7 @@ sub_80DE3D4: @ 80DE3D4
lsls r0, 3
ldr r1, _080DE40C @ =gTasks
adds r5, r0, r1
- ldr r0, _080DE410 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DE410 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -41174,7 +41174,7 @@ _080DE400:
mov pc, r0
.align 2, 0
_080DE40C: .4byte gTasks
-_080DE410: .4byte gBattleAnimEnemyMonIndex
+_080DE410: .4byte gBattleAnimBankTarget
_080DE414: .4byte _080DE418
.align 2, 0
_080DE418:
@@ -41250,7 +41250,7 @@ _080DE464:
movs r0, 0x10
strh r0, [r5, 0xE]
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -41516,7 +41516,7 @@ sub_80DE6B0: @ 80DE6B0
lsls r0, 3
ldr r1, _080DE6E0 @ =gTasks
adds r4, r0, r1
- ldr r0, _080DE6E4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DE6E4 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -41532,7 +41532,7 @@ sub_80DE6B0: @ 80DE6B0
b _080DE7AA
.align 2, 0
_080DE6E0: .4byte gTasks
-_080DE6E4: .4byte gBattleAnimEnemyMonIndex
+_080DE6E4: .4byte gBattleAnimBankTarget
_080DE6E8:
cmp r0, 0x2
beq _080DE740
@@ -41542,7 +41542,7 @@ _080DE6EE:
movs r0, 0x3
strb r0, [r1, 0x15]
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x24]
@@ -41648,7 +41648,7 @@ sub_80DE7B8: @ 80DE7B8
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080DE800
- ldr r4, _080DE7F8 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DE7F8 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -41663,14 +41663,14 @@ sub_80DE7B8: @ 80DE7B8
lsls r2, 13
adds r0, r2
lsrs r5, r0, 16
- ldr r4, _080DE7FC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DE7FC @ =gBattleAnimBankTarget
b _080DE824
.align 2, 0
_080DE7F4: .4byte gBattleAnimArgs
-_080DE7F8: .4byte gBattleAnimPlayerMonIndex
-_080DE7FC: .4byte gBattleAnimEnemyMonIndex
+_080DE7F8: .4byte gBattleAnimBankAttacker
+_080DE7FC: .4byte gBattleAnimBankTarget
_080DE800:
- ldr r4, _080DE8C8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DE8C8 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -41685,7 +41685,7 @@ _080DE800:
lsls r2, 13
adds r0, r2
lsrs r5, r0, 16
- ldr r4, _080DE8CC @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DE8CC @ =gBattleAnimBankAttacker
_080DE824:
ldrb r0, [r4]
movs r1, 0
@@ -41765,8 +41765,8 @@ _080DE824:
pop {r0}
bx r0
.align 2, 0
-_080DE8C8: .4byte gBattleAnimEnemyMonIndex
-_080DE8CC: .4byte gBattleAnimPlayerMonIndex
+_080DE8C8: .4byte gBattleAnimBankTarget
+_080DE8CC: .4byte gBattleAnimBankAttacker
_080DE8D0: .4byte gBattleAnimArgs
_080DE8D4: .4byte sub_80DE8D8
thumb_func_end sub_80DE7B8
@@ -41844,7 +41844,7 @@ sub_80DE918: @ 80DE918
ldr r2, _080DEA70 @ =gBattleAnimArgs
ldrh r0, [r2]
strh r0, [r1, 0x1C]
- ldr r4, _080DEA74 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DEA74 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -41867,7 +41867,7 @@ _080DE988:
_080DE98A:
lsls r1, r4, 16
asrs r3, r1, 16
- ldr r0, _080DEA74 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DEA74 @ =gBattleAnimBankAttacker
ldrb r2, [r0]
str r1, [sp, 0x10]
cmp r3, r2
@@ -41879,7 +41879,7 @@ _080DE98A:
lsls r0, r4, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080DEA56
@@ -41975,7 +41975,7 @@ _080DEA56:
_080DEA68: .4byte gTasks
_080DEA6C: .4byte REG_BLDCNT
_080DEA70: .4byte gBattleAnimArgs
-_080DEA74: .4byte gBattleAnimPlayerMonIndex
+_080DEA74: .4byte gBattleAnimBankAttacker
_080DEA78: .4byte gSpriteTemplate_83DAF08
_080DEA7C: .4byte gSprites
_080DEA80: .4byte gSprites + 0x1C
@@ -42290,7 +42290,7 @@ sub_80DECB0: @ 80DECB0
adds r1, 0x4
movs r0, 0x10
strh r0, [r1]
- ldr r0, _080DED08 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DED08 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -42308,7 +42308,7 @@ _080DECF8: .4byte gUnknown_030042C4
_080DECFC: .4byte gUnknown_03004240
_080DED00: .4byte REG_WININ
_080DED04: .4byte 0x00003f3f
-_080DED08: .4byte gBattleAnimPlayerMonIndex
+_080DED08: .4byte gBattleAnimBankAttacker
_080DED0C:
movs r6, 0xC8
_080DED0E:
@@ -42571,7 +42571,7 @@ sub_80DEF3C: @ 80DEF3C
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080DEF68 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DEF68 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -42588,7 +42588,7 @@ sub_80DEF3C: @ 80DEF3C
strb r1, [r4, 0x3]
b _080DEF74
.align 2, 0
-_080DEF68: .4byte gBattleAnimPlayerMonIndex
+_080DEF68: .4byte gBattleAnimBankAttacker
_080DEF6C: .4byte 0x0000fffe
_080DEF70:
ldr r2, _080DEF90 @ =0x0000ffe8
@@ -42662,7 +42662,7 @@ _080DEFAA:
str r0, [r3, 0x1C]
ldr r1, _080DF008 @ =sub_80DF018
adds r0, r3, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
b _080DF010
.align 2, 0
_080DEFFC: .4byte 0x000003ff
@@ -42775,7 +42775,7 @@ sub_80DF0B8: @ 80DF0B8
movs r1, 0xC
bl Sin
strh r0, [r4, 0x24]
- ldr r0, _080DF120 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DF120 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -42819,7 +42819,7 @@ _080DF0DC:
strh r0, [r1]
b _080DF17E
.align 2, 0
-_080DF120: .4byte gBattleAnimPlayerMonIndex
+_080DF120: .4byte gBattleAnimBankAttacker
_080DF124: .4byte 0x0000050b
_080DF128: .4byte REG_BLDCNT
_080DF12C:
@@ -42908,7 +42908,7 @@ sub_80DF1A4: @ 80DF1A4
mov r8, r0
mov r2, r8
strh r2, [r4, 0xA]
- ldr r5, _080DF240 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080DF240 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -42965,7 +42965,7 @@ sub_80DF1A4: @ 80DF1A4
bx r0
.align 2, 0
_080DF23C: .4byte gTasks
-_080DF240: .4byte gBattleAnimPlayerMonIndex
+_080DF240: .4byte gBattleAnimBankAttacker
_080DF244: .4byte REG_BLDCNT
_080DF248: .4byte sub_80DF24C
thumb_func_end sub_80DF1A4
@@ -43022,7 +43022,7 @@ _080DF292:
lsls r0, 2
adds r5, r0, r1
strh r7, [r5, 0x2E]
- ldr r0, _080DF2FC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DF2FC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
movs r1, 0
@@ -43056,7 +43056,7 @@ _080DF2E6:
.align 2, 0
_080DF2F4: .4byte gSpriteTemplate_83DAF80
_080DF2F8: .4byte gSprites
-_080DF2FC: .4byte gBattleAnimPlayerMonIndex
+_080DF2FC: .4byte gBattleAnimBankAttacker
_080DF300:
ldrh r0, [r4, 0xA]
adds r0, 0x1
@@ -43289,7 +43289,7 @@ sub_80DF49C: @ 80DF49C
orrs r1, r2
strb r1, [r3]
ldr r2, _080DF4E0 @ =gObjectBankIDs
- ldr r1, _080DF4E4 @ =gBattleAnimPlayerMonIndex
+ ldr r1, _080DF4E4 @ =gBattleAnimBankAttacker
ldrb r1, [r1]
adds r1, r2
ldrb r1, [r1]
@@ -43318,7 +43318,7 @@ sub_80DF49C: @ 80DF49C
bx lr
.align 2, 0
_080DF4E0: .4byte gObjectBankIDs
-_080DF4E4: .4byte gBattleAnimPlayerMonIndex
+_080DF4E4: .4byte gBattleAnimBankAttacker
_080DF4E8: .4byte gBattleAnimArgs
_080DF4EC: .4byte sub_80DF4F4
_080DF4F0: .4byte gSprites
@@ -43415,7 +43415,7 @@ _080DF59C: .4byte move_anim_8074EE0
sub_80DF5A0: @ 80DF5A0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080DF5E8 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DF5E8 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -43447,7 +43447,7 @@ sub_80DF5A0: @ 80DF5A0
adds r1, r2, 0
b _080DF5FA
.align 2, 0
-_080DF5E8: .4byte gBattleAnimPlayerMonIndex
+_080DF5E8: .4byte gBattleAnimBankAttacker
_080DF5EC: .4byte gBattleAnimArgs
_080DF5F0:
ldr r1, _080DF630 @ =gBattleAnimArgs
@@ -43476,7 +43476,7 @@ _080DF5FA:
strb r0, [r2]
ldr r1, _080DF634 @ =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080DF638 @ =sub_8078504
str r0, [r5, 0x1C]
pop {r4,r5}
@@ -43493,7 +43493,7 @@ sub_80DF63C: @ 80DF63C
push {r4,r5,lr}
adds r5, r0, 0
bl sub_8078650
- ldr r4, _080DF694 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DF694 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -43506,7 +43506,7 @@ sub_80DF63C: @ 80DF63C
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
- ldr r0, _080DF698 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DF698 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -43530,8 +43530,8 @@ sub_80DF63C: @ 80DF63C
strh r0, [r5, 0x36]
b _080DF6CA
.align 2, 0
-_080DF694: .4byte gBattleAnimEnemyMonIndex
-_080DF698: .4byte gBattleAnimPlayerMonIndex
+_080DF694: .4byte gBattleAnimBankTarget
+_080DF698: .4byte gBattleAnimBankAttacker
_080DF69C: .4byte gBattleAnimArgs
_080DF6A0:
ldr r1, _080DF6E4 @ =gBattleAnimArgs
@@ -43562,7 +43562,7 @@ _080DF6CA:
str r0, [r5, 0x1C]
ldr r1, _080DF6EC @ =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -43581,13 +43581,13 @@ sub_80DF6F0: @ 80DF6F0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080DF70C
- ldr r4, _080DF708 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DF708 @ =gBattleAnimBankAttacker
b _080DF70E
.align 2, 0
_080DF704: .4byte gBattleAnimArgs
-_080DF708: .4byte gBattleAnimPlayerMonIndex
+_080DF708: .4byte gBattleAnimBankAttacker
_080DF70C:
- ldr r4, _080DF750 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DF750 @ =gBattleAnimBankTarget
_080DF70E:
ldrb r0, [r4]
movs r1, 0
@@ -43614,12 +43614,12 @@ _080DF70E:
str r0, [r5, 0x1C]
ldr r1, _080DF75C @ =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080DF750: .4byte gBattleAnimEnemyMonIndex
+_080DF750: .4byte gBattleAnimBankTarget
_080DF754: .4byte gBattleAnimArgs
_080DF758: .4byte sub_8078600
_080DF75C: .4byte move_anim_8074EE0
@@ -43629,7 +43629,7 @@ _080DF75C: .4byte move_anim_8074EE0
sub_80DF760: @ 80DF760
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080DF788 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DF788 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -43645,14 +43645,14 @@ _080DF77A:
pop {r0}
bx r0
.align 2, 0
-_080DF788: .4byte gBattleAnimPlayerMonIndex
+_080DF788: .4byte gBattleAnimBankAttacker
thumb_func_end sub_80DF760
thumb_func_start sub_80DF78C
sub_80DF78C: @ 80DF78C
push {r4-r7,lr}
adds r6, r0, 0
- ldr r4, _080DF7E0 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DF7E0 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -43688,7 +43688,7 @@ sub_80DF78C: @ 80DF78C
lsrs r0, r7, 17
b _080DF7EE
.align 2, 0
-_080DF7E0: .4byte gBattleAnimPlayerMonIndex
+_080DF7E0: .4byte gBattleAnimBankAttacker
_080DF7E4: .4byte gBattleAnimArgs
_080DF7E8: .4byte gBankAttacker
_080DF7EC:
@@ -43864,7 +43864,7 @@ sub_80DF924: @ 80DF924
lsls r1, 3
ldr r0, _080DF950 @ =gTasks
adds r4, r1, r0
- ldr r0, _080DF954 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DF954 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -43877,7 +43877,7 @@ sub_80DF924: @ 80DF924
b _080DF966
.align 2, 0
_080DF950: .4byte gTasks
-_080DF954: .4byte gBattleAnimPlayerMonIndex
+_080DF954: .4byte gBattleAnimBankAttacker
_080DF958: .4byte REG_BG1HOFS
_080DF95C: .4byte gUnknown_030042C0
_080DF960:
@@ -43895,7 +43895,7 @@ _080DF966:
strb r0, [r1, 0x8]
mov r0, sp
strb r5, [r0, 0x9]
- ldr r0, _080DF9E8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DF9E8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8077FC0
lsls r0, 24
@@ -43948,7 +43948,7 @@ _080DF9C4:
_080DF9DC: .4byte REG_BG2HOFS
_080DF9E0: .4byte gUnknown_03004288
_080DF9E4: .4byte 0xa2600001
-_080DF9E8: .4byte gBattleAnimPlayerMonIndex
+_080DF9E8: .4byte gBattleAnimBankAttacker
_080DF9EC: .4byte gUnknown_03004DE0
_080DF9F0: .4byte sub_80DF9F4
thumb_func_end sub_80DF924
@@ -44128,7 +44128,7 @@ sub_80DFB28: @ 80DFB28
movs r1, 0x5
bl __divsi3
adds r6, r0, 0
- ldr r1, _080DFBCC @ =gBattleAnimPlayerMonIndex
+ ldr r1, _080DFBCC @ =gBattleAnimBankAttacker
mov r8, r1
ldrb r0, [r1]
movs r1, 0x2
@@ -44194,7 +44194,7 @@ _080DFBB0:
bx r0
.align 2, 0
_080DFBC8: .4byte gBattleAnimArgs
-_080DFBCC: .4byte gBattleAnimPlayerMonIndex
+_080DFBCC: .4byte gBattleAnimBankAttacker
_080DFBD0: .4byte sub_80DFBD8
_080DFBD4: .4byte gUnknown_03000730
thumb_func_end sub_80DFB28
@@ -44251,7 +44251,7 @@ sub_80DFC24: @ 80DFC24
ldr r0, _080DFC5C @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r1, 0x8]
- ldr r0, _080DFC60 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DFC60 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
movs r2, 0x10
strh r2, [r1, 0xA]
@@ -44268,7 +44268,7 @@ sub_80DFC24: @ 80DFC24
.align 2, 0
_080DFC58: .4byte gTasks
_080DFC5C: .4byte gBattleAnimArgs
-_080DFC60: .4byte gBattleAnimPlayerMonIndex
+_080DFC60: .4byte gBattleAnimBankAttacker
_080DFC64: .4byte REG_BLDALPHA
_080DFC68: .4byte REG_BLDCNT
_080DFC6C: .4byte 0x00003f42
@@ -44331,7 +44331,7 @@ sub_80DFC9C: @ 80DFC9C
bne _080DFD1E
ldr r2, _080DFD0C @ =gSprites
ldr r1, _080DFD10 @ =gObjectBankIDs
- ldr r0, _080DFD14 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DFD14 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -44352,7 +44352,7 @@ _080DFD04: .4byte gTasks
_080DFD08: .4byte REG_BLDALPHA
_080DFD0C: .4byte gSprites
_080DFD10: .4byte gObjectBankIDs
-_080DFD14: .4byte gBattleAnimPlayerMonIndex
+_080DFD14: .4byte gBattleAnimBankAttacker
_080DFD18:
ldrh r0, [r4, 0xC]
adds r0, 0x1
@@ -44454,7 +44454,7 @@ sub_80DFDC0: @ 80DFDC0
lsls r2, 5
adds r0, r2, 0
strh r0, [r1]
- ldr r0, _080DFDEC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DFDEC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -44466,7 +44466,7 @@ sub_80DFDC0: @ 80DFDC0
b _080DFDFC
.align 2, 0
_080DFDE8: .4byte REG_BLDALPHA
-_080DFDEC: .4byte gBattleAnimPlayerMonIndex
+_080DFDEC: .4byte gBattleAnimBankAttacker
_080DFDF0: .4byte REG_BLDCNT
_080DFDF4: .4byte 0x00003f42
_080DFDF8:
@@ -44489,14 +44489,14 @@ _080DFE10: .4byte 0x00003f44
sub_80DFE14: @ 80DFE14
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, _080DFE80 @ =gBattleAnimEnemyMonIndex
+ ldr r6, _080DFE80 @ =gBattleAnimBankTarget
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x30]
- ldr r5, _080DFE84 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080DFE84 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -44535,8 +44535,8 @@ sub_80DFE14: @ 80DFE14
pop {r0}
bx r0
.align 2, 0
-_080DFE80: .4byte gBattleAnimEnemyMonIndex
-_080DFE84: .4byte gBattleAnimPlayerMonIndex
+_080DFE80: .4byte gBattleAnimBankTarget
+_080DFE84: .4byte gBattleAnimBankAttacker
_080DFE88: .4byte 0x0000ffd8
_080DFE8C: .4byte sub_80DFE90
thumb_func_end sub_80DFE14
@@ -44724,13 +44724,13 @@ sub_80DFFD0: @ 80DFFD0
adds r3, r0, 0
cmp r1, 0
bne _080DFFEC
- ldr r0, _080DFFE8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DFFE8 @ =gBattleAnimBankAttacker
b _080DFFEE
.align 2, 0
_080DFFE4: .4byte gBattleAnimArgs
-_080DFFE8: .4byte gBattleAnimPlayerMonIndex
+_080DFFE8: .4byte gBattleAnimBankAttacker
_080DFFEC:
- ldr r0, _080E001C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E001C @ =gBattleAnimBankTarget
_080DFFEE:
ldrb r5, [r0]
movs r6, 0x14
@@ -44755,7 +44755,7 @@ _080DFFEE:
beq _080E0032
b _080E00A0
.align 2, 0
-_080E001C: .4byte gBattleAnimEnemyMonIndex
+_080E001C: .4byte gBattleAnimBankTarget
_080E0020: .4byte 0x000003ff
_080E0024: .4byte 0xfffffc00
_080E0028:
@@ -44867,7 +44867,7 @@ sub_80E00EC: @ 80E00EC
lsls r1, 3
ldr r0, _080E0150 @ =gTasks
adds r5, r1, r0
- ldr r4, _080E0154 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080E0154 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x1
bl sub_8077ABC
@@ -44906,13 +44906,13 @@ sub_80E00EC: @ 80E00EC
b _080E015E
.align 2, 0
_080E0150: .4byte gTasks
-_080E0154: .4byte gBattleAnimPlayerMonIndex
+_080E0154: .4byte gBattleAnimBankAttacker
_080E0158: .4byte 0x0000fff4
_080E015C:
ldr r0, _080E01A8 @ =0x0000ffc0
_080E015E:
strh r0, [r5, 0x18]
- ldr r0, _080E01AC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E01AC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -44946,7 +44946,7 @@ _080E015E:
b _080E01EE
.align 2, 0
_080E01A8: .4byte 0x0000ffc0
-_080E01AC: .4byte gBattleAnimPlayerMonIndex
+_080E01AC: .4byte gBattleAnimBankAttacker
_080E01B0: .4byte gUnknown_030041B4
_080E01B4: .4byte REG_BLDCNT
_080E01B8: .4byte 0x00003f42
@@ -45260,7 +45260,7 @@ _080E0430: .4byte gUnknown_03004240
_080E0434: .4byte REG_WININ
_080E0438: .4byte 0x00003f3f
_080E043C:
- ldr r0, _080E045C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E045C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -45275,7 +45275,7 @@ _080E043C:
ldr r1, _080E0468 @ =gUnknown_03004288
b _080E0476
.align 2, 0
-_080E045C: .4byte gBattleAnimEnemyMonIndex
+_080E045C: .4byte gBattleAnimBankTarget
_080E0460: .4byte REG_BLDCNT
_080E0464: .4byte 0x00003f42
_080E0468: .4byte gUnknown_03004288
@@ -45328,7 +45328,7 @@ _080E04C4:
.align 2, 0
_080E04CC: .4byte gUnknown_03004280
_080E04D0:
- ldr r4, _080E051C @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080E051C @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x1
bl sub_8077ABC
@@ -45363,7 +45363,7 @@ _080E04D0:
ldr r0, _080E0520 @ =0x0000fff4
b _080E0526
.align 2, 0
-_080E051C: .4byte gBattleAnimEnemyMonIndex
+_080E051C: .4byte gBattleAnimBankTarget
_080E0520: .4byte 0x0000fff4
_080E0524:
ldr r0, _080E0538 @ =0x0000ffc0
@@ -45865,7 +45865,7 @@ sub_80E08CC: @ 80E08CC
_080E08E2:
lsls r0, r4, 24
lsrs r0, 24
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
@@ -45901,7 +45901,7 @@ sub_80E0918: @ 80E0918
lsls r0, 24
lsrs r0, 24
mov r10, r0
- ldr r6, _080E09B8 @ =gBattleAnimPlayerMonIndex
+ ldr r6, _080E09B8 @ =gBattleAnimBankAttacker
ldrb r0, [r6]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -45935,7 +45935,7 @@ sub_80E0918: @ 80E0918
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080E09A2
@@ -45969,7 +45969,7 @@ _080E09A2:
pop {r0}
bx r0
.align 2, 0
-_080E09B8: .4byte gBattleAnimPlayerMonIndex
+_080E09B8: .4byte gBattleAnimBankAttacker
_080E09BC: .4byte gSprites
_080E09C0: .4byte gObjectBankIDs
thumb_func_end sub_80E0918
@@ -45979,7 +45979,7 @@ sub_80E09C4: @ 80E09C4
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
- ldr r4, _080E0A0C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080E0A0C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -45994,7 +45994,7 @@ sub_80E09C4: @ 80E09C4
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080E0A00
@@ -46009,7 +46009,7 @@ _080E0A00:
pop {r0}
bx r0
.align 2, 0
-_080E0A0C: .4byte gBattleAnimPlayerMonIndex
+_080E0A0C: .4byte gBattleAnimBankAttacker
thumb_func_end sub_80E09C4
thumb_func_start sub_80E0A10
@@ -46032,7 +46032,7 @@ sub_80E0A10: @ 80E0A10
str r0, [r4, 0x1C]
ldr r1, _080E0A48 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -46112,7 +46112,7 @@ _080E0AC4:
lsls r0, 24
cmp r0, 0
bne _080E0B40
- ldr r4, _080E0B74 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080E0B74 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
bl GetBankIdentity
lsls r0, 24
@@ -46128,7 +46128,7 @@ _080E0AF4:
ldrb r0, [r4]
movs r6, 0x2
eors r0, r6
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -46180,12 +46180,12 @@ _080E0B64: .4byte REG_BLDCNT
_080E0B68: .4byte 0x00003f42
_080E0B6C: .4byte 0x00000c08
_080E0B70: .4byte REG_BG1CNT
-_080E0B74: .4byte gBattleAnimPlayerMonIndex
+_080E0B74: .4byte gBattleAnimBankAttacker
_080E0B78: .4byte gSprites
_080E0B7C: .4byte gObjectBankIDs
_080E0B80: .4byte 0x02019348
_080E0B84:
- ldr r4, _080E0BA4 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080E0BA4 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -46201,7 +46201,7 @@ _080E0B84:
ldr r1, _080E0BAC @ =gEnemyParty
b _080E0BC0
.align 2, 0
-_080E0BA4: .4byte gBattleAnimPlayerMonIndex
+_080E0BA4: .4byte gBattleAnimBankAttacker
_080E0BA8: .4byte gBattlePartyID
_080E0BAC: .4byte gEnemyParty
_080E0BB0:
@@ -46221,11 +46221,11 @@ _080E0BC0:
lsrs r5, r0, 16
_080E0BCC:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080E0C60 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E0C60 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r1, r4, 0
adds r2, r5, 0
@@ -46286,7 +46286,7 @@ _080E0BCC:
.align 2, 0
_080E0C58: .4byte gBattlePartyID
_080E0C5C: .4byte gPlayerParty
-_080E0C60: .4byte gBattleAnimPlayerMonIndex
+_080E0C60: .4byte gBattleAnimBankAttacker
_080E0C64: .4byte 0x040000d4
_080E0C68: .4byte 0x85000400
_080E0C6C: .4byte gUnknown_08D1D574
@@ -46403,7 +46403,7 @@ _080E0D40:
adds r0, 0x2
strh r5, [r0]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
ldr r6, _080E0E10 @ =gSprites
@@ -46446,7 +46446,7 @@ _080E0D84:
cmp r0, 0x1
bne _080E0DE2
ldr r2, _080E0E1C @ =gObjectBankIDs
- ldr r0, _080E0E20 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E0E20 @ =gBattleAnimBankAttacker
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -46489,7 +46489,7 @@ _080E0E10: .4byte gSprites
_080E0E14: .4byte 0x040000d4
_080E0E18: .4byte 0x85000200
_080E0E1C: .4byte gObjectBankIDs
-_080E0E20: .4byte gBattleAnimPlayerMonIndex
+_080E0E20: .4byte gBattleAnimBankAttacker
thumb_func_end sub_80E0CD0
thumb_func_start sub_80E0E24
@@ -46524,7 +46524,7 @@ _080E0E4C:
.4byte _080E0E84
_080E0E6C:
ldrb r0, [r2]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r2, r0, 24
b _080E0E8A
@@ -46552,7 +46552,7 @@ _080E0E90:
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080E0EB4
@@ -46622,7 +46622,7 @@ _080E0F18: .4byte gBattleAnimArgs
sub_80E0F1C: @ 80E0F1C
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080E0F74 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080E0F74 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -46637,7 +46637,7 @@ sub_80E0F1C: @ 80E0F1C
strh r0, [r4, 0x22]
movs r0, 0x14
strh r0, [r4, 0x2E]
- ldr r5, _080E0F78 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080E0F78 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -46660,8 +46660,8 @@ sub_80E0F1C: @ 80E0F1C
pop {r0}
bx r0
.align 2, 0
-_080E0F74: .4byte gBattleAnimPlayerMonIndex
-_080E0F78: .4byte gBattleAnimEnemyMonIndex
+_080E0F74: .4byte gBattleAnimBankAttacker
+_080E0F78: .4byte gBattleAnimBankTarget
_080E0F7C: .4byte 0x0000ffd8
_080E0F80: .4byte sub_80E0F84
thumb_func_end sub_80E0F1C
@@ -46687,7 +46687,7 @@ sub_80E0F84: @ 80E0F84
strh r1, [r5, 0x24]
movs r0, 0x14
strh r0, [r5, 0x2E]
- ldr r4, _080E0FE0 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080E0FE0 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -46711,7 +46711,7 @@ _080E0FD8:
pop {r0}
bx r0
.align 2, 0
-_080E0FE0: .4byte gBattleAnimPlayerMonIndex
+_080E0FE0: .4byte gBattleAnimBankAttacker
_080E0FE4: .4byte sub_80E0FE8
thumb_func_end sub_80E0F84
@@ -46737,7 +46737,7 @@ sub_80E1004: @ 80E1004
adds r6, r0, 0
movs r1, 0x1
bl sub_8078764
- ldr r0, _080E1064 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E1064 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -46751,7 +46751,7 @@ _080E1024:
ldr r4, _080E1068 @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
- ldr r5, _080E106C @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080E106C @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -46772,14 +46772,14 @@ _080E1024:
str r0, [r6, 0x1C]
ldr r1, _080E1074 @ =move_anim_8072740
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080E1064: .4byte gBattleAnimPlayerMonIndex
+_080E1064: .4byte gBattleAnimBankAttacker
_080E1068: .4byte gBattleAnimArgs
-_080E106C: .4byte gBattleAnimEnemyMonIndex
+_080E106C: .4byte gBattleAnimBankTarget
_080E1070: .4byte sub_8078B34
_080E1074: .4byte move_anim_8072740
thumb_func_end sub_80E1004
@@ -46792,7 +46792,7 @@ sub_80E1078: @ 80E1078
adds r6, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r4, _080E10F8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080E10F8 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077EE4
@@ -46839,14 +46839,14 @@ _080E10D0:
str r0, [r6, 0x1C]
ldr r1, _080E1104 @ =move_anim_8074EE0
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
-_080E10F8: .4byte gBattleAnimEnemyMonIndex
+_080E10F8: .4byte gBattleAnimBankTarget
_080E10FC: .4byte gBattleAnimArgs
_080E1100: .4byte sub_8078B34
_080E1104: .4byte move_anim_8074EE0
@@ -46872,7 +46872,7 @@ sub_80E1108: @ 80E1108
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080E117C
- ldr r4, _080E1174 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080E1174 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -46905,7 +46905,7 @@ _080E1162:
_080E1168: .4byte 0x000003ff
_080E116C: .4byte 0xfffffc00
_080E1170: .4byte gBattleAnimArgs
-_080E1174: .4byte gBattleAnimPlayerMonIndex
+_080E1174: .4byte gBattleAnimBankAttacker
_080E1178: .4byte sub_80E1198
_080E117C:
ldrh r0, [r6, 0x2]
@@ -47086,11 +47086,11 @@ _080E12B0:
.4byte _080E1414
_080E12C4:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
- ldr r0, _080E12EC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E12EC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -47104,7 +47104,7 @@ _080E12C4:
ldr r0, _080E12F4 @ =gUnknown_030041B4
b _080E1300
.align 2, 0
-_080E12EC: .4byte gBattleAnimPlayerMonIndex
+_080E12EC: .4byte gBattleAnimBankAttacker
_080E12F0: .4byte gUnknown_030042C0
_080E12F4: .4byte gUnknown_030041B4
_080E12F8:
@@ -47115,7 +47115,7 @@ _080E12F8:
_080E1300:
ldrh r0, [r0]
strh r0, [r4, 0x22]
- ldr r0, _080E1344 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E1344 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8077FC0
lsls r0, 24
@@ -47146,7 +47146,7 @@ _080E1322:
.align 2, 0
_080E133C: .4byte gUnknown_03004288
_080E1340: .4byte gUnknown_03004280
-_080E1344: .4byte gBattleAnimPlayerMonIndex
+_080E1344: .4byte gBattleAnimBankAttacker
_080E1348: .4byte gSprites
_080E134C:
ldrb r0, [r4, 0x1E]
@@ -47281,7 +47281,7 @@ sub_80E143C: @ 80E143C
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, _080E147C @ =gSprites
@@ -47298,7 +47298,7 @@ sub_80E143C: @ 80E143C
movs r4, 0
strh r4, [r1, 0x24]
strh r4, [r1, 0x26]
- ldr r0, _080E1480 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E1480 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -47309,7 +47309,7 @@ sub_80E143C: @ 80E143C
b _080E148A
.align 2, 0
_080E147C: .4byte gSprites
-_080E1480: .4byte gBattleAnimPlayerMonIndex
+_080E1480: .4byte gBattleAnimBankAttacker
_080E1484: .4byte gUnknown_030041B4
_080E1488:
ldr r0, _080E1498 @ =gUnknown_03004280
@@ -47379,7 +47379,7 @@ sub_80E14DC: @ 80E14DC
_080E14FC: .4byte gTasks
_080E1500:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
@@ -47459,11 +47459,11 @@ _080E158C:
.4byte _080E165C
_080E15A0:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
- ldr r0, _080E15C4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E15C4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -47474,14 +47474,14 @@ _080E15A0:
ldr r0, _080E15C8 @ =gUnknown_030042C0
b _080E15CE
.align 2, 0
-_080E15C4: .4byte gBattleAnimPlayerMonIndex
+_080E15C4: .4byte gBattleAnimBankAttacker
_080E15C8: .4byte gUnknown_030042C0
_080E15CC:
ldr r0, _080E15EC @ =gUnknown_03004288
_080E15CE:
ldrh r0, [r0]
strh r0, [r4, 0x20]
- ldr r0, _080E15F0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E15F0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8077FC0
lsls r0, 24
@@ -47494,7 +47494,7 @@ _080E15CE:
b _080E164A
.align 2, 0
_080E15EC: .4byte gUnknown_03004288
-_080E15F0: .4byte gBattleAnimPlayerMonIndex
+_080E15F0: .4byte gBattleAnimBankAttacker
_080E15F4:
ldrb r0, [r4, 0x1E]
movs r1, 0x26
@@ -47668,13 +47668,13 @@ sub_80E1728: @ 80E1728
adds r7, r0, 0
cmp r1, 0
bne _080E1744
- ldr r0, _080E1740 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E1740 @ =gBattleAnimBankAttacker
b _080E1746
.align 2, 0
_080E173C: .4byte gBattleAnimArgs
-_080E1740: .4byte gBattleAnimPlayerMonIndex
+_080E1740: .4byte gBattleAnimBankAttacker
_080E1744:
- ldr r0, _080E17A8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E17A8 @ =gBattleAnimBankTarget
_080E1746:
ldrb r4, [r0]
movs r6, 0x18
@@ -47723,7 +47723,7 @@ _080E1762:
pop {r0}
bx r0
.align 2, 0
-_080E17A8: .4byte gBattleAnimEnemyMonIndex
+_080E17A8: .4byte gBattleAnimBankTarget
_080E17AC: .4byte sub_80E17B0
thumb_func_end sub_80E1728
@@ -47752,13 +47752,13 @@ sub_80E17CC: @ 80E17CC
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080E17E8
- ldr r0, _080E17E4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E17E4 @ =gBattleAnimBankAttacker
b _080E17EA
.align 2, 0
_080E17E0: .4byte gBattleAnimArgs
-_080E17E4: .4byte gBattleAnimPlayerMonIndex
+_080E17E4: .4byte gBattleAnimBankAttacker
_080E17E8:
- ldr r0, _080E1848 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E1848 @ =gBattleAnimBankTarget
_080E17EA:
ldrb r5, [r0]
adds r0, r5, 0
@@ -47796,7 +47796,7 @@ _080E17EA:
strh r0, [r6, 0x4]
ldr r1, _080E185C @ =move_anim_8072740
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrh r0, [r4, 0x4]
strh r0, [r6, 0x2E]
ldr r0, _080E1860 @ =sub_80782D8
@@ -47805,7 +47805,7 @@ _080E17EA:
pop {r0}
bx r0
.align 2, 0
-_080E1848: .4byte gBattleAnimEnemyMonIndex
+_080E1848: .4byte gBattleAnimBankTarget
_080E184C: .4byte 0x0000fff0
_080E1850: .4byte gBattleAnimArgs
_080E1854: .4byte 0x000003ff
@@ -47870,7 +47870,7 @@ _080E18C8:
_080E18CE:
lsls r0, r5, 24
lsrs r0, 24
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080E18F8
@@ -47899,7 +47899,7 @@ _080E18F8:
_080E1904: .4byte gObjectBankIDs
_080E1908:
ldrb r0, [r6]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1A]
@@ -48282,13 +48282,13 @@ sub_80E1BB0: @ 80E1BB0
adds r6, r2, 0
cmp r0, 0
beq _080E1BD0
- ldr r0, _080E1BCC @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E1BCC @ =gBattleAnimBankTarget
b _080E1BD2
.align 2, 0
_080E1BC8: .4byte gBattleAnimArgs
-_080E1BCC: .4byte gBattleAnimEnemyMonIndex
+_080E1BCC: .4byte gBattleAnimBankTarget
_080E1BD0:
- ldr r0, _080E1C40 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E1C40 @ =gBattleAnimBankAttacker
_080E1BD2:
ldrb r0, [r0]
adds r5, r0, 0
@@ -48343,7 +48343,7 @@ _080E1BE2:
pop {r0}
bx r0
.align 2, 0
-_080E1C40: .4byte gBattleAnimPlayerMonIndex
+_080E1C40: .4byte gBattleAnimBankAttacker
_080E1C44: .4byte sub_80E1C58
_080E1C48: .4byte gTasks
_080E1C4C: .4byte 0x000001ff
@@ -48412,7 +48412,7 @@ sub_80E1CB4: @ 80E1CB4
strh r0, [r4, 0x22]
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
- ldr r0, _080E1CF0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E1CF0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -48427,7 +48427,7 @@ sub_80E1CB4: @ 80E1CB4
b _080E1D02
.align 2, 0
_080E1CEC: .4byte gBattleAnimArgs
-_080E1CF0: .4byte gBattleAnimPlayerMonIndex
+_080E1CF0: .4byte gBattleAnimBankAttacker
_080E1CF4:
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x30]
@@ -48763,7 +48763,7 @@ sub_80E1F3C: @ 80E1F3C
strh r2, [r4, 0x38]
ldr r1, _080E1F84 @ =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, _080E1F88 @ =sub_8078174
str r1, [r4, 0x1C]
adds r0, r4, 0
@@ -49265,9 +49265,9 @@ sub_80E2324: @ 80E2324
lsrs r0, 24
mov r8, r0
movs r2, 0
- ldr r0, _080E239C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E239C @ =gBattleAnimBankAttacker
ldrb r6, [r0]
- ldr r0, _080E23A0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E23A0 @ =gBattleAnimBankTarget
ldrb r7, [r0]
ldr r4, _080E23A4 @ =gBattleAnimArgs
ldrh r1, [r4]
@@ -49317,8 +49317,8 @@ _080E2382:
pop {r0}
bx r0
.align 2, 0
-_080E239C: .4byte gBattleAnimPlayerMonIndex
-_080E23A0: .4byte gBattleAnimEnemyMonIndex
+_080E239C: .4byte gBattleAnimBankAttacker
+_080E23A0: .4byte gBattleAnimBankTarget
_080E23A4: .4byte gBattleAnimArgs
thumb_func_end sub_80E2324
@@ -49361,10 +49361,10 @@ _080E23EA:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
- ldr r0, _080E24A4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E24A4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
mov r9, r0
- ldr r0, _080E24A8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E24A8 @ =gBattleAnimBankTarget
ldrb r0, [r0]
mov r10, r0
ldrh r1, [r4, 0xC]
@@ -49451,8 +49451,8 @@ _080E248E:
.align 2, 0
_080E249C: .4byte gTasks
_080E24A0: .4byte gBattleAnimArgs
-_080E24A4: .4byte gBattleAnimPlayerMonIndex
-_080E24A8: .4byte gBattleAnimEnemyMonIndex
+_080E24A4: .4byte gBattleAnimBankAttacker
+_080E24A8: .4byte gBattleAnimBankTarget
_080E24AC: .4byte 0x0000ffff
_080E24B0: .4byte gSprites
_080E24B4: .4byte gHealthboxIDs
@@ -49506,14 +49506,14 @@ _080E2508:
ldr r1, _080E2514 @ =gSpriteCoordOffsetX
_080E250A:
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
b _080E2520
.align 2, 0
_080E2514: .4byte gSpriteCoordOffsetX
_080E2518:
ldr r1, _080E2550 @ =gSpriteCoordOffsetY
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_080E2520:
movs r0, 0x3A
ldrsh r1, [r4, r0]
@@ -49643,7 +49643,7 @@ sub_80E260C: @ 80E260C
push {r4-r6,lr}
ldr r6, _080E2680 @ =gSprites
ldr r4, _080E2684 @ =gObjectBankIDs
- ldr r5, _080E2688 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080E2688 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
adds r0, r4
ldrb r0, [r0]
@@ -49658,7 +49658,7 @@ sub_80E260C: @ 80E260C
adds r0, r2, 0
ands r0, r3
strb r0, [r1]
- ldr r3, _080E268C @ =gBattleAnimEnemyMonIndex
+ ldr r3, _080E268C @ =gBattleAnimBankTarget
ldrb r0, [r3]
adds r0, r4
ldrb r1, [r0]
@@ -49700,8 +49700,8 @@ sub_80E260C: @ 80E260C
.align 2, 0
_080E2680: .4byte gSprites
_080E2684: .4byte gObjectBankIDs
-_080E2688: .4byte gBattleAnimPlayerMonIndex
-_080E268C: .4byte gBattleAnimEnemyMonIndex
+_080E2688: .4byte gBattleAnimBankAttacker
+_080E268C: .4byte gBattleAnimBankTarget
_080E2690: .4byte gBattleAnimArgs
_080E2694:
cmp r0, 0
@@ -49874,7 +49874,7 @@ _080E27CC:
str r0, [r5, 0x1C]
ldr r1, _080E27E4 @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -49912,7 +49912,7 @@ _080E2814:
str r0, [r5, 0x1C]
ldr r1, _080E2834 @ =sub_80DA48C
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -49926,7 +49926,7 @@ _080E2834: .4byte sub_80DA48C
sub_80E2838: @ 80E2838
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080E2868 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E2868 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -49947,7 +49947,7 @@ _080E285C:
pop {r0}
bx r0
.align 2, 0
-_080E2868: .4byte gBattleAnimPlayerMonIndex
+_080E2868: .4byte gBattleAnimBankAttacker
_080E286C: .4byte gBattleAnimArgs
thumb_func_end sub_80E2838
@@ -50007,7 +50007,7 @@ _080E28B4:
strh r0, [r4, 0x26]
ldr r1, _080E2900 @ =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080E2904 @ =sub_80785E4
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -50026,7 +50026,7 @@ sub_80E2908: @ 80E2908
adds r4, r0, 0
ldr r5, _080E2968 @ =gBattleAnimArgs
ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x2E]
@@ -50060,7 +50060,7 @@ sub_80E2908: @ 80E2908
bl StartSpriteAffineAnim
ldr r1, _080E2970 @ =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080E2974 @ =sub_80785E4
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -50098,7 +50098,7 @@ _080E299C:
strh r0, [r4, 0x2E]
ldr r1, _080E29B8 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080E29BC @ =sub_80782D8
str r0, [r4, 0x1C]
pop {r4}
@@ -50247,33 +50247,33 @@ _080E2AD0:
movs r5, 0
_080E2AD2:
mov r0, sp
- ldr r1, _080E2AD8 @ =gBattleAnimPlayerMonIndex
+ ldr r1, _080E2AD8 @ =gBattleAnimBankAttacker
b _080E2AE2
.align 2, 0
-_080E2AD8: .4byte gBattleAnimPlayerMonIndex
+_080E2AD8: .4byte gBattleAnimBankAttacker
_080E2ADC:
movs r5, 0
_080E2ADE:
mov r0, sp
- ldr r1, _080E2AE8 @ =gBattleAnimEnemyMonIndex
+ ldr r1, _080E2AE8 @ =gBattleAnimBankTarget
_080E2AE2:
ldrb r1, [r1]
strb r1, [r0]
b _080E2B26
.align 2, 0
-_080E2AE8: .4byte gBattleAnimEnemyMonIndex
+_080E2AE8: .4byte gBattleAnimBankTarget
_080E2AEC:
mov r1, sp
- ldr r0, _080E2AFC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E2AFC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
strb r0, [r1]
- ldr r0, _080E2B00 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E2B00 @ =gBattleAnimBankTarget
ldrb r0, [r0]
strb r0, [r1, 0x1]
b _080E2B26
.align 2, 0
-_080E2AFC: .4byte gBattleAnimPlayerMonIndex
-_080E2B00: .4byte gBattleAnimEnemyMonIndex
+_080E2AFC: .4byte gBattleAnimBankAttacker
+_080E2B00: .4byte gBattleAnimBankTarget
_080E2B04:
mov r1, sp
movs r0, 0xFF
@@ -50282,14 +50282,14 @@ _080E2B04:
_080E2B0C:
movs r5, 0
mov r2, sp
- ldr r0, _080E2B14 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E2B14 @ =gBattleAnimBankAttacker
b _080E2B1E
.align 2, 0
-_080E2B14: .4byte gBattleAnimPlayerMonIndex
+_080E2B14: .4byte gBattleAnimBankAttacker
_080E2B18:
movs r5, 0
mov r2, sp
- ldr r0, _080E2B70 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E2B70 @ =gBattleAnimBankTarget
_080E2B1E:
ldrb r0, [r0]
movs r1, 0x2
@@ -50306,7 +50306,7 @@ _080E2B2A:
cmp r4, r0
beq _080E2B54
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080E2B54
@@ -50332,7 +50332,7 @@ _080E2B54:
pop {r0}
bx r0
.align 2, 0
-_080E2B70: .4byte gBattleAnimEnemyMonIndex
+_080E2B70: .4byte gBattleAnimBankTarget
thumb_func_end sub_80E2A7C
thumb_func_start sub_80E2B74
@@ -50900,7 +50900,7 @@ _080E2FAC:
lsls r0, 24
cmp r0, 0
bne _080E3028
- ldr r5, _080E305C @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080E305C @ =gBattleAnimBankAttacker
ldrb r0, [r5]
bl GetBankIdentity
lsls r0, 24
@@ -50916,7 +50916,7 @@ _080E2FDC:
ldrb r0, [r5]
movs r6, 0x2
eors r0, r6
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -50968,12 +50968,12 @@ _080E304C: .4byte REG_BLDCNT
_080E3050: .4byte 0x00003f42
_080E3054: .4byte 0x00000c08
_080E3058: .4byte REG_BG1CNT
-_080E305C: .4byte gBattleAnimPlayerMonIndex
+_080E305C: .4byte gBattleAnimBankAttacker
_080E3060: .4byte gSprites
_080E3064: .4byte gObjectBankIDs
_080E3068: .4byte 0x02019348
_080E306C:
- ldr r4, _080E308C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080E308C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -50989,7 +50989,7 @@ _080E306C:
ldr r1, _080E3094 @ =gEnemyParty
b _080E30A8
.align 2, 0
-_080E308C: .4byte gBattleAnimPlayerMonIndex
+_080E308C: .4byte gBattleAnimBankAttacker
_080E3090: .4byte gBattlePartyID
_080E3094: .4byte gEnemyParty
_080E3098:
@@ -51009,10 +51009,10 @@ _080E30A8:
lsrs r4, r0, 16
_080E30B4:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _080E3168 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E3168 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r1, r5, 0
adds r2, r4, 0
@@ -51089,7 +51089,7 @@ _080E3106:
.align 2, 0
_080E3160: .4byte gBattlePartyID
_080E3164: .4byte gPlayerParty
-_080E3168: .4byte gBattleAnimPlayerMonIndex
+_080E3168: .4byte gBattleAnimBankAttacker
_080E316C: .4byte 0x040000d4
_080E3170: .4byte 0x85000400
_080E3174: .4byte gUnknown_08D20A30
@@ -51174,7 +51174,7 @@ _080E3208:
adds r0, 0x2
strh r5, [r0]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r0, _080E32CC @ =gSprites
mov r8, r0
movs r2, 0x8
@@ -51200,7 +51200,7 @@ _080E3208:
cmp r0, 0x1
bne _080E3288
ldr r2, _080E32D8 @ =gObjectBankIDs
- ldr r0, _080E32DC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E32DC @ =gBattleAnimBankAttacker
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -51253,7 +51253,7 @@ _080E32CC: .4byte gSprites
_080E32D0: .4byte 0x040000d4
_080E32D4: .4byte 0x85000200
_080E32D8: .4byte gObjectBankIDs
-_080E32DC: .4byte gBattleAnimPlayerMonIndex
+_080E32DC: .4byte gBattleAnimBankAttacker
thumb_func_end sub_80E3194
thumb_func_start sub_80E32E0
@@ -51344,13 +51344,13 @@ _080E336C:
ldrsh r0, [r7, r1]
cmp r0, 0
bne _080E3390
- ldr r0, _080E338C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E338C @ =gBattleAnimBankAttacker
b _080E3392
.align 2, 0
_080E3388: .4byte gTasks
-_080E338C: .4byte gBattleAnimPlayerMonIndex
+_080E338C: .4byte gBattleAnimBankAttacker
_080E3390:
- ldr r0, _080E34B4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E34B4 @ =gBattleAnimBankTarget
_080E3392:
ldrb r5, [r0]
movs r0, 0x2
@@ -51367,7 +51367,7 @@ _080E3392:
cmp r0, 0
beq _080E33C0
mov r0, r8
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
bne _080E33C0
@@ -51453,7 +51453,7 @@ _080E3432:
bne _080E34A4
_080E345E:
mov r0, r8
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -51495,7 +51495,7 @@ _080E34A4:
ldrh r4, [r0]
b _080E3522
.align 2, 0
-_080E34B4: .4byte gBattleAnimEnemyMonIndex
+_080E34B4: .4byte gBattleAnimBankTarget
_080E34B8: .4byte gUnknown_030042C4
_080E34BC: .4byte gUnknown_03004240
_080E34C0: .4byte REG_WININ
@@ -52181,7 +52181,7 @@ sub_80E3A08: @ 80E3A08
lsrs r6, r0, 24
movs r4, 0
movs r2, 0
- ldr r0, _080E3A50 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E3A50 @ =gBattleAnimBankAttacker
ldrb r3, [r0]
movs r5, 0x1
_080E3A18:
@@ -52214,7 +52214,7 @@ _080E3A34:
pop {r0}
bx r0
.align 2, 0
-_080E3A50: .4byte gBattleAnimPlayerMonIndex
+_080E3A50: .4byte gBattleAnimBankAttacker
_080E3A54: .4byte gBattleAnimArgs
thumb_func_end sub_80E3A08
@@ -52235,7 +52235,7 @@ sub_80E3A58: @ 80E3A58
ldrsh r0, [r4, r1]
cmp r0, 0
beq _080E3A94
- ldr r0, _080E3AC8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E3AC8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -52271,7 +52271,7 @@ _080E3A94:
.align 2, 0
_080E3AC0: .4byte sub_80E3AD0
_080E3AC4: .4byte gBattleAnimArgs
-_080E3AC8: .4byte gBattleAnimPlayerMonIndex
+_080E3AC8: .4byte gBattleAnimBankAttacker
_080E3ACC: .4byte gTasks
thumb_func_end sub_80E3A58
@@ -52343,7 +52343,7 @@ sub_80E3B4C: @ 80E3B4C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080E3B70 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E3B70 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
ldr r1, _080E3B74 @ =gBattleAnimArgs
@@ -52356,7 +52356,7 @@ sub_80E3B4C: @ 80E3B4C
pop {r0}
bx r0
.align 2, 0
-_080E3B70: .4byte gBattleAnimPlayerMonIndex
+_080E3B70: .4byte gBattleAnimBankAttacker
_080E3B74: .4byte gBattleAnimArgs
thumb_func_end sub_80E3B4C
@@ -52366,7 +52366,7 @@ sub_80E3B78: @ 80E3B78
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080E3B9C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E3B9C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
ldr r1, _080E3BA0 @ =gBattleAnimArgs
@@ -52379,7 +52379,7 @@ sub_80E3B78: @ 80E3B78
pop {r0}
bx r0
.align 2, 0
-_080E3B9C: .4byte gBattleAnimEnemyMonIndex
+_080E3B9C: .4byte gBattleAnimBankTarget
_080E3BA0: .4byte gBattleAnimArgs
thumb_func_end sub_80E3B78
@@ -52390,10 +52390,10 @@ sub_80E3BA4: @ 80E3BA4
lsrs r3, r0, 24
ldr r5, _080E3BD0 @ =gBattleAnimArgs
movs r4, 0
- ldr r0, _080E3BD4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E3BD4 @ =gBattleAnimBankAttacker
ldrb r2, [r0]
movs r0, 0x2
- ldr r1, _080E3BD8 @ =gBattleAnimEnemyMonIndex
+ ldr r1, _080E3BD8 @ =gBattleAnimBankTarget
eors r0, r2
ldrb r1, [r1]
cmp r0, r1
@@ -52408,8 +52408,8 @@ _080E3BC0:
bx r0
.align 2, 0
_080E3BD0: .4byte gBattleAnimArgs
-_080E3BD4: .4byte gBattleAnimPlayerMonIndex
-_080E3BD8: .4byte gBattleAnimEnemyMonIndex
+_080E3BD4: .4byte gBattleAnimBankAttacker
+_080E3BD8: .4byte gBattleAnimBankTarget
thumb_func_end sub_80E3BA4
thumb_func_start sub_80E3BDC
@@ -52420,13 +52420,13 @@ sub_80E3BDC: @ 80E3BDC
movs r4, 0
ldr r6, _080E3C3C @ =gSprites
_080E3BE6:
- ldr r0, _080E3C40 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E3C40 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
cmp r4, r0
beq _080E3C24
lsls r0, r4, 24
lsrs r0, 24
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080E3C24
@@ -52463,7 +52463,7 @@ _080E3C24:
bx r0
.align 2, 0
_080E3C3C: .4byte gSprites
-_080E3C40: .4byte gBattleAnimPlayerMonIndex
+_080E3C40: .4byte gBattleAnimBankAttacker
_080E3C44: .4byte gObjectBankIDs
_080E3C48: .4byte gBattleAnimArgs
thumb_func_end sub_80E3BDC
@@ -52513,7 +52513,7 @@ sub_80E3C4C: @ 80E3C4C
cmp r1, 0
beq _080E3CB2
adds r0, r6, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
bne _080E3CB2
@@ -52986,14 +52986,14 @@ _080E4068: .4byte gBattleAnimArgs
_080E406C:
cmp r0, 0x1
bne _080E4078
- ldr r0, _080E4074 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E4074 @ =gBattleAnimBankAttacker
b _080E407E
.align 2, 0
-_080E4074: .4byte gBattleAnimPlayerMonIndex
+_080E4074: .4byte gBattleAnimBankAttacker
_080E4078:
cmp r0, 0x2
bne _080E4084
- ldr r0, _080E409C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E409C @ =gBattleAnimBankTarget
_080E407E:
ldrb r0, [r0]
adds r4, r0, 0
@@ -53010,7 +53010,7 @@ _080E4084:
ldr r0, _080E40A4 @ =0x02014800
b _080E40AA
.align 2, 0
-_080E409C: .4byte gBattleAnimEnemyMonIndex
+_080E409C: .4byte gBattleAnimBankTarget
_080E40A0: .4byte gBattleAnimArgs
_080E40A4: .4byte 0x02014800
_080E40A8:
@@ -53073,14 +53073,14 @@ _080E4110: .4byte gBattleAnimArgs
_080E4114:
cmp r0, 0x1
bne _080E4120
- ldr r0, _080E411C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E411C @ =gBattleAnimBankAttacker
b _080E4126
.align 2, 0
-_080E411C: .4byte gBattleAnimPlayerMonIndex
+_080E411C: .4byte gBattleAnimBankAttacker
_080E4120:
cmp r0, 0x2
bne _080E412C
- ldr r0, _080E4148 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E4148 @ =gBattleAnimBankTarget
_080E4126:
ldrb r0, [r0]
adds r4, r0, 0
@@ -53100,7 +53100,7 @@ _080E412C:
ldr r0, _080E4154 @ =0x02014800
b _080E415A
.align 2, 0
-_080E4148: .4byte gBattleAnimEnemyMonIndex
+_080E4148: .4byte gBattleAnimBankTarget
_080E414C: .4byte gPlttBufferUnfaded
_080E4150: .4byte gBattleAnimArgs
_080E4154: .4byte 0x02014800
@@ -53160,14 +53160,14 @@ _080E41B8: .4byte gBattleAnimArgs
_080E41BC:
cmp r0, 0x1
bne _080E41C8
- ldr r0, _080E41C4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E41C4 @ =gBattleAnimBankAttacker
b _080E41CE
.align 2, 0
-_080E41C4: .4byte gBattleAnimPlayerMonIndex
+_080E41C4: .4byte gBattleAnimBankAttacker
_080E41C8:
cmp r0, 0x2
bne _080E41D4
- ldr r0, _080E41F4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E41F4 @ =gBattleAnimBankTarget
_080E41CE:
ldrb r0, [r0]
adds r4, r0, 0
@@ -53187,7 +53187,7 @@ _080E41D4:
pop {r0}
bx r0
.align 2, 0
-_080E41F4: .4byte gBattleAnimEnemyMonIndex
+_080E41F4: .4byte gBattleAnimBankTarget
_080E41F8: .4byte gPlttBufferUnfaded
_080E41FC: .4byte gPlttBufferFaded
thumb_func_end sub_80E4178
@@ -53226,11 +53226,11 @@ sub_80E4234: @ 80E4234
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080E4254 @ =gBattleAnimPlayerMonIndex
+ ldr r2, _080E4254 @ =gBattleAnimBankAttacker
ldr r1, _080E4258 @ =gBankTarget
ldrb r1, [r1]
strb r1, [r2]
- ldr r2, _080E425C @ =gBattleAnimEnemyMonIndex
+ ldr r2, _080E425C @ =gBattleAnimBankTarget
ldr r1, _080E4260 @ =gEffectBank
ldrb r1, [r1]
strb r1, [r2]
@@ -53238,9 +53238,9 @@ sub_80E4234: @ 80E4234
pop {r0}
bx r0
.align 2, 0
-_080E4254: .4byte gBattleAnimPlayerMonIndex
+_080E4254: .4byte gBattleAnimBankAttacker
_080E4258: .4byte gBankTarget
-_080E425C: .4byte gBattleAnimEnemyMonIndex
+_080E425C: .4byte gBattleAnimBankTarget
_080E4260: .4byte gEffectBank
thumb_func_end sub_80E4234
@@ -53249,11 +53249,11 @@ sub_80E4264: @ 80E4264
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _080E428C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E428C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
adds r4, r0, 0
- ldr r0, _080E4290 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E4290 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r4, 24
@@ -53264,8 +53264,8 @@ sub_80E4264: @ 80E4264
movs r0, 0x1
b _080E429C
.align 2, 0
-_080E428C: .4byte gBattleAnimPlayerMonIndex
-_080E4290: .4byte gBattleAnimEnemyMonIndex
+_080E428C: .4byte gBattleAnimBankAttacker
+_080E4290: .4byte gBattleAnimBankTarget
_080E4294: .4byte gBattleAnimArgs
_080E4298:
ldr r1, _080E42AC @ =gBattleAnimArgs
@@ -53286,7 +53286,7 @@ sub_80E42B0: @ 80E42B0
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080E42C8 @ =gBattleAnimEnemyMonIndex
+ ldr r2, _080E42C8 @ =gBattleAnimBankTarget
ldr r1, _080E42CC @ =gBankTarget
ldrb r1, [r1]
strb r1, [r2]
@@ -53294,7 +53294,7 @@ sub_80E42B0: @ 80E42B0
pop {r0}
bx r0
.align 2, 0
-_080E42C8: .4byte gBattleAnimEnemyMonIndex
+_080E42C8: .4byte gBattleAnimBankTarget
_080E42CC: .4byte gBankTarget
thumb_func_end sub_80E42B0
@@ -53303,11 +53303,11 @@ sub_80E42D0: @ 80E42D0
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080E42F0 @ =gBattleAnimPlayerMonIndex
+ ldr r2, _080E42F0 @ =gBattleAnimBankAttacker
ldr r1, _080E42F4 @ =gBankAttacker
ldrb r1, [r1]
strb r1, [r2]
- ldr r2, _080E42F8 @ =gBattleAnimEnemyMonIndex
+ ldr r2, _080E42F8 @ =gBattleAnimBankTarget
ldr r1, _080E42FC @ =gEffectBank
ldrb r1, [r1]
strb r1, [r2]
@@ -53315,9 +53315,9 @@ sub_80E42D0: @ 80E42D0
pop {r0}
bx r0
.align 2, 0
-_080E42F0: .4byte gBattleAnimPlayerMonIndex
+_080E42F0: .4byte gBattleAnimBankAttacker
_080E42F4: .4byte gBankAttacker
-_080E42F8: .4byte gBattleAnimEnemyMonIndex
+_080E42F8: .4byte gBattleAnimBankTarget
_080E42FC: .4byte gEffectBank
thumb_func_end sub_80E42D0
@@ -53339,7 +53339,7 @@ _080E4318:
adds r3, r4
lsls r3, 3
adds r3, r0
- ldr r1, _080E4358 @ =gBattleAnimPlayerMonIndex
+ ldr r1, _080E4358 @ =gBattleAnimBankAttacker
ldrb r0, [r1]
lsls r0, 2
ldr r2, _080E435C @ =0x02017800
@@ -53367,7 +53367,7 @@ _080E434E:
bx r0
.align 2, 0
_080E4354: .4byte gTasks
-_080E4358: .4byte gBattleAnimPlayerMonIndex
+_080E4358: .4byte gBattleAnimBankAttacker
_080E435C: .4byte 0x02017800
_080E4360: .4byte sub_80E4368
_080E4364: .4byte gAnimVisualTaskCount
@@ -53385,7 +53385,7 @@ sub_80E4368: @ 80E4368
lsls r0, 5
cmp r1, r0
bne _080E43A8
- ldr r0, _080E43B4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E43B4 @ =gBattleAnimBankAttacker
ldrb r3, [r0]
lsls r3, 2
ldr r0, _080E43B8 @ =0x02017800
@@ -53412,7 +53412,7 @@ _080E43A8:
bx r0
.align 2, 0
_080E43B0: .4byte gBattleAnimArgs
-_080E43B4: .4byte gBattleAnimPlayerMonIndex
+_080E43B4: .4byte gBattleAnimBankAttacker
_080E43B8: .4byte 0x02017800
_080E43BC: .4byte gTasks
thumb_func_end sub_80E4368
diff --git a/asm/battle_anim_81258BC.s b/asm/battle_anim_81258BC.s
index f2f127690..69b95b703 100644
--- a/asm/battle_anim_81258BC.s
+++ b/asm/battle_anim_81258BC.s
@@ -9,7 +9,7 @@
thumb_func_start unref_sub_812AECC
unref_sub_812AECC: @ 812AECC
push {lr}
- bl sub_812613C
+ bl RunMysteryEventScript
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
@@ -403,29 +403,29 @@ _0812B1CC:
adds r2, r0, 0
cmp r1, 0
bne _0812B1E8
- ldr r0, _0812B1E4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812B1E4 @ =gBattleAnimBankAttacker
ldrb r4, [r0]
b _0812B20E
.align 2, 0
_0812B1E0: .4byte gBattleAnimArgs
-_0812B1E4: .4byte gBattleAnimPlayerMonIndex
+_0812B1E4: .4byte gBattleAnimBankAttacker
_0812B1E8:
cmp r1, 0x1
bne _0812B1F8
- ldr r0, _0812B1F4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812B1F4 @ =gBattleAnimBankTarget
ldrb r4, [r0]
b _0812B20E
.align 2, 0
-_0812B1F4: .4byte gBattleAnimEnemyMonIndex
+_0812B1F4: .4byte gBattleAnimBankTarget
_0812B1F8:
cmp r1, 0x2
bne _0812B204
- ldr r0, _0812B200 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812B200 @ =gBattleAnimBankAttacker
b _0812B206
.align 2, 0
-_0812B200: .4byte gBattleAnimPlayerMonIndex
+_0812B200: .4byte gBattleAnimBankAttacker
_0812B204:
- ldr r0, _0812B230 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812B230 @ =gBattleAnimBankTarget
_0812B206:
ldrb r1, [r0]
movs r0, 0x2
@@ -440,7 +440,7 @@ _0812B20E:
bne _0812B234
_0812B21A:
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
bne _0812B234
@@ -448,7 +448,7 @@ _0812B21A:
bl DestroyAnimVisualTask
b _0812B2B0
.align 2, 0
-_0812B230: .4byte gBattleAnimEnemyMonIndex
+_0812B230: .4byte gBattleAnimBankTarget
_0812B234:
adds r0, r4, 0
bl GetBankSide
@@ -534,7 +534,7 @@ sub_812B2B8: @ 812B2B8
_0812B2D8: .4byte 0x02019348
_0812B2DC:
ldr r1, _0812B304 @ =gUnknown_0202F7CA
- ldr r0, _0812B308 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812B308 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -554,7 +554,7 @@ _0812B2F6:
bx r0
.align 2, 0
_0812B304: .4byte gUnknown_0202F7CA
-_0812B308: .4byte gBattleAnimPlayerMonIndex
+_0812B308: .4byte gBattleAnimBankAttacker
thumb_func_end sub_812B2B8
thumb_func_start sub_812B30C
@@ -729,1397 +729,5 @@ _0812B45C: .4byte gTasks
_0812B460: .4byte gUnknown_0202F7D2
thumb_func_end sub_812B404
- thumb_func_start unref_sub_812B464
-unref_sub_812B464: @ 812B464
- bx lr
- thumb_func_end unref_sub_812B464
-
- thumb_func_start SetBankFuncToSafariBufferRunCommand
-SetBankFuncToSafariBufferRunCommand: @ 812B468
- ldr r1, _0812B478 @ =gBattleBankFunc
- ldr r0, _0812B47C @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812B480 @ =SafariBufferRunCommand
- str r1, [r0]
- bx lr
- .align 2, 0
-_0812B478: .4byte gBattleBankFunc
-_0812B47C: .4byte gActiveBank
-_0812B480: .4byte SafariBufferRunCommand
- thumb_func_end SetBankFuncToSafariBufferRunCommand
-
- thumb_func_start SafariBufferRunCommand
-SafariBufferRunCommand: @ 812B484
- push {lr}
- ldr r2, _0812B4B8 @ =gBattleExecBuffer
- ldr r1, _0812B4BC @ =gBitTable
- ldr r0, _0812B4C0 @ =gActiveBank
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0812B4D0
- ldr r0, _0812B4C4 @ =gBattleBufferA
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _0812B4CC
- ldr r0, _0812B4C8 @ =gSafariBufferCommands
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _0812B4D0
- .align 2, 0
-_0812B4B8: .4byte gBattleExecBuffer
-_0812B4BC: .4byte gBitTable
-_0812B4C0: .4byte gActiveBank
-_0812B4C4: .4byte gBattleBufferA
-_0812B4C8: .4byte gSafariBufferCommands
-_0812B4CC:
- bl SafariBufferExecCompleted
-_0812B4D0:
- pop {r0}
- bx r0
- thumb_func_end SafariBufferRunCommand
-
- thumb_func_start bx_battle_menu_t6_2
-bx_battle_menu_t6_2: @ 812B4D4
- push {r4,r5,lr}
- ldr r0, _0812B508 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0812B546
- movs r0, 0x5
- bl PlaySE
- bl DestroyMenuCursor
- ldr r1, _0812B50C @ =gActionSelectionCursor
- ldr r0, _0812B510 @ =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0812B524
- cmp r0, 0x1
- bgt _0812B514
- cmp r0, 0
- beq _0812B51E
- b _0812B540
- .align 2, 0
-_0812B508: .4byte gMain
-_0812B50C: .4byte gActionSelectionCursor
-_0812B510: .4byte gActiveBank
-_0812B514:
- cmp r0, 0x2
- beq _0812B52A
- cmp r0, 0x3
- beq _0812B536
- b _0812B540
-_0812B51E:
- movs r0, 0x1
- movs r1, 0x5
- b _0812B52E
-_0812B524:
- movs r0, 0x1
- movs r1, 0x6
- b _0812B52E
-_0812B52A:
- movs r0, 0x1
- movs r1, 0x7
-_0812B52E:
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- b _0812B540
-_0812B536:
- movs r0, 0x1
- movs r1, 0x8
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_0812B540:
- bl SafariBufferExecCompleted
- b _0812B64E
-_0812B546:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0812B584
- ldr r5, _0812B57C @ =gActionSelectionCursor
- ldr r4, _0812B580 @ =gActiveBank
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0812B64E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _0812B5F2
- .align 2, 0
-_0812B57C: .4byte gActionSelectionCursor
-_0812B580: .4byte gActiveBank
-_0812B584:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812B5C0
- ldr r5, _0812B5B8 @ =gActionSelectionCursor
- ldr r4, _0812B5BC @ =gActiveBank
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0812B64E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _0812B5F2
- .align 2, 0
-_0812B5B8: .4byte gActionSelectionCursor
-_0812B5BC: .4byte gActiveBank
-_0812B5C0:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0812B60C
- ldr r5, _0812B604 @ =gActionSelectionCursor
- ldr r4, _0812B608 @ =gActiveBank
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0812B64E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x2
-_0812B5F2:
- eors r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
- b _0812B64E
- .align 2, 0
-_0812B604: .4byte gActionSelectionCursor
-_0812B608: .4byte gActiveBank
-_0812B60C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0812B64E
- ldr r5, _0812B654 @ =gActionSelectionCursor
- ldr r4, _0812B658 @ =gActiveBank
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0812B64E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x2
- eors r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
-_0812B64E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B654: .4byte gActionSelectionCursor
-_0812B658: .4byte gActiveBank
- thumb_func_end bx_battle_menu_t6_2
-
- thumb_func_start sub_812B65C
-sub_812B65C: @ 812B65C
- push {lr}
- ldr r2, _0812B684 @ =gSprites
- ldr r1, _0812B688 @ =gObjectBankIDs
- ldr r0, _0812B68C @ =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0812B690 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0812B680
- bl SafariBufferExecCompleted
-_0812B680:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B684: .4byte gSprites
-_0812B688: .4byte gObjectBankIDs
-_0812B68C: .4byte gActiveBank
-_0812B690: .4byte SpriteCallbackDummy
- thumb_func_end sub_812B65C
-
- thumb_func_start sub_812B694
-sub_812B694: @ 812B694
- push {lr}
- ldr r0, _0812B6A8 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _0812B6A2
- bl SafariBufferExecCompleted
-_0812B6A2:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B6A8: .4byte gUnknown_03004210
- thumb_func_end sub_812B694
-
- thumb_func_start sub_812B6AC
-sub_812B6AC: @ 812B6AC
- push {lr}
- ldr r0, _0812B6DC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812B6D6
- ldr r2, _0812B6E0 @ =gMain
- ldr r0, _0812B6E4 @ =0x0000043d
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _0812B6E8 @ =gPreBattleCallback1
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_0812B6D6:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B6DC: .4byte gPaletteFade
-_0812B6E0: .4byte gMain
-_0812B6E4: .4byte 0x0000043d
-_0812B6E8: .4byte gPreBattleCallback1
- thumb_func_end sub_812B6AC
-
- thumb_func_start bx_wait_t6
-bx_wait_t6: @ 812B6EC
- push {lr}
- ldr r0, _0812B718 @ =gDoingBattleAnim
- ldrb r0, [r0]
- cmp r0, 0
- beq _0812B70E
- ldr r0, _0812B71C @ =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812B720 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0812B712
-_0812B70E:
- bl SafariBufferExecCompleted
-_0812B712:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B718: .4byte gDoingBattleAnim
-_0812B71C: .4byte gActiveBank
-_0812B720: .4byte 0x02017810
- thumb_func_end bx_wait_t6
-
- thumb_func_start sub_812B724
-sub_812B724: @ 812B724
- push {lr}
- ldr r0, _0812B748 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812B744
- ldr r1, _0812B74C @ =gBattleBankFunc
- ldr r0, _0812B750 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812B754 @ =sub_812B758
- str r1, [r0]
- bl sub_810BADC
-_0812B744:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B748: .4byte gPaletteFade
-_0812B74C: .4byte gBattleBankFunc
-_0812B750: .4byte gActiveBank
-_0812B754: .4byte sub_812B758
- thumb_func_end sub_812B724
-
- thumb_func_start sub_812B758
-sub_812B758: @ 812B758
- push {lr}
- ldr r0, _0812B784 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0812B788 @ =sub_800F808
- cmp r1, r0
- bne _0812B77E
- ldr r0, _0812B78C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812B77E
- ldr r0, _0812B790 @ =gScriptItemId
- ldrh r1, [r0]
- movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
- bl SafariBufferExecCompleted
-_0812B77E:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B784: .4byte gMain
-_0812B788: .4byte sub_800F808
-_0812B78C: .4byte gPaletteFade
-_0812B790: .4byte gScriptItemId
- thumb_func_end sub_812B758
-
- thumb_func_start sub_812B794
-sub_812B794: @ 812B794
- push {lr}
- ldr r0, _0812B7B8 @ =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812B7BC @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0812B7B2
- bl SafariBufferExecCompleted
-_0812B7B2:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B7B8: .4byte gActiveBank
-_0812B7BC: .4byte 0x02017810
- thumb_func_end sub_812B794
-
- thumb_func_start SafariBufferExecCompleted
-SafariBufferExecCompleted: @ 812B7C0
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _0812B800 @ =gBattleBankFunc
- ldr r4, _0812B804 @ =gActiveBank
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812B808 @ =SafariBufferRunCommand
- str r1, [r0]
- ldr r0, _0812B80C @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0812B814
- bl GetMultiplayerId
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl dp01_prepare_buffer_wireless_probably
- ldr r1, _0812B810 @ =gBattleBufferA
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _0812B826
- .align 2, 0
-_0812B800: .4byte gBattleBankFunc
-_0812B804: .4byte gActiveBank
-_0812B808: .4byte SafariBufferRunCommand
-_0812B80C: .4byte gBattleTypeFlags
-_0812B810: .4byte gBattleBufferA
-_0812B814:
- ldr r2, _0812B830 @ =gBattleExecBuffer
- ldr r1, _0812B834 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_0812B826:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B830: .4byte gBattleExecBuffer
-_0812B834: .4byte gBitTable
- thumb_func_end SafariBufferExecCompleted
-
- thumb_func_start unref_sub_812B838
-unref_sub_812B838: @ 812B838
- push {lr}
- ldr r0, _0812B85C @ =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812B860 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0812B856
- bl SafariBufferExecCompleted
-_0812B856:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B85C: .4byte gActiveBank
-_0812B860: .4byte 0x02017810
- thumb_func_end unref_sub_812B838
-
- thumb_func_start SafariHandleGetAttributes
-SafariHandleGetAttributes: @ 812B864
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end SafariHandleGetAttributes
-
- thumb_func_start sub_812B870
-sub_812B870: @ 812B870
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812B870
-
- thumb_func_start sub_812B87C
-sub_812B87C: @ 812B87C
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812B87C
-
- thumb_func_start sub_812B888
-sub_812B888: @ 812B888
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812B888
-
- thumb_func_start sub_812B894
-sub_812B894: @ 812B894
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812B894
-
- thumb_func_start sub_812B8A0
-sub_812B8A0: @ 812B8A0
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812B8A0
-
- thumb_func_start sub_812B8AC
-sub_812B8AC: @ 812B8AC
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812B8AC
-
- thumb_func_start sub_812B8B8
-sub_812B8B8: @ 812B8B8
- push {r4-r6,lr}
- ldr r4, _0812B96C @ =gSaveBlock2
- ldrb r0, [r4, 0x8]
- ldr r5, _0812B970 @ =gActiveBank
- ldrb r1, [r5]
- bl sub_8031AF4
- ldrb r6, [r4, 0x8]
- ldrb r0, [r5]
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _0812B974 @ =gUnknown_02024E8C
- ldr r2, _0812B978 @ =gTrainerBackPicCoords
- ldrb r1, [r4, 0x8]
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r6, _0812B97C @ =gObjectBankIDs
- ldrb r1, [r5]
- adds r1, r6
- strb r0, [r1]
- ldr r4, _0812B980 @ =gSprites
- ldrb r3, [r5]
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xF0
- strh r1, [r0, 0x24]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0812B984 @ =0x0000fffe
- strh r1, [r0, 0x2E]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _0812B988 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _0812B98C @ =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812B990 @ =sub_812B65C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B96C: .4byte gSaveBlock2
-_0812B970: .4byte gActiveBank
-_0812B974: .4byte gUnknown_02024E8C
-_0812B978: .4byte gTrainerBackPicCoords
-_0812B97C: .4byte gObjectBankIDs
-_0812B980: .4byte gSprites
-_0812B984: .4byte 0x0000fffe
-_0812B988: .4byte sub_80313A0
-_0812B98C: .4byte gBattleBankFunc
-_0812B990: .4byte sub_812B65C
- thumb_func_end sub_812B8B8
-
- thumb_func_start sub_812B994
-sub_812B994: @ 812B994
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812B994
-
- thumb_func_start sub_812B9A0
-sub_812B9A0: @ 812B9A0
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812B9A0
-
- thumb_func_start sub_812B9AC
-sub_812B9AC: @ 812B9AC
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812B9AC
-
- thumb_func_start sub_812B9B8
-sub_812B9B8: @ 812B9B8
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812B9B8
-
- thumb_func_start sub_812B9C4
-sub_812B9C4: @ 812B9C4
- push {r4,r5,lr}
- ldr r1, _0812BA00 @ =0x02017840
- movs r0, 0x4
- strb r0, [r1, 0x8]
- ldr r1, _0812BA04 @ =gDoingBattleAnim
- movs r0, 0x1
- strb r0, [r1]
- ldr r5, _0812BA08 @ =gActiveBank
- ldrb r4, [r5]
- movs r0, 0x1
- bl GetBankByPlayerAI
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl move_anim_start_t4
- ldr r1, _0812BA0C @ =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BA10 @ =bx_wait_t6
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BA00: .4byte 0x02017840
-_0812BA04: .4byte gDoingBattleAnim
-_0812BA08: .4byte gActiveBank
-_0812BA0C: .4byte gBattleBankFunc
-_0812BA10: .4byte bx_wait_t6
- thumb_func_end sub_812B9C4
-
- thumb_func_start sub_812BA14
-sub_812BA14: @ 812BA14
- push {r4,r5,lr}
- ldr r1, _0812BA58 @ =gBattleBufferA
- ldr r5, _0812BA5C @ =gActiveBank
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, _0812BA60 @ =0x02017840
- strb r1, [r0, 0x8]
- ldr r1, _0812BA64 @ =gDoingBattleAnim
- movs r0, 0x1
- strb r0, [r1]
- ldrb r4, [r5]
- movs r0, 0x1
- bl GetBankByPlayerAI
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl move_anim_start_t4
- ldr r1, _0812BA68 @ =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BA6C @ =bx_wait_t6
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BA58: .4byte gBattleBufferA
-_0812BA5C: .4byte gActiveBank
-_0812BA60: .4byte 0x02017840
-_0812BA64: .4byte gDoingBattleAnim
-_0812BA68: .4byte gBattleBankFunc
-_0812BA6C: .4byte bx_wait_t6
- thumb_func_end sub_812BA14
-
- thumb_func_start sub_812BA70
-sub_812BA70: @ 812BA70
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BA70
-
- thumb_func_start sub_812BA7C
-sub_812BA7C: @ 812BA7C
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BA7C
-
- thumb_func_start SafariHandlePrintString
-SafariHandlePrintString: @ 812BA88
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0812BACC @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0812BAD0 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r4, _0812BAD4 @ =gActiveBank
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _0812BAD8 @ =gUnknown_02023A62
- adds r0, r1
- ldrh r0, [r0]
- bl BufferStringBattle
- ldr r0, _0812BADC @ =gUnknown_03004210
- ldr r1, _0812BAE0 @ =gDisplayedStringBattle
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _0812BAE4 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BAE8 @ =sub_812B694
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BACC: .4byte gUnknown_030042A4
-_0812BAD0: .4byte gUnknown_030042A0
-_0812BAD4: .4byte gActiveBank
-_0812BAD8: .4byte gUnknown_02023A62
-_0812BADC: .4byte gUnknown_03004210
-_0812BAE0: .4byte gDisplayedStringBattle
-_0812BAE4: .4byte gBattleBankFunc
-_0812BAE8: .4byte sub_812B694
- thumb_func_end SafariHandlePrintString
-
- thumb_func_start SafariHandlePrintStringPlayerOnly
-SafariHandlePrintStringPlayerOnly: @ 812BAEC
- push {lr}
- ldr r0, _0812BB04 @ =gActiveBank
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0812BB08
- bl SafariHandlePrintString
- b _0812BB0C
- .align 2, 0
-_0812BB04: .4byte gActiveBank
-_0812BB08:
- bl SafariBufferExecCompleted
-_0812BB0C:
- pop {r0}
- bx r0
- thumb_func_end SafariHandlePrintStringPlayerOnly
-
-.section .text_812BBFC
-
- thumb_func_start sub_812BBFC
-sub_812BBFC: @ 812BBFC
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BBFC
-
- thumb_func_start sub_812BC08
-sub_812BC08: @ 812BC08
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BC08
-
- thumb_func_start sub_812BC14
-sub_812BC14: @ 812BC14
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0812BC44 @ =gBattleBankFunc
- ldr r2, _0812BC48 @ =gActiveBank
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BC4C @ =sub_812B724
- str r1, [r0]
- ldr r1, _0812BC50 @ =gBankInMenu
- ldrb r0, [r2]
- strb r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0812BC44: .4byte gBattleBankFunc
-_0812BC48: .4byte gActiveBank
-_0812BC4C: .4byte sub_812B724
-_0812BC50: .4byte gBankInMenu
- thumb_func_end sub_812BC14
-
- thumb_func_start sub_812BC54
-sub_812BC54: @ 812BC54
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BC54
-
- thumb_func_start sub_812BC60
-sub_812BC60: @ 812BC60
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BC60
-
- thumb_func_start sub_812BC6C
-sub_812BC6C: @ 812BC6C
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BC6C
-
- thumb_func_start sub_812BC78
-sub_812BC78: @ 812BC78
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BC78
-
- thumb_func_start sub_812BC84
-sub_812BC84: @ 812BC84
- push {lr}
- ldr r0, _0812BCB0 @ =gHealthboxIDs
- ldr r1, _0812BCB4 @ =gActiveBank
- ldrb r1, [r1]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _0812BCB8 @ =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0812BCBC @ =gPlayerParty
- adds r1, r2
- movs r2, 0xB
- bl sub_8045A5C
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_0812BCB0: .4byte gHealthboxIDs
-_0812BCB4: .4byte gActiveBank
-_0812BCB8: .4byte gBattlePartyID
-_0812BCBC: .4byte gPlayerParty
- thumb_func_end sub_812BC84
-
- thumb_func_start sub_812BCC0
-sub_812BCC0: @ 812BCC0
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BCC0
-
- thumb_func_start sub_812BCCC
-sub_812BCCC: @ 812BCCC
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BCCC
-
- thumb_func_start sub_812BCD8
-sub_812BCD8: @ 812BCD8
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BCD8
-
- thumb_func_start sub_812BCE4
-sub_812BCE4: @ 812BCE4
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BCE4
-
- thumb_func_start sub_812BCF0
-sub_812BCF0: @ 812BCF0
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BCF0
-
- thumb_func_start sub_812BCFC
-sub_812BCFC: @ 812BCFC
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BCFC
-
- thumb_func_start sub_812BD08
-sub_812BD08: @ 812BD08
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BD08
-
- thumb_func_start sub_812BD14
-sub_812BD14: @ 812BD14
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BD14
-
- thumb_func_start sub_812BD20
-sub_812BD20: @ 812BD20
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BD20
-
- thumb_func_start sub_812BD2C
-sub_812BD2C: @ 812BD2C
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BD2C
-
- thumb_func_start sub_812BD38
-sub_812BD38: @ 812BD38
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BD38
-
- thumb_func_start sub_812BD44
-sub_812BD44: @ 812BD44
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BD44
-
- thumb_func_start sub_812BD50
-sub_812BD50: @ 812BD50
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BD50
-
- thumb_func_start sub_812BD5C
-sub_812BD5C: @ 812BD5C
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BD5C
-
- thumb_func_start sub_812BD68
-sub_812BD68: @ 812BD68
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BD68
-
- thumb_func_start sub_812BD74
-sub_812BD74: @ 812BD74
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BD74
-
- thumb_func_start sub_812BD80
-sub_812BD80: @ 812BD80
- push {r4,lr}
- ldr r4, _0812BDBC @ =gActiveBank
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _0812BD94
- movs r3, 0xC0
-_0812BD94:
- ldr r2, _0812BDC0 @ =gBattleBufferA
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- lsls r1, r3, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- bl SafariBufferExecCompleted
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BDBC: .4byte gActiveBank
-_0812BDC0: .4byte gBattleBufferA
- thumb_func_end sub_812BD80
-
- thumb_func_start sub_812BDC4
-sub_812BDC4: @ 812BDC4
- push {lr}
- ldr r2, _0812BDEC @ =gBattleBufferA
- ldr r0, _0812BDF0 @ =gActiveBank
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_0812BDEC: .4byte gBattleBufferA
-_0812BDF0: .4byte gActiveBank
- thumb_func_end sub_812BDC4
-
- thumb_func_start sub_812BDF4
-sub_812BDF4: @ 812BDF4
- push {lr}
- ldr r1, _0812BE24 @ =gBattlePartyID
- ldr r0, _0812BE28 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0812BE2C @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl PlayCry1
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_0812BE24: .4byte gBattlePartyID
-_0812BE28: .4byte gActiveBank
-_0812BE2C: .4byte gPlayerParty
- thumb_func_end sub_812BDF4
-
- thumb_func_start dp01t_2E_6_battle_intro
-dp01t_2E_6_battle_intro: @ 812BE30
- push {lr}
- ldr r1, _0812BE58 @ =gBattleBufferA
- ldr r0, _0812BE5C @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _0812BE60 @ =gUnknown_02024DE8
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_0812BE58: .4byte gBattleBufferA
-_0812BE5C: .4byte gActiveBank
-_0812BE60: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_6_battle_intro
-
- thumb_func_start sub_812BE64
-sub_812BE64: @ 812BE64
- push {r4,r5,lr}
- ldr r5, _0812BEA0 @ =gHealthboxIDs
- ldr r4, _0812BEA4 @ =gActiveBank
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _0812BEA8 @ =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0812BEAC @ =gPlayerParty
- adds r1, r2
- movs r2, 0xA
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- bl SafariBufferExecCompleted
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BEA0: .4byte gHealthboxIDs
-_0812BEA4: .4byte gActiveBank
-_0812BEA8: .4byte gBattlePartyID
-_0812BEAC: .4byte gPlayerParty
- thumb_func_end sub_812BE64
-
- thumb_func_start sub_812BEB0
-sub_812BEB0: @ 812BEB0
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BEB0
-
- thumb_func_start sub_812BEBC
-sub_812BEBC: @ 812BEBC
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BEBC
-
- thumb_func_start sub_812BEC8
-sub_812BEC8: @ 812BEC8
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BEC8
-
- thumb_func_start sub_812BED4
-sub_812BED4: @ 812BED4
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BED4
-
- thumb_func_start sub_812BEE0
-sub_812BEE0: @ 812BEE0
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r5, _0812BF18 @ =gBattleBufferA
- ldr r6, _0812BF1C @ =gActiveBank
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _0812BF20
- bl SafariBufferExecCompleted
- b _0812BF2C
- .align 2, 0
-_0812BF18: .4byte gBattleBufferA
-_0812BF1C: .4byte gActiveBank
-_0812BF20:
- ldr r0, _0812BF34 @ =gBattleBankFunc
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0812BF38 @ =sub_812B794
- str r0, [r1]
-_0812BF2C:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BF34: .4byte gBattleBankFunc
-_0812BF38: .4byte sub_812B794
- thumb_func_end sub_812BEE0
-
- thumb_func_start sub_812BF3C
-sub_812BF3C: @ 812BF3C
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BF3C
-
- thumb_func_start sub_812BF48
-sub_812BF48: @ 812BF48
- push {lr}
- bl SafariBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_812BF48
-
- thumb_func_start sub_812BF54
-sub_812BF54: @ 812BF54
- push {r4,lr}
- ldr r2, _0812BF98 @ =gBattleOutcome
- ldr r1, _0812BF9C @ =gBattleBufferA
- ldr r4, _0812BFA0 @ =gActiveBank
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl SafariBufferExecCompleted
- ldr r0, _0812BFA4 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0x2
- bne _0812BF90
- ldr r0, _0812BFA8 @ =gBattleBankFunc
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0812BFAC @ =sub_812B6AC
- str r0, [r1]
-_0812BF90:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BF98: .4byte gBattleOutcome
-_0812BF9C: .4byte gBattleBufferA
-_0812BFA0: .4byte gActiveBank
-_0812BFA4: .4byte gBattleTypeFlags
-_0812BFA8: .4byte gBattleBankFunc
-_0812BFAC: .4byte sub_812B6AC
- thumb_func_end sub_812BF54
-
- thumb_func_start nullsub_78
-nullsub_78: @ 812BFB0
- bx lr
- thumb_func_end nullsub_78
-
- .align 2, 0 @ Don't pad with nop.
+ .align 2, 0 @ Don't pad with nop.
+ \ No newline at end of file
diff --git a/asm/battle_anim_812C144.s b/asm/battle_anim_812C144.s
index bae3d9bc2..4562ad2f5 100644
--- a/asm/battle_anim_812C144.s
+++ b/asm/battle_anim_812C144.s
@@ -90,7 +90,7 @@ sub_812C1D0: @ 812C1D0
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r6, _0812C21C @ =gBattleAnimEnemyMonIndex
+ ldr r6, _0812C21C @ =gBattleAnimBankTarget
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
@@ -120,7 +120,7 @@ sub_812C1D0: @ 812C1D0
pop {r0}
bx r0
.align 2, 0
-_0812C21C: .4byte gBattleAnimEnemyMonIndex
+_0812C21C: .4byte gBattleAnimBankTarget
thumb_func_end sub_812C1D0
thumb_func_start sub_812C220
@@ -135,7 +135,7 @@ sub_812C220: @ 812C220
strh r0, [r4, 0x30]
ldr r1, _0812C25C @ =sub_812C268
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, _0812C260 @ =REG_BLDCNT
movs r2, 0xFD
lsls r2, 6
@@ -211,7 +211,7 @@ sub_812C2BC: @ 812C2BC
push {r4-r7,lr}
sub sp, 0x4
adds r5, r0, 0
- ldr r4, _0812C348 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _0812C348 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -267,13 +267,13 @@ _0812C31A:
str r0, [r5, 0x1C]
ldr r1, _0812C354 @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
-_0812C348: .4byte gBattleAnimEnemyMonIndex
+_0812C348: .4byte gBattleAnimBankTarget
_0812C34C: .4byte gBattleAnimArgs
_0812C350: .4byte sub_8078B34
_0812C354: .4byte move_anim_8072740
@@ -797,7 +797,7 @@ sub_812C720: @ 812C720
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _0812C784 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812C784 @ =gBattleAnimBankTarget
ldrb r0, [r0]
mov r5, sp
adds r5, 0x2
@@ -805,7 +805,7 @@ sub_812C720: @ 812C720
mov r2, sp
adds r3, r5, 0
bl sub_807A3FC
- ldr r0, _0812C788 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812C788 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -839,8 +839,8 @@ _0812C754:
pop {r0}
bx r0
.align 2, 0
-_0812C784: .4byte gBattleAnimEnemyMonIndex
-_0812C788: .4byte gBattleAnimPlayerMonIndex
+_0812C784: .4byte gBattleAnimBankTarget
+_0812C788: .4byte gBattleAnimBankAttacker
_0812C78C: .4byte gBattleAnimArgs
_0812C790: .4byte 0x0000ffce
_0812C794: .4byte sub_812C798
@@ -862,7 +862,7 @@ sub_812C798: @ 812C798
str r0, [r4, 0x1C]
ldr r1, _0812C7C4 @ =sub_812C7C8
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_0812C7BA:
pop {r4}
pop {r0}
@@ -929,7 +929,7 @@ sub_812C80C: @ 812C80C
str r0, [r4, 0x1C]
ldr r1, _0812C844 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -958,7 +958,7 @@ sub_812C848: @ 812C848
lsls r0, 24
cmp r0, 0
bne _0812C89C
- ldr r0, _0812C888 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812C888 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -968,7 +968,7 @@ sub_812C848: @ 812C848
b _0812C8A2
.align 2, 0
_0812C884: .4byte gBattleAnimArgs
-_0812C888: .4byte gBattleAnimPlayerMonIndex
+_0812C888: .4byte gBattleAnimBankAttacker
_0812C88C:
movs r1, 0x4
ldrsh r0, [r5, r1]
@@ -1058,7 +1058,7 @@ sub_812C924: @ 812C924
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _0812C940 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812C940 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -1069,7 +1069,7 @@ sub_812C924: @ 812C924
movs r0, 0
b _0812C94C
.align 2, 0
-_0812C940: .4byte gBattleAnimEnemyMonIndex
+_0812C940: .4byte gBattleAnimBankTarget
_0812C944: .4byte gBattleAnimArgs
_0812C948:
ldr r1, _0812C95C @ =gBattleAnimArgs
@@ -1307,7 +1307,7 @@ sub_812CAFC: @ 812CAFC
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0812CB28
- ldr r4, _0812CB74 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _0812CB74 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -1358,7 +1358,7 @@ _0812CB28:
b _0812CB8A
.align 2, 0
_0812CB70: .4byte gBattleAnimArgs
-_0812CB74: .4byte gBattleAnimPlayerMonIndex
+_0812CB74: .4byte gBattleAnimBankAttacker
_0812CB78: .4byte 0x000003ff
_0812CB7C: .4byte 0xfffffc00
_0812CB80: .4byte 0x0000fff4
@@ -1553,13 +1553,13 @@ sub_812CCE8: @ 812CCE8
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0812CD04
- ldr r4, _0812CD00 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _0812CD00 @ =gBattleAnimBankAttacker
b _0812CD06
.align 2, 0
_0812CCFC: .4byte gBattleAnimArgs
-_0812CD00: .4byte gBattleAnimPlayerMonIndex
+_0812CD00: .4byte gBattleAnimBankAttacker
_0812CD04:
- ldr r4, _0812CD58 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _0812CD58 @ =gBattleAnimBankTarget
_0812CD06:
ldrb r0, [r4]
movs r1, 0
@@ -1602,7 +1602,7 @@ _0812CD3E:
pop {r0}
bx r0
.align 2, 0
-_0812CD58: .4byte gBattleAnimEnemyMonIndex
+_0812CD58: .4byte gBattleAnimBankTarget
_0812CD5C: .4byte gBattleAnimArgs
_0812CD60: .4byte sub_812CD64
thumb_func_end sub_812CCE8
@@ -1675,14 +1675,14 @@ sub_812CDC8: @ 812CDC8
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0812CDF4
- ldr r4, _0812CDF0 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _0812CDF0 @ =gBattleAnimBankAttacker
b _0812CDF6
.align 2, 0
_0812CDE8: .4byte gTasks
_0812CDEC: .4byte gBattleAnimArgs
-_0812CDF0: .4byte gBattleAnimPlayerMonIndex
+_0812CDF0: .4byte gBattleAnimBankAttacker
_0812CDF4:
- ldr r4, _0812CE3C @ =gBattleAnimEnemyMonIndex
+ ldr r4, _0812CE3C @ =gBattleAnimBankTarget
_0812CDF6:
ldrb r0, [r4]
bl sub_8077FC0
@@ -1718,7 +1718,7 @@ _0812CE20:
ldr r0, _0812CE44 @ =gUnknown_030042C0
b _0812CE4A
.align 2, 0
-_0812CE3C: .4byte gBattleAnimEnemyMonIndex
+_0812CE3C: .4byte gBattleAnimBankTarget
_0812CE40: .4byte gBattleAnimArgs
_0812CE44: .4byte gUnknown_030042C0
_0812CE48:
@@ -1975,7 +1975,7 @@ sub_812D008: @ 812D008
movs r5, 0
strh r5, [r4, 0x8]
strh r5, [r4, 0xA]
- ldr r6, _0812D060 @ =gBattleAnimPlayerMonIndex
+ ldr r6, _0812D060 @ =gBattleAnimBankAttacker
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
@@ -1994,7 +1994,7 @@ sub_812D008: @ 812D008
strh r0, [r4, 0x12]
strh r5, [r4, 0x14]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -2005,7 +2005,7 @@ sub_812D008: @ 812D008
bx r0
.align 2, 0
_0812D05C: .4byte gTasks
-_0812D060: .4byte gBattleAnimPlayerMonIndex
+_0812D060: .4byte gBattleAnimBankAttacker
_0812D064: .4byte 0x0000ffec
_0812D068: .4byte sub_812D06C
thumb_func_end sub_812D008
@@ -2350,7 +2350,7 @@ _0812D2F0:
bne _0812D33C
ldr r1, _0812D344 @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrh r0, [r5, 0x24]
ldrh r2, [r5, 0x20]
adds r0, r2
@@ -2364,7 +2364,7 @@ _0812D2F0:
strh r1, [r5, 0x26]
movs r0, 0x14
strh r0, [r5, 0x2E]
- ldr r4, _0812D348 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _0812D348 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -2385,7 +2385,7 @@ _0812D33C:
bx r0
.align 2, 0
_0812D344: .4byte move_anim_8072740
-_0812D348: .4byte gBattleAnimEnemyMonIndex
+_0812D348: .4byte gBattleAnimBankTarget
_0812D34C: .4byte sub_8078B34
thumb_func_end sub_812D294
@@ -2410,7 +2410,7 @@ sub_812D350: @ 812D350
_0812D370: .4byte gTasks
_0812D374:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2442,7 +2442,7 @@ sub_812D3AC: @ 812D3AC
push {r4-r6,lr}
adds r5, r0, 0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r6, r0, 24
movs r1, 0x2E
@@ -2461,7 +2461,7 @@ _0812D3CC:
beq _0812D490
b _0812D4AE
_0812D3D6:
- ldr r4, _0812D408 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _0812D408 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -2483,7 +2483,7 @@ _0812D3D6:
strh r0, [r5, 0x32]
b _0812D484
.align 2, 0
-_0812D408: .4byte gBattleAnimPlayerMonIndex
+_0812D408: .4byte gBattleAnimBankAttacker
_0812D40C:
ldrh r0, [r5, 0x30]
adds r0, 0x60
@@ -2575,7 +2575,7 @@ _0812D4AE:
sub_812D4B4: @ 812D4B4
push {r4,lr}
adds r4, r0, 0
- ldr r0, _0812D4CC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812D4CC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -2584,7 +2584,7 @@ sub_812D4B4: @ 812D4B4
ldr r0, _0812D4D0 @ =0x0000fff0
b _0812D4D8
.align 2, 0
-_0812D4CC: .4byte gBattleAnimPlayerMonIndex
+_0812D4CC: .4byte gBattleAnimBankAttacker
_0812D4D0: .4byte 0x0000fff0
_0812D4D4:
movs r0, 0x80
@@ -2609,7 +2609,7 @@ sub_812D4EC: @ 812D4EC
ldrh r0, [r4, 0x2E]
adds r0, 0x48
strh r0, [r4, 0x2E]
- ldr r0, _0812D50C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812D50C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -2620,7 +2620,7 @@ sub_812D4EC: @ 812D4EC
asrs r0, 20
b _0812D518
.align 2, 0
-_0812D50C: .4byte gBattleAnimPlayerMonIndex
+_0812D50C: .4byte gBattleAnimBankAttacker
_0812D510:
ldrh r0, [r4, 0x2E]
lsls r0, 16
@@ -2830,7 +2830,7 @@ sub_812D674: @ 812D674
cmp r0, 0
bne _0812D6B4
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2874,7 +2874,7 @@ sub_812D6CC: @ 812D6CC
cmp r0, 0
bne _0812D70C
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2920,7 +2920,7 @@ _0812D736:
movs r0, 0x90
lsls r0, 4
strh r0, [r4, 0x30]
- ldr r0, _0812D75C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812D75C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
movs r1, 0x3
bl sub_8077ABC
@@ -2932,7 +2932,7 @@ _0812D736:
strh r0, [r4, 0x2E]
b _0812D788
.align 2, 0
-_0812D75C: .4byte gBattleAnimPlayerMonIndex
+_0812D75C: .4byte gBattleAnimBankAttacker
_0812D760:
ldrh r2, [r4, 0x30]
lsls r1, r2, 16
@@ -2975,7 +2975,7 @@ sub_812D790: @ 812D790
cmp r0, 0
bne _0812D7D0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -3044,7 +3044,7 @@ _0812D834:
ldr r1, _0812D850 @ =REG_MOSAIC
movs r0, 0
strh r0, [r1]
- ldr r0, _0812D854 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812D854 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -3055,7 +3055,7 @@ _0812D834:
b _0812D85E
.align 2, 0
_0812D850: .4byte REG_MOSAIC
-_0812D854: .4byte gBattleAnimPlayerMonIndex
+_0812D854: .4byte gBattleAnimBankAttacker
_0812D858: .4byte REG_BG1CNT
_0812D85C:
ldr r0, _0812D87C @ =REG_BG2CNT
@@ -3111,9 +3111,9 @@ _0812D8BC:
.align 2, 0
_0812D8C0: .4byte REG_MOSAIC
_0812D8C4:
- ldr r5, _0812D8F4 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _0812D8F4 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
- ldr r1, _0812D8F8 @ =gBattleAnimEnemyMonIndex
+ ldr r1, _0812D8F8 @ =gBattleAnimBankTarget
ldrb r1, [r1]
mov r2, r8
lsls r4, r2, 2
@@ -3133,8 +3133,8 @@ _0812D8C4:
movs r1, 0
b _0812D906
.align 2, 0
-_0812D8F4: .4byte gBattleAnimPlayerMonIndex
-_0812D8F8: .4byte gBattleAnimEnemyMonIndex
+_0812D8F4: .4byte gBattleAnimBankAttacker
+_0812D8F8: .4byte gBattleAnimBankTarget
_0812D8FC:
ldrb r0, [r5]
bl GetBankIdentity
@@ -3145,7 +3145,7 @@ _0812D906:
lsls r1, 2
adds r1, r0
ldr r2, _0812D9D0 @ =gBattleMonForms
- ldr r0, _0812D9D4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812D9D4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r2
ldrb r0, [r0]
@@ -3229,7 +3229,7 @@ _0812D9A2:
beq _0812D9F0
ldr r3, _0812D9E4 @ =gSprites
ldr r4, _0812D9E8 @ =gObjectBankIDs
- ldr r2, _0812D9D4 @ =gBattleAnimPlayerMonIndex
+ ldr r2, _0812D9D4 @ =gBattleAnimBankAttacker
ldrb r0, [r2]
adds r0, r4
ldrb r1, [r0]
@@ -3244,7 +3244,7 @@ _0812D9A2:
.align 2, 0
_0812D9CC: .4byte gUnknown_081FAF4C
_0812D9D0: .4byte gBattleMonForms
-_0812D9D4: .4byte gBattleAnimPlayerMonIndex
+_0812D9D4: .4byte gBattleAnimBankAttacker
_0812D9D8: .4byte 0x040000d4
_0812D9DC: .4byte 0x84000200
_0812D9E0: .4byte 0x02019348
@@ -3254,7 +3254,7 @@ _0812D9EC: .4byte gSpriteAffineAnimTable_81E7C18
_0812D9F0:
ldr r3, _0812DA34 @ =gSprites
ldr r4, _0812DA38 @ =gObjectBankIDs
- ldr r2, _0812DA3C @ =gBattleAnimPlayerMonIndex
+ ldr r2, _0812DA3C @ =gBattleAnimBankAttacker
ldrb r0, [r2]
adds r0, r4
ldrb r1, [r0]
@@ -3290,7 +3290,7 @@ _0812DA2A:
.align 2, 0
_0812DA34: .4byte gSprites
_0812DA38: .4byte gObjectBankIDs
-_0812DA3C: .4byte gBattleAnimPlayerMonIndex
+_0812DA3C: .4byte gBattleAnimBankAttacker
_0812DA40: .4byte gSpriteAffineAnimTable_81E7BEC
_0812DA44: .4byte gTasks
_0812DA48:
@@ -3329,7 +3329,7 @@ _0812DA84:
ldr r1, _0812DAA0 @ =REG_MOSAIC
movs r0, 0
strh r0, [r1]
- ldr r0, _0812DAA4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812DAA4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -3340,7 +3340,7 @@ _0812DA84:
b _0812DAAE
.align 2, 0
_0812DAA0: .4byte REG_MOSAIC
-_0812DAA4: .4byte gBattleAnimPlayerMonIndex
+_0812DAA4: .4byte gBattleAnimBankAttacker
_0812DAA8: .4byte REG_BG1CNT
_0812DAAC:
ldr r2, _0812DB08 @ =REG_BG2CNT
@@ -3354,7 +3354,7 @@ _0812DAAE:
lsls r0, 24
cmp r0, 0
bne _0812DAF4
- ldr r4, _0812DB0C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _0812DB0C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -3390,7 +3390,7 @@ _0812DAFA:
bx r0
.align 2, 0
_0812DB08: .4byte REG_BG2CNT
-_0812DB0C: .4byte gBattleAnimPlayerMonIndex
+_0812DB0C: .4byte gBattleAnimBankAttacker
_0812DB10: .4byte gTasks
_0812DB14: .4byte 0x02017800
thumb_func_end sub_812D7E8
@@ -3403,7 +3403,7 @@ c3_80DFBE4: @ 812DB18
ldr r4, _0812DB48 @ =gBattleAnimArgs
ldr r3, _0812DB4C @ =gSprites
ldr r2, _0812DB50 @ =gObjectBankIDs
- ldr r1, _0812DB54 @ =gBattleAnimPlayerMonIndex
+ ldr r1, _0812DB54 @ =gBattleAnimBankAttacker
ldrb r1, [r1]
adds r1, r2
ldrb r2, [r1]
@@ -3424,7 +3424,7 @@ c3_80DFBE4: @ 812DB18
_0812DB48: .4byte gBattleAnimArgs
_0812DB4C: .4byte gSprites
_0812DB50: .4byte gObjectBankIDs
-_0812DB54: .4byte gBattleAnimPlayerMonIndex
+_0812DB54: .4byte gBattleAnimBankAttacker
thumb_func_end c3_80DFBE4
thumb_func_start sub_812DB58
@@ -3433,9 +3433,9 @@ sub_812DB58: @ 812DB58
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _0812DB7C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812DB7C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
- ldr r1, _0812DB80 @ =gBattleAnimEnemyMonIndex
+ ldr r1, _0812DB80 @ =gBattleAnimBankTarget
ldrb r1, [r1]
movs r2, 0x1
bl sub_8031FC4
@@ -3445,8 +3445,8 @@ sub_812DB58: @ 812DB58
pop {r0}
bx r0
.align 2, 0
-_0812DB7C: .4byte gBattleAnimPlayerMonIndex
-_0812DB80: .4byte gBattleAnimEnemyMonIndex
+_0812DB7C: .4byte gBattleAnimBankAttacker
+_0812DB80: .4byte gBattleAnimBankTarget
thumb_func_end sub_812DB58
thumb_func_start sub_812DB84
@@ -3572,7 +3572,7 @@ _0812DC90: .4byte gUnknown_030042C0
_0812DC94: .4byte 0x0000ffc8
_0812DC98: .4byte gUnknown_030041B4
_0812DC9C:
- ldr r0, _0812DCB4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812DCB4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -3583,7 +3583,7 @@ _0812DC9C:
adds r0, r4, 0
b _0812DCC6
.align 2, 0
-_0812DCB4: .4byte gBattleAnimPlayerMonIndex
+_0812DCB4: .4byte gBattleAnimBankAttacker
_0812DCB8: .4byte gUnknown_030042C0
_0812DCBC: .4byte 0x0000ff79
_0812DCC0:
@@ -3856,7 +3856,7 @@ sub_812DEAC: @ 812DEAC
lsls r0, 16
lsrs r5, r0, 16
_0812DED6:
- ldr r4, _0812DFD0 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _0812DFD0 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -3975,7 +3975,7 @@ _0812DED6:
pop {r0}
bx r0
.align 2, 0
-_0812DFD0: .4byte gBattleAnimPlayerMonIndex
+_0812DFD0: .4byte gBattleAnimBankAttacker
_0812DFD4: .4byte gBattleAnimArgs
_0812DFD8: .4byte gBattleAnimSpriteTemplate_84025EC
_0812DFDC: .4byte gSprites
@@ -4292,7 +4292,7 @@ _0812E254: .4byte gUnknown_030042C0
_0812E258: .4byte 0x0000ffc8
_0812E25C: .4byte gUnknown_030041B4
_0812E260:
- ldr r0, _0812E2A0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812E2A0 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankIdentity
lsls r0, 24
@@ -4326,7 +4326,7 @@ _0812E296:
ldr r2, _0812E2B0 @ =0x0000ffec
b _0812E2C8
.align 2, 0
-_0812E2A0: .4byte gBattleAnimEnemyMonIndex
+_0812E2A0: .4byte gBattleAnimBankTarget
_0812E2A4: .4byte gUnknown_030042C0
_0812E2A8: .4byte 0x0000ff65
_0812E2AC: .4byte 0x0000ff8d
@@ -4377,7 +4377,7 @@ _0812E300:
adds r5, r0, r1
movs r0, 0
strh r0, [r5, 0xE]
- ldr r0, _0812E338 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812E338 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4397,7 +4397,7 @@ _0812E300:
b _0812E356
.align 2, 0
_0812E334: .4byte gTasks
-_0812E338: .4byte gBattleAnimEnemyMonIndex
+_0812E338: .4byte gBattleAnimBankTarget
_0812E33C: .4byte gUnknown_030042C0
_0812E340: .4byte gUnknown_08402604
_0812E344:
@@ -4588,7 +4588,7 @@ sub_812E498: @ 812E498
cmp r0, 0
bne _0812E4D8
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -4643,7 +4643,7 @@ _0812E50E:
ldrh r0, [r4, 0x32]
adds r0, 0x80
strh r0, [r4, 0x32]
- ldr r0, _0812E53C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812E53C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4655,7 +4655,7 @@ _0812E50E:
negs r0, r0
b _0812E546
.align 2, 0
-_0812E53C: .4byte gBattleAnimPlayerMonIndex
+_0812E53C: .4byte gBattleAnimBankAttacker
_0812E540:
ldrh r0, [r4, 0x30]
lsls r0, 16
@@ -4740,7 +4740,7 @@ _0812E5AC:
subs r0, 0x1
strh r0, [r4, 0x14]
ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -4748,12 +4748,12 @@ _0812E5AC:
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0812E5F8
- ldr r0, _0812E5F4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812E5F4 @ =gBattleAnimBankAttacker
b _0812E5FA
.align 2, 0
-_0812E5F4: .4byte gBattleAnimPlayerMonIndex
+_0812E5F4: .4byte gBattleAnimBankAttacker
_0812E5F8:
- ldr r0, _0812E630 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812E630 @ =gBattleAnimBankTarget
_0812E5FA:
ldrb r0, [r0]
bl GetBankSide
@@ -4782,7 +4782,7 @@ _0812E628:
pop {r0}
bx r0
.align 2, 0
-_0812E630: .4byte gBattleAnimEnemyMonIndex
+_0812E630: .4byte gBattleAnimBankTarget
_0812E634: .4byte sub_812E638
thumb_func_end sub_812E568
@@ -4971,7 +4971,7 @@ _0812E798:
sub_812E7A0: @ 812E7A0
push {r4,lr}
adds r4, r0, 0
- ldr r0, _0812E7BC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812E7BC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4983,7 +4983,7 @@ sub_812E7A0: @ 812E7A0
ldrh r0, [r1]
b _0812E7CE
.align 2, 0
-_0812E7BC: .4byte gBattleAnimPlayerMonIndex
+_0812E7BC: .4byte gBattleAnimBankAttacker
_0812E7C0: .4byte gBattleAnimArgs
_0812E7C4:
movs r0, 0xF0
@@ -5015,7 +5015,7 @@ sub_812E7F0: @ 812E7F0
ldrh r0, [r4, 0x2E]
adds r0, 0x3
strh r0, [r4, 0x2E]
- ldr r0, _0812E830 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812E830 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -5041,7 +5041,7 @@ _0812E822:
bl Sin
b _0812E858
.align 2, 0
-_0812E830: .4byte gBattleAnimPlayerMonIndex
+_0812E830: .4byte gBattleAnimBankAttacker
_0812E834:
ldrh r1, [r4, 0x20]
subs r1, 0x5
@@ -5091,7 +5091,7 @@ sub_812E860: @ 812E860
strh r0, [r4, 0x24]
ldr r0, _0812E8AC @ =gBattleAnimArgs
ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -5330,7 +5330,7 @@ sub_812EA4C: @ 812EA4C
ldrsh r0, [r6, r2]
cmp r0, 0
bne _0812EA80
- ldr r4, _0812EAA8 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _0812EAA8 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -5364,7 +5364,7 @@ _0812EA80:
b _0812EB0A
.align 2, 0
_0812EAA4: .4byte gBattleAnimArgs
-_0812EAA8: .4byte gBattleAnimPlayerMonIndex
+_0812EAA8: .4byte gBattleAnimBankAttacker
_0812EAAC:
ldrh r1, [r5, 0x30]
lsls r0, r1, 16
@@ -5441,20 +5441,20 @@ sub_812EB10: @ 812EB10
mov r8, r0
cmp r1, 0
bne _0812EB4C
- ldr r0, _0812EB48 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812EB48 @ =gBattleAnimBankAttacker
b _0812EB4E
.align 2, 0
_0812EB40: .4byte gTasks
_0812EB44: .4byte gBattleAnimArgs
-_0812EB48: .4byte gBattleAnimPlayerMonIndex
+_0812EB48: .4byte gBattleAnimBankAttacker
_0812EB4C:
- ldr r0, _0812EB88 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812EB88 @ =gBattleAnimBankTarget
_0812EB4E:
ldrb r0, [r0]
strh r0, [r2, 0x1E]
mov r1, r8
ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _0812EB8C @ =gTasks
@@ -5478,7 +5478,7 @@ _0812EB4E:
lsls r2, r5, 4
b _0812EBF8
.align 2, 0
-_0812EB88: .4byte gBattleAnimEnemyMonIndex
+_0812EB88: .4byte gBattleAnimBankTarget
_0812EB8C: .4byte gTasks
_0812EB90:
cmp r0, 0x2
@@ -5893,7 +5893,7 @@ _0812EEA0: .4byte 0x00003f3f
sub_812EEA4: @ 812EEA4
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _0812EEE0 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _0812EEE0 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -5919,7 +5919,7 @@ sub_812EEA4: @ 812EEA4
pop {r0}
bx r0
.align 2, 0
-_0812EEE0: .4byte gBattleAnimPlayerMonIndex
+_0812EEE0: .4byte gBattleAnimBankAttacker
_0812EEE4: .4byte gBattleAnimArgs
_0812EEE8: .4byte sub_812EEEC
thumb_func_end sub_812EEA4
@@ -5954,15 +5954,15 @@ sub_812EEEC: @ 812EEEC
cmp r0, 0xC3
ble _0812EF38
_0812EF26:
- ldr r0, _0812EF34 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812EF34 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079E90
subs r0, 0x1
b _0812EF42
.align 2, 0
-_0812EF34: .4byte gBattleAnimPlayerMonIndex
+_0812EF34: .4byte gBattleAnimBankAttacker
_0812EF38:
- ldr r0, _0812EF84 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812EF84 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079E90
adds r0, 0x1
@@ -6000,7 +6000,7 @@ _0812EF42:
strh r0, [r4, 0x38]
b _0812EFB8
.align 2, 0
-_0812EF84: .4byte gBattleAnimPlayerMonIndex
+_0812EF84: .4byte gBattleAnimBankAttacker
_0812EF88:
cmp r2, 0x1
bne _0812EFB8
@@ -6046,7 +6046,7 @@ sub_812EFC8: @ 812EFC8
lsrs r0, 24
str r0, [sp, 0x10]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
bl IsContest
lsls r0, 24
cmp r0, 0
@@ -6064,7 +6064,7 @@ sub_812EFC8: @ 812EFC8
.align 2, 0
_0812F000: .4byte 0x02019348
_0812F004:
- ldr r0, _0812F070 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812F070 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -6073,7 +6073,7 @@ _0812F004:
movs r0, 0
str r0, [sp, 0x14]
ldr r6, _0812F074 @ =gBattlePartyID
- ldr r4, _0812F078 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _0812F078 @ =gBattleAnimBankTarget
ldrb r0, [r4]
lsls r0, 1
adds r0, r6
@@ -6114,9 +6114,9 @@ _0812F004:
adds r0, r7
b _0812F092
.align 2, 0
-_0812F070: .4byte gBattleAnimPlayerMonIndex
+_0812F070: .4byte gBattleAnimBankAttacker
_0812F074: .4byte gBattlePartyID
-_0812F078: .4byte gBattleAnimEnemyMonIndex
+_0812F078: .4byte gBattleAnimBankTarget
_0812F07C: .4byte gPlayerParty
_0812F080: .4byte 0x02017800
_0812F084:
@@ -6145,7 +6145,7 @@ _0812F0AC:
movs r2, 0x1
str r2, [sp, 0x14]
ldr r6, _0812F10C @ =gBattlePartyID
- ldr r4, _0812F110 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _0812F110 @ =gBattleAnimBankTarget
ldrb r0, [r4]
lsls r0, 1
adds r0, r6
@@ -6188,7 +6188,7 @@ _0812F0AC:
b _0812F12C
.align 2, 0
_0812F10C: .4byte gBattlePartyID
-_0812F110: .4byte gBattleAnimEnemyMonIndex
+_0812F110: .4byte gBattleAnimBankTarget
_0812F114: .4byte gEnemyParty
_0812F118: .4byte 0x02017800
_0812F11C: .4byte gPlayerParty
@@ -6212,12 +6212,12 @@ _0812F13A:
_0812F13C:
mov r10, r3
_0812F13E:
- ldr r0, _0812F21C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812F21C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079ED4
lsls r0, 24
lsrs r7, r0, 24
- ldr r5, _0812F21C @ =gBattleAnimPlayerMonIndex
+ ldr r5, _0812F21C @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -6318,7 +6318,7 @@ _0812F13E:
bx r0
.align 2, 0
_0812F218: .4byte 0x0000ffec
-_0812F21C: .4byte gBattleAnimPlayerMonIndex
+_0812F21C: .4byte gBattleAnimBankAttacker
_0812F220: .4byte gSprites
_0812F224: .4byte 0x00007fff
_0812F228: .4byte REG_BLDCNT
@@ -6455,14 +6455,14 @@ sub_812F314: @ 812F314
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0812F340
- ldr r0, _0812F33C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812F33C @ =gBattleAnimBankAttacker
b _0812F342
.align 2, 0
_0812F334: .4byte gTasks
_0812F338: .4byte gBattleAnimArgs
-_0812F33C: .4byte gBattleAnimPlayerMonIndex
+_0812F33C: .4byte gBattleAnimBankAttacker
_0812F340:
- ldr r0, _0812F3C0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812F3C0 @ =gBattleAnimBankTarget
_0812F342:
ldrb r5, [r0]
movs r6, 0
@@ -6504,7 +6504,7 @@ _0812F388:
strh r0, [r4, 0x24]
ldr r0, _0812F3C4 @ =gBattleAnimArgs
ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -6525,7 +6525,7 @@ _0812F388:
ldr r0, _0812F3D8 @ =gUnknown_030041B4
b _0812F3EE
.align 2, 0
-_0812F3C0: .4byte gBattleAnimEnemyMonIndex
+_0812F3C0: .4byte gBattleAnimBankTarget
_0812F3C4: .4byte gBattleAnimArgs
_0812F3C8: .4byte REG_BG1HOFS
_0812F3CC: .4byte REG_BLDCNT
@@ -6975,7 +6975,7 @@ sub_812F724: @ 812F724
strh r0, [r4, 0x8]
ldr r0, _0812F760 @ =gBattleAnimArgs
ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -7250,7 +7250,7 @@ sub_812F948: @ 812F948
ldrb r1, [r6]
adds r0, r5, 0
bl StartSpriteAffineAnim
- ldr r0, _0812F9A4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812F9A4 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -7260,7 +7260,7 @@ sub_812F948: @ 812F948
negs r0, r0
strh r0, [r6, 0x2]
_0812F96E:
- ldr r4, _0812F9A8 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _0812F9A8 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -7284,8 +7284,8 @@ _0812F96E:
bx r0
.align 2, 0
_0812F9A0: .4byte gBattleAnimArgs
-_0812F9A4: .4byte gBattleAnimEnemyMonIndex
-_0812F9A8: .4byte gBattleAnimPlayerMonIndex
+_0812F9A4: .4byte gBattleAnimBankTarget
+_0812F9A8: .4byte gBattleAnimBankAttacker
_0812F9AC: .4byte sub_80DA48C
thumb_func_end sub_812F948
@@ -7674,7 +7674,7 @@ sub_812FC68: @ 812FC68
mov r1, r8
adds r4, r0, r1
ldr r1, _0812FCCC @ =gObjectBankIDs
- ldr r2, _0812FCD0 @ =gBattleAnimPlayerMonIndex
+ ldr r2, _0812FCD0 @ =gBattleAnimBankAttacker
ldrb r0, [r2]
adds r0, r1
ldrb r0, [r0]
@@ -7711,7 +7711,7 @@ _0812FCAC:
.align 2, 0
_0812FCC8: .4byte gTasks
_0812FCCC: .4byte gObjectBankIDs
-_0812FCD0: .4byte gBattleAnimPlayerMonIndex
+_0812FCD0: .4byte gBattleAnimBankAttacker
_0812FCD4: .4byte gBattleAnimArgs
_0812FCD8: .4byte 0xffff8000
_0812FCDC:
@@ -7822,14 +7822,14 @@ _0812FD9C:
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0812FDC0
- ldr r0, _0812FDBC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812FDBC @ =gBattleAnimBankAttacker
b _0812FDC2
.align 2, 0
_0812FDB4: .4byte gTasks
_0812FDB8: .4byte gBattleAnimArgs
-_0812FDBC: .4byte gBattleAnimPlayerMonIndex
+_0812FDBC: .4byte gBattleAnimBankAttacker
_0812FDC0:
- ldr r0, _0812FE10 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812FE10 @ =gBattleAnimBankTarget
_0812FDC2:
ldrb r4, [r0]
adds r0, r4, 0
@@ -7851,7 +7851,7 @@ _0812FDC2:
strh r0, [r5, 0x14]
ldr r0, _0812FE14 @ =gBattleAnimArgs
ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -7865,7 +7865,7 @@ _0812FDC2:
pop {r0}
bx r0
.align 2, 0
-_0812FE10: .4byte gBattleAnimEnemyMonIndex
+_0812FE10: .4byte gBattleAnimBankTarget
_0812FE14: .4byte gBattleAnimArgs
_0812FE18: .4byte gUnknown_084028AC
_0812FE1C: .4byte sub_812FE20
@@ -8124,7 +8124,7 @@ sub_812FFE4: @ 812FFE4
ldrh r0, [r1, 0x2]
strh r0, [r4, 0xA]
ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, _08130034 @ =gSprites
@@ -8215,7 +8215,7 @@ sub_81300A4: @ 81300A4
lsrs r0, 24
movs r2, 0xD0
lsls r2, 1
- ldr r1, _081300E0 @ =gBattleAnimPlayerMonIndex
+ ldr r1, _081300E0 @ =gBattleAnimBankAttacker
ldrb r3, [r1]
ldr r1, _081300E4 @ =gBattleAnimArgs
ldrb r1, [r1]
@@ -8238,7 +8238,7 @@ sub_81300A4: @ 81300A4
pop {r0}
bx r0
.align 2, 0
-_081300E0: .4byte gBattleAnimPlayerMonIndex
+_081300E0: .4byte gBattleAnimBankAttacker
_081300E4: .4byte gBattleAnimArgs
_081300E8: .4byte gUnknown_08D2E014
_081300EC: .4byte gUnknown_08D2E170
@@ -8249,7 +8249,7 @@ _081300F0: .4byte gUnknown_08D2E150
sub_81300F4: @ 81300F4
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _0813014C @ =gBattleAnimPlayerMonIndex
+ ldr r6, _0813014C @ =gBattleAnimBankAttacker
ldrb r0, [r6]
bl GetBankSide
lsls r0, 24
@@ -8289,7 +8289,7 @@ _08130110:
strh r0, [r5, 0x30]
b _08130180
.align 2, 0
-_0813014C: .4byte gBattleAnimPlayerMonIndex
+_0813014C: .4byte gBattleAnimBankAttacker
_08130150: .4byte gBattleAnimArgs
_08130154: .4byte 0x0000fd80
_08130158:
@@ -8314,7 +8314,7 @@ _08130172:
lsls r0, 2
strh r0, [r5, 0x2E]
_08130180:
- ldr r0, _081301AC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _081301AC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -8336,7 +8336,7 @@ _081301A0:
pop {r0}
bx r0
.align 2, 0
-_081301AC: .4byte gBattleAnimPlayerMonIndex
+_081301AC: .4byte gBattleAnimBankAttacker
_081301B0: .4byte sub_81301B4
thumb_func_end sub_81300F4
@@ -8403,7 +8403,7 @@ _0813021C:
strh r0, [r6, 0x14]
strh r1, [r6, 0x16]
_08130226:
- ldr r5, _0813025C @ =gBattleAnimPlayerMonIndex
+ ldr r5, _0813025C @ =gBattleAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
lsls r0, 24
@@ -8428,7 +8428,7 @@ _08130254:
adds r0, r4, r0
b _08130284
.align 2, 0
-_0813025C: .4byte gBattleAnimPlayerMonIndex
+_0813025C: .4byte gBattleAnimBankAttacker
_08130260:
ldrb r0, [r5]
movs r1, 0x2
@@ -8449,7 +8449,7 @@ _08130280:
subs r0, r4, r0
_08130284:
strh r0, [r6, 0x1E]
- ldr r5, _081302D8 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _081302D8 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x3
bl sub_8077ABC
@@ -8468,7 +8468,7 @@ _081302A8:
asrs r0, 2
subs r0, r4, r0
strh r0, [r6, 0x20]
- ldr r4, _081302DC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _081302DC @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -8487,8 +8487,8 @@ _081302A8:
pop {r0}
bx r0
.align 2, 0
-_081302D8: .4byte gBattleAnimPlayerMonIndex
-_081302DC: .4byte gBattleAnimEnemyMonIndex
+_081302D8: .4byte gBattleAnimBankAttacker
+_081302DC: .4byte gBattleAnimBankTarget
_081302E0: .4byte sub_81302E4
thumb_func_end sub_81301EC
@@ -8810,7 +8810,7 @@ sub_813051C: @ 813051C
strh r0, [r4, 0x2E]
ldr r1, _0813054C @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _08130550 @ =sub_8078CC0
str r0, [r4, 0x1C]
pop {r4}
@@ -8837,7 +8837,7 @@ sub_8130554: @ 8130554
lsls r0, 3
ldr r1, _08130674 @ =gTasks
adds r7, r0, r1
- ldr r0, _08130678 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08130678 @ =gBattleAnimBankAttacker
mov r10, r0
ldrb r0, [r0]
movs r1, 0x2
@@ -8852,7 +8852,7 @@ sub_8130554: @ 8130554
lsls r0, 24
lsrs r0, 24
strh r0, [r7, 0x20]
- ldr r0, _0813067C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0813067C @ =gBattleAnimBankTarget
mov r8, r0
ldrb r0, [r0]
movs r1, 0x2
@@ -8962,8 +8962,8 @@ _0813066E:
b _08130696
.align 2, 0
_08130674: .4byte gTasks
-_08130678: .4byte gBattleAnimPlayerMonIndex
-_0813067C: .4byte gBattleAnimEnemyMonIndex
+_08130678: .4byte gBattleAnimBankAttacker
+_0813067C: .4byte gBattleAnimBankTarget
_08130680: .4byte gSpriteTemplate_84029AC
_08130684: .4byte gSprites
_08130688: .4byte 0x0000ffe0
@@ -9129,13 +9129,13 @@ sub_81307B0: @ 81307B0
adds r6, r0, 0
cmp r1, 0
bne _081307CC
- ldr r0, _081307C8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _081307C8 @ =gBattleAnimBankAttacker
b _081307CE
.align 2, 0
_081307C4: .4byte gBattleAnimArgs
-_081307C8: .4byte gBattleAnimPlayerMonIndex
+_081307C8: .4byte gBattleAnimBankAttacker
_081307CC:
- ldr r0, _08130834 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _08130834 @ =gBattleAnimBankTarget
_081307CE:
ldrb r5, [r0]
ldrh r2, [r4, 0x4]
@@ -9188,7 +9188,7 @@ _081307FC:
subs r0, 0x8
b _0813084A
.align 2, 0
-_08130834: .4byte gBattleAnimEnemyMonIndex
+_08130834: .4byte gBattleAnimBankTarget
_08130838: .4byte 0x000003ff
_0813083C: .4byte 0xfffffc00
_08130840:
@@ -9337,7 +9337,7 @@ _08130934:
ldrh r0, [r2, 0x2]
strh r0, [r4, 0x8]
ldrb r0, [r2]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -9461,13 +9461,13 @@ sub_8130A2C: @ 8130A2C
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08130A48
- ldr r4, _08130A44 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _08130A44 @ =gBattleAnimBankAttacker
b _08130A4A
.align 2, 0
_08130A40: .4byte gBattleAnimArgs
-_08130A44: .4byte gBattleAnimPlayerMonIndex
+_08130A44: .4byte gBattleAnimBankAttacker
_08130A48:
- ldr r4, _08130A88 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _08130A88 @ =gBattleAnimBankTarget
_08130A4A:
ldrb r0, [r4]
movs r1, 0x2
@@ -9500,7 +9500,7 @@ _08130A6E:
pop {r0}
bx r0
.align 2, 0
-_08130A88: .4byte gBattleAnimEnemyMonIndex
+_08130A88: .4byte gBattleAnimBankTarget
_08130A8C: .4byte gBattleAnimArgs
_08130A90: .4byte sub_8130A94
thumb_func_end sub_8130A2C
@@ -9859,7 +9859,7 @@ sub_8130D20: @ 8130D20
ldr r0, _08130D7C @ =gTasks
adds r6, r1, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x26]
@@ -9872,7 +9872,7 @@ sub_8130D20: @ 8130D20
lsrs r7, r0, 24
cmp r7, 0x1
bne _08130D8C
- ldr r5, _08130D80 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _08130D80 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -9892,14 +9892,14 @@ sub_8130D20: @ 8130D20
b _08130DAC
.align 2, 0
_08130D7C: .4byte gTasks
-_08130D80: .4byte gBattleAnimPlayerMonIndex
+_08130D80: .4byte gBattleAnimBankAttacker
_08130D84:
ldr r0, _08130D88 @ =0x0000ffff
b _08130DAA
.align 2, 0
_08130D88: .4byte 0x0000ffff
_08130D8C:
- ldr r0, _08130DA0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08130DA0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -9908,7 +9908,7 @@ _08130D8C:
ldr r0, _08130DA4 @ =0x0000ffff
b _08130DAA
.align 2, 0
-_08130DA0: .4byte gBattleAnimPlayerMonIndex
+_08130DA0: .4byte gBattleAnimBankAttacker
_08130DA4: .4byte 0x0000ffff
_08130DA8:
movs r0, 0x1
@@ -10153,13 +10153,13 @@ sub_8130F5C: @ 8130F5C
adds r0, r4, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _08130F7C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08130F7C @ =gBattleAnimBankAttacker
b _08130F82
.align 2, 0
_08130F78: .4byte gBattleAnimArgs
-_08130F7C: .4byte gBattleAnimPlayerMonIndex
+_08130F7C: .4byte gBattleAnimBankAttacker
_08130F80:
- ldr r0, _08130FD8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _08130FD8 @ =gBattleAnimBankTarget
_08130F82:
ldrb r0, [r0]
strh r0, [r4, 0x3C]
@@ -10204,7 +10204,7 @@ _08130FA6:
pop {r0}
bx r0
.align 2, 0
-_08130FD8: .4byte gBattleAnimEnemyMonIndex
+_08130FD8: .4byte gBattleAnimBankTarget
_08130FDC: .4byte sub_8130FE0
thumb_func_end sub_8130F5C
@@ -10545,7 +10545,7 @@ _08131260: .4byte gSpriteTemplate_8402500
sub_8131264: @ 8131264
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _081312A0 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _081312A0 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -10571,7 +10571,7 @@ _08131290:
subs r1, r0
b _081312B6
.align 2, 0
-_081312A0: .4byte gBattleAnimEnemyMonIndex
+_081312A0: .4byte gBattleAnimBankTarget
_081312A4: .4byte gBattleAnimArgs
_081312A8:
ldr r2, _081312DC @ =gBattleAnimArgs
@@ -10615,7 +10615,7 @@ sub_81312E4: @ 81312E4
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r5, r0, 24
adds r2, r5, 0
@@ -10686,7 +10686,7 @@ _08131378:
.align 2, 0
_08131380: .4byte gSprites
_08131384:
- ldr r4, _081313F4 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _081313F4 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl refresh_graphics_maybe
@@ -10743,7 +10743,7 @@ _081313E8:
pop {r0}
bx r0
.align 2, 0
-_081313F4: .4byte gBattleAnimPlayerMonIndex
+_081313F4: .4byte gBattleAnimBankAttacker
_081313F8: .4byte gSprites
_081313FC: .4byte gObjectBankIDs
_08131400: .4byte gSpriteAffineAnimTable_81E7C18
@@ -10756,7 +10756,7 @@ sub_8131408: @ 8131408
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r3, r0, 24
ldr r1, _08131434 @ =gTasks
@@ -10932,7 +10932,7 @@ _08131560: .4byte gSprites
sub_8131564: @ 8131564
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _08131588 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _08131588 @ =gBattleAnimBankTarget
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -10947,7 +10947,7 @@ sub_8131564: @ 8131564
ldr r4, _0813158C @ =0x0000ff70
b _081315A0
.align 2, 0
-_08131588: .4byte gBattleAnimEnemyMonIndex
+_08131588: .4byte gBattleAnimBankTarget
_0813158C: .4byte 0x0000ff70
_08131590:
ldrb r0, [r4]
@@ -10958,7 +10958,7 @@ _08131590:
strb r0, [r1]
ldr r4, _081315BC @ =0x0000ffa0
_081315A0:
- ldr r0, _081315C0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _081315C0 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x3
bl sub_8077ABC
@@ -10973,7 +10973,7 @@ _081315A0:
bx r0
.align 2, 0
_081315BC: .4byte 0x0000ffa0
-_081315C0: .4byte gBattleAnimEnemyMonIndex
+_081315C0: .4byte gBattleAnimBankTarget
_081315C4: .4byte sub_81315C8
thumb_func_end sub_8131564
@@ -11474,7 +11474,7 @@ _0813197C:
.4byte _08131DC4
_08131990:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r7, r0, 24
ldr r1, _081319DC @ =gTasks
@@ -11489,7 +11489,7 @@ _08131990:
ldrh r1, [r6, 0xA]
adds r0, r1
strh r0, [r6, 0xA]
- ldr r0, _081319E0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _081319E0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11510,7 +11510,7 @@ _08131990:
b _08131A02
.align 2, 0
_081319DC: .4byte gTasks
-_081319E0: .4byte gBattleAnimPlayerMonIndex
+_081319E0: .4byte gBattleAnimBankAttacker
_081319E4: .4byte gSprites
_081319E8:
ldr r3, _08131A3C @ =gSprites
@@ -11570,7 +11570,7 @@ _08131A44:
ldr r3, [r0, 0xC]
mov r9, r3
ldrh r5, [r0]
- ldr r0, _08131A70 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08131A70 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079E90
lsls r0, 24
@@ -11579,9 +11579,9 @@ _08131A44:
b _08131B92
.align 2, 0
_08131A6C: .4byte 0x02019348
-_08131A70: .4byte gBattleAnimPlayerMonIndex
+_08131A70: .4byte gBattleAnimBankAttacker
_08131A74:
- ldr r4, _08131AD4 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _08131AD4 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -11626,7 +11626,7 @@ _08131A74:
lsrs r5, r0, 16
b _08131AE6
.align 2, 0
-_08131AD4: .4byte gBattleAnimPlayerMonIndex
+_08131AD4: .4byte gBattleAnimBankAttacker
_08131AD8: .4byte gBattlePartyID
_08131ADC: .4byte gPlayerParty
_08131AE0: .4byte 0x02017800
@@ -11634,7 +11634,7 @@ _08131AE4:
ldrh r5, [r1, 0x2]
_08131AE6:
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, _08131B0C @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -11700,7 +11700,7 @@ _08131B70:
ldrh r5, [r1, 0x2]
_08131B72:
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, _08131C04 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -11717,7 +11717,7 @@ _08131B72:
_08131B92:
ldr r6, _08131C08 @ =0x0000ffe0
_08131B94:
- ldr r0, _08131C0C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _08131C0C @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x1
bl sub_8077ABC
@@ -11737,7 +11737,7 @@ _08131B94:
bl sub_8079F44
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _08131C10 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08131C10 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
lsls r0, 2
ldr r1, _08131C14 @ =0x02017800
@@ -11773,8 +11773,8 @@ _08131BF2:
.align 2, 0
_08131C04: .4byte gSprites
_08131C08: .4byte 0x0000ffe0
-_08131C0C: .4byte gBattleAnimEnemyMonIndex
-_08131C10: .4byte gBattleAnimPlayerMonIndex
+_08131C0C: .4byte gBattleAnimBankTarget
+_08131C10: .4byte gBattleAnimBankAttacker
_08131C14: .4byte 0x02017800
_08131C18: .4byte 0x00007fff
_08131C1C: .4byte gTasks
@@ -11794,7 +11794,7 @@ _08131C20:
ldrh r2, [r6, 0xA]
adds r0, r2
strh r0, [r6, 0xA]
- ldr r0, _08131C70 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08131C70 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11817,7 +11817,7 @@ _08131C20:
b _08131C8E
.align 2, 0
_08131C6C: .4byte gTasks
-_08131C70: .4byte gBattleAnimPlayerMonIndex
+_08131C70: .4byte gBattleAnimBankAttacker
_08131C74: .4byte gSprites
_08131C78:
ldr r2, _08131CDC @ =gSprites
@@ -11851,7 +11851,7 @@ _08131C8E:
ldrsh r0, [r6, r1]
cmp r0, 0
bne _08131D0E
- ldr r0, _08131CE4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08131CE4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11859,7 +11859,7 @@ _08131C8E:
bne _08131CEC
lsls r4, r5, 16
asrs r4, 16
- ldr r0, _08131CE8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _08131CE8 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0
bl sub_8077ABC
@@ -11871,12 +11871,12 @@ _08131C8E:
.align 2, 0
_08131CDC: .4byte gSprites
_08131CE0: .4byte gTasks
-_08131CE4: .4byte gBattleAnimPlayerMonIndex
-_08131CE8: .4byte gBattleAnimEnemyMonIndex
+_08131CE4: .4byte gBattleAnimBankAttacker
+_08131CE8: .4byte gBattleAnimBankTarget
_08131CEC:
lsls r4, r5, 16
asrs r4, 16
- ldr r0, _08131D30 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _08131D30 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0
bl sub_8077ABC
@@ -11911,13 +11911,13 @@ _08131D20:
strh r0, [r1, 0xA]
b _08131DB6
.align 2, 0
-_08131D30: .4byte gBattleAnimEnemyMonIndex
+_08131D30: .4byte gBattleAnimBankTarget
_08131D34: .4byte gBattleAnimArgs
_08131D38: .4byte 0x0000ffff
_08131D3C: .4byte gTasks
_08131D40:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r7, r0, 24
ldr r1, _08131D8C @ =gTasks
@@ -11935,7 +11935,7 @@ _08131D40:
ldr r5, _08131D90 @ =gSprites
adds r0, r5
bl sub_807A0F4
- ldr r0, _08131D94 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08131D94 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11954,7 +11954,7 @@ _08131D40:
.align 2, 0
_08131D8C: .4byte gTasks
_08131D90: .4byte gSprites
-_08131D94: .4byte gBattleAnimPlayerMonIndex
+_08131D94: .4byte gBattleAnimBankAttacker
_08131D98:
lsls r0, r7, 4
adds r0, r7
@@ -11981,7 +11981,7 @@ _08131DB6:
_08131DC0: .4byte gTasks
_08131DC4:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r7, r0, 24
ldr r1, _08131E38 @ =gTasks
@@ -11996,7 +11996,7 @@ _08131DC4:
ldrh r3, [r2, 0xA]
adds r0, r3
strh r0, [r2, 0xA]
- ldr r0, _08131E3C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08131E3C @ =gBattleAnimBankAttacker
mov r10, r0
ldrb r0, [r0]
str r2, [sp, 0x10]
@@ -12036,7 +12036,7 @@ _08131DC4:
b _08131E7C
.align 2, 0
_08131E38: .4byte gTasks
-_08131E3C: .4byte gBattleAnimPlayerMonIndex
+_08131E3C: .4byte gBattleAnimBankAttacker
_08131E40: .4byte gSprites
_08131E44:
ldr r1, _08131EB0 @ =gSprites
@@ -12124,7 +12124,7 @@ _08131ECA:
asrs r1, 24
movs r0, 0x7A
bl PlaySE12WithPanning
- ldr r0, _08131F54 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _08131F54 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x1
bl sub_8077ABC
@@ -12144,7 +12144,7 @@ _08131ECA:
negs r0, r0
ands r0, r1
strb r0, [r2]
- ldr r0, _08131F5C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08131F5C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -12156,7 +12156,7 @@ _08131ECA:
cmp r0, 0
bne _08131FF4
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, _08131F60 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -12173,9 +12173,9 @@ _08131ECA:
b _08131FF4
.align 2, 0
_08131F50: .4byte gBattleAnimArgs
-_08131F54: .4byte gBattleAnimEnemyMonIndex
+_08131F54: .4byte gBattleAnimBankTarget
_08131F58: .4byte 0x0000ffe0
-_08131F5C: .4byte gBattleAnimPlayerMonIndex
+_08131F5C: .4byte gBattleAnimBankAttacker
_08131F60: .4byte gSprites
_08131F64:
adds r0, r4, 0
@@ -12218,7 +12218,7 @@ _08131FA6:
ldrh r1, [r4, 0x32]
adds r0, r1
strh r0, [r4, 0x32]
- ldr r0, _08131FD0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08131FD0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -12233,7 +12233,7 @@ _08131FA6:
adds r1, r2, 0
b _08131FE0
.align 2, 0
-_08131FD0: .4byte gBattleAnimPlayerMonIndex
+_08131FD0: .4byte gBattleAnimBankAttacker
_08131FD4:
ldrh r1, [r4, 0x32]
lsls r0, r1, 16
@@ -12290,14 +12290,14 @@ _0813202C:
.4byte _08132104
.4byte _0813216A
_08132040:
- ldr r0, _08132084 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08132084 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
movs r1, 0
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
- ldr r0, _08132088 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _08132088 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0
bl sub_8077ABC
@@ -12323,12 +12323,12 @@ _08132076:
strh r0, [r1, 0x26]
b _08132188
.align 2, 0
-_08132084: .4byte gBattleAnimPlayerMonIndex
-_08132088: .4byte gBattleAnimEnemyMonIndex
+_08132084: .4byte gBattleAnimBankAttacker
+_08132088: .4byte gBattleAnimBankTarget
_0813208C: .4byte gTasks
_08132090:
ldr r1, _081320CC @ =gObjectBankIDs
- ldr r0, _081320D0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _081320D0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
@@ -12359,7 +12359,7 @@ _08132090:
b _0813215E
.align 2, 0
_081320CC: .4byte gObjectBankIDs
-_081320D0: .4byte gBattleAnimPlayerMonIndex
+_081320D0: .4byte gBattleAnimBankAttacker
_081320D4: .4byte gSprites
_081320D8:
movs r3, 0x20
@@ -12387,7 +12387,7 @@ _081320EC:
b _08132188
_08132104:
ldr r1, _08132144 @ =gObjectBankIDs
- ldr r0, _08132148 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08132148 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
@@ -12420,7 +12420,7 @@ _08132104:
b _08132162
.align 2, 0
_08132144: .4byte gObjectBankIDs
-_08132148: .4byte gBattleAnimPlayerMonIndex
+_08132148: .4byte gBattleAnimBankAttacker
_0813214C: .4byte gSprites
_08132150:
movs r3, 0x20
@@ -12440,7 +12440,7 @@ _08132162:
b _08132188
_0813216A:
ldr r1, _08132190 @ =gObjectBankIDs
- ldr r0, _08132194 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08132194 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
@@ -12459,7 +12459,7 @@ _08132188:
bx r0
.align 2, 0
_08132190: .4byte gObjectBankIDs
-_08132194: .4byte gBattleAnimPlayerMonIndex
+_08132194: .4byte gBattleAnimBankAttacker
_08132198: .4byte gSprites
thumb_func_end sub_8131FFC
@@ -12474,12 +12474,12 @@ sub_813219C: @ 813219C
ldr r0, _08132204 @ =gTasks
adds r4, r1, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
movs r5, 0
strh r0, [r4, 0xE]
- ldr r0, _08132208 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08132208 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -12518,7 +12518,7 @@ _081321D0:
bx r0
.align 2, 0
_08132204: .4byte gTasks
-_08132208: .4byte gBattleAnimPlayerMonIndex
+_08132208: .4byte gBattleAnimBankAttacker
_0813220C: .4byte gSprites
_08132210: .4byte sub_8132214
thumb_func_end sub_813219C
@@ -12662,7 +12662,7 @@ _08132312:
sub_8132318: @ 8132318
push {r4,lr}
adds r4, r0, 0
- ldr r0, _0813236C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0813236C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -12699,14 +12699,14 @@ _0813235E:
pop {r0}
bx r0
.align 2, 0
-_0813236C: .4byte gBattleAnimEnemyMonIndex
+_0813236C: .4byte gBattleAnimBankTarget
thumb_func_end sub_8132318
thumb_func_start sub_8132370
sub_8132370: @ 8132370
push {r4,lr}
adds r4, r0, 0
- ldr r0, _081323A8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _081323A8 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -12730,7 +12730,7 @@ sub_8132370: @ 8132370
bl StartSpriteAffineAnim
b _081323CE
.align 2, 0
-_081323A8: .4byte gBattleAnimEnemyMonIndex
+_081323A8: .4byte gBattleAnimBankTarget
_081323AC: .4byte gBattleAnimArgs
_081323B0: .4byte 0x0000fff5
_081323B4:
@@ -12762,7 +12762,7 @@ _081323DC: .4byte sub_8132318
sub_81323E0: @ 81323E0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _08132424 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _08132424 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -12793,7 +12793,7 @@ _0813240A:
pop {r0}
bx r0
.align 2, 0
-_08132424: .4byte gBattleAnimPlayerMonIndex
+_08132424: .4byte gBattleAnimBankAttacker
_08132428: .4byte sub_8132430
_0813242C: .4byte REG_BLDALPHA
thumb_func_end sub_81323E0
@@ -12997,7 +12997,7 @@ sub_813257C: @ 813257C
strh r0, [r4, 0x8]
ldr r0, _081325B8 @ =gBattleAnimArgs
ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
diff --git a/asm/battle_anim_813F0F4.s b/asm/battle_anim_813F0F4.s
index a5ab2fb83..ab8a222df 100644
--- a/asm/battle_anim_813F0F4.s
+++ b/asm/battle_anim_813F0F4.s
@@ -17,7 +17,7 @@ unref_sub_813F0F4: @ 813F0F4
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x10]
- ldr r0, _0813F2AC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0813F2AC @ =gBattleAnimBankAttacker
ldrb r3, [r0]
ldr r0, _0813F2B0 @ =gUnknown_030042C4
movs r1, 0
@@ -220,7 +220,7 @@ unref_sub_813F0F4: @ 813F0F4
pop {r0}
bx r0
.align 2, 0
-_0813F2AC: .4byte gBattleAnimPlayerMonIndex
+_0813F2AC: .4byte gBattleAnimBankAttacker
_0813F2B0: .4byte gUnknown_030042C4
_0813F2B4: .4byte gUnknown_03004240
_0813F2B8: .4byte REG_WININ
@@ -252,7 +252,7 @@ sub_813F300: @ 813F300
sub sp, 0x10
lsls r0, 24
lsrs r7, r0, 24
- ldr r0, _0813F34C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0813F34C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
mov r9, r0
ldr r1, _0813F350 @ =gTasks
@@ -284,7 +284,7 @@ sub_813F300: @ 813F300
beq _0813F35E
b _0813F4B2
.align 2, 0
-_0813F34C: .4byte gBattleAnimPlayerMonIndex
+_0813F34C: .4byte gBattleAnimBankAttacker
_0813F350: .4byte gTasks
_0813F354: .4byte gUnknown_030041B4
_0813F358:
@@ -495,7 +495,7 @@ sub_813F4EC: @ 813F4EC
lsrs r0, 24
str r0, [sp]
ldr r1, _0813F5D0 @ =gHealthboxIDs
- ldr r0, _0813F5D4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0813F5D4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -595,7 +595,7 @@ sub_813F4EC: @ 813F4EC
bx r0
.align 2, 0
_0813F5D0: .4byte gHealthboxIDs
-_0813F5D4: .4byte gBattleAnimPlayerMonIndex
+_0813F5D4: .4byte gBattleAnimBankAttacker
_0813F5D8: .4byte gSprites
_0813F5DC: .4byte 0x0000d709
_0813F5E0: .4byte 0x0000d70a
@@ -614,7 +614,7 @@ sub_813F5E8: @ 813F5E8
lsrs r0, 24
mov r8, r0
ldr r1, _0813F684 @ =gHealthboxIDs
- ldr r0, _0813F688 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0813F688 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -678,7 +678,7 @@ sub_813F5E8: @ 813F5E8
bx r0
.align 2, 0
_0813F684: .4byte gHealthboxIDs
-_0813F688: .4byte gBattleAnimPlayerMonIndex
+_0813F688: .4byte gBattleAnimBankAttacker
_0813F68C: .4byte gSprites
_0813F690: .4byte 0x0000d709
_0813F694: .4byte 0x0000d70a
@@ -820,7 +820,7 @@ sub_813F798: @ 813F798
lsls r0, 24
lsrs r6, r0, 24
ldr r1, _0813F7C4 @ =gObjectBankIDs
- ldr r0, _0813F7C8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0813F7C8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r5, [r0]
@@ -840,7 +840,7 @@ sub_813F798: @ 813F798
b _0813F838
.align 2, 0
_0813F7C4: .4byte gObjectBankIDs
-_0813F7C8: .4byte gBattleAnimPlayerMonIndex
+_0813F7C8: .4byte gBattleAnimBankAttacker
_0813F7CC: .4byte gTasks
_0813F7D0:
cmp r0, 0x2
@@ -911,7 +911,7 @@ sub_813F844: @ 813F844
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _0813F87C @ =gObjectBankIDs
- ldr r4, _0813F880 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _0813F880 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
adds r1, r0, r1
ldrb r1, [r1]
@@ -931,7 +931,7 @@ sub_813F844: @ 813F844
b _0813F89C
.align 2, 0
_0813F87C: .4byte gObjectBankIDs
-_0813F880: .4byte gBattleAnimPlayerMonIndex
+_0813F880: .4byte gBattleAnimBankAttacker
_0813F884: .4byte gBattlePartyID
_0813F888: .4byte gPlayerParty
_0813F88C:
@@ -970,7 +970,7 @@ _0813F8CC: .4byte gBattlePartyID
_0813F8D0: .4byte gEnemyParty
_0813F8D4: .4byte gTasks
_0813F8D8:
- ldr r5, _0813F950 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _0813F950 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -1025,7 +1025,7 @@ _0813F8D8:
strh r0, [r6, 0x8]
b _0813F982
.align 2, 0
-_0813F950: .4byte gBattleAnimPlayerMonIndex
+_0813F950: .4byte gBattleAnimBankAttacker
_0813F954: .4byte gSprites
_0813F958:
movs r1, 0x1C
@@ -1235,7 +1235,7 @@ sub_813FA94: @ 813FA94
adds r6, r4, r1
movs r0, 0x22
strh r0, [r6, 0x2E]
- ldr r2, _0813FB64 @ =gBattleAnimEnemyMonIndex
+ ldr r2, _0813FB64 @ =gBattleAnimBankTarget
mov r8, r2
ldrb r0, [r2]
movs r1, 0
@@ -1297,7 +1297,7 @@ sub_813FA94: @ 813FA94
_0813FB58: .4byte gLastUsedItem
_0813FB5C: .4byte gBallSpriteTemplates
_0813FB60: .4byte gSprites
-_0813FB64: .4byte gBattleAnimEnemyMonIndex
+_0813FB64: .4byte gBattleAnimBankTarget
_0813FB68: .4byte sub_813FD90
_0813FB6C: .4byte 0x02017840
_0813FB70: .4byte gObjectBankIDs
@@ -1397,7 +1397,7 @@ _0813FBE0:
adds r6, r4, r0
movs r0, 0x22
strh r0, [r6, 0x2E]
- ldr r1, _0813FCA8 @ =gBattleAnimEnemyMonIndex
+ ldr r1, _0813FCA8 @ =gBattleAnimBankTarget
mov r8, r1
ldrb r0, [r1]
movs r1, 0
@@ -1449,7 +1449,7 @@ _0813FBE0:
_0813FC9C: .4byte gLastUsedItem
_0813FCA0: .4byte gBallSpriteTemplates
_0813FCA4: .4byte gSprites
-_0813FCA8: .4byte gBattleAnimEnemyMonIndex
+_0813FCA8: .4byte gBattleAnimBankTarget
_0813FCAC: .4byte SpriteCallbackDummy
_0813FCB0: .4byte gObjectBankIDs
_0813FCB4: .4byte gTasks
@@ -1652,7 +1652,7 @@ _0813FE10:
movs r2, 0x1
movs r3, 0x1C
bl sub_814086C
- ldr r0, _0813FE6C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0813FE6C @ =gBattleAnimBankTarget
ldrb r1, [r0]
movs r0, 0
movs r2, 0xE
@@ -1666,7 +1666,7 @@ _0813FE5A:
.align 2, 0
_0813FE64: .4byte sub_813FE70
_0813FE68: .4byte gLastUsedItem
-_0813FE6C: .4byte gBattleAnimEnemyMonIndex
+_0813FE6C: .4byte gBattleAnimBankTarget
thumb_func_end sub_813FDC0
thumb_func_start sub_813FE70
@@ -1690,7 +1690,7 @@ sub_813FE70: @ 813FE70
str r0, [r4, 0x1C]
ldr r2, _0813FEBC @ =gSprites
ldr r1, _0813FEC0 @ =gObjectBankIDs
- ldr r0, _0813FEC4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0813FEC4 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -1709,7 +1709,7 @@ _0813FEB4: .4byte TaskDummy
_0813FEB8: .4byte sub_813FEC8
_0813FEBC: .4byte gSprites
_0813FEC0: .4byte gObjectBankIDs
-_0813FEC4: .4byte gBattleAnimEnemyMonIndex
+_0813FEC4: .4byte gBattleAnimBankTarget
thumb_func_end sub_813FE70
thumb_func_start sub_813FEC8
@@ -1717,7 +1717,7 @@ sub_813FEC8: @ 813FEC8
push {r4-r7,lr}
adds r7, r0, 0
ldr r1, _0813FF0C @ =gObjectBankIDs
- ldr r0, _0813FF10 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0813FF10 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r0, r1
ldrb r4, [r0]
@@ -1750,7 +1750,7 @@ _0813FEFA:
b _0813FFDC
.align 2, 0
_0813FF0C: .4byte gObjectBankIDs
-_0813FF10: .4byte gBattleAnimEnemyMonIndex
+_0813FF10: .4byte gBattleAnimBankTarget
_0813FF14: .4byte gTasks
_0813FF18:
cmp r0, 0x2
@@ -2451,7 +2451,7 @@ _08140450: .4byte sub_8140454
sub_8140454: @ 8140454
push {r4-r7,lr}
adds r6, r0, 0
- ldr r7, _08140484 @ =gBattleAnimEnemyMonIndex
+ ldr r7, _08140484 @ =gBattleAnimBankTarget
ldrh r0, [r6, 0x36]
adds r0, 0x1
strh r0, [r6, 0x36]
@@ -2471,7 +2471,7 @@ sub_8140454: @ 8140454
bl PlaySE
b _081404CC
.align 2, 0
-_08140484: .4byte gBattleAnimEnemyMonIndex
+_08140484: .4byte gBattleAnimBankTarget
_08140488: .4byte gDoingBattleAnim
_0814048C: .4byte 0x00000173
_08140490:
@@ -2690,7 +2690,7 @@ sub_81405F4: @ 81405F4
movs r2, 0x1
movs r3, 0x1C
bl sub_814086C
- ldr r0, _081406B0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _081406B0 @ =gBattleAnimBankTarget
ldrb r1, [r0]
movs r0, 0x1
movs r2, 0xE
@@ -2699,7 +2699,7 @@ sub_81405F4: @ 81405F4
_08140646:
ldr r6, _081406B4 @ =gSprites
ldr r5, _081406B8 @ =gObjectBankIDs
- ldr r4, _081406B0 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _081406B0 @ =gBattleAnimBankTarget
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
@@ -2747,7 +2747,7 @@ _08140646:
.align 2, 0
_081406A8: .4byte sub_81406BC
_081406AC: .4byte gLastUsedItem
-_081406B0: .4byte gBattleAnimEnemyMonIndex
+_081406B0: .4byte gBattleAnimBankTarget
_081406B4: .4byte gSprites
_081406B8: .4byte gObjectBankIDs
thumb_func_end sub_81405F4
@@ -2772,7 +2772,7 @@ sub_81406BC: @ 81406BC
_081406DA:
ldr r4, _08140708 @ =gSprites
ldr r3, _0814070C @ =gObjectBankIDs
- ldr r2, _08140710 @ =gBattleAnimEnemyMonIndex
+ ldr r2, _08140710 @ =gBattleAnimBankTarget
ldrb r0, [r2]
adds r0, r3
ldrb r1, [r0]
@@ -2794,7 +2794,7 @@ _081406DA:
.align 2, 0
_08140708: .4byte gSprites
_0814070C: .4byte gObjectBankIDs
-_08140710: .4byte gBattleAnimEnemyMonIndex
+_08140710: .4byte gBattleAnimBankTarget
_08140714:
ldr r6, _0814079C @ =0xfffffee0
adds r0, r6, 0
@@ -2824,7 +2824,7 @@ _08140734:
beq _08140796
ldr r4, _081407A0 @ =gSprites
ldr r3, _081407A4 @ =gObjectBankIDs
- ldr r2, _081407A8 @ =gBattleAnimEnemyMonIndex
+ ldr r2, _081407A8 @ =gBattleAnimBankTarget
ldrb r0, [r2]
adds r0, r3
ldrb r1, [r0]
@@ -2869,7 +2869,7 @@ _08140796:
_0814079C: .4byte 0xfffffee0
_081407A0: .4byte gSprites
_081407A4: .4byte gObjectBankIDs
-_081407A8: .4byte gBattleAnimEnemyMonIndex
+_081407A8: .4byte gBattleAnimBankTarget
_081407AC: .4byte 0x02017840
_081407B0: .4byte sub_81405C8
_081407B4: .4byte gDoingBattleAnim
@@ -4583,7 +4583,7 @@ sub_814151C: @ 814151C
movs r0, 0
mov r8, r0
ldr r0, _08141550 @ =gObjectBankIDs
- ldr r3, _08141554 @ =gBattleAnimPlayerMonIndex
+ ldr r3, _08141554 @ =gBattleAnimBankAttacker
ldrb r2, [r3]
adds r0, r2, r0
ldrb r6, [r0]
@@ -4603,7 +4603,7 @@ sub_814151C: @ 814151C
b _081416B6
.align 2, 0
_08141550: .4byte gObjectBankIDs
-_08141554: .4byte gBattleAnimPlayerMonIndex
+_08141554: .4byte gBattleAnimBankAttacker
_08141558: .4byte gTasks
_0814155C:
cmp r0, 0x2
@@ -4738,7 +4738,7 @@ _08141654:
adds r0, r1
ldrb r1, [r0, 0x8]
strh r1, [r0, 0x8]
- ldr r0, _08141690 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08141690 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4759,7 +4759,7 @@ _08141654:
.align 2, 0
_08141688: .4byte gSprites
_0814168C: .4byte gTasks
-_08141690: .4byte gBattleAnimPlayerMonIndex
+_08141690: .4byte gBattleAnimBankAttacker
_08141694:
ldr r0, _081416C0 @ =gSprites
adds r1, r4, r6
@@ -4816,7 +4816,7 @@ _081416EC:
beq _0814177C
b _081417B8
_081416F2:
- ldr r0, _08141708 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08141708 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -4827,7 +4827,7 @@ _081416F2:
ldr r2, _08141710 @ =0x00003f42
b _08141718
.align 2, 0
-_08141708: .4byte gBattleAnimPlayerMonIndex
+_08141708: .4byte gBattleAnimBankAttacker
_0814170C: .4byte REG_BLDCNT
_08141710: .4byte 0x00003f42
_08141714:
@@ -4884,7 +4884,7 @@ _08141744:
_08141778: .4byte REG_BLDALPHA
_0814177C:
ldr r1, _081417C0 @ =gObjectBankIDs
- ldr r3, _081417C4 @ =gBattleAnimPlayerMonIndex
+ ldr r3, _081417C4 @ =gBattleAnimBankAttacker
ldrb r0, [r3]
adds r0, r1
ldrb r1, [r0]
@@ -4918,7 +4918,7 @@ _081417B8:
bx r0
.align 2, 0
_081417C0: .4byte gObjectBankIDs
-_081417C4: .4byte gBattleAnimPlayerMonIndex
+_081417C4: .4byte gBattleAnimBankAttacker
_081417C8: .4byte gSprites
_081417CC: .4byte 0x06010000
_081417D0: .4byte 0x040000d4
@@ -4931,7 +4931,7 @@ sub_81417D8: @ 81417D8
lsls r0, 24
lsrs r0, 24
ldr r3, _081417FC @ =gBattleAnimArgs
- ldr r1, _08141800 @ =gBattleAnimPlayerMonIndex
+ ldr r1, _08141800 @ =gBattleAnimBankAttacker
ldrb r1, [r1]
lsls r1, 2
ldr r2, _08141804 @ =0x02017800
@@ -4945,7 +4945,7 @@ sub_81417D8: @ 81417D8
bx r0
.align 2, 0
_081417FC: .4byte gBattleAnimArgs
-_08141800: .4byte gBattleAnimPlayerMonIndex
+_08141800: .4byte gBattleAnimBankAttacker
_08141804: .4byte 0x02017800
thumb_func_end sub_81417D8
@@ -4954,7 +4954,7 @@ sub_8141808: @ 8141808
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _08141820 @ =gBattleAnimEnemyMonIndex
+ ldr r2, _08141820 @ =gBattleAnimBankTarget
ldr r1, _08141824 @ =gEffectBank
ldrb r1, [r1]
strb r1, [r2]
@@ -4962,7 +4962,7 @@ sub_8141808: @ 8141808
pop {r0}
bx r0
.align 2, 0
-_08141820: .4byte gBattleAnimEnemyMonIndex
+_08141820: .4byte gBattleAnimBankTarget
_08141824: .4byte gEffectBank
thumb_func_end sub_8141808
@@ -4994,7 +4994,7 @@ sub_8141828: @ 8141828
bl GetMonData
adds r4, r0, 0
adds r0, r6, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _081418FC
@@ -5511,7 +5511,7 @@ sub_8141C30: @ 8141C30
adds r0, r4, 0
bl sub_80786EC
ldr r1, _08141CAC @ =gObjectBankIDs
- ldr r0, _08141CB0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08141CB0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -5531,7 +5531,7 @@ sub_8141C30: @ 8141C30
_08141CA4: .4byte gBattleAnimArgs
_08141CA8: .4byte 0x0000ffe0
_08141CAC: .4byte gObjectBankIDs
-_08141CB0: .4byte gBattleAnimPlayerMonIndex
+_08141CB0: .4byte gBattleAnimBankAttacker
_08141CB4: .4byte gSprites
_08141CB8: .4byte sub_8141CBC
thumb_func_end sub_8141C30
@@ -5542,7 +5542,7 @@ sub_8141CBC: @ 8141CBC
adds r3, r0, 0
ldr r2, _08141CE4 @ =gSprites
ldr r1, _08141CE8 @ =gObjectBankIDs
- ldr r0, _08141CEC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08141CEC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -5562,7 +5562,7 @@ _08141CE0:
.align 2, 0
_08141CE4: .4byte gSprites
_08141CE8: .4byte gObjectBankIDs
-_08141CEC: .4byte gBattleAnimPlayerMonIndex
+_08141CEC: .4byte gBattleAnimBankAttacker
_08141CF0: .4byte sub_8141CF4
thumb_func_end sub_8141CBC
@@ -5598,7 +5598,7 @@ sub_8141D20: @ 8141D20
adds r4, r0, 0
ldr r5, _08141D70 @ =gSprites
ldr r3, _08141D74 @ =gObjectBankIDs
- ldr r2, _08141D78 @ =gBattleAnimPlayerMonIndex
+ ldr r2, _08141D78 @ =gBattleAnimBankAttacker
ldrb r0, [r2]
adds r0, r3
ldrb r1, [r0]
@@ -5635,7 +5635,7 @@ _08141D68:
.align 2, 0
_08141D70: .4byte gSprites
_08141D74: .4byte gObjectBankIDs
-_08141D78: .4byte gBattleAnimPlayerMonIndex
+_08141D78: .4byte gBattleAnimBankAttacker
thumb_func_end sub_8141D20
thumb_func_start sub_8141D7C
@@ -5646,11 +5646,11 @@ sub_8141D7C: @ 8141D7C
lsrs r4, 24
movs r0, 0
bl GetBankByPlayerAI
- ldr r1, _08141DA4 @ =gBattleAnimPlayerMonIndex
+ ldr r1, _08141DA4 @ =gBattleAnimBankAttacker
strb r0, [r1]
movs r0, 0x1
bl GetBankByPlayerAI
- ldr r1, _08141DA8 @ =gBattleAnimEnemyMonIndex
+ ldr r1, _08141DA8 @ =gBattleAnimBankTarget
strb r0, [r1]
adds r0, r4, 0
bl DestroyAnimVisualTask
@@ -5658,8 +5658,8 @@ sub_8141D7C: @ 8141D7C
pop {r0}
bx r0
.align 2, 0
-_08141DA4: .4byte gBattleAnimPlayerMonIndex
-_08141DA8: .4byte gBattleAnimEnemyMonIndex
+_08141DA4: .4byte gBattleAnimBankAttacker
+_08141DA8: .4byte gBattleAnimBankTarget
thumb_func_end sub_8141D7C
thumb_func_start sub_8141DAC
@@ -5721,20 +5721,20 @@ sub_8141E10: @ 8141E10
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _08141E2C @ =gBattleAnimPlayerMonIndex
+ ldr r2, _08141E2C @ =gBattleAnimBankAttacker
ldr r1, _08141E30 @ =0x02017840
ldrh r1, [r1]
strb r1, [r2]
- ldr r2, _08141E34 @ =gBattleAnimEnemyMonIndex
+ ldr r2, _08141E34 @ =gBattleAnimBankTarget
lsrs r1, 8
strb r1, [r2]
bl DestroyAnimVisualTask
pop {r0}
bx r0
.align 2, 0
-_08141E2C: .4byte gBattleAnimPlayerMonIndex
+_08141E2C: .4byte gBattleAnimBankAttacker
_08141E30: .4byte 0x02017840
-_08141E34: .4byte gBattleAnimEnemyMonIndex
+_08141E34: .4byte gBattleAnimBankTarget
thumb_func_end sub_8141E10
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_message.s b/asm/battle_message.s
deleted file mode 100644
index badbf2b7d..000000000
--- a/asm/battle_message.s
+++ /dev/null
@@ -1,2403 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start BufferStringBattle
-BufferStringBattle: @ 8120AA8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r7, r0, 16
- movs r6, 0
- ldr r5, _08120B70 @ =gSelectedOrderFromParty
- ldr r4, _08120B74 @ =gActiveBank
- ldrb r1, [r4]
- lsls r1, 9
- ldr r0, _08120B78 @ =gUnknown_02023A64
- adds r1, r0
- str r1, [r5]
- ldr r2, _08120B7C @ =gLastUsedItem
- ldrh r0, [r1, 0x4]
- strh r0, [r2]
- ldr r2, _08120B80 @ =gLastUsedAbility
- ldrb r0, [r1, 0x6]
- strb r0, [r2]
- ldr r3, _08120B84 @ =0x02000000
- ldrb r0, [r1, 0x7]
- mov r8, r0
- ldr r2, _08120B88 @ =0x00016003
- adds r0, r3, r2
- mov r2, r8
- strb r2, [r0]
- ldrb r0, [r1, 0x8]
- mov r8, r0
- ldr r2, _08120B8C @ =0x0001605e
- adds r0, r3, r2
- mov r2, r8
- strb r2, [r0]
- ldrb r0, [r1, 0x9]
- mov r8, r0
- ldr r2, _08120B90 @ =0x000160c1
- adds r0, r3, r2
- mov r2, r8
- strb r2, [r0]
- ldr r2, _08120B94 @ =gStringBank
- ldrb r0, [r1, 0xA]
- strb r0, [r2]
- ldrb r1, [r1, 0xB]
- ldr r2, _08120B98 @ =0x000160a0
- adds r0, r3, r2
- strb r1, [r0]
- movs r2, 0
- mov r9, r3
- ldr r3, _08120B9C @ =gBattleTextBuff1
- mov r10, r3
- ldr r3, _08120BA0 @ =gAbilitiesPerBank
-_08120B10:
- adds r0, r2, r3
- ldr r1, [r5]
- adds r1, 0xC
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x3
- ble _08120B10
- movs r2, 0
- ldr r0, _08120B9C @ =gBattleTextBuff1
- mov r8, r0
- ldr r3, _08120B70 @ =gSelectedOrderFromParty
- ldr r1, _08120BA4 @ =gBattleTextBuff2
- mov r12, r1
- ldr r5, _08120BA8 @ =gBattleTextBuff3
-_08120B30:
- mov r0, r8
- adds r1, r2, r0
- ldr r0, [r3]
- adds r0, 0x10
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- mov r0, r12
- adds r1, r2, r0
- ldr r0, [r3]
- adds r0, 0x20
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r2, r5
- ldr r0, [r3]
- adds r0, 0x30
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0xF
- ble _08120B30
- cmp r7, 0x5
- bls _08120B64
- b _08120F50
-_08120B64:
- lsls r0, r7, 2
- ldr r1, _08120BAC @ =_08120BB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08120B70: .4byte gSelectedOrderFromParty
-_08120B74: .4byte gActiveBank
-_08120B78: .4byte gUnknown_02023A64
-_08120B7C: .4byte gLastUsedItem
-_08120B80: .4byte gLastUsedAbility
-_08120B84: .4byte 0x02000000
-_08120B88: .4byte 0x00016003
-_08120B8C: .4byte 0x0001605e
-_08120B90: .4byte 0x000160c1
-_08120B94: .4byte gStringBank
-_08120B98: .4byte 0x000160a0
-_08120B9C: .4byte gBattleTextBuff1
-_08120BA0: .4byte gAbilitiesPerBank
-_08120BA4: .4byte gBattleTextBuff2
-_08120BA8: .4byte gBattleTextBuff3
-_08120BAC: .4byte _08120BB0
- .align 2, 0
-_08120BB0:
- .4byte _08120BC8
- .4byte _08120C40
- .4byte _08120CCC
- .4byte _08120D5C
- .4byte _08120DE8
- .4byte _08120E50
-_08120BC8:
- ldr r0, _08120BEC @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08120C00
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08120BF8
- movs r0, 0x40
- ands r0, r1
- ldr r6, _08120BF0 @ =gUnknown_084005C7
- cmp r0, 0
- bne _08120BE8
- b _08120F70
-_08120BE8:
- ldr r6, _08120BF4 @ =gUnknown_084005DB
- b _08120F70
- .align 2, 0
-_08120BEC: .4byte gBattleTypeFlags
-_08120BF0: .4byte gUnknown_084005C7
-_08120BF4: .4byte gUnknown_084005DB
-_08120BF8:
- ldr r6, _08120BFC @ =gUnknown_084005AA
- b _08120F70
- .align 2, 0
-_08120BFC: .4byte gUnknown_084005AA
-_08120C00:
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _08120C14
- ldr r6, _08120C10 @ =gUnknown_08400568
- b _08120F70
- .align 2, 0
-_08120C10: .4byte gUnknown_08400568
-_08120C14:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08120C24
- ldr r6, _08120C20 @ =gUnknown_08400590
- b _08120F70
- .align 2, 0
-_08120C20: .4byte gUnknown_08400590
-_08120C24:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- ldr r6, _08120C38 @ =gUnknown_08400555
- cmp r0, 0
- bne _08120C32
- b _08120F70
-_08120C32:
- ldr r6, _08120C3C @ =gUnknown_0840057B
- b _08120F70
- .align 2, 0
-_08120C38: .4byte gUnknown_08400555
-_08120C3C: .4byte gUnknown_0840057B
-_08120C40:
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08120C7C
- ldr r0, _08120C68 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08120C74
- movs r0, 0x40
- ands r0, r1
- ldr r6, _08120C6C @ =gUnknown_084006A4
- cmp r0, 0
- bne _08120C64
- b _08120F70
-_08120C64:
- ldr r6, _08120C70 @ =gUnknown_084006F1
- b _08120F70
- .align 2, 0
-_08120C68: .4byte gBattleTypeFlags
-_08120C6C: .4byte gUnknown_084006A4
-_08120C70: .4byte gUnknown_084006F1
-_08120C74:
- ldr r6, _08120C78 @ =gUnknown_0840069C
- b _08120F70
- .align 2, 0
-_08120C78: .4byte gUnknown_0840069C
-_08120C7C:
- ldr r0, _08120C94 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08120CB4
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08120C9C
- ldr r6, _08120C98 @ =gUnknown_0840065C
- b _08120F70
- .align 2, 0
-_08120C94: .4byte gBattleTypeFlags
-_08120C98: .4byte gUnknown_0840065C
-_08120C9C:
- movs r0, 0x2
- ands r0, r1
- ldr r6, _08120CAC @ =gUnknown_08400608
- cmp r0, 0
- bne _08120CA8
- b _08120F70
-_08120CA8:
- ldr r6, _08120CB0 @ =gUnknown_08400645
- b _08120F70
- .align 2, 0
-_08120CAC: .4byte gUnknown_08400608
-_08120CB0: .4byte gUnknown_08400645
-_08120CB4:
- movs r0, 0x2
- ands r0, r1
- ldr r6, _08120CC4 @ =gUnknown_084005F5
- cmp r0, 0
- bne _08120CC0
- b _08120F70
-_08120CC0:
- ldr r6, _08120CC8 @ =gUnknown_08400635
- b _08120F70
- .align 2, 0
-_08120CC4: .4byte gUnknown_084005F5
-_08120CC8: .4byte gUnknown_08400635
-_08120CCC:
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08120D24
- ldr r0, _08120CE8 @ =0x02000000
- ldr r1, _08120CEC @ =0x000160c1
- adds r0, r1
- ldrb r2, [r0]
- cmp r2, 0
- bne _08120CF4
- ldr r6, _08120CF0 @ =gUnknown_08400709
- b _08120F70
- .align 2, 0
-_08120CE8: .4byte 0x02000000
-_08120CEC: .4byte 0x000160c1
-_08120CF0: .4byte gUnknown_08400709
-_08120CF4:
- cmp r2, 0x1
- beq _08120D04
- ldr r0, _08120D08 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08120D10
-_08120D04:
- ldr r6, _08120D0C @ =gUnknown_08400727
- b _08120F70
- .align 2, 0
-_08120D08: .4byte gBattleTypeFlags
-_08120D0C: .4byte gUnknown_08400727
-_08120D10:
- ldr r6, _08120D1C @ =gUnknown_08400749
- cmp r2, 0x2
- beq _08120D18
- b _08120F70
-_08120D18:
- ldr r6, _08120D20 @ =gUnknown_08400736
- b _08120F70
- .align 2, 0
-_08120D1C: .4byte gUnknown_08400749
-_08120D20: .4byte gUnknown_08400736
-_08120D24:
- ldr r0, _08120D44 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 4
- cmp r1, r0
- bne _08120D54
- ldr r0, _08120D48 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- ldr r6, _08120D4C @ =gUnknown_08400771
- cmp r0, 0
- bne _08120D40
- b _08120F70
-_08120D40:
- ldr r6, _08120D50 @ =gUnknown_08400781
- b _08120F70
- .align 2, 0
-_08120D44: .4byte gTrainerBattleOpponent
-_08120D48: .4byte gBattleTypeFlags
-_08120D4C: .4byte gUnknown_08400771
-_08120D50: .4byte gUnknown_08400781
-_08120D54:
- ldr r6, _08120D58 @ =gUnknown_0840075E
- b _08120F70
- .align 2, 0
-_08120D58: .4byte gUnknown_0840075E
-_08120D5C:
- ldr r0, _08120D88 @ =0x00016003
- add r0, r9
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08120DB8
- ldr r0, _08120D8C @ =0x000160c1
- add r0, r9
- ldrb r3, [r0]
- cmp r3, 0
- beq _08120D82
- ldr r0, _08120D90 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08120D98
-_08120D82:
- ldr r6, _08120D94 @ =gUnknown_084006B3
- b _08120F70
- .align 2, 0
-_08120D88: .4byte 0x00016003
-_08120D8C: .4byte 0x000160c1
-_08120D90: .4byte gBattleTypeFlags
-_08120D94: .4byte gUnknown_084006B3
-_08120D98:
- cmp r3, 0x1
- bne _08120DA4
- ldr r6, _08120DA0 @ =gUnknown_084006BB
- b _08120F70
- .align 2, 0
-_08120DA0: .4byte gUnknown_084006BB
-_08120DA4:
- ldr r6, _08120DB0 @ =gUnknown_084006D5
- cmp r3, 0x2
- beq _08120DAC
- b _08120F70
-_08120DAC:
- ldr r6, _08120DB4 @ =gUnknown_084006C6
- b _08120F70
- .align 2, 0
-_08120DB0: .4byte gUnknown_084006D5
-_08120DB4: .4byte gUnknown_084006C6
-_08120DB8:
- ldr r0, _08120DD4 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08120DE0
- movs r0, 0x40
- ands r0, r1
- ldr r6, _08120DD8 @ =gUnknown_0840067C
- cmp r0, 0
- bne _08120DD0
- b _08120F70
-_08120DD0:
- ldr r6, _08120DDC @ =gUnknown_0840068C
- b _08120F70
- .align 2, 0
-_08120DD4: .4byte gBattleTypeFlags
-_08120DD8: .4byte gUnknown_0840067C
-_08120DDC: .4byte gUnknown_0840068C
-_08120DE0:
- ldr r6, _08120DE4 @ =gUnknown_08400622
- b _08120F70
- .align 2, 0
-_08120DE4: .4byte gUnknown_08400622
-_08120DE8:
- mov r0, r10
- bl sub_8121D1C
- ldr r0, _08120E14 @ =gSelectedOrderFromParty
- ldr r2, [r0]
- ldrh r1, [r2]
- movs r0, 0xB1
- lsls r0, 1
- cmp r1, r0
- bls _08120E28
- ldr r0, _08120E18 @ =gBattleTextBuff2
- ldr r2, _08120E1C @ =gUnknown_08401674
- ldr r1, _08120E20 @ =0x02000000
- ldr r3, _08120E24 @ =0x000160a0
- adds r1, r3
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- b _08120E38
- .align 2, 0
-_08120E14: .4byte gSelectedOrderFromParty
-_08120E18: .4byte gBattleTextBuff2
-_08120E1C: .4byte gUnknown_08401674
-_08120E20: .4byte 0x02000000
-_08120E24: .4byte 0x000160a0
-_08120E28:
- ldr r0, _08120E44 @ =gBattleTextBuff2
- ldrh r2, [r2]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _08120E48 @ =gMoveNames
- adds r1, r2
- bl StringCopy
-_08120E38:
- ldr r0, _08120E44 @ =gBattleTextBuff2
- bl sub_8121D74
- ldr r6, _08120E4C @ =gUnknown_084007BD
- b _08120F70
- .align 2, 0
-_08120E44: .4byte gBattleTextBuff2
-_08120E48: .4byte gMoveNames
-_08120E4C: .4byte gUnknown_084007BD
-_08120E50:
- ldr r5, _08120E90 @ =gBattleTextBuff1
- ldrb r1, [r5]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08120EB8
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r5]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08120E7C
- ldrb r1, [r5]
- cmp r1, 0x3
- beq _08120E7C
- movs r0, 0x3
- eors r0, r1
- strb r0, [r5]
-_08120E7C:
- ldr r0, _08120E90 @ =gBattleTextBuff1
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08120E98
- ldr r6, _08120E94 @ =gUnknown_083FFEFC
- b _08120F70
- .align 2, 0
-_08120E90: .4byte gBattleTextBuff1
-_08120E94: .4byte gUnknown_083FFEFC
-_08120E98:
- ldr r0, _08120EAC @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- ldr r6, _08120EB0 @ =gUnknown_083FFFEA
- cmp r0, 0
- beq _08120F70
- ldr r6, _08120EB4 @ =gUnknown_083FFFF7
- b _08120F70
- .align 2, 0
-_08120EAC: .4byte gBattleTypeFlags
-_08120EB0: .4byte gUnknown_083FFFEA
-_08120EB4: .4byte gUnknown_083FFFF7
-_08120EB8:
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08120ED2
- ldrb r1, [r5]
- cmp r1, 0x3
- beq _08120ED2
- movs r0, 0x3
- eors r0, r1
- strb r0, [r5]
-_08120ED2:
- ldr r0, _08120EF0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08120F18
- ldr r0, _08120EF4 @ =gBattleTextBuff1
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08120F08
- cmp r0, 0x2
- bgt _08120EF8
- cmp r0, 0x1
- beq _08120EFE
- b _08120F70
- .align 2, 0
-_08120EF0: .4byte gBattleTypeFlags
-_08120EF4: .4byte gBattleTextBuff1
-_08120EF8:
- cmp r0, 0x3
- beq _08120F10
- b _08120F70
-_08120EFE:
- ldr r6, _08120F04 @ =gUnknown_083FFF6A
- b _08120F70
- .align 2, 0
-_08120F04: .4byte gUnknown_083FFF6A
-_08120F08:
- ldr r6, _08120F0C @ =gUnknown_083FFF99
- b _08120F70
- .align 2, 0
-_08120F0C: .4byte gUnknown_083FFF99
-_08120F10:
- ldr r6, _08120F14 @ =gUnknown_083FFFCB
- b _08120F70
- .align 2, 0
-_08120F14: .4byte gUnknown_083FFFCB
-_08120F18:
- ldr r0, _08120F2C @ =gBattleTextBuff1
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08120F40
- cmp r0, 0x2
- bgt _08120F30
- cmp r0, 0x1
- beq _08120F36
- b _08120F70
- .align 2, 0
-_08120F2C: .4byte gBattleTextBuff1
-_08120F30:
- cmp r0, 0x3
- beq _08120F48
- b _08120F70
-_08120F36:
- ldr r6, _08120F3C @ =gUnknown_083FFF56
- b _08120F70
- .align 2, 0
-_08120F3C: .4byte gUnknown_083FFF56
-_08120F40:
- ldr r6, _08120F44 @ =gUnknown_083FFF81
- b _08120F70
- .align 2, 0
-_08120F44: .4byte gUnknown_083FFF81
-_08120F48:
- ldr r6, _08120F4C @ =gUnknown_083FFFB3
- b _08120F70
- .align 2, 0
-_08120F4C: .4byte gUnknown_083FFFB3
-_08120F50:
- movs r0, 0xB5
- lsls r0, 1
- cmp r7, r0
- bls _08120F64
- ldr r1, _08120F60 @ =gDisplayedStringBattle
- movs r0, 0xFF
- strb r0, [r1]
- b _08120F76
- .align 2, 0
-_08120F60: .4byte gDisplayedStringBattle
-_08120F64:
- ldr r1, _08120F84 @ =gBattleStringsTable
- adds r0, r7, 0
- subs r0, 0xC
- lsls r0, 2
- adds r0, r1
- ldr r6, [r0]
-_08120F70:
- adds r0, r6, 0
- bl StrCpyDecodeToDisplayedStringBattle
-_08120F76:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08120F84: .4byte gBattleStringsTable
- thumb_func_end BufferStringBattle
-
- thumb_func_start StrCpyDecodeToDisplayedStringBattle
-StrCpyDecodeToDisplayedStringBattle: @ 8120F88
- push {lr}
- ldr r1, _08120F94 @ =gDisplayedStringBattle
- bl StrCpyDecodeBattle
- pop {r1}
- bx r1
- .align 2, 0
-_08120F94: .4byte gDisplayedStringBattle
- thumb_func_end StrCpyDecodeToDisplayedStringBattle
-
- thumb_func_start sub_8120F98
-sub_8120F98: @ 8120F98
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _08120FB0 @ =gUnknown_084017A8
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- mov r2, sp
- movs r3, 0
- b _08120FC0
- .align 2, 0
-_08120FB0: .4byte gUnknown_084017A8
-_08120FB4:
- strb r1, [r2]
- adds r4, 0x1
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x7
- bhi _08120FC8
-_08120FC0:
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _08120FB4
-_08120FC8:
- ldr r5, [sp]
- ldr r4, [sp, 0x4]
- movs r3, 0
- ldr r2, _08120FE4 @ =gUnknown_081FA6D4
-_08120FD0:
- ldr r1, [r2]
- ldr r0, [r1]
- cmp r5, r0
- bne _08120FE8
- ldr r0, [r1, 0x4]
- cmp r4, r0
- bne _08120FE8
- ldr r0, [r2, 0x4]
- b _08120FF2
- .align 2, 0
-_08120FE4: .4byte gUnknown_081FA6D4
-_08120FE8:
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, 0x6
- bls _08120FD0
- movs r0, 0
-_08120FF2:
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8120F98
-
- thumb_func_start StrCpyDecodeBattle
-StrCpyDecodeBattle: @ 8120FFC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- mov r9, r0
- mov r8, r1
- movs r6, 0
- movs r4, 0
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r7, r0, 24
- mov r0, r9
- ldrb r1, [r0]
- bl _08121A40
-_0812101E:
- cmp r1, 0xFD
- beq _08121026
- bl _08121A30
-_08121026:
- movs r1, 0x1
- add r9, r1
- mov r2, r9
- ldrb r0, [r2]
- cmp r0, 0x2A
- bls _08121036
- bl _081219E6
-_08121036:
- lsls r0, 2
- ldr r1, _08121040 @ =_08121044
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08121040: .4byte _08121044
- .align 2, 0
-_08121044:
- .4byte _081210F0
- .4byte _0812111E
- .4byte _0812115A
- .4byte _08121180
- .4byte _081211A4
- .4byte _081211C8
- .4byte _081211EC
- .4byte _08121218
- .4byte _08121248
- .4byte _08121278
- .4byte _081212A8
- .4byte _0812133C
- .4byte _081213A8
- .4byte _0812141C
- .4byte _08121490
- .4byte _08121504
- .4byte _08121578
- .4byte _081215F8
- .4byte _08121620
- .4byte _08121660
- .4byte _081216EC
- .4byte _081216F4
- .4byte _08121704
- .4byte _08121714
- .4byte _0812172C
- .4byte _0812174C
- .4byte _081217C0
- .4byte _08121830
- .4byte _08121840
- .4byte _08121854
- .4byte _08121868
- .4byte _0812188C
- .4byte _081218B0
- .4byte _081218B8
- .4byte _081218C0
- .4byte _0812195C
- .4byte _081219A4
- .4byte _081219AC
- .4byte _0812197C
- .4byte _08121984
- .4byte _081219CC
- .4byte _081219D4
- .4byte _08121134
-_081210F0:
- ldr r5, _08121100 @ =gBattleTextBuff1
- ldrb r0, [r5]
- cmp r0, 0xFD
- bne _08121108
- ldr r4, _08121104 @ =gStringVar1
- adds r0, r5, 0
- b _08121140
- .align 2, 0
-_08121100: .4byte gBattleTextBuff1
-_08121104: .4byte gStringVar1
-_08121108:
- adds r0, r5, 0
- bl sub_8120F98
- adds r4, r0, 0
- cmp r4, 0
- beq _08121118
- bl _081219E6
-_08121118:
- adds r4, r5, 0
- bl _081219E6
-_0812111E:
- ldr r1, _0812112C @ =gBattleTextBuff2
- ldrb r0, [r1]
- cmp r0, 0xFD
- bne _08121154
- ldr r4, _08121130 @ =gStringVar2
- b _0812113E
- .align 2, 0
-_0812112C: .4byte gBattleTextBuff2
-_08121130: .4byte gStringVar2
-_08121134:
- ldr r1, _0812114C @ =gBattleTextBuff3
- ldrb r0, [r1]
- cmp r0, 0xFD
- bne _08121154
- ldr r4, _08121150 @ =gStringVar3
-_0812113E:
- adds r0, r1, 0
-_08121140:
- adds r1, r4, 0
- bl sub_8121A68
- bl _081219E6
- .align 2, 0
-_0812114C: .4byte gBattleTextBuff3
-_08121150: .4byte gStringVar3
-_08121154:
- adds r4, r1, 0
- bl _081219E6
-_0812115A:
- movs r0, 0
- bl GetBankByPlayerAI
- ldr r1, _08121178 @ =gBattlePartyID
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0812117C @ =gPlayerParty
- adds r0, r1
- bl _0812190E
- .align 2, 0
-_08121178: .4byte gBattlePartyID
-_0812117C: .4byte gPlayerParty
-_08121180:
- movs r0, 0x1
- bl GetBankByPlayerAI
- ldr r1, _0812119C @ =gBattlePartyID
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081211A0 @ =gEnemyParty
- adds r0, r1
- b _0812190E
- .align 2, 0
-_0812119C: .4byte gBattlePartyID
-_081211A0: .4byte gEnemyParty
-_081211A4:
- movs r0, 0x2
- bl GetBankByPlayerAI
- ldr r1, _081211C0 @ =gBattlePartyID
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081211C4 @ =gPlayerParty
- adds r0, r1
- b _0812190E
- .align 2, 0
-_081211C0: .4byte gBattlePartyID
-_081211C4: .4byte gPlayerParty
-_081211C8:
- movs r0, 0x3
- bl GetBankByPlayerAI
- ldr r1, _081211E4 @ =gBattlePartyID
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081211E8 @ =gEnemyParty
- adds r0, r1
- b _0812190E
- .align 2, 0
-_081211E4: .4byte gBattlePartyID
-_081211E8: .4byte gEnemyParty
-_081211EC:
- ldr r2, _0812120C @ =gBattlePartyID
- ldr r1, _08121210 @ =gLinkPlayers
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x18]
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121214 @ =gPlayerParty
- adds r0, r1
- b _0812190E
- .align 2, 0
-_0812120C: .4byte gBattlePartyID
-_08121210: .4byte gLinkPlayers
-_08121214: .4byte gPlayerParty
-_08121218:
- ldr r2, _0812123C @ =gBattlePartyID
- ldr r1, _08121240 @ =gLinkPlayers
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x18]
- movs r0, 0x1
- eors r0, r1
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121244 @ =gEnemyParty
- adds r0, r1
- b _0812190E
- .align 2, 0
-_0812123C: .4byte gBattlePartyID
-_08121240: .4byte gLinkPlayers
-_08121244: .4byte gEnemyParty
-_08121248:
- ldr r2, _0812126C @ =gBattlePartyID
- ldr r1, _08121270 @ =gLinkPlayers
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x18]
- movs r0, 0x2
- eors r0, r1
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121274 @ =gPlayerParty
- adds r0, r1
- b _0812190E
- .align 2, 0
-_0812126C: .4byte gBattlePartyID
-_08121270: .4byte gLinkPlayers
-_08121274: .4byte gPlayerParty
-_08121278:
- ldr r2, _0812129C @ =gBattlePartyID
- ldr r1, _081212A0 @ =gLinkPlayers
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x18]
- movs r0, 0x3
- eors r0, r1
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081212A4 @ =gEnemyParty
- adds r0, r1
- b _0812190E
- .align 2, 0
-_0812129C: .4byte gBattlePartyID
-_081212A0: .4byte gLinkPlayers
-_081212A4: .4byte gEnemyParty
-_081212A8:
- ldr r4, _081212CC @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- adds r2, r4, 0
- cmp r0, 0
- beq _0812131C
- ldr r0, _081212D0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _081212D4 @ =gUnknown_08400791
- cmp r0, 0
- beq _081212E6
- ldr r4, _081212D8 @ =gUnknown_08400797
- b _081212E6
- .align 2, 0
-_081212CC: .4byte gBankAttacker
-_081212D0: .4byte gBattleTypeFlags
-_081212D4: .4byte gUnknown_08400791
-_081212D8: .4byte gUnknown_08400797
-_081212DC:
- mov r3, r8
- adds r0, r3, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
-_081212E6:
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081212DC
- ldrb r0, [r2]
- bl GetBankIdentity
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- bl GetBankByPlayerAI
- ldr r1, _08121314 @ =gBattlePartyID
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121318 @ =gEnemyParty
- adds r0, r1
- b _0812190E
- .align 2, 0
-_08121314: .4byte gBattlePartyID
-_08121318: .4byte gEnemyParty
-_0812131C:
- ldrb r0, [r2]
- bl GetBankIdentity
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- bl GetBankByPlayerAI
- ldr r1, _08121338 @ =gBattlePartyID
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r1, [r0]
- b _0812193A
- .align 2, 0
-_08121338: .4byte gBattlePartyID
-_0812133C:
- ldr r4, _08121370 @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0812137C
- ldrb r0, [r4]
- bl GetBankIdentity
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- bl GetBankByPlayerAI
- ldr r1, _08121374 @ =gBattlePartyID
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0x4
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121378 @ =gPlayerParty
- adds r0, r1
- b _0812190E
- .align 2, 0
-_08121370: .4byte gBankAttacker
-_08121374: .4byte gBattlePartyID
-_08121378: .4byte gPlayerParty
-_0812137C:
- ldrb r0, [r4]
- bl GetBankIdentity
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- bl GetBankByPlayerAI
- ldr r1, _081213A0 @ =gBattlePartyID
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0x4
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081213A4 @ =gEnemyParty
- b _08121940
- .align 2, 0
-_081213A0: .4byte gBattlePartyID
-_081213A4: .4byte gEnemyParty
-_081213A8:
- ldr r5, _081213F4 @ =gBankAttacker
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _0812140C
- ldr r0, _081213F8 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _081213FC @ =gUnknown_08400791
- cmp r0, 0
- beq _081213C6
- ldr r4, _08121400 @ =gUnknown_08400797
-_081213C6:
- ldrb r1, [r4]
- adds r0, r1, 0
- ldr r3, _08121404 @ =gBattlePartyID
- ldr r2, _08121408 @ =gEnemyParty
- mov r12, r2
- adds r2, r5, 0
- cmp r0, 0xFF
- beq _081213E8
-_081213D6:
- mov r5, r8
- adds r0, r5, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081213D6
-_081213E8:
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- b _08121908
- .align 2, 0
-_081213F4: .4byte gBankAttacker
-_081213F8: .4byte gBattleTypeFlags
-_081213FC: .4byte gUnknown_08400791
-_08121400: .4byte gUnknown_08400797
-_08121404: .4byte gBattlePartyID
-_08121408: .4byte gEnemyParty
-_0812140C:
- ldr r1, _08121418 @ =gBattlePartyID
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _0812193A
- .align 2, 0
-_08121418: .4byte gBattlePartyID
-_0812141C:
- ldr r5, _08121468 @ =gBankTarget
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _08121480
- ldr r0, _0812146C @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _08121470 @ =gUnknown_08400791
- cmp r0, 0
- beq _0812143A
- ldr r4, _08121474 @ =gUnknown_08400797
-_0812143A:
- ldrb r1, [r4]
- adds r0, r1, 0
- ldr r3, _08121478 @ =gBattlePartyID
- ldr r2, _0812147C @ =gEnemyParty
- mov r12, r2
- adds r2, r5, 0
- cmp r0, 0xFF
- beq _0812145C
-_0812144A:
- mov r5, r8
- adds r0, r5, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _0812144A
-_0812145C:
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- b _08121908
- .align 2, 0
-_08121468: .4byte gBankTarget
-_0812146C: .4byte gBattleTypeFlags
-_08121470: .4byte gUnknown_08400791
-_08121474: .4byte gUnknown_08400797
-_08121478: .4byte gBattlePartyID
-_0812147C: .4byte gEnemyParty
-_08121480:
- ldr r1, _0812148C @ =gBattlePartyID
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _0812193A
- .align 2, 0
-_0812148C: .4byte gBattlePartyID
-_08121490:
- ldr r5, _081214DC @ =gEffectBank
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _081214F4
- ldr r0, _081214E0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _081214E4 @ =gUnknown_08400791
- cmp r0, 0
- beq _081214AE
- ldr r4, _081214E8 @ =gUnknown_08400797
-_081214AE:
- ldrb r1, [r4]
- adds r0, r1, 0
- ldr r3, _081214EC @ =gBattlePartyID
- ldr r2, _081214F0 @ =gEnemyParty
- mov r12, r2
- adds r2, r5, 0
- cmp r0, 0xFF
- beq _081214D0
-_081214BE:
- mov r5, r8
- adds r0, r5, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081214BE
-_081214D0:
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- b _08121908
- .align 2, 0
-_081214DC: .4byte gEffectBank
-_081214E0: .4byte gBattleTypeFlags
-_081214E4: .4byte gUnknown_08400791
-_081214E8: .4byte gUnknown_08400797
-_081214EC: .4byte gBattlePartyID
-_081214F0: .4byte gEnemyParty
-_081214F4:
- ldr r1, _08121500 @ =gBattlePartyID
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _0812193A
- .align 2, 0
-_08121500: .4byte gBattlePartyID
-_08121504:
- ldr r5, _08121550 @ =gActiveBank
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _08121568
- ldr r0, _08121554 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _08121558 @ =gUnknown_08400791
- cmp r0, 0
- beq _08121522
- ldr r4, _0812155C @ =gUnknown_08400797
-_08121522:
- ldrb r1, [r4]
- adds r0, r1, 0
- ldr r3, _08121560 @ =gBattlePartyID
- ldr r2, _08121564 @ =gEnemyParty
- mov r12, r2
- adds r2, r5, 0
- cmp r0, 0xFF
- beq _08121544
-_08121532:
- mov r5, r8
- adds r0, r5, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _08121532
-_08121544:
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- b _08121908
- .align 2, 0
-_08121550: .4byte gActiveBank
-_08121554: .4byte gBattleTypeFlags
-_08121558: .4byte gUnknown_08400791
-_0812155C: .4byte gUnknown_08400797
-_08121560: .4byte gBattlePartyID
-_08121564: .4byte gEnemyParty
-_08121568:
- ldr r1, _08121574 @ =gBattlePartyID
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _0812193A
- .align 2, 0
-_08121574: .4byte gBattlePartyID
-_08121578:
- ldr r4, _081215CC @ =0x02000000
- ldr r0, _081215D0 @ =0x00016003
- adds r5, r4, r0
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- adds r2, r4, 0
- cmp r0, 0
- beq _081215E8
- ldr r0, _081215D4 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _081215D8 @ =gUnknown_08400791
- cmp r0, 0
- beq _0812159C
- ldr r4, _081215DC @ =gUnknown_08400797
-_0812159C:
- ldrb r1, [r4]
- adds r0, r1, 0
- ldr r3, _081215E0 @ =gBattlePartyID
- ldr r5, _081215E4 @ =gEnemyParty
- mov r12, r5
- cmp r0, 0xFF
- beq _081215BC
-_081215AA:
- mov r5, r8
- adds r0, r5, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081215AA
-_081215BC:
- ldr r1, _081215D0 @ =0x00016003
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- b _08121908
- .align 2, 0
-_081215CC: .4byte 0x02000000
-_081215D0: .4byte 0x00016003
-_081215D4: .4byte gBattleTypeFlags
-_081215D8: .4byte gUnknown_08400791
-_081215DC: .4byte gUnknown_08400797
-_081215E0: .4byte gBattlePartyID
-_081215E4: .4byte gEnemyParty
-_081215E8:
- ldr r1, _081215F4 @ =gBattlePartyID
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _0812193A
- .align 2, 0
-_081215F4: .4byte gBattlePartyID
-_081215F8:
- ldr r0, _08121610 @ =gSelectedOrderFromParty
- ldr r2, [r0]
- ldrh r1, [r2]
- movs r0, 0xB1
- lsls r0, 1
- cmp r1, r0
- bls _0812161C
- ldr r0, _08121614 @ =0x02000000
- ldr r2, _08121618 @ =0x000160a0
- adds r0, r2
- b _08121634
- .align 2, 0
-_08121610: .4byte gSelectedOrderFromParty
-_08121614: .4byte 0x02000000
-_08121618: .4byte 0x000160a0
-_0812161C:
- ldrh r1, [r2]
- b _08121652
-_08121620:
- ldr r0, _08121640 @ =gSelectedOrderFromParty
- ldr r2, [r0]
- ldrh r1, [r2, 0x2]
- movs r0, 0xB1
- lsls r0, 1
- cmp r1, r0
- bls _08121650
- ldr r0, _08121644 @ =0x02000000
- ldr r3, _08121648 @ =0x000160a0
- adds r0, r3
-_08121634:
- ldrb r0, [r0]
- lsls r0, 2
- ldr r1, _0812164C @ =gUnknown_08401674
- adds r4, r0, r1
- b _081219E6
- .align 2, 0
-_08121640: .4byte gSelectedOrderFromParty
-_08121644: .4byte 0x02000000
-_08121648: .4byte 0x000160a0
-_0812164C: .4byte gUnknown_08401674
-_08121650:
- ldrh r1, [r2, 0x2]
-_08121652:
- movs r0, 0xD
- muls r1, r0
- ldr r0, _0812165C @ =gMoveNames
- adds r4, r1, r0
- b _081219E6
- .align 2, 0
-_0812165C: .4byte gMoveNames
-_08121660:
- ldr r0, _081216AC @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081216D8
- ldr r1, _081216B0 @ =gLastUsedItem
- ldrh r0, [r1]
- cmp r0, 0xAF
- bne _081216D4
- ldr r2, _081216B4 @ =gLinkPlayers
- ldr r0, _081216B8 @ =0x02000000
- ldr r5, _081216BC @ =0x000160cb
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _081216C0 @ =gStringBank
- ldrb r2, [r1]
- ldrh r0, [r0, 0x18]
- cmp r0, r2
- bne _081216CC
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- ldr r0, _081216C4 @ =gEnigmaBerries
- adds r1, r0
- mov r0, sp
- bl StringCopy
- ldr r1, _081216C8 @ =gUnknown_08400A85
- mov r0, sp
- bl StringAppend
- mov r4, sp
- b _081219E6
- .align 2, 0
-_081216AC: .4byte gBattleTypeFlags
-_081216B0: .4byte gLastUsedItem
-_081216B4: .4byte gLinkPlayers
-_081216B8: .4byte 0x02000000
-_081216BC: .4byte 0x000160cb
-_081216C0: .4byte gStringBank
-_081216C4: .4byte gEnigmaBerries
-_081216C8: .4byte gUnknown_08400A85
-_081216CC:
- ldr r4, _081216D0 @ =gUnknown_08400A78
- b _081219E6
- .align 2, 0
-_081216D0: .4byte gUnknown_08400A78
-_081216D4:
- ldrh r0, [r1]
- b _081216DC
-_081216D8:
- ldr r0, _081216E8 @ =gLastUsedItem
- ldrh r0, [r0]
-_081216DC:
- mov r1, sp
- bl CopyItemName
- mov r4, sp
- b _081219E6
- .align 2, 0
-_081216E8: .4byte gLastUsedItem
-_081216EC:
- ldr r0, _081216F0 @ =gLastUsedAbility
- b _08121734
- .align 2, 0
-_081216F0: .4byte gLastUsedAbility
-_081216F4:
- ldr r1, _081216FC @ =gAbilitiesPerBank
- ldr r0, _08121700 @ =gBankAttacker
- b _08121730
- .align 2, 0
-_081216FC: .4byte gAbilitiesPerBank
-_08121700: .4byte gBankAttacker
-_08121704:
- ldr r1, _0812170C @ =gAbilitiesPerBank
- ldr r0, _08121710 @ =gBankTarget
- b _08121730
- .align 2, 0
-_0812170C: .4byte gAbilitiesPerBank
-_08121710: .4byte gBankTarget
-_08121714:
- ldr r1, _08121720 @ =gAbilitiesPerBank
- ldr r0, _08121724 @ =0x02000000
- ldr r2, _08121728 @ =0x00016003
- adds r0, r2
- b _08121730
- .align 2, 0
-_08121720: .4byte gAbilitiesPerBank
-_08121724: .4byte 0x02000000
-_08121728: .4byte 0x00016003
-_0812172C:
- ldr r1, _08121740 @ =gAbilitiesPerBank
- ldr r0, _08121744 @ =gEffectBank
-_08121730:
- ldrb r0, [r0]
- adds r0, r1
-_08121734:
- ldrb r1, [r0]
- movs r0, 0xD
- muls r1, r0
- ldr r0, _08121748 @ =gAbilityNames
- adds r4, r1, r0
- b _081219E6
- .align 2, 0
-_08121740: .4byte gAbilitiesPerBank
-_08121744: .4byte gEffectBank
-_08121748: .4byte gAbilityNames
-_0812174C:
- ldr r3, _08121764 @ =gTrainerBattleOpponent
- ldrh r1, [r3]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08121768
- bl GetSecretBaseTrainerNameIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xD
- b _081217AE
- .align 2, 0
-_08121764: .4byte gTrainerBattleOpponent
-_08121768:
- ldr r0, _08121784 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08121788
- bl get_trainer_class_name_index
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xD
- b _081217AE
- .align 2, 0
-_08121784: .4byte gBattleTypeFlags
-_08121788:
- movs r0, 0x80
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _0812179E
- bl sub_8135FD8
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xD
- b _081217AE
-_0812179E:
- ldr r2, _081217B8 @ =gTrainers
- ldrh r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r0, 0xD
-_081217AE:
- muls r1, r0
- ldr r0, _081217BC @ =gTrainerClassNames
- adds r4, r1, r0
- b _081219E6
- .align 2, 0
-_081217B8: .4byte gTrainers
-_081217BC: .4byte gTrainerClassNames
-_081217C0:
- ldr r2, _081217E4 @ =gTrainerBattleOpponent
- ldrh r1, [r2]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _081217EC
- mov r0, sp
- movs r1, 0xFF
- movs r2, 0x8
- bl memset
- ldr r1, _081217E8 @ =0x02017002
- mov r0, sp
- movs r2, 0x7
- bl memcpy
- mov r4, sp
- b _081219E6
- .align 2, 0
-_081217E4: .4byte gTrainerBattleOpponent
-_081217E8: .4byte 0x02017002
-_081217EC:
- ldr r0, _08121804 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08121808
- mov r0, sp
- bl get_trainer_name
- mov r4, sp
- b _081219E6
- .align 2, 0
-_08121804: .4byte gBattleTypeFlags
-_08121808:
- movs r0, 0x80
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _0812181C
- mov r0, sp
- bl sub_8135FF4
- mov r4, sp
- b _081219E6
-_0812181C:
- ldrh r0, [r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0812182C @ =gTrainers + 0x4
- adds r4, r1, r0
- b _081219E6
- .align 2, 0
-_0812182C: .4byte gTrainers + 0x4
-_08121830:
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- ldr r1, _0812183C @ =gLinkPlayers + 0x8
- adds r4, r0, r1
- b _081219E6
- .align 2, 0
-_0812183C: .4byte gLinkPlayers + 0x8
-_08121840:
- ldr r4, _08121850 @ =gLinkPlayers
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x18]
- movs r0, 0x2
- b _08121876
- .align 2, 0
-_08121850: .4byte gLinkPlayers
-_08121854:
- ldr r4, _08121864 @ =gLinkPlayers
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x18]
- movs r0, 0x1
- b _08121876
- .align 2, 0
-_08121864: .4byte gLinkPlayers
-_08121868:
- ldr r4, _08121888 @ =gLinkPlayers
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x18]
- movs r0, 0x3
-_08121876:
- eors r0, r1
- bl sub_803FC34
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r4, 0x8
- adds r4, r1, r4
- b _081219E6
- .align 2, 0
-_08121888: .4byte gLinkPlayers
-_0812188C:
- ldr r0, _081218A4 @ =0x02000000
- ldr r3, _081218A8 @ =0x00016003
- adds r0, r3
- ldrb r0, [r0]
- bl sub_803FC34
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r0, _081218AC @ =gLinkPlayers + 0x8
- adds r4, r1, r0
- b _081219E6
- .align 2, 0
-_081218A4: .4byte 0x02000000
-_081218A8: .4byte 0x00016003
-_081218AC: .4byte gLinkPlayers + 0x8
-_081218B0:
- ldr r4, _081218B4 @ =gSaveBlock2
- b _081219E6
- .align 2, 0
-_081218B4: .4byte gSaveBlock2
-_081218B8:
- bl sub_8082830
- adds r4, r0, 0
- b _081219E6
-_081218C0:
- ldr r5, _08121918 @ =0x02000000
- ldr r1, _0812191C @ =0x00016003
- adds r0, r5, r1
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _08121934
- ldr r0, _08121920 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _08121924 @ =gUnknown_08400791
- cmp r0, 0
- beq _081218E2
- ldr r4, _08121928 @ =gUnknown_08400797
-_081218E2:
- ldrb r1, [r4]
- adds r0, r1, 0
- ldr r2, _0812192C @ =gEnemyParty
- mov r12, r2
- adds r2, r5, 0
- cmp r0, 0xFF
- beq _08121902
-_081218F0:
- mov r3, r8
- adds r0, r3, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081218F0
-_08121902:
- ldr r5, _08121930 @ =0x0001605e
- adds r0, r2, r5
- ldrb r1, [r0]
-_08121908:
- movs r0, 0x64
- muls r0, r1
- add r0, r12
-_0812190E:
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- b _0812194A
- .align 2, 0
-_08121918: .4byte 0x02000000
-_0812191C: .4byte 0x00016003
-_08121920: .4byte gBattleTypeFlags
-_08121924: .4byte gUnknown_08400791
-_08121928: .4byte gUnknown_08400797
-_0812192C: .4byte gEnemyParty
-_08121930: .4byte 0x0001605e
-_08121934:
- ldr r1, _08121954 @ =0x0001605e
- adds r0, r5, r1
- ldrb r1, [r0]
-_0812193A:
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121958 @ =gPlayerParty
-_08121940:
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
-_0812194A:
- mov r0, sp
- bl StringGetEnd10
- mov r4, sp
- b _081219E6
- .align 2, 0
-_08121954: .4byte 0x0001605e
-_08121958: .4byte gPlayerParty
-_0812195C:
- ldr r0, _08121970 @ =0x0000084b
- bl FlagGet
- lsls r0, 24
- ldr r4, _08121974 @ =gUnknown_084009ED
- cmp r0, 0
- beq _081219E6
- ldr r4, _08121978 @ =gUnknown_084009F7
- b _081219E6
- .align 2, 0
-_08121970: .4byte 0x0000084b
-_08121974: .4byte gUnknown_084009ED
-_08121978: .4byte gUnknown_084009F7
-_0812197C:
- ldr r0, _08121980 @ =gBankAttacker
- b _08121986
- .align 2, 0
-_08121980: .4byte gBankAttacker
-_08121984:
- ldr r0, _08121998 @ =gBankTarget
-_08121986:
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- ldr r4, _0812199C @ =gUnknown_084007A7
- cmp r0, 0
- bne _081219E6
- ldr r4, _081219A0 @ =gUnknown_084007AC
- b _081219E6
- .align 2, 0
-_08121998: .4byte gBankTarget
-_0812199C: .4byte gUnknown_084007A7
-_081219A0: .4byte gUnknown_084007AC
-_081219A4:
- ldr r0, _081219A8 @ =gBankAttacker
- b _081219AE
- .align 2, 0
-_081219A8: .4byte gBankAttacker
-_081219AC:
- ldr r0, _081219C0 @ =gBankTarget
-_081219AE:
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- ldr r4, _081219C4 @ =gUnknown_0840079C
- cmp r0, 0
- bne _081219E6
- ldr r4, _081219C8 @ =gUnknown_084007A1
- b _081219E6
- .align 2, 0
-_081219C0: .4byte gBankTarget
-_081219C4: .4byte gUnknown_0840079C
-_081219C8: .4byte gUnknown_084007A1
-_081219CC:
- ldr r0, _081219D0 @ =gBankAttacker
- b _081219D6
- .align 2, 0
-_081219D0: .4byte gBankAttacker
-_081219D4:
- ldr r0, _08121A24 @ =gBankTarget
-_081219D6:
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- ldr r4, _08121A28 @ =gUnknown_084007B2
- cmp r0, 0
- bne _081219E6
- ldr r4, _08121A2C @ =gUnknown_084007B7
-_081219E6:
- ldrb r1, [r4]
- adds r0, r1, 0
- mov r3, r9
- ldrb r2, [r3]
- adds r3, 0x1
- cmp r0, 0xFF
- beq _08121A06
-_081219F4:
- mov r5, r8
- adds r0, r5, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081219F4
-_08121A06:
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x21
- bne _08121A3C
- mov r0, r8
- adds r1, r0, r6
- movs r0, 0xFC
- strb r0, [r1]
- adds r6, 0x1
- mov r2, r8
- adds r1, r2, r6
- movs r0, 0x9
- strb r0, [r1]
- adds r6, 0x1
- b _08121A3C
- .align 2, 0
-_08121A24: .4byte gBankTarget
-_08121A28: .4byte gUnknown_084007B2
-_08121A2C: .4byte gUnknown_084007B7
-_08121A30:
- mov r3, r8
- adds r0, r3, r6
- strb r1, [r0]
- adds r6, 0x1
- mov r3, r9
- adds r3, 0x1
-_08121A3C:
- mov r9, r3
- ldrb r1, [r3]
-_08121A40:
- adds r0, r1, 0
- cmp r0, 0xFF
- beq _08121A4A
- bl _0812101E
-_08121A4A:
- mov r5, r8
- adds r1, r5, r6
- mov r2, r9
- ldrb r0, [r2]
- strb r0, [r1]
- adds r6, 0x1
- adds r0, r6, 0
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end StrCpyDecodeBattle
-
- thumb_func_start sub_8121A68
-sub_8121A68: @ 8121A68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r7, r0, 0
- adds r6, r1, 0
- movs r5, 0x1
- movs r0, 0
- mov r8, r0
- movs r0, 0xFF
- strb r0, [r6]
- ldrb r0, [r7, 0x1]
- cmp r0, 0xFF
- bne _08121A86
- b _08121D0E
-_08121A86:
- adds r0, r7, r5
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0xA
- bls _08121A92
- b _08121D04
-_08121A92:
- lsls r0, r1, 2
- ldr r1, _08121A9C @ =_08121AA0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08121A9C: .4byte _08121AA0
- .align 2, 0
-_08121AA0:
- .4byte _08121ACC
- .4byte _08121AE8
- .4byte _08121B3C
- .4byte _08121B54
- .4byte _08121B64
- .4byte _08121BDC
- .4byte _08121BF0
- .4byte _08121C02
- .4byte _08121C48
- .4byte _08121C5C
- .4byte _08121C78
-_08121ACC:
- adds r0, r5, r7
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r0, _08121AE4 @ =gBattleStringsTable
- subs r1, 0xC
- lsls r1, 2
- adds r1, r0
- ldr r1, [r1]
- b _08121CE2
- .align 2, 0
-_08121AE4: .4byte gBattleStringsTable
-_08121AE8:
- ldrb r0, [r4, 0x1]
- cmp r0, 0x2
- beq _08121B04
- cmp r0, 0x2
- bgt _08121AF8
- cmp r0, 0x1
- beq _08121AFE
- b _08121B26
-_08121AF8:
- cmp r0, 0x4
- beq _08121B0C
- b _08121B26
-_08121AFE:
- ldrb r4, [r4, 0x3]
- mov r8, r4
- b _08121B26
-_08121B04:
- ldrb r1, [r4, 0x3]
- ldrb r0, [r4, 0x4]
- lsls r0, 8
- b _08121B22
-_08121B0C:
- ldrb r0, [r4, 0x3]
- mov r8, r0
- ldrb r0, [r4, 0x4]
- lsls r0, 8
- mov r1, r8
- orrs r1, r0
- ldrb r0, [r4, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r4, 0x6]
- lsls r0, 24
-_08121B22:
- orrs r1, r0
- mov r8, r1
-_08121B26:
- adds r4, r5, r7
- ldrb r3, [r4, 0x2]
- adds r0, r6, 0
- mov r1, r8
- movs r2, 0
- bl ConvertIntToDecimalStringN
- adds r0, r5, 0x3
- ldrb r4, [r4, 0x1]
- adds r5, r0, r4
- b _08121D04
-_08121B3C:
- adds r0, r5, r7
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0xD
- muls r1, r0
- ldr r0, _08121B50 @ =gMoveNames
- adds r1, r0
- b _08121CE2
- .align 2, 0
-_08121B50: .4byte gMoveNames
-_08121B54:
- adds r0, r5, r7
- ldrb r0, [r0, 0x1]
- lsls r1, r0, 3
- subs r1, r0
- ldr r0, _08121B60 @ =gTypeNames
- b _08121C66
- .align 2, 0
-_08121B60: .4byte gTypeNames
-_08121B64:
- ldrb r0, [r4, 0x1]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08121B88
- ldrb r1, [r4, 0x2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121B84 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- b _08121BC4
- .align 2, 0
-_08121B84: .4byte gPlayerParty
-_08121B88:
- ldr r0, _08121BA0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08121BA8
- ldr r1, _08121BA4 @ =gUnknown_08400797
- adds r0, r6, 0
- bl StringAppend
- b _08121BB0
- .align 2, 0
-_08121BA0: .4byte gBattleTypeFlags
-_08121BA4: .4byte gUnknown_08400797
-_08121BA8:
- ldr r1, _08121BD4 @ =gUnknown_08400791
- adds r0, r6, 0
- bl StringAppend
-_08121BB0:
- adds r0, r5, r7
- ldrb r1, [r0, 0x2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121BD8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
-_08121BC4:
- mov r0, sp
- bl StringGetEnd10
- adds r0, r6, 0
- mov r1, sp
- bl StringAppend
- b _08121D02
- .align 2, 0
-_08121BD4: .4byte gUnknown_08400791
-_08121BD8: .4byte gEnemyParty
-_08121BDC:
- ldr r1, _08121BEC @ =gUnknown_08400F58
- adds r0, r5, r7
- ldrb r0, [r0, 0x1]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- b _08121C68
- .align 2, 0
-_08121BEC: .4byte gUnknown_08400F58
-_08121BF0:
- adds r0, r5, r7
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- adds r0, r6, 0
- bl GetSpeciesName
- b _08121D02
-_08121C02:
- adds r4, r5, r7
- ldrb r0, [r4, 0x1]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08121C28
- ldrb r1, [r4, 0x2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121C24 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2
- adds r2, r6, 0
- bl GetMonData
- b _08121C3A
- .align 2, 0
-_08121C24: .4byte gPlayerParty
-_08121C28:
- ldrb r1, [r4, 0x2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121C44 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2
- adds r2, r6, 0
- bl GetMonData
-_08121C3A:
- adds r0, r6, 0
- bl StringGetEnd10
- b _08121D02
- .align 2, 0
-_08121C44: .4byte gEnemyParty
-_08121C48:
- ldr r1, _08121C58 @ =gUnknown_08400F78
- adds r0, r5, r7
- ldrb r0, [r0, 0x1]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- b _08121C68
- .align 2, 0
-_08121C58: .4byte gUnknown_08400F78
-_08121C5C:
- adds r0, r5, r7
- ldrb r1, [r0, 0x1]
- movs r0, 0xD
- muls r1, r0
- ldr r0, _08121C74 @ =gAbilityNames
-_08121C66:
- adds r1, r0
-_08121C68:
- adds r0, r6, 0
- bl StringAppend
- adds r5, 0x2
- b _08121D04
- .align 2, 0
-_08121C74: .4byte gAbilityNames
-_08121C78:
- adds r0, r5, r7
- ldrb r2, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldr r0, _08121CC4 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08121CFA
- cmp r2, 0xAF
- bne _08121CF0
- ldr r2, _08121CC8 @ =gLinkPlayers
- ldr r0, _08121CCC @ =0x02000000
- ldr r1, _08121CD0 @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _08121CD4 @ =gStringBank
- ldrb r2, [r1]
- ldrh r0, [r0, 0x18]
- cmp r0, r2
- bne _08121CE0
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- ldr r0, _08121CD8 @ =gEnigmaBerries
- adds r1, r0
- adds r0, r6, 0
- bl StringCopy
- ldr r1, _08121CDC @ =gUnknown_08400A85
- b _08121CE2
- .align 2, 0
-_08121CC4: .4byte gBattleTypeFlags
-_08121CC8: .4byte gLinkPlayers
-_08121CCC: .4byte 0x02000000
-_08121CD0: .4byte 0x000160cb
-_08121CD4: .4byte gStringBank
-_08121CD8: .4byte gEnigmaBerries
-_08121CDC: .4byte gUnknown_08400A85
-_08121CE0:
- ldr r1, _08121CEC @ =gUnknown_08400A78
-_08121CE2:
- adds r0, r6, 0
- bl StringAppend
- b _08121D02
- .align 2, 0
-_08121CEC: .4byte gUnknown_08400A78
-_08121CF0:
- adds r0, r2, 0
- adds r1, r6, 0
- bl CopyItemName
- b _08121D02
-_08121CFA:
- adds r0, r2, 0
- adds r1, r6, 0
- bl CopyItemName
-_08121D02:
- adds r5, 0x3
-_08121D04:
- adds r0, r7, r5
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08121D0E
- b _08121A86
-_08121D0E:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8121A68
-
- thumb_func_start sub_8121D1C
-sub_8121D1C: @ 8121D1C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r2, 0
- ldr r5, _08121D50 @ =gSelectedOrderFromParty
- ldr r3, _08121D54 @ =gUnknown_084016BC
-_08121D26:
- cmp r2, 0x4
- beq _08121D3C
- ldrh r1, [r3]
- cmp r1, 0
- bne _08121D32
- adds r2, 0x1
-_08121D32:
- ldr r0, [r5]
- adds r3, 0x2
- ldrh r0, [r0]
- cmp r1, r0
- bne _08121D26
-_08121D3C:
- cmp r2, 0
- blt _08121D68
- cmp r2, 0x2
- bgt _08121D5C
- ldr r1, _08121D58 @ =gUnknown_08400E5E
- adds r0, r4, 0
- bl StringCopy
- b _08121D68
- .align 2, 0
-_08121D50: .4byte gSelectedOrderFromParty
-_08121D54: .4byte gUnknown_084016BC
-_08121D58: .4byte gUnknown_08400E5E
-_08121D5C:
- cmp r2, 0x4
- bgt _08121D68
- ldr r1, _08121D70 @ =gUnknown_08400E62
- adds r0, r4, 0
- bl StringCopy
-_08121D68:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08121D70: .4byte gUnknown_08400E62
- thumb_func_end sub_8121D1C
-
- thumb_func_start sub_8121D74
-sub_8121D74: @ 8121D74
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r4, 0
- b _08121D7E
-_08121D7C:
- adds r3, 0x1
-_08121D7E:
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _08121D7C
- ldr r1, _08121DB4 @ =gUnknown_084016BC
- ldr r5, _08121DB8 @ =gSelectedOrderFromParty
- movs r0, 0
- lsls r0, 1
- adds r2, r0, r1
-_08121D8E:
- cmp r4, 0x4
- beq _08121DA8
- ldrh r1, [r2]
- cmp r1, 0
- bne _08121D9A
- adds r4, 0x1
-_08121D9A:
- ldr r0, [r5]
- adds r2, 0x2
- ldrh r0, [r0]
- cmp r1, r0
- bne _08121D8E
- cmp r4, 0x4
- bhi _08121E04
-_08121DA8:
- lsls r0, r4, 2
- ldr r1, _08121DBC @ =_08121DC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08121DB4: .4byte gUnknown_084016BC
-_08121DB8: .4byte gSelectedOrderFromParty
-_08121DBC: .4byte _08121DC0
- .align 2, 0
-_08121DC0:
- .4byte _08121DD4
- .4byte _08121DDC
- .4byte _08121DE4
- .4byte _08121DEC
- .4byte _08121DFC
-_08121DD4:
- ldr r1, _08121DD8 @ =gUnknown_084007C8
- b _08121DEE
- .align 2, 0
-_08121DD8: .4byte gUnknown_084007C8
-_08121DDC:
- ldr r1, _08121DE0 @ =gUnknown_084007CA
- b _08121DEE
- .align 2, 0
-_08121DE0: .4byte gUnknown_084007CA
-_08121DE4:
- ldr r1, _08121DE8 @ =gUnknown_084007CC
- b _08121DEE
- .align 2, 0
-_08121DE8: .4byte gUnknown_084007CC
-_08121DEC:
- ldr r1, _08121DF8 @ =gUnknown_084007CE
-_08121DEE:
- adds r0, r3, 0
- bl StringCopy
- b _08121E04
- .align 2, 0
-_08121DF8: .4byte gUnknown_084007CE
-_08121DFC:
- ldr r1, _08121E0C @ =gUnknown_084007D0
- adds r0, r3, 0
- bl StringCopy
-_08121E04:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08121E0C: .4byte gUnknown_084007D0
- thumb_func_end sub_8121D74
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index 15cb95854..cd8eede60 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -1522,7 +1522,7 @@ _081350AE:
lsls r0, 16
lsrs r0, 16
movs r1, 0x1
- bl GetNationalPokedexFlag
+ bl GetSetPokedexFlag
lsls r0, 24
cmp r0, 0
beq _081350C6
@@ -1555,7 +1555,7 @@ AppendBattleTowerBannedSpeciesName: @ 81350E0
lsls r0, 16
lsrs r0, 16
movs r1, 0x1
- bl GetNationalPokedexFlag
+ bl GetSetPokedexFlag
lsls r0, 24
cmp r0, 0
beq _081351E6
@@ -2082,7 +2082,7 @@ sub_8135534: @ 8135534
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_811AAE8
+ bl IsBattleTransitionDone
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2163,10 +2163,10 @@ _081355D6:
bl CreateTask
movs r0, 0
bl current_map_music_set__default_for_battle
- bl GetBattleTowerBattleTransition
+ bl BattleSetup_GetBattleTowerBattleTransition
lsls r0, 24
lsrs r0, 24
- bl sub_811AABC
+ bl BattleTransition_StartOnField
b _08135648
.align 2, 0
_081355F4: .4byte gPlayerParty
@@ -2200,10 +2200,10 @@ _08135606:
bl CreateTask
movs r0, 0
bl current_map_music_set__default_for_battle
- bl GetBattleTowerBattleTransition
+ bl BattleSetup_GetBattleTowerBattleTransition
lsls r0, 24
lsrs r0, 24
- bl sub_811AABC
+ bl BattleTransition_StartOnField
_08135648:
add sp, 0x4
pop {r4,r5}
diff --git a/asm/battle_transition.s b/asm/battle_transition.s
deleted file mode 100644
index a4b4d1666..000000000
--- a/asm/battle_transition.s
+++ /dev/null
@@ -1,6254 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_811AABC
-sub_811AABC: @ 811AABC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811AAD0 @ =gMain
- ldr r1, _0811AAD4 @ =sub_8054398
- str r1, [r2, 0x4]
- bl sub_811AB20
- pop {r0}
- bx r0
- .align 2, 0
-_0811AAD0: .4byte gMain
-_0811AAD4: .4byte sub_8054398
- thumb_func_end sub_811AABC
-
- thumb_func_start sub_811AAD8
-sub_811AAD8: @ 811AAD8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_811AB20
- pop {r0}
- bx r0
- thumb_func_end sub_811AAD8
-
- thumb_func_start sub_811AAE8
-sub_811AAE8: @ 811AAE8
- push {lr}
- ldr r0, _0811AB0C @ =sub_811AB50
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0811AB10 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x26
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0811AB14
- movs r0, 0
- b _0811AB1C
- .align 2, 0
-_0811AB0C: .4byte sub_811AB50
-_0811AB10: .4byte gTasks
-_0811AB14:
- adds r0, r2, 0
- bl DestroyTask
- movs r0, 0x1
-_0811AB1C:
- pop {r1}
- bx r1
- thumb_func_end sub_811AAE8
-
- thumb_func_start sub_811AB20
-sub_811AB20: @ 811AB20
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0811AB48 @ =sub_811AB50
- movs r1, 0x2
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811AB4C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811AB48: .4byte sub_811AB50
-_0811AB4C: .4byte gTasks
- thumb_func_end sub_811AB20
-
- thumb_func_start sub_811AB50
-sub_811AB50: @ 811AB50
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811AB80 @ =gUnknown_083FD794
- ldr r2, _0811AB84 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811AB62:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0811AB62
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811AB80: .4byte gUnknown_083FD794
-_0811AB84: .4byte gTasks
- thumb_func_end sub_811AB50
-
- thumb_func_start sub_811AB88
-sub_811AB88: @ 811AB88
- push {r4,lr}
- adds r4, r0, 0
- bl sub_807DE10
- ldr r0, _0811ABB4 @ =gPlttBufferFaded
- ldr r1, _0811ABB8 @ =gPlttBufferUnfaded
- ldr r2, _0811ABBC @ =0x04000100
- bl CpuSet
- ldr r1, _0811ABC0 @ =gUnknown_083FD70C
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _0811ABC4
- movs r0, 0x2
- strh r0, [r4, 0x8]
- movs r0, 0x1
- b _0811ABD2
- .align 2, 0
-_0811ABB4: .4byte gPlttBufferFaded
-_0811ABB8: .4byte gPlttBufferUnfaded
-_0811ABBC: .4byte 0x04000100
-_0811ABC0: .4byte gUnknown_083FD70C
-_0811ABC4:
- movs r1, 0x4
- bl CreateTask
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
-_0811ABD2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_811AB88
-
- thumb_func_start sub_811ABD8
-sub_811ABD8: @ 811ABD8
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0811ABF8 @ =gUnknown_083FD70C
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0811ABFC
- movs r0, 0
- b _0811AC04
- .align 2, 0
-_0811ABF8: .4byte gUnknown_083FD70C
-_0811ABFC:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
-_0811AC04:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_811ABD8
-
- thumb_func_start sub_811AC0C
-sub_811AC0C: @ 811AC0C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0811AC30 @ =gBattleTransitionFuncs
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl CreateTask
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811AC30: .4byte gBattleTransitionFuncs
- thumb_func_end sub_811AC0C
-
- thumb_func_start sub_811AC34
-sub_811AC34: @ 811AC34
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- strh r0, [r4, 0x26]
- ldr r1, _0811AC60 @ =gBattleTransitionFuncs
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0811AC58
- movs r0, 0x1
- strh r0, [r4, 0x26]
-_0811AC58:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811AC60: .4byte gBattleTransitionFuncs
- thumb_func_end sub_811AC34
-
- thumb_func_start sub_811AC64
-sub_811AC64: @ 811AC64
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r1, _0811AC98 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0x8]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _0811AC9C
- adds r0, r2, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_811D4C8
- b _0811ACAC
- .align 2, 0
-_0811AC98: .4byte gTasks
-_0811AC9C:
- bl sub_811D52C
- lsls r0, 24
- cmp r0, 0
- beq _0811ACAC
- adds r0, r4, 0
- bl DestroyTask
-_0811ACAC:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_811AC64
-
- thumb_func_start sub_811ACB4
-sub_811ACB4: @ 811ACB4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811ACE4 @ =gUnknown_083FD7A4
- ldr r2, _0811ACE8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811ACC6:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0811ACC6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811ACE4: .4byte gUnknown_083FD7A4
-_0811ACE8: .4byte gTasks
- thumb_func_end sub_811ACB4
-
- thumb_func_start sub_811ACEC
-sub_811ACEC: @ 811ACEC
- ldr r2, _0811AD18 @ =REG_MOSAIC
- movs r1, 0
- strh r1, [r2]
- subs r2, 0x42
- ldrh r1, [r2]
- movs r3, 0x40
- orrs r1, r3
- strh r1, [r2]
- adds r2, 0x2
- ldrh r1, [r2]
- orrs r1, r3
- strh r1, [r2]
- adds r2, 0x2
- ldrh r1, [r2]
- orrs r1, r3
- strh r1, [r2]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- movs r0, 0x1
- bx lr
- .align 2, 0
-_0811AD18: .4byte REG_MOSAIC
- thumb_func_end sub_811ACEC
-
- thumb_func_start sub_811AD1C
-sub_811AD1C: @ 811AD1C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r2, [r4, r1]
- cmp r2, 0
- beq _0811AD32
- subs r0, 0x1
- strh r0, [r4, 0xA]
- b _0811AD70
-_0811AD32:
- movs r0, 0x4
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _0811AD54
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- adds r0, r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0811AD54:
- ldr r2, _0811AD7C @ =REG_MOSAIC
- ldrh r0, [r4, 0xC]
- movs r1, 0xF
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- strh r0, [r2]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0xE
- ble _0811AD70
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0811AD70:
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811AD7C: .4byte REG_MOSAIC
- thumb_func_end sub_811AD1C
-
- thumb_func_start sub_811AD80
-sub_811AD80: @ 811AD80
- push {lr}
- ldr r0, _0811ADA4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811AD9C
- ldr r0, _0811ADA8 @ =sub_811ACB4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811AD9C:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811ADA4: .4byte gPaletteFade
-_0811ADA8: .4byte sub_811ACB4
- thumb_func_end sub_811AD80
-
- thumb_func_start sub_811ADAC
-sub_811ADAC: @ 811ADAC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811ADDC @ =gUnknown_083FD7B0
- ldr r2, _0811ADE0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811ADBE:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0811ADBE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811ADDC: .4byte gUnknown_083FD7B0
-_0811ADE0: .4byte gTasks
- thumb_func_end sub_811ADAC
-
- thumb_func_start sub_811ADE4
-sub_811ADE4: @ 811ADE4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0811AE54 @ =gUnknown_03005560
- ldr r1, _0811AE58 @ =0x0200c000
- movs r2, 0x14
- ldrsh r1, [r1, r2]
- str r4, [sp]
- movs r2, 0xA0
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0x2
- bl sub_811D6E8
- ldr r0, _0811AE5C @ =sub_811AEE0
- bl SetVBlankCallback
- ldr r0, _0811AE60 @ =sub_811AF18
- bl SetHBlankCallback
- ldr r3, _0811AE64 @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _0811AE68 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _0811AE6C @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x18
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811AE54: .4byte gUnknown_03005560
-_0811AE58: .4byte 0x0200c000
-_0811AE5C: .4byte sub_811AEE0
-_0811AE60: .4byte sub_811AF18
-_0811AE64: .4byte 0x04000208
-_0811AE68: .4byte 0x04000200
-_0811AE6C: .4byte REG_DISPSTAT
- thumb_func_end sub_811ADE4
-
- thumb_func_start sub_811AE70
-sub_811AE70: @ 811AE70
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, _0811AED0 @ =0x0200c000
- ldrb r1, [r4]
- movs r1, 0
- strb r1, [r4]
- ldrh r1, [r0, 0xA]
- adds r1, 0x4
- strh r1, [r0, 0xA]
- ldrh r1, [r0, 0xC]
- adds r1, 0x8
- strh r1, [r0, 0xC]
- ldr r3, _0811AED4 @ =gUnknown_03004DE0
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- movs r5, 0xA
- ldrsh r2, [r0, r5]
- movs r5, 0xC
- ldrsh r0, [r0, r5]
- str r0, [sp]
- movs r0, 0xA0
- str r0, [sp, 0x4]
- adds r0, r3, 0
- movs r3, 0x2
- bl sub_811D6E8
- ldr r0, _0811AED8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811AEBE
- ldr r0, _0811AEDC @ =sub_811ADAC
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811AEBE:
- ldrb r0, [r4]
- adds r0, 0x1
- ldrb r1, [r4]
- strb r0, [r4]
- movs r0, 0
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811AED0: .4byte 0x0200c000
-_0811AED4: .4byte gUnknown_03004DE0
-_0811AED8: .4byte gPaletteFade
-_0811AEDC: .4byte sub_811ADAC
- thumb_func_end sub_811AE70
-
- thumb_func_start sub_811AEE0
-sub_811AEE0: @ 811AEE0
- push {lr}
- bl sub_811D67C
- ldr r0, _0811AF08 @ =0x0200c000
- ldrb r0, [r0]
- cmp r0, 0
- beq _0811AF02
- ldr r1, _0811AF0C @ =0x040000d4
- ldr r0, _0811AF10 @ =gUnknown_03004DE0
- str r0, [r1]
- movs r2, 0xF0
- lsls r2, 3
- adds r0, r2
- str r0, [r1, 0x4]
- ldr r0, _0811AF14 @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811AF02:
- pop {r0}
- bx r0
- .align 2, 0
-_0811AF08: .4byte 0x0200c000
-_0811AF0C: .4byte 0x040000d4
-_0811AF10: .4byte gUnknown_03004DE0
-_0811AF14: .4byte 0x800000a0
- thumb_func_end sub_811AEE0
-
- thumb_func_start sub_811AF18
-sub_811AF18: @ 811AF18
- ldr r1, _0811AF38 @ =gUnknown_03004DE0
- ldr r0, _0811AF3C @ =REG_VCOUNT
- ldrh r0, [r0]
- lsls r0, 1
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _0811AF40 @ =REG_BG1HOFS
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0811AF38: .4byte gUnknown_03004DE0
-_0811AF3C: .4byte REG_VCOUNT
-_0811AF40: .4byte REG_BG1HOFS
- thumb_func_end sub_811AF18
-
- thumb_func_start sub_811AF44
-sub_811AF44: @ 811AF44
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811AF74 @ =gUnknown_083FD7B8
- ldr r2, _0811AF78 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811AF56:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0811AF56
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811AF74: .4byte gUnknown_083FD7B8
-_0811AF78: .4byte gTasks
- thumb_func_end sub_811AF44
-
- thumb_func_start sub_811AF7C
-sub_811AF7C: @ 811AF7C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0811AFE4 @ =0x0200c000
- ldr r0, _0811AFE8 @ =gUnknown_03005560
- movs r2, 0x16
- ldrsh r1, [r1, r2]
- movs r2, 0xA0
- lsls r2, 1
- bl memset
- ldr r0, _0811AFEC @ =sub_811B08C
- bl SetVBlankCallback
- ldr r0, _0811AFF0 @ =sub_811B0C4
- bl SetHBlankCallback
- ldr r3, _0811AFF4 @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _0811AFF8 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _0811AFFC @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x18
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811AFE4: .4byte 0x0200c000
-_0811AFE8: .4byte gUnknown_03005560
-_0811AFEC: .4byte sub_811B08C
-_0811AFF0: .4byte sub_811B0C4
-_0811AFF4: .4byte 0x04000208
-_0811AFF8: .4byte 0x04000200
-_0811AFFC: .4byte REG_DISPSTAT
- thumb_func_end sub_811AF7C
-
- thumb_func_start sub_811B000
-sub_811B000: @ 811B000
- push {r4-r7,lr}
- ldr r2, _0811B07C @ =0x0200c000
- ldrb r1, [r2]
- movs r1, 0
- strb r1, [r2]
- ldrh r4, [r0, 0xA]
- ldrh r2, [r0, 0xC]
- lsls r3, r2, 16
- asrs r3, 24
- movs r5, 0x84
- lsls r5, 5
- adds r1, r4, r5
- strh r1, [r0, 0xA]
- movs r1, 0xC0
- lsls r1, 1
- adds r2, r1
- strh r2, [r0, 0xC]
- movs r5, 0
- lsls r7, r3, 16
-_0811B026:
- lsrs r0, r4, 8
- asrs r1, r7, 16
- bl Sin
- ldr r2, _0811B080 @ =gUnknown_03004DE0
- lsls r1, r5, 1
- adds r1, r2
- ldr r6, _0811B07C @ =0x0200c000
- ldrh r2, [r6, 0x16]
- adds r0, r2
- strh r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x84
- lsls r1, 5
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0x9F
- bls _0811B026
- ldr r0, _0811B084 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811B06A
- ldr r0, _0811B088 @ =sub_811AF44
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811B06A:
- ldrb r0, [r6]
- adds r0, 0x1
- ldrb r1, [r6]
- strb r0, [r6]
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B07C: .4byte 0x0200c000
-_0811B080: .4byte gUnknown_03004DE0
-_0811B084: .4byte gPaletteFade
-_0811B088: .4byte sub_811AF44
- thumb_func_end sub_811B000
-
- thumb_func_start sub_811B08C
-sub_811B08C: @ 811B08C
- push {lr}
- bl sub_811D67C
- ldr r0, _0811B0B4 @ =0x0200c000
- ldrb r0, [r0]
- cmp r0, 0
- beq _0811B0AE
- ldr r1, _0811B0B8 @ =0x040000d4
- ldr r0, _0811B0BC @ =gUnknown_03004DE0
- str r0, [r1]
- movs r2, 0xF0
- lsls r2, 3
- adds r0, r2
- str r0, [r1, 0x4]
- ldr r0, _0811B0C0 @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811B0AE:
- pop {r0}
- bx r0
- .align 2, 0
-_0811B0B4: .4byte 0x0200c000
-_0811B0B8: .4byte 0x040000d4
-_0811B0BC: .4byte gUnknown_03004DE0
-_0811B0C0: .4byte 0x800000a0
- thumb_func_end sub_811B08C
-
- thumb_func_start sub_811B0C4
-sub_811B0C4: @ 811B0C4
- ldr r1, _0811B0E4 @ =gUnknown_03004DE0
- ldr r0, _0811B0E8 @ =REG_VCOUNT
- ldrh r0, [r0]
- lsls r0, 1
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _0811B0EC @ =REG_BG1VOFS
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0811B0E4: .4byte gUnknown_03004DE0
-_0811B0E8: .4byte REG_VCOUNT
-_0811B0EC: .4byte REG_BG1VOFS
- thumb_func_end sub_811B0C4
-
- thumb_func_start sub_811B0F0
-sub_811B0F0: @ 811B0F0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811B120 @ =gUnknown_083FD7C0
- ldr r2, _0811B124 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811B102:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0811B102
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811B120: .4byte gUnknown_083FD7C0
-_0811B124: .4byte gTasks
- thumb_func_end sub_811B0F0
-
- thumb_func_start sub_811B128
-sub_811B128: @ 811B128
- push {r4-r6,lr}
- sub sp, 0xC
- adds r4, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- movs r2, 0
- movs r3, 0x10
- strh r3, [r4, 0xA]
- strh r2, [r4, 0xC]
- strh r2, [r4, 0x10]
- movs r0, 0x80
- lsls r0, 7
- strh r0, [r4, 0x12]
- ldr r1, _0811B1BC @ =0x0200c000
- movs r0, 0x3F
- strh r0, [r1, 0x2]
- strh r2, [r1, 0x4]
- movs r0, 0xF0
- strh r0, [r1, 0x6]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- ldr r0, _0811B1C0 @ =0x00003f41
- strh r0, [r1, 0xE]
- lsls r3, 8
- strh r3, [r1, 0x10]
- movs r1, 0
- add r5, sp, 0x4
- add r6, sp, 0x8
- ldr r3, _0811B1C4 @ =gUnknown_03005560
- movs r2, 0xF0
-_0811B168:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x9F
- bls _0811B168
- ldr r0, _0811B1C8 @ =sub_811B520
- bl SetVBlankCallback
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_811D6A8
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, [sp, 0x4]
- ldr r2, _0811B1CC @ =0x01000400
- mov r0, sp
- bl CpuSet
- ldr r0, _0811B1D0 @ =gUnknown_083FBB88
- ldr r1, [sp, 0x8]
- movs r2, 0xB0
- lsls r2, 2
- bl CpuSet
- ldr r0, _0811B1D4 @ =gFieldEffectObjectPalette10
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B1BC: .4byte 0x0200c000
-_0811B1C0: .4byte 0x00003f41
-_0811B1C4: .4byte gUnknown_03005560
-_0811B1C8: .4byte sub_811B520
-_0811B1CC: .4byte 0x01000400
-_0811B1D0: .4byte gUnknown_083FBB88
-_0811B1D4: .4byte gFieldEffectObjectPalette10
- thumb_func_end sub_811B128
-
- thumb_func_start sub_811B1D8
-sub_811B1D8: @ 811B1D8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r7, r0, 0
- ldr r5, _0811B260 @ =gUnknown_083FDB44
- add r1, sp, 0xC
- add r0, sp, 0x8
- bl sub_811D6A8
- movs r1, 0
- ldr r0, [sp, 0x8]
- mov r9, r0
- ldr r6, _0811B264 @ =gUnknown_03004DE0
- mov r8, r6
- movs r0, 0xF0
- lsls r0, 8
- mov r12, r0
-_0811B1FE:
- movs r0, 0
- lsls r3, r1, 16
- asrs r4, r3, 11
-_0811B204:
- lsls r2, r0, 16
- asrs r2, 16
- adds r1, r4, r2
- lsls r1, 1
- add r1, r9
- ldrh r0, [r5]
- mov r6, r12
- orrs r0, r6
- strh r0, [r1]
- adds r2, 0x1
- lsls r2, 16
- adds r5, 0x2
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0x1D
- ble _0811B204
- movs r1, 0x80
- lsls r1, 9
- adds r0, r3, r1
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _0811B1FE
- movs r6, 0x10
- ldrsh r2, [r7, r6]
- movs r1, 0x12
- ldrsh r0, [r7, r1]
- str r0, [sp]
- movs r0, 0xA0
- str r0, [sp, 0x4]
- mov r0, r8
- movs r1, 0
- movs r3, 0x84
- bl sub_811D6E8
- ldrh r0, [r7, 0x8]
- adds r0, 0x1
- strh r0, [r7, 0x8]
- movs r0, 0x1
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B260: .4byte gUnknown_083FDB44
-_0811B264: .4byte gUnknown_03004DE0
- thumb_func_end sub_811B1D8
-
- thumb_func_start sub_811B268
-sub_811B268: @ 811B268
- push {r4,lr}
- sub sp, 0x8
- adds r2, r0, 0
- ldr r1, _0811B2E8 @ =0x0200c000
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- ldrh r3, [r2, 0xE]
- movs r4, 0xE
- ldrsh r0, [r2, r4]
- adds r4, r1, 0
- cmp r0, 0
- beq _0811B28C
- subs r0, r3, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0811B296
-_0811B28C:
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- movs r0, 0x2
- strh r0, [r2, 0xE]
-_0811B296:
- ldrh r0, [r2, 0xA]
- lsls r0, 8
- ldrh r1, [r2, 0xC]
- orrs r0, r1
- strh r0, [r4, 0x10]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0xF
- ble _0811B2AE
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_0811B2AE:
- ldrh r0, [r2, 0x10]
- adds r0, 0x8
- strh r0, [r2, 0x10]
- ldr r0, _0811B2EC @ =0xffffff00
- adds r1, r0, 0
- ldrh r3, [r2, 0x12]
- adds r1, r3
- strh r1, [r2, 0x12]
- ldr r0, _0811B2F0 @ =gUnknown_03004DE0
- movs r3, 0x10
- ldrsh r2, [r2, r3]
- lsls r1, 16
- asrs r1, 24
- str r1, [sp]
- movs r1, 0xA0
- str r1, [sp, 0x4]
- movs r1, 0
- movs r3, 0x84
- bl sub_811D6E8
- ldrb r0, [r4]
- adds r0, 0x1
- ldrb r1, [r4]
- strb r0, [r4]
- movs r0, 0
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B2E8: .4byte 0x0200c000
-_0811B2EC: .4byte 0xffffff00
-_0811B2F0: .4byte gUnknown_03004DE0
- thumb_func_end sub_811B268
-
- thumb_func_start sub_811B2F4
-sub_811B2F4: @ 811B2F4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r3, r0, 0
- ldr r1, _0811B374 @ =0x0200c000
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- ldrh r2, [r3, 0xE]
- movs r4, 0xE
- ldrsh r0, [r3, r4]
- adds r4, r1, 0
- cmp r0, 0
- beq _0811B318
- subs r0, r2, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0811B322
-_0811B318:
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- movs r0, 0x2
- strh r0, [r3, 0xE]
-_0811B322:
- ldrh r0, [r3, 0xA]
- lsls r1, r0, 8
- ldrh r2, [r3, 0xC]
- orrs r1, r2
- strh r1, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bne _0811B338
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_0811B338:
- ldrh r0, [r3, 0x10]
- adds r0, 0x8
- strh r0, [r3, 0x10]
- ldr r5, _0811B378 @ =0xffffff00
- adds r1, r5, 0
- ldrh r0, [r3, 0x12]
- adds r1, r0
- strh r1, [r3, 0x12]
- ldr r0, _0811B37C @ =gUnknown_03004DE0
- movs r5, 0x10
- ldrsh r2, [r3, r5]
- lsls r1, 16
- asrs r1, 24
- str r1, [sp]
- movs r1, 0xA0
- str r1, [sp, 0x4]
- movs r1, 0
- movs r3, 0x84
- bl sub_811D6E8
- ldrb r0, [r4]
- adds r0, 0x1
- ldrb r1, [r4]
- strb r0, [r4]
- movs r0, 0
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B374: .4byte 0x0200c000
-_0811B378: .4byte 0xffffff00
-_0811B37C: .4byte gUnknown_03004DE0
- thumb_func_end sub_811B2F4
-
- thumb_func_start sub_811B380
-sub_811B380: @ 811B380
- push {r4-r7,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r5, _0811B3E0 @ =0x0200c000
- ldrb r0, [r5]
- movs r7, 0
- strb r7, [r5]
- ldrh r0, [r4, 0x10]
- adds r0, 0x8
- strh r0, [r4, 0x10]
- ldr r0, _0811B3E4 @ =0xffffff00
- adds r1, r0, 0
- ldrh r3, [r4, 0x12]
- adds r1, r3
- strh r1, [r4, 0x12]
- ldr r0, _0811B3E8 @ =gUnknown_03004DE0
- movs r3, 0x10
- ldrsh r2, [r4, r3]
- lsls r1, 16
- asrs r1, 24
- str r1, [sp]
- movs r6, 0xA0
- str r6, [sp, 0x4]
- movs r1, 0
- movs r3, 0x84
- bl sub_811D6E8
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bgt _0811B3CE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- strh r6, [r4, 0xA]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0xC]
- strh r7, [r4, 0xE]
-_0811B3CE:
- ldrb r0, [r5]
- adds r0, 0x1
- ldrb r1, [r5]
- strb r0, [r5]
- movs r0, 0
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B3E0: .4byte 0x0200c000
-_0811B3E4: .4byte 0xffffff00
-_0811B3E8: .4byte gUnknown_03004DE0
- thumb_func_end sub_811B380
-
- thumb_func_start sub_811B3EC
-sub_811B3EC: @ 811B3EC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0811B488 @ =0x0200c000
- ldrb r1, [r0]
- movs r3, 0
- strb r3, [r0]
- ldrh r2, [r4, 0xC]
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- ldr r0, _0811B48C @ =0x000003ff
- cmp r1, r0
- bgt _0811B40A
- adds r0, r2, 0
- adds r0, 0x80
- strh r0, [r4, 0xC]
-_0811B40A:
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0811B426
- ldrh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 24
- subs r0, r1, r0
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bge _0811B426
- strh r3, [r4, 0xA]
-_0811B426:
- ldr r0, _0811B490 @ =gUnknown_03004DE0
- movs r1, 0xA
- ldrsh r3, [r4, r1]
- movs r1, 0x78
- movs r2, 0x50
- bl sub_811D764
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0811B462
- ldr r1, _0811B494 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _0811B498 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811B49C @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D6D4
- ldr r0, _0811B4A0 @ =sub_811B0F0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811B462:
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0811B476
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
- ldr r0, _0811B4A4 @ =sub_811B54C
- bl SetVBlankCallback
-_0811B476:
- ldr r0, _0811B488 @ =0x0200c000
- ldrb r1, [r0]
- adds r1, 0x1
- ldrb r2, [r0]
- strb r1, [r0]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B488: .4byte 0x0200c000
-_0811B48C: .4byte 0x000003ff
-_0811B490: .4byte gUnknown_03004DE0
-_0811B494: .4byte 0x040000b0
-_0811B498: .4byte 0x0000c5ff
-_0811B49C: .4byte 0x00007fff
-_0811B4A0: .4byte sub_811B0F0
-_0811B4A4: .4byte sub_811B54C
- thumb_func_end sub_811B3EC
-
- thumb_func_start sub_811B4A8
-sub_811B4A8: @ 811B4A8
- push {lr}
- ldr r1, _0811B500 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _0811B504 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811B508 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D67C
- ldr r2, _0811B50C @ =0x0200c000
- ldrb r0, [r2]
- cmp r0, 0
- beq _0811B4DE
- ldr r1, _0811B510 @ =0x040000d4
- ldr r0, _0811B514 @ =gUnknown_03004DE0
- str r0, [r1]
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
- str r0, [r1, 0x4]
- ldr r0, _0811B518 @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811B4DE:
- ldr r1, _0811B51C @ =REG_WININ
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x4]
- strh r0, [r1]
- subs r1, 0x6
- ldrh r0, [r2, 0x8]
- strh r0, [r1]
- adds r1, 0xC
- ldrh r0, [r2, 0xE]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x10]
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0811B500: .4byte 0x040000b0
-_0811B504: .4byte 0x0000c5ff
-_0811B508: .4byte 0x00007fff
-_0811B50C: .4byte 0x0200c000
-_0811B510: .4byte 0x040000d4
-_0811B514: .4byte gUnknown_03004DE0
-_0811B518: .4byte 0x800000a0
-_0811B51C: .4byte REG_WININ
- thumb_func_end sub_811B4A8
-
- thumb_func_start sub_811B520
-sub_811B520: @ 811B520
- push {lr}
- bl sub_811B4A8
- ldr r1, _0811B53C @ =0x040000b0
- ldr r0, _0811B540 @ =gUnknown_03005560
- str r0, [r1]
- ldr r0, _0811B544 @ =REG_BG0HOFS
- str r0, [r1, 0x4]
- ldr r0, _0811B548 @ =0xa2400001
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0811B53C: .4byte 0x040000b0
-_0811B540: .4byte gUnknown_03005560
-_0811B544: .4byte REG_BG0HOFS
-_0811B548: .4byte 0xa2400001
- thumb_func_end sub_811B520
-
- thumb_func_start sub_811B54C
-sub_811B54C: @ 811B54C
- push {lr}
- bl sub_811B4A8
- ldr r1, _0811B568 @ =0x040000b0
- ldr r0, _0811B56C @ =gUnknown_03005560
- str r0, [r1]
- ldr r0, _0811B570 @ =REG_WIN0H
- str r0, [r1, 0x4]
- ldr r0, _0811B574 @ =0xa2400001
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0811B568: .4byte 0x040000b0
-_0811B56C: .4byte gUnknown_03005560
-_0811B570: .4byte REG_WIN0H
-_0811B574: .4byte 0xa2400001
- thumb_func_end sub_811B54C
-
- thumb_func_start sub_811B578
-sub_811B578: @ 811B578
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811B5A8 @ =gUnknown_083FD7D8
- ldr r2, _0811B5AC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811B58A:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0811B58A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811B5A8: .4byte gUnknown_083FD7D8
-_0811B5AC: .4byte gTasks
- thumb_func_end sub_811B578
-
- thumb_func_start sub_811B5B0
-sub_811B5B0: @ 811B5B0
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- add r0, sp, 0x4
- add r1, sp, 0x8
- bl sub_811D6A8
- ldr r0, _0811B5F0 @ =gUnknown_083FC108
- ldr r1, [sp, 0x8]
- movs r2, 0x20
- bl CpuSet
- movs r0, 0
- str r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, _0811B5F4 @ =0x05000200
- mov r0, sp
- bl CpuSet
- ldr r0, _0811B5F8 @ =gFieldEffectObjectPalette10
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B5F0: .4byte gUnknown_083FC108
-_0811B5F4: .4byte 0x05000200
-_0811B5F8: .4byte gFieldEffectObjectPalette10
- thumb_func_end sub_811B5B0
-
- thumb_func_start sub_811B5FC
-sub_811B5FC: @ 811B5FC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r7, r0, 0
- ldr r1, _0811B67C @ =gUnknown_083FD7E4
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- add r4, sp, 0x4
- ldr r1, _0811B680 @ =gUnknown_083FD7E8
- adds r0, r4, 0
- movs r2, 0xA
- bl memcpy
- bl Random
- movs r5, 0x1
- ands r5, r0
- movs r1, 0
- mov r8, r4
- ldr r6, _0811B684 @ =gUnknown_0202FF84
-_0811B62A:
- lsls r5, 16
- asrs r5, 16
- lsls r0, r5, 1
- add r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- str r0, [r6]
- lsls r4, r1, 16
- asrs r4, 16
- lsls r0, r4, 5
- adds r0, 0x10
- str r0, [r6, 0x4]
- str r5, [r6, 0x8]
- lsls r0, r4, 1
- add r0, r8
- movs r1, 0
- ldrsh r0, [r0, r1]
- str r0, [r6, 0xC]
- movs r0, 0x2D
- bl FieldEffectStart
- adds r4, 0x1
- lsls r4, 16
- movs r0, 0x1
- eors r5, r0
- lsls r5, 16
- lsrs r5, 16
- lsrs r1, r4, 16
- asrs r4, 16
- cmp r4, 0x4
- ble _0811B62A
- ldrh r0, [r7, 0x8]
- adds r0, 0x1
- strh r0, [r7, 0x8]
- movs r0, 0
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B67C: .4byte gUnknown_083FD7E4
-_0811B680: .4byte gUnknown_083FD7E8
-_0811B684: .4byte gUnknown_0202FF84
- thumb_func_end sub_811B5FC
-
- thumb_func_start sub_811B688
-sub_811B688: @ 811B688
- push {lr}
- movs r0, 0x2D
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _0811B6A8
- bl sub_811D6D4
- ldr r0, _0811B6B0 @ =sub_811B578
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811B6A8:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811B6B0: .4byte sub_811B578
- thumb_func_end sub_811B688
-
- thumb_func_start FldEff_Pokeball
-FldEff_Pokeball: @ 811B6B4
- push {r4,r5,lr}
- ldr r0, _0811B710 @ =gSpriteTemplate_83FD98C
- ldr r5, _0811B714 @ =gUnknown_0202FF84
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r3, 0x4
- ldrsh r2, [r5, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0811B718 @ =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r4, r1
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x5]
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, [r5, 0x8]
- strh r0, [r4, 0x2E]
- ldr r0, [r5, 0xC]
- strh r0, [r4, 0x30]
- ldr r0, _0811B71C @ =0x0000ffff
- strh r0, [r4, 0x32]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- ldrb r1, [r5, 0x8]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B710: .4byte gSpriteTemplate_83FD98C
-_0811B714: .4byte gUnknown_0202FF84
-_0811B718: .4byte gSprites
-_0811B71C: .4byte 0x0000ffff
- thumb_func_end FldEff_Pokeball
-
- thumb_func_start sub_811B720
-sub_811B720: @ 811B720
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r1, _0811B740 @ =gUnknown_083FD7F2
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0811B744
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _0811B7D6
- .align 2, 0
-_0811B740: .4byte gUnknown_083FD7F2
-_0811B744:
- ldrh r0, [r4, 0x20]
- lsls r1, r0, 16
- lsrs r0, r1, 16
- cmp r0, 0xF0
- bhi _0811B7B2
- asrs r0, r1, 19
- lsls r0, 16
- ldrh r1, [r4, 0x22]
- lsls r1, 16
- asrs r1, 19
- lsls r1, 16
- lsrs r1, 16
- lsrs r2, r0, 16
- asrs r5, r0, 16
- movs r3, 0x32
- ldrsh r0, [r4, r3]
- cmp r5, r0
- beq _0811B7B2
- strh r2, [r4, 0x32]
- ldr r0, _0811B7E0 @ =REG_BG0CNT
- ldrh r2, [r0]
- lsrs r2, 8
- movs r0, 0x1F
- ands r2, r0
- lsls r2, 11
- movs r0, 0xC0
- lsls r0, 19
- adds r2, r0
- lsls r1, 16
- asrs r1, 16
- subs r0, r1, 0x2
- lsls r0, 5
- adds r0, r5
- lsls r0, 1
- adds r0, r2
- ldr r6, _0811B7E4 @ =0x0000f001
- adds r3, r6, 0
- strh r3, [r0]
- subs r0, r1, 0x1
- lsls r0, 5
- adds r0, r5
- lsls r0, 1
- adds r0, r2
- strh r3, [r0]
- lsls r0, r1, 5
- adds r0, r5
- lsls r0, 1
- adds r0, r2
- strh r3, [r0]
- adds r1, 0x1
- lsls r1, 5
- adds r1, r5
- lsls r1, 1
- adds r1, r2
- strh r3, [r1]
-_0811B7B2:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r0, 0xF
- lsls r0, 16
- movs r1, 0x87
- lsls r1, 17
- cmp r0, r1
- bls _0811B7D6
- adds r0, r4, 0
- movs r1, 0x2D
- bl FieldEffectStop
-_0811B7D6:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811B7E0: .4byte REG_BG0CNT
-_0811B7E4: .4byte 0x0000f001
- thumb_func_end sub_811B720
-
- thumb_func_start sub_811B7E8
-sub_811B7E8: @ 811B7E8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811B818 @ =gUnknown_083FD7F8
- ldr r2, _0811B81C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811B7FA:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0811B7FA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811B818: .4byte gUnknown_083FD7F8
-_0811B81C: .4byte gTasks
- thumb_func_end sub_811B7E8
-
- thumb_func_start sub_811B820
-sub_811B820: @ 811B820
- push {r4,lr}
- adds r4, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- ldr r1, _0811B870 @ =0x0200c000
- movs r0, 0
- strh r0, [r1, 0x2]
- movs r0, 0x3F
- strh r0, [r1, 0x4]
- ldr r0, _0811B874 @ =0x0000f0f1
- strh r0, [r1, 0x6]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- movs r1, 0
- ldr r3, _0811B878 @ =gUnknown_03005560
- ldr r2, _0811B87C @ =0x0000f3f4
-_0811B844:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x9F
- bls _0811B844
- ldr r0, _0811B880 @ =sub_811BC2C
- bl SetVBlankCallback
- ldr r1, _0811B870 @ =0x0200c000
- movs r0, 0x78
- strh r0, [r1, 0x2C]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B870: .4byte 0x0200c000
-_0811B874: .4byte 0x0000f0f1
-_0811B878: .4byte gUnknown_03005560
-_0811B87C: .4byte 0x0000f3f4
-_0811B880: .4byte sub_811BC2C
- thumb_func_end sub_811B820
-
- thumb_func_start sub_811B884
-sub_811B884: @ 811B884
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- ldr r4, _0811B904 @ =0x0200c000
- ldrb r0, [r4]
- movs r0, 0
- strb r0, [r4]
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x2C
- ldrsh r3, [r4, r1]
- movs r1, 0x1
- negs r1, r1
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x78
- movs r2, 0x50
- bl sub_811D8FC
- ldr r5, _0811B908 @ =gUnknown_03004DE0
-_0811B8B0:
- movs r3, 0x2A
- ldrsh r2, [r4, r3]
- lsls r2, 1
- adds r2, r5
- ldrh r0, [r4, 0x28]
- adds r0, 0x1
- movs r3, 0xF0
- lsls r3, 7
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x1
- movs r2, 0x1
- bl sub_811D978
- lsls r0, 24
- cmp r0, 0
- beq _0811B8B0
- ldr r2, _0811B904 @ =0x0200c000
- ldrh r0, [r2, 0x2C]
- adds r0, 0x10
- strh r0, [r2, 0x2C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xEF
- ble _0811B8F2
- movs r0, 0
- strh r0, [r2, 0x2E]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_0811B8F2:
- ldrb r0, [r2]
- adds r0, 0x1
- ldrb r1, [r2]
- strb r0, [r2]
- movs r0, 0
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B904: .4byte 0x0200c000
-_0811B908: .4byte gUnknown_03004DE0
- thumb_func_end sub_811B884
-
- thumb_func_start sub_811B90C
-sub_811B90C: @ 811B90C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r7, r0, 0
- add r1, sp, 0xC
- movs r0, 0
- strb r0, [r1]
- ldr r4, _0811B988 @ =0x0200c000
- ldrb r0, [r4]
- movs r0, 0
- strb r0, [r4]
- adds r0, r4, 0
- adds r0, 0x24
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0xF0
- bl sub_811D8FC
- adds r6, r4, 0
- ldr r5, _0811B98C @ =gUnknown_03004DE0
- mov r8, r5
- add r5, sp, 0xC
-_0811B946:
- movs r1, 0x78
- ldrh r0, [r4, 0x28]
- adds r0, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0x4F
- ble _0811B95C
- ldrh r1, [r4, 0x28]
- movs r3, 0xF0
-_0811B95C:
- movs r0, 0x2A
- ldrsh r2, [r4, r0]
- lsls r2, 1
- add r2, r8
- lsls r1, 16
- asrs r1, 8
- lsls r0, r3, 16
- asrs r3, r0, 16
- orrs r3, r1
- strh r3, [r2]
- ldrb r0, [r5]
- cmp r0, 0
- bne _0811B990
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x1
- movs r2, 0x1
- bl sub_811D978
- strb r0, [r5]
- b _0811B946
- .align 2, 0
-_0811B988: .4byte 0x0200c000
-_0811B98C: .4byte gUnknown_03004DE0
-_0811B990:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x8
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0x9F
- ble _0811B9AA
- movs r0, 0xF0
- strh r0, [r4, 0x2C]
- ldrh r0, [r7, 0x8]
- adds r0, 0x1
- strh r0, [r7, 0x8]
- b _0811B9D0
-_0811B9AA:
- movs r2, 0x2A
- ldrsh r0, [r4, r2]
- cmp r0, r1
- bge _0811B9D0
- ldr r4, _0811B9E8 @ =gUnknown_03004DE0
- ldr r2, _0811B9EC @ =0x0200c000
-_0811B9B6:
- ldrh r0, [r2, 0x2A]
- adds r0, 0x1
- strh r0, [r2, 0x2A]
- lsls r0, 16
- asrs r0, 15
- adds r0, r4
- strh r3, [r0]
- movs r5, 0x2A
- ldrsh r1, [r2, r5]
- movs r5, 0x2E
- ldrsh r0, [r2, r5]
- cmp r1, r0
- blt _0811B9B6
-_0811B9D0:
- ldrb r0, [r6]
- adds r0, 0x1
- ldrb r1, [r6]
- strb r0, [r6]
- movs r0, 0
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B9E8: .4byte gUnknown_03004DE0
-_0811B9EC: .4byte 0x0200c000
- thumb_func_end sub_811B90C
-
- thumb_func_start sub_811B9F0
-sub_811B9F0: @ 811B9F0
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- ldr r4, _0811BA68 @ =0x0200c000
- ldrb r0, [r4]
- movs r0, 0
- strb r0, [r4]
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x2C
- ldrsh r3, [r4, r1]
- movs r1, 0xA0
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x78
- movs r2, 0x50
- bl sub_811D8FC
- ldr r5, _0811BA6C @ =gUnknown_03004DE0
-_0811BA1A:
- movs r0, 0x2A
- ldrsh r2, [r4, r0]
- lsls r2, 1
- adds r2, r5
- ldrh r0, [r4, 0x28]
- lsls r0, 8
- movs r1, 0xF0
- orrs r0, r1
- strh r0, [r2]
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x1
- movs r2, 0x1
- bl sub_811D978
- lsls r0, 24
- cmp r0, 0
- beq _0811BA1A
- ldr r2, _0811BA68 @ =0x0200c000
- ldrh r0, [r2, 0x2C]
- subs r0, 0x10
- strh r0, [r2, 0x2C]
- lsls r0, 16
- cmp r0, 0
- bgt _0811BA56
- movs r0, 0xA0
- strh r0, [r2, 0x2E]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_0811BA56:
- ldrb r0, [r2]
- adds r0, 0x1
- ldrb r1, [r2]
- strb r0, [r2]
- movs r0, 0
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BA68: .4byte 0x0200c000
-_0811BA6C: .4byte gUnknown_03004DE0
- thumb_func_end sub_811B9F0
-
- thumb_func_start sub_811BA70
-sub_811BA70: @ 811BA70
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- mov r8, r0
- add r1, sp, 0xC
- movs r0, 0
- strb r0, [r1]
- ldr r4, _0811BAF0 @ =0x0200c000
- ldrb r0, [r4]
- movs r0, 0
- strb r0, [r4]
- adds r0, r4, 0
- adds r0, 0x24
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0
- bl sub_811D8FC
- ldr r3, _0811BAF4 @ =gUnknown_03004DE0
- mov r9, r3
- mov r10, r4
- add r6, sp, 0xC
-_0811BAAE:
- movs r5, 0x2A
- ldrsh r0, [r4, r5]
- lsls r0, 1
- mov r7, r9
- adds r5, r0, r7
- ldrb r1, [r5]
- ldrh r2, [r4, 0x28]
- adds r3, r2, 0
- movs r7, 0x2E
- ldrsh r0, [r4, r7]
- cmp r0, 0x50
- bgt _0811BACA
- movs r2, 0x78
- adds r1, r3, 0
-_0811BACA:
- lsls r0, r2, 16
- asrs r0, 8
- lsls r1, 16
- asrs r1, 16
- orrs r1, r0
- movs r3, 0
- strh r1, [r5]
- ldrb r0, [r6]
- cmp r0, 0
- bne _0811BAF8
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x1
- movs r2, 0x1
- bl sub_811D978
- strb r0, [r6]
- b _0811BAAE
- .align 2, 0
-_0811BAF0: .4byte 0x0200c000
-_0811BAF4: .4byte gUnknown_03004DE0
-_0811BAF8:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x8
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bgt _0811BB12
- strh r3, [r4, 0x2C]
- mov r1, r8
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0811BB3A
-_0811BB12:
- movs r3, 0x2A
- ldrsh r0, [r4, r3]
- cmp r0, r2
- ble _0811BB3A
- ldr r4, _0811BB58 @ =gUnknown_03004DE0
- ldr r2, _0811BB5C @ =0x0200c000
- adds r3, r1, 0
-_0811BB20:
- ldrh r0, [r2, 0x2A]
- subs r0, 0x1
- strh r0, [r2, 0x2A]
- lsls r0, 16
- asrs r0, 15
- adds r0, r4
- strh r3, [r0]
- movs r5, 0x2A
- ldrsh r1, [r2, r5]
- movs r7, 0x2E
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bgt _0811BB20
-_0811BB3A:
- mov r1, r10
- ldrb r0, [r1]
- adds r0, 0x1
- ldrb r1, [r1]
- mov r2, r10
- strb r0, [r2]
- movs r0, 0
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BB58: .4byte gUnknown_03004DE0
-_0811BB5C: .4byte 0x0200c000
- thumb_func_end sub_811BA70
-
- thumb_func_start sub_811BB60
-sub_811BB60: @ 811BB60
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- ldr r4, _0811BBE4 @ =0x0200c000
- ldrb r0, [r4]
- movs r1, 0
- strb r1, [r4]
- adds r0, r4, 0
- adds r0, 0x24
- movs r2, 0x2C
- ldrsh r3, [r4, r2]
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x78
- movs r2, 0x50
- bl sub_811D8FC
- ldr r5, _0811BBE8 @ =gUnknown_03004DE0
-_0811BB88:
- movs r2, 0x78
- ldrh r3, [r4, 0x28]
- movs r1, 0x28
- ldrsh r0, [r4, r1]
- cmp r0, 0x77
- ble _0811BB98
- movs r2, 0
- movs r3, 0xF0
-_0811BB98:
- movs r0, 0x2A
- ldrsh r1, [r4, r0]
- lsls r1, 1
- adds r1, r5
- lsls r2, 8
- lsls r0, r3, 16
- asrs r0, 16
- orrs r0, r2
- strh r0, [r1]
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x1
- movs r2, 0x1
- bl sub_811D978
- lsls r0, 24
- cmp r0, 0
- beq _0811BB88
- ldr r2, _0811BBE4 @ =0x0200c000
- ldrh r0, [r2, 0x2C]
- adds r0, 0x10
- strh r0, [r2, 0x2C]
- movs r1, 0x28
- ldrsh r0, [r2, r1]
- cmp r0, 0x78
- ble _0811BBD2
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_0811BBD2:
- ldrb r0, [r2]
- adds r0, 0x1
- ldrb r1, [r2]
- strb r0, [r2]
- movs r0, 0
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BBE4: .4byte 0x0200c000
-_0811BBE8: .4byte gUnknown_03004DE0
- thumb_func_end sub_811BB60
-
- thumb_func_start sub_811BBEC
-sub_811BBEC: @ 811BBEC
- push {lr}
- ldr r1, _0811BC1C @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _0811BC20 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811BC24 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D6D4
- ldr r0, _0811BC28 @ =sub_811B7E8
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811BC1C: .4byte 0x040000b0
-_0811BC20: .4byte 0x0000c5ff
-_0811BC24: .4byte 0x00007fff
-_0811BC28: .4byte sub_811B7E8
- thumb_func_end sub_811BBEC
-
- thumb_func_start sub_811BC2C
-sub_811BC2C: @ 811BC2C
- push {r4,lr}
- ldr r4, _0811BC94 @ =0x040000b0
- ldrh r1, [r4, 0xA]
- ldr r0, _0811BC98 @ =0x0000c5ff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811BC9C @ =0x00007fff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811BCA0 @ =0x0200c000
- ldrb r0, [r2]
- cmp r0, 0
- beq _0811BC62
- ldr r1, _0811BCA4 @ =0x040000d4
- ldr r0, _0811BCA8 @ =gUnknown_03004DE0
- str r0, [r1]
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
- str r0, [r1, 0x4]
- ldr r0, _0811BCAC @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811BC62:
- ldr r1, _0811BCB0 @ =REG_WININ
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x4]
- strh r0, [r1]
- subs r1, 0x6
- ldrh r0, [r2, 0x8]
- strh r0, [r1]
- ldr r2, _0811BCB4 @ =REG_WIN0H
- ldr r0, _0811BCA8 @ =gUnknown_03004DE0
- movs r1, 0xF0
- lsls r1, 3
- adds r0, r1
- ldrh r1, [r0]
- strh r1, [r2]
- str r0, [r4]
- str r2, [r4, 0x4]
- ldr r0, _0811BCB8 @ =0xa2400001
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811BC94: .4byte 0x040000b0
-_0811BC98: .4byte 0x0000c5ff
-_0811BC9C: .4byte 0x00007fff
-_0811BCA0: .4byte 0x0200c000
-_0811BCA4: .4byte 0x040000d4
-_0811BCA8: .4byte gUnknown_03004DE0
-_0811BCAC: .4byte 0x800000a0
-_0811BCB0: .4byte REG_WININ
-_0811BCB4: .4byte REG_WIN0H
-_0811BCB8: .4byte 0xa2400001
- thumb_func_end sub_811BC2C
-
- thumb_func_start sub_811BCBC
-sub_811BCBC: @ 811BCBC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811BCEC @ =gUnknown_083FD814
- ldr r2, _0811BCF0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811BCCE:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0811BCCE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811BCEC: .4byte gUnknown_083FD814
-_0811BCF0: .4byte gTasks
- thumb_func_end sub_811BCBC
-
- thumb_func_start sub_811BCF4
-sub_811BCF4: @ 811BCF4
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- movs r2, 0
- ldr r4, _0811BD48 @ =gUnknown_03005560
- ldr r3, _0811BD4C @ =0x0200c000
-_0811BD06:
- lsls r0, r2, 1
- adds r0, r4
- ldrh r1, [r3, 0x16]
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x9F
- bls _0811BD06
- ldr r0, _0811BD50 @ =sub_811BE3C
- bl SetVBlankCallback
- ldr r0, _0811BD54 @ =sub_811BE74
- bl SetHBlankCallback
- ldr r2, _0811BD58 @ =0x04000200
- ldrh r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strh r0, [r2]
- ldr r2, _0811BD5C @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x10
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BD48: .4byte gUnknown_03005560
-_0811BD4C: .4byte 0x0200c000
-_0811BD50: .4byte sub_811BE3C
-_0811BD54: .4byte sub_811BE74
-_0811BD58: .4byte 0x04000200
-_0811BD5C: .4byte REG_DISPSTAT
- thumb_func_end sub_811BCF4
-
- thumb_func_start sub_811BD60
-sub_811BD60: @ 811BD60
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r1, _0811BE28 @ =0x0200c000
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- ldrh r2, [r6, 0xC]
- lsls r1, r2, 16
- asrs r0, r1, 24
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r4, [r6, 0xA]
- movs r0, 0xC0
- lsls r0, 1
- mov r8, r0
- movs r5, 0x80
- lsls r5, 3
- adds r0, r4, r5
- strh r0, [r6, 0xA]
- ldr r0, _0811BE2C @ =0x1fff0000
- cmp r1, r0
- bgt _0811BD9A
- movs r1, 0xC0
- lsls r1, 1
- adds r0, r2, r1
- strh r0, [r6, 0xC]
-_0811BD9A:
- movs r5, 0
- lsls r7, r3, 16
-_0811BD9E:
- lsrs r0, r4, 8
- asrs r1, r7, 16
- bl Sin
- ldr r1, _0811BE30 @ =gUnknown_03004DE0
- lsls r2, r5, 1
- adds r2, r1
- ldr r1, _0811BE28 @ =0x0200c000
- ldrh r1, [r1, 0x16]
- adds r0, r1
- strh r0, [r2]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r1, r8
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0x9F
- bls _0811BD9E
- ldrh r0, [r6, 0xE]
- adds r0, 0x1
- strh r0, [r6, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x51
- bne _0811BDEC
- ldrh r0, [r6, 0x10]
- adds r0, 0x1
- strh r0, [r6, 0x10]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x2
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0811BDEC:
- movs r5, 0x10
- ldrsh r0, [r6, r5]
- cmp r0, 0
- beq _0811BE0E
- ldr r0, _0811BE34 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811BE0E
- ldr r0, _0811BE38 @ =sub_811BCBC
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811BE0E:
- ldr r0, _0811BE28 @ =0x0200c000
- ldrb r1, [r0]
- adds r1, 0x1
- ldrb r2, [r0]
- strb r1, [r0]
- movs r0, 0
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BE28: .4byte 0x0200c000
-_0811BE2C: .4byte 0x1fff0000
-_0811BE30: .4byte gUnknown_03004DE0
-_0811BE34: .4byte gPaletteFade
-_0811BE38: .4byte sub_811BCBC
- thumb_func_end sub_811BD60
-
- thumb_func_start sub_811BE3C
-sub_811BE3C: @ 811BE3C
- push {lr}
- bl sub_811D67C
- ldr r0, _0811BE64 @ =0x0200c000
- ldrb r0, [r0]
- cmp r0, 0
- beq _0811BE5E
- ldr r1, _0811BE68 @ =0x040000d4
- ldr r0, _0811BE6C @ =gUnknown_03004DE0
- str r0, [r1]
- movs r2, 0xF0
- lsls r2, 3
- adds r0, r2
- str r0, [r1, 0x4]
- ldr r0, _0811BE70 @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811BE5E:
- pop {r0}
- bx r0
- .align 2, 0
-_0811BE64: .4byte 0x0200c000
-_0811BE68: .4byte 0x040000d4
-_0811BE6C: .4byte gUnknown_03004DE0
-_0811BE70: .4byte 0x800000a0
- thumb_func_end sub_811BE3C
-
- thumb_func_start sub_811BE74
-sub_811BE74: @ 811BE74
- ldr r1, _0811BE94 @ =gUnknown_03004DE0
- ldr r0, _0811BE98 @ =REG_VCOUNT
- ldrh r0, [r0]
- lsls r0, 1
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _0811BE9C @ =REG_BG1VOFS
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0811BE94: .4byte gUnknown_03004DE0
-_0811BE98: .4byte REG_VCOUNT
-_0811BE9C: .4byte REG_BG1VOFS
- thumb_func_end sub_811BE74
-
- thumb_func_start sub_811BEA0
-sub_811BEA0: @ 811BEA0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811BED0 @ =gUnknown_083FD81C
- ldr r2, _0811BED4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811BEB2:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0811BEB2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811BED0: .4byte gUnknown_083FD81C
-_0811BED4: .4byte gTasks
- thumb_func_end sub_811BEA0
-
- thumb_func_start sub_811BED8
-sub_811BED8: @ 811BED8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- ldr r1, _0811BF20 @ =0x0200c000
- movs r2, 0
- movs r0, 0x3F
- strh r0, [r1, 0x2]
- strh r2, [r1, 0x4]
- movs r0, 0xF0
- strh r0, [r1, 0x6]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- movs r1, 0
- ldr r3, _0811BF24 @ =gUnknown_03005560
- movs r2, 0xF2
-_0811BEFC:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9F
- bls _0811BEFC
- ldr r0, _0811BF28 @ =sub_811C004
- bl SetVBlankCallback
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BF20: .4byte 0x0200c000
-_0811BF24: .4byte gUnknown_03005560
-_0811BF28: .4byte sub_811C004
- thumb_func_end sub_811BED8
-
- thumb_func_start sub_811BF2C
-sub_811BF2C: @ 811BF2C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- ldr r1, _0811BFBC @ =0x0200c000
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- ldr r7, _0811BFC0 @ =gUnknown_03004DE0
- ldrh r0, [r4, 0xC]
- ldrb r5, [r4, 0xC]
- adds r0, 0x10
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- adds r0, 0x8
- strh r0, [r4, 0xA]
- movs r6, 0
- movs r0, 0x1
- mov r8, r0
-_0811BF52:
- adds r0, r5, 0
- movs r1, 0x28
- bl Sin
- ldrh r1, [r4, 0xA]
- adds r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r0, 0
- bge _0811BF68
- movs r1, 0
-_0811BF68:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xF0
- ble _0811BF72
- movs r1, 0xF0
-_0811BF72:
- lsls r0, r1, 16
- asrs r0, 16
- lsls r1, r0, 8
- movs r2, 0xF1
- orrs r1, r2
- strh r1, [r7]
- cmp r0, 0xEF
- bgt _0811BF86
- movs r0, 0
- mov r8, r0
-_0811BF86:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, 0x2
- cmp r6, 0x9F
- bls _0811BF52
- mov r1, r8
- cmp r1, 0
- beq _0811BFA4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0811BFA4:
- ldr r0, _0811BFBC @ =0x0200c000
- ldrb r1, [r0]
- adds r1, 0x1
- ldrb r2, [r0]
- strb r1, [r0]
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BFBC: .4byte 0x0200c000
-_0811BFC0: .4byte gUnknown_03004DE0
- thumb_func_end sub_811BF2C
-
- thumb_func_start sub_811BFC4
-sub_811BFC4: @ 811BFC4
- push {lr}
- ldr r1, _0811BFF4 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _0811BFF8 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811BFFC @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D6D4
- ldr r0, _0811C000 @ =sub_811BEA0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811BFF4: .4byte 0x040000b0
-_0811BFF8: .4byte 0x0000c5ff
-_0811BFFC: .4byte 0x00007fff
-_0811C000: .4byte sub_811BEA0
- thumb_func_end sub_811BFC4
-
- thumb_func_start sub_811C004
-sub_811C004: @ 811C004
- push {r4,lr}
- ldr r4, _0811C060 @ =0x040000b0
- ldrh r1, [r4, 0xA]
- ldr r0, _0811C064 @ =0x0000c5ff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811C068 @ =0x00007fff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811C06C @ =0x0200c000
- ldrb r0, [r2]
- cmp r0, 0
- beq _0811C03A
- ldr r1, _0811C070 @ =0x040000d4
- ldr r0, _0811C074 @ =gUnknown_03004DE0
- str r0, [r1]
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
- str r0, [r1, 0x4]
- ldr r0, _0811C078 @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811C03A:
- ldr r1, _0811C07C @ =REG_WININ
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x4]
- strh r0, [r1]
- subs r1, 0x6
- ldrh r0, [r2, 0x8]
- strh r0, [r1]
- ldr r0, _0811C080 @ =gUnknown_03005560
- str r0, [r4]
- ldr r0, _0811C084 @ =REG_WIN0H
- str r0, [r4, 0x4]
- ldr r0, _0811C088 @ =0xa2400001
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C060: .4byte 0x040000b0
-_0811C064: .4byte 0x0000c5ff
-_0811C068: .4byte 0x00007fff
-_0811C06C: .4byte 0x0200c000
-_0811C070: .4byte 0x040000d4
-_0811C074: .4byte gUnknown_03004DE0
-_0811C078: .4byte 0x800000a0
-_0811C07C: .4byte REG_WININ
-_0811C080: .4byte gUnknown_03005560
-_0811C084: .4byte REG_WIN0H
-_0811C088: .4byte 0xa2400001
- thumb_func_end sub_811C004
-
- thumb_func_start sub_811C08C
-sub_811C08C: @ 811C08C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811C0A8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x26]
- bl sub_811C12C
- pop {r0}
- bx r0
- .align 2, 0
-_0811C0A8: .4byte gTasks
- thumb_func_end sub_811C08C
-
- thumb_func_start sub_811C0AC
-sub_811C0AC: @ 811C0AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811C0C8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x1
- strh r2, [r1, 0x26]
- bl sub_811C12C
- pop {r0}
- bx r0
- .align 2, 0
-_0811C0C8: .4byte gTasks
- thumb_func_end sub_811C0AC
-
- thumb_func_start sub_811C0CC
-sub_811C0CC: @ 811C0CC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811C0E8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x2
- strh r2, [r1, 0x26]
- bl sub_811C12C
- pop {r0}
- bx r0
- .align 2, 0
-_0811C0E8: .4byte gTasks
- thumb_func_end sub_811C0CC
-
- thumb_func_start sub_811C0EC
-sub_811C0EC: @ 811C0EC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811C108 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x3
- strh r2, [r1, 0x26]
- bl sub_811C12C
- pop {r0}
- bx r0
- .align 2, 0
-_0811C108: .4byte gTasks
- thumb_func_end sub_811C0EC
-
- thumb_func_start sub_811C10C
-sub_811C10C: @ 811C10C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811C128 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x4
- strh r2, [r1, 0x26]
- bl sub_811C12C
- pop {r0}
- bx r0
- .align 2, 0
-_0811C128: .4byte gTasks
- thumb_func_end sub_811C10C
-
- thumb_func_start sub_811C12C
-sub_811C12C: @ 811C12C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811C15C @ =gUnknown_083FD828
- ldr r2, _0811C160 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811C13E:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0811C13E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C15C: .4byte gUnknown_083FD828
-_0811C160: .4byte gTasks
- thumb_func_end sub_811C12C
-
- thumb_func_start sub_811C164
-sub_811C164: @ 811C164
- push {r4,lr}
- adds r4, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- adds r0, r4, 0
- bl sub_811C7B0
- movs r0, 0
- strh r0, [r4, 0xA]
- movs r0, 0x1
- strh r0, [r4, 0xC]
- movs r0, 0xEF
- strh r0, [r4, 0xE]
- ldr r1, _0811C1BC @ =0x0200c000
- movs r0, 0x3F
- strh r0, [r1, 0x2]
- movs r0, 0x3E
- strh r0, [r1, 0x4]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- movs r1, 0
- ldr r3, _0811C1C0 @ =gUnknown_03005560
- ldr r2, _0811C1C4 @ =0x0000f0f1
-_0811C196:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9F
- bls _0811C196
- ldr r0, _0811C1C8 @ =sub_811C670
- bl SetVBlankCallback
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C1BC: .4byte 0x0200c000
-_0811C1C0: .4byte gUnknown_03005560
-_0811C1C4: .4byte 0x0000f0f1
-_0811C1C8: .4byte sub_811C670
- thumb_func_end sub_811C164
-
- thumb_func_start sub_811C1CC
-sub_811C1CC: @ 811C1CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- mov r8, r0
- ldr r6, _0811C284 @ =gUnknown_083FDFF4
- add r1, sp, 0x4
- mov r0, sp
- bl sub_811D6A8
- ldr r0, _0811C288 @ =gUnknown_083FC348
- ldr r1, [sp, 0x4]
- movs r2, 0xF0
- bl CpuSet
- ldr r1, _0811C28C @ =gUnknown_083FDB00
- mov r2, r8
- movs r3, 0x26
- ldrsh r0, [r2, r3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _0811C290 @ =gUnknown_083FDB14
- ldr r0, _0811C294 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xFA
- movs r2, 0xC
- bl LoadPalette
- movs r1, 0
- ldr r5, [sp]
- ldr r0, _0811C298 @ =sub_811C77C
- mov r12, r0
- movs r2, 0xF0
- lsls r2, 8
- adds r7, r2, 0
-_0811C222:
- movs r0, 0
- lsls r3, r1, 16
- asrs r4, r3, 11
-_0811C228:
- lsls r2, r0, 16
- asrs r2, 16
- adds r1, r4, r2
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r6]
- orrs r0, r7
- strh r0, [r1]
- adds r2, 0x1
- lsls r2, 16
- adds r6, 0x2
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0x1F
- ble _0811C228
- movs r1, 0x80
- lsls r1, 9
- adds r0, r3, r1
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _0811C222
- ldr r2, _0811C29C @ =0x04000200
- ldrh r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strh r0, [r2]
- ldr r2, _0811C2A0 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x10
- orrs r0, r1
- strh r0, [r2]
- mov r0, r12
- bl SetHBlankCallback
- mov r2, r8
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- movs r0, 0
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C284: .4byte gUnknown_083FDFF4
-_0811C288: .4byte gUnknown_083FC348
-_0811C28C: .4byte gUnknown_083FDB00
-_0811C290: .4byte gUnknown_083FDB14
-_0811C294: .4byte gSaveBlock2
-_0811C298: .4byte sub_811C77C
-_0811C29C: .4byte 0x04000200
-_0811C2A0: .4byte REG_DISPSTAT
- thumb_func_end sub_811C1CC
-
- thumb_func_start sub_811C2A4
-sub_811C2A4: @ 811C2A4
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r1, _0811C384 @ =0x0200c000
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- ldr r7, _0811C388 @ =gUnknown_03004DE0
- ldrh r0, [r4, 0xA]
- ldrb r5, [r4, 0xA]
- adds r0, 0x10
- strh r0, [r4, 0xA]
- movs r6, 0
-_0811C2BC:
- adds r0, r5, 0
- movs r1, 0x10
- bl Sin
- ldrh r1, [r4, 0xC]
- adds r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r0, 0
- bge _0811C2D2
- movs r2, 0x1
-_0811C2D2:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0xF0
- ble _0811C2DC
- movs r2, 0xF0
-_0811C2DC:
- strh r2, [r7]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r7, 0x2
- adds r0, r5, 0
- adds r0, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r6, 0x4F
- bls _0811C2BC
- cmp r6, 0x9F
- bhi _0811C334
-_0811C2F6:
- adds r0, r5, 0
- movs r1, 0x10
- bl Sin
- ldrh r1, [r4, 0xE]
- subs r1, r0
- lsls r1, 16
- lsrs r2, r1, 16
- cmp r1, 0
- bge _0811C30C
- movs r2, 0
-_0811C30C:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0xEF
- ble _0811C316
- movs r2, 0xEF
-_0811C316:
- lsls r0, r2, 16
- asrs r0, 8
- movs r1, 0xF0
- orrs r0, r1
- strh r0, [r7]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r7, 0x2
- adds r0, r5, 0
- adds r0, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r6, 0x9F
- bls _0811C2F6
-_0811C334:
- ldrh r1, [r4, 0xC]
- adds r1, 0x8
- strh r1, [r4, 0xC]
- ldrh r0, [r4, 0xE]
- subs r0, 0x8
- strh r0, [r4, 0xE]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0xF0
- ble _0811C34C
- movs r0, 0xF0
- strh r0, [r4, 0xC]
-_0811C34C:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _0811C358
- movs r0, 0
- strh r0, [r4, 0xE]
-_0811C358:
- ldr r0, [r4, 0xC]
- cmp r0, 0xF0
- bne _0811C364
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0811C364:
- ldr r1, _0811C384 @ =0x0200c000
- ldrh r0, [r1, 0x18]
- subs r0, 0x8
- strh r0, [r1, 0x18]
- ldrh r0, [r1, 0x1A]
- adds r0, 0x8
- strh r0, [r1, 0x1A]
- ldrb r0, [r1]
- adds r0, 0x1
- ldrb r2, [r1]
- strb r0, [r1]
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C384: .4byte 0x0200c000
-_0811C388: .4byte gUnknown_03004DE0
- thumb_func_end sub_811C2A4
-
- thumb_func_start sub_811C38C
-sub_811C38C: @ 811C38C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, _0811C3F8 @ =0x0200c000
- ldrb r1, [r0]
- movs r1, 0
- strb r1, [r0]
- ldr r2, _0811C3FC @ =gUnknown_03004DE0
- adds r5, r0, 0
- movs r3, 0xF0
-_0811C39E:
- strh r3, [r2]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- adds r2, 0x2
- cmp r1, 0x9F
- bls _0811C39E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- strh r1, [r4, 0xC]
- strh r1, [r4, 0xE]
- ldrh r0, [r5, 0x18]
- subs r0, 0x8
- strh r0, [r5, 0x18]
- ldrh r0, [r5, 0x1A]
- adds r0, 0x8
- strh r0, [r5, 0x1A]
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- movs r1, 0
- bl sub_811CA10
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r1, 0x1
- bl sub_811CA10
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- bl sub_811CA28
- movs r0, 0x68
- bl PlaySE
- ldrb r0, [r5]
- adds r0, 0x1
- ldrb r1, [r5]
- strb r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C3F8: .4byte 0x0200c000
-_0811C3FC: .4byte gUnknown_03004DE0
- thumb_func_end sub_811C38C
-
- thumb_func_start sub_811C400
-sub_811C400: @ 811C400
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0811C438 @ =0x0200c000
- ldrh r0, [r1, 0x18]
- subs r0, 0x8
- strh r0, [r1, 0x18]
- ldrh r0, [r1, 0x1A]
- adds r0, 0x8
- strh r0, [r1, 0x1A]
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- bl sub_811CA44
- lsls r0, 16
- cmp r0, 0
- beq _0811C42E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- bl sub_811CA28
-_0811C42E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C438: .4byte 0x0200c000
- thumb_func_end sub_811C400
-
- thumb_func_start sub_811C43C
-sub_811C43C: @ 811C43C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldr r7, _0811C4D0 @ =0x0200c000
- ldrh r0, [r7, 0x18]
- subs r0, 0x8
- movs r1, 0
- mov r8, r1
- strh r0, [r7, 0x18]
- ldrh r0, [r7, 0x1A]
- adds r0, 0x8
- strh r0, [r7, 0x1A]
- movs r1, 0x24
- ldrsh r0, [r6, r1]
- bl sub_811CA44
- lsls r0, 16
- cmp r0, 0
- beq _0811C4C4
- ldrb r0, [r7]
- movs r0, 0
- strb r0, [r7]
- movs r0, 0
- bl SetVBlankCallback
- ldr r1, _0811C4D4 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _0811C4D8 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811C4DC @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldr r4, _0811C4E0 @ =gUnknown_03004DE0
- movs r5, 0xA0
- lsls r5, 1
- adds r0, r4, 0
- movs r1, 0
- adds r2, r5, 0
- bl memset
- movs r0, 0xF0
- lsls r0, 3
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0
- adds r2, r5, 0
- bl memset
- ldr r1, _0811C4E4 @ =REG_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- ldr r0, _0811C4E8 @ =REG_BLDY
- mov r1, r8
- strh r1, [r0]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- strh r1, [r6, 0xE]
- strh r1, [r6, 0x10]
- movs r0, 0xBF
- strh r0, [r7, 0xE]
- ldr r0, _0811C4EC @ =sub_811C700
- bl SetVBlankCallback
-_0811C4C4:
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C4D0: .4byte 0x0200c000
-_0811C4D4: .4byte 0x040000b0
-_0811C4D8: .4byte 0x0000c5ff
-_0811C4DC: .4byte 0x00007fff
-_0811C4E0: .4byte gUnknown_03004DE0
-_0811C4E4: .4byte REG_WIN0H
-_0811C4E8: .4byte REG_BLDY
-_0811C4EC: .4byte sub_811C700
- thumb_func_end sub_811C43C
-
- thumb_func_start sub_811C4F0
-sub_811C4F0: @ 811C4F0
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r1, _0811C5AC @ =0x0200c000
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- movs r6, 0x1
- ldrh r0, [r1, 0x18]
- subs r0, 0x8
- strh r0, [r1, 0x18]
- ldrh r0, [r1, 0x1A]
- adds r0, 0x8
- strh r0, [r1, 0x1A]
- ldrh r2, [r4, 0x10]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- adds r7, r1, 0
- cmp r0, 0x4F
- bgt _0811C51A
- adds r0, r2, 0x2
- strh r0, [r4, 0x10]
-_0811C51A:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0x50
- ble _0811C526
- movs r0, 0x50
- strh r0, [r4, 0x10]
-_0811C526:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- movs r1, 0x1
- ands r0, r1
- ldrh r2, [r4, 0x10]
- cmp r0, 0
- beq _0811C58C
- movs r3, 0
- lsls r0, r2, 16
- movs r6, 0
- cmp r0, 0
- blt _0811C58C
- movs r2, 0x50
- mov r12, r2
- ldr r5, _0811C5B0 @ =gUnknown_03004DE0
-_0811C546:
- lsls r0, r3, 16
- asrs r2, r0, 16
- mov r3, r12
- subs r1, r3, r2
- adds r0, r2, 0
- adds r0, 0x50
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- asrs r1, 15
- adds r1, r5
- ldrh r0, [r1]
- cmp r0, 0xF
- bhi _0811C568
- movs r6, 0x1
- adds r0, 0x1
- strh r0, [r1]
-_0811C568:
- lsls r0, r3, 16
- asrs r0, 15
- adds r1, r0, r5
- ldrh r0, [r1]
- cmp r0, 0xF
- bhi _0811C57A
- movs r6, 0x1
- adds r0, 0x1
- strh r0, [r1]
-_0811C57A:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- ldrh r2, [r4, 0x10]
- cmp r0, r1
- ble _0811C546
-_0811C58C:
- cmp r2, 0x50
- bne _0811C59A
- cmp r6, 0
- bne _0811C59A
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0811C59A:
- ldrb r0, [r7]
- adds r0, 0x1
- ldrb r1, [r7]
- strb r0, [r7]
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C5AC: .4byte 0x0200c000
-_0811C5B0: .4byte gUnknown_03004DE0
- thumb_func_end sub_811C4F0
-
- thumb_func_start sub_811C5B4
-sub_811C5B4: @ 811C5B4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _0811C5E0 @ =0x0200c000
- ldrb r0, [r4]
- movs r6, 0
- strb r6, [r4]
- movs r0, 0x1
- negs r0, r0
- ldr r2, _0811C5E4 @ =0x00007fff
- movs r1, 0x10
- bl BlendPalettes
- movs r0, 0xFF
- strh r0, [r4, 0xE]
- strh r6, [r5, 0xE]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C5E0: .4byte 0x0200c000
-_0811C5E4: .4byte 0x00007fff
- thumb_func_end sub_811C5B4
-
- thumb_func_start sub_811C5E8
-sub_811C5E8: @ 811C5E8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _0811C628 @ =0x0200c000
- ldrb r0, [r5]
- movs r0, 0
- strb r0, [r5]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- ldr r0, _0811C62C @ =gUnknown_03004DE0
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- movs r2, 0xA0
- lsls r2, 1
- bl memset
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- ble _0811C616
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0811C616:
- ldrb r0, [r5]
- adds r0, 0x1
- ldrb r1, [r5]
- strb r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C628: .4byte 0x0200c000
-_0811C62C: .4byte gUnknown_03004DE0
- thumb_func_end sub_811C5E8
-
- thumb_func_start sub_811C630
-sub_811C630: @ 811C630
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0811C664 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _0811C668 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811C66C @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D6D4
- ldr r0, [r4]
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C664: .4byte 0x040000b0
-_0811C668: .4byte 0x0000c5ff
-_0811C66C: .4byte 0x00007fff
- thumb_func_end sub_811C630
-
- thumb_func_start sub_811C670
-sub_811C670: @ 811C670
- push {r4,lr}
- ldr r4, _0811C6D4 @ =0x040000b0
- ldrh r1, [r4, 0xA]
- ldr r0, _0811C6D8 @ =0x0000c5ff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811C6DC @ =0x00007fff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811C6E0 @ =0x0200c000
- ldrb r0, [r2]
- cmp r0, 0
- beq _0811C6A6
- ldr r1, _0811C6E4 @ =0x040000d4
- ldr r0, _0811C6E8 @ =gUnknown_03004DE0
- str r0, [r1]
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
- str r0, [r1, 0x4]
- ldr r0, _0811C6EC @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811C6A6:
- ldr r1, _0811C6F0 @ =REG_BG0VOFS
- ldrh r0, [r2, 0x1C]
- strh r0, [r1]
- adds r1, 0x36
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x4]
- strh r0, [r1]
- subs r1, 0x6
- ldrh r0, [r2, 0x8]
- strh r0, [r1]
- ldr r0, _0811C6F4 @ =gUnknown_03005560
- str r0, [r4]
- ldr r0, _0811C6F8 @ =REG_WIN0H
- str r0, [r4, 0x4]
- ldr r0, _0811C6FC @ =0xa2400001
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C6D4: .4byte 0x040000b0
-_0811C6D8: .4byte 0x0000c5ff
-_0811C6DC: .4byte 0x00007fff
-_0811C6E0: .4byte 0x0200c000
-_0811C6E4: .4byte 0x040000d4
-_0811C6E8: .4byte gUnknown_03004DE0
-_0811C6EC: .4byte 0x800000a0
-_0811C6F0: .4byte REG_BG0VOFS
-_0811C6F4: .4byte gUnknown_03005560
-_0811C6F8: .4byte REG_WIN0H
-_0811C6FC: .4byte 0xa2400001
- thumb_func_end sub_811C670
-
- thumb_func_start sub_811C700
-sub_811C700: @ 811C700
- push {r4,lr}
- ldr r4, _0811C750 @ =0x040000b0
- ldrh r1, [r4, 0xA]
- ldr r0, _0811C754 @ =0x0000c5ff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811C758 @ =0x00007fff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811C75C @ =0x0200c000
- ldrb r0, [r2]
- cmp r0, 0
- beq _0811C736
- ldr r1, _0811C760 @ =0x040000d4
- ldr r0, _0811C764 @ =gUnknown_03004DE0
- str r0, [r1]
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
- str r0, [r1, 0x4]
- ldr r0, _0811C768 @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811C736:
- ldr r1, _0811C76C @ =REG_BLDCNT
- ldrh r0, [r2, 0xE]
- strh r0, [r1]
- ldr r0, _0811C770 @ =gUnknown_03005560
- str r0, [r4]
- ldr r0, _0811C774 @ =REG_BLDY
- str r0, [r4, 0x4]
- ldr r0, _0811C778 @ =0xa2400001
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C750: .4byte 0x040000b0
-_0811C754: .4byte 0x0000c5ff
-_0811C758: .4byte 0x00007fff
-_0811C75C: .4byte 0x0200c000
-_0811C760: .4byte 0x040000d4
-_0811C764: .4byte gUnknown_03004DE0
-_0811C768: .4byte 0x800000a0
-_0811C76C: .4byte REG_BLDCNT
-_0811C770: .4byte gUnknown_03005560
-_0811C774: .4byte REG_BLDY
-_0811C778: .4byte 0xa2400001
- thumb_func_end sub_811C700
-
- thumb_func_start sub_811C77C
-sub_811C77C: @ 811C77C
- push {lr}
- ldr r0, _0811C790 @ =REG_VCOUNT
- ldrh r0, [r0]
- cmp r0, 0x4F
- bhi _0811C79C
- ldr r0, _0811C794 @ =REG_BG0HOFS
- ldr r1, _0811C798 @ =0x0200c000
- ldrh r1, [r1, 0x18]
- b _0811C7A2
- .align 2, 0
-_0811C790: .4byte REG_VCOUNT
-_0811C794: .4byte REG_BG0HOFS
-_0811C798: .4byte 0x0200c000
-_0811C79C:
- ldr r0, _0811C7A8 @ =REG_BG0HOFS
- ldr r1, _0811C7AC @ =0x0200c000
- ldrh r1, [r1, 0x1A]
-_0811C7A2:
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0811C7A8: .4byte REG_BG0HOFS
-_0811C7AC: .4byte 0x0200c000
- thumb_func_end sub_811C77C
-
- thumb_func_start sub_811C7B0
-sub_811C7B0: @ 811C7B0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r0, _0811C8EC @ =gUnknown_083FD850
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- mov r8, r1
- add r0, r8
- ldrb r0, [r0]
- ldr r2, _0811C8F0 @ =gUnknown_083FD86A
- lsls r1, 2
- mov r8, r1
- adds r1, r2
- ldrh r1, [r1]
- subs r1, 0x20
- lsls r1, 16
- asrs r1, 16
- adds r2, 0x2
- add r2, r8
- ldrh r2, [r2]
- adds r2, 0x2A
- lsls r2, 16
- asrs r2, 16
- ldr r5, _0811C8F4 @ =0x0200c03c
- str r5, [sp]
- movs r3, 0
- bl CreateTrainerSprite_BirchSpeech
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r0, _0811C8F8 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- movs r1, 0x88
- lsls r1, 1
- str r5, [sp]
- movs r2, 0x6A
- movs r3, 0
- bl CreateTrainerSprite_BirchSpeech
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- movs r3, 0x22
- ldrsh r0, [r4, r3]
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- ldr r1, _0811C8FC @ =gSprites
- adds r5, r1
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- lsls r6, r0, 4
- adds r6, r0
- lsls r6, 2
- adds r6, r1
- ldr r0, _0811C900 @ =sub_811C90C
- str r0, [r5, 0x1C]
- str r0, [r6, 0x1C]
- ldrb r0, [r5, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r5, 0x1]
- ldrb r0, [r6, 0x1]
- orrs r0, r1
- strb r0, [r6, 0x1]
- bl AllocOamMatrix
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x1F
- mov r9, r3
- mov r4, r9
- ands r0, r4
- lsls r0, 1
- ldrb r2, [r5, 0x3]
- movs r4, 0x3F
- negs r4, r4
- adds r1, r4, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x3]
- bl AllocOamMatrix
- lsls r0, 24
- lsrs r0, 24
- mov r1, r9
- ands r0, r1
- lsls r0, 1
- ldrb r1, [r6, 0x3]
- ands r4, r1
- orrs r4, r0
- strb r4, [r6, 0x3]
- ldrb r2, [r5, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x40
- orrs r0, r2
- strb r0, [r5, 0x1]
- ldrb r0, [r6, 0x1]
- ands r1, r0
- orrs r1, r2
- strb r1, [r6, 0x1]
- ldrb r0, [r5, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r5, 0x3]
- ldrb r0, [r6, 0x3]
- orrs r0, r1
- strb r0, [r6, 0x3]
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- adds r0, r6, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- ldr r2, _0811C904 @ =gUnknown_083FD856
- mov r3, r8
- adds r1, r3, r2
- movs r4, 0
- ldrsh r1, [r1, r4]
- adds r2, 0x2
- add r8, r2
- mov r3, r8
- movs r4, 0
- ldrsh r2, [r3, r4]
- movs r3, 0
- bl SetOamMatrixRotationScaling
- ldrb r0, [r6, 0x3]
- lsls r0, 26
- lsrs r0, 27
- ldr r1, _0811C908 @ =0xfffffe00
- movs r2, 0x80
- lsls r2, 2
- movs r3, 0
- bl SetOamMatrixRotationScaling
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C8EC: .4byte gUnknown_083FD850
-_0811C8F0: .4byte gUnknown_083FD86A
-_0811C8F4: .4byte 0x0200c03c
-_0811C8F8: .4byte gSaveBlock2
-_0811C8FC: .4byte gSprites
-_0811C900: .4byte sub_811C90C
-_0811C904: .4byte gUnknown_083FD856
-_0811C908: .4byte 0xfffffe00
- thumb_func_end sub_811C7B0
-
- thumb_func_start sub_811C90C
-sub_811C90C: @ 811C90C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _0811C930 @ =gUnknown_083FD880
-_0811C912:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0811C912
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C930: .4byte gUnknown_083FD880
- thumb_func_end sub_811C90C
-
- thumb_func_start sub_811C934
-sub_811C934: @ 811C934
- movs r0, 0
- bx lr
- thumb_func_end sub_811C934
-
- thumb_func_start sub_811C938
-sub_811C938: @ 811C938
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r1, _0811C97C @ =gUnknown_083FD89C
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- add r4, sp, 0x4
- ldr r1, _0811C980 @ =gUnknown_083FD8A0
- adds r0, r4, 0
- movs r2, 0x4
- bl memcpy
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x30]
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- lsls r0, 1
- adds r4, r0
- ldrh r0, [r4]
- strh r0, [r5, 0x32]
- movs r0, 0x1
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C97C: .4byte gUnknown_083FD89C
-_0811C980: .4byte gUnknown_083FD8A0
- thumb_func_end sub_811C938
-
- thumb_func_start sub_811C984
-sub_811C984: @ 811C984
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- ldrh r3, [r1, 0x20]
- adds r2, r0, r3
- strh r2, [r1, 0x20]
- movs r3, 0x3C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0811C9A2
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x84
- bgt _0811C9B0
- b _0811C9AA
-_0811C9A2:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x67
- ble _0811C9B0
-_0811C9AA:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
-_0811C9B0:
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_811C984
-
- thumb_func_start sub_811C9B8
-sub_811C9B8: @ 811C9B8
- push {lr}
- adds r2, r0, 0
- ldrh r3, [r2, 0x32]
- ldrh r0, [r2, 0x30]
- adds r1, r3, r0
- strh r1, [r2, 0x30]
- ldrh r0, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- lsls r1, 16
- cmp r1, 0
- bne _0811C9DE
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- negs r0, r3
- strh r0, [r2, 0x32]
- movs r0, 0x1
- strh r0, [r2, 0x3A]
-_0811C9DE:
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_811C9B8
-
- thumb_func_start sub_811C9E4
-sub_811C9E4: @ 811C9E4
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x30]
- adds r0, r1
- strh r0, [r2, 0x30]
- ldrh r1, [r2, 0x20]
- adds r1, r0
- strh r1, [r2, 0x20]
- adds r1, 0x1F
- lsls r1, 16
- movs r0, 0x97
- lsls r0, 17
- cmp r1, r0
- bls _0811CA08
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
-_0811CA08:
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_811C9E4
-
- thumb_func_start sub_811CA10
-sub_811CA10: @ 811CA10
- ldr r3, _0811CA24 @ =gSprites
- lsls r0, 16
- asrs r0, 16
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- strh r1, [r2, 0x3C]
- bx lr
- .align 2, 0
-_0811CA24: .4byte gSprites
- thumb_func_end sub_811CA10
-
- thumb_func_start sub_811CA28
-sub_811CA28: @ 811CA28
- ldr r2, _0811CA40 @ =gSprites
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- bx lr
- .align 2, 0
-_0811CA40: .4byte gSprites
- thumb_func_end sub_811CA28
-
- thumb_func_start sub_811CA44
-sub_811CA44: @ 811CA44
- ldr r2, _0811CA58 @ =gSprites
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r2, 0x3A
- ldrsh r0, [r1, r2]
- bx lr
- .align 2, 0
-_0811CA58: .4byte gSprites
- thumb_func_end sub_811CA44
-
- thumb_func_start sub_811CA5C
-sub_811CA5C: @ 811CA5C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811CA8C @ =gUnknown_083FD8A4
- ldr r2, _0811CA90 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811CA6E:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0811CA6E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811CA8C: .4byte gUnknown_083FD8A4
-_0811CA90: .4byte gTasks
- thumb_func_end sub_811CA5C
-
- thumb_func_start sub_811CA94
-sub_811CA94: @ 811CA94
- push {r4-r6,lr}
- adds r4, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- movs r2, 0
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0xC]
- movs r0, 0x1
- strh r0, [r4, 0xE]
- ldr r1, _0811CB08 @ =0x0200c000
- movs r0, 0x3F
- strh r0, [r1, 0x2]
- strh r2, [r1, 0x4]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- ldr r3, _0811CB0C @ =gUnknown_03005560
- adds r6, r1, 0
- movs r5, 0xF0
-_0811CABE:
- lsls r0, r2, 1
- adds r0, r3
- ldrh r1, [r6, 0x14]
- strh r1, [r0]
- adds r0, r2, 0
- adds r0, 0xA0
- lsls r0, 1
- adds r0, r3
- strh r5, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x9F
- bls _0811CABE
- ldr r2, _0811CB10 @ =0x04000200
- ldrh r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strh r0, [r2]
- ldr r2, _0811CB14 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x10
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0811CB18 @ =sub_811CC28
- bl SetVBlankCallback
- ldr r0, _0811CB1C @ =sub_811CCB0
- bl SetHBlankCallback
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811CB08: .4byte 0x0200c000
-_0811CB0C: .4byte gUnknown_03005560
-_0811CB10: .4byte 0x04000200
-_0811CB14: .4byte REG_DISPSTAT
-_0811CB18: .4byte sub_811CC28
-_0811CB1C: .4byte sub_811CCB0
- thumb_func_end sub_811CA94
-
- thumb_func_start sub_811CB20
-sub_811CB20: @ 811CB20
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r2, r0, 0
- ldr r1, _0811CB98 @ =0x0200c000
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- ldrh r0, [r2, 0xC]
- lsls r0, 16
- asrs r0, 24
- ldrh r3, [r2, 0xA]
- adds r0, r3
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- mov r12, r1
- cmp r0, 0xF0
- ble _0811CB4A
- movs r0, 0xF0
- strh r0, [r2, 0xA]
-_0811CB4A:
- ldrh r4, [r2, 0xC]
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- ldr r0, _0811CB9C @ =0x00000fff
- ldrh r3, [r2, 0xE]
- cmp r1, r0
- bgt _0811CB5C
- adds r0, r4, r3
- strh r0, [r2, 0xC]
-_0811CB5C:
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0x7F
- bgt _0811CB68
- lsls r0, r3, 1
- strh r0, [r2, 0xE]
-_0811CB68:
- movs r5, 0
- ldr r7, _0811CBA0 @ =gUnknown_03004DE0
- movs r1, 0xA0
- lsls r1, 1
- adds r1, r7
- mov r8, r1
- mov r6, r12
-_0811CB76:
- lsls r0, r5, 1
- adds r3, r0, r7
- mov r1, r8
- adds r4, r0, r1
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- beq _0811CBA4
- ldrh r0, [r2, 0xA]
- ldrh r1, [r6, 0x14]
- adds r0, r1
- strh r0, [r3]
- ldrh r1, [r2, 0xA]
- movs r0, 0xF0
- subs r0, r1
- b _0811CBB4
- .align 2, 0
-_0811CB98: .4byte 0x0200c000
-_0811CB9C: .4byte 0x00000fff
-_0811CBA0: .4byte gUnknown_03004DE0
-_0811CBA4:
- ldrh r0, [r6, 0x14]
- ldrh r1, [r2, 0xA]
- subs r0, r1
- strh r0, [r3]
- ldrh r0, [r2, 0xA]
- lsls r0, 8
- movs r1, 0xF1
- orrs r0, r1
-_0811CBB4:
- strh r0, [r4]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x9F
- bls _0811CB76
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- cmp r0, 0xEF
- ble _0811CBCE
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_0811CBCE:
- mov r1, r12
- ldrb r0, [r1]
- adds r0, 0x1
- ldrb r1, [r1]
- mov r2, r12
- strb r0, [r2]
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_811CB20
-
- thumb_func_start sub_811CBE8
-sub_811CBE8: @ 811CBE8
- push {lr}
- ldr r1, _0811CC18 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _0811CC1C @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811CC20 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D6D4
- ldr r0, _0811CC24 @ =sub_811CA5C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811CC18: .4byte 0x040000b0
-_0811CC1C: .4byte 0x0000c5ff
-_0811CC20: .4byte 0x00007fff
-_0811CC24: .4byte sub_811CA5C
- thumb_func_end sub_811CBE8
-
- thumb_func_start sub_811CC28
-sub_811CC28: @ 811CC28
- push {r4,lr}
- ldr r4, _0811CC84 @ =0x040000b0
- ldrh r1, [r4, 0xA]
- ldr r0, _0811CC88 @ =0x0000c5ff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811CC8C @ =0x00007fff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811CC90 @ =REG_WININ
- ldr r1, _0811CC94 @ =0x0200c000
- ldrh r0, [r1, 0x2]
- strh r0, [r2]
- adds r2, 0x2
- ldrh r0, [r1, 0x4]
- strh r0, [r2]
- subs r2, 0x6
- ldrh r0, [r1, 0x8]
- strh r0, [r2]
- ldrb r0, [r1]
- cmp r0, 0
- beq _0811CC70
- ldr r1, _0811CC98 @ =0x040000d4
- ldr r0, _0811CC9C @ =gUnknown_03004DE0
- str r0, [r1]
- movs r2, 0xF0
- lsls r2, 3
- adds r0, r2
- str r0, [r1, 0x4]
- ldr r0, _0811CCA0 @ =0x80000140
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811CC70:
- ldr r0, _0811CCA4 @ =gUnknown_030056A0
- str r0, [r4]
- ldr r0, _0811CCA8 @ =REG_WIN0H
- str r0, [r4, 0x4]
- ldr r0, _0811CCAC @ =0xa2400001
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811CC84: .4byte 0x040000b0
-_0811CC88: .4byte 0x0000c5ff
-_0811CC8C: .4byte 0x00007fff
-_0811CC90: .4byte REG_WININ
-_0811CC94: .4byte 0x0200c000
-_0811CC98: .4byte 0x040000d4
-_0811CC9C: .4byte gUnknown_03004DE0
-_0811CCA0: .4byte 0x80000140
-_0811CCA4: .4byte gUnknown_030056A0
-_0811CCA8: .4byte REG_WIN0H
-_0811CCAC: .4byte 0xa2400001
- thumb_func_end sub_811CC28
-
- thumb_func_start sub_811CCB0
-sub_811CCB0: @ 811CCB0
- ldr r1, _0811CCD0 @ =gUnknown_03004DE0
- ldr r0, _0811CCD4 @ =REG_VCOUNT
- ldrh r0, [r0]
- lsls r0, 1
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _0811CCD8 @ =REG_BG1HOFS
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0811CCD0: .4byte gUnknown_03004DE0
-_0811CCD4: .4byte REG_VCOUNT
-_0811CCD8: .4byte REG_BG1HOFS
- thumb_func_end sub_811CCB0
-
- thumb_func_start sub_811CCDC
-sub_811CCDC: @ 811CCDC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811CD0C @ =gUnknown_083FD8B0
- ldr r2, _0811CD10 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811CCEE:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0811CCEE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811CD0C: .4byte gUnknown_083FD8B0
-_0811CD10: .4byte gTasks
- thumb_func_end sub_811CCDC
-
- thumb_func_start sub_811CD14
-sub_811CD14: @ 811CD14
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- ldr r1, _0811CD88 @ =0x0200c000
- movs r2, 0
- movs r0, 0xBF
- strh r0, [r1, 0xE]
- strh r2, [r1, 0x12]
- movs r0, 0x1E
- strh r0, [r1, 0x2]
- movs r0, 0x3F
- strh r0, [r1, 0x4]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- movs r1, 0
- ldr r2, _0811CD8C @ =gUnknown_03005560
- movs r4, 0
- movs r3, 0xF0
-_0811CD3E:
- lsls r0, r1, 1
- adds r0, r2
- strh r4, [r0]
- adds r0, r1, 0
- adds r0, 0xA0
- lsls r0, 1
- adds r0, r2
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x9F
- bls _0811CD3E
- ldr r2, _0811CD90 @ =0x04000200
- ldrh r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strh r0, [r2]
- ldr r2, _0811CD94 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x10
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0811CD98 @ =sub_811CFAC
- bl SetHBlankCallback
- ldr r0, _0811CD9C @ =sub_811CEE4
- bl SetVBlankCallback
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811CD88: .4byte 0x0200c000
-_0811CD8C: .4byte gUnknown_03005560
-_0811CD90: .4byte 0x04000200
-_0811CD94: .4byte REG_DISPSTAT
-_0811CD98: .4byte sub_811CFAC
-_0811CD9C: .4byte sub_811CEE4
- thumb_func_end sub_811CD14
-
- thumb_func_start sub_811CDA0
-sub_811CDA0: @ 811CDA0
- push {r4-r6,lr}
- sub sp, 0x10
- adds r6, r0, 0
- ldr r1, _0811CE08 @ =gUnknown_083FD8C4
- mov r0, sp
- movs r2, 0x10
- bl memcpy
- movs r5, 0
- movs r4, 0
-_0811CDB4:
- ldr r0, _0811CE0C @ =sub_811CFD0
- bl CreateInvisibleSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0811CE10 @ =gSprites
- adds r2, r1, r0
- movs r0, 0xF0
- strh r0, [r2, 0x20]
- strh r4, [r2, 0x22]
- lsls r1, r5, 16
- asrs r1, 16
- lsls r0, r1, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r2, 0x38]
- adds r1, 0x1
- lsls r1, 16
- lsls r0, r4, 16
- movs r3, 0xA0
- lsls r3, 13
- adds r0, r3
- lsrs r4, r0, 16
- lsrs r5, r1, 16
- asrs r1, 16
- cmp r1, 0x7
- ble _0811CDB4
- ldrh r0, [r2, 0x3A]
- adds r0, 0x1
- strh r0, [r2, 0x3A]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- movs r0, 0
- add sp, 0x10
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811CE08: .4byte gUnknown_083FD8C4
-_0811CE0C: .4byte sub_811CFD0
-_0811CE10: .4byte gSprites
- thumb_func_end sub_811CDA0
-
- thumb_func_start sub_811CE14
-sub_811CE14: @ 811CE14
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0811CE44 @ =0x0200c000
- ldrb r1, [r0]
- movs r1, 0
- strb r1, [r0]
- movs r1, 0x20
- ldrsh r0, [r0, r1]
- cmp r0, 0x7
- ble _0811CE3A
- movs r0, 0x1
- negs r0, r0
- ldr r2, _0811CE48 @ =0x00007fff
- movs r1, 0x10
- bl BlendPalettes
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0811CE3A:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811CE44: .4byte 0x0200c000
-_0811CE48: .4byte 0x00007fff
- thumb_func_end sub_811CE14
-
- thumb_func_start sub_811CE4C
-sub_811CE4C: @ 811CE4C
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r4, _0811CE9C @ =0x0200c000
- ldrb r0, [r4]
- movs r5, 0
- strb r5, [r4]
- ldr r1, _0811CEA0 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _0811CEA4 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811CEA8 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0xF0
- strh r0, [r4, 0x6]
- strh r5, [r4, 0x12]
- movs r0, 0xFF
- strh r0, [r4, 0xE]
- movs r0, 0x3F
- strh r0, [r4, 0x2]
- ldr r0, _0811CEAC @ =sub_811CF74
- bl SetVBlankCallback
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811CE9C: .4byte 0x0200c000
-_0811CEA0: .4byte 0x040000b0
-_0811CEA4: .4byte 0x0000c5ff
-_0811CEA8: .4byte 0x00007fff
-_0811CEAC: .4byte sub_811CF74
- thumb_func_end sub_811CE4C
-
- thumb_func_start sub_811CEB0
-sub_811CEB0: @ 811CEB0
- push {lr}
- ldr r1, _0811CEDC @ =0x0200c000
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x10
- bls _0811CED4
- bl sub_811D6D4
- ldr r0, _0811CEE0 @ =sub_811CCDC
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811CED4:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811CEDC: .4byte 0x0200c000
-_0811CEE0: .4byte sub_811CCDC
- thumb_func_end sub_811CEB0
-
- thumb_func_start sub_811CEE4
-sub_811CEE4: @ 811CEE4
- push {r4,lr}
- ldr r4, _0811CF48 @ =0x040000b0
- ldrh r1, [r4, 0xA]
- ldr r0, _0811CF4C @ =0x0000c5ff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811CF50 @ =0x00007fff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811CF54 @ =REG_BLDCNT
- ldr r1, _0811CF58 @ =0x0200c000
- ldrh r0, [r1, 0xE]
- strh r0, [r2]
- subs r2, 0x8
- ldrh r0, [r1, 0x2]
- strh r0, [r2]
- adds r2, 0x2
- ldrh r0, [r1, 0x4]
- strh r0, [r2]
- subs r2, 0x6
- ldrh r0, [r1, 0x6]
- strh r0, [r2]
- ldrb r0, [r1]
- cmp r0, 0
- beq _0811CF32
- ldr r1, _0811CF5C @ =0x040000d4
- ldr r0, _0811CF60 @ =gUnknown_03004DE0
- str r0, [r1]
- movs r2, 0xF0
- lsls r2, 3
- adds r0, r2
- str r0, [r1, 0x4]
- ldr r0, _0811CF64 @ =0x80000140
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811CF32:
- ldr r0, _0811CF68 @ =gUnknown_030056A0
- str r0, [r4]
- ldr r0, _0811CF6C @ =REG_WIN0H
- str r0, [r4, 0x4]
- ldr r0, _0811CF70 @ =0xa2400001
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811CF48: .4byte 0x040000b0
-_0811CF4C: .4byte 0x0000c5ff
-_0811CF50: .4byte 0x00007fff
-_0811CF54: .4byte REG_BLDCNT
-_0811CF58: .4byte 0x0200c000
-_0811CF5C: .4byte 0x040000d4
-_0811CF60: .4byte gUnknown_03004DE0
-_0811CF64: .4byte 0x80000140
-_0811CF68: .4byte gUnknown_030056A0
-_0811CF6C: .4byte REG_WIN0H
-_0811CF70: .4byte 0xa2400001
- thumb_func_end sub_811CEE4
-
- thumb_func_start sub_811CF74
-sub_811CF74: @ 811CF74
- push {lr}
- bl sub_811D67C
- ldr r1, _0811CFA4 @ =REG_BLDY
- ldr r2, _0811CFA8 @ =0x0200c000
- ldrh r0, [r2, 0x12]
- strh r0, [r1]
- subs r1, 0x4
- ldrh r0, [r2, 0xE]
- strh r0, [r1]
- subs r1, 0x8
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x4]
- strh r0, [r1]
- subs r1, 0xA
- ldrh r0, [r2, 0x6]
- strh r0, [r1]
- adds r1, 0x4
- ldrh r0, [r2, 0x8]
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0811CFA4: .4byte REG_BLDY
-_0811CFA8: .4byte 0x0200c000
- thumb_func_end sub_811CF74
-
- thumb_func_start sub_811CFAC
-sub_811CFAC: @ 811CFAC
- ldr r2, _0811CFC4 @ =REG_BLDY
- ldr r1, _0811CFC8 @ =gUnknown_03004DE0
- ldr r0, _0811CFCC @ =REG_VCOUNT
- ldrh r0, [r0]
- lsls r0, 1
- movs r3, 0xF0
- lsls r3, 3
- adds r1, r3
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- bx lr
- .align 2, 0
-_0811CFC4: .4byte REG_BLDY
-_0811CFC8: .4byte gUnknown_03004DE0
-_0811CFCC: .4byte REG_VCOUNT
- thumb_func_end sub_811CFAC
-
- thumb_func_start sub_811CFD0
-sub_811CFD0: @ 811CFD0
- push {r4-r6,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x38]
- movs r2, 0x38
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _0811CFF8
- subs r0, r1, 0x1
- strh r0, [r3, 0x38]
- movs r1, 0x3A
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _0811D0AA
- ldr r0, _0811CFF4 @ =0x0200c000
- ldrb r1, [r0]
- movs r1, 0x1
- strb r1, [r0]
- b _0811D0AA
- .align 2, 0
-_0811CFF4: .4byte 0x0200c000
-_0811CFF8:
- movs r2, 0x22
- ldrsh r1, [r3, r2]
- lsls r1, 1
- ldr r0, _0811D0B0 @ =gUnknown_03004DE0
- adds r6, r1, r0
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2
- adds r5, r1, r0
- movs r4, 0
-_0811D00C:
- lsls r1, r4, 1
- adds r2, r1, r6
- ldrh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2]
- adds r1, r5
- ldrh r0, [r3, 0x20]
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _0811D00C
- movs r1, 0x20
- ldrsh r0, [r3, r1]
- ldrh r2, [r3, 0x20]
- cmp r0, 0
- bne _0811D046
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bne _0811D046
- movs r0, 0x1
- strh r0, [r3, 0x30]
-_0811D046:
- adds r1, r2, 0
- subs r1, 0x10
- strh r1, [r3, 0x20]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x80
- strh r0, [r3, 0x2E]
- lsls r1, 16
- cmp r1, 0
- bge _0811D05C
- movs r0, 0
- strh r0, [r3, 0x20]
-_0811D05C:
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- movs r1, 0x80
- lsls r1, 5
- cmp r0, r1
- ble _0811D06A
- strh r1, [r3, 0x2E]
-_0811D06A:
- movs r0, 0x3A
- ldrsh r2, [r3, r0]
- cmp r2, 0
- beq _0811D07A
- ldr r0, _0811D0B4 @ =0x0200c000
- ldrb r1, [r0]
- movs r1, 0x1
- strb r1, [r0]
-_0811D07A:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _0811D0AA
- ldr r4, _0811D0B4 @ =0x0200c000
- cmp r2, 0
- beq _0811D09E
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x6
- ble _0811D0AA
- ldrh r0, [r3, 0x32]
- adds r1, r0, 0x1
- strh r1, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _0811D0AA
-_0811D09E:
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- adds r0, r3, 0
- bl DestroySprite
-_0811D0AA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D0B0: .4byte gUnknown_03004DE0
-_0811D0B4: .4byte 0x0200c000
- thumb_func_end sub_811CFD0
-
- thumb_func_start sub_811D0B8
-sub_811D0B8: @ 811D0B8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811D0E8 @ =gUnknown_083FD8D4
- ldr r2, _0811D0EC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811D0CA:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0811D0CA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D0E8: .4byte gUnknown_083FD8D4
-_0811D0EC: .4byte gTasks
- thumb_func_end sub_811D0B8
-
- thumb_func_start sub_811D0F0
-sub_811D0F0: @ 811D0F0
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- add r0, sp, 0x4
- add r1, sp, 0x8
- bl sub_811D6A8
- ldr r0, _0811D138 @ =gUnknown_083FD528
- ldr r1, [sp, 0x8]
- movs r2, 0x10
- bl CpuSet
- mov r1, sp
- movs r2, 0xF0
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, [sp, 0x4]
- ldr r2, _0811D13C @ =0x01000400
- mov r0, sp
- bl CpuSet
- ldr r0, _0811D140 @ =gFieldEffectObjectPalette10
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811D138: .4byte gUnknown_083FD528
-_0811D13C: .4byte 0x01000400
-_0811D140: .4byte gFieldEffectObjectPalette10
- thumb_func_end sub_811D0F0
-
- thumb_func_start sub_811D144
-sub_811D144: @ 811D144
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0811D186
- mov r0, sp
- bl sub_811D690
- movs r0, 0x3
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- lsls r0, 5
- ldr r1, _0811D198 @ =gUnknown_083FD528
- adds r0, r1
- ldr r1, [sp]
- movs r2, 0x10
- bl CpuSet
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0xD
- ble _0811D186
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x10
- strh r0, [r4, 0xA]
-_0811D186:
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811D198: .4byte gUnknown_083FD528
- thumb_func_end sub_811D144
-
- thumb_func_start sub_811D19C
-sub_811D19C: @ 811D19C
- push {lr}
- ldrh r1, [r0, 0xA]
- subs r1, 0x1
- strh r1, [r0, 0xA]
- lsls r1, 16
- cmp r1, 0
- bne _0811D1BC
- bl sub_811D6D4
- ldr r0, _0811D1C4 @ =sub_811D0B8
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811D1BC:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811D1C4: .4byte sub_811D0B8
- thumb_func_end sub_811D19C
-
- thumb_func_start sub_811D1C8
-sub_811D1C8: @ 811D1C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811D1F8 @ =gUnknown_083FD8E0
- ldr r2, _0811D1FC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811D1DA:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0811D1DA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D1F8: .4byte gUnknown_083FD8E0
-_0811D1FC: .4byte gTasks
- thumb_func_end sub_811D1C8
-
- thumb_func_start sub_811D200
-sub_811D200: @ 811D200
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- ldr r1, _0811D254 @ =0x0200c000
- movs r2, 0
- movs r0, 0x3F
- strh r0, [r1, 0x2]
- strh r2, [r1, 0x4]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- movs r1, 0
- ldr r2, _0811D258 @ =gUnknown_03004DE0
- movs r3, 0xF0
- adds r4, r2, 0
-_0811D222:
- lsls r0, r1, 1
- adds r0, r2
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x9F
- bls _0811D222
- movs r0, 0xF0
- lsls r0, 3
- adds r1, r4, r0
- adds r0, r4, 0
- movs r2, 0xA0
- bl CpuSet
- ldr r0, _0811D25C @ =sub_811D438
- bl SetVBlankCallback
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811D254: .4byte 0x0200c000
-_0811D258: .4byte gUnknown_03004DE0
-_0811D25C: .4byte sub_811D438
- thumb_func_end sub_811D200
-
- thumb_func_start sub_811D260
-sub_811D260: @ 811D260
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- mov r8, r0
- ldr r0, _0811D2D0 @ =0x0200c024
- ldr r6, _0811D2D4 @ =gUnknown_083FD8F4
- mov r2, r8
- movs r3, 0xA
- ldrsh r1, [r2, r3]
- lsls r4, r1, 2
- adds r4, r1
- lsls r4, 1
- adds r1, r4, r6
- movs r5, 0
- ldrsh r1, [r1, r5]
- adds r2, r6, 0x2
- adds r2, r4, r2
- movs r3, 0
- ldrsh r2, [r2, r3]
- adds r3, r6, 0x4
- adds r3, r4, r3
- movs r5, 0
- ldrsh r3, [r3, r5]
- adds r5, r6, 0x6
- adds r4, r5
- movs r5, 0
- ldrsh r4, [r4, r5]
- str r4, [sp]
- movs r4, 0x1
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- bl sub_811D8FC
- mov r0, r8
- movs r2, 0xA
- ldrsh r1, [r0, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r6, 0x8
- adds r0, r6
- ldrh r0, [r0]
- mov r3, r8
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- movs r0, 0x1
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811D2D0: .4byte 0x0200c024
-_0811D2D4: .4byte gUnknown_083FD8F4
- thumb_func_end sub_811D260
-
- thumb_func_start sub_811D2D8
-sub_811D2D8: @ 811D2D8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- ldr r0, _0811D324 @ =0x0200c000
- ldrb r1, [r0]
- movs r1, 0
- strb r1, [r0]
- mov r8, r1
- mov r12, r1
- adds r6, r0, 0
- ldr r0, _0811D328 @ =gUnknown_03004DE0
- mov r9, r0
-_0811D2F4:
- ldr r1, _0811D328 @ =gUnknown_03004DE0
- movs r2, 0x2A
- ldrsh r0, [r6, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsrs r3, r0, 8
- movs r4, 0xFF
- ands r4, r0
- movs r1, 0xC
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _0811D32C
- movs r2, 0x28
- ldrsh r0, [r6, r2]
- cmp r3, r0
- bge _0811D318
- ldrh r3, [r6, 0x28]
-_0811D318:
- lsls r0, r3, 16
- lsls r1, r4, 16
- cmp r0, r1
- ble _0811D344
- lsrs r3, r1, 16
- b _0811D344
- .align 2, 0
-_0811D324: .4byte 0x0200c000
-_0811D328: .4byte gUnknown_03004DE0
-_0811D32C:
- lsls r0, r4, 16
- asrs r0, 16
- movs r2, 0x28
- ldrsh r1, [r6, r2]
- cmp r0, r1
- ble _0811D33A
- ldrh r4, [r6, 0x28]
-_0811D33A:
- lsls r0, r4, 16
- lsls r1, r3, 16
- cmp r0, r1
- bgt _0811D344
- lsrs r4, r1, 16
-_0811D344:
- ldr r5, _0811D368 @ =0x0200c000
- movs r0, 0x2A
- ldrsh r2, [r5, r0]
- lsls r2, 1
- add r2, r9
- lsls r1, r3, 16
- asrs r1, 8
- lsls r0, r4, 16
- asrs r0, 16
- orrs r0, r1
- strh r0, [r2]
- mov r1, r12
- cmp r1, 0
- beq _0811D36C
- ldrh r0, [r7, 0x8]
- adds r0, 0x1
- strh r0, [r7, 0x8]
- b _0811D392
- .align 2, 0
-_0811D368: .4byte 0x0200c000
-_0811D36C:
- adds r0, r5, 0
- adds r0, 0x24
- movs r1, 0x1
- movs r2, 0x1
- bl sub_811D978
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- mov r2, r8
- lsls r0, r2, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r2, r0, 16
- mov r8, r2
- asrs r0, 16
- cmp r0, 0xF
- ble _0811D2F4
-_0811D392:
- ldr r0, _0811D3AC @ =0x0200c000
- ldrb r1, [r0]
- adds r1, 0x1
- ldrb r2, [r0]
- strb r1, [r0]
- movs r0, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811D3AC: .4byte 0x0200c000
- thumb_func_end sub_811D2D8
-
- thumb_func_start sub_811D3B0
-sub_811D3B0: @ 811D3B0
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _0811D3FC
- ldr r1, _0811D3EC @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _0811D3F0 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811D3F4 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D6D4
- ldr r0, _0811D3F8 @ =sub_811D1C8
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- b _0811D414
- .align 2, 0
-_0811D3EC: .4byte 0x040000b0
-_0811D3F0: .4byte 0x0000c5ff
-_0811D3F4: .4byte 0x00007fff
-_0811D3F8: .4byte sub_811D1C8
-_0811D3FC:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- ldr r1, _0811D418 @ =gUnknown_083FD93A
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- subs r0, 0x1
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2, 0xE]
- movs r0, 0x1
-_0811D414:
- pop {r1}
- bx r1
- .align 2, 0
-_0811D418: .4byte gUnknown_083FD93A
- thumb_func_end sub_811D3B0
-
- thumb_func_start sub_811D41C
-sub_811D41C: @ 811D41C
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0xE]
- subs r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- cmp r0, 0
- beq _0811D430
- movs r0, 0
- b _0811D434
-_0811D430:
- movs r0, 0x1
- strh r0, [r1, 0x8]
-_0811D434:
- pop {r1}
- bx r1
- thumb_func_end sub_811D41C
-
- thumb_func_start sub_811D438
-sub_811D438: @ 811D438
- push {r4,lr}
- ldr r4, _0811D4A0 @ =0x040000b0
- ldrh r1, [r4, 0xA]
- ldr r0, _0811D4A4 @ =0x0000c5ff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811D4A8 @ =0x00007fff
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811D4AC @ =0x0200c000
- ldrb r0, [r2]
- cmp r0, 0
- beq _0811D46E
- ldr r1, _0811D4B0 @ =0x040000d4
- ldr r0, _0811D4B4 @ =gUnknown_03004DE0
- str r0, [r1]
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
- str r0, [r1, 0x4]
- ldr r0, _0811D4B8 @ =0x800000a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811D46E:
- ldr r1, _0811D4BC @ =REG_WININ
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x4]
- strh r0, [r1]
- subs r1, 0x6
- ldrh r0, [r2, 0x8]
- strh r0, [r1]
- ldr r2, _0811D4C0 @ =REG_WIN0H
- ldr r0, _0811D4B4 @ =gUnknown_03004DE0
- movs r1, 0xF0
- lsls r1, 3
- adds r0, r1
- ldrh r1, [r0]
- strh r1, [r2]
- str r0, [r4]
- str r2, [r4, 0x4]
- ldr r0, _0811D4C4 @ =0xa2400001
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D4A0: .4byte 0x040000b0
-_0811D4A4: .4byte 0x0000c5ff
-_0811D4A8: .4byte 0x00007fff
-_0811D4AC: .4byte 0x0200c000
-_0811D4B0: .4byte 0x040000d4
-_0811D4B4: .4byte gUnknown_03004DE0
-_0811D4B8: .4byte 0x800000a0
-_0811D4BC: .4byte REG_WININ
-_0811D4C0: .4byte REG_WIN0H
-_0811D4C4: .4byte 0xa2400001
- thumb_func_end sub_811D438
-
- thumb_func_start sub_811D4C8
-sub_811D4C8: @ 811D4C8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- mov r8, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r3, [sp, 0x18]
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r0, _0811D524 @ =sub_811D54C
- movs r1, 0x3
- str r3, [sp]
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811D528 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- mov r0, r8
- strh r0, [r1, 0xA]
- strh r4, [r1, 0xC]
- strh r5, [r1, 0xE]
- strh r6, [r1, 0x10]
- ldr r3, [sp]
- strh r3, [r1, 0x12]
- strh r0, [r1, 0x14]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D524: .4byte sub_811D54C
-_0811D528: .4byte gTasks
- thumb_func_end sub_811D4C8
-
- thumb_func_start sub_811D52C
-sub_811D52C: @ 811D52C
- push {lr}
- ldr r0, _0811D540 @ =sub_811D54C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0811D544
- movs r0, 0
- b _0811D546
- .align 2, 0
-_0811D540: .4byte sub_811D54C
-_0811D544:
- movs r0, 0x1
-_0811D546:
- pop {r1}
- bx r1
- thumb_func_end sub_811D52C
-
- thumb_func_start sub_811D54C
-sub_811D54C: @ 811D54C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811D57C @ =gUnknown_083FD948
- ldr r2, _0811D580 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811D55E:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0811D55E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D57C: .4byte gUnknown_083FD948
-_0811D580: .4byte gTasks
- thumb_func_end sub_811D54C
-
- thumb_func_start sub_811D584
-sub_811D584: @ 811D584
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0811D59C
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bne _0811D5C0
-_0811D59C:
- ldrh r0, [r4, 0xA]
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0x16]
- adds r0, r1
- strh r0, [r4, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _0811D5B4
- movs r0, 0x10
- strh r0, [r4, 0x16]
-_0811D5B4:
- movs r0, 0x1
- negs r0, r0
- ldrb r1, [r4, 0x16]
- ldr r2, _0811D5DC @ =0x00002d6b
- bl BlendPalettes
-_0811D5C0:
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- ble _0811D5D2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0x14]
-_0811D5D2:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811D5DC: .4byte 0x00002d6b
- thumb_func_end sub_811D584
-
- thumb_func_start sub_811D5E0
-sub_811D5E0: @ 811D5E0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0811D5F8
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bne _0811D61A
-_0811D5F8:
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0x16]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x16]
- lsls r0, 16
- cmp r0, 0
- bge _0811D60E
- movs r0, 0
- strh r0, [r4, 0x16]
-_0811D60E:
- movs r0, 0x1
- negs r0, r0
- ldrb r1, [r4, 0x16]
- ldr r2, _0811D640 @ =0x00002d6b
- bl BlendPalettes
-_0811D61A:
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _0811D64E
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0811D648
- ldr r0, _0811D644 @ =sub_811D54C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- b _0811D64E
- .align 2, 0
-_0811D640: .4byte 0x00002d6b
-_0811D644: .4byte sub_811D54C
-_0811D648:
- ldrh r0, [r4, 0xA]
- strh r0, [r4, 0x14]
- strh r1, [r4, 0x8]
-_0811D64E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_811D5E0
-
- thumb_func_start sub_811D658
-sub_811D658: @ 811D658
- push {lr}
- ldr r0, _0811D674 @ =gUnknown_083FD708
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0x3C
- bl memset
- ldr r0, _0811D678 @ =0x0200c014
- adds r1, r0, 0x2
- bl sub_8057B14
- pop {r0}
- bx r0
- .align 2, 0
-_0811D674: .4byte gUnknown_083FD708
-_0811D678: .4byte 0x0200c014
- thumb_func_end sub_811D658
-
- thumb_func_start sub_811D67C
-sub_811D67C: @ 811D67C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_811D67C
-
- thumb_func_start sub_811D690
-sub_811D690: @ 811D690
- ldr r1, _0811D6A4 @ =REG_BG0CNT
- ldrh r1, [r1]
- lsrs r1, 2
- lsls r1, 30
- lsrs r1, 16
- movs r2, 0xC0
- lsls r2, 19
- adds r1, r2
- str r1, [r0]
- bx lr
- .align 2, 0
-_0811D6A4: .4byte REG_BG0CNT
- thumb_func_end sub_811D690
-
- thumb_func_start sub_811D6A8
-sub_811D6A8: @ 811D6A8
- push {r4,lr}
- ldr r3, _0811D6D0 @ =REG_BG0CNT
- ldrh r2, [r3]
- lsrs r2, 8
- ldrh r3, [r3]
- lsrs r3, 2
- lsls r2, 27
- lsrs r2, 16
- lsls r3, 30
- lsrs r3, 16
- movs r4, 0xC0
- lsls r4, 19
- adds r2, r4
- str r2, [r0]
- adds r3, r4
- str r3, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D6D0: .4byte REG_BG0CNT
- thumb_func_end sub_811D6A8
-
- thumb_func_start sub_811D6D4
-sub_811D6D4: @ 811D6D4
- push {lr}
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- pop {r0}
- bx r0
- thumb_func_end sub_811D6D4
-
- thumb_func_start sub_811D6E8
-sub_811D6E8: @ 811D6E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- ldr r0, [sp, 0x20]
- ldr r4, [sp, 0x24]
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- lsls r0, 16
- lsrs r1, r0, 16
- lsls r4, 16
- movs r6, 0
- lsrs r5, r4, 16
- cmp r4, 0
- ble _0811D750
- lsls r0, r7, 16
- asrs r0, 16
- mov r9, r0
- lsls r1, 16
- mov r8, r1
- lsls r0, r3, 16
- asrs r7, r0, 16
-_0811D720:
- lsls r4, r2, 16
- asrs r4, 16
- movs r0, 0xFF
- ands r0, r4
- mov r2, r8
- asrs r1, r2, 16
- bl Sin
- lsls r1, r6, 1
- add r1, r10
- add r0, r9
- strh r0, [r1]
- lsls r1, r5, 16
- ldr r0, _0811D760 @ =0xffff0000
- adds r1, r0
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r4, r7
- lsls r4, 16
- lsrs r2, r4, 16
- lsrs r5, r1, 16
- cmp r1, 0
- bgt _0811D720
-_0811D750:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D760: .4byte 0xffff0000
- thumb_func_end sub_811D6E8
-
- thumb_func_start sub_811D764
-sub_811D764: @ 811D764
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r9, r0
- adds r5, r2, 0
- adds r4, r3, 0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- movs r2, 0xA0
- lsls r2, 1
- movs r1, 0xA
- bl memset
- movs r1, 0
- lsls r4, 16
- asrs r4, 16
- str r4, [sp, 0x4]
- lsls r5, 16
- asrs r5, 16
- str r5, [sp, 0x8]
-_0811D79C:
- lsls r5, r1, 16
- asrs r0, r5, 16
- mov r10, r0
- ldr r1, [sp, 0x4]
- bl Sin
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r10
- ldr r1, [sp, 0x4]
- bl Cos
- ldr r2, [sp]
- lsls r1, r2, 16
- asrs r1, 16
- lsls r4, 16
- asrs r4, 16
- subs r2, r1, r4
- lsls r2, 16
- adds r1, r4
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r0, 16
- asrs r0, 16
- ldr r3, [sp, 0x8]
- subs r1, r3, r0
- lsls r1, 16
- lsrs r7, r1, 16
- adds r0, r3, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsrs r1, r2, 16
- str r5, [sp, 0x10]
- cmp r2, 0
- bge _0811D7E8
- movs r1, 0
-_0811D7E8:
- lsls r0, r6, 16
- asrs r0, 16
- cmp r0, 0xF0
- ble _0811D7F2
- movs r6, 0xF0
-_0811D7F2:
- lsls r0, r7, 16
- cmp r0, 0
- bge _0811D7FA
- movs r7, 0
-_0811D7FA:
- mov r2, r8
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x9F
- ble _0811D808
- movs r3, 0x9F
- mov r8, r3
-_0811D808:
- lsls r0, r1, 24
- lsrs r0, 16
- orrs r6, r0
- lsls r0, r7, 16
- asrs r0, 16
- str r0, [sp, 0xC]
- lsls r0, 1
- add r0, r9
- strh r6, [r0]
- mov r0, r8
- lsls r4, r0, 16
- asrs r0, r4, 15
- add r0, r9
- strh r6, [r0]
- mov r0, r10
- adds r0, 0x1
- lsls r0, 16
- asrs r0, 16
- ldr r1, [sp, 0x4]
- bl Cos
- lsls r0, 16
- asrs r0, 16
- ldr r2, [sp, 0x8]
- subs r1, r2, r0
- lsls r1, 16
- adds r0, r2, r0
- lsls r0, 16
- lsrs r2, r0, 16
- lsrs r3, r1, 16
- cmp r1, 0
- bge _0811D84A
- movs r3, 0
-_0811D84A:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x9F
- ble _0811D854
- movs r2, 0x9F
-_0811D854:
- lsls r0, r3, 16
- asrs r1, r0, 16
- adds r3, r0, 0
- lsls r5, r2, 16
- ldr r0, [sp, 0xC]
- cmp r0, r1
- ble _0811D878
- adds r2, r1, 0
-_0811D864:
- lsls r1, r7, 16
- ldr r0, _0811D8F8 @ =0xffff0000
- adds r1, r0
- asrs r0, r1, 15
- add r0, r9
- strh r6, [r0]
- lsrs r7, r1, 16
- asrs r1, 16
- cmp r1, r2
- bgt _0811D864
-_0811D878:
- lsls r1, r7, 16
- asrs r0, r3, 16
- cmp r1, r3
- bge _0811D896
- adds r2, r0, 0
-_0811D882:
- movs r3, 0x80
- lsls r3, 9
- adds r0, r1, r3
- asrs r1, r0, 15
- add r1, r9
- strh r6, [r1]
- adds r1, r0, 0
- asrs r0, r1, 16
- cmp r0, r2
- blt _0811D882
-_0811D896:
- asrs r0, r5, 16
- cmp r4, r5
- ble _0811D8B4
- adds r1, r0, 0
-_0811D89E:
- ldr r2, _0811D8F8 @ =0xffff0000
- adds r0, r4, r2
- lsrs r3, r0, 16
- mov r8, r3
- asrs r0, 15
- add r0, r9
- strh r6, [r0]
- lsls r4, r3, 16
- asrs r0, r4, 16
- cmp r0, r1
- bgt _0811D89E
-_0811D8B4:
- mov r0, r8
- lsls r4, r0, 16
- asrs r0, r5, 16
- cmp r4, r5
- bge _0811D8D4
- adds r2, r0, 0
-_0811D8C0:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r4, r1
- asrs r1, r0, 15
- add r1, r9
- strh r6, [r1]
- adds r4, r0, 0
- asrs r0, r4, 16
- cmp r0, r2
- blt _0811D8C0
-_0811D8D4:
- ldr r2, [sp, 0x10]
- movs r3, 0x80
- lsls r3, 9
- adds r0, r2, r3
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- bgt _0811D8E6
- b _0811D79C
-_0811D8E6:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D8F8: .4byte 0xffff0000
- thumb_func_end sub_811D764
-
- thumb_func_start sub_811D8FC
-sub_811D8FC: @ 811D8FC
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r0, [sp, 0x14]
- ldr r5, [sp, 0x18]
- ldr r4, [sp, 0x1C]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- lsls r0, 16
- lsrs r0, 16
- adds r7, r0, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- strh r1, [r6]
- strh r2, [r6, 0x2]
- strh r1, [r6, 0x4]
- strh r2, [r6, 0x6]
- strh r3, [r6, 0x8]
- strh r7, [r6, 0xA]
- strh r5, [r6, 0xC]
- strh r4, [r6, 0xE]
- lsls r3, 16
- asrs r3, 16
- lsls r1, 16
- asrs r1, 16
- subs r3, r1
- strh r3, [r6, 0x10]
- lsls r0, r3, 16
- cmp r0, 0
- bge _0811D94E
- negs r0, r3
- strh r0, [r6, 0x10]
- lsls r0, r5, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r6, 0xC]
-_0811D94E:
- lsls r0, r7, 16
- asrs r0, 16
- lsls r1, r2, 16
- asrs r1, 16
- subs r1, r0, r1
- strh r1, [r6, 0x12]
- lsls r0, r1, 16
- cmp r0, 0
- bge _0811D96C
- negs r0, r1
- strh r0, [r6, 0x12]
- lsls r0, r4, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r6, 0xE]
-_0811D96C:
- movs r0, 0
- strh r0, [r6, 0x14]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_811D8FC
-
- thumb_func_start sub_811D978
-sub_811D978: @ 811D978
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r3, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- ldrh r0, [r3, 0x10]
- mov r8, r0
- movs r1, 0x10
- ldrsh r6, [r3, r1]
- ldrh r2, [r3, 0x12]
- mov r12, r2
- movs r4, 0x12
- ldrsh r5, [r3, r4]
- cmp r6, r5
- ble _0811D9C8
- ldrh r0, [r3, 0xC]
- ldrh r2, [r3, 0x4]
- adds r1, r0, r2
- strh r1, [r3, 0x4]
- ldrh r2, [r3, 0x14]
- add r2, r12
- strh r2, [r3, 0x14]
- lsls r1, r2, 16
- asrs r1, 16
- adds r4, r0, 0
- ldrh r7, [r3, 0xE]
- cmp r1, r6
- ble _0811D9EE
- ldrh r1, [r3, 0x6]
- adds r0, r7, r1
- strh r0, [r3, 0x6]
- mov r1, r8
- b _0811D9EA
-_0811D9C8:
- ldrh r0, [r3, 0xE]
- ldrh r2, [r3, 0x6]
- adds r1, r0, r2
- strh r1, [r3, 0x6]
- ldrh r2, [r3, 0x14]
- add r2, r8
- strh r2, [r3, 0x14]
- lsls r1, r2, 16
- asrs r1, 16
- ldrh r4, [r3, 0xC]
- adds r7, r0, 0
- cmp r1, r5
- ble _0811D9EE
- ldrh r1, [r3, 0x4]
- adds r0, r4, r1
- strh r0, [r3, 0x4]
- mov r1, r12
-_0811D9EA:
- subs r0, r2, r1
- strh r0, [r3, 0x14]
-_0811D9EE:
- movs r5, 0
- lsls r0, r4, 16
- asrs r2, r0, 16
- cmp r2, 0
- ble _0811DA06
- movs r4, 0x4
- ldrsh r1, [r3, r4]
- movs r4, 0x8
- ldrsh r0, [r3, r4]
- ldrh r4, [r3, 0x8]
- cmp r1, r0
- bge _0811DA18
-_0811DA06:
- cmp r2, 0
- bge _0811DA26
- movs r0, 0x4
- ldrsh r1, [r3, r0]
- movs r2, 0x8
- ldrsh r0, [r3, r2]
- ldrh r4, [r3, 0x8]
- cmp r1, r0
- bgt _0811DA26
-_0811DA18:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r9
- cmp r0, 0
- beq _0811DA26
- strh r4, [r3, 0x4]
-_0811DA26:
- lsls r0, r7, 16
- asrs r2, r0, 16
- cmp r2, 0
- ble _0811DA3C
- movs r4, 0x6
- ldrsh r1, [r3, r4]
- movs r4, 0xA
- ldrsh r0, [r3, r4]
- ldrh r4, [r3, 0xA]
- cmp r1, r0
- bge _0811DA4E
-_0811DA3C:
- cmp r2, 0
- bge _0811DA5C
- movs r0, 0x6
- ldrsh r1, [r3, r0]
- movs r2, 0xA
- ldrsh r0, [r3, r2]
- ldrh r4, [r3, 0xA]
- cmp r1, r0
- bgt _0811DA5C
-_0811DA4E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r10
- cmp r0, 0
- beq _0811DA5C
- strh r4, [r3, 0x6]
-_0811DA5C:
- cmp r5, 0x2
- beq _0811DA64
- movs r0, 0
- b _0811DA66
-_0811DA64:
- movs r0, 0x1
-_0811DA66:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_811D978
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/berry_blender.s b/asm/berry_blender.s
deleted file mode 100644
index b6ee5f9f3..000000000
--- a/asm/berry_blender.s
+++ /dev/null
@@ -1,9164 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_804E290
-sub_804E290: @ 804E290
- push {lr}
- ldr r0, _0804E2B0 @ =gMPlay_SE2
- ldr r1, _0804E2B4 @ =0x0000ffff
- ldr r2, _0804E2B8 @ =gUnknown_03004854
- ldr r2, [r2]
- adds r2, 0x56
- movs r3, 0
- ldrsh r2, [r2, r3]
- subs r2, 0x80
- lsls r2, 17
- asrs r2, 16
- bl m4aMPlayPitchControl
- pop {r0}
- bx r0
- .align 2, 0
-_0804E2B0: .4byte gMPlay_SE2
-_0804E2B4: .4byte 0x0000ffff
-_0804E2B8: .4byte gUnknown_03004854
- thumb_func_end sub_804E290
-
- thumb_func_start sub_804E2BC
-sub_804E2BC: @ 804E2BC
- push {lr}
- bl sub_80514A4
- bl sub_80514F0
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_804E2BC
-
- thumb_func_start sub_804E2D8
-sub_804E2D8: @ 804E2D8
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_804E2D8
-
- thumb_func_start sub_804E2EC
-sub_804E2EC: @ 804E2EC
- push {r4-r7,lr}
- ldr r1, _0804E308 @ =gUnknown_03004854
- ldr r0, [r1]
- ldrb r0, [r0, 0x1]
- mov r12, r1
- cmp r0, 0x9
- bls _0804E2FC
- b _0804E4F4
-_0804E2FC:
- lsls r0, 2
- ldr r1, _0804E30C @ =_0804E310
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804E308: .4byte gUnknown_03004854
-_0804E30C: .4byte _0804E310
- .align 2, 0
-_0804E310:
- .4byte _0804E338
- .4byte _0804E34C
- .4byte _0804E380
- .4byte _0804E3C4
- .4byte _0804E3D8
- .4byte _0804E3EC
- .4byte _0804E410
- .4byte _0804E434
- .4byte _0804E48C
- .4byte _0804E4BC
-_0804E338:
- ldr r0, _0804E344 @ =gUnknown_08E6C100
- ldr r1, _0804E348 @ =0x02010000
- bl sub_800D238
- b _0804E49E
- .align 2, 0
-_0804E344: .4byte gUnknown_08E6C100
-_0804E348: .4byte 0x02010000
-_0804E34C:
- ldr r1, _0804E36C @ =gUnknown_08215C2C
- ldr r2, _0804E370 @ =0x06004000
- ldr r0, _0804E374 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0804E378 @ =0x80000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _0804E37C @ =gUnknown_08215C0C
- movs r2, 0x80
- lsls r2, 1
- movs r1, 0
- bl LoadPalette
- b _0804E49E
- .align 2, 0
-_0804E36C: .4byte gUnknown_08215C2C
-_0804E370: .4byte 0x06004000
-_0804E374: .4byte 0x040000d4
-_0804E378: .4byte 0x80000200
-_0804E37C: .4byte gUnknown_08215C0C
-_0804E380:
- ldr r3, _0804E3B8 @ =0x02010000
- movs r4, 0xC0
- lsls r4, 19
- movs r5, 0x80
- lsls r5, 6
- ldr r1, _0804E3BC @ =0x040000d4
- ldr r6, _0804E3C0 @ =0x80000800
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_0804E396:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _0804E396
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, r12
- b _0804E4A0
- .align 2, 0
-_0804E3B8: .4byte 0x02010000
-_0804E3BC: .4byte 0x040000d4
-_0804E3C0: .4byte 0x80000800
-_0804E3C4:
- ldr r0, _0804E3D0 @ =gUnknown_08E6C920
- ldr r1, _0804E3D4 @ =0x02010000
- bl sub_800D238
- b _0804E49E
- .align 2, 0
-_0804E3D0: .4byte gUnknown_08E6C920
-_0804E3D4: .4byte 0x02010000
-_0804E3D8:
- ldr r0, _0804E3E4 @ =gUnknown_08E6D354
- ldr r1, _0804E3E8 @ =0x02013000
- bl sub_800D238
- b _0804E49E
- .align 2, 0
-_0804E3E4: .4byte gUnknown_08E6D354
-_0804E3E8: .4byte 0x02013000
-_0804E3EC:
- ldr r1, _0804E400 @ =0x02010000
- ldr r2, _0804E404 @ =0x0600e000
- ldr r0, _0804E408 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0804E40C @ =0x80000800
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- mov r0, r12
- b _0804E4A0
- .align 2, 0
-_0804E400: .4byte 0x02010000
-_0804E404: .4byte 0x0600e000
-_0804E408: .4byte 0x040000d4
-_0804E40C: .4byte 0x80000800
-_0804E410:
- ldr r1, _0804E424 @ =0x02011000
- ldr r2, _0804E428 @ =0x0600f000
- ldr r0, _0804E42C @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0804E430 @ =0x80000800
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- mov r0, r12
- b _0804E4A0
- .align 2, 0
-_0804E424: .4byte 0x02011000
-_0804E428: .4byte 0x0600f000
-_0804E42C: .4byte 0x040000d4
-_0804E430: .4byte 0x80000800
-_0804E434:
- ldr r3, _0804E474 @ =0x02013000
- movs r2, 0
- adds r6, r3, 0
- ldr r7, _0804E478 @ =gUnknown_0821602C
- movs r0, 0x80
- lsls r0, 1
- adds r5, r0, 0
- ldr r4, _0804E47C @ =0x0000027f
-_0804E444:
- lsls r0, r2, 1
- adds r0, r3
- ldrh r1, [r0]
- orrs r1, r5
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r4
- bls _0804E444
- ldr r1, _0804E480 @ =0x06006000
- ldr r0, _0804E484 @ =0x040000d4
- str r6, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0804E488 @ =0x80000280
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- adds r0, r7, 0
- movs r1, 0x80
- movs r2, 0x20
- bl LoadPalette
- b _0804E49E
- .align 2, 0
-_0804E474: .4byte 0x02013000
-_0804E478: .4byte gUnknown_0821602C
-_0804E47C: .4byte 0x0000027f
-_0804E480: .4byte 0x06006000
-_0804E484: .4byte 0x040000d4
-_0804E488: .4byte 0x80000280
-_0804E48C:
- ldr r0, _0804E4AC @ =gUnknown_082163DC
- bl LoadSpriteSheet
- ldr r0, _0804E4B0 @ =gUnknown_082164F4
- bl LoadSpriteSheet
- ldr r0, _0804E4B4 @ =gUnknown_08216454
- bl LoadSpriteSheet
-_0804E49E:
- ldr r0, _0804E4B8 @ =gUnknown_03004854
-_0804E4A0:
- ldr r1, [r0]
- ldrb r0, [r1, 0x1]
- adds r0, 0x1
- strb r0, [r1, 0x1]
- b _0804E4F4
- .align 2, 0
-_0804E4AC: .4byte gUnknown_082163DC
-_0804E4B0: .4byte gUnknown_082164F4
-_0804E4B4: .4byte gUnknown_08216454
-_0804E4B8: .4byte gUnknown_03004854
-_0804E4BC:
- ldr r0, _0804E4E0 @ =gUnknown_08216540
- bl LoadSpriteSheet
- ldr r0, _0804E4E4 @ =gUnknown_08216574
- bl LoadSpriteSheet
- ldr r0, _0804E4E8 @ =gUnknown_082163EC
- bl LoadSpritePalette
- ldr r0, _0804E4EC @ =gUnknown_082163E4
- bl LoadSpritePalette
- ldr r0, _0804E4F0 @ =gUnknown_03004854
- ldr r1, [r0]
- movs r0, 0
- strb r0, [r1, 0x1]
- movs r0, 0x1
- b _0804E4F6
- .align 2, 0
-_0804E4E0: .4byte gUnknown_08216540
-_0804E4E4: .4byte gUnknown_08216574
-_0804E4E8: .4byte gUnknown_082163EC
-_0804E4EC: .4byte gUnknown_082163E4
-_0804E4F0: .4byte gUnknown_03004854
-_0804E4F4:
- movs r0, 0
-_0804E4F6:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_804E2EC
-
- thumb_func_start sub_804E4FC
-sub_804E4FC: @ 804E4FC
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _0804E52C @ =0x00001341
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0xC
- movs r2, 0x91
- lsls r2, 7
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _0804E530 @ =0x00000c0d
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0804E534 @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0804E52C: .4byte 0x00001341
-_0804E530: .4byte 0x00000c0d
-_0804E534: .4byte REG_BG0HOFS
- thumb_func_end sub_804E4FC
-
- thumb_func_start sub_804E538
-sub_804E538: @ 804E538
- push {lr}
- ldr r1, _0804E55C @ =gUnknown_03004854
- ldr r0, _0804E560 @ =0x02018000
- str r0, [r1]
- adds r2, r0, 0
- adds r2, 0x6F
- movs r1, 0
- strb r1, [r0]
- strb r1, [r2]
- ldr r0, _0804E564 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- bl sub_804E884
- ldr r0, _0804E568 @ =sub_804E56C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0804E55C: .4byte gUnknown_03004854
-_0804E560: .4byte 0x02018000
-_0804E564: .4byte gSpecialVar_0x8004
-_0804E568: .4byte sub_804E56C
- thumb_func_end sub_804E538
-
- thumb_func_start sub_804E56C
-sub_804E56C: @ 804E56C
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _0804E588 @ =gUnknown_03004854
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0x6
- bls _0804E57C
- b _0804E71A
-_0804E57C:
- lsls r0, 2
- ldr r1, _0804E58C @ =_0804E590
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804E588: .4byte gUnknown_03004854
-_0804E58C: .4byte _0804E590
- .align 2, 0
-_0804E590:
- .4byte _0804E5AC
- .4byte _0804E614
- .4byte _0804E67C
- .4byte _0804E692
- .4byte _0804E6A8
- .4byte _0804E6D4
- .4byte _0804E700
-_0804E5AC:
- movs r0, 0x80
- lsls r0, 19
- movs r5, 0
- strh r5, [r0]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- movs r0, 0
- bl SetVBlankCallback
- ldr r4, _0804E60C @ =gWindowConfig_81E6F68
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r3, _0804E610 @ =gUnknown_03004854
- ldr r2, [r3]
- ldrb r0, [r2]
- adds r0, 0x1
- movs r1, 0
- strb r0, [r2]
- ldr r2, [r3]
- movs r3, 0xA0
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- subs r3, 0x2
- adds r0, r2, r3
- strh r1, [r0]
- movs r0, 0xA1
- lsls r0, 1
- adds r3, r2, r0
- movs r0, 0x50
- strh r0, [r3]
- movs r3, 0xA2
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- adds r3, 0x2
- adds r0, r2, r3
- strh r1, [r0]
- strb r5, [r2, 0x1]
- bl sub_8051474
- b _0804E71A
- .align 2, 0
-_0804E60C: .4byte gWindowConfig_81E6F68
-_0804E610: .4byte gUnknown_03004854
-_0804E614:
- bl sub_804E2EC
- lsls r0, 24
- cmp r0, 0
- bne _0804E620
- b _0804E71A
-_0804E620:
- movs r4, 0
- ldr r5, _0804E668 @ =gUnknown_082162E4
- ldr r6, _0804E66C @ =gUnknown_03004854
-_0804E626:
- ldrb r1, [r5]
- ldrb r2, [r5, 0x1]
- ldr r0, _0804E670 @ =gSpriteTemplate_82163F4
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r6]
- adds r1, 0x5C
- adds r1, r4
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x5C
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0804E674 @ =gSprites
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x8
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0804E626
- ldr r0, _0804E678 @ =sub_804E2BC
- bl SetVBlankCallback
- b _0804E6BE
- .align 2, 0
-_0804E668: .4byte gUnknown_082162E4
-_0804E66C: .4byte gUnknown_03004854
-_0804E670: .4byte gSpriteTemplate_82163F4
-_0804E674: .4byte gSprites
-_0804E678: .4byte sub_804E2BC
-_0804E67C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- bl sub_8051474
- b _0804E6BE
-_0804E692:
- bl sub_804E4FC
- ldr r0, _0804E6A4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804E71A
- b _0804E6BE
- .align 2, 0
-_0804E6A4: .4byte gPaletteFade
-_0804E6A8:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _0804E6CC @ =gOtherText_BlenderChooseBerry
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrintMessage
-_0804E6BE:
- ldr r0, _0804E6D0 @ =gUnknown_03004854
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0804E71A
- .align 2, 0
-_0804E6CC: .4byte gOtherText_BlenderChooseBerry
-_0804E6D0: .4byte gUnknown_03004854
-_0804E6D4:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _0804E71A
- ldr r0, _0804E6FC @ =gUnknown_03004854
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- movs r0, 0x1
- negs r0, r0
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0804E71A
- .align 2, 0
-_0804E6FC: .4byte gUnknown_03004854
-_0804E700:
- ldr r0, _0804E730 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0804E71A
- bl sub_80A6978
- ldr r0, _0804E734 @ =gUnknown_03004854
- ldr r0, [r0]
- strb r4, [r0]
-_0804E71A:
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E730: .4byte gPaletteFade
-_0804E734: .4byte gUnknown_03004854
- thumb_func_end sub_804E56C
-
- thumb_func_start sub_804E738
-sub_804E738: @ 804E738
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- subs r1, r2
- ldrh r0, [r4, 0x3C]
- adds r1, r0
- strh r1, [r4, 0x32]
- ldrh r3, [r4, 0x2E]
- adds r0, r3
- strh r0, [r4, 0x2E]
- subs r2, 0x1
- strh r2, [r4, 0x36]
- lsls r0, 16
- lsls r1, 16
- cmp r0, r1
- bge _0804E786
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x36]
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _0804E780
- adds r0, r4, 0
- bl DestroySprite
- b _0804E786
-_0804E780:
- movs r0, 0x74
- bl PlaySE
-_0804E786:
- ldrh r0, [r4, 0x30]
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x32]
- strh r0, [r4, 0x22]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_804E738
-
- thumb_func_start sub_804E794
-sub_804E794: @ 804E794
- push {r4-r6,lr}
- ldr r5, [sp, 0x10]
- ldr r6, [sp, 0x14]
- lsls r2, 16
- lsrs r2, 16
- movs r4, 0
- strh r2, [r0, 0x2E]
- strh r1, [r0, 0x30]
- strh r2, [r0, 0x32]
- strh r3, [r0, 0x34]
- movs r1, 0xA
- strh r1, [r0, 0x36]
- strh r4, [r0, 0x38]
- strh r5, [r0, 0x3A]
- strh r6, [r0, 0x3C]
- ldr r1, _0804E7BC @ =sub_804E738
- str r1, [r0, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E7BC: .4byte sub_804E738
- thumb_func_end sub_804E794
-
- thumb_func_start sub_804E7C0
-sub_804E7C0: @ 804E7C0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r6, r1, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r0, 24
- movs r1, 0xF6
- lsls r1, 23
- adds r0, r1
- lsrs r0, 24
- movs r3, 0x1
- ands r3, r6
- movs r1, 0
- movs r2, 0x50
- bl sub_80A7DEC
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- mov r8, r2
- add r8, r0
- mov r3, r8
- lsls r3, 2
- mov r8, r3
- ldr r0, _0804E83C @ =gSprites
- add r8, r0
- ldr r5, _0804E840 @ =gUnknown_08216594
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 1
- adds r0, r4, r5
- movs r6, 0
- ldrsh r1, [r0, r6]
- adds r0, r5, 0x2
- adds r0, r4, r0
- movs r3, 0
- ldrsh r2, [r0, r3]
- adds r0, r5, 0x4
- adds r0, r4, r0
- movs r6, 0
- ldrsh r3, [r0, r6]
- adds r0, r5, 0x6
- adds r0, r4, r0
- movs r6, 0
- ldrsh r0, [r0, r6]
- str r0, [sp]
- adds r5, 0x8
- adds r4, r5
- movs r5, 0
- ldrsh r0, [r4, r5]
- str r0, [sp, 0x4]
- mov r0, r8
- bl sub_804E794
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E83C: .4byte gSprites
-_0804E840: .4byte gUnknown_08216594
- thumb_func_end sub_804E7C0
-
- thumb_func_start sub_804E844
-sub_804E844: @ 804E844
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r5, r1, 16
- lsrs r5, 16
- adds r0, r5, 0
- adds r0, 0x7C
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryInfo
- adds r4, r0, 0
- strh r5, [r6]
- adds r0, r6, 0x2
- adds r1, r4, 0
- bl StringCopy
- ldrb r0, [r4, 0x15]
- strb r0, [r6, 0x9]
- ldrb r0, [r4, 0x16]
- strb r0, [r6, 0xA]
- ldrb r0, [r4, 0x17]
- strb r0, [r6, 0xB]
- ldrb r0, [r4, 0x18]
- strb r0, [r6, 0xC]
- ldrb r0, [r4, 0x19]
- strb r0, [r6, 0xD]
- ldrb r0, [r4, 0x1A]
- strb r0, [r6, 0xE]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_804E844
-
- thumb_func_start sub_804E884
-sub_804E884: @ 804E884
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0804E89E
- ldr r2, _0804E8AC @ =gLinkPlayers
- movs r3, 0x2
- adds r0, r2, 0
- adds r0, 0x54
-_0804E896:
- strh r3, [r0, 0x1A]
- subs r0, 0x1C
- cmp r0, r2
- bge _0804E896
-_0804E89E:
- cmp r1, 0x1
- beq _0804E8C4
- cmp r1, 0x1
- bgt _0804E8B0
- cmp r1, 0
- beq _0804E8BA
- b _0804E974
- .align 2, 0
-_0804E8AC: .4byte gLinkPlayers
-_0804E8B0:
- cmp r1, 0x2
- beq _0804E8F8
- cmp r1, 0x3
- beq _0804E93C
- b _0804E974
-_0804E8BA:
- ldr r0, _0804E8C0 @ =gUnknown_03004834
- strb r1, [r0]
- b _0804E974
- .align 2, 0
-_0804E8C0: .4byte gUnknown_03004834
-_0804E8C4:
- ldr r0, _0804E8E4 @ =gUnknown_03004834
- strb r1, [r0]
- ldr r0, _0804E8E8 @ =gUnknown_03004854
- ldr r0, [r0]
- adds r0, 0x88
- movs r1, 0x2
- strb r1, [r0]
- ldr r4, _0804E8EC @ =gLinkPlayers + 0x8
- ldr r1, _0804E8F0 @ =gSaveBlock2
- adds r0, r4, 0
- bl StringCopy
- adds r4, 0x1C
- ldr r0, _0804E8F4 @ =gUnknown_082162B8
- ldr r1, [r0]
- b _0804E920
- .align 2, 0
-_0804E8E4: .4byte gUnknown_03004834
-_0804E8E8: .4byte gUnknown_03004854
-_0804E8EC: .4byte gLinkPlayers + 0x8
-_0804E8F0: .4byte gSaveBlock2
-_0804E8F4: .4byte gUnknown_082162B8
-_0804E8F8:
- ldr r0, _0804E928 @ =gUnknown_03004834
- strb r1, [r0]
- ldr r0, _0804E92C @ =gUnknown_03004854
- ldr r0, [r0]
- adds r0, 0x88
- movs r1, 0x3
- strb r1, [r0]
- ldr r4, _0804E930 @ =gLinkPlayers + 0x8
- ldr r1, _0804E934 @ =gSaveBlock2
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- adds r0, 0x1C
- ldr r5, _0804E938 @ =gUnknown_082162B8
- ldr r1, [r5]
- bl StringCopy
- adds r4, 0x38
- ldr r1, [r5, 0x4]
-_0804E920:
- adds r0, r4, 0
- bl StringCopy
- b _0804E974
- .align 2, 0
-_0804E928: .4byte gUnknown_03004834
-_0804E92C: .4byte gUnknown_03004854
-_0804E930: .4byte gLinkPlayers + 0x8
-_0804E934: .4byte gSaveBlock2
-_0804E938: .4byte gUnknown_082162B8
-_0804E93C:
- ldr r0, _0804E97C @ =gUnknown_03004834
- strb r1, [r0]
- ldr r0, _0804E980 @ =gUnknown_03004854
- ldr r0, [r0]
- adds r0, 0x88
- movs r1, 0x4
- strb r1, [r0]
- ldr r4, _0804E984 @ =gLinkPlayers + 0x8
- ldr r1, _0804E988 @ =gSaveBlock2
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- adds r0, 0x1C
- ldr r5, _0804E98C @ =gUnknown_082162B8
- ldr r1, [r5]
- bl StringCopy
- adds r0, r4, 0
- adds r0, 0x38
- ldr r1, [r5, 0x4]
- bl StringCopy
- adds r4, 0x54
- ldr r1, [r5, 0x8]
- adds r0, r4, 0
- bl StringCopy
-_0804E974:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E97C: .4byte gUnknown_03004834
-_0804E980: .4byte gUnknown_03004854
-_0804E984: .4byte gLinkPlayers + 0x8
-_0804E988: .4byte gSaveBlock2
-_0804E98C: .4byte gUnknown_082162B8
- thumb_func_end sub_804E884
-
- thumb_func_start sub_804E990
-sub_804E990: @ 804E990
- push {r4,r5,lr}
- movs r0, 0x80
- lsls r0, 19
- movs r2, 0
- strh r2, [r0]
- ldr r3, _0804E9D8 @ =gUnknown_03004854
- ldr r0, _0804E9DC @ =0x02018000
- str r0, [r3]
- movs r1, 0
- strb r2, [r0]
- movs r2, 0x9A
- lsls r2, 1
- adds r0, r2
- str r1, [r0]
- movs r2, 0
- ldr r5, _0804E9E0 @ =gSpecialVar_0x8004
- adds r4, r3, 0
- movs r3, 0
-_0804E9B4:
- ldr r0, [r4]
- lsls r1, r2, 1
- adds r0, 0x80
- adds r0, r1
- strh r3, [r0]
- adds r2, 0x1
- cmp r2, 0x3
- ble _0804E9B4
- ldrb r0, [r5]
- bl sub_804E884
- ldrh r0, [r5]
- cmp r0, 0
- bne _0804E9E8
- ldr r0, _0804E9E4 @ =sub_804E9F8
- bl SetMainCallback2
- b _0804E9EE
- .align 2, 0
-_0804E9D8: .4byte gUnknown_03004854
-_0804E9DC: .4byte 0x02018000
-_0804E9E0: .4byte gSpecialVar_0x8004
-_0804E9E4: .4byte sub_804E9F8
-_0804E9E8:
- ldr r0, _0804E9F4 @ =sub_804F378
- bl SetMainCallback2
-_0804E9EE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E9F4: .4byte sub_804F378
- thumb_func_end sub_804E990
-
- thumb_func_start sub_804E9F8
-sub_804E9F8: @ 804E9F8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r1, _0804EA18 @ =gUnknown_03004854
- ldr r0, [r1]
- ldrb r0, [r0]
- mov r8, r1
- cmp r0, 0x66
- bls _0804EA0E
- b _0804F0CE
-_0804EA0E:
- lsls r0, 2
- ldr r1, _0804EA1C @ =_0804EA20
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804EA18: .4byte gUnknown_03004854
-_0804EA1C: .4byte _0804EA20
- .align 2, 0
-_0804EA20:
- .4byte _0804EBBC
- .4byte _0804EC74
- .4byte _0804EC94
- .4byte _0804ECE8
- .4byte _0804ECFA
- .4byte _0804ED14
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804ED48
- .4byte _0804ED94
- .4byte _0804EDB8
- .4byte _0804EE46
- .4byte _0804EEA0
- .4byte _0804EF16
- .4byte _0804EF34
- .4byte _0804EFD8
- .4byte _0804F00C
- .4byte _0804F0CE
- .4byte _0804F020
- .4byte _0804F024
- .4byte _0804F02A
- .4byte _0804F03A
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F0CE
- .4byte _0804F084
- .4byte _0804F0A0
- .4byte _0804F0BC
-_0804EBBC:
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r0, _0804EC60 @ =sub_804E2BC
- bl SetVBlankCallback
- ldr r4, _0804EC64 @ =gWindowConfig_81E6F68
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r1, _0804EC68 @ =gLinkType
- ldr r2, _0804EC6C @ =0x00004422
- adds r0, r2, 0
- strh r0, [r1]
- ldr r3, _0804EC70 @ =gUnknown_03004854
- ldr r1, [r3]
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, [r3]
- adds r4, r0, 0
- adds r4, 0x4E
- movs r1, 0
- strh r2, [r4]
- adds r0, 0x7E
- strb r1, [r0]
- ldr r1, [r3]
- movs r4, 0xA2
- lsls r4, 1
- adds r0, r1, r4
- strh r2, [r0]
- adds r4, 0x2
- adds r0, r1, r4
- strh r2, [r0]
- movs r5, 0
- movs r6, 0
- mov r8, r3
- movs r7, 0xA6
- lsls r7, 1
-_0804EC18:
- ldr r0, [r3]
- lsls r1, r5, 1
- adds r0, 0x70
- adds r0, r1
- strh r6, [r0]
- adds r4, r5, 0x1
- adds r1, r5
- lsls r1, 1
- movs r2, 0x2
-_0804EC2A:
- ldr r0, [r3]
- adds r0, r7
- adds r0, r1
- strh r6, [r0]
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _0804EC2A
- adds r5, r4, 0
- cmp r5, 0x3
- ble _0804EC18
- mov r0, r8
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0x7C
- movs r2, 0
- movs r1, 0
- strh r1, [r0]
- subs r0, 0x26
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x6
- strh r1, [r0]
- strb r2, [r3, 0x1]
- b _0804F0CE
- .align 2, 0
-_0804EC60: .4byte sub_804E2BC
-_0804EC64: .4byte gWindowConfig_81E6F68
-_0804EC68: .4byte gLinkType
-_0804EC6C: .4byte 0x00004422
-_0804EC70: .4byte gUnknown_03004854
-_0804EC74:
- bl sub_804E2EC
- lsls r0, 24
- cmp r0, 0
- bne _0804EC80
- b _0804F0CE
-_0804EC80:
- ldr r0, _0804EC90 @ =gUnknown_03004854
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl sub_8051474
- b _0804F0CE
- .align 2, 0
-_0804EC90: .4byte gUnknown_03004854
-_0804EC94:
- movs r5, 0
- ldr r4, _0804ECD8 @ =gUnknown_082162E4
- ldr r6, _0804ECDC @ =gUnknown_03004854
-_0804EC9A:
- ldrb r1, [r4]
- ldrb r2, [r4, 0x1]
- ldr r0, _0804ECE0 @ =gSpriteTemplate_82163F4
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r6]
- adds r1, 0x60
- adds r1, r5
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x60
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0804ECE4 @ =gSprites
- adds r0, r1
- adds r1, r5, 0
- adds r1, 0x8
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _0804EC9A
- b _0804F0AA
- .align 2, 0
-_0804ECD8: .4byte gUnknown_082162E4
-_0804ECDC: .4byte gUnknown_03004854
-_0804ECE0: .4byte gSpriteTemplate_82163F4
-_0804ECE4: .4byte gSprites
-_0804ECE8:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _0804F0AA
-_0804ECFA:
- bl sub_804E4FC
- ldr r0, _0804ED10 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804ED0C
- b _0804F0CE
-_0804ED0C:
- b _0804F0AA
- .align 2, 0
-_0804ED10: .4byte gPaletteFade
-_0804ED14:
- movs r0, 0
- movs r1, 0xD
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _0804ED40 @ =gOtherText_LinkStandby3
- movs r1, 0x1
- movs r2, 0xE
- bl MenuPrint
- ldr r2, _0804ED44 @ =gUnknown_03004854
- ldr r1, [r2]
- movs r3, 0
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, [r2]
- movs r1, 0x98
- lsls r1, 1
- adds r0, r1
- str r3, [r0]
- b _0804F0CE
- .align 2, 0
-_0804ED40: .4byte gOtherText_LinkStandby3
-_0804ED44: .4byte gUnknown_03004854
-_0804ED48:
- mov r2, r8
- ldr r1, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- movs r5, 0
- strb r0, [r1]
- ldr r0, [r2]
- movs r3, 0x9E
- lsls r3, 1
- adds r0, r3
- strb r5, [r0]
- ldr r0, [r2]
- movs r4, 0xBE
- lsls r4, 1
- adds r0, r4
- ldr r1, _0804ED8C @ =gScriptItemId
- ldrh r1, [r1]
- bl sub_804E844
- ldr r0, _0804ED90 @ =gBlockSendBuffer
- mov r2, r8
- ldr r1, [r2]
- adds r1, r4
- movs r2, 0x10
- bl memcpy
- bl sub_80084A4
- mov r3, r8
- ldr r0, [r3]
- subs r4, 0x4C
- adds r0, r4
- str r5, [r0]
- b _0804F0CE
- .align 2, 0
-_0804ED8C: .4byte gScriptItemId
-_0804ED90: .4byte gBlockSendBuffer
-_0804ED94:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0804EDA0
- b _0804F0CE
-_0804EDA0:
- bl ResetBlockReceivedFlags
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- beq _0804EDB0
- b _0804F0AA
-_0804EDB0:
- movs r0, 0x4
- bl sub_8007E9C
- b _0804F0AA
-_0804EDB8:
- mov r0, r8
- ldr r1, [r0]
- movs r2, 0x98
- lsls r2, 1
- adds r1, r2
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x14
- bgt _0804EDCE
- b _0804F0CE
-_0804EDCE:
- bl MenuZeroFillScreen
- bl GetBlockReceivedStatus
- adds r4, r0, 0
- bl sub_8008198
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _0804EDE6
- b _0804F0CE
-_0804EDE6:
- movs r5, 0
- mov r7, r8
- movs r6, 0xBE
- lsls r6, 1
- b _0804EE18
-_0804EDF0:
- ldr r0, [r7]
- lsls r4, r5, 4
- adds r0, r4, r0
- adds r0, r6
- lsls r1, r5, 8
- ldr r2, _0804EE2C @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x10
- bl memcpy
- ldr r0, [r7]
- lsls r2, r5, 1
- adds r1, r0, 0
- adds r1, 0x80
- adds r1, r2
- adds r0, r4
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r1]
- adds r5, 0x1
-_0804EE18:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- blt _0804EDF0
- bl ResetBlockReceivedFlags
- b _0804F0AA
- .align 2, 0
-_0804EE2C: .4byte gBlockRecvBuffer
-_0804EE30:
- ldrb r1, [r4]
- lsls r1, 1
- adds r0, r2, 0
- adds r0, 0x80
- adds r0, r1
- ldrh r0, [r0]
- lsls r1, r5, 24
- lsrs r1, 24
- bl sub_804E7C0
- b _0804EE7A
-_0804EE46:
- bl GetLinkPlayerCount
- ldr r2, _0804EE98 @ =gUnknown_03004854
- ldr r1, [r2]
- adds r1, 0x88
- strb r0, [r1]
- movs r5, 0
- ldr r2, [r2]
- movs r3, 0x9E
- lsls r3, 1
- adds r4, r2, r3
- ldr r1, _0804EE9C @ =gUnknown_082162EC
- adds r0, r2, 0
- adds r0, 0x88
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 2
- ldrb r3, [r4]
- adds r0, r1
-_0804EE6C:
- ldrb r1, [r0]
- cmp r3, r1
- beq _0804EE30
- adds r0, 0x1
- adds r5, 0x1
- cmp r5, 0x3
- ble _0804EE6C
-_0804EE7A:
- ldr r3, _0804EE98 @ =gUnknown_03004854
- ldr r1, [r3]
- movs r4, 0x98
- lsls r4, 1
- adds r2, r1, r4
- movs r0, 0
- str r0, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, [r3]
- movs r0, 0x9E
- lsls r0, 1
- adds r1, r0
- b _0804F0AE
- .align 2, 0
-_0804EE98: .4byte gUnknown_03004854
-_0804EE9C: .4byte gUnknown_082162EC
-_0804EEA0:
- mov r1, r8
- ldr r2, [r1]
- movs r3, 0x98
- lsls r3, 1
- adds r1, r2, r3
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x3C
- bgt _0804EEB6
- b _0804F0CE
-_0804EEB6:
- movs r4, 0x9E
- lsls r4, 1
- adds r0, r2, r4
- adds r1, r2, 0
- adds r1, 0x88
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0804EF00
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- mov r0, r8
- ldr r2, [r0]
- ldr r3, _0804EEF4 @ =gUnknown_082162F8
- ldr r1, _0804EEF8 @ =gUnknown_08216300
- adds r0, r2, 0
- adds r0, 0x88
- ldrb r0, [r0]
- subs r0, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r3
- ldr r3, _0804EEFC @ =0xffffa800
- adds r1, r3, 0
- ldrh r0, [r0]
- adds r1, r0
- adds r2, 0x54
- strh r1, [r2]
- b _0804EF06
- .align 2, 0
-_0804EEF4: .4byte gUnknown_082162F8
-_0804EEF8: .4byte gUnknown_08216300
-_0804EEFC: .4byte 0xffffa800
-_0804EF00:
- ldrb r0, [r2]
- subs r0, 0x1
- strb r0, [r2]
-_0804EF06:
- mov r4, r8
- ldr r0, [r4]
- movs r1, 0x98
- lsls r1, 1
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- b _0804F0CE
-_0804EF16:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0804EF22
- b _0804F0CE
-_0804EF22:
- ldr r2, _0804EF30 @ =gUnknown_03004854
- ldr r1, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r2]
- b _0804EFBC
- .align 2, 0
-_0804EF30: .4byte gUnknown_03004854
-_0804EF34:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 3
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- mov r4, r8
- ldr r2, [r4]
- adds r1, r2, 0
- adds r1, 0x54
- movs r3, 0x80
- lsls r3, 2
- adds r0, r3, 0
- ldrh r4, [r1]
- adds r0, r4
- strh r0, [r1]
- movs r0, 0xA1
- lsls r0, 1
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x4
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xFF
- bls _0804EFB8
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- mov r1, r8
- ldr r3, [r1]
- movs r2, 0xA1
- lsls r2, 1
- adds r1, r3, r2
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r1]
- ldr r2, _0804EFC8 @ =gUnknown_082162F8
- ldr r1, _0804EFCC @ =gUnknown_08216300
- adds r0, r3, 0
- adds r0, 0x88
- ldrb r0, [r0]
- subs r0, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- adds r0, r3, 0
- adds r0, 0x54
- strh r1, [r0]
- ldr r1, _0804EFD0 @ =REG_BG2CNT
- ldr r4, _0804EFD4 @ =0x00004882
- adds r0, r4, 0
- strh r0, [r1]
- movs r0, 0x98
- lsls r0, 1
- adds r1, r3, r0
- movs r0, 0
- str r0, [r1]
- bl sub_804F238
- bl BuyMenuDrawFieldObjects
-_0804EFB8:
- mov r1, r8
- ldr r0, [r1]
-_0804EFBC:
- movs r2, 0xB4
- lsls r2, 1
- adds r0, r2
- bl sub_8051414
- b _0804F0CE
- .align 2, 0
-_0804EFC8: .4byte gUnknown_082162F8
-_0804EFCC: .4byte gUnknown_08216300
-_0804EFD0: .4byte REG_BG2CNT
-_0804EFD4: .4byte 0x00004882
-_0804EFD8:
- bl sub_8051B8C
- lsls r0, 24
- cmp r0, 0
- beq _0804EFF6
- ldr r0, _0804F008 @ =gUnknown_03004854
- ldr r1, [r0]
- movs r3, 0x98
- lsls r3, 1
- adds r2, r1, r3
- movs r0, 0
- str r0, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0804EFF6:
- ldr r0, _0804F008 @ =gUnknown_03004854
- ldr r0, [r0]
- movs r4, 0xB4
- lsls r4, 1
- adds r0, r4
- bl sub_8051414
- b _0804F0CE
- .align 2, 0
-_0804F008: .4byte gUnknown_03004854
-_0804F00C:
- ldr r0, _0804F01C @ =gSpriteTemplate_8216548
- movs r2, 0x10
- negs r2, r2
- movs r1, 0x78
- movs r3, 0x3
- bl CreateSprite
- b _0804F0AA
- .align 2, 0
-_0804F01C: .4byte gSpriteTemplate_8216548
-_0804F020:
- mov r0, r8
- b _0804F0AC
-_0804F024:
- bl sub_80084A4
- b _0804F0AA
-_0804F02A:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _0804F0CE
- bl sub_8007E24
- b _0804F0AA
-_0804F03A:
- mov r1, r8
- ldr r3, [r1]
- adds r2, r3, 0
- adds r2, 0x56
- movs r1, 0
- movs r0, 0x80
- strh r0, [r2]
- movs r2, 0x96
- lsls r2, 1
- adds r0, r3, r2
- str r1, [r0]
- ldr r0, _0804F07C @ =sub_80501FC
- bl SetMainCallback2
- bl GetCurrentMapMusic
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0804F080 @ =0x00000193
- cmp r0, r4
- beq _0804F074
- bl GetCurrentMapMusic
- mov r3, r8
- ldr r1, [r3]
- movs r2, 0xBC
- lsls r2, 1
- adds r1, r2
- strh r0, [r1]
-_0804F074:
- adds r0, r4, 0
- bl PlayBGM
- b _0804F0CE
- .align 2, 0
-_0804F07C: .4byte sub_80501FC
-_0804F080: .4byte 0x00000193
-_0804F084:
- movs r0, 0
- movs r1, 0xD
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _0804F09C @ =gOtherText_LinkNotFound
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrintMessage
- b _0804F0AA
- .align 2, 0
-_0804F09C: .4byte gOtherText_LinkNotFound
-_0804F0A0:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _0804F0CE
-_0804F0AA:
- ldr r0, _0804F0B8 @ =gUnknown_03004854
-_0804F0AC:
- ldr r1, [r0]
-_0804F0AE:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0804F0CE
- .align 2, 0
-_0804F0B8: .4byte gUnknown_03004854
-_0804F0BC:
- ldr r0, _0804F0EC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804F0CE
- ldr r0, _0804F0F0 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
-_0804F0CE:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804F0EC: .4byte gPaletteFade
-_0804F0F0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_804E9F8
-
- thumb_func_start sub_804F0F4
-sub_804F0F4: @ 804F0F4
- push {r4,lr}
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r0, _0804F158 @ =sub_804E2BC
- bl SetVBlankCallback
- ldr r4, _0804F15C @ =gWindowConfig_81E6F68
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r1, _0804F160 @ =gLinkType
- ldr r2, _0804F164 @ =0x00004422
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0804F168 @ =gUnknown_03004854
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x4E
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x8
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x6
- strh r1, [r0]
- movs r3, 0xA2
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- adds r3, 0x2
- adds r0, r2, r3
- strh r1, [r0]
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804F158: .4byte sub_804E2BC
-_0804F15C: .4byte gWindowConfig_81E6F68
-_0804F160: .4byte gLinkType
-_0804F164: .4byte 0x00004422
-_0804F168: .4byte gUnknown_03004854
- thumb_func_end sub_804F0F4
-
- thumb_func_start task_tutorial_oak_boy_girl
-task_tutorial_oak_boy_girl: @ 804F16C
- push {lr}
- lsls r0, 16
- lsls r1, 24
- lsrs r0, 24
- adds r2, r0, 0
- adds r2, 0x18
- ldr r0, _0804F1A8 @ =gUnknown_03004854
- ldr r0, [r0]
- lsrs r1, 23
- adds r0, 0xA2
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _0804F1AC @ =gUnknown_08216303
- adds r0, r1
- ldrb r1, [r0]
- cmp r2, r1
- bcc _0804F1B4
- adds r0, r1, 0
- adds r0, 0x30
- cmp r2, r0
- bcs _0804F1B4
- subs r0, 0x1C
- cmp r2, r0
- bcc _0804F1B0
- adds r0, 0x8
- cmp r2, r0
- bcs _0804F1B0
- movs r0, 0x2
- b _0804F1B6
- .align 2, 0
-_0804F1A8: .4byte gUnknown_03004854
-_0804F1AC: .4byte gUnknown_08216303
-_0804F1B0:
- movs r0, 0x1
- b _0804F1B6
-_0804F1B4:
- movs r0, 0
-_0804F1B6:
- pop {r1}
- bx r1
- thumb_func_end task_tutorial_oak_boy_girl
-
- thumb_func_start sub_804F1BC
-sub_804F1BC: @ 804F1BC
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r1, 24
- movs r4, 0
- cmp r0, 0xAF
- bne _0804F1EE
- movs r3, 0
- subs r5, r1, 0x1
- adds r2, 0x9
-_0804F1D2:
- adds r0, r2, r4
- adds r1, r2, r3
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _0804F1E0
- adds r4, r3, 0
-_0804F1E0:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bls _0804F1D2
- adds r0, r4, 0x5
- b _0804F204
-_0804F1EE:
- subs r0, 0x85
- lsls r0, 16
- lsrs r4, r0, 16
- subs r5, r1, 0x1
- cmp r4, 0x4
- bls _0804F208
- adds r0, r4, 0
- movs r1, 0x5
- bl __umodsi3
- adds r0, 0x5
-_0804F204:
- lsls r0, 16
- lsrs r4, r0, 16
-_0804F208:
- movs r3, 0
- cmp r3, r5
- bge _0804F22E
- ldr r7, _0804F234 @ =gUnknown_082165BC
- lsls r0, r4, 1
- adds r6, r0, r4
-_0804F214:
- adds r4, r3, 0x1
- lsls r0, r4, 24
- lsrs r0, 24
- adds r1, r3, r6
- adds r1, r7
- ldrb r1, [r1]
- adds r1, 0x85
- bl sub_80516C4
- lsls r4, 16
- lsrs r3, r4, 16
- cmp r3, r5
- blt _0804F214
-_0804F22E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804F234: .4byte gUnknown_082165BC
- thumb_func_end sub_804F1BC
-
- thumb_func_start sub_804F238
-sub_804F238: @ 804F238
- push {r4-r7,lr}
- movs r4, 0
- ldr r7, _0804F2A0 @ =gUnknown_03004854
- movs r6, 0xFF
- ldr r5, _0804F2A4 @ =gUnknown_082162EC
-_0804F242:
- ldr r3, [r7]
- lsls r2, r4, 1
- adds r0, r3, 0
- adds r0, 0xA2
- adds r0, r2
- strh r6, [r0]
- adds r1, r3, 0
- adds r1, 0x9A
- adds r1, r2
- adds r0, r3, 0
- adds r0, 0x88
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 2
- adds r0, r4, r0
- adds r0, r5
- ldrb r0, [r0]
- strh r0, [r1]
- adds r4, 0x1
- cmp r4, 0x3
- ble _0804F242
- movs r3, 0
- ldr r7, _0804F2A0 @ =gUnknown_03004854
-_0804F270:
- movs r4, 0
- adds r6, r3, 0x1
- lsls r5, r3, 1
-_0804F276:
- ldr r2, [r7]
- lsls r0, r4, 1
- adds r1, r2, 0
- adds r1, 0x9A
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, r3
- bne _0804F28E
- adds r0, r2, 0
- adds r0, 0xA2
- adds r0, r5
- strh r4, [r0]
-_0804F28E:
- adds r4, 0x1
- cmp r4, 0x3
- ble _0804F276
- adds r3, r6, 0
- cmp r3, 0x3
- ble _0804F270
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804F2A0: .4byte gUnknown_03004854
-_0804F2A4: .4byte gUnknown_082162EC
- thumb_func_end sub_804F238
-
- thumb_func_start BuyMenuDrawFieldObjects
-BuyMenuDrawFieldObjects: @ 804F2A8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- ldr r7, _0804F360 @ =gUnknown_03004854
- ldr r0, _0804F364 @ =gUnknown_082162D4
- mov r8, r0
-_0804F2B6:
- ldr r2, [r7]
- lsls r4, r6, 1
- adds r0, r2, 0
- adds r0, 0x9A
- adds r3, r0, r4
- ldrh r0, [r3]
- cmp r0, 0xFF
- beq _0804F34A
- ldr r5, _0804F368 @ =gStringVar1
- adds r1, r2, 0
- adds r1, 0x5C
- ldrh r3, [r3]
- adds r1, r3
- adds r0, r2, 0
- adds r0, 0x60
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, [r7]
- adds r1, r0, 0
- adds r1, 0x9A
- adds r1, r4
- adds r0, 0x5C
- ldrh r1, [r1]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0804F36C @ =gSprites
- adds r0, r1
- lsls r1, r6, 24
- lsrs r1, 24
- bl StartSpriteAnim
- bl GetMultiplayerId
- lsls r0, 24
- ldr r1, [r7]
- adds r1, 0x9A
- adds r1, r4
- lsrs r0, 24
- ldrh r1, [r1]
- cmp r0, r1
- bne _0804F31A
- adds r0, r5, 0
- ldr r1, _0804F370 @ =gUnknown_082162C4
- bl StringCopy
- adds r5, r0, 0
-_0804F31A:
- ldr r0, [r7]
- adds r0, 0x9A
- adds r0, r4
- ldrh r0, [r0]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r0, _0804F374 @ =gLinkPlayers + 0x8
- adds r1, r0
- adds r0, r5, 0
- bl StringCopy
- mov r0, r8
- ldrb r1, [r0]
- lsls r1, 3
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0x1]
- lsls r2, 3
- ldr r0, _0804F368 @ =gStringVar1
- movs r3, 0x1
- bl MenuPrint_PixelCoords
-_0804F34A:
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _0804F2B6
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804F360: .4byte gUnknown_03004854
-_0804F364: .4byte gUnknown_082162D4
-_0804F368: .4byte gStringVar1
-_0804F36C: .4byte gSprites
-_0804F370: .4byte gUnknown_082162C4
-_0804F374: .4byte gLinkPlayers + 0x8
- thumb_func_end BuyMenuDrawFieldObjects
-
- thumb_func_start sub_804F378
-sub_804F378: @ 804F378
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r1, _0804F398 @ =gUnknown_03004854
- ldr r0, [r1]
- ldrb r0, [r0]
- mov r8, r1
- cmp r0, 0x15
- bls _0804F38E
- b _0804F7E6
-_0804F38E:
- lsls r0, 2
- ldr r1, _0804F39C @ =_0804F3A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804F398: .4byte gUnknown_03004854
-_0804F39C: .4byte _0804F3A0
- .align 2, 0
-_0804F3A0:
- .4byte _0804F3F8
- .4byte _0804F474
- .4byte _0804F494
- .4byte _0804F4EC
- .4byte _0804F518
- .4byte _0804F7E6
- .4byte _0804F7E6
- .4byte _0804F7E6
- .4byte _0804F54C
- .4byte _0804F7E6
- .4byte _0804F7E6
- .4byte _0804F578
- .4byte _0804F5C8
- .4byte _0804F636
- .4byte _0804F650
- .4byte _0804F6F8
- .4byte _0804F720
- .4byte _0804F7E6
- .4byte _0804F73C
- .4byte _0804F742
- .4byte _0804F748
- .4byte _0804F754
-_0804F3F8:
- bl sub_804F0F4
- ldr r4, _0804F46C @ =gScriptItemId
- ldrh r1, [r4]
- movs r0, 0
- bl sub_80516C4
- ldr r5, _0804F470 @ =gUnknown_03004854
- ldr r0, [r5]
- movs r6, 0xBE
- lsls r6, 1
- adds r0, r6
- ldrh r1, [r4]
- bl sub_804E844
- ldrh r0, [r4]
- ldr r2, [r5]
- adds r1, r2, 0
- adds r1, 0x88
- ldrb r1, [r1]
- adds r2, r6
- bl sub_804F1BC
- movs r4, 0
- movs r6, 0
- mov r8, r5
- movs r7, 0xA6
- lsls r7, 1
-_0804F430:
- ldr r0, [r5]
- lsls r1, r4, 1
- adds r0, 0x70
- adds r0, r1
- strh r6, [r0]
- adds r3, r4, 0x1
- adds r1, r4
- lsls r1, 1
- movs r2, 0x2
-_0804F442:
- ldr r0, [r5]
- adds r0, r7
- adds r0, r1
- strh r6, [r0]
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _0804F442
- adds r4, r3, 0
- cmp r4, 0x3
- ble _0804F430
- mov r0, r8
- ldr r3, [r0]
- adds r1, r3, 0
- adds r1, 0x7C
- movs r2, 0
- movs r0, 0
- strh r0, [r1]
- strb r2, [r3, 0x1]
- b _0804F7E6
- .align 2, 0
-_0804F46C: .4byte gScriptItemId
-_0804F470: .4byte gUnknown_03004854
-_0804F474:
- bl sub_804E2EC
- lsls r0, 24
- cmp r0, 0
- bne _0804F480
- b _0804F7E6
-_0804F480:
- ldr r0, _0804F490 @ =gUnknown_03004854
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl sub_8051474
- b _0804F7E6
- .align 2, 0
-_0804F490: .4byte gUnknown_03004854
-_0804F494:
- movs r4, 0
- ldr r5, _0804F4DC @ =gUnknown_082162E4
- ldr r6, _0804F4E0 @ =gUnknown_03004854
-_0804F49A:
- ldrb r1, [r5]
- ldrb r2, [r5, 0x1]
- ldr r0, _0804F4E4 @ =gSpriteTemplate_82163F4
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r6]
- adds r1, 0x60
- adds r1, r4
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x60
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0804F4E8 @ =gSprites
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x8
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0804F49A
- ldr r0, _0804F4E0 @ =gUnknown_03004854
- ldr r1, [r0]
- b _0804F74C
- .align 2, 0
-_0804F4DC: .4byte gUnknown_082162E4
-_0804F4E0: .4byte gUnknown_03004854
-_0804F4E4: .4byte gSpriteTemplate_82163F4
-_0804F4E8: .4byte gSprites
-_0804F4EC:
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _0804F514 @ =gUnknown_03004854
- ldr r1, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r2]
- movs r1, 0x98
- lsls r1, 1
- adds r0, r1
- str r4, [r0]
- b _0804F7E6
- .align 2, 0
-_0804F514: .4byte gUnknown_03004854
-_0804F518:
- mov r2, r8
- ldr r1, [r2]
- movs r3, 0x98
- lsls r3, 1
- adds r1, r3
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x2
- bne _0804F530
- bl sub_804E4FC
-_0804F530:
- ldr r0, _0804F548 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804F53E
- b _0804F7E6
-_0804F53E:
- mov r5, r8
- ldr r1, [r5]
- movs r0, 0x8
- strb r0, [r1]
- b _0804F7E6
- .align 2, 0
-_0804F548: .4byte gPaletteFade
-_0804F54C:
- mov r0, r8
- ldr r1, [r0]
- movs r2, 0
- movs r0, 0xB
- strb r0, [r1]
- mov r1, r8
- ldr r0, [r1]
- movs r3, 0x9E
- lsls r3, 1
- adds r0, r3
- strb r2, [r0]
- b _0804F7E6
-_0804F564:
- lsls r1, 1
- adds r0, r3, 0
- adds r0, 0x80
- adds r0, r1
- ldrh r0, [r0]
- lsls r1, r4, 24
- lsrs r1, 24
- bl sub_804E7C0
- b _0804F5A2
-_0804F578:
- movs r4, 0
- ldr r2, _0804F5C0 @ =gUnknown_082162EC
- ldr r0, _0804F5C4 @ =gUnknown_03004854
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0x88
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 2
- movs r5, 0x9E
- lsls r5, 1
- adds r1, r3, r5
- ldrb r1, [r1]
- adds r0, r2
-_0804F594:
- ldrb r2, [r0]
- cmp r1, r2
- beq _0804F564
- adds r0, 0x1
- adds r4, 0x1
- cmp r4, 0x3
- ble _0804F594
-_0804F5A2:
- ldr r3, _0804F5C4 @ =gUnknown_03004854
- ldr r1, [r3]
- movs r5, 0x98
- lsls r5, 1
- adds r2, r1, r5
- movs r0, 0
- str r0, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, [r3]
- movs r0, 0x9E
- lsls r0, 1
- adds r1, r0
- b _0804F74C
- .align 2, 0
-_0804F5C0: .4byte gUnknown_082162EC
-_0804F5C4: .4byte gUnknown_03004854
-_0804F5C8:
- mov r1, r8
- ldr r3, [r1]
- movs r2, 0x98
- lsls r2, 1
- adds r1, r3, r2
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x3C
- bgt _0804F5DE
- b _0804F7E6
-_0804F5DE:
- movs r5, 0x9E
- lsls r5, 1
- adds r0, r3, r5
- adds r4, r3, 0
- adds r4, 0x88
- ldrb r0, [r0]
- ldrb r1, [r4]
- cmp r0, r1
- bcc _0804F620
- ldr r2, _0804F614 @ =gUnknown_082162F8
- ldr r1, _0804F618 @ =gUnknown_08216300
- ldrb r0, [r4]
- subs r0, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r2
- ldr r2, _0804F61C @ =0xffffa800
- adds r1, r2, 0
- ldrh r0, [r0]
- adds r1, r0
- adds r0, r3, 0
- adds r0, 0x54
- strh r1, [r0]
- ldrb r0, [r3]
- adds r0, 0x1
- b _0804F624
- .align 2, 0
-_0804F614: .4byte gUnknown_082162F8
-_0804F618: .4byte gUnknown_08216300
-_0804F61C: .4byte 0xffffa800
-_0804F620:
- ldrb r0, [r3]
- subs r0, 0x1
-_0804F624:
- strb r0, [r3]
- mov r3, r8
- ldr r0, [r3]
- movs r5, 0x98
- lsls r5, 1
- adds r0, r5
- movs r1, 0
- str r1, [r0]
- b _0804F7E6
-_0804F636:
- mov r1, r8
- ldr r0, [r1]
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- bl sub_804F238
- movs r0, 0x2B
- bl PlaySE
- mov r2, r8
- ldr r0, [r2]
- b _0804F710
-_0804F650:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r5, 0x80
- lsls r5, 3
- adds r1, r5, 0
- orrs r0, r1
- strh r0, [r2]
- mov r0, r8
- ldr r2, [r0]
- adds r1, r2, 0
- adds r1, 0x54
- movs r3, 0x80
- lsls r3, 2
- adds r0, r3, 0
- ldrh r5, [r1]
- adds r0, r5
- strh r0, [r1]
- movs r0, 0xA1
- lsls r0, 1
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x4
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xFF
- bls _0804F6D6
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- mov r1, r8
- ldr r3, [r1]
- movs r2, 0xA1
- lsls r2, 1
- adds r1, r3, r2
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r1]
- ldr r2, _0804F6E8 @ =gUnknown_082162F8
- ldr r1, _0804F6EC @ =gUnknown_08216300
- adds r0, r3, 0
- adds r0, 0x88
- ldrb r0, [r0]
- subs r0, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- adds r0, r3, 0
- adds r0, 0x54
- strh r1, [r0]
- ldr r1, _0804F6F0 @ =REG_BG2CNT
- ldr r5, _0804F6F4 @ =0x00004882
- adds r0, r5, 0
- strh r0, [r1]
- movs r0, 0x98
- lsls r0, 1
- adds r1, r3, r0
- movs r0, 0
- str r0, [r1]
- movs r0, 0x34
- bl PlaySE
- bl BuyMenuDrawFieldObjects
-_0804F6D6:
- mov r1, r8
- ldr r0, [r1]
- movs r2, 0xB4
- lsls r2, 1
- adds r0, r2
- bl sub_8051414
- b _0804F7E6
- .align 2, 0
-_0804F6E8: .4byte gUnknown_082162F8
-_0804F6EC: .4byte gUnknown_08216300
-_0804F6F0: .4byte REG_BG2CNT
-_0804F6F4: .4byte 0x00004882
-_0804F6F8:
- bl sub_8051B8C
- lsls r0, 24
- cmp r0, 0
- beq _0804F70C
- ldr r0, _0804F71C @ =gUnknown_03004854
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0804F70C:
- ldr r0, _0804F71C @ =gUnknown_03004854
- ldr r0, [r0]
-_0804F710:
- movs r3, 0xB4
- lsls r3, 1
- adds r0, r3
- bl sub_8051414
- b _0804F7E6
- .align 2, 0
-_0804F71C: .4byte gUnknown_03004854
-_0804F720:
- ldr r0, _0804F734 @ =gSpriteTemplate_8216548
- movs r2, 0x10
- negs r2, r2
- movs r1, 0x78
- movs r3, 0x3
- bl CreateSprite
- ldr r0, _0804F738 @ =gUnknown_03004854
- ldr r1, [r0]
- b _0804F74C
- .align 2, 0
-_0804F734: .4byte gSpriteTemplate_8216548
-_0804F738: .4byte gUnknown_03004854
-_0804F73C:
- mov r5, r8
- ldr r1, [r5]
- b _0804F74C
-_0804F742:
- mov r0, r8
- ldr r1, [r0]
- b _0804F74C
-_0804F748:
- mov r2, r8
- ldr r1, [r2]
-_0804F74C:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0804F7E6
-_0804F754:
- bl sub_804F81C
- ldr r3, _0804F804 @ =gUnknown_03004854
- ldr r4, [r3]
- adds r5, r4, 0
- adds r5, 0x56
- movs r2, 0
- movs r1, 0
- movs r0, 0x80
- strh r0, [r5]
- movs r5, 0x96
- lsls r5, 1
- adds r0, r4, r5
- str r1, [r0]
- ldr r1, _0804F808 @ =0x0000014b
- adds r0, r4, r1
- strb r2, [r0]
- ldr r0, [r3]
- adds r0, 0x7E
- strb r2, [r0]
- ldr r0, _0804F80C @ =sub_80501FC
- bl SetMainCallback2
- movs r4, 0
- ldr r0, _0804F810 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r4, r0
- bge _0804F7B8
- movs r5, 0xA0
- lsls r5, 20
- ldr r6, _0804F814 @ =gUnknown_08216308
-_0804F792:
- ldm r6!, {r0}
- lsrs r1, r5, 24
- bl CreateTask
- ldr r1, _0804F804 @ =gUnknown_03004854
- ldr r1, [r1]
- movs r2, 0xA4
- lsls r2, 1
- adds r1, r2
- adds r1, r4
- strb r0, [r1]
- movs r3, 0x80
- lsls r3, 17
- adds r5, r3
- adds r4, 0x1
- ldr r0, _0804F810 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r4, r0
- blt _0804F792
-_0804F7B8:
- bl GetCurrentMapMusic
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _0804F818 @ =0x00000193
- cmp r0, r4
- beq _0804F7D6
- bl GetCurrentMapMusic
- ldr r1, _0804F804 @ =gUnknown_03004854
- ldr r1, [r1]
- movs r5, 0xBC
- lsls r5, 1
- adds r1, r5
- strh r0, [r1]
-_0804F7D6:
- adds r0, r4, 0
- bl PlayBGM
- movs r0, 0x35
- bl PlaySE
- bl sub_804E290
-_0804F7E6:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804F804: .4byte gUnknown_03004854
-_0804F808: .4byte 0x0000014b
-_0804F80C: .4byte sub_80501FC
-_0804F810: .4byte gSpecialVar_0x8004
-_0804F814: .4byte gUnknown_08216308
-_0804F818: .4byte 0x00000193
- thumb_func_end sub_804F378
-
- thumb_func_start sub_804F81C
-sub_804F81C: @ 804F81C
- push {lr}
- ldr r3, _0804F83C @ =gSendCmd
- movs r0, 0
- ldr r1, _0804F840 @ =gRecvCmds
- movs r2, 0x3
-_0804F826:
- strh r0, [r3]
- strh r0, [r3, 0x4]
- strh r0, [r1]
- strh r0, [r1, 0x10]
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _0804F826
- pop {r0}
- bx r0
- .align 2, 0
-_0804F83C: .4byte gSendCmd
-_0804F840: .4byte gRecvCmds
- thumb_func_end sub_804F81C
-
- thumb_func_start sub_804F844
-sub_804F844: @ 804F844
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _0804F884 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- lsls r0, 16
- asrs r0, 16
- movs r4, 0xA
- ldrsh r1, [r2, r4]
- cmp r0, r1
- ble _0804F87C
- ldr r0, _0804F888 @ =gRecvCmds
- movs r4, 0xC
- ldrsh r1, [r2, r4]
- lsls r1, 1
- adds r0, 0x10
- adds r1, r0
- ldr r0, _0804F88C @ =0x00002345
- strh r0, [r1]
- adds r0, r3, 0
- bl DestroyTask
-_0804F87C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804F884: .4byte gTasks
-_0804F888: .4byte gRecvCmds
-_0804F88C: .4byte 0x00002345
- thumb_func_end sub_804F844
-
- thumb_func_start sub_804F890
-sub_804F890: @ 804F890
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0804F8C0 @ =sub_804F844
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0804F8C4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804F8C0: .4byte sub_804F844
-_0804F8C4: .4byte gTasks
- thumb_func_end sub_804F890
-
- thumb_func_start sub_804F8C8
-sub_804F8C8: @ 804F8C8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0804F934 @ =gUnknown_03004854
- ldr r0, [r4]
- adds r0, 0x54
- ldrh r0, [r0]
- movs r1, 0x1
- bl task_tutorial_oak_boy_girl
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _0804F8E6
- b _0804F9DC
-_0804F8E6:
- ldr r2, _0804F938 @ =gTasks
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r6, r1, 0
- cmp r0, 0
- beq _0804F8FC
- b _0804F9EA
-_0804F8FC:
- ldr r0, [r4]
- ldr r1, _0804F93C @ =0x0000014b
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804F9BE
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0804F940 @ =0x0000028f
- bl __udivsi3
- lsls r0, 24
- lsrs r1, r0, 24
- adds r3, r1, 0
- ldr r0, [r4]
- adds r0, 0x56
- movs r4, 0
- ldrsh r2, [r0, r4]
- ldr r0, _0804F944 @ =0x000001f3
- cmp r2, r0
- bgt _0804F964
- cmp r1, 0x4B
- bls _0804F950
- ldr r1, _0804F948 @ =gRecvCmds
- ldr r0, _0804F94C @ =0x00004523
- b _0804F954
- .align 2, 0
-_0804F934: .4byte gUnknown_03004854
-_0804F938: .4byte gTasks
-_0804F93C: .4byte 0x0000014b
-_0804F940: .4byte 0x0000028f
-_0804F944: .4byte 0x000001f3
-_0804F948: .4byte gRecvCmds
-_0804F94C: .4byte 0x00004523
-_0804F950:
- ldr r1, _0804F95C @ =gRecvCmds
- ldr r0, _0804F960 @ =0x00005432
-_0804F954:
- strh r0, [r1, 0x12]
- ldr r0, _0804F960 @ =0x00005432
- b _0804F9C2
- .align 2, 0
-_0804F95C: .4byte gRecvCmds
-_0804F960: .4byte 0x00005432
-_0804F964:
- ldr r0, _0804F980 @ =0x000005db
- cmp r2, r0
- bgt _0804F992
- cmp r1, 0x50
- bhi _0804F9BE
- adds r0, r1, 0
- subs r0, 0x15
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- bhi _0804F98C
- ldr r1, _0804F984 @ =gRecvCmds
- ldr r0, _0804F988 @ =0x00005432
- b _0804F9C2
- .align 2, 0
-_0804F980: .4byte 0x000005db
-_0804F984: .4byte gRecvCmds
-_0804F988: .4byte 0x00005432
-_0804F98C:
- cmp r1, 0x9
- bhi _0804F9C4
- b _0804F9B4
-_0804F992:
- cmp r1, 0x5A
- bhi _0804F9BE
- adds r0, r1, 0
- subs r0, 0x47
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _0804F9B0
- ldr r1, _0804F9A8 @ =gRecvCmds
- ldr r0, _0804F9AC @ =0x00005432
- b _0804F9C2
- .align 2, 0
-_0804F9A8: .4byte gRecvCmds
-_0804F9AC: .4byte 0x00005432
-_0804F9B0:
- cmp r3, 0x1D
- bhi _0804F9C4
-_0804F9B4:
- movs r0, 0x1
- movs r1, 0x5
- bl sub_804F890
- b _0804F9C4
-_0804F9BE:
- ldr r1, _0804F9D0 @ =gRecvCmds
- ldr r0, _0804F9D4 @ =0x00004523
-_0804F9C2:
- strh r0, [r1, 0x12]
-_0804F9C4:
- ldr r0, _0804F9D8 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- b _0804F9E8
- .align 2, 0
-_0804F9D0: .4byte gRecvCmds
-_0804F9D4: .4byte 0x00004523
-_0804F9D8: .4byte gTasks
-_0804F9DC:
- ldr r0, _0804F9F0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r0, 0
-_0804F9E8:
- strh r0, [r1, 0x8]
-_0804F9EA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804F9F0: .4byte gTasks
- thumb_func_end sub_804F8C8
-
- thumb_func_start sub_804F9F4
-sub_804F9F4: @ 804F9F4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r6, _0804FA78 @ =gUnknown_03004854
- ldr r3, [r6]
- adds r0, r3, 0
- adds r0, 0x54
- ldrh r0, [r0]
- movs r1, 0xC0
- lsls r1, 5
- adds r0, r1
- ldr r1, _0804FA7C @ =0x0000ffff
- ands r0, r1
- adds r1, r3, 0
- adds r1, 0xA6
- ldrb r1, [r1]
- lsrs r2, r0, 8
- ldr r0, _0804FA80 @ =gUnknown_08216303
- adds r1, r0
- ldrb r1, [r1]
- adds r0, r1, 0
- adds r0, 0x14
- cmp r2, r0
- bls _0804FB04
- adds r0, 0x14
- cmp r2, r0
- bcs _0804FB04
- ldr r2, _0804FA84 @ =gTasks
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r0, 3
- adds r2, r0, r2
- movs r5, 0x8
- ldrsh r0, [r2, r5]
- adds r5, r1, 0
- cmp r0, 0
- bne _0804FB12
- ldr r1, _0804FA88 @ =0x0000014b
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804FAF0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0804FA8C @ =0x0000028f
- bl __udivsi3
- lsls r0, 24
- lsrs r2, r0, 24
- adds r3, r2, 0
- ldr r0, [r6]
- adds r0, 0x56
- movs r6, 0
- ldrsh r1, [r0, r6]
- ldr r0, _0804FA90 @ =0x000001f3
- cmp r1, r0
- bgt _0804FAAC
- cmp r2, 0x42
- bls _0804FA9C
- ldr r1, _0804FA94 @ =gRecvCmds
- ldr r0, _0804FA98 @ =0x00004523
- strh r0, [r1, 0x14]
- b _0804FAD4
- .align 2, 0
-_0804FA78: .4byte gUnknown_03004854
-_0804FA7C: .4byte 0x0000ffff
-_0804FA80: .4byte gUnknown_08216303
-_0804FA84: .4byte gTasks
-_0804FA88: .4byte 0x0000014b
-_0804FA8C: .4byte 0x0000028f
-_0804FA90: .4byte 0x000001f3
-_0804FA94: .4byte gRecvCmds
-_0804FA98: .4byte 0x00004523
-_0804FA9C:
- ldr r1, _0804FAA4 @ =gRecvCmds
- ldr r0, _0804FAA8 @ =0x00005432
- strh r0, [r1, 0x14]
- b _0804FAD4
- .align 2, 0
-_0804FAA4: .4byte gRecvCmds
-_0804FAA8: .4byte 0x00005432
-_0804FAAC:
- cmp r2, 0x41
- bls _0804FAB6
- ldr r1, _0804FAE0 @ =gRecvCmds
- ldr r0, _0804FAE4 @ =0x00004523
- strh r0, [r1, 0x14]
-_0804FAB6:
- adds r0, r2, 0
- subs r0, 0x29
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x18
- bhi _0804FAC8
- ldr r1, _0804FAE0 @ =gRecvCmds
- ldr r0, _0804FAE8 @ =0x00005432
- strh r0, [r1, 0x14]
-_0804FAC8:
- cmp r3, 0x9
- bhi _0804FAD4
- movs r0, 0x2
- movs r1, 0x5
- bl sub_804F890
-_0804FAD4:
- ldr r0, _0804FAEC @ =gTasks
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- b _0804FB10
- .align 2, 0
-_0804FAE0: .4byte gRecvCmds
-_0804FAE4: .4byte 0x00004523
-_0804FAE8: .4byte 0x00005432
-_0804FAEC: .4byte gTasks
-_0804FAF0:
- ldr r0, _0804FAFC @ =gRecvCmds
- ldr r1, _0804FB00 @ =0x00004523
- strh r1, [r0, 0x14]
- movs r0, 0x1
- strh r0, [r2, 0x8]
- b _0804FB12
- .align 2, 0
-_0804FAFC: .4byte gRecvCmds
-_0804FB00: .4byte 0x00004523
-_0804FB04:
- ldr r0, _0804FB18 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0
-_0804FB10:
- strh r0, [r1, 0x8]
-_0804FB12:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804FB18: .4byte gTasks
- thumb_func_end sub_804F9F4
-
- thumb_func_start sub_804FB1C
-sub_804FB1C: @ 804FB1C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _0804FB9C @ =gUnknown_03004854
- ldr r3, [r5]
- adds r0, r3, 0
- adds r0, 0x54
- ldrh r0, [r0]
- movs r1, 0xC0
- lsls r1, 5
- adds r0, r1
- ldr r1, _0804FBA0 @ =0x0000ffff
- ands r0, r1
- adds r1, r3, 0
- adds r1, 0xA8
- ldrb r1, [r1]
- lsrs r2, r0, 8
- ldr r0, _0804FBA4 @ =gUnknown_08216303
- adds r1, r0
- ldrb r1, [r1]
- adds r0, r1, 0
- adds r0, 0x14
- cmp r2, r0
- bls _0804FC30
- adds r0, 0x14
- cmp r2, r0
- bcs _0804FC30
- ldr r2, _0804FBA8 @ =gTasks
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r0, 3
- adds r2, r0, r2
- movs r6, 0x8
- ldrsh r0, [r2, r6]
- adds r6, r1, 0
- cmp r0, 0
- bne _0804FC3E
- ldr r1, _0804FBAC @ =0x0000014b
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804FC1C
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0804FBB0 @ =0x0000028f
- bl __udivsi3
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, [r5]
- adds r0, 0x56
- movs r3, 0
- ldrsh r1, [r0, r3]
- ldr r0, _0804FBB4 @ =0x000001f3
- cmp r1, r0
- bgt _0804FBD0
- cmp r2, 0x58
- bls _0804FBC0
- ldr r1, _0804FBB8 @ =gRecvCmds
- ldr r0, _0804FBBC @ =0x00004523
- strh r0, [r1, 0x16]
- b _0804FC02
- .align 2, 0
-_0804FB9C: .4byte gUnknown_03004854
-_0804FBA0: .4byte 0x0000ffff
-_0804FBA4: .4byte gUnknown_08216303
-_0804FBA8: .4byte gTasks
-_0804FBAC: .4byte 0x0000014b
-_0804FBB0: .4byte 0x0000028f
-_0804FBB4: .4byte 0x000001f3
-_0804FBB8: .4byte gRecvCmds
-_0804FBBC: .4byte 0x00004523
-_0804FBC0:
- ldr r1, _0804FBC8 @ =gRecvCmds
- ldr r0, _0804FBCC @ =0x00005432
- strh r0, [r1, 0x16]
- b _0804FC02
- .align 2, 0
-_0804FBC8: .4byte gRecvCmds
-_0804FBCC: .4byte 0x00005432
-_0804FBD0:
- cmp r2, 0x3C
- bls _0804FBE4
- ldr r1, _0804FBDC @ =gRecvCmds
- ldr r0, _0804FBE0 @ =0x00004523
- b _0804FBF4
- .align 2, 0
-_0804FBDC: .4byte gRecvCmds
-_0804FBE0: .4byte 0x00004523
-_0804FBE4:
- adds r0, r2, 0
- subs r0, 0x38
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _0804FBF6
- ldr r1, _0804FC10 @ =gRecvCmds
- ldr r0, _0804FC14 @ =0x00005432
-_0804FBF4:
- strh r0, [r1, 0x16]
-_0804FBF6:
- cmp r2, 0x4
- bhi _0804FC02
- movs r0, 0x3
- movs r1, 0x5
- bl sub_804F890
-_0804FC02:
- ldr r0, _0804FC18 @ =gTasks
- adds r1, r6, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- b _0804FC3C
- .align 2, 0
-_0804FC10: .4byte gRecvCmds
-_0804FC14: .4byte 0x00005432
-_0804FC18: .4byte gTasks
-_0804FC1C:
- ldr r0, _0804FC28 @ =gRecvCmds
- ldr r1, _0804FC2C @ =0x00004523
- strh r1, [r0, 0x16]
- movs r0, 0x1
- strh r0, [r2, 0x8]
- b _0804FC3E
- .align 2, 0
-_0804FC28: .4byte gRecvCmds
-_0804FC2C: .4byte 0x00004523
-_0804FC30:
- ldr r0, _0804FC44 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0
-_0804FC3C:
- strh r0, [r1, 0x8]
-_0804FC3E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804FC44: .4byte gTasks
- thumb_func_end sub_804FB1C
-
- thumb_func_start sub_804FC48
-sub_804FC48: @ 804FC48
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r7, r0, 16
- mov r8, r7
- lsls r1, 24
- ldr r0, _0804FCBC @ =gSpriteTemplate_821645C
- ldr r4, _0804FCC0 @ =gUnknown_082162E4
- lsrs r1, 23
- adds r2, r1, r4
- ldrb r6, [r2]
- ldr r5, _0804FCC4 @ =gUnknown_082162CC
- adds r2, r1, r5
- movs r3, 0
- ldrsb r3, [r2, r3]
- lsls r2, r3, 2
- adds r2, r3
- lsls r2, 1
- subs r6, r2
- adds r4, 0x1
- adds r4, r1, r4
- ldrb r2, [r4]
- adds r5, 0x1
- adds r1, r5
- movs r3, 0
- ldrsb r3, [r1, r3]
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 1
- subs r2, r1
- adds r1, r6, 0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- adds r2, r1, 0
- ldr r0, _0804FCC8 @ =0x00004523
- cmp r7, r0
- bne _0804FCD4
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- ldr r5, _0804FCCC @ =gSprites
- adds r0, r4, r5
- movs r1, 0x2
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _0804FCD0 @ =sub_8051684
- str r0, [r4]
- movs r0, 0x28
- bl PlaySE
- b _0804FD18
- .align 2, 0
-_0804FCBC: .4byte gSpriteTemplate_821645C
-_0804FCC0: .4byte gUnknown_082162E4
-_0804FCC4: .4byte gUnknown_082162CC
-_0804FCC8: .4byte 0x00004523
-_0804FCCC: .4byte gSprites
-_0804FCD0: .4byte sub_8051684
-_0804FCD4:
- ldr r0, _0804FCF4 @ =0x00005432
- cmp r7, r0
- bne _0804FCFC
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0804FCF8 @ =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- movs r0, 0x1F
- bl PlaySE
- b _0804FD18
- .align 2, 0
-_0804FCF4: .4byte 0x00005432
-_0804FCF8: .4byte gSprites
-_0804FCFC:
- ldr r0, _0804FD28 @ =0x00002345
- cmp r8, r0
- bne _0804FD18
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- ldr r1, _0804FD2C @ =gSprites
- adds r0, r1
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0x20
- bl PlaySE
-_0804FD18:
- bl sub_805156C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804FD28: .4byte 0x00002345
-_0804FD2C: .4byte gSprites
- thumb_func_end sub_804FC48
-
- thumb_func_start sub_804FD30
-sub_804FD30: @ 804FD30
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- bl sub_804E290
- ldr r0, _0804FD50 @ =0x00004523
- cmp r4, r0
- beq _0804FD64
- cmp r4, r0
- bgt _0804FD58
- ldr r0, _0804FD54 @ =0x00002345
- cmp r4, r0
- beq _0804FE34
- b _0804FE60
- .align 2, 0
-_0804FD50: .4byte 0x00004523
-_0804FD54: .4byte 0x00002345
-_0804FD58:
- ldr r0, _0804FD60 @ =0x00005432
- cmp r5, r0
- beq _0804FDFC
- b _0804FE60
- .align 2, 0
-_0804FD60: .4byte 0x00005432
-_0804FD64:
- ldr r7, _0804FD94 @ =gUnknown_03004854
- ldr r4, [r7]
- adds r5, r4, 0
- adds r5, 0x56
- ldrh r6, [r5]
- movs r0, 0
- ldrsh r1, [r5, r0]
- ldr r0, _0804FD98 @ =0x000005db
- cmp r1, r0
- bgt _0804FDA0
- ldr r1, _0804FD9C @ =gUnknown_082165DA
- adds r0, r4, 0
- adds r0, 0x88
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0xC0
- lsls r0, 1
- bl __divsi3
- adds r0, r6, r0
- strh r0, [r5]
- b _0804FE60
- .align 2, 0
-_0804FD94: .4byte gUnknown_03004854
-_0804FD98: .4byte 0x000005db
-_0804FD9C: .4byte gUnknown_082165DA
-_0804FDA0:
- ldr r1, _0804FDF8 @ =gUnknown_082165DA
- adds r0, r4, 0
- adds r0, 0x88
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x80
- bl __divsi3
- adds r0, r6, r0
- strh r0, [r5]
- movs r1, 0xA2
- lsls r1, 1
- adds r4, r1
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r1, 0x64
- bl __divsi3
- adds r1, r0, 0
- subs r1, 0xA
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8051AC8
- ldr r0, [r7]
- movs r1, 0xA3
- lsls r1, 1
- adds r4, r0, r1
- adds r0, 0x56
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x64
- bl __divsi3
- adds r1, r0, 0
- subs r1, 0xA
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8051AC8
- b _0804FE60
- .align 2, 0
-_0804FDF8: .4byte gUnknown_082165DA
-_0804FDFC:
- ldr r0, _0804FE28 @ =gUnknown_03004854
- ldr r2, [r0]
- adds r4, r2, 0
- adds r4, 0x56
- ldrh r5, [r4]
- movs r0, 0
- ldrsh r1, [r4, r0]
- ldr r0, _0804FE2C @ =0x000005db
- cmp r1, r0
- bgt _0804FE60
- ldr r1, _0804FE30 @ =gUnknown_082165DA
- adds r0, r2, 0
- adds r0, 0x88
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- bl __divsi3
- adds r0, r5, r0
- b _0804FE5E
- .align 2, 0
-_0804FE28: .4byte gUnknown_03004854
-_0804FE2C: .4byte 0x000005db
-_0804FE30: .4byte gUnknown_082165DA
-_0804FE34:
- ldr r0, _0804FE68 @ =gUnknown_03004854
- ldr r0, [r0]
- adds r4, r0, 0
- adds r4, 0x56
- ldr r1, _0804FE6C @ =gUnknown_082165DA
- adds r0, 0x88
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- bl __divsi3
- ldrh r1, [r4]
- subs r1, r0
- strh r1, [r4]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- bgt _0804FE60
- movs r0, 0x80
-_0804FE5E:
- strh r0, [r4]
-_0804FE60:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804FE68: .4byte gUnknown_03004854
-_0804FE6C: .4byte gUnknown_082165DA
- thumb_func_end sub_804FD30
-
- thumb_func_start sub_804FE70
-sub_804FE70: @ 804FE70
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _0804FF40 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- beq _0804FEB6
- ldr r3, _0804FF44 @ =gSendCmd
- ldrh r0, [r3, 0x4]
- ldr r2, _0804FF48 @ =gRecvCmds
- cmp r0, 0
- beq _0804FE98
- movs r1, 0
- strh r0, [r2, 0x10]
- ldr r0, _0804FF4C @ =0x00004444
- strh r0, [r2]
- strh r1, [r3, 0x4]
-_0804FE98:
- ldr r0, _0804FF48 @ =gRecvCmds
- ldr r3, _0804FF4C @ =0x00004444
- adds r1, r2, 0x2
- adds r2, r0, 0
- adds r2, 0x12
- movs r6, 0x2
-_0804FEA4:
- ldrh r0, [r2]
- cmp r0, 0
- beq _0804FEAC
- strh r3, [r1]
-_0804FEAC:
- adds r1, 0x2
- adds r2, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _0804FEA4
-_0804FEB6:
- movs r6, 0
- ldr r7, _0804FF50 @ =gUnknown_03004854
- adds r1, r7, 0
- ldr r0, [r1]
- adds r0, 0x88
- ldrb r0, [r0]
- cmp r6, r0
- blt _0804FEC8
- b _0805005C
-_0804FEC8:
- movs r2, 0
- str r2, [sp]
- mov r9, r2
- ldr r0, _0804FF48 @ =gRecvCmds
- adds r0, 0x10
- mov r8, r0
- ldr r1, _0804FF54 @ =0x00005432
- mov r10, r1
-_0804FED8:
- ldr r2, [sp]
- ldr r1, _0804FF48 @ =gRecvCmds
- adds r0, r2, r1
- ldrh r1, [r0]
- ldr r0, _0804FF4C @ =0x00004444
- cmp r1, r0
- beq _0804FEE8
- b _0805003E
-_0804FEE8:
- ldr r0, [r7]
- adds r0, 0xA2
- adds r0, r2
- ldrh r5, [r0]
- mov r2, r8
- ldrh r4, [r2]
- ldr r0, _0804FF58 @ =0x00004523
- cmp r4, r0
- bne _0804FF60
- bl sub_804FD30
- ldr r0, [r7]
- movs r1, 0x9F
- lsls r1, 1
- adds r4, r0, r1
- adds r0, 0x56
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0x37
- bl __divsi3
- ldrh r1, [r4]
- adds r1, r0
- strh r1, [r4]
- lsls r1, 16
- ldr r0, _0804FF5C @ =0x03e70000
- cmp r1, r0
- bls _0804FF26
- movs r0, 0xFA
- lsls r0, 2
- strh r0, [r4]
-_0804FF26:
- lsls r1, r5, 24
- lsrs r1, 24
- ldr r0, _0804FF58 @ =0x00004523
- bl sub_804FC48
- ldr r1, [r7]
- movs r0, 0xA6
- lsls r0, 1
- adds r1, r0
- add r1, r9
- ldrh r0, [r1]
- adds r0, 0x1
- b _0804FFCA
- .align 2, 0
-_0804FF40: .4byte gSpecialVar_0x8004
-_0804FF44: .4byte gSendCmd
-_0804FF48: .4byte gRecvCmds
-_0804FF4C: .4byte 0x00004444
-_0804FF50: .4byte gUnknown_03004854
-_0804FF54: .4byte 0x00005432
-_0804FF58: .4byte 0x00004523
-_0804FF5C: .4byte 0x03e70000
-_0804FF60:
- cmp r4, r10
- bne _0804FF9E
- mov r0, r10
- bl sub_804FD30
- ldr r0, [r7]
- movs r1, 0x9F
- lsls r1, 1
- adds r4, r0, r1
- adds r0, 0x56
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0x46
- bl __divsi3
- ldrh r1, [r4]
- adds r1, r0
- strh r1, [r4]
- lsls r1, r5, 24
- lsrs r1, 24
- mov r0, r10
- bl sub_804FC48
- ldr r1, [r7]
- movs r0, 0xA7
- lsls r0, 1
- adds r1, r0
- add r1, r9
- ldrh r0, [r1]
- adds r0, 0x1
- b _0804FFCA
-_0804FF9E:
- ldr r0, _08050018 @ =0x00002345
- cmp r4, r0
- bne _0804FFD6
- lsls r1, r5, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_804FC48
- adds r0, r4, 0
- bl sub_804FD30
- ldr r0, [r7]
- movs r1, 0xA8
- lsls r1, 1
- adds r0, r1
- mov r2, r9
- adds r1, r0, r2
- ldrh r2, [r1]
- ldr r0, _0805001C @ =0x000003e6
- cmp r2, r0
- bhi _0804FFCC
- adds r0, r2, 0x1
-_0804FFCA:
- strh r0, [r1]
-_0804FFCC:
- mov r0, r8
- ldrh r1, [r0]
- ldr r0, _08050018 @ =0x00002345
- cmp r1, r0
- beq _0804FFE4
-_0804FFD6:
- mov r1, r8
- ldrh r0, [r1]
- ldr r2, _08050020 @ =0x00004523
- cmp r0, r2
- beq _0804FFE4
- cmp r0, r10
- bne _0805003E
-_0804FFE4:
- ldr r0, _08050024 @ =gUnknown_03004854
- ldr r0, [r0]
- adds r2, r0, 0
- adds r2, 0x56
- movs r0, 0
- ldrsh r1, [r2, r0]
- ldr r0, _08050028 @ =0x000005dc
- cmp r1, r0
- ble _08050034
- adds r0, r1, 0
- ldr r2, _0805002C @ =0xfffffd12
- adds r0, r2
- movs r1, 0x14
- bl __divsi3
- adds r1, r0, 0
- movs r0, 0x80
- lsls r0, 1
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _08050030 @ =gMPlay_BGM
- bl m4aMPlayTempoControl
- b _0805003E
- .align 2, 0
-_08050018: .4byte 0x00002345
-_0805001C: .4byte 0x000003e6
-_08050020: .4byte 0x00004523
-_08050024: .4byte gUnknown_03004854
-_08050028: .4byte 0x000005dc
-_0805002C: .4byte 0xfffffd12
-_08050030: .4byte gMPlay_BGM
-_08050034:
- ldr r0, _08050098 @ =gMPlay_BGM
- movs r1, 0x80
- lsls r1, 1
- bl m4aMPlayTempoControl
-_0805003E:
- ldr r1, [sp]
- adds r1, 0x2
- str r1, [sp]
- movs r2, 0x6
- add r9, r2
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- ldr r7, _0805009C @ =gUnknown_03004854
- ldr r0, [r7]
- adds r0, 0x88
- ldrb r0, [r0]
- cmp r6, r0
- bge _0805005C
- b _0804FED8
-_0805005C:
- ldr r0, _080500A0 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- beq _08050088
- movs r6, 0
- ldr r3, _0805009C @ =gUnknown_03004854
- ldr r0, [r3]
- adds r0, 0x88
- ldrb r0, [r0]
- cmp r6, r0
- bge _08050088
- movs r2, 0
- ldr r1, _080500A4 @ =gRecvCmds
-_08050076:
- strh r2, [r1]
- strh r2, [r1, 0x10]
- adds r1, 0x2
- adds r6, 0x1
- ldr r0, [r3]
- adds r0, 0x88
- ldrb r0, [r0]
- cmp r6, r0
- blt _08050076
-_08050088:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08050098: .4byte gMPlay_BGM
-_0805009C: .4byte gUnknown_03004854
-_080500A0: .4byte gSpecialVar_0x8004
-_080500A4: .4byte gRecvCmds
- thumb_func_end sub_804FE70
-
- thumb_func_start sub_80500A8
-sub_80500A8: @ 80500A8
- push {r4-r6,lr}
- movs r6, 0
- ldr r5, _080500EC @ =gUnknown_03004854
- ldr r4, [r5]
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 23
- adds r4, 0xA2
- adds r4, r0
- ldrb r3, [r4]
- ldr r0, [r5]
- adds r0, 0x6F
- ldrb r0, [r0]
- cmp r0, 0
- bne _0805018A
- ldr r0, _080500F0 @ =gSaveBlock2
- ldrb r0, [r0, 0x13]
- cmp r0, 0x2
- bne _080500FC
- ldr r2, _080500F4 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0805010A
- ldrh r0, [r2, 0x28]
- ldr r1, _080500F8 @ =0x00000201
- bics r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r6, r0, 31
- b _0805010A
- .align 2, 0
-_080500EC: .4byte gUnknown_03004854
-_080500F0: .4byte gSaveBlock2
-_080500F4: .4byte gMain
-_080500F8: .4byte 0x00000201
-_080500FC:
- ldr r0, _0805015C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0805010A
- movs r6, 0x1
-_0805010A:
- cmp r6, 0
- beq _0805018A
- ldr r4, _08050160 @ =gUnknown_03004854
- ldr r1, [r4]
- lsls r2, r3, 1
- adds r0, r1, 0
- adds r0, 0x9A
- adds r0, r2
- adds r1, 0x5C
- ldrh r0, [r0]
- adds r1, r0
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08050164 @ =gSprites
- adds r0, r1
- adds r1, r3, 0x4
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- ldr r0, [r4]
- adds r0, 0x54
- ldrh r4, [r0]
- bl GetMultiplayerId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl task_tutorial_oak_boy_girl
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08050170
- ldr r1, _08050168 @ =gSendCmd
- ldr r0, _0805016C @ =0x00004523
- b _08050188
- .align 2, 0
-_0805015C: .4byte gMain
-_08050160: .4byte gUnknown_03004854
-_08050164: .4byte gSprites
-_08050168: .4byte gSendCmd
-_0805016C: .4byte 0x00004523
-_08050170:
- cmp r0, 0x1
- bne _08050184
- ldr r1, _0805017C @ =gSendCmd
- ldr r0, _08050180 @ =0x00005432
- b _08050188
- .align 2, 0
-_0805017C: .4byte gSendCmd
-_08050180: .4byte 0x00005432
-_08050184:
- ldr r1, _080501E4 @ =gSendCmd
- ldr r0, _080501E8 @ =0x00002345
-_08050188:
- strh r0, [r1, 0x4]
-_0805018A:
- ldr r2, _080501EC @ =gUnknown_03004854
- ldr r1, [r2]
- adds r1, 0x7E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bls _080501BA
- ldr r0, [r2]
- adds r1, r0, 0
- adds r1, 0x56
- ldrh r3, [r1]
- movs r4, 0
- ldrsh r0, [r1, r4]
- cmp r0, 0x80
- ble _080501B2
- subs r0, r3, 0x1
- strh r0, [r1]
-_080501B2:
- ldr r0, [r2]
- adds r0, 0x7E
- movs r1, 0
- strb r1, [r0]
-_080501BA:
- ldr r0, _080501F0 @ =gUnknown_020297ED
- ldrb r0, [r0]
- cmp r0, 0
- beq _080501DE
- ldr r0, _080501F4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080501DE
- ldr r0, [r2]
- ldr r1, _080501F8 @ =0x0000014b
- adds r2, r0, r1
- ldrb r0, [r2]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r2]
-_080501DE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080501E4: .4byte gSendCmd
-_080501E8: .4byte 0x00002345
-_080501EC: .4byte gUnknown_03004854
-_080501F0: .4byte gUnknown_020297ED
-_080501F4: .4byte gMain
-_080501F8: .4byte 0x0000014b
- thumb_func_end sub_80500A8
-
- thumb_func_start sub_80501FC
-sub_80501FC: @ 80501FC
- push {r4-r6,lr}
- bl sub_8051474
- ldr r4, _08050294 @ =gUnknown_03004854
- ldr r0, [r4]
- movs r1, 0x96
- lsls r1, 1
- adds r2, r0, r1
- ldr r1, [r2]
- ldr r0, _08050298 @ =0x00057e03
- cmp r1, r0
- bhi _08050218
- adds r0, r1, 0x1
- str r0, [r2]
-_08050218:
- bl sub_80500A8
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x56
- ldrh r0, [r0]
- movs r5, 0x9F
- lsls r5, 1
- adds r1, r5
- ldrh r1, [r1]
- bl SetLinkDebugValues
- bl sub_804FE70
- ldr r0, [r4]
- adds r0, r5
- ldrh r0, [r0]
- movs r6, 0xFA
- lsls r6, 2
- adds r1, r6, 0
- bl sub_805194C
- ldr r0, [r4]
- adds r0, 0x56
- ldrh r0, [r0]
- bl sub_8051A3C
- bl sub_8051B18
- bl sub_805123C
- ldr r2, [r4]
- adds r3, r2, 0
- adds r3, 0x6F
- ldrb r0, [r3]
- cmp r0, 0
- bne _0805027E
- movs r1, 0xA0
- lsls r1, 1
- adds r0, r2, r1
- ldrh r1, [r0]
- ldr r0, _0805029C @ =0x000003e7
- cmp r1, r0
- bls _0805027E
- adds r0, r2, r5
- strh r6, [r0]
- movs r0, 0x1
- strb r0, [r3]
- ldr r0, _080502A0 @ =sub_8050954
- bl SetMainCallback2
-_0805027E:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08050294: .4byte gUnknown_03004854
-_08050298: .4byte 0x00057e03
-_0805029C: .4byte 0x000003e7
-_080502A0: .4byte sub_8050954
- thumb_func_end sub_80501FC
-
- thumb_func_start help_system_is_not_first_time
-help_system_is_not_first_time: @ 80502A4
- push {r4,r5,lr}
- lsls r1, 24
- lsls r2, 24
- lsrs r1, 20
- adds r4, r1, r0
- lsrs r2, 20
- adds r5, r2, r0
- ldrh r0, [r4]
- ldrh r1, [r5]
- cmp r0, r1
- bne _080502E2
- adds r0, r4, 0x2
- adds r1, r5, 0x2
- bl StringCompare
- cmp r0, 0
- bne _080502F0
- ldr r0, [r4, 0x8]
- ldr r2, _080502E8 @ =0xffffff00
- ands r0, r2
- ldr r1, [r5, 0x8]
- ands r1, r2
- cmp r0, r1
- bne _080502F0
- ldr r0, [r4, 0xC]
- ldr r2, _080502EC @ =0x00ffffff
- ands r0, r2
- ldr r1, [r5, 0xC]
- ands r1, r2
- cmp r0, r1
- bne _080502F0
-_080502E2:
- movs r0, 0x1
- b _080502F2
- .align 2, 0
-_080502E8: .4byte 0xffffff00
-_080502EC: .4byte 0x00ffffff
-_080502F0:
- movs r0, 0
-_080502F2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end help_system_is_not_first_time
-
- thumb_func_start sub_80502F8
-sub_80502F8: @ 80502F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r10, r0
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x10]
- lsls r3, 24
- lsrs r3, 24
- mov r2, sp
- movs r4, 0x5
-_08050314:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _08050314
- movs r6, 0
- mov r1, sp
- movs r4, 0x4
-_08050328:
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08050332
- adds r6, 0x1
-_08050332:
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _08050328
- cmp r6, 0x5
- beq _08050386
- cmp r3, 0x3
- bhi _08050386
- movs r4, 0
- ldr r3, [sp, 0x10]
- cmp r4, r3
- bge _0805039E
- mov r3, r10
-_0805034C:
- movs r6, 0
- ldr r7, [sp, 0x10]
- cmp r6, r7
- bge _08050394
- mov r9, r3
- mov r5, r10
- lsls r0, r4, 24
- mov r8, r0
-_0805035C:
- mov r1, r9
- ldrh r0, [r1]
- ldrh r2, [r5]
- cmp r0, r2
- bne _0805038A
- cmp r4, r6
- beq _0805038A
- cmp r0, 0xAF
- bne _08050386
- lsls r2, r6, 24
- lsrs r2, 24
- mov r0, r10
- mov r7, r8
- lsrs r1, r7, 24
- str r3, [sp, 0xC]
- bl help_system_is_not_first_time
- lsls r0, 24
- ldr r3, [sp, 0xC]
- cmp r0, 0
- beq _0805038A
-_08050386:
- movs r0, 0xC
- b _080504DE
-_0805038A:
- adds r5, 0x10
- adds r6, 0x1
- ldr r0, [sp, 0x10]
- cmp r6, r0
- blt _0805035C
-_08050394:
- adds r3, 0x10
- adds r4, 0x1
- ldr r1, [sp, 0x10]
- cmp r4, r1
- blt _0805034C
-_0805039E:
- movs r2, 0
- mov r1, sp
- movs r4, 0x4
-_080503A4:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _080503B2
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_080503B2:
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080503A4
- cmp r2, 0x3
- bls _080503C2
- movs r0, 0xD
- b _080504DE
-_080503C2:
- cmp r2, 0x3
- bne _080503CA
- movs r0, 0xB
- b _080504DE
-_080503CA:
- movs r4, 0
- mov r1, sp
-_080503CE:
- movs r7, 0
- ldrsh r0, [r1, r7]
- cmp r0, 0x32
- ble _080503D8
- b _080504D8
-_080503D8:
- adds r1, 0x2
- adds r4, 0x1
- cmp r4, 0x4
- ble _080503CE
- cmp r2, 0x1
- bne _0805042A
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- ble _080503F2
- movs r0, 0x1
- b _080504DE
-_080503F2:
- mov r0, sp
- ldrh r0, [r0, 0x2]
- lsls r0, 16
- cmp r0, 0
- ble _08050400
- movs r0, 0x2
- b _080504DE
-_08050400:
- mov r0, sp
- movs r3, 0x4
- ldrsh r0, [r0, r3]
- cmp r0, 0
- ble _0805040E
- movs r0, 0x3
- b _080504DE
-_0805040E:
- mov r0, sp
- movs r4, 0x6
- ldrsh r0, [r0, r4]
- cmp r0, 0
- ble _0805041C
- movs r0, 0x4
- b _080504DE
-_0805041C:
- mov r0, sp
- movs r7, 0x8
- ldrsh r0, [r0, r7]
- cmp r0, 0
- ble _0805042A
- movs r0, 0x5
- b _080504DE
-_0805042A:
- cmp r2, 0x2
- bne _080504DC
- movs r4, 0
- ldr r5, _08050474 @ =gUnknown_03000520
- mov r1, sp
- adds r2, r5, 0
-_08050436:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _08050442
- strh r4, [r2]
- adds r2, 0x2
-_08050442:
- adds r1, 0x2
- adds r4, 0x1
- cmp r4, 0x4
- ble _08050436
- movs r4, 0
- ldrsh r3, [r5, r4]
- lsls r0, r3, 1
- mov r7, sp
- adds r1, r7, r0
- movs r0, 0x2
- ldrsh r2, [r5, r0]
- lsls r0, r2, 1
- add r0, sp
- movs r4, 0
- ldrsh r1, [r1, r4]
- movs r7, 0
- ldrsh r0, [r0, r7]
- cmp r1, r0
- blt _08050498
- adds r0, r3, 0
- cmp r0, 0
- bne _08050478
- lsls r0, r2, 16
- b _080504A2
- .align 2, 0
-_08050474: .4byte gUnknown_03000520
-_08050478:
- cmp r0, 0x1
- bne _08050480
- lsls r0, r2, 16
- b _080504AE
-_08050480:
- cmp r0, 0x2
- bne _08050488
- lsls r0, r2, 16
- b _080504BA
-_08050488:
- cmp r0, 0x3
- bne _08050490
- lsls r0, r2, 16
- b _080504C6
-_08050490:
- cmp r0, 0x4
- bne _080504DC
- lsls r0, r2, 16
- b _080504D2
-_08050498:
- movs r2, 0x2
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _080504A8
- lsls r0, r3, 16
-_080504A2:
- movs r1, 0x6
- orrs r0, r1
- b _080504DE
-_080504A8:
- cmp r0, 0x1
- bne _080504B4
- lsls r0, r3, 16
-_080504AE:
- movs r1, 0x7
- orrs r0, r1
- b _080504DE
-_080504B4:
- cmp r0, 0x2
- bne _080504C0
- lsls r0, r3, 16
-_080504BA:
- movs r1, 0x8
- orrs r0, r1
- b _080504DE
-_080504C0:
- cmp r0, 0x3
- bne _080504CC
- lsls r0, r3, 16
-_080504C6:
- movs r1, 0x9
- orrs r0, r1
- b _080504DE
-_080504CC:
- cmp r0, 0x4
- bne _080504DC
- lsls r0, r3, 16
-_080504D2:
- movs r1, 0xA
- orrs r0, r1
- b _080504DE
-_080504D8:
- movs r0, 0xE
- b _080504DE
-_080504DC:
- movs r0, 0
-_080504DE:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80502F8
-
- thumb_func_start sub_80504F0
-sub_80504F0: @ 80504F0
- ldr r1, _080504F8 @ =gUnknown_0300052C
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080504F8: .4byte gUnknown_0300052C
- thumb_func_end sub_80504F0
-
- thumb_func_start unref_sub_80504FC
-unref_sub_80504FC: @ 80504FC
- ldr r0, _08050504 @ =gUnknown_0300052C
- movs r1, 0
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_08050504: .4byte gUnknown_0300052C
- thumb_func_end unref_sub_80504FC
-
- thumb_func_start sub_8050508
-sub_8050508: @ 8050508
- ldr r1, _08050510 @ =gUnknown_0300052E
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08050510: .4byte gUnknown_0300052E
- thumb_func_end sub_8050508
-
- thumb_func_start unref_sub_8050514
-unref_sub_8050514: @ 8050514
- ldr r0, _0805051C @ =gUnknown_0300052E
- movs r1, 0
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_0805051C: .4byte gUnknown_0300052E
- thumb_func_end unref_sub_8050514
-
- thumb_func_start sub_8050520
-sub_8050520: @ 8050520
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- str r0, [sp]
- mov r8, r1
- str r3, [sp, 0x4]
- ldr r0, [sp, 0x30]
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- ldr r7, _080505DC @ =gUnknown_03000510
- adds r2, r7, 0
- movs r1, 0
- adds r0, r7, 0
- adds r0, 0xA
-_0805054A:
- strh r1, [r0]
- subs r0, 0x2
- cmp r0, r2
- bge _0805054A
- movs r6, 0
- cmp r6, r9
- bge _08050580
- ldr r0, _080505DC @ =gUnknown_03000510
- mov r12, r0
- ldr r5, [sp]
- adds r5, 0x9
-_08050560:
- movs r3, 0
- adds r4, r5, 0
- mov r2, r12
-_08050566:
- adds r1, r4, r3
- ldrh r0, [r2]
- ldrb r1, [r1]
- adds r0, r1
- strh r0, [r2]
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x5
- ble _08050566
- adds r5, 0x10
- adds r6, 0x1
- cmp r6, r9
- blt _08050560
-_08050580:
- movs r1, 0
- ldrsh r3, [r7, r1]
- ldrh r0, [r7]
- ldrh r1, [r7, 0x2]
- subs r0, r1
- strh r0, [r7]
- ldrh r0, [r7, 0x4]
- subs r1, r0
- strh r1, [r7, 0x2]
- ldrh r1, [r7, 0x6]
- subs r0, r1
- strh r0, [r7, 0x4]
- ldrh r0, [r7, 0x8]
- subs r1, r0
- strh r1, [r7, 0x6]
- subs r0, r3
- strh r0, [r7, 0x8]
- movs r3, 0
- movs r2, 0
- adds r1, r7, 0
- movs r6, 0x4
-_080505AA:
- movs r4, 0
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bge _080505B6
- strh r2, [r1]
- adds r3, 0x1
-_080505B6:
- adds r1, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _080505AA
- lsls r0, r3, 24
- lsrs r0, 24
- mov r10, r0
- movs r4, 0
- ldr r1, _080505DC @ =gUnknown_03000510
- movs r6, 0x4
-_080505CA:
- ldrh r2, [r1]
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r0, 0
- ble _080505E4
- cmp r0, r3
- bge _080505E0
- strh r4, [r1]
- b _080505E4
- .align 2, 0
-_080505DC: .4byte gUnknown_03000510
-_080505E0:
- subs r0, r2, r3
- strh r0, [r1]
-_080505E4:
- adds r1, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _080505CA
- ldr r1, _080506C4 @ =gUnknown_03000510
- ldr r2, _080506C8 @ =gUnknown_03000530
- movs r6, 0x4
-_080505F2:
- movs r3, 0
- ldrsh r0, [r1, r3]
- stm r2!, {r0}
- adds r1, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _080505F2
- ldr r1, _080506CC @ =0x0000014d
- ldr r0, [sp, 0x8]
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- adds r3, r0, 0
- adds r3, 0x64
- ldr r4, _080506D0 @ =gUnknown_0300055C
- str r3, [r4]
- movs r6, 0x4
-_08050616:
- movs r0, 0
- ldrsh r5, [r7, r0]
- adds r0, r5, 0
- muls r0, r3
- movs r1, 0xA
- str r3, [sp, 0xC]
- bl __divsi3
- adds r5, r0, 0
- movs r1, 0xA
- bl __modsi3
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
- ldr r3, [sp, 0xC]
- cmp r4, 0x4
- ble _08050642
- adds r5, 0x1
-_08050642:
- strh r5, [r7]
- adds r7, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _08050616
- ldr r1, _080506C4 @ =gUnknown_03000510
- ldr r2, _080506D4 @ =gUnknown_03000548
- movs r6, 0x4
-_08050652:
- movs r3, 0
- ldrsh r0, [r1, r3]
- stm r2!, {r0}
- adds r1, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _08050652
- ldr r4, _080506C4 @ =gUnknown_03000510
- ldr r0, [sp]
- adds r1, r4, 0
- mov r2, r9
- mov r3, r10
- bl sub_80502F8
- mov r5, r8
- strb r0, [r5]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- mov r1, r9
- bl __divsi3
- mov r3, r9
- subs r0, r3
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bge _0805068C
- movs r0, 0
- strh r0, [r4, 0xA]
-_0805068C:
- mov r5, r8
- ldrb r0, [r5]
- cmp r0, 0xC
- bne _080506E6
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r3, r0, 16
- movs r6, 0
- ldr r0, _080506D8 @ =gUnknown_082165DF
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0
- movs r4, 0x1
- movs r3, 0x2
-_080506B4:
- adds r2, r0, 0
- asrs r2, r6
- ands r2, r4
- cmp r2, 0
- beq _080506DC
- strh r3, [r1]
- b _080506DE
- .align 2, 0
-_080506C4: .4byte gUnknown_03000510
-_080506C8: .4byte gUnknown_03000530
-_080506CC: .4byte 0x0000014d
-_080506D0: .4byte gUnknown_0300055C
-_080506D4: .4byte gUnknown_03000548
-_080506D8: .4byte gUnknown_082165DF
-_080506DC:
- strh r2, [r1]
-_080506DE:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, 0x4
- ble _080506B4
-_080506E6:
- ldr r7, _08050740 @ =gUnknown_03000510
- movs r2, 0xFF
- adds r1, r7, 0
- movs r6, 0x5
-_080506EE:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0xFF
- ble _080506F8
- strh r2, [r1]
-_080506F8:
- adds r1, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _080506EE
- ldrh r0, [r7]
- mov r4, r8
- strb r0, [r4, 0x1]
- ldrh r0, [r7, 0x2]
- strb r0, [r4, 0x2]
- ldrh r0, [r7, 0x4]
- strb r0, [r4, 0x3]
- ldrh r0, [r7, 0x6]
- strb r0, [r4, 0x4]
- ldrh r0, [r7, 0x8]
- strb r0, [r4, 0x5]
- ldrh r0, [r7, 0xA]
- strb r0, [r4, 0x6]
- movs r6, 0
- adds r2, r7, 0
-_0805071E:
- ldr r5, [sp, 0x4]
- adds r1, r5, r6
- ldrh r0, [r2]
- strb r0, [r1]
- adds r2, 0x2
- adds r6, 0x1
- cmp r6, 0x5
- ble _0805071E
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08050740: .4byte gUnknown_03000510
- thumb_func_end sub_8050520
-
- thumb_func_start sub_8050744
-sub_8050744: @ 8050744
- push {r4,lr}
- sub sp, 0x4
- ldr r4, [sp, 0xC]
- lsls r2, 24
- lsrs r2, 24
- lsls r4, 16
- lsrs r4, 16
- str r4, [sp]
- bl sub_8050520
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8050744
-
- thumb_func_start sub_8050760
-sub_8050760: @ 8050760
- push {r4-r6,lr}
- ldr r0, _08050780 @ =gUnknown_03004854
- ldr r0, [r0]
- movs r2, 0x96
- lsls r2, 1
- adds r1, r0, r2
- ldrh r1, [r1]
- adds r0, 0x5A
- ldrh r4, [r0]
- movs r2, 0
- ldr r5, _08050784 @ =0x00000383
- cmp r1, r5
- bhi _08050788
- movs r2, 0x5
- b _080507DA
- .align 2, 0
-_08050780: .4byte gUnknown_03004854
-_08050784: .4byte 0x00000383
-_08050788:
- ldr r3, _0805079C @ =0xfffffc7c
- adds r0, r1, r3
- lsls r0, 16
- lsrs r0, 16
- ldr r3, _080507A0 @ =0x00000257
- cmp r0, r3
- bhi _080507A4
- movs r2, 0x4
- b _080507DA
- .align 2, 0
-_0805079C: .4byte 0xfffffc7c
-_080507A0: .4byte 0x00000257
-_080507A4:
- ldr r6, _080507B4 @ =0xfffffa24
- adds r0, r1, r6
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r3
- bhi _080507B8
- movs r2, 0x3
- b _080507DA
- .align 2, 0
-_080507B4: .4byte 0xfffffa24
-_080507B8:
- ldr r3, _080507C8 @ =0xfffff7cc
- adds r0, r1, r3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r5
- bhi _080507CC
- movs r2, 0x2
- b _080507DA
- .align 2, 0
-_080507C8: .4byte 0xfffff7cc
-_080507CC:
- ldr r6, _080507F8 @ =0xfffff31c
- adds r0, r1, r6
- lsls r0, 16
- ldr r1, _080507FC @ =0x012b0000
- cmp r0, r1
- bhi _080507DA
- movs r2, 0x1
-_080507DA:
- lsls r0, r2, 16
- asrs r0, 16
- bl sub_8050508
- movs r2, 0
- cmp r4, 0x40
- bhi _080508BC
- adds r0, r4, 0
- subs r0, 0x32
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bhi _08050804
- ldr r2, _08050800 @ =0x0000ffff
- b _080508BC
- .align 2, 0
-_080507F8: .4byte 0xfffff31c
-_080507FC: .4byte 0x012b0000
-_08050800: .4byte 0x0000ffff
-_08050804:
- adds r0, r4, 0
- subs r0, 0x64
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bhi _08050818
- ldr r2, _08050814 @ =0x0000fffe
- b _080508BC
- .align 2, 0
-_08050814: .4byte 0x0000fffe
-_08050818:
- adds r0, r4, 0
- subs r0, 0x96
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bhi _0805082C
- ldr r2, _08050828 @ =0x0000fffd
- b _080508BC
- .align 2, 0
-_08050828: .4byte 0x0000fffd
-_0805082C:
- adds r0, r4, 0
- subs r0, 0xC8
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bhi _08050840
- ldr r2, _0805083C @ =0x0000fffc
- b _080508BC
- .align 2, 0
-_0805083C: .4byte 0x0000fffc
-_08050840:
- adds r0, r4, 0
- subs r0, 0xFA
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bhi _08050854
- ldr r2, _08050850 @ =0x0000fffb
- b _080508BC
- .align 2, 0
-_08050850: .4byte 0x0000fffb
-_08050854:
- ldr r1, _08050864 @ =0xfffffea2
- adds r0, r4, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bhi _0805086C
- ldr r2, _08050868 @ =0x0000fffa
- b _080508BC
- .align 2, 0
-_08050864: .4byte 0xfffffea2
-_08050868: .4byte 0x0000fffa
-_0805086C:
- ldr r3, _0805087C @ =0xfffffe70
- adds r0, r4, r3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bhi _08050884
- ldr r2, _08050880 @ =0x0000fff9
- b _080508BC
- .align 2, 0
-_0805087C: .4byte 0xfffffe70
-_08050880: .4byte 0x0000fff9
-_08050884:
- ldr r6, _08050894 @ =0xfffffe0c
- adds r0, r4, r6
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bhi _0805089C
- ldr r2, _08050898 @ =0x0000fff8
- b _080508BC
- .align 2, 0
-_08050894: .4byte 0xfffffe0c
-_08050898: .4byte 0x0000fff8
-_0805089C:
- ldr r1, _080508AC @ =0xfffffdda
- adds r0, r4, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bhi _080508B4
- ldr r2, _080508B0 @ =0x0000fff7
- b _080508BC
- .align 2, 0
-_080508AC: .4byte 0xfffffdda
-_080508B0: .4byte 0x0000fff7
-_080508B4:
- ldr r0, _080508CC @ =0x00000257
- cmp r4, r0
- bls _080508BC
- ldr r2, _080508D0 @ =0x0000fff6
-_080508BC:
- lsls r0, r2, 16
- asrs r0, 16
- bl sub_80504F0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080508CC: .4byte 0x00000257
-_080508D0: .4byte 0x0000fff6
- thumb_func_end sub_8050760
-
- thumb_func_start sub_80508D4
-sub_80508D4: @ 80508D4
- push {lr}
- ldr r2, _080508F8 @ =gUnknown_03004854
- ldr r1, [r2]
- adds r1, 0xAA
- strb r0, [r1]
- ldr r0, [r2]
- adds r0, 0xAA
- ldrb r1, [r0]
- lsls r1, 28
- movs r0, 0x90
- lsls r0, 23
- adds r1, r0
- lsrs r1, 24
- movs r0, 0xC0
- bl sub_814A880
- pop {r0}
- bx r0
- .align 2, 0
-_080508F8: .4byte gUnknown_03004854
- thumb_func_end sub_80508D4
-
- thumb_func_start sub_80508FC
-sub_80508FC: @ 80508FC
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08050944 @ =gUnknown_03004854
- ldr r0, [r4]
- adds r0, 0xAA
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1C
- movs r3, 0xD
- bl MenuDrawTextWindow
- ldr r1, _08050948 @ =0x0000ffff
- ldr r3, _0805094C @ =0x00002d9f
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0
- movs r2, 0xC
- bl sub_814A5C0
- ldr r0, _08050950 @ =gOtherText_YesNoTerminating
- movs r1, 0x18
- movs r2, 0x9
- bl MenuPrint
- ldr r0, [r4]
- adds r0, 0xAA
- ldrb r0, [r0]
- bl sub_80508D4
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08050944: .4byte gUnknown_03004854
-_08050948: .4byte 0x0000ffff
-_0805094C: .4byte 0x00002d9f
-_08050950: .4byte gOtherText_YesNoTerminating
- thumb_func_end sub_80508FC
-
- thumb_func_start sub_8050954
-sub_8050954: @ 8050954
- push {r4-r7,lr}
- bl sub_8051474
- bl GetMultiplayerId
- ldr r0, _08050978 @ =gUnknown_03004854
- ldr r0, [r0]
- adds r0, 0x6F
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, 0xC
- bls _0805096E
- b _08050CB6
-_0805096E:
- lsls r0, 2
- ldr r1, _0805097C @ =_08050980
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08050978: .4byte gUnknown_03004854
-_0805097C: .4byte _08050980
- .align 2, 0
-_08050980:
- .4byte _080509B4
- .4byte _080509F8
- .4byte _08050A4C
- .4byte _08050A94
- .4byte _08050AD0
- .4byte _08050ADE
- .4byte _08050B08
- .4byte _08050B34
- .4byte _08050B42
- .4byte _08050B58
- .4byte _08050BE0
- .4byte _08050C64
- .4byte _08050C98
-_080509B4:
- bl ClearLinkCallback
- ldr r0, _080509C8 @ =gMPlay_BGM
- movs r1, 0x80
- lsls r1, 1
- bl m4aMPlayTempoControl
- movs r4, 0
- b _080509E4
- .align 2, 0
-_080509C8: .4byte gMPlay_BGM
-_080509CC:
- ldr r0, _080509F0 @ =gUnknown_03004854
- ldr r0, [r0]
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r1
- adds r0, r4
- ldrb r0, [r0]
- bl DestroyTask
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080509E4:
- ldr r0, _080509F4 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r4, r0
- bcc _080509CC
- b _08050C82
- .align 2, 0
-_080509F0: .4byte gUnknown_03004854
-_080509F4: .4byte gSpecialVar_0x8004
-_080509F8:
- ldr r1, _08050A24 @ =gUnknown_03004854
- ldr r3, [r1]
- adds r2, r3, 0
- adds r2, 0x56
- ldrh r0, [r2]
- subs r0, 0x20
- strh r0, [r2]
- lsls r0, 16
- adds r4, r1, 0
- cmp r0, 0
- bgt _08050A40
- movs r0, 0
- strh r0, [r2]
- ldr r0, _08050A28 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _08050A2C
- adds r1, r3, 0
- adds r1, 0x6F
- ldrb r0, [r1]
- adds r0, 0x1
- b _08050A32
- .align 2, 0
-_08050A24: .4byte gUnknown_03004854
-_08050A28: .4byte gReceivedRemoteLinkPlayers
-_08050A2C:
- adds r1, r3, 0
- adds r1, 0x6F
- movs r0, 0x5
-_08050A32:
- strb r0, [r1]
- ldr r0, [r4]
- movs r1, 0
- strb r1, [r0]
- ldr r0, _08050A48 @ =gMPlay_SE2
- bl m4aMPlayStop
-_08050A40:
- bl sub_804E290
- b _08050CB6
- .align 2, 0
-_08050A48: .4byte gMPlay_SE2
-_08050A4C:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- beq _08050A58
- b _08050C82
-_08050A58:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _08050A64
- b _08050CB6
-_08050A64:
- ldr r4, _08050A90 @ =gUnknown_03004854
- ldr r3, [r4]
- movs r2, 0xDE
- lsls r2, 1
- adds r1, r3, r2
- movs r5, 0x96
- lsls r5, 1
- adds r0, r3, r5
- ldr r0, [r0]
- str r0, [r1]
- adds r0, r3, 0
- adds r0, 0x5A
- ldrh r2, [r0]
- adds r5, 0x94
- adds r0, r3, r5
- strh r2, [r0]
- movs r0, 0
- movs r2, 0x28
- bl SendBlock
- ldr r1, [r4]
- b _08050C86
- .align 2, 0
-_08050A90: .4byte gUnknown_03004854
-_08050A94:
- bl GetBlockReceivedStatus
- lsls r0, 24
- cmp r0, 0
- bne _08050AA0
- b _08050CB6
-_08050AA0:
- ldr r2, _08050AC8 @ =gBlockRecvBuffer
- ldr r0, _08050ACC @ =gUnknown_03004854
- ldr r3, [r0]
- ldrh r0, [r2, 0x4]
- adds r1, r3, 0
- adds r1, 0x5A
- strh r0, [r1]
- movs r0, 0x96
- lsls r0, 1
- adds r1, r3, r0
- ldr r0, [r2]
- str r0, [r1]
- adds r1, r3, 0
- adds r1, 0x6F
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl ResetBlockReceivedFlags
- b _08050CB6
- .align 2, 0
-_08050AC8: .4byte gBlockRecvBuffer
-_08050ACC: .4byte gUnknown_03004854
-_08050AD0:
- bl sub_8052228
- lsls r0, 24
- cmp r0, 0
- bne _08050ADC
- b _08050CB6
-_08050ADC:
- b _08050C82
-_08050ADE:
- bl sub_8051C58
- lsls r0, 24
- cmp r0, 0
- bne _08050AEA
- b _08050CB6
-_08050AEA:
- ldr r0, _08050AFC @ =gUnknown_03004834
- ldrb r0, [r0]
- cmp r0, 0
- bne _08050B00
- movs r0, 0x22
- bl IncrementGameStat
- b _08050C82
- .align 2, 0
-_08050AFC: .4byte gUnknown_03004834
-_08050B00:
- movs r0, 0x21
- bl IncrementGameStat
- b _08050C82
-_08050B08:
- ldr r0, _08050B2C @ =gUnknown_03004854
- ldr r1, [r0]
- adds r1, 0x6F
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08050B30 @ =gOtherText_BlendAnotherBerryPrompt
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrintMessage
- b _08050CB6
- .align 2, 0
-_08050B2C: .4byte gUnknown_03004854
-_08050B30: .4byte gOtherText_BlendAnotherBerryPrompt
-_08050B34:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08050B40
- b _08050CB6
-_08050B40:
- b _08050C82
-_08050B42:
- ldr r4, _08050B54 @ =gUnknown_03004854
- ldr r0, [r4]
- adds r0, 0xAA
- movs r1, 0
- strb r1, [r0]
- bl sub_80508FC
- ldr r1, [r4]
- b _08050C86
- .align 2, 0
-_08050B54: .4byte gUnknown_03004854
-_08050B58:
- ldr r0, _08050B80 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08050B88
- ldr r0, _08050B84 @ =gUnknown_03004854
- ldr r0, [r0]
- adds r0, 0xAA
- ldrb r0, [r0]
- cmp r0, 0
- beq _08050B76
- movs r0, 0x5
- bl PlaySE
-_08050B76:
- movs r0, 0
- bl sub_80508D4
- b _08050CB6
- .align 2, 0
-_08050B80: .4byte gMain
-_08050B84: .4byte gUnknown_03004854
-_08050B88:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08050BA8
- ldr r0, _08050BA4 @ =gUnknown_03004854
- ldr r0, [r0]
- adds r0, 0xAA
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08050BD4
- movs r0, 0x5
- bl PlaySE
- b _08050BD4
- .align 2, 0
-_08050BA4: .4byte gUnknown_03004854
-_08050BA8:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08050BB8
- movs r0, 0x5
- bl PlaySE
- b _08050C82
-_08050BB8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08050BC2
- b _08050CB6
-_08050BC2:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08050BDC @ =gUnknown_03004854
- ldr r1, [r0]
- adds r1, 0x6F
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08050BD4:
- movs r0, 0x1
- bl sub_80508D4
- b _08050CB6
- .align 2, 0
-_08050BDC: .4byte gUnknown_03004854
-_08050BE0:
- ldr r6, _08050C10 @ =gSendCmd
- movs r7, 0
- ldr r0, _08050C14 @ =0x00002fff
- strh r0, [r6]
- ldr r4, _08050C18 @ =gUnknown_03004854
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0xAA
- ldrb r5, [r0]
- cmp r5, 0
- bne _08050C50
- movs r0, 0x4
- bl IsBagPocketNonEmpty
- lsls r0, 24
- cmp r0, 0
- bne _08050C20
- ldr r0, [r4]
- adds r0, 0x7C
- movs r1, 0x2
- strh r1, [r0]
- ldr r0, _08050C1C @ =0x00009999
- b _08050C48
- .align 2, 0
-_08050C10: .4byte gSendCmd
-_08050C14: .4byte 0x00002fff
-_08050C18: .4byte gUnknown_03004854
-_08050C1C: .4byte 0x00009999
-_08050C20:
- bl sub_810CA00
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _08050C40
- ldr r0, [r4]
- adds r0, 0x7C
- movs r1, 0x3
- strh r1, [r0]
- ldr r0, _08050C3C @ =0x0000aaaa
- b _08050C48
- .align 2, 0
-_08050C3C: .4byte 0x0000aaaa
-_08050C40:
- ldr r0, [r4]
- adds r0, 0x7C
- strh r5, [r0]
- ldr r0, _08050C4C @ =0x00007779
-_08050C48:
- strh r0, [r6, 0x2]
- b _08050C82
- .align 2, 0
-_08050C4C: .4byte 0x00007779
-_08050C50:
- adds r1, r2, 0
- adds r1, 0x7C
- movs r0, 0x1
- strh r0, [r1]
- ldr r0, _08050C60 @ =0x00008888
- strh r0, [r6, 0x2]
- subs r1, 0xD
- b _08050C88
- .align 2, 0
-_08050C60: .4byte 0x00008888
-_08050C64:
- ldr r0, _08050C70 @ =gUnknown_03004834
- ldrb r0, [r0]
- cmp r0, 0
- beq _08050C78
- ldr r0, _08050C74 @ =sub_80510E8
- b _08050CA4
- .align 2, 0
-_08050C70: .4byte gUnknown_03004834
-_08050C74: .4byte sub_80510E8
-_08050C78:
- ldr r0, _08050C90 @ =gOtherText_LinkStandby3
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrintMessage
-_08050C82:
- ldr r0, _08050C94 @ =gUnknown_03004854
- ldr r1, [r0]
-_08050C86:
- adds r1, 0x6F
-_08050C88:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08050CB6
- .align 2, 0
-_08050C90: .4byte gOtherText_LinkStandby3
-_08050C94: .4byte gUnknown_03004854
-_08050C98:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _08050CB6
- ldr r0, _08050CE0 @ =sub_8050E30
-_08050CA4:
- bl SetMainCallback2
- ldr r2, _08050CE4 @ =gUnknown_03004854
- ldr r0, [r2]
- adds r0, 0x6F
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0]
-_08050CB6:
- bl sub_8051B18
- ldr r0, _08050CE4 @ =gUnknown_03004854
- ldr r0, [r0]
- adds r0, 0x56
- ldrh r0, [r0]
- bl sub_8051A3C
- bl sub_805123C
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08050CE0: .4byte sub_8050E30
-_08050CE4: .4byte gUnknown_03004854
- thumb_func_end sub_8050954
-
- thumb_func_start sub_8050CE8
-sub_8050CE8: @ 8050CE8
- push {r4,lr}
- ldr r1, _08050D08 @ =gUnknown_03004854
- ldr r0, [r1]
- movs r2, 0xE2
- lsls r2, 1
- adds r0, r2
- ldr r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x6
- bls _08050CFE
- b _08050E28
-_08050CFE:
- lsls r0, 2
- ldr r1, _08050D0C @ =_08050D10
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08050D08: .4byte gUnknown_03004854
-_08050D0C: .4byte _08050D10
- .align 2, 0
-_08050D10:
- .4byte _08050D2C
- .4byte _08050D44
- .4byte _08050D70
- .4byte _08050D80
- .4byte _08050DA6
- .4byte _08050DEC
- .4byte _08050E06
-_08050D2C:
- bl sub_80084A4
- ldr r0, _08050D40 @ =gUnknown_03004854
- ldr r2, [r0]
- movs r3, 0xE2
- lsls r3, 1
- adds r1, r2, r3
- movs r0, 0x1
- b _08050DF8
- .align 2, 0
-_08050D40: .4byte gUnknown_03004854
-_08050D44:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _08050E28
- ldr r0, _08050D68 @ =gUnknown_03004854
- ldr r1, [r0]
- movs r2, 0xE2
- lsls r2, 1
- adds r1, r2
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r1, _08050D6C @ =gSoftResetDisabled
- movs r0, 0x1
- strb r0, [r1]
- b _08050E28
- .align 2, 0
-_08050D68: .4byte gUnknown_03004854
-_08050D6C: .4byte gSoftResetDisabled
-_08050D70:
- bl sub_8125E2C
- ldr r0, _08050D7C @ =gUnknown_03004854
- ldr r2, [r0]
- b _08050DEE
- .align 2, 0
-_08050D7C: .4byte gUnknown_03004854
-_08050D80:
- ldr r1, [r4]
- movs r2, 0x98
- lsls r2, 1
- adds r1, r2
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0xA
- bne _08050E28
- bl sub_80084A4
- ldr r1, [r4]
- movs r3, 0xE2
- lsls r3, 1
- adds r1, r3
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- b _08050E28
-_08050DA6:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _08050E28
- bl sub_8125E6C
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08050DD0
- ldr r0, _08050DCC @ =gUnknown_03004854
- ldr r0, [r0]
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r1
- movs r1, 0x5
- str r1, [r0]
- b _08050E28
- .align 2, 0
-_08050DCC: .4byte gUnknown_03004854
-_08050DD0:
- ldr r0, _08050DE8 @ =gUnknown_03004854
- ldr r1, [r0]
- movs r3, 0x98
- lsls r3, 1
- adds r0, r1, r3
- str r2, [r0]
- movs r0, 0xE2
- lsls r0, 1
- adds r1, r0
- movs r0, 0x3
- str r0, [r1]
- b _08050E28
- .align 2, 0
-_08050DE8: .4byte gUnknown_03004854
-_08050DEC:
- ldr r2, [r4]
-_08050DEE:
- movs r3, 0xE2
- lsls r3, 1
- adds r1, r2, r3
- ldr r0, [r1]
- adds r0, 0x1
-_08050DF8:
- str r0, [r1]
- movs r0, 0x98
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0
- str r0, [r1]
- b _08050E28
-_08050E06:
- ldr r1, [r4]
- movs r2, 0x98
- lsls r2, 1
- adds r1, r2
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x5
- ble _08050E28
- ldr r1, _08050E24 @ =gSoftResetDisabled
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- b _08050E2A
- .align 2, 0
-_08050E24: .4byte gSoftResetDisabled
-_08050E28:
- movs r0, 0
-_08050E2A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8050CE8
-
- thumb_func_start sub_8050E30
-sub_8050E30: @ 8050E30
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _08050E50 @ =gUnknown_03004854
- ldr r0, [r1]
- adds r0, 0x6F
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0xC
- bls _08050E44
- b _080510C4
-_08050E44:
- lsls r0, 2
- ldr r1, _08050E54 @ =_08050E58
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08050E50: .4byte gUnknown_03004854
-_08050E54: .4byte _08050E58
- .align 2, 0
-_08050E58:
- .4byte _08050E8C
- .4byte _08050ED8
- .4byte _08050F18
- .4byte _08050F6C
- .4byte _08050F8C
- .4byte _08050FAA
- .4byte _08050FD4
- .4byte _08051004
- .4byte _08051020
- .4byte _08051030
- .4byte _08051054
- .4byte _08051094
- .4byte _080510B6
-_08050E8C:
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x70
- ldrh r2, [r0]
- ldr r0, _08050EB8 @ =0x00002222
- cmp r2, r0
- bne _08050E9C
- b _08050FA2
-_08050E9C:
- ldr r0, _08050EBC @ =0x00001111
- cmp r2, r0
- beq _08050EA4
- b _080510C4
-_08050EA4:
- adds r0, r1, 0
- adds r0, 0x78
- ldrh r2, [r0]
- ldr r0, _08050EC0 @ =0x00009999
- cmp r2, r0
- bne _08050EC4
- adds r1, 0x6F
- movs r0, 0x2
- strb r0, [r1]
- b _080510C4
- .align 2, 0
-_08050EB8: .4byte 0x00002222
-_08050EBC: .4byte 0x00001111
-_08050EC0: .4byte 0x00009999
-_08050EC4:
- ldr r0, _08050ED4 @ =0x0000aaaa
- cmp r2, r0
- bne _08050FA2
- adds r1, 0x6F
- movs r0, 0x1
- strb r0, [r1]
- b _080510C4
- .align 2, 0
-_08050ED4: .4byte 0x0000aaaa
-_08050ED8:
- ldr r0, [r5]
- adds r0, 0x6F
- movs r1, 0x3
- strb r1, [r0]
- bl DestroyMenuCursor
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1C
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r4, _08050F0C @ =gStringVar4
- ldr r0, [r5]
- adds r0, 0x7A
- ldrh r0, [r0]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r0, _08050F10 @ =gLinkPlayers + 0x8
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldr r1, _08050F14 @ =gOtherText_OtherCaseIsFull
- b _08050F4C
- .align 2, 0
-_08050F0C: .4byte gStringVar4
-_08050F10: .4byte gLinkPlayers + 0x8
-_08050F14: .4byte gOtherText_OtherCaseIsFull
-_08050F18:
- ldr r1, [r5]
- adds r1, 0x6F
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl DestroyMenuCursor
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1C
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r4, _08050F60 @ =gStringVar4
- ldr r0, [r5]
- adds r0, 0x7A
- ldrh r0, [r0]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r0, _08050F64 @ =gLinkPlayers + 0x8
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldr r1, _08050F68 @ =gOtherText_NoBerriesForBlend
-_08050F4C:
- adds r0, r4, 0
- bl StringAppend
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrintMessage
- b _080510C4
- .align 2, 0
-_08050F60: .4byte gStringVar4
-_08050F64: .4byte gLinkPlayers + 0x8
-_08050F68: .4byte gOtherText_NoBerriesForBlend
-_08050F6C:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08050F78
- b _080510C4
-_08050F78:
- ldr r0, _08050F88 @ =gUnknown_03004854
- ldr r1, [r0]
- movs r0, 0x98
- lsls r0, 1
- adds r2, r1, r0
- movs r0, 0
- str r0, [r2]
- b _080510AC
- .align 2, 0
-_08050F88: .4byte gUnknown_03004854
-_08050F8C:
- ldr r2, [r5]
- movs r0, 0x98
- lsls r0, 1
- adds r1, r2, r0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x3C
- bgt _08050FA0
- b _080510C4
-_08050FA0:
- adds r1, r2, 0
-_08050FA2:
- adds r1, 0x6F
- movs r0, 0x5
- strb r0, [r1]
- b _080510C4
-_08050FAA:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08050FCC @ =gMultiText_Saving
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- bl sub_80084A4
- ldr r0, _08050FD0 @ =gUnknown_03004854
- ldr r1, [r0]
- b _080510AC
- .align 2, 0
-_08050FCC: .4byte gMultiText_Saving
-_08050FD0: .4byte gUnknown_03004854
-_08050FD4:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080510C4
- ldr r3, _08051000 @ =gUnknown_03004854
- ldr r1, [r3]
- movs r2, 0x98
- lsls r2, 1
- adds r0, r1, r2
- movs r2, 0
- str r2, [r0]
- adds r1, 0x6F
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r3]
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r1
- str r2, [r0]
- b _080510C4
- .align 2, 0
-_08051000: .4byte gUnknown_03004854
-_08051004:
- bl sub_8050CE8
- lsls r0, 24
- cmp r0, 0
- beq _080510C4
- movs r0, 0x37
- bl PlaySE
- ldr r0, _0805101C @ =gUnknown_03004854
- ldr r1, [r0]
- b _080510AC
- .align 2, 0
-_0805101C: .4byte gUnknown_03004854
-_08051020:
- ldr r1, [r5]
- adds r1, 0x6F
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl sub_80084A4
- b _080510C4
-_08051030:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080510C4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08051050 @ =gUnknown_03004854
- ldr r1, [r0]
- b _080510AC
- .align 2, 0
-_08051050: .4byte gUnknown_03004854
-_08051054:
- ldr r0, _0805107C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _080510C4
- ldr r2, [r5]
- adds r0, r2, 0
- adds r0, 0x70
- ldrh r1, [r0]
- ldr r0, _08051080 @ =0x00002222
- cmp r1, r0
- bne _08051088
- ldr r0, _08051084 @ =sub_804E538
- bl SetMainCallback2
- b _080510C4
- .align 2, 0
-_0805107C: .4byte gPaletteFade
-_08051080: .4byte 0x00002222
-_08051084: .4byte sub_804E538
-_08051088:
- movs r1, 0x98
- lsls r1, 1
- adds r0, r2, r1
- str r3, [r0]
- adds r1, r2, 0
- b _080510AC
-_08051094:
- ldr r1, [r5]
- movs r2, 0x98
- lsls r2, 1
- adds r1, r2
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x1E
- ble _080510C4
- bl sub_800832C
- ldr r1, [r5]
-_080510AC:
- adds r1, 0x6F
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080510C4
-_080510B6:
- ldr r0, _080510E0 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080510C4
- ldr r0, _080510E4 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
-_080510C4:
- bl sub_805123C
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080510E0: .4byte gReceivedRemoteLinkPlayers
-_080510E4: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_8050E30
-
- thumb_func_start sub_80510E8
-sub_80510E8: @ 80510E8
- push {lr}
- ldr r1, _08051104 @ =gUnknown_03004854
- ldr r0, [r1]
- adds r0, 0x6F
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0xA
- bls _080510FA
- b _0805121E
-_080510FA:
- lsls r0, 2
- ldr r1, _08051108 @ =_0805110C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08051104: .4byte gUnknown_03004854
-_08051108: .4byte _0805110C
- .align 2, 0
-_0805110C:
- .4byte _08051138
- .4byte _0805116E
- .4byte _08051190
- .4byte _080511BC
- .4byte _0805121E
- .4byte _0805121E
- .4byte _0805121E
- .4byte _0805121E
- .4byte _0805121E
- .4byte _080511D8
- .4byte _080511F0
-_08051138:
- ldr r1, [r3]
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0x1
- bhi _0805114A
- adds r1, 0x6F
- movs r0, 0x9
- strb r0, [r1]
-_0805114A:
- ldr r2, [r3]
- adds r0, r2, 0
- adds r0, 0x7C
- ldrh r1, [r0]
- cmp r1, 0x2
- bne _0805115A
- subs r0, 0xD
- strb r1, [r0]
-_0805115A:
- ldr r1, [r3]
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0x3
- bne _0805121E
- adds r1, 0x6F
- movs r0, 0x1
- strb r0, [r1]
- b _0805121E
-_0805116E:
- ldr r0, [r3]
- adds r0, 0x6F
- movs r1, 0x3
- strb r1, [r0]
- bl DestroyMenuCursor
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1C
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _0805118C @ =gOtherText_CaseIsFull
- b _080511AC
- .align 2, 0
-_0805118C: .4byte gOtherText_CaseIsFull
-_08051190:
- ldr r0, [r3]
- adds r0, 0x6F
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- bl DestroyMenuCursor
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1C
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _080511B8 @ =gOtherText_OutOfBerries
-_080511AC:
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrintMessage
- b _0805121E
- .align 2, 0
-_080511B8: .4byte gOtherText_OutOfBerries
-_080511BC:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _0805121E
- ldr r0, _080511D4 @ =gUnknown_03004854
- ldr r0, [r0]
- adds r0, 0x6F
- movs r1, 0x9
- strb r1, [r0]
- b _0805121E
- .align 2, 0
-_080511D4: .4byte gUnknown_03004854
-_080511D8:
- movs r0, 0x3
- bl BeginFastPaletteFade
- ldr r0, _080511EC @ =gUnknown_03004854
- ldr r1, [r0]
- adds r1, 0x6F
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0805121E
- .align 2, 0
-_080511EC: .4byte gUnknown_03004854
-_080511F0:
- ldr r0, _08051210 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0805121E
- ldr r0, [r3]
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- bne _08051218
- ldr r0, _08051214 @ =sub_804E538
- bl SetMainCallback2
- b _0805121E
- .align 2, 0
-_08051210: .4byte gPaletteFade
-_08051214: .4byte sub_804E538
-_08051218:
- ldr r0, _08051238 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
-_0805121E:
- bl sub_805123C
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- .align 2, 0
-_08051238: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_80510E8
-
- thumb_func_start sub_805123C
-sub_805123C: @ 805123C
- push {r4-r6,lr}
- ldr r0, _0805126C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08051248
- b _08051404
-_08051248:
- ldr r4, _08051270 @ =gRecvCmds
- ldrh r1, [r4]
- ldr r0, _08051274 @ =0x00002fff
- cmp r1, r0
- bne _080512C6
- ldrh r1, [r4, 0x8]
- ldr r0, _08051278 @ =0x00001111
- cmp r1, r0
- bne _080512B8
- ldrh r3, [r4, 0x10]
- ldr r0, _0805127C @ =0x00009999
- cmp r3, r0
- beq _08051298
- cmp r3, r0
- bgt _08051284
- ldr r0, _08051280 @ =0x00008888
- b _08051286
- .align 2, 0
-_0805126C: .4byte gReceivedRemoteLinkPlayers
-_08051270: .4byte gRecvCmds
-_08051274: .4byte 0x00002fff
-_08051278: .4byte 0x00001111
-_0805127C: .4byte 0x00009999
-_08051280: .4byte 0x00008888
-_08051284:
- ldr r0, _08051290 @ =0x0000aaaa
-_08051286:
- cmp r3, r0
- beq _08051298
- ldr r2, _08051294 @ =gUnknown_03004854
- b _080512A8
- .align 2, 0
-_08051290: .4byte 0x0000aaaa
-_08051294: .4byte gUnknown_03004854
-_08051298:
- ldr r2, _080512B0 @ =gUnknown_03004854
- ldr r0, [r2]
- adds r1, r0, 0
- adds r1, 0x78
- strh r3, [r1]
- ldrh r1, [r4, 0x18]
- adds r0, 0x7A
- strh r1, [r0]
-_080512A8:
- ldr r0, [r2]
- adds r0, 0x70
- ldr r1, _080512B4 @ =0x00001111
- b _080512C4
- .align 2, 0
-_080512B0: .4byte gUnknown_03004854
-_080512B4: .4byte 0x00001111
-_080512B8:
- ldr r0, _080512F4 @ =0x00002222
- cmp r1, r0
- bne _080512C6
- ldr r0, _080512F8 @ =gUnknown_03004854
- ldr r0, [r0]
- adds r0, 0x70
-_080512C4:
- strh r1, [r0]
-_080512C6:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- beq _080512D2
- b _08051404
-_080512D2:
- ldr r2, _080512F8 @ =gUnknown_03004854
- ldr r0, [r2]
- adds r0, 0x70
- ldrh r1, [r0]
- ldr r0, _080512FC @ =0x00001111
- cmp r1, r0
- bne _080512E2
- b _08051404
-_080512E2:
- ldr r0, _080512F4 @ =0x00002222
- cmp r1, r0
- bne _080512EA
- b _08051404
-_080512EA:
- movs r4, 0
- ldr r6, _08051300 @ =0x00002fff
- adds r5, r2, 0
- b _0805134E
- .align 2, 0
-_080512F4: .4byte 0x00002222
-_080512F8: .4byte gUnknown_03004854
-_080512FC: .4byte 0x00001111
-_08051300: .4byte 0x00002fff
-_08051304:
- ldr r1, _08051328 @ =gRecvCmds
- lsls r2, r4, 1
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, r6
- bne _08051348
- adds r0, r1, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldrh r1, [r0]
- ldr r0, _0805132C @ =0x00008888
- cmp r1, r0
- beq _08051340
- cmp r1, r0
- bgt _08051334
- ldr r0, _08051330 @ =0x00007779
- b _0805133C
- .align 2, 0
-_08051328: .4byte gRecvCmds
-_0805132C: .4byte 0x00008888
-_08051330: .4byte 0x00007779
-_08051334:
- ldr r0, _08051360 @ =0x00009999
- cmp r1, r0
- beq _08051340
- ldr r0, _08051364 @ =0x0000aaaa
-_0805133C:
- cmp r1, r0
- bne _08051348
-_08051340:
- ldr r0, [r5]
- adds r0, 0x70
- adds r0, r2
- strh r1, [r0]
-_08051348:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0805134E:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _08051304
- movs r4, 0
- b _0805136E
- .align 2, 0
-_08051360: .4byte 0x00009999
-_08051364: .4byte 0x0000aaaa
-_08051368:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0805136E:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcs _0805138A
- ldr r0, _0805139C @ =gUnknown_03004854
- ldr r0, [r0]
- lsls r1, r4, 1
- adds r0, 0x70
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _08051368
-_0805138A:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _08051404
- movs r4, 0
- ldr r5, _080513A0 @ =0x00007779
- b _080513AA
- .align 2, 0
-_0805139C: .4byte gUnknown_03004854
-_080513A0: .4byte 0x00007779
-_080513A4:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080513AA:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcs _080513C6
- ldr r0, _080513E0 @ =gUnknown_03004854
- ldr r0, [r0]
- lsls r1, r4, 1
- adds r0, 0x70
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r5
- beq _080513A4
-_080513C6:
- ldr r5, _080513E4 @ =gSendCmd
- movs r6, 0
- ldr r0, _080513E8 @ =0x00002fff
- strh r0, [r5]
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _080513F0
- ldr r0, _080513EC @ =0x00002222
- strh r0, [r5, 0x2]
- b _08051404
- .align 2, 0
-_080513E0: .4byte gUnknown_03004854
-_080513E4: .4byte gSendCmd
-_080513E8: .4byte 0x00002fff
-_080513EC: .4byte 0x00002222
-_080513F0:
- ldr r0, _0805140C @ =0x00001111
- strh r0, [r5, 0x2]
- ldr r0, _08051410 @ =gUnknown_03004854
- ldr r0, [r0]
- lsls r1, r4, 1
- adds r0, 0x70
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r5, 0x4]
- strh r4, [r5, 0x6]
-_08051404:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0805140C: .4byte 0x00001111
-_08051410: .4byte gUnknown_03004854
- thumb_func_end sub_805123C
-
- thumb_func_start sub_8051414
-sub_8051414: @ 8051414
- push {lr}
- sub sp, 0x14
- adds r1, r0, 0
- movs r0, 0xF0
- lsls r0, 7
- str r0, [sp]
- movs r0, 0xA0
- lsls r0, 7
- str r0, [sp, 0x4]
- mov r3, sp
- ldr r0, _08051470 @ =gUnknown_03004854
- ldr r0, [r0]
- mov r12, r0
- movs r0, 0xA2
- lsls r0, 1
- add r0, r12
- ldrh r2, [r0]
- movs r0, 0x78
- subs r0, r2
- strh r0, [r3, 0x8]
- movs r0, 0xA3
- lsls r0, 1
- add r0, r12
- ldrh r2, [r0]
- movs r0, 0x50
- subs r0, r2
- strh r0, [r3, 0xA]
- mov r2, sp
- movs r3, 0xA1
- lsls r3, 1
- add r3, r12
- ldrh r0, [r3]
- strh r0, [r2, 0xC]
- ldrh r0, [r3]
- strh r0, [r2, 0xE]
- mov r0, r12
- adds r0, 0x54
- ldrh r0, [r0]
- strh r0, [r2, 0x10]
- mov r0, sp
- movs r2, 0x1
- bl BgAffineSet
- add sp, 0x14
- pop {r0}
- bx r0
- .align 2, 0
-_08051470: .4byte gUnknown_03004854
- thumb_func_end sub_8051414
-
- thumb_func_start sub_8051474
-sub_8051474: @ 8051474
- push {lr}
- ldr r0, _080514A0 @ =gUnknown_03004854
- ldr r3, [r0]
- adds r1, r3, 0
- adds r1, 0x54
- ldrh r2, [r1]
- adds r0, r3, 0
- adds r0, 0x58
- strh r2, [r0]
- subs r0, 0x2
- ldrh r0, [r0]
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- movs r1, 0xB4
- lsls r1, 1
- adds r0, r3, r1
- bl sub_8051414
- pop {r0}
- bx r0
- .align 2, 0
-_080514A0: .4byte gUnknown_03004854
- thumb_func_end sub_8051474
-
- thumb_func_start sub_80514A4
-sub_80514A4: @ 80514A4
- ldr r1, _080514E8 @ =REG_BG2PA
- ldr r0, _080514EC @ =gUnknown_03004854
- ldr r2, [r0]
- movs r3, 0xB4
- lsls r3, 1
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- adds r3, 0x2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- adds r3, 0x2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- adds r3, 0x2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- adds r3, 0x2
- adds r0, r2, r3
- ldr r0, [r0]
- str r0, [r1]
- adds r1, 0x4
- adds r3, 0x4
- adds r0, r2, r3
- ldr r0, [r0]
- str r0, [r1]
- bx lr
- .align 2, 0
-_080514E8: .4byte REG_BG2PA
-_080514EC: .4byte gUnknown_03004854
- thumb_func_end sub_80514A4
-
- thumb_func_start sub_80514F0
-sub_80514F0: @ 80514F0
- ldr r1, _0805151C @ =REG_BG1HOFS
- ldr r0, _08051520 @ =gUnknown_03004854
- ldr r3, [r0]
- movs r0, 0xA2
- lsls r0, 1
- adds r2, r3, r0
- ldrh r0, [r2]
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0xA3
- lsls r0, 1
- adds r3, r0
- ldrh r0, [r3]
- strh r0, [r1]
- subs r1, 0x6
- ldrh r0, [r2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r3]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0805151C: .4byte REG_BG1HOFS
-_08051520: .4byte gUnknown_03004854
- thumb_func_end sub_80514F0
-
- thumb_func_start sub_8051524
-sub_8051524: @ 8051524
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x34]
- adds r0, r1
- strh r0, [r2, 0x34]
- movs r1, 0x32
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bge _08051542
- adds r0, 0x7
-_08051542:
- asrs r0, 3
- strh r0, [r2, 0x24]
- movs r1, 0x34
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bge _08051550
- adds r0, 0x7
-_08051550:
- asrs r0, 3
- strh r0, [r2, 0x26]
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08051568
- adds r0, r2, 0
- bl DestroySprite
-_08051568:
- pop {r0}
- bx r0
- thumb_func_end sub_8051524
-
- thumb_func_start sub_805156C
-sub_805156C: @ 805156C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- bl Random
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0x1
- ands r1, r0
- adds r0, r1, 0x1
- cmp r0, 0
- beq _08051628
- ldr r0, _08051638 @ =gSineTable
- mov r9, r0
- ldr r2, _0805163C @ =gSprites
- mov r10, r2
- adds r6, r1, 0x1
- movs r3, 0x1F
- mov r8, r3
- movs r7, 0x10
-_08051598:
- bl Random
- ldr r1, _08051640 @ =gUnknown_03004854
- ldr r4, [r1]
- adds r4, 0x54
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x14
- bl __umodsi3
- ldrh r1, [r4]
- adds r1, r0
- lsls r1, 16
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r2, r0, 16
- adds r0, r2, 0
- adds r0, 0x40
- lsls r0, 1
- add r0, r9
- movs r3, 0
- ldrsh r1, [r0, r3]
- cmp r1, 0
- bge _080515CC
- adds r1, 0x3
-_080515CC:
- asrs r1, 2
- lsls r0, r2, 1
- add r0, r9
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bge _080515DC
- adds r0, 0x3
-_080515DC:
- asrs r2, r0, 2
- adds r1, 0x78
- adds r2, 0x50
- ldr r0, _08051644 @ =gSpriteTemplate_82164FC
- movs r3, 0x1
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r5, r4, 4
- adds r5, r4
- lsls r5, 2
- mov r3, r10
- adds r4, r5, r3
- lsls r0, 16
- lsrs r0, 16
- mov r1, r8
- ands r0, r1
- subs r0, r7, r0
- strh r0, [r4, 0x2E]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- mov r2, r8
- ands r0, r2
- subs r0, r7, r0
- strh r0, [r4, 0x30]
- ldr r3, _08051648 @ =gSprites + 0x1C
- adds r5, r3
- ldr r0, _0805164C @ =sub_8051524
- str r0, [r5]
- subs r6, 0x1
- cmp r6, 0
- bne _08051598
-_08051628:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08051638: .4byte gSineTable
-_0805163C: .4byte gSprites
-_08051640: .4byte gUnknown_03004854
-_08051644: .4byte gSpriteTemplate_82164FC
-_08051648: .4byte gSprites + 0x1C
-_0805164C: .4byte sub_8051524
- thumb_func_end sub_805156C
-
- thumb_func_start sub_8051650
-sub_8051650: @ 8051650
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __divsi3
- negs r0, r0
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0805167C
- adds r0, r4, 0
- bl DestroySprite
-_0805167C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8051650
-
- thumb_func_start sub_8051684
-sub_8051684: @ 8051684
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- lsls r0, 1
- negs r0, r0
- strh r0, [r2, 0x26]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0xC
- negs r1, r1
- cmp r0, r1
- bge _080516A8
- ldr r0, _080516C0 @ =0x0000fff4
- strh r0, [r2, 0x26]
-_080516A8:
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080516BC
- adds r0, r2, 0
- bl DestroySprite
-_080516BC:
- pop {r0}
- bx r0
- .align 2, 0
-_080516C0: .4byte 0x0000fff4
- thumb_func_end sub_8051684
-
- thumb_func_start sub_80516C4
-sub_80516C4: @ 80516C4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _080516F4 @ =gUnknown_03004854
- ldr r3, [r2]
- lsls r4, r0, 1
- adds r2, r3, 0
- adds r2, 0x80
- adds r2, r4
- strh r1, [r2]
- lsls r0, 4
- movs r2, 0xBE
- lsls r2, 1
- adds r0, r2
- adds r3, r0
- adds r0, r3, 0
- bl sub_804E844
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080516F4: .4byte gUnknown_03004854
- thumb_func_end sub_80516C4
-
- thumb_func_start unref_sub_80516F8
-unref_sub_80516F8: @ 80516F8
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080517B8 @ =gTasks
- adds r4, r0, r1
- ldr r6, _080517BC @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r6]
- cmp r0, 0
- beq _0805180C
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080517D4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x78
- ble _08051730
- strh r1, [r4, 0x8]
-_08051730:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x64
- bne _080517A0
- ldr r0, _080517C0 @ =gUnknown_03004854
- ldr r0, [r0]
- adds r0, 0x4
- movs r1, 0x14
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl ZeroFillWindowRect
- movs r0, 0x4
- movs r1, 0x4
- movs r2, 0xA
- movs r3, 0xC
- bl MenuDrawTextWindow
- movs r2, 0
- ldr r6, _080517C4 @ =gLinkPlayers + 0x4
-_0805175C:
- adds r4, r2, 0x1
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- cmp r0, 0
- beq _08051784
- ldr r1, _080517C8 @ =gUnknown_08216284
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r2, 25
- movs r1, 0xA0
- lsls r1, 19
- adds r2, r1
- lsrs r2, 24
- movs r1, 0x5
- bl MenuPrint
-_08051784:
- movs r0, 0
- movs r1, 0xD
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _080517CC @ =gOtherText_PressAToStart
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- adds r2, r4, 0
- cmp r2, 0x2
- ble _0805175C
-_080517A0:
- ldr r0, _080517D0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0805180C
- bl sub_8007E4C
- adds r0, r5, 0
- bl DestroyTask
- b _0805180C
- .align 2, 0
-_080517B8: .4byte gTasks
-_080517BC: .4byte gReceivedRemoteLinkPlayers
-_080517C0: .4byte gUnknown_03004854
-_080517C4: .4byte gLinkPlayers + 0x4
-_080517C8: .4byte gUnknown_08216284
-_080517CC: .4byte gOtherText_PressAToStart
-_080517D0: .4byte gMain
-_080517D4:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0xA
- bne _080517E6
- ldr r0, _08051814 @ =gOtherText_PleaseWait
- movs r1, 0x3
- movs r2, 0xA
- bl MenuPrint
-_080517E6:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x78
- ble _080517F8
- movs r0, 0
- strh r0, [r4, 0x8]
-_080517F8:
- ldr r0, _08051818 @ =byte_3002A68
- ldrb r0, [r0]
- cmp r0, 0x4
- bls _0805180C
- ldrb r0, [r6]
- cmp r0, 0x1
- bne _0805180C
- adds r0, r5, 0
- bl DestroyTask
-_0805180C:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08051814: .4byte gOtherText_PleaseWait
-_08051818: .4byte byte_3002A68
- thumb_func_end unref_sub_80516F8
-
- thumb_func_start sub_805181C
-sub_805181C: @ 805181C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08051858
- cmp r0, 0x1
- bgt _08051832
- cmp r0, 0
- beq _08051838
- b _080518BE
-_08051832:
- cmp r0, 0x2
- beq _08051872
- b _080518BE
-_08051838:
- ldrh r0, [r4, 0x30]
- adds r0, 0x8
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x58
- ble _080518BE
- movs r0, 0x58
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0x38
- bl PlaySE
- b _080518BE
-_08051858:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080518BE
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0
- strh r0, [r4, 0x32]
- b _080518BE
-_08051872:
- ldrh r0, [r4, 0x30]
- adds r0, 0x4
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB0
- ble _080518BE
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- adds r1, r0, 0
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080518AC
- adds r0, r4, 0
- bl DestroySprite
- ldr r0, _080518A8 @ =gSpriteTemplate_821657C
- movs r2, 0x14
- negs r2, r2
- movs r1, 0x78
- movs r3, 0x2
- bl CreateSprite
- b _080518BE
- .align 2, 0
-_080518A8: .4byte gSpriteTemplate_821657C
-_080518AC:
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080518C8 @ =0x0000fff0
- strh r0, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
-_080518BE:
- ldrh r0, [r4, 0x30]
- strh r0, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080518C8: .4byte 0x0000fff0
- thumb_func_end sub_805181C
-
- thumb_func_start sub_80518CC
-sub_80518CC: @ 80518CC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08051908
- cmp r0, 0x1
- bgt _080518E2
- cmp r0, 0
- beq _080518E8
- b _0805193C
-_080518E2:
- cmp r0, 0x2
- beq _0805191E
- b _0805193C
-_080518E8:
- ldrh r0, [r4, 0x30]
- adds r0, 0x8
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5C
- ble _0805193C
- movs r0, 0x5C
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0x15
- bl PlaySE
- b _0805193C
-_08051908:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _0805193C
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0805193C
-_0805191E:
- ldrh r0, [r4, 0x30]
- adds r0, 0x4
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB0
- ble _0805193C
- ldr r0, _08051948 @ =gUnknown_03004854
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_0805193C:
- ldrh r0, [r4, 0x30]
- strh r0, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08051948: .4byte gUnknown_03004854
- thumb_func_end sub_80518CC
-
- thumb_func_start sub_805194C
-sub_805194C: @ 805194C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r3, r1, 16
- ldr r1, _08051978 @ =gUnknown_03004854
- ldr r1, [r1]
- movs r2, 0xA0
- lsls r2, 1
- adds r1, r2
- ldrh r2, [r1]
- cmp r2, r0
- bcs _08051972
- adds r0, r2, 0x2
- strh r0, [r1]
- ldrh r0, [r1]
- adds r1, r3, 0
- bl sub_805197C
-_08051972:
- pop {r0}
- bx r0
- .align 2, 0
-_08051978: .4byte gUnknown_03004854
- thumb_func_end sub_805194C
-
- thumb_func_start sub_805197C
-sub_805197C: @ 805197C
- push {r4-r7,lr}
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r7, _08051A0C @ =0x06006000
- lsrs r0, 10
- bl __divsi3
- adds r1, r0, 0
- cmp r1, 0
- bge _08051994
- adds r0, r1, 0x7
-_08051994:
- asrs r4, r0, 3
- movs r3, 0
- cmp r3, r4
- bge _080519BC
- ldr r0, _08051A10 @ =0x000081e9
- adds r6, r0, 0
- adds r0, 0x10
- adds r5, r0, 0
- adds r2, r7, 0
- adds r2, 0x56
- adds r0, r7, 0
- adds r3, r4, 0
-_080519AC:
- strh r6, [r0, 0x16]
- strh r5, [r2]
- adds r2, 0x2
- adds r0, 0x2
- subs r3, 0x1
- cmp r3, 0
- bne _080519AC
- adds r3, r4, 0
-_080519BC:
- adds r0, r1, 0
- cmp r1, 0
- bge _080519C4
- adds r0, r1, 0x7
-_080519C4:
- asrs r2, r0, 3
- lsls r0, r2, 3
- subs r2, r1, r0
- cmp r2, 0
- beq _080519E2
- lsls r0, r3, 1
- adds r0, r7
- ldr r4, _08051A14 @ =0xffff81e1
- adds r1, r2, r4
- strh r1, [r0, 0x16]
- adds r0, 0x56
- adds r4, 0x10
- adds r1, r2, r4
- strh r1, [r0]
- adds r3, 0x1
-_080519E2:
- cmp r3, 0x7
- bgt _08051A06
- ldr r0, _08051A18 @ =0x000081e1
- adds r4, r0, 0
- adds r0, 0x10
- adds r2, r0, 0
- lsls r1, r3, 1
- adds r0, r1, 0
- adds r0, 0x56
- adds r0, r7
- adds r1, r7
-_080519F8:
- strh r4, [r1, 0x16]
- strh r2, [r0]
- adds r0, 0x2
- adds r1, 0x2
- adds r3, 0x1
- cmp r3, 0x7
- ble _080519F8
-_08051A06:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08051A0C: .4byte 0x06006000
-_08051A10: .4byte 0x000081e9
-_08051A14: .4byte 0xffff81e1
-_08051A18: .4byte 0x000081e1
- thumb_func_end sub_805197C
-
- thumb_func_start sub_8051A1C
-sub_8051A1C: @ 8051A1C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08051A34 @ =0x00057e40
- muls r0, r1
- cmp r0, 0
- bge _08051A2E
- ldr r1, _08051A38 @ =0x0000ffff
- adds r0, r1
-_08051A2E:
- asrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_08051A34: .4byte 0x00057e40
-_08051A38: .4byte 0x0000ffff
- thumb_func_end sub_8051A1C
-
- thumb_func_start sub_8051A3C
-sub_8051A3C: @ 8051A3C
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 16
- lsrs r0, 16
- bl sub_8051A1C
- adds r5, r0, 0
- ldr r0, _08051ABC @ =gUnknown_03004854
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0x5A
- ldrh r0, [r1]
- cmp r0, r5
- bcs _08051A5A
- strh r5, [r1]
-_08051A5A:
- movs r6, 0
-_08051A5C:
- mov r0, sp
- adds r4, r0, r6
- adds r0, r5, 0
- movs r1, 0xA
- bl __umodsi3
- strb r0, [r4]
- adds r0, r5, 0
- movs r1, 0xA
- bl __udivsi3
- adds r5, r0, 0
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x4
- bls _08051A5C
- ldr r2, _08051AC0 @ =0x06006458
- mov r0, sp
- ldr r3, _08051AC4 @ =0x00008172
- adds r1, r3, 0
- ldrb r0, [r0, 0x4]
- adds r0, r1, r0
- strh r0, [r2]
- adds r2, 0x2
- mov r0, sp
- ldrb r0, [r0, 0x3]
- adds r0, r1
- strh r0, [r2]
- adds r2, 0x2
- mov r0, sp
- ldrb r0, [r0, 0x2]
- adds r0, r1
- strh r0, [r2]
- adds r2, 0x4
- mov r0, sp
- ldrb r0, [r0, 0x1]
- adds r0, r1
- strh r0, [r2]
- adds r2, 0x2
- mov r0, sp
- ldrb r0, [r0]
- adds r1, r0
- strh r1, [r2]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08051ABC: .4byte gUnknown_03004854
-_08051AC0: .4byte 0x06006458
-_08051AC4: .4byte 0x00008172
- thumb_func_end sub_8051A3C
-
- thumb_func_start sub_8051AC8
-sub_8051AC8: @ 8051AC8
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r4, r1, 16
- lsrs r5, r4, 16
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08051AEC
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- bl __umodsi3
- lsrs r1, r4, 17
- subs r0, r1
- strh r0, [r6]
-_08051AEC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8051AC8
-
- thumb_func_start sub_8051AF4
-sub_8051AF4: @ 8051AF4
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1]
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bge _08051B06
- adds r0, r2, 0x1
- strh r0, [r1]
-_08051B06:
- ldrh r2, [r1]
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _08051B14
- subs r0, r2, 0x1
- strh r0, [r1]
-_08051B14:
- pop {r0}
- bx r0
- thumb_func_end sub_8051AF4
-
- thumb_func_start sub_8051B18
-sub_8051B18: @ 8051B18
- push {r4,lr}
- ldr r4, _08051B3C @ =gUnknown_03004854
- ldr r0, [r4]
- movs r1, 0xA2
- lsls r1, 1
- adds r0, r1
- bl sub_8051AF4
- ldr r0, [r4]
- movs r1, 0xA3
- lsls r1, 1
- adds r0, r1
- bl sub_8051AF4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08051B3C: .4byte gUnknown_03004854
- thumb_func_end sub_8051B18
-
- thumb_func_start sub_8051B40
-sub_8051B40: @ 8051B40
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r1, 16
- movs r5, 0x8
- cmp r1, 0x9
- bhi _08051B50
- movs r5, 0x10
-_08051B50:
- ldrh r0, [r4]
- movs r2, 0
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _08051B6E
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- bl __modsi3
- lsrs r1, r5, 1
- subs r0, r1
- b _08051B82
-_08051B6E:
- cmp r1, 0
- bge _08051B76
- adds r0, 0x1
- strh r0, [r4]
-_08051B76:
- ldrh r1, [r4]
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _08051B84
- subs r0, r1, 0x1
-_08051B82:
- strh r0, [r4]
-_08051B84:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8051B40
-
- thumb_func_start sub_8051B8C
-sub_8051B8C: @ 8051B8C
- push {r4,r5,lr}
- ldr r5, _08051BE4 @ =gUnknown_03004854
- ldr r2, [r5]
- movs r4, 0x98
- lsls r4, 1
- adds r0, r2, r4
- ldr r1, [r0]
- cmp r1, 0
- bne _08051BAC
- movs r3, 0xA2
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- adds r3, 0x2
- adds r0, r2, r3
- strh r1, [r0]
-_08051BAC:
- ldr r0, [r5]
- adds r2, r0, r4
- ldr r1, [r2]
- adds r1, 0x1
- str r1, [r2]
- movs r2, 0xA2
- lsls r2, 1
- adds r0, r2
- lsls r1, 16
- lsrs r1, 16
- bl sub_8051B40
- ldr r1, [r5]
- movs r3, 0xA3
- lsls r3, 1
- adds r0, r1, r3
- adds r1, r4
- ldrh r1, [r1]
- bl sub_8051B40
- ldr r2, [r5]
- adds r0, r2, r4
- ldr r0, [r0]
- cmp r0, 0x14
- beq _08051BE8
- movs r0, 0
- b _08051BFC
- .align 2, 0
-_08051BE4: .4byte gUnknown_03004854
-_08051BE8:
- movs r1, 0xA2
- lsls r1, 1
- adds r0, r2, r1
- movs r1, 0
- strh r1, [r0]
- movs r3, 0xA3
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- movs r0, 0x1
-_08051BFC:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8051B8C
-
- thumb_func_start sub_8051C04
-sub_8051C04: @ 8051C04
- ldr r1, _08051C20 @ =gUnknown_03004854
- ldr r2, [r1]
- movs r3, 0xA2
- lsls r3, 1
- adds r1, r2, r3
- ldrh r1, [r1]
- negs r1, r1
- strh r1, [r0, 0x24]
- adds r3, 0x2
- adds r1, r2, r3
- ldrh r1, [r1]
- negs r1, r1
- strh r1, [r0, 0x26]
- bx lr
- .align 2, 0
-_08051C20: .4byte gUnknown_03004854
- thumb_func_end sub_8051C04
-
- thumb_func_start sub_8051C24
-sub_8051C24: @ 8051C24
- push {lr}
- ldr r2, _08051C4C @ =gSaveBlock1
- ldr r0, _08051C50 @ =gUnknown_03004854
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x88
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 1
- ldr r3, _08051C54 @ =0x0000096c
- adds r2, r3
- adds r2, r0, r2
- adds r1, 0x5A
- ldrh r1, [r1]
- ldrh r0, [r2]
- cmp r0, r1
- bcs _08051C48
- strh r1, [r2]
-_08051C48:
- pop {r0}
- bx r0
- .align 2, 0
-_08051C4C: .4byte gSaveBlock1
-_08051C50: .4byte gUnknown_03004854
-_08051C54: .4byte 0x0000096c
- thumb_func_end sub_8051C24
-
- thumb_func_start sub_8051C58
-sub_8051C58: @ 8051C58
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- ldr r1, _08051C7C @ =gUnknown_03004854
- ldr r0, [r1]
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x6
- bls _08051C72
- b _0805200A
-_08051C72:
- lsls r0, 2
- ldr r1, _08051C80 @ =_08051C84
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08051C7C: .4byte gUnknown_03004854
-_08051C80: .4byte _08051C84
- .align 2, 0
-_08051C84:
- .4byte _08051CA0
- .4byte _08051CB6
- .4byte _08051CD0
- .4byte _08051D20
- .4byte _08051F44
- .4byte _08051F58
- .4byte _08051FF8
-_08051CA0:
- ldr r1, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r2]
- movs r1, 0x98
- lsls r1, 1
- adds r0, r1
- movs r1, 0x11
- str r1, [r0]
- b _0805200A
-_08051CB6:
- ldr r1, [r2]
- movs r0, 0x98
- lsls r0, 1
- adds r2, r1, r0
- ldr r0, [r2]
- subs r0, 0xA
- str r0, [r2]
- cmp r0, 0
- blt _08051CCA
- b _0805200A
-_08051CCA:
- movs r0, 0
- str r0, [r2]
- b _08051FE2
-_08051CD0:
- ldr r1, [r2]
- movs r2, 0x98
- lsls r2, 1
- adds r1, r2
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x14
- bgt _08051CE4
- b _0805200A
-_08051CE4:
- movs r6, 0
-_08051CE6:
- ldr r4, _08051D18 @ =gUnknown_03004854
- ldr r0, [r4]
- adds r0, 0x50
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08051D1C @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x2
- bls _08051CE6
- ldr r1, [r4]
- movs r0, 0x98
- lsls r0, 1
- adds r2, r1, r0
- movs r0, 0
- str r0, [r2]
- b _08051FE2
- .align 2, 0
-_08051D18: .4byte gUnknown_03004854
-_08051D1C: .4byte gSprites
-_08051D20:
- movs r0, 0x4
- movs r1, 0x2
- movs r2, 0x19
- movs r3, 0x11
- bl MenuDrawTextWindow
- ldr r0, _08051F14 @ =gOtherText_ResultsOfBlending
- movs r1, 0x5
- movs r2, 0x3
- movs r3, 0xA0
- bl sub_8072BD8
- movs r6, 0
- ldr r1, _08051F18 @ =gUnknown_03004854
- ldr r0, [r1]
- adds r0, 0x88
- add r2, sp, 0xC
- mov r9, r2
- mov r2, sp
- adds r2, 0x16
- str r2, [sp, 0x30]
- ldrb r0, [r0]
- cmp r6, r0
- bcs _08051E04
- mov r8, r1
- ldr r0, _08051F1C @ =gLinkPlayers
- mov r10, r0
-_08051D56:
- mov r1, r8
- ldr r2, [r1]
- movs r1, 0xB2
- lsls r1, 1
- adds r0, r2, r1
- adds r0, r6
- ldrb r5, [r0]
- mov r7, r9
- lsls r1, r5, 4
- adds r1, r2
- movs r2, 0xBF
- lsls r2, 1
- adds r1, r2
- adds r0, r7, 0
- bl StringCopy
- lsls r4, r5, 3
- subs r4, r5
- lsls r4, 2
- mov r1, r10
- adds r0, r4, r1
- ldrb r1, [r0, 0x1A]
- adds r0, r7, 0
- bl ConvertInternationalString
- adds r0, r7, 0
- ldr r1, _08051F20 @ =gOtherText_Berry
- bl StringAppend
- mov r2, r8
- ldr r0, [r2]
- adds r7, r0, 0
- adds r7, 0xAB
- adds r5, r6, 0x1
- adds r0, r7, 0
- adds r1, r5, 0
- bl ConvertIntToDecimalString
- adds r7, r0, 0
- movs r1, 0
- strb r1, [r7]
- movs r0, 0xAD
- strb r0, [r7, 0x1]
- strb r1, [r7, 0x2]
- adds r7, 0x3
- ldr r0, _08051F24 @ =gLinkPlayers + 0x8
- adds r4, r0
- adds r0, r7, 0
- adds r1, r4, 0
- movs r2, 0x58
- movs r3, 0
- bl sub_8072C74
- adds r7, r0, 0
- add r1, sp, 0xC
- movs r2, 0x9D
- movs r3, 0
- bl sub_8072C74
- mov r2, r8
- ldr r1, [r2]
- adds r0, r1, 0
- adds r0, 0xAB
- ldr r3, _08051F28 @ =gUnknown_082165E9
- adds r1, 0x88
- ldrb r2, [r1]
- adds r3, r2, r3
- ldr r1, _08051F2C @ =gUnknown_082165EE
- adds r2, r1
- ldrb r1, [r2]
- adds r2, r6, 0
- muls r2, r1
- ldrb r3, [r3]
- adds r2, r3
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x5
- bl MenuPrint
- lsls r5, 16
- lsrs r6, r5, 16
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x88
- ldrb r0, [r0]
- cmp r6, r0
- bcc _08051D56
-_08051E04:
- ldr r6, _08051F18 @ =gUnknown_03004854
- ldr r0, [r6]
- adds r0, 0x5A
- ldrh r0, [r0]
- movs r1, 0x64
- bl __umodsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r0, r9
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, [r6]
- adds r7, r0, 0
- adds r7, 0xAB
- ldr r1, _08051F30 @ =gOtherText_MaxSpeed
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- ldr r0, [r6]
- adds r0, 0x5A
- ldrh r0, [r0]
- movs r1, 0x64
- bl __udivsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r7, 0
- movs r2, 0x79
- movs r3, 0x1
- bl sub_8072C14
- adds r7, r0, 0
- movs r1, 0
- strb r1, [r7]
- movs r0, 0xAD
- strb r0, [r7, 0x1]
- strb r1, [r7, 0x2]
- adds r7, 0x3
- adds r0, r7, 0
- mov r1, r9
- movs r2, 0x8E
- movs r3, 0x1
- bl sub_8072C74
- adds r7, r0, 0
- ldr r1, _08051F34 @ =gOtherText_RPM
- bl StringCopy
- ldr r0, [r6]
- adds r0, 0xAB
- movs r1, 0x5
- movs r2, 0xD
- bl MenuPrint
- ldr r0, [r6]
- movs r2, 0x96
- lsls r2, 1
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0x3C
- bl __udivsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0x3C
- bl __umodsi3
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0x3C
- bl __udivsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r0, r9
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, [sp, 0x30]
- adds r1, r5, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, [r6]
- adds r7, r0, 0
- adds r7, 0xAB
- ldr r1, _08051F38 @ =gOtherText_RequiredTime
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- mov r1, r9
- movs r2, 0x66
- movs r3, 0x1
- bl sub_8072C74
- adds r7, r0, 0
- ldr r1, _08051F3C @ =gOtherText_Min
- bl StringAppend
- adds r7, r0, 0
- ldr r1, [sp, 0x30]
- movs r2, 0x88
- movs r3, 0x1
- bl sub_8072C74
- adds r7, r0, 0
- ldr r1, _08051F40 @ =gOtherText_Sec
- bl StringCopy
- ldr r0, [r6]
- adds r0, 0xAB
- movs r1, 0x5
- movs r2, 0xF
- bl MenuPrint
- ldr r1, [r6]
- movs r0, 0x98
- lsls r0, 1
- adds r2, r1, r0
- movs r0, 0
- str r0, [r2]
- b _08051FE2
- .align 2, 0
-_08051F14: .4byte gOtherText_ResultsOfBlending
-_08051F18: .4byte gUnknown_03004854
-_08051F1C: .4byte gLinkPlayers
-_08051F20: .4byte gOtherText_Berry
-_08051F24: .4byte gLinkPlayers + 0x8
-_08051F28: .4byte gUnknown_082165E9
-_08051F2C: .4byte gUnknown_082165EE
-_08051F30: .4byte gOtherText_MaxSpeed
-_08051F34: .4byte gOtherText_RPM
-_08051F38: .4byte gOtherText_RequiredTime
-_08051F3C: .4byte gOtherText_Min
-_08051F40: .4byte gOtherText_Sec
-_08051F44:
- ldr r0, _08051F54 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0805200A
- ldr r1, [r2]
- b _08051FE2
- .align 2, 0
-_08051F54: .4byte gMain
-_08051F58:
- bl MenuZeroFillScreen
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- movs r6, 0
- add r5, sp, 0x28
- ldr r0, _08051FEC @ =gUnknown_03004854
- ldr r0, [r0]
- adds r3, r0, 0
- adds r3, 0x80
- add r2, sp, 0x20
-_08051F76:
- lsls r1, r6, 1
- adds r0, r3, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _08051F86
- adds r1, r2, r1
- subs r0, 0x85
- strh r0, [r1]
-_08051F86:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08051F76
- bl sub_8050760
- ldr r4, _08051FEC @ =gUnknown_03004854
- ldr r3, [r4]
- movs r1, 0xBE
- lsls r1, 1
- adds r0, r3, r1
- adds r1, r3, 0
- adds r1, 0x88
- ldrb r2, [r1]
- subs r1, 0x2E
- ldrh r1, [r1]
- str r1, [sp]
- adds r1, r5, 0
- add r3, sp, 0x4
- bl sub_8050520
- ldr r1, [r4]
- adds r1, 0xAB
- adds r0, r5, 0
- bl sub_805201C
- ldr r0, _08051FF0 @ =sub_8052BD0
- movs r1, 0x6
- bl CreateTask
- ldr r0, [r4]
- adds r0, 0xAB
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrintMessage
- ldr r0, _08051FF4 @ =gScriptItemId
- ldrh r0, [r0]
- movs r1, 0x1
- bl RemoveBagItem
- adds r0, r5, 0
- bl sub_810CA34
- ldr r1, [r4]
-_08051FE2:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0805200A
- .align 2, 0
-_08051FEC: .4byte gUnknown_03004854
-_08051FF0: .4byte sub_8052BD0
-_08051FF4: .4byte gScriptItemId
-_08051FF8:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _0805200A
- bl sub_8051C24
- movs r0, 0x1
- b _0805200C
-_0805200A:
- movs r0, 0
-_0805200C:
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8051C58
-
- thumb_func_start sub_805201C
-sub_805201C: @ 805201C
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- adds r6, r1, 0
- movs r0, 0xFF
- strb r0, [r6]
- ldr r1, _080520B0 @ =gPokeblockNames
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r6, 0
- bl StringCopy
- ldr r1, _080520B4 @ =gOtherText_PokeBlockMade
- adds r0, r6, 0
- bl StringAppend
- ldr r1, _080520B8 @ =gUnknown_082162C8
- adds r0, r6, 0
- bl StringAppend
- adds r0, r5, 0
- bl sub_810C9B0
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl sub_810C9E8
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080520BC @ =gOtherText_BlockLevelIs
- adds r0, r6, 0
- bl StringAppend
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r0, r6, 0
- mov r1, sp
- bl StringAppend
- ldr r1, _080520C0 @ =gOtherText_BlockFeelIs
- adds r0, r6, 0
- bl StringAppend
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r0, r6, 0
- mov r1, sp
- bl StringAppend
- ldr r1, _080520C4 @ =gOtherText_Period
- adds r0, r6, 0
- bl StringAppend
- ldr r1, _080520C8 @ =gUnknown_08216249
- adds r0, r6, 0
- bl StringAppend
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080520B0: .4byte gPokeblockNames
-_080520B4: .4byte gOtherText_PokeBlockMade
-_080520B8: .4byte gUnknown_082162C8
-_080520BC: .4byte gOtherText_BlockLevelIs
-_080520C0: .4byte gOtherText_BlockFeelIs
-_080520C4: .4byte gOtherText_Period
-_080520C8: .4byte gUnknown_08216249
- thumb_func_end sub_805201C
-
- thumb_func_start sub_80520CC
-sub_80520CC: @ 80520CC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r0
- mov r12, r2
- lsls r1, 24
- lsrs r7, r1, 24
- movs r0, 0
- cmp r0, r7
- bge _08052118
-_080520E2:
- movs r5, 0
- adds r1, r0, 0x1
- mov r8, r1
- cmp r5, r7
- bge _08052112
- mov r1, r9
- adds r6, r1, r0
-_080520F0:
- ldrb r4, [r6]
- lsls r1, r4, 2
- add r1, r12
- mov r0, r9
- adds r2, r0, r5
- ldrb r3, [r2]
- lsls r0, r3, 2
- add r0, r12
- ldr r1, [r1]
- ldr r0, [r0]
- cmp r1, r0
- bls _0805210C
- strb r3, [r6]
- strb r4, [r2]
-_0805210C:
- adds r5, 0x1
- cmp r5, r7
- blt _080520F0
-_08052112:
- mov r0, r8
- cmp r0, r7
- blt _080520E2
-_08052118:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80520CC
-
- thumb_func_start sub_8052124
-sub_8052124: @ 8052124
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- movs r5, 0
- ldr r1, _08052144 @ =gUnknown_03004854
- ldr r0, [r1]
- adds r0, 0x88
- mov r10, r1
- mov r2, sp
- adds r2, 0x4
- str r2, [sp, 0x14]
- b _08052158
- .align 2, 0
-_08052144: .4byte gUnknown_03004854
-_08052148:
- mov r4, sp
- adds r0, r4, r5
- strb r5, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, [r1]
- adds r0, 0x88
-_08052158:
- ldrb r0, [r0]
- cmp r5, r0
- bcc _08052148
- movs r5, 0
- mov r1, r10
- ldr r0, [r1]
- adds r1, r0, 0
- adds r1, 0x88
- ldrb r2, [r1]
- cmp r5, r2
- bcs _080521D6
- ldr r4, [sp, 0x14]
- mov r9, r4
- movs r2, 0xA6
- lsls r2, 1
- adds r2, r0
- mov r8, r2
- mov r12, r1
- movs r4, 0xA7
- lsls r4, 1
- adds r7, r0, r4
- movs r1, 0xA8
- lsls r1, 1
- adds r6, r0, r1
-_08052188:
- lsls r4, r5, 2
- add r4, r9
- lsls r3, r5, 1
- adds r3, r5
- lsls r3, 1
- mov r2, r8
- adds r0, r2, r3
- ldrh r2, [r0]
- lsls r0, r2, 5
- subs r0, r2
- lsls r1, r0, 6
- subs r1, r0
- lsls r1, 3
- adds r1, r2
- lsls r1, 6
- str r1, [r4]
- adds r0, r7, r3
- ldrh r2, [r0]
- lsls r0, r2, 5
- subs r0, r2
- lsls r0, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- str r1, [r4]
- movs r0, 0xFA
- lsls r0, 2
- adds r1, r0
- adds r3, r6, r3
- ldrh r0, [r3]
- subs r1, r0
- str r1, [r4]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r1, r12
- ldrb r1, [r1]
- cmp r5, r1
- bcc _08052188
-_080521D6:
- mov r2, r10
- ldr r0, [r2]
- adds r0, 0x88
- ldrb r1, [r0]
- mov r0, sp
- ldr r2, [sp, 0x14]
- bl sub_80520CC
- movs r5, 0
- mov r4, r10
- ldr r0, [r4]
- adds r0, 0x88
- ldrb r0, [r0]
- cmp r5, r0
- bcs _08052218
- mov r2, r10
- movs r3, 0xB2
- lsls r3, 1
-_080521FA:
- ldr r1, [r2]
- adds r1, r3
- adds r1, r5
- mov r4, sp
- adds r0, r4, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, [r2]
- adds r0, 0x88
- ldrb r0, [r0]
- cmp r5, r0
- bcc _080521FA
-_08052218:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8052124
-
- thumb_func_start sub_8052228
-sub_8052228: @ 8052228
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r1, _08052248 @ =gUnknown_03004854
- ldr r0, [r1]
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x6
- bls _0805223C
- b _080524AE
-_0805223C:
- lsls r0, 2
- ldr r1, _0805224C @ =_08052250
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08052248: .4byte gUnknown_03004854
-_0805224C: .4byte _08052250
- .align 2, 0
-_08052250:
- .4byte _0805226C
- .4byte _08052282
- .4byte _0805229C
- .4byte _080522B6
- .4byte _08052464
- .4byte _0805247E
- .4byte _080524A4
-_0805226C:
- ldr r1, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r2]
- movs r1, 0x98
- lsls r1, 1
- adds r0, r1
- movs r1, 0xFF
- str r1, [r0]
- b _080524AE
-_08052282:
- ldr r1, [r2]
- movs r0, 0x98
- lsls r0, 1
- adds r2, r1, r0
- ldr r0, [r2]
- subs r0, 0xA
- str r0, [r2]
- cmp r0, 0
- blt _08052296
- b _080524AE
-_08052296:
- movs r0, 0
- str r0, [r2]
- b _08052494
-_0805229C:
- ldr r1, [r2]
- movs r0, 0x98
- lsls r0, 1
- adds r2, r1, r0
- ldr r0, [r2]
- adds r0, 0x1
- str r0, [r2]
- cmp r0, 0x14
- bgt _080522B0
- b _080524AE
-_080522B0:
- movs r0, 0
- str r0, [r2]
- b _08052494
-_080522B6:
- movs r0, 0x4
- movs r1, 0x2
- movs r2, 0x19
- movs r3, 0x11
- bl MenuDrawTextWindow
- ldr r0, _0805236C @ =gOtherText_Ranking
- movs r1, 0x5
- movs r2, 0x3
- movs r3, 0xA0
- bl sub_8072BD8
- ldr r6, _08052370 @ =gSpriteTemplate_821645C
- adds r0, r6, 0
- movs r1, 0x8C
- movs r2, 0x34
- movs r3, 0
- bl CreateSprite
- ldr r7, _08052374 @ =gUnknown_03004854
- ldr r1, [r7]
- adds r1, 0x50
- strb r0, [r1]
- ldr r1, _08052378 @ =gSprites
- mov r8, r1
- ldr r2, [r7]
- adds r2, 0x50
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r5, r8
- adds r5, 0x1C
- adds r0, r5
- ldr r4, _0805237C @ =SpriteCallbackDummy
- str r4, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- movs r1, 0x3
- bl StartSpriteAnim
- adds r0, r6, 0
- movs r1, 0xA4
- movs r2, 0x34
- movs r3, 0
- bl CreateSprite
- ldr r1, [r7]
- adds r1, 0x51
- strb r0, [r1]
- ldr r0, [r7]
- adds r0, 0x51
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- str r4, [r0]
- adds r0, r6, 0
- movs r1, 0xBC
- movs r2, 0x34
- movs r3, 0
- bl CreateSprite
- ldr r1, [r7]
- adds r1, 0x52
- strb r0, [r1]
- ldr r2, [r7]
- adds r2, 0x52
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- str r4, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- movs r1, 0x1
- bl StartSpriteAnim
- bl sub_8052124
- movs r2, 0
- mov r8, r2
- b _0805243C
- .align 2, 0
-_0805236C: .4byte gOtherText_Ranking
-_08052370: .4byte gSpriteTemplate_821645C
-_08052374: .4byte gUnknown_03004854
-_08052378: .4byte gSprites
-_0805237C: .4byte SpriteCallbackDummy
-_08052380:
- ldr r1, [r7]
- movs r2, 0xB2
- lsls r2, 1
- adds r0, r1, r2
- add r0, r8
- ldrb r5, [r0]
- adds r2, r1, 0
- adds r2, 0xAB
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- movs r0, 0x4
- strb r0, [r2, 0x2]
- adds r2, 0x3
- mov r6, r8
- adds r6, 0x1
- adds r0, r2, 0
- adds r1, r6, 0
- bl ConvertIntToDecimalString
- adds r2, r0, 0
- movs r1, 0
- strb r1, [r2]
- movs r0, 0xAD
- strb r0, [r2, 0x1]
- strb r1, [r2, 0x2]
- adds r2, 0x3
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- ldr r0, _08052458 @ =gLinkPlayers + 0x8
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r0, [r7]
- lsls r4, r5, 1
- adds r4, r5
- lsls r4, 1
- movs r1, 0xA6
- lsls r1, 1
- adds r0, r1
- adds r0, r4
- ldrh r1, [r0]
- adds r0, r2, 0
- movs r2, 0x6C
- movs r3, 0x1
- bl sub_8072C14
- adds r2, r0, 0
- ldr r0, [r7]
- movs r1, 0xA7
- lsls r1, 1
- adds r0, r1
- adds r0, r4
- ldrh r1, [r0]
- adds r0, r2, 0
- movs r2, 0x84
- movs r3, 0x1
- bl sub_8072C14
- adds r2, r0, 0
- ldr r0, [r7]
- movs r1, 0xA8
- lsls r1, 1
- adds r0, r1
- adds r0, r4
- ldrh r1, [r0]
- adds r0, r2, 0
- movs r2, 0x9C
- movs r3, 0x1
- bl sub_8072C14
- ldr r1, [r7]
- adds r0, r1, 0
- adds r0, 0xAB
- ldr r2, _0805245C @ =gUnknown_082165F3
- adds r1, 0x88
- ldrb r1, [r1]
- adds r1, r2
- ldrb r1, [r1]
- mov r2, r8
- muls r2, r1
- adds r2, 0x8
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x5
- bl MenuPrint
- lsls r6, 16
- lsrs r6, 16
- mov r8, r6
-_0805243C:
- ldr r0, [r7]
- adds r0, 0x88
- ldrb r0, [r0]
- cmp r8, r0
- bcc _08052380
- ldr r0, _08052460 @ =gUnknown_03004854
- ldr r1, [r0]
- movs r0, 0x98
- lsls r0, 1
- adds r2, r1, r0
- movs r0, 0
- str r0, [r2]
- b _08052494
- .align 2, 0
-_08052458: .4byte gLinkPlayers + 0x8
-_0805245C: .4byte gUnknown_082165F3
-_08052460: .4byte gUnknown_03004854
-_08052464:
- ldr r2, [r2]
- movs r0, 0x98
- lsls r0, 1
- adds r1, r2, r0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x14
- ble _080524AE
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- b _080524AE
-_0805247E:
- ldr r0, _0805249C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080524AE
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080524A0 @ =gUnknown_03004854
- ldr r1, [r0]
-_08052494:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080524AE
- .align 2, 0
-_0805249C: .4byte gMain
-_080524A0: .4byte gUnknown_03004854
-_080524A4:
- ldr r1, [r2]
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- b _080524B0
-_080524AE:
- movs r0, 0
-_080524B0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8052228
-
- thumb_func_start unref_sub_80524BC
-unref_sub_80524BC: @ 80524BC
- push {r4,lr}
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r0, _0805251C @ =sub_804E2D8
- bl SetVBlankCallback
- ldr r4, _08052520 @ =gWindowConfig_81E6CE4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r0, _08052524 @ =gMain
- ldrh r0, [r0, 0x20]
- bl SeedRng
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xAA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r1, _08052528 @ =gUnknown_03000560
- movs r0, 0xFA
- lsls r0, 5
- strh r0, [r1, 0x1A]
- ldrb r0, [r1, 0x10]
- adds r0, 0x1
- strb r0, [r1, 0x10]
- ldr r0, _0805252C @ =sub_8052AF8
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0805251C: .4byte sub_804E2D8
-_08052520: .4byte gWindowConfig_81E6CE4
-_08052524: .4byte gMain
-_08052528: .4byte gUnknown_03000560
-_0805252C: .4byte sub_8052AF8
- thumb_func_end unref_sub_80524BC
-
- thumb_func_start sub_8052530
-sub_8052530: @ 8052530
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x98
- ldr r1, _080525C8 @ =gOtherText_BPMAndDash
- mov r0, sp
- bl StringCopy
- mov r0, sp
- movs r1, 0x2
- movs r2, 0
- bl MenuPrint
- ldr r4, _080525CC @ =gUnknown_03000560
- movs r1, 0x1A
- ldrsh r0, [r4, r1]
- movs r1, 0x64
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- mov r0, sp
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- mov r0, sp
- movs r1, 0x6
- movs r2, 0
- bl MenuPrint
- movs r6, 0
- mov r2, sp
- adds r2, 0x3
- str r2, [sp, 0x84]
- mov r3, sp
- adds r3, 0x6
- str r3, [sp, 0x88]
- mov r0, sp
- adds r0, 0x9
- str r0, [sp, 0x8C]
- mov r1, sp
- adds r1, 0xC
- str r1, [sp, 0x90]
- adds r2, 0xC
- str r2, [sp, 0x94]
- mov r8, r4
- mov r7, sp
- ldr r3, _080525D0 @ =gBerries
- mov r9, r3
- ldr r0, _080525D4 @ =gUnknown_082165F8
- mov r10, r0
-_0805259E:
- mov r1, r8
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, r6
- bne _080525D8
- movs r0, 0xEF
- strb r0, [r7]
- mov r0, r8
- adds r0, 0x1
- adds r0, r6, r0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x85
- lsls r0, 16
- lsrs r0, 16
- mov r1, sp
- adds r1, 0x1
- bl CopyItemName
- b _080525F8
- .align 2, 0
-_080525C8: .4byte gOtherText_BPMAndDash
-_080525CC: .4byte gUnknown_03000560
-_080525D0: .4byte gBerries
-_080525D4: .4byte gUnknown_082165F8
-_080525D8:
- mov r0, r8
- adds r0, 0x1
- adds r0, r6, r0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x85
- lsls r0, 16
- lsrs r0, 16
- mov r1, sp
- bl CopyItemName
- movs r0, 0
- strb r0, [r7, 0x6]
- movs r0, 0xFF
- strb r0, [r7, 0x7]
-_080525F8:
- lsls r5, r6, 1
- adds r5, r6
- adds r5, 0x3
- lsls r5, 24
- lsrs r5, 24
- mov r0, sp
- movs r1, 0x2
- adds r2, r5, 0
- bl MenuPrint
- mov r4, r8
- adds r4, 0x1
- adds r4, r6, r4
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r1, [r0, 0x15]
- mov r0, sp
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- mov r0, sp
- mov r1, r10
- bl StringAppend
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r1, [r0, 0x16]
- ldr r0, [sp, 0x84]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- mov r0, sp
- mov r1, r10
- bl StringAppend
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r1, [r0, 0x17]
- ldr r0, [sp, 0x88]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- mov r0, sp
- mov r1, r10
- bl StringAppend
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r1, [r0, 0x18]
- ldr r0, [sp, 0x8C]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- mov r0, sp
- mov r1, r10
- bl StringAppend
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r1, [r0, 0x19]
- ldr r0, [sp, 0x90]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- mov r0, sp
- mov r1, r10
- bl StringAppend
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r1, [r0, 0x1A]
- ldr r0, [sp, 0x94]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- movs r2, 0x1
- negs r2, r2
- add r3, sp, 0x80
- strb r2, [r3]
- movs r0, 0xFF
- strb r0, [r7, 0x11]
- mov r0, sp
- movs r1, 0x7
- adds r2, r5, 0
- bl MenuPrint
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bhi _080526EC
- b _0805259E
-_080526EC:
- mov r1, r8
- ldrb r0, [r1, 0x8]
- cmp r0, 0
- beq _080527A4
- ldr r1, _080527B4 @ =gPokeblockNames
- mov r2, r8
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- mov r0, sp
- bl StringCopy
- mov r0, sp
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- mov r3, r8
- ldrb r1, [r3, 0x11]
- mov r0, sp
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToHexStringN
- ldr r4, _080527B8 @ =gUnknown_082165F8
- mov r0, sp
- adds r1, r4, 0
- bl StringAppend
- mov r0, r8
- ldrb r1, [r0, 0x12]
- ldr r0, [sp, 0x84]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToHexStringN
- mov r0, sp
- adds r1, r4, 0
- bl StringAppend
- mov r2, r8
- ldrb r1, [r2, 0x13]
- ldr r0, [sp, 0x88]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToHexStringN
- mov r0, sp
- adds r1, r4, 0
- bl StringAppend
- mov r3, r8
- ldrb r1, [r3, 0x14]
- ldr r0, [sp, 0x8C]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToHexStringN
- mov r0, sp
- adds r1, r4, 0
- bl StringAppend
- mov r0, r8
- ldrb r1, [r0, 0x15]
- ldr r0, [sp, 0x90]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToHexStringN
- mov r0, sp
- adds r1, r4, 0
- bl StringAppend
- mov r2, r8
- ldrb r1, [r2, 0x16]
- ldr r0, [sp, 0x94]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToHexStringN
- mov r1, sp
- ldrb r0, [r1, 0x11]
- add r3, sp, 0x80
- ldrb r3, [r3]
- orrs r0, r3
- strb r0, [r1, 0x11]
- mov r0, sp
- movs r1, 0x7
- movs r2, 0x11
- bl MenuPrint
-_080527A4:
- add sp, 0x98
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080527B4: .4byte gPokeblockNames
-_080527B8: .4byte gUnknown_082165F8
- thumb_func_end sub_8052530
-
- thumb_func_start sub_80527BC
-sub_80527BC: @ 80527BC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x58
- ldr r0, _08052844 @ =gUnknown_020297DC
- ldrb r0, [r0]
- add r6, sp, 0x48
- cmp r0, 0x1
- bne _08052814
- movs r1, 0
- ldr r3, _08052848 @ =gUnknown_03004840
- movs r2, 0
-_080527D6:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x9
- bls _080527D6
- bl Random
- ldr r1, _0805284C @ =gUnknown_03004830
- strh r0, [r1]
- ldr r1, _08052850 @ =gUnknown_020297E0
- movs r0, 0
- str r0, [r1]
- ldr r1, _08052844 @ =gUnknown_020297DC
- movs r0, 0x2
- strb r0, [r1]
- movs r4, 0
- ldr r2, _08052854 @ =0x02000000
- movs r1, 0
-_08052800:
- adds r0, r4, r2
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xC7
- bls _08052800
- ldr r1, _08052858 @ =gUnknown_020297E8
- movs r0, 0
- strb r0, [r1]
-_08052814:
- movs r4, 0
- movs r0, 0x1
- mov r8, r0
- ldr r7, _08052858 @ =gUnknown_020297E8
- ldr r5, _08052850 @ =gUnknown_020297E0
- ldr r1, _08052854 @ =0x02000000
- mov r9, r1
- ldr r3, _0805285C @ =gUnknown_020297E4
-_08052824:
- str r3, [sp, 0x54]
- bl Random
- lsls r0, 16
- lsrs r0, 31
- mov r1, r8
- ands r0, r1
- ldr r3, [sp, 0x54]
- ldrb r1, [r7]
- cmp r0, r1
- bne _08052860
- ldr r0, [r5]
- adds r0, 0x1
- str r0, [r5]
- b _0805287A
- .align 2, 0
-_08052844: .4byte gUnknown_020297DC
-_08052848: .4byte gUnknown_03004840
-_0805284C: .4byte gUnknown_03004830
-_08052850: .4byte gUnknown_020297E0
-_08052854: .4byte 0x02000000
-_08052858: .4byte gUnknown_020297E8
-_0805285C: .4byte gUnknown_020297E4
-_08052860:
- ldr r2, [r3]
- lsls r0, r2, 1
- add r0, r9
- ldr r1, [r5]
- strh r1, [r0]
- adds r2, 0x1
- str r2, [r3]
- movs r0, 0
- str r0, [r5]
- ldrb r0, [r7]
- mov r1, r8
- eors r0, r1
- strb r0, [r7]
-_0805287A:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x63
- bls _08052824
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1]
- ldr r0, _08052900 @ =gUnknown_03004830
- ldrh r1, [r0]
- adds r0, r6, 0
- movs r2, 0x2
- movs r3, 0x8
- bl ConvertIntToHexStringN
- mov r0, sp
- adds r1, r6, 0
- bl StringAppend
- ldr r1, _08052904 @ =gUnknown_082165F8
- mov r0, sp
- bl StringAppend
- ldr r0, _08052908 @ =gUnknown_020297E0
- ldr r1, [r0]
- adds r0, r6, 0
- movs r2, 0x2
- movs r3, 0x8
- bl ConvertIntToHexStringN
- mov r0, sp
- adds r1, r6, 0
- bl StringAppend
- ldr r1, _0805290C @ =gUnknown_08216600
- mov r0, sp
- bl StringAppend
- ldr r4, _08052910 @ =gUnknown_020297DC
- ldrb r0, [r4]
- cmp r0, 0x3
- bne _080528E8
- ldr r0, _08052914 @ =gUnknown_020297E4
- ldr r1, [r0]
- adds r0, r6, 0
- movs r2, 0x2
- movs r3, 0x10
- bl ConvertIntToHexStringN
- mov r0, sp
- adds r1, r6, 0
- bl StringAppend
- movs r0, 0
- strb r0, [r4]
-_080528E8:
- mov r0, sp
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- add sp, 0x58
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08052900: .4byte gUnknown_03004830
-_08052904: .4byte gUnknown_082165F8
-_08052908: .4byte gUnknown_020297E0
-_0805290C: .4byte gUnknown_08216600
-_08052910: .4byte gUnknown_020297DC
-_08052914: .4byte gUnknown_020297E4
- thumb_func_end sub_80527BC
-
- thumb_func_start sub_8052918
-sub_8052918: @ 8052918
- push {r4-r6,lr}
- sub sp, 0x4C
- ldr r2, _08052A88 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- ldr r4, _08052A8C @ =gUnknown_03000560
- cmp r0, 0
- beq _0805294C
- movs r1, 0xFA
- lsls r1, 2
- adds r0, r1, 0
- ldrh r1, [r4, 0x1A]
- adds r0, r1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- ldr r1, _08052A90 @ =0x75300000
- cmp r0, r1
- ble _08052946
- movs r0, 0xFA
- lsls r0, 2
- strh r0, [r4, 0x1A]
-_08052946:
- ldrb r0, [r4, 0x10]
- adds r0, 0x1
- strb r0, [r4, 0x10]
-_0805294C:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _08052972
- ldr r1, _08052A94 @ =0xfffffc18
- adds r0, r1, 0
- ldrh r1, [r4, 0x1A]
- adds r0, r1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- cmp r0, 0
- bge _0805296C
- ldr r0, _08052A98 @ =0x00007530
- strh r0, [r4, 0x1A]
-_0805296C:
- ldrb r0, [r4, 0x10]
- adds r0, 0x1
- strb r0, [r4, 0x10]
-_08052972:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08052992
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- cmp r0, 0
- bge _0805298C
- movs r0, 0x3
- strb r0, [r4]
-_0805298C:
- ldrb r0, [r4, 0x10]
- adds r0, 0x1
- strb r0, [r4, 0x10]
-_08052992:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080529B4
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080529AE
- movs r0, 0
- strb r0, [r4]
-_080529AE:
- ldrb r0, [r4, 0x10]
- adds r0, 0x1
- strb r0, [r4, 0x10]
-_080529B4:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080529E4
- adds r3, r4, 0
- movs r1, 0
- ldrsb r1, [r3, r1]
- adds r5, r3, 0x1
- adds r1, r5
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080529DE
- movs r0, 0
- ldrsb r0, [r3, r0]
- adds r0, r5
- movs r1, 0x2A
- strb r1, [r0]
-_080529DE:
- ldrb r0, [r4, 0x10]
- adds r0, 0x1
- strb r0, [r4, 0x10]
-_080529E4:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08052A16
- ldr r3, _08052A8C @ =gUnknown_03000560
- movs r1, 0
- ldrsb r1, [r3, r1]
- adds r4, r3, 0x1
- adds r1, r4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x2A
- ble _08052A10
- movs r0, 0
- ldrsb r0, [r3, r0]
- adds r0, r4
- movs r1, 0
- strb r1, [r0]
-_08052A10:
- ldrb r0, [r3, 0x10]
- adds r0, 0x1
- strb r0, [r3, 0x10]
-_08052A16:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08052AA0
- movs r6, 0
- movs r4, 0
- ldr r5, _08052A8C @ =gUnknown_03000560
-_08052A26:
- adds r0, r5, 0x1
- adds r2, r4, r0
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0x2A
- beq _08052A64
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r0, r4, 1
- mov r1, sp
- adds r1, r0
- adds r1, 0x4
- movs r0, 0
- ldrsb r0, [r2, r0]
- strh r0, [r1]
- add r0, sp, 0xC
- lsls r1, r4, 4
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r2, r1]
- adds r1, 0x85
- lsls r1, 16
- lsrs r1, 16
- bl sub_804E844
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _08052A26
-_08052A64:
- cmp r6, 0x1
- bls _08052A9C
- add r0, sp, 0xC
- adds r1, r5, 0
- adds r1, 0x8
- lsls r2, r6, 24
- lsrs r2, 24
- adds r3, r5, 0
- adds r3, 0x11
- ldrh r4, [r5, 0x1A]
- str r4, [sp]
- bl sub_8050744
- ldrb r0, [r5, 0x10]
- adds r0, 0x1
- strb r0, [r5, 0x10]
- b _08052AA0
- .align 2, 0
-_08052A88: .4byte gMain
-_08052A8C: .4byte gUnknown_03000560
-_08052A90: .4byte 0x75300000
-_08052A94: .4byte 0xfffffc18
-_08052A98: .4byte 0x00007530
-_08052A9C:
- movs r0, 0xFF
- strb r0, [r5, 0x8]
-_08052AA0:
- ldr r4, _08052AE8 @ =gUnknown_03000560
- ldrb r0, [r4, 0x10]
- cmp r0, 0
- beq _08052AB0
- bl sub_8052530
- movs r0, 0
- strb r0, [r4, 0x10]
-_08052AB0:
- ldr r3, _08052AEC @ =gMain
- ldrh r1, [r3, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08052AD4
- ldr r2, _08052AF0 @ =gUnknown_020297DC
- ldrb r0, [r2]
- adds r1, r0, 0
- cmp r1, 0
- bne _08052ADC
- adds r0, 0x1
- strb r0, [r2]
- ldr r0, _08052AF4 @ =gUnknown_020297E0
- str r1, [r0]
- ldrh r0, [r3, 0x20]
- bl SeedRng
-_08052AD4:
- ldr r0, _08052AF0 @ =gUnknown_020297DC
- ldrb r0, [r0]
- cmp r0, 0
- beq _08052AE0
-_08052ADC:
- bl sub_80527BC
-_08052AE0:
- add sp, 0x4C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08052AE8: .4byte gUnknown_03000560
-_08052AEC: .4byte gMain
-_08052AF0: .4byte gUnknown_020297DC
-_08052AF4: .4byte gUnknown_020297E0
- thumb_func_end sub_8052918
-
- thumb_func_start sub_8052AF8
-sub_8052AF8: @ 8052AF8
- push {lr}
- bl sub_8052918
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8052AF8
-
- thumb_func_start ShowBerryBlenderRecordWindow
-ShowBerryBlenderRecordWindow: @ 8052B14
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x20
- movs r0, 0x6
- movs r1, 0x3
- movs r2, 0x17
- movs r3, 0x10
- bl MenuDrawTextWindow
- ldr r0, _08052BBC @ =gMultiText_BerryBlenderMaxSpeedRecord
- movs r1, 0x8
- movs r2, 0x4
- bl MenuPrint
- ldr r0, _08052BC0 @ =gMultiText_2P3P4P
- movs r1, 0x8
- movs r2, 0x9
- bl MenuPrint
- movs r0, 0
- mov r8, r0
- ldr r0, _08052BC4 @ =gSaveBlock1
- movs r7, 0x90
- lsls r7, 20
- ldr r1, _08052BC8 @ =0x0000096c
- adds r6, r0, r1
- movs r0, 0
- mov r9, r0
-_08052B50:
- ldrh r4, [r6]
- adds r0, r4, 0
- movs r1, 0x64
- bl __udivsi3
- adds r1, r0, 0
- mov r0, sp
- movs r2, 0x12
- movs r3, 0x1
- bl sub_8072C14
- adds r5, r0, 0
- mov r1, r9
- strb r1, [r5]
- movs r0, 0xAD
- strb r0, [r5, 0x1]
- strb r1, [r5, 0x2]
- adds r5, 0x3
- adds r0, r4, 0
- movs r1, 0x64
- bl __umodsi3
- adds r1, r0, 0
- adds r0, r5, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r5, r0, 0
- ldr r1, _08052BCC @ =gOtherText_RPM
- bl StringAppend
- lsrs r2, r7, 24
- mov r0, sp
- movs r1, 0xF
- bl MenuPrint
- movs r0, 0x80
- lsls r0, 18
- adds r7, r0
- adds r6, 0x2
- movs r1, 0x1
- add r8, r1
- mov r0, r8
- cmp r0, 0x2
- ble _08052B50
- add sp, 0x20
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08052BBC: .4byte gMultiText_BerryBlenderMaxSpeedRecord
-_08052BC0: .4byte gMultiText_2P3P4P
-_08052BC4: .4byte gSaveBlock1
-_08052BC8: .4byte 0x0000096c
-_08052BCC: .4byte gOtherText_RPM
- thumb_func_end ShowBerryBlenderRecordWindow
-
- thumb_func_start sub_8052BD0
-sub_8052BD0: @ 8052BD0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _08052C1C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08052BF6
- ldr r0, _08052C20 @ =0x0000016f
- bl PlayFanfare
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08052BF6:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08052C16
- ldr r0, _08052C24 @ =gUnknown_03004854
- ldr r0, [r0]
- movs r1, 0xBC
- lsls r1, 1
- adds r0, r1
- ldrh r0, [r0]
- bl PlayBGM
- adds r0, r5, 0
- bl DestroyTask
-_08052C16:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08052C1C: .4byte gTasks
-_08052C20: .4byte 0x0000016f
-_08052C24: .4byte gUnknown_03004854
- thumb_func_end sub_8052BD0
diff --git a/asm/cable_car.s b/asm/cable_car.s
index e4d989844..385cd404d 100644
--- a/asm/cable_car.s
+++ b/asm/cable_car.s
@@ -256,22 +256,22 @@ _081233EC:
ldr r0, _0812345C @ =gCableCarMtChimneyTilemap
ldr r4, _08123460 @ =0x02019000
adds r1, r4, 0
- bl sub_800D238
+ bl LZDecompressWram
ldr r0, _08123464 @ =gCableCarTreeTilemap
movs r2, 0xB4
lsls r2, 1
adds r1, r4, r2
- bl sub_800D238
+ bl LZDecompressWram
ldr r0, _08123468 @ =gCableCarMountainTilemap
movs r2, 0xA5
lsls r2, 3
adds r1, r4, r2
- bl sub_800D238
+ bl LZDecompressWram
ldr r0, _0812346C @ =gCableCarPylonStemTilemap
ldr r1, _08123470 @ =0x000009d8
adds r4, r1
adds r1, r4, 0
- bl sub_800D238
+ bl LZDecompressWram
ldr r0, _08123474 @ =gCableCarBG_Pal
movs r1, 0
movs r2, 0x80
diff --git a/asm/cable_club.s b/asm/cable_club.s
deleted file mode 100644
index 68804ca21..000000000
--- a/asm/cable_club.s
+++ /dev/null
@@ -1,1671 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8082CD4
-sub_8082CD4: @ 8082CD4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r4, _08082D10 @ =sub_8082F20
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _08082D08
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08082D14 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r6, [r1, 0xA]
- strh r5, [r1, 0xC]
-_08082D08:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08082D10: .4byte sub_8082F20
-_08082D14: .4byte gTasks
- thumb_func_end sub_8082CD4
-
- thumb_func_start sub_8082D18
-sub_8082D18: @ 8082D18
- push {lr}
- adds r1, r0, 0
- ldr r0, _08082D44 @ =gStringVar1
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- movs r0, 0x12
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0xD
- bl MenuDrawTextWindow
- ldr r0, _08082D48 @ =gOtherText_PLink
- movs r1, 0x13
- movs r2, 0xB
- movs r3, 0x48
- bl sub_8072BD8
- pop {r0}
- bx r0
- .align 2, 0
-_08082D44: .4byte gStringVar1
-_08082D48: .4byte gOtherText_PLink
- thumb_func_end sub_8082D18
-
- thumb_func_start sub_8082D4C
-sub_8082D4C: @ 8082D4C
- push {lr}
- movs r0, 0x12
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_8082D4C
-
- thumb_func_start sub_8082D60
-sub_8082D60: @ 8082D60
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08082D88 @ =gTasks + 0x8
- adds r1, r0
- adds r5, r1, 0x6
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- cmp r4, r0
- beq _08082D94
- cmp r4, 0x1
- bhi _08082D8C
- bl sub_8082D4C
- b _08082D92
- .align 2, 0
-_08082D88: .4byte gTasks + 0x8
-_08082D8C:
- adds r0, r4, 0
- bl sub_8082D18
-_08082D92:
- strh r4, [r5]
-_08082D94:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8082D60
-
- thumb_func_start sub_8082D9C
-sub_8082D9C: @ 8082D9C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- bl GetLinkPlayerDataExchangeStatusTimed
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _08082DEC
- cmp r0, 0x2
- bgt _08082DBC
- cmp r0, 0x1
- beq _08082DC2
- b _08082DEC
-_08082DBC:
- cmp r0, 0x3
- beq _08082DE8
- b _08082DEC
-_08082DC2:
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r4, r1
- bgt _08082DD6
- cmp r1, r5
- bgt _08082DD6
- movs r0, 0x1
- b _08082DEE
-_08082DD6:
- ldr r0, _08082DE4 @ =gStringVar1
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- movs r0, 0x4
- b _08082DEE
- .align 2, 0
-_08082DE4: .4byte gStringVar1
-_08082DE8:
- movs r0, 0x3
- b _08082DEE
-_08082DEC:
- movs r0, 0
-_08082DEE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8082D9C
-
- thumb_func_start sub_8082DF4
-sub_8082DF4: @ 8082DF4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl HasLinkErrorOccurred
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08082E0A
- movs r0, 0
- b _08082E1A
-_08082E0A:
- ldr r0, _08082E20 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08082E24 @ =sub_8083418
- str r0, [r1]
- movs r0, 0x1
-_08082E1A:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08082E20: .4byte gTasks
-_08082E24: .4byte sub_8083418
- thumb_func_end sub_8082DF4
-
- thumb_func_start sub_8082E28
-sub_8082E28: @ 8082E28
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08082E58 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08082E64
- bl IsLinkConnectionEstablished
- lsls r0, 24
- cmp r0, 0
- bne _08082E64
- ldr r0, _08082E5C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08082E60 @ =sub_80833EC
- str r0, [r1]
- movs r0, 0x1
- b _08082E66
- .align 2, 0
-_08082E58: .4byte gMain
-_08082E5C: .4byte gTasks
-_08082E60: .4byte sub_80833EC
-_08082E64:
- movs r0, 0
-_08082E66:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8082E28
-
- thumb_func_start sub_8082E6C
-sub_8082E6C: @ 8082E6C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsLinkConnectionEstablished
- lsls r0, 24
- cmp r0, 0
- beq _08082E82
- movs r0, 0x1
- bl SetSuppressLinkErrorMessage
-_08082E82:
- ldr r0, _08082E94 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08082E98
- movs r0, 0
- b _08082EA8
- .align 2, 0
-_08082E94: .4byte gMain
-_08082E98:
- ldr r0, _08082EB0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08082EB4 @ =sub_80833EC
- str r0, [r1]
- movs r0, 0x1
-_08082EA8:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08082EB0: .4byte gTasks
-_08082EB4: .4byte sub_80833EC
- thumb_func_end sub_8082E6C
-
- thumb_func_start sub_8082EB8
-sub_8082EB8: @ 8082EB8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl GetSioMultiSI
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08082ECE
- movs r0, 0
- b _08082EDE
-_08082ECE:
- ldr r0, _08082EE4 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08082EE8 @ =sub_8083418
- str r0, [r1]
- movs r0, 0x1
-_08082EDE:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08082EE4: .4byte gTasks
-_08082EE8: .4byte sub_8083418
- thumb_func_end sub_8082EB8
-
- thumb_func_start unref_sub_8082EEC
-unref_sub_8082EEC: @ 8082EEC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08082F1C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _08082F16
- movs r0, 0x2
- bl sub_8007E9C
- adds r0, r4, 0
- bl DestroyTask
-_08082F16:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08082F1C: .4byte gTasks
- thumb_func_end unref_sub_8082EEC
-
- thumb_func_start sub_8082F20
-sub_8082F20: @ 8082F20
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08082F48 @ =gTasks + 0x8
- adds r4, r1, r0
- movs r3, 0
- ldrsh r2, [r4, r3]
- cmp r2, 0
- bne _08082F4C
- bl OpenLinkTimed
- bl sub_80082EC
- bl ResetLinkPlayers
- b _08082F58
- .align 2, 0
-_08082F48: .4byte gTasks + 0x8
-_08082F4C:
- cmp r2, 0x9
- ble _08082F58
- subs r0, 0x8
- adds r0, r1, r0
- ldr r1, _08082F64 @ =sub_8082F68
- str r1, [r0]
-_08082F58:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08082F64: .4byte sub_8082F68
- thumb_func_end sub_8082F20
-
- thumb_func_start sub_8082F68
-sub_8082F68: @ 8082F68
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl sub_8082E28
- cmp r0, 0x1
- beq _08082FDC
- adds r0, r4, 0
- bl sub_8082E6C
- cmp r0, 0x1
- beq _08082FDC
- cmp r5, 0x1
- bls _08082FDC
- movs r0, 0x1
- bl SetSuppressLinkErrorMessage
- ldr r1, _08082FC0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0
- strh r0, [r4, 0xE]
- bl IsLinkMaster
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08082FCC
- movs r0, 0x15
- bl PlaySE
- ldr r0, _08082FC4 @ =gUnknown_081A4932
- bl ShowFieldAutoScrollMessage
- ldr r0, _08082FC8 @ =sub_8082FEC
- b _08082FDA
- .align 2, 0
-_08082FC0: .4byte gTasks
-_08082FC4: .4byte gUnknown_081A4932
-_08082FC8: .4byte sub_8082FEC
-_08082FCC:
- movs r0, 0x16
- bl PlaySE
- ldr r0, _08082FE4 @ =gUnknown_081A49B6
- bl ShowFieldAutoScrollMessage
- ldr r0, _08082FE8 @ =sub_80831F8
-_08082FDA:
- str r0, [r4]
-_08082FDC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08082FE4: .4byte gUnknown_081A49B6
-_08082FE8: .4byte sub_80831F8
- thumb_func_end sub_8082F68
-
- thumb_func_start sub_8082FEC
-sub_8082FEC: @ 8082FEC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8082E28
- cmp r0, 0x1
- beq _0808302C
- adds r0, r4, 0
- bl sub_8082EB8
- cmp r0, 0x1
- beq _0808302C
- adds r0, r4, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _0808302C
- bl GetFieldMessageBoxMode
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _0808302C
- ldr r0, _08083034 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- strh r2, [r1, 0xE]
- ldr r0, _08083038 @ =sub_808303C
- str r0, [r1]
-_0808302C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08083034: .4byte gTasks
-_08083038: .4byte sub_808303C
- thumb_func_end sub_8082FEC
-
-.section .text_80830E4
-
-
-
-
-
-
-
-
-
- thumb_func_start sub_80833C4
-sub_80833C4: @ 80833C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080833E8 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080833E0
- bl sub_8082D4C
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_080833E0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080833E8: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end sub_80833C4
-
- thumb_func_start sub_80833EC
-sub_80833EC: @ 80833EC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _08083414 @ =gScriptResult
- movs r0, 0x5
- strh r0, [r1]
- bl sub_8082D4C
- bl HideFieldMessageBox
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08083414: .4byte gScriptResult
- thumb_func_end sub_80833EC
-
- thumb_func_start sub_8083418
-sub_8083418: @ 8083418
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _08083440 @ =gScriptResult
- movs r0, 0x6
- strh r0, [r1]
- bl sub_8082D4C
- bl HideFieldMessageBox
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08083440: .4byte gScriptResult
- thumb_func_end sub_8083418
-
- thumb_func_start sub_8083444
-sub_8083444: @ 8083444
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08083468 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- ldrh r0, [r2, 0x10]
- adds r0, 0x1
- strh r0, [r2, 0x10]
- lsls r0, 16
- movs r1, 0x96
- lsls r1, 18
- cmp r0, r1
- bgt _0808346C
- movs r0, 0
- b _08083472
- .align 2, 0
-_08083468: .4byte gTasks
-_0808346C:
- ldr r0, _08083478 @ =sub_8083418
- str r0, [r2]
- movs r0, 0x1
-_08083472:
- pop {r1}
- bx r1
- .align 2, 0
-_08083478: .4byte sub_8083418
- thumb_func_end sub_8083444
-
- thumb_func_start sub_808347C
-sub_808347C: @ 808347C
- push {r4,lr}
- movs r3, 0x2
- movs r2, 0x2
- ldr r0, _08083494 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x2
- beq _080834B0
- cmp r0, 0x2
- bgt _08083498
- cmp r0, 0x1
- beq _0808349E
- b _080834CC
- .align 2, 0
-_08083494: .4byte gSpecialVar_0x8004
-_08083498:
- cmp r0, 0x5
- beq _080834C0
- b _080834CC
-_0808349E:
- movs r3, 0x2
- ldr r1, _080834A8 @ =gLinkType
- ldr r4, _080834AC @ =0x00002233
- b _080834C8
- .align 2, 0
-_080834A8: .4byte gLinkType
-_080834AC: .4byte 0x00002233
-_080834B0:
- movs r3, 0x2
- ldr r1, _080834B8 @ =gLinkType
- ldr r4, _080834BC @ =0x00002244
- b _080834C8
- .align 2, 0
-_080834B8: .4byte gLinkType
-_080834BC: .4byte 0x00002244
-_080834C0:
- movs r3, 0x4
- movs r2, 0x4
- ldr r1, _080834DC @ =gLinkType
- ldr r4, _080834E0 @ =0x00002255
-_080834C8:
- adds r0, r4, 0
- strh r0, [r1]
-_080834CC:
- adds r0, r3, 0
- adds r1, r2, 0
- bl sub_8082CD4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080834DC: .4byte gLinkType
-_080834E0: .4byte 0x00002255
- thumb_func_end sub_808347C
-
- thumb_func_start sub_80834E4
-sub_80834E4: @ 80834E4
- push {lr}
- ldr r1, _08083500 @ =gLinkType
- ldr r2, _08083504 @ =0x00001133
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08083508 @ =gBattleTypeFlags
- movs r0, 0
- strh r0, [r1]
- movs r0, 0x2
- movs r1, 0x2
- bl sub_8082CD4
- pop {r0}
- bx r0
- .align 2, 0
-_08083500: .4byte gLinkType
-_08083504: .4byte 0x00001133
-_08083508: .4byte gBattleTypeFlags
- thumb_func_end sub_80834E4
-
- thumb_func_start sub_808350C
-sub_808350C: @ 808350C
- push {lr}
- ldr r0, _0808352C @ =gScriptResult
- movs r2, 0
- strh r2, [r0]
- ldr r1, _08083530 @ =gLinkType
- ldr r3, _08083534 @ =0x00003311
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _08083538 @ =gBattleTypeFlags
- strh r2, [r0]
- movs r0, 0x2
- movs r1, 0x4
- bl sub_8082CD4
- pop {r0}
- bx r0
- .align 2, 0
-_0808352C: .4byte gScriptResult
-_08083530: .4byte gLinkType
-_08083534: .4byte 0x00003311
-_08083538: .4byte gBattleTypeFlags
- thumb_func_end sub_808350C
-
- thumb_func_start sub_808353C
-sub_808353C: @ 808353C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0808355C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08083560
- cmp r0, 0x1
- beq _080835BC
- b _080835CE
- .align 2, 0
-_0808355C: .4byte gTasks
-_08083560:
- ldr r0, _08083594 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _08083586
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- cmp r1, r0
- bge _08083586
- ldr r2, _08083598 @ =gLinkPlayers
-_08083578:
- ldrh r4, [r2, 0x1A]
- cmp r4, 0x1
- beq _0808359C
- adds r2, 0x1C
- adds r1, 0x1
- cmp r1, r0
- blt _08083578
-_08083586:
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
- b _080835CE
- .align 2, 0
-_08083594: .4byte gScriptResult
-_08083598: .4byte gLinkPlayers
-_0808359C:
- ldr r1, _080835B4 @ =gScriptResult
- movs r0, 0x7
- strh r0, [r1]
- bl sub_8008480
- ldr r1, _080835B8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x8]
- b _080835CE
- .align 2, 0
-_080835B4: .4byte gScriptResult
-_080835B8: .4byte gTasks
-_080835BC:
- ldr r0, _080835D4 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080835CE
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
-_080835CE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080835D4: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end sub_808353C
-
- thumb_func_start sub_80835D8
-sub_80835D8: @ 80835D8
- push {r4,lr}
- ldr r4, _0808360C @ =sub_808353C
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- bne _08083604
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08083610 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
-_08083604:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808360C: .4byte sub_808353C
-_08083610: .4byte gTasks
- thumb_func_end sub_80835D8
-
- thumb_func_start sub_8083614
-sub_8083614: @ 8083614
- push {lr}
- ldr r1, _08083630 @ =gLinkType
- ldr r2, _08083634 @ =0x00004411
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08083638 @ =gBattleTypeFlags
- movs r0, 0
- strh r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- bl sub_8082CD4
- pop {r0}
- bx r0
- .align 2, 0
-_08083630: .4byte gLinkType
-_08083634: .4byte 0x00004411
-_08083638: .4byte gBattleTypeFlags
- thumb_func_end sub_8083614
-
- thumb_func_start sub_808363C
-sub_808363C: @ 808363C
- push {lr}
- ldr r1, _08083658 @ =gLinkType
- ldr r2, _0808365C @ =0x00006601
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08083660 @ =gBattleTypeFlags
- movs r0, 0
- strh r0, [r1]
- movs r0, 0x4
- movs r1, 0x4
- bl sub_8082CD4
- pop {r0}
- bx r0
- .align 2, 0
-_08083658: .4byte gLinkType
-_0808365C: .4byte 0x00006601
-_08083660: .4byte gBattleTypeFlags
- thumb_func_end sub_808363C
-
- thumb_func_start sub_8083664
-sub_8083664: @ 8083664
- push {lr}
- ldr r0, _08083678 @ =sub_8083710
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _0808367C
- movs r0, 0xFF
- b _08083700
- .align 2, 0
-_08083678: .4byte sub_8083710
-_0808367C:
- ldr r0, _08083690 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x4
- bhi _080836F4
- lsls r0, 2
- ldr r1, _08083694 @ =_08083698
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08083690: .4byte gSpecialVar_0x8004
-_08083694: .4byte _08083698
- .align 2, 0
-_08083698:
- .4byte _080836AC
- .4byte _080836BC
- .4byte _080836DC
- .4byte _080836EC
- .4byte _080836CC
-_080836AC:
- ldr r1, _080836B4 @ =gLinkType
- ldr r2, _080836B8 @ =0x00002233
- b _080836F0
- .align 2, 0
-_080836B4: .4byte gLinkType
-_080836B8: .4byte 0x00002233
-_080836BC:
- ldr r1, _080836C4 @ =gLinkType
- ldr r2, _080836C8 @ =0x00002244
- b _080836F0
- .align 2, 0
-_080836C4: .4byte gLinkType
-_080836C8: .4byte 0x00002244
-_080836CC:
- ldr r1, _080836D4 @ =gLinkType
- ldr r2, _080836D8 @ =0x00002255
- b _080836F0
- .align 2, 0
-_080836D4: .4byte gLinkType
-_080836D8: .4byte 0x00002255
-_080836DC:
- ldr r1, _080836E4 @ =gLinkType
- ldr r2, _080836E8 @ =0x00001111
- b _080836F0
- .align 2, 0
-_080836E4: .4byte gLinkType
-_080836E8: .4byte 0x00001111
-_080836EC:
- ldr r1, _08083704 @ =gLinkType
- ldr r2, _08083708 @ =0x00003322
-_080836F0:
- adds r0, r2, 0
- strh r0, [r1]
-_080836F4:
- ldr r0, _0808370C @ =sub_8083710
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
-_08083700:
- pop {r1}
- bx r1
- .align 2, 0
-_08083704: .4byte gLinkType
-_08083708: .4byte 0x00003322
-_0808370C: .4byte sub_8083710
- thumb_func_end sub_8083664
-
- thumb_func_start sub_8083710
-sub_8083710: @ 8083710
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0808373C @ =gTasks + 0x8
- adds r4, r1, r0
- movs r3, 0
- ldrsh r2, [r4, r3]
- cmp r2, 0
- bne _08083744
- bl OpenLink
- bl ResetLinkPlayers
- ldr r0, _08083740 @ =sub_8083C50
- movs r1, 0x50
- bl CreateTask
- b _08083750
- .align 2, 0
-_0808373C: .4byte gTasks + 0x8
-_08083740: .4byte sub_8083C50
-_08083744:
- cmp r2, 0x9
- ble _08083750
- subs r0, 0x8
- adds r0, r1, r0
- ldr r1, _0808375C @ =sub_8083760
- str r1, [r0]
-_08083750:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808375C: .4byte sub_8083760
- thumb_func_end sub_8083710
-
- thumb_func_start sub_8083760
-sub_8083760: @ 8083760
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _080837A6
- bl IsLinkMaster
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08083798
- ldr r0, _08083790 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08083794 @ =sub_80837B4
- b _080837A4
- .align 2, 0
-_08083790: .4byte gTasks
-_08083794: .4byte sub_80837B4
-_08083798:
- ldr r0, _080837AC @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080837B0 @ =sub_80837EC
-_080837A4:
- str r0, [r1]
-_080837A6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080837AC: .4byte gTasks
-_080837B0: .4byte sub_80837EC
- thumb_func_end sub_8083760
-
- thumb_func_start sub_80837B4
-sub_80837B4: @ 80837B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_800820C
- adds r4, r0, 0
- bl GetLinkPlayerCount_2
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080837DE
- bl sub_8007F4C
- ldr r0, _080837E4 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080837E8 @ =sub_80837EC
- str r0, [r1]
-_080837DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080837E4: .4byte gTasks
-_080837E8: .4byte sub_80837EC
- thumb_func_end sub_80837B4
-
- thumb_func_start sub_80837EC
-sub_80837EC: @ 80837EC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808381C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08083814
- bl IsLinkPlayerDataExchangeComplete
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08083814
- bl sub_800826C
- bl sub_8007B14
- adds r0, r4, 0
- bl DestroyTask
-_08083814:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808381C: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end sub_80837EC
-
- thumb_func_start sub_8083820
-sub_8083820: @ 8083820
- push {lr}
- bl InitSaveDialog
- pop {r0}
- bx r0
- thumb_func_end sub_8083820
-
- thumb_func_start sub_808382C
-sub_808382C: @ 808382C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08083850 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _08083846
- b _08083940
-_08083846:
- lsls r0, 2
- ldr r1, _08083854 @ =_08083858
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08083850: .4byte gTasks
-_08083854: .4byte _08083858
- .align 2, 0
-_08083858:
- .4byte _08083870
- .4byte _08083890
- .4byte _080838A0
- .4byte _080838B0
- .4byte _080838B6
- .4byte _080838CC
-_08083870:
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _08083888 @ =gLinkType
- ldr r2, _0808388C @ =0x00002211
- adds r0, r2, 0
- strh r0, [r1]
- bl ClearLinkCallback_2
- b _080838BE
- .align 2, 0
-_08083888: .4byte gLinkType
-_0808388C: .4byte 0x00002211
-_08083890:
- ldr r0, _0808389C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- b _080838BA
- .align 2, 0
-_0808389C: .4byte gPaletteFade
-_080838A0:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _08083940
- b _080838BE
-_080838B0:
- bl sub_800832C
- b _080838BE
-_080838B6:
- ldr r0, _080838C8 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
-_080838BA:
- cmp r0, 0
- bne _08083940
-_080838BE:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08083940
- .align 2, 0
-_080838C8: .4byte gReceivedRemoteLinkPlayers
-_080838CC:
- ldr r0, _080838E4 @ =gLinkPlayers
- ldr r0, [r0, 0x4]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080838E8
- movs r0, 0xE6
- lsls r0, 1
- bl current_map_music_set__default_for_battle
- b _080838EE
- .align 2, 0
-_080838E4: .4byte gLinkPlayers
-_080838E8:
- ldr r0, _08083900 @ =0x000001cb
- bl current_map_music_set__default_for_battle
-_080838EE:
- ldr r0, _08083904 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x2
- beq _08083918
- cmp r0, 0x2
- bgt _08083908
- cmp r0, 0x1
- beq _0808390E
- b _0808392E
- .align 2, 0
-_08083900: .4byte 0x000001cb
-_08083904: .4byte gSpecialVar_0x8004
-_08083908:
- cmp r0, 0x5
- beq _08083924
- b _0808392E
-_0808390E:
- ldr r1, _08083914 @ =gBattleTypeFlags
- movs r0, 0xA
- b _0808392C
- .align 2, 0
-_08083914: .4byte gBattleTypeFlags
-_08083918:
- ldr r1, _08083920 @ =gBattleTypeFlags
- movs r0, 0xB
- b _0808392C
- .align 2, 0
-_08083920: .4byte gBattleTypeFlags
-_08083924:
- bl ReducePlayerPartyToThree
- ldr r1, _08083948 @ =gBattleTypeFlags
- movs r0, 0x4B
-_0808392C:
- strh r0, [r1]
-_0808392E:
- ldr r0, _0808394C @ =sub_800E7C4
- bl SetMainCallback2
- ldr r1, _08083950 @ =gMain
- ldr r0, _08083954 @ =sub_8083958
- str r0, [r1, 0x8]
- adds r0, r5, 0
- bl DestroyTask
-_08083940:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08083948: .4byte gBattleTypeFlags
-_0808394C: .4byte sub_800E7C4
-_08083950: .4byte gMain
-_08083954: .4byte sub_8083958
- thumb_func_end sub_808382C
-
- thumb_func_start sub_8083958
-sub_8083958: @ 8083958
- push {lr}
- bl call_map_music_set_to_zero
- bl LoadPlayerParty
- bl SavePlayerBag
- bl sub_810FEFC
- ldr r0, _08083990 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x5
- beq _0808397E
- ldr r0, _08083994 @ =gUnknown_03004860
- ldrb r1, [r0]
- movs r0, 0x1
- eors r0, r1
- bl UpdateLinkBattleRecords
-_0808397E:
- ldr r0, _08083998 @ =gMain
- ldr r1, _0808399C @ =sub_805465C
- str r1, [r0, 0x8]
- ldr r0, _080839A0 @ =sub_8071B28
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08083990: .4byte gSpecialVar_0x8004
-_08083994: .4byte gUnknown_03004860
-_08083998: .4byte gMain
-_0808399C: .4byte sub_805465C
-_080839A0: .4byte sub_8071B28
- thumb_func_end sub_8083958
-
- thumb_func_start sub_80839A4
-sub_80839A4: @ 80839A4
- push {lr}
- ldr r0, _080839CC @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080839B8
- cmp r1, 0x5
- bne _080839C0
-_080839B8:
- bl LoadPlayerParty
- bl SavePlayerBag
-_080839C0:
- movs r0, 0x7F
- bl copy_saved_warp2_bank_and_enter_x_to_warp1
- pop {r0}
- bx r0
- .align 2, 0
-_080839CC: .4byte gSpecialVar_0x8004
- thumb_func_end sub_80839A4
-
- thumb_func_start sub_80839D0
-sub_80839D0: @ 80839D0
- push {lr}
- bl sub_805559C
- pop {r0}
- bx r0
- thumb_func_end sub_80839D0
-
- thumb_func_start sub_80839DC
-sub_80839DC: @ 80839DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08083A00 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _08083A20
- cmp r0, 0x1
- bgt _08083A04
- cmp r0, 0
- beq _08083A0E
- b _08083A7E
- .align 2, 0
-_08083A00: .4byte gTasks
-_08083A04:
- cmp r0, 0x2
- beq _08083A40
- cmp r0, 0x3
- beq _08083A68
- b _08083A7E
-_08083A0E:
- ldr r0, _08083A1C @ =gUnknown_081A490C
- bl ShowFieldMessage
- movs r0, 0x1
- strh r0, [r5, 0x8]
- b _08083A7E
- .align 2, 0
-_08083A1C: .4byte gUnknown_081A490C
-_08083A20:
- bl IsFieldMessageBoxHidden
- lsls r0, 24
- cmp r0, 0
- beq _08083A7E
- bl sub_8055574
- ldr r0, _08083A3C @ =gSpecialVar_0x8005
- ldrb r0, [r0]
- bl sub_8007270
- movs r0, 0x2
- strh r0, [r5, 0x8]
- b _08083A7E
- .align 2, 0
-_08083A3C: .4byte gSpecialVar_0x8005
-_08083A40:
- bl sub_80554F8
- cmp r0, 0x1
- beq _08083A52
- cmp r0, 0x1
- ble _08083A7E
- cmp r0, 0x2
- beq _08083A62
- b _08083A7E
-_08083A52:
- bl HideFieldMessageBox
- movs r0, 0
- strh r0, [r5, 0x8]
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
- b _08083A7E
-_08083A62:
- movs r0, 0x3
- strh r0, [r5, 0x8]
- b _08083A7E
-_08083A68:
- bl sub_8055588
- bl HideFieldMessageBox
- bl MenuZeroFillScreen
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_08083A7E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80839DC
-
- thumb_func_start sub_8083A84
-sub_8083A84: @ 8083A84
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _08083AA8 @ =sub_80839DC
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- adds r2, r5, 0
- bl SetTaskFuncWithFollowupFunc
- bl ScriptContext1_Stop
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08083AA8: .4byte sub_80839DC
- thumb_func_end sub_8083A84
-
- thumb_func_start sub_8083AAC
-sub_8083AAC: @ 8083AAC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08083AD0 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08083AF0
- cmp r0, 0x1
- bgt _08083AD4
- cmp r0, 0
- beq _08083ADE
- b _08083B34
- .align 2, 0
-_08083AD0: .4byte gTasks
-_08083AD4:
- cmp r0, 0x2
- beq _08083B04
- cmp r0, 0x3
- beq _08083B20
- b _08083B34
-_08083ADE:
- bl ScriptContext2_Enable
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- bl ClearLinkCallback_2
- b _08083B14
-_08083AF0:
- ldr r0, _08083B00 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08083B34
- b _08083B14
- .align 2, 0
-_08083B00: .4byte gPaletteFade
-_08083B04:
- ldr r1, _08083B1C @ =gUnknown_020297D8
- movs r0, 0
- strb r0, [r1]
- strb r0, [r1, 0x1]
- bl m4aMPlayAllStop
- bl sub_800832C
-_08083B14:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08083B34
- .align 2, 0
-_08083B1C: .4byte gUnknown_020297D8
-_08083B20:
- ldr r0, _08083B3C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08083B34
- ldr r0, _08083B40 @ =sub_8047CD8
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_08083B34:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08083B3C: .4byte gReceivedRemoteLinkPlayers
-_08083B40: .4byte sub_8047CD8
- thumb_func_end sub_8083AAC
-
- thumb_func_start sub_8083B44
-sub_8083B44: @ 8083B44
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8083B6C
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8083B44
-
- thumb_func_start sub_8083B5C
-sub_8083B5C: @ 8083B5C
- push {lr}
- ldr r0, _08083B68 @ =sub_8083B44
- bl sub_8083A84
- pop {r0}
- bx r0
- .align 2, 0
-_08083B68: .4byte sub_8083B44
- thumb_func_end sub_8083B5C
-
- thumb_func_start sub_8083B6C
-sub_8083B6C: @ 8083B6C
- push {lr}
- ldr r0, _08083B7C @ =sub_8083AAC
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08083B7C: .4byte sub_8083AAC
- thumb_func_end sub_8083B6C
-
- thumb_func_start sub_8083B80
-sub_8083B80: @ 8083B80
- push {lr}
- bl sub_8083B6C
- bl ScriptContext1_Stop
- pop {r0}
- bx r0
- thumb_func_end sub_8083B80
-
- thumb_func_start sub_8083B90
-sub_8083B90: @ 8083B90
- push {lr}
- ldr r0, _08083BA4 @ =gLinkType
- ldr r2, _08083BA8 @ =0x00002211
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _08083BAC @ =sub_808382C
- bl sub_8083A84
- pop {r0}
- bx r0
- .align 2, 0
-_08083BA4: .4byte gLinkType
-_08083BA8: .4byte 0x00002211
-_08083BAC: .4byte sub_808382C
- thumb_func_end sub_8083B90
-
- thumb_func_start unref_sub_8083BB0
-unref_sub_8083BB0: @ 8083BB0
- push {r4,lr}
- ldr r4, _08083BD4 @ =sub_80839DC
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08083BD8 @ =Task_RecordMixing_Main
- adds r1, r4, 0
- bl SetTaskFuncWithFollowupFunc
- bl ScriptContext1_Stop
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08083BD4: .4byte sub_80839DC
-_08083BD8: .4byte Task_RecordMixing_Main
- thumb_func_end unref_sub_8083BB0
-
- thumb_func_start sub_8083BDC
-sub_8083BDC: @ 8083BDC
- push {lr}
- ldr r0, _08083BEC @ =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r1, _08083BF0 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl sub_8093130
- pop {r0}
- bx r0
- .align 2, 0
-_08083BEC: .4byte gSpecialVar_0x8006
-_08083BF0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_8083BDC
-
- thumb_func_start sub_8083BF4
-sub_8083BF4: @ 8083BF4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08083C34 @ =gSpecialVar_0x8006
- strh r4, [r0]
- ldr r0, _08083C38 @ =gStringVar1
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- ldr r2, _08083C3C @ =gLinkPlayers + 0x8
- adds r1, r2
- bl StringCopy
- adds r0, r4, 0
- bl sub_80934C4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08083C48
- ldr r0, _08083C40 @ =gStringVar2
- ldr r2, _08083C44 @ =gTrainerCardColorNames
- subs r1, 0x1
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- movs r0, 0x1
- b _08083C4A
- .align 2, 0
-_08083C34: .4byte gSpecialVar_0x8006
-_08083C38: .4byte gStringVar1
-_08083C3C: .4byte gLinkPlayers + 0x8
-_08083C40: .4byte gStringVar2
-_08083C44: .4byte gTrainerCardColorNames
-_08083C48:
- movs r0, 0
-_08083C4A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8083BF4
-
- thumb_func_start sub_8083C50
-sub_8083C50: @ 8083C50
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08083C98 @ =gTasks
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- movs r0, 0x96
- lsls r0, 17
- cmp r1, r0
- ble _08083C82
- bl CloseLink
- ldr r0, _08083C9C @ =CB2_LinkError
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08083C82:
- ldr r0, _08083CA0 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _08083C90
- adds r0, r5, 0
- bl DestroyTask
-_08083C90:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08083C98: .4byte gTasks
-_08083C9C: .4byte CB2_LinkError
-_08083CA0: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end sub_8083C50
-
- thumb_func_start sub_8083CA4
-sub_8083CA4: @ 8083CA4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08083CC4 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08083CBC
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_08083CBC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08083CC4: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end sub_8083CA4
-
- thumb_func_start unref_sub_8083CC8
-unref_sub_8083CC8: @ 8083CC8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_800832C
- ldr r1, _08083CE8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08083CEC @ =sub_8083CA4
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08083CE8: .4byte gTasks
-_08083CEC: .4byte sub_8083CA4
- thumb_func_end unref_sub_8083CC8
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/contest.s b/asm/contest.s
index 4a85f3d16..c5dfe3e2e 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -6904,7 +6904,7 @@ sub_80AE9FC: @ 80AE9FC
adds r0, r5, 0
mov r1, r8
adds r2, r6, 0
- bl species_and_otid_get_pal
+ bl GetMonSpritePalFromOtIdPersonality
movs r1, 0x90
lsls r1, 1
movs r2, 0x20
diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s
index 93dd26eee..b91a9665b 100644
--- a/asm/contest_link_80C2020.s
+++ b/asm/contest_link_80C2020.s
@@ -1361,7 +1361,7 @@ _080C2B14:
adds r0, r6, 0
ldr r1, [sp, 0xC]
adds r2, r4, 0
- bl sub_80409C8
+ bl GetMonSpritePalStructFromOtIdPersonality
adds r4, r0, 0
bl LoadCompressedObjectPalette
adds r0, r6, 0
@@ -1601,7 +1601,7 @@ _080C2D42:
lsls r0, 16
lsrs r0, 16
movs r1, 0x2
- bl GetNationalPokedexFlag
+ bl GetSetPokedexFlag
adds r5, 0x40
subs r4, 0x1
cmp r4, 0
diff --git a/asm/cute_sketch.s b/asm/cute_sketch.s
index afacc19f6..14c28327d 100644
--- a/asm/cute_sketch.s
+++ b/asm/cute_sketch.s
@@ -6,445 +6,6 @@
.text
- thumb_func_start sub_80FC7A0
-sub_80FC7A0: @ 80FC7A0
- push {lr}
- ldr r2, _080FC7E8 @ =gUnknown_03005DEC
- ldr r1, [r0, 0x4]
- str r1, [r2]
- ldr r2, _080FC7EC @ =gUnknown_03005E00
- ldrb r1, [r0, 0x1F]
- strb r1, [r2]
- ldr r2, _080FC7F0 @ =gUnknown_03005DE8
- ldrb r1, [r0, 0x19]
- strb r1, [r2]
- ldr r2, _080FC7F4 @ =gUnknown_03005DFC
- ldrb r1, [r0, 0x1A]
- strb r1, [r2]
- ldr r2, _080FC7F8 @ =gUnknown_03005DF8
- ldrb r1, [r0, 0x1B]
- strb r1, [r2]
- ldr r2, _080FC7FC @ =gUnknown_03005DF0
- ldrb r1, [r0, 0x1C]
- strb r1, [r2]
- ldr r2, _080FC800 @ =gUnknown_03005E04
- ldrb r1, [r0, 0x1D]
- strb r1, [r2]
- ldr r2, _080FC804 @ =gUnknown_03005DF4
- ldrb r1, [r0, 0x1E]
- strb r1, [r2]
- ldrb r0, [r0]
- subs r0, 0x2
- cmp r0, 0x22
- bls _080FC7DC
- b _080FC928
-_080FC7DC:
- lsls r0, 2
- ldr r1, _080FC808 @ =_080FC80C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FC7E8: .4byte gUnknown_03005DEC
-_080FC7EC: .4byte gUnknown_03005E00
-_080FC7F0: .4byte gUnknown_03005DE8
-_080FC7F4: .4byte gUnknown_03005DFC
-_080FC7F8: .4byte gUnknown_03005DF8
-_080FC7FC: .4byte gUnknown_03005DF0
-_080FC800: .4byte gUnknown_03005E04
-_080FC804: .4byte gUnknown_03005DF4
-_080FC808: .4byte _080FC80C
- .align 2, 0
-_080FC80C:
- .4byte _080FC898
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC8F8
- .4byte _080FC928
- .4byte _080FC89E
- .4byte _080FC8A4
- .4byte _080FC8B8
- .4byte _080FC8CA
- .4byte _080FC928
- .4byte _080FC8E0
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC8E6
- .4byte _080FC8C4
- .4byte _080FC8EC
- .4byte _080FC8F2
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC904
-_080FC898:
- bl sub_80FCAA4
- b _080FC928
-_080FC89E:
- bl sub_80FCB5C
- b _080FC928
-_080FC8A4:
- bl sub_80FCD54
- ldr r0, _080FC8B4 @ =gUnknown_03005E00
- ldrb r0, [r0]
- bl sub_80FCC18
- b _080FC928
- .align 2, 0
-_080FC8B4: .4byte gUnknown_03005E00
-_080FC8B8:
- bl sub_80FCD54
- bl sub_80FCEA4
- bl sub_80FCCBC
-_080FC8C4:
- bl sub_80FCEA4
- b _080FC928
-_080FC8CA:
- bl sub_80FCD54
- bl sub_80FD06C
- bl sub_80FD06C
- bl sub_80FD114
- bl sub_80FCCBC
- b _080FC928
-_080FC8E0:
- bl sub_80FCF3C
- b _080FC928
-_080FC8E6:
- bl sub_80FCD54
- b _080FC928
-_080FC8EC:
- bl sub_80FD06C
- b _080FC928
-_080FC8F2:
- bl sub_80FD114
- b _080FC928
-_080FC8F8:
- bl sub_80FCAC4
- movs r0, 0x3
- bl sub_80FC92C
- b _080FC928
-_080FC904:
- bl sub_80FCD54
- bl sub_80FD06C
- bl sub_80FD114
- bl sub_80FCCBC
- bl sub_80FCB5C
- bl sub_80FCB5C
- movs r0, 0x2
- bl sub_80FC92C
- movs r0, 0x4
- bl sub_80FC9E4
-_080FC928:
- pop {r0}
- bx r0
- thumb_func_end sub_80FC7A0
-
- thumb_func_start sub_80FC92C
-sub_80FC92C: @ 80FC92C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r2, 0
- ldr r0, _080FC9CC @ =gUnknown_03005DF0
- mov r8, r0
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FC9BE
- ldr r1, _080FC9D0 @ =gUnknown_03005DF8
- mov r12, r1
- ldr r3, _080FC9D4 @ =gUnknown_03005E04
- mov r10, r3
- ldr r0, _080FC9D8 @ =gUnknown_03005DE8
- mov r9, r0
-_080FC952:
- ldr r1, _080FC9DC @ =gUnknown_03005DFC
- ldrb r0, [r1]
- adds r0, r2
- mov r3, r10
- ldrb r1, [r3]
- muls r0, r1
- lsls r0, 1
- ldr r3, _080FC9E0 @ =gUnknown_03005DEC
- ldr r1, [r3]
- adds r1, r0
- mov r3, r9
- ldrb r0, [r3]
- lsls r0, 1
- adds r3, r1, r0
- movs r4, 0
- adds r5, r2, 0x1
- mov r0, r12
- ldrb r0, [r0]
- cmp r4, r0
- bcs _080FC9B2
- movs r6, 0x80
- lsls r6, 8
-_080FC97E:
- ldrh r1, [r3]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _080FC9A2
- movs r0, 0x1F
- ands r0, r1
- adds r0, r7
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1F
- bls _080FC998
- movs r2, 0x1F
-_080FC998:
- lsls r0, r2, 10
- lsls r1, r2, 5
- orrs r0, r1
- orrs r0, r2
- strh r0, [r3]
-_080FC9A2:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r3, 0x2
- mov r1, r12
- ldrb r1, [r1]
- cmp r4, r1
- bcc _080FC97E
-_080FC9B2:
- lsls r0, r5, 24
- lsrs r2, r0, 24
- mov r3, r8
- ldrb r3, [r3]
- cmp r2, r3
- bcc _080FC952
-_080FC9BE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC9CC: .4byte gUnknown_03005DF0
-_080FC9D0: .4byte gUnknown_03005DF8
-_080FC9D4: .4byte gUnknown_03005E04
-_080FC9D8: .4byte gUnknown_03005DE8
-_080FC9DC: .4byte gUnknown_03005DFC
-_080FC9E0: .4byte gUnknown_03005DEC
- thumb_func_end sub_80FC92C
-
- thumb_func_start sub_80FC9E4
-sub_80FC9E4: @ 80FC9E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r2, 0
- ldr r0, _080FCA8C @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FCA7C
- ldr r1, _080FCA90 @ =gUnknown_03005DF8
- mov r10, r1
-_080FCA02:
- ldr r3, _080FCA94 @ =gUnknown_03005DFC
- ldrb r0, [r3]
- adds r0, r2
- ldr r3, _080FCA98 @ =gUnknown_03005E04
- ldrb r1, [r3]
- muls r0, r1
- lsls r0, 1
- ldr r3, _080FCA9C @ =gUnknown_03005DEC
- ldr r1, [r3]
- adds r1, r0
- ldr r3, _080FCAA0 @ =gUnknown_03005DE8
- ldrb r0, [r3]
- lsls r0, 1
- adds r3, r1, r0
- movs r5, 0
- adds r7, r2, 0x1
- mov r0, r10
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080FCA70
- movs r1, 0x80
- lsls r1, 8
- mov r9, r1
- movs r0, 0x1F
- mov r12, r0
- mov r1, r8
- subs r6, r0, r1
-_080FCA38:
- ldrh r1, [r3]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080FCA60
- movs r4, 0x1F
- mov r2, r12
- ands r2, r1
- cmp r2, r6
- ble _080FCA56
- mov r1, r8
- lsrs r0, r1, 1
- subs r0, r4, r0
- lsls r0, 24
- lsrs r2, r0, 24
-_080FCA56:
- lsls r0, r2, 10
- lsls r1, r2, 5
- orrs r0, r1
- orrs r0, r2
- strh r0, [r3]
-_080FCA60:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r3, 0x2
- mov r0, r10
- ldrb r0, [r0]
- cmp r5, r0
- bcc _080FCA38
-_080FCA70:
- lsls r0, r7, 24
- lsrs r2, r0, 24
- ldr r1, _080FCA8C @ =gUnknown_03005DF0
- ldrb r1, [r1]
- cmp r2, r1
- bcc _080FCA02
-_080FCA7C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCA8C: .4byte gUnknown_03005DF0
-_080FCA90: .4byte gUnknown_03005DF8
-_080FCA94: .4byte gUnknown_03005DFC
-_080FCA98: .4byte gUnknown_03005E04
-_080FCA9C: .4byte gUnknown_03005DEC
-_080FCAA0: .4byte gUnknown_03005DE8
- thumb_func_end sub_80FC9E4
-
- thumb_func_start sub_80FCAA4
-sub_80FCAA4: @ 80FCAA4
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _080FCAC0 @ =0x00000c7f
-_080FCAAA:
- lsls r0, r4, 16
- lsrs r0, 16
- bl sub_80FD1C8
- adds r4, 0x1
- cmp r4, r5
- bls _080FCAAA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCAC0: .4byte 0x00000c7f
- thumb_func_end sub_80FCAA4
-
- thumb_func_start sub_80FCAC4
-sub_80FCAC4: @ 80FCAC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r2, 0
- ldr r0, _080FCB44 @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FCB36
- ldr r0, _080FCB48 @ =gUnknown_03005DEC
- mov r8, r0
- ldr r3, _080FCB4C @ =gUnknown_03005DF8
-_080FCADC:
- ldr r0, _080FCB50 @ =gUnknown_03005DFC
- ldrb r1, [r0]
- adds r1, r2
- ldr r0, _080FCB54 @ =gUnknown_03005E04
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r4, r8
- ldr r1, [r4]
- adds r1, r0
- ldr r0, _080FCB58 @ =gUnknown_03005DE8
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- movs r5, 0
- adds r6, r2, 0x1
- ldrb r0, [r3]
- cmp r5, r0
- bcs _080FCB2A
- movs r0, 0x80
- lsls r0, 8
- adds r7, r0, 0
-_080FCB08:
- ldrh r0, [r4]
- ands r0, r7
- cmp r0, 0
- bne _080FCB1C
- adds r0, r4, 0
- str r3, [sp]
- bl sub_80FD39C
- strh r0, [r4]
- ldr r3, [sp]
-_080FCB1C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x2
- ldrb r0, [r3]
- cmp r5, r0
- bcc _080FCB08
-_080FCB2A:
- lsls r0, r6, 24
- lsrs r2, r0, 24
- ldr r0, _080FCB44 @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FCADC
-_080FCB36:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCB44: .4byte gUnknown_03005DF0
-_080FCB48: .4byte gUnknown_03005DEC
-_080FCB4C: .4byte gUnknown_03005DF8
-_080FCB50: .4byte gUnknown_03005DFC
-_080FCB54: .4byte gUnknown_03005E04
-_080FCB58: .4byte gUnknown_03005DE8
- thumb_func_end sub_80FCAC4
thumb_func_start sub_80FCB5C
sub_80FCB5C: @ 80FCB5C
diff --git a/asm/daycare.s b/asm/daycare.s
deleted file mode 100644
index a0ea9124a..000000000
--- a/asm/daycare.s
+++ /dev/null
@@ -1,2399 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80416A0
-sub_80416A0: @ 80416A0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- lsls r0, r4, 2
- mov r8, r0
- add r4, r8
- lsls r4, 4
- adds r4, r5, r4
- adds r0, r4, 0
- bl GetLevelFromBoxMonExp
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- movs r0, 0x88
- lsls r0, 1
- adds r5, r0
- add r5, r8
- ldr r1, [r5]
- adds r0, r4, 0
- bl Daycare_GetLevelAfterSteps
- lsls r0, 24
- lsrs r0, 24
- subs r0, r6
- lsls r0, 24
- lsrs r0, 24
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80416A0
-
- thumb_func_start sub_80416E8
-sub_80416E8: @ 80416E8
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl sub_80416A0
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r6, r0
- ldr r1, _08041720 @ =gStringVar1
- adds r0, r6, 0
- bl GetBoxMonNick
- ldr r0, _08041724 @ =gStringVar2
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08041720: .4byte gStringVar1
-_08041724: .4byte gStringVar2
- thumb_func_end sub_80416E8
-
- thumb_func_start sub_8041728
-sub_8041728: @ 8041728
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl sub_80416A0
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r6, r0
- ldr r1, _08041768 @ =gStringVar1
- adds r0, r6, 0
- bl GetBoxMonNick
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- adds r4, 0x64
- ldr r0, _0804176C @ =gStringVar2
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08041768: .4byte gStringVar1
-_0804176C: .4byte gStringVar2
- thumb_func_end sub_8041728
-
- thumb_func_start sub_8041770
-sub_8041770: @ 8041770
- push {lr}
- ldr r0, _08041784 @ =gSaveBlock1 + 0x2F9C
- ldr r1, _08041788 @ =gSpecialVar_0x8004
- ldrb r1, [r1]
- bl sub_8041728
- ldr r1, _0804178C @ =gSpecialVar_0x8005
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08041784: .4byte gSaveBlock1 + 0x2F9C
-_08041788: .4byte gSpecialVar_0x8004
-_0804178C: .4byte gSpecialVar_0x8005
- thumb_func_end sub_8041770
-
- thumb_func_start sub_8041790
-sub_8041790: @ 8041790
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _080417AC @ =gSaveBlock1
- ldr r1, _080417B0 @ =0x000030ac
- adds r3, r2, r1
- ldr r1, [r3]
- adds r1, r0
- str r1, [r3]
- ldr r1, _080417B4 @ =0x000030b0
- adds r2, r1
- ldr r1, [r2]
- adds r1, r0
- str r1, [r2]
- bx lr
- .align 2, 0
-_080417AC: .4byte gSaveBlock1
-_080417B0: .4byte 0x000030ac
-_080417B4: .4byte 0x000030b0
- thumb_func_end sub_8041790
-
- thumb_func_start sub_80417B8
-sub_80417B8: @ 80417B8
- push {r4,r5,lr}
- ldr r5, _080417D8 @ =gSpecialVar_0x8004
- ldrh r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- ldr r4, _080417DC @ =gSaveBlock1 + 0x2F9C
- adds r0, r4
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- bne _080417E0
- movs r0, 0
- b _080417EC
- .align 2, 0
-_080417D8: .4byte gSpecialVar_0x8004
-_080417DC: .4byte gSaveBlock1 + 0x2F9C
-_080417E0:
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_80416E8
- lsls r0, 24
- lsrs r0, 24
-_080417EC:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80417B8
-
- thumb_func_start sub_80417F4
-sub_80417F4: @ 80417F4
- push {lr}
- movs r3, 0
- movs r2, 0x7
- adds r1, r0, 0
- adds r1, 0x2B
-_080417FE:
- strb r3, [r1]
- subs r1, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _080417FE
- adds r2, r0, 0
- adds r2, 0x2C
- movs r3, 0
- adds r1, r0, 0
- adds r1, 0x36
-_08041812:
- strb r3, [r1]
- subs r1, 0x1
- cmp r1, r2
- bge _08041812
- bl ClearMailStruct
- pop {r0}
- bx r0
- thumb_func_end sub_80417F4
-
- thumb_func_start unref_sub_8041824
-unref_sub_8041824: @ 8041824
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
-_0804182A:
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 4
- adds r0, r6, r0
- bl ZeroBoxMonData
- movs r1, 0x88
- lsls r1, 1
- adds r0, r6, r1
- adds r0, r4
- movs r4, 0
- str r4, [r0]
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 3
- adds r0, 0xA0
- adds r0, r6, r0
- bl sub_80417F4
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _0804182A
- movs r2, 0x8C
- lsls r2, 1
- adds r0, r6, r2
- movs r1, 0
- strh r4, [r0]
- adds r2, 0x2
- adds r0, r6, r2
- strb r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_8041824
-
- thumb_func_start sub_8041870
-sub_8041870: @ 8041870
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r0, 0
- mov r8, r0
- ldr r0, _0804189C @ =gEvolutionTable
- mov r12, r0
-_08041882:
- movs r7, 0
- movs r6, 0x1
- movs r4, 0x80
- lsls r4, 9
- movs r5, 0x28
- mov r3, r12
- adds r3, 0x28
-_08041890:
- movs r1, 0
- ldrh r0, [r3, 0x4]
- cmp r0, r2
- bne _080418A0
- lsrs r2, r4, 16
- b _080418CC
- .align 2, 0
-_0804189C: .4byte gEvolutionTable
-_080418A0:
- adds r1, 0x1
- cmp r1, 0x4
- bgt _080418B6
- lsls r0, r1, 3
- adds r0, r5
- add r0, r12
- ldrh r0, [r0, 0x4]
- cmp r0, r2
- bne _080418A0
- lsrs r2, r4, 16
- movs r7, 0x1
-_080418B6:
- cmp r7, 0
- bne _080418CC
- movs r0, 0x80
- lsls r0, 9
- adds r4, r0
- adds r5, 0x28
- adds r3, 0x28
- adds r6, 0x1
- ldr r0, _080418EC @ =0x0000019b
- cmp r6, r0
- ble _08041890
-_080418CC:
- movs r0, 0xCE
- lsls r0, 1
- cmp r6, r0
- beq _080418DE
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x4
- ble _08041882
-_080418DE:
- adds r0, r2, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080418EC: .4byte 0x0000019b
- thumb_func_end sub_8041870
-
- thumb_func_start sub_80418F0
-sub_80418F0: @ 80418F0
- push {r4,lr}
- adds r4, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08041918 @ =0x0000fffe
- bl __umodsi3
- adds r0, 0x1
- movs r1, 0x8C
- lsls r1, 1
- adds r4, r1
- strh r0, [r4]
- movs r0, 0x86
- bl FlagSet
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08041918: .4byte 0x0000fffe
- thumb_func_end sub_80418F0
-
- thumb_func_start sub_804191C
-sub_804191C: @ 804191C
- push {r4,lr}
- adds r4, r0, 0
- bl Random
- movs r2, 0x80
- lsls r2, 8
- adds r1, r2, 0
- movs r2, 0x8C
- lsls r2, 1
- adds r4, r2
- orrs r1, r0
- strh r1, [r4]
- movs r0, 0x86
- bl FlagSet
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_804191C
-
- thumb_func_start sub_8041940
-sub_8041940: @ 8041940
- push {lr}
- ldr r0, _0804194C @ =gSaveBlock1 + 0x2F9C
- bl sub_80418F0
- pop {r0}
- bx r0
- .align 2, 0
-_0804194C: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sub_8041940
-
- thumb_func_start sub_8041950
-sub_8041950: @ 8041950
- push {lr}
- ldr r0, _0804195C @ =gSaveBlock1 + 0x2F9C
- bl sub_804191C
- pop {r0}
- bx r0
- .align 2, 0
-_0804195C: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sub_8041950
-
- thumb_func_start sub_8041960
-sub_8041960: @ 8041960
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r1, r4, r1
- movs r0, 0xFF
- strb r0, [r1]
- movs r2, 0
-_08041972:
- mov r1, sp
- adds r0, r1, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x5
- ble _08041972
- movs r3, 0
- movs r2, 0
-_08041986:
- mov r1, sp
- adds r0, r1, r2
- ldrb r1, [r0]
- adds r0, r1, 0
- cmp r0, 0xFF
- beq _08041998
- adds r0, r4, r3
- strb r1, [r0]
- adds r3, 0x1
-_08041998:
- adds r2, 0x1
- cmp r2, 0x5
- ble _08041986
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8041960
-
- thumb_func_start sub_80419A8
-sub_80419A8: @ 80419A8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- mov r9, r0
- mov r8, r1
- movs r5, 0
- add r1, sp, 0x4
- add r7, sp, 0xC
- adds r2, r1, 0
-_080419BE:
- adds r0, r2, r5
- strb r5, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080419BE
- movs r5, 0
- adds r6, r1, 0
-_080419D0:
- bl Random
- mov r1, sp
- adds r4, r1, r5
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- subs r1, r5
- bl __modsi3
- adds r0, r6, r0
- ldrb r0, [r0]
- strb r0, [r4]
- ldrb r1, [r4]
- adds r0, r6, 0
- bl sub_8041960
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _080419D0
- movs r5, 0
- movs r4, 0x1
-_08041A00:
- bl Random
- adds r1, r7, r5
- lsls r0, 16
- lsrs r0, 16
- ands r0, r4
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _08041A00
- movs r5, 0
-_08041A1A:
- mov r1, sp
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _08041B02
- lsls r0, 2
- ldr r1, _08041A30 @ =_08041A34
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08041A30: .4byte _08041A34
- .align 2, 0
-_08041A34:
- .4byte _08041A4C
- .4byte _08041A6C
- .4byte _08041A88
- .4byte _08041AA4
- .4byte _08041AC0
- .4byte _08041AE2
-_08041A4C:
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x27
- bl GetBoxMonData
- add r2, sp, 0x10
- strb r0, [r2]
- mov r0, r9
- movs r1, 0x27
- bl SetMonData
- b _08041B02
-_08041A6C:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x28
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x28
- b _08041ADA
-_08041A88:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x29
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x29
- b _08041ADA
-_08041AA4:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x2A
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x2A
- b _08041ADA
-_08041AC0:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x2B
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x2B
-_08041ADA:
- adds r2, r4, 0
- bl SetMonData
- b _08041B02
-_08041AE2:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x2C
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x2C
- adds r2, r4, 0
- bl SetMonData
-_08041B02:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _08041A1A
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80419A8
-
- thumb_func_start pokemon_get_eggmoves
-pokemon_get_eggmoves: @ 8041B1C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r1
- movs r6, 0
- movs r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r5, _08041B44 @ =gEggMoves
- ldrh r1, [r5]
- ldr r7, _08041B48 @ =0x00004e20
- adds r0, r3, r7
- cmp r1, r0
- bne _08041B4C
- movs r4, 0x1
- b _08041B6E
- .align 2, 0
-_08041B44: .4byte gEggMoves
-_08041B48: .4byte 0x00004e20
-_08041B4C:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _08041BB8 @ =0x00000471
- ldr r5, _08041BBC @ =gEggMoves
- cmp r2, r0
- bhi _08041B6E
- lsls r0, r2, 1
- adds r0, r5
- ldrh r1, [r0]
- ldr r7, _08041BC0 @ =0x00004e20
- adds r0, r3, r7
- cmp r1, r0
- bne _08041B4C
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_08041B6E:
- movs r2, 0
- lsls r0, r4, 1
- adds r0, r5
- ldrh r0, [r0]
- ldr r1, _08041BC0 @ =0x00004e20
- cmp r0, r1
- bhi _08041BAA
- adds r7, r5, 0
- adds r3, r1, 0
-_08041B80:
- lsls r1, r2, 1
- add r1, r8
- adds r0, r4, r2
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x9
- bhi _08041BAA
- adds r0, r4, r2
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, r3
- bls _08041B80
-_08041BAA:
- lsls r0, r6, 24
- lsrs r0, 24
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08041BB8: .4byte 0x00000471
-_08041BBC: .4byte gEggMoves
-_08041BC0: .4byte 0x00004e20
- thumb_func_end pokemon_get_eggmoves
-
- thumb_func_start daycare_build_child_moveset
-daycare_build_child_moveset: @ 8041BC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r7, r0, 0
- mov r10, r1
- mov r9, r2
- movs r0, 0
- str r0, [sp]
- movs r6, 0
- ldr r5, _08041CC8 @ =gUnknown_03000500
- movs r2, 0
- ldr r4, _08041CCC @ =gUnknown_030004D8
- ldr r3, _08041CD0 @ =gUnknown_030004E0
-_08041BE4:
- lsls r1, r6, 1
- adds r0, r1, r5
- strh r2, [r0]
- adds r0, r1, r4
- strh r2, [r0]
- adds r1, r3
- strh r2, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08041BE4
- movs r6, 0
- ldr r2, _08041CD4 @ =gUnknown_030004E8
- movs r1, 0
-_08041C02:
- lsls r0, r6, 1
- adds r0, r2
- strh r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x9
- bls _08041C02
- movs r6, 0
- ldr r2, _08041CD8 @ =gUnknown_03000470
- movs r1, 0
-_08041C18:
- lsls r0, r6, 1
- adds r0, r2
- strh r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x31
- bls _08041C18
- adds r0, r7, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08041CD8 @ =gUnknown_03000470
- bl GetLevelUpMovesBySpecies
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r6, 0
- ldr r1, _08041CCC @ =gUnknown_030004D8
- mov r8, r1
-_08041C46:
- adds r5, r6, 0
- adds r5, 0xD
- mov r0, r10
- adds r1, r5, 0
- bl GetBoxMonData
- lsls r4, r6, 1
- mov r2, r8
- adds r1, r4, r2
- strh r0, [r1]
- mov r0, r9
- adds r1, r5, 0
- bl GetBoxMonData
- ldr r1, _08041CC8 @ =gUnknown_03000500
- adds r4, r1
- strh r0, [r4]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08041C46
- ldr r1, _08041CD4 @ =gUnknown_030004E8
- adds r0, r7, 0
- bl pokemon_get_eggmoves
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r6, 0
-_08041C82:
- ldr r0, _08041CCC @ =gUnknown_030004D8
- lsls r1, r6, 1
- adds r2, r1, r0
- ldrh r1, [r2]
- mov r9, r0
- cmp r1, 0
- beq _08041CF8
- movs r5, 0
- cmp r5, r8
- bcs _08041CEA
- adds r4, r2, 0
- ldr r2, _08041CDC @ =0x0000ffff
-_08041C9A:
- ldr r0, _08041CD4 @ =gUnknown_030004E8
- lsls r1, r5, 1
- adds r1, r0
- ldrh r0, [r4]
- ldrh r1, [r1]
- cmp r0, r1
- bne _08041CE0
- adds r1, r0, 0
- adds r0, r7, 0
- str r2, [sp, 0x8]
- bl GiveMoveToMon
- lsls r0, 16
- lsrs r0, 16
- ldr r2, [sp, 0x8]
- cmp r0, r2
- bne _08041CEA
- ldrh r1, [r4]
- adds r0, r7, 0
- bl DeleteFirstMoveAndGiveMoveToMon
- b _08041CEA
- .align 2, 0
-_08041CC8: .4byte gUnknown_03000500
-_08041CCC: .4byte gUnknown_030004D8
-_08041CD0: .4byte gUnknown_030004E0
-_08041CD4: .4byte gUnknown_030004E8
-_08041CD8: .4byte gUnknown_03000470
-_08041CDC: .4byte 0x0000ffff
-_08041CE0:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _08041C9A
-_08041CEA:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r3, _08041E14 @ =gUnknown_030004D8
- mov r9, r3
- cmp r6, 0x3
- bls _08041C82
-_08041CF8:
- movs r6, 0
-_08041CFA:
- lsls r0, r6, 1
- mov r2, r9
- adds r1, r0, r2
- ldrh r1, [r1]
- adds r2, r0, 0
- adds r6, 0x1
- mov r8, r6
- cmp r1, 0
- beq _08041D5C
- movs r5, 0
- ldr r0, _08041E14 @ =gUnknown_030004D8
- adds r4, r2, r0
- ldr r6, _08041E18 @ =0x0000ffff
- mov r9, r0
-_08041D16:
- ldr r3, _08041E1C @ =0x00000121
- adds r0, r5, r3
- lsls r0, 16
- lsrs r0, 16
- bl ItemIdToBattleMoveId
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bne _08041D52
- lsls r1, r5, 24
- lsrs r1, 24
- adds r0, r7, 0
- bl CanMonLearnTMHM
- cmp r0, 0
- beq _08041D52
- ldrh r1, [r4]
- adds r0, r7, 0
- bl GiveMoveToMon
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bne _08041D52
- ldrh r1, [r4]
- adds r0, r7, 0
- bl DeleteFirstMoveAndGiveMoveToMon
-_08041D52:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x39
- bls _08041D16
-_08041D5C:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08041CFA
- movs r6, 0
- mov r2, r9
- ldrh r0, [r2]
- ldr r3, _08041E20 @ =gUnknown_030004E0
- mov r10, r3
- cmp r0, 0
- beq _08041DC6
- mov r4, r9
- ldr r0, _08041E24 @ =gUnknown_03000500
- mov r9, r0
- mov r12, r10
-_08041D7C:
- movs r5, 0
- lsls r2, r6, 1
- adds r6, 0x1
- mov r8, r6
- adds r3, r2, r4
-_08041D86:
- lsls r0, r5, 1
- add r0, r9
- ldrh r2, [r3]
- adds r1, r2, 0
- ldrh r0, [r0]
- cmp r1, r0
- bne _08041DA8
- cmp r1, 0
- beq _08041DA8
- ldr r1, [sp]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- lsls r1, 1
- add r1, r12
- strh r2, [r1]
-_08041DA8:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _08041D86
- mov r1, r8
- lsls r0, r1, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bhi _08041DC6
- lsls r0, r6, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0
- bne _08041D7C
-_08041DC6:
- movs r6, 0
- mov r2, r10
- ldrh r0, [r2]
- cmp r0, 0
- beq _08041E50
-_08041DD0:
- movs r5, 0
- adds r3, r6, 0x1
- mov r8, r3
- ldr r0, [sp, 0x4]
- cmp r5, r0
- bcs _08041E38
- ldr r2, _08041E18 @ =0x0000ffff
-_08041DDE:
- ldr r1, _08041E28 @ =gUnknown_03000470
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- cmp r1, 0
- beq _08041E2C
- lsls r0, r6, 1
- mov r3, r10
- adds r4, r0, r3
- ldrh r0, [r4]
- cmp r0, r1
- bne _08041E2C
- adds r1, r0, 0
- adds r0, r7, 0
- str r2, [sp, 0x8]
- bl GiveMoveToMon
- lsls r0, 16
- lsrs r0, 16
- ldr r2, [sp, 0x8]
- cmp r0, r2
- bne _08041E38
- ldrh r1, [r4]
- adds r0, r7, 0
- bl DeleteFirstMoveAndGiveMoveToMon
- b _08041E38
- .align 2, 0
-_08041E14: .4byte gUnknown_030004D8
-_08041E18: .4byte 0x0000ffff
-_08041E1C: .4byte 0x00000121
-_08041E20: .4byte gUnknown_030004E0
-_08041E24: .4byte gUnknown_03000500
-_08041E28: .4byte gUnknown_03000470
-_08041E2C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, [sp, 0x4]
- cmp r5, r0
- bcc _08041DDE
-_08041E38:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bhi _08041E50
- ldr r0, _08041E60 @ =gUnknown_030004E0
- lsls r1, r6, 1
- adds r1, r0
- ldrh r1, [r1]
- mov r10, r0
- cmp r1, 0
- bne _08041DD0
-_08041E50:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08041E60: .4byte gUnknown_030004E0
- thumb_func_end daycare_build_child_moveset
-
- thumb_func_start sub_8041E64
-sub_8041E64: @ 8041E64
- adds r3, r0, 0
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r3, r1
- movs r2, 0
- movs r1, 0
- strh r1, [r0]
- movs r1, 0x8D
- lsls r1, 1
- adds r0, r3, r1
- strb r2, [r0]
- bx lr
- thumb_func_end sub_8041E64
-
- thumb_func_start sub_8041E7C
-sub_8041E7C: @ 8041E7C
- push {lr}
- ldr r0, _08041E88 @ =gSaveBlock1 + 0x2F9C
- bl sub_8041E64
- pop {r0}
- bx r0
- .align 2, 0
-_08041E88: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sub_8041E7C
-
- thumb_func_start incense_effects
-incense_effects: @ 8041E8C
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrh r1, [r4]
- movs r7, 0xB4
- lsls r7, 1
- cmp r1, r7
- beq _08041EA4
- movs r0, 0xAF
- lsls r0, 1
- cmp r1, r0
- bne _08041EE6
-_08041EA4:
- adds r0, r5, 0
- movs r1, 0xC
- bl GetBoxMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r5, 0
- adds r0, 0x50
- movs r1, 0xC
- bl GetBoxMonData
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r4]
- cmp r0, r7
- bne _08041ED0
- cmp r6, 0xDD
- beq _08041ED0
- cmp r2, 0xDD
- beq _08041ED0
- movs r0, 0xCA
- strh r0, [r4]
-_08041ED0:
- ldrh r1, [r4]
- movs r0, 0xAF
- lsls r0, 1
- cmp r1, r0
- bne _08041EE6
- cmp r6, 0xDC
- beq _08041EE6
- cmp r2, 0xDC
- beq _08041EE6
- movs r0, 0xB7
- strh r0, [r4]
-_08041EE6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end incense_effects
-
- thumb_func_start sub_8041EEC
-sub_8041EEC: @ 8041EEC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r8, r0
- adds r6, r1, 0
- movs r4, 0
- movs r7, 0x1
-_08041EFC:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- mov r1, r8
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetBoxMonData
- lsls r1, r4, 1
- add r1, sp
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x84
- bne _08041F26
- adds r0, r4, 0
- eors r0, r7
- strb r0, [r6]
- strb r4, [r6, 0x1]
- b _08041F3C
-_08041F26:
- adds r0, r5, 0
- bl GetBoxMonGender
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFE
- bne _08041F3C
- strb r4, [r6]
- adds r0, r4, 0
- eors r0, r7
- strb r0, [r6, 0x1]
-_08041F3C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08041EFC
- ldrb r0, [r6]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- bl sub_8041870
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bne _08041F6E
- movs r0, 0x8C
- lsls r0, 1
- add r0, r8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08041F6E
- movs r4, 0x20
-_08041F6E:
- ldr r0, _08041FC0 @ =0x00000183
- cmp r4, r0
- bne _08041F88
- subs r0, 0x6B
- add r0, r8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08041F88
- movs r4, 0xC1
- lsls r4, 1
-_08041F88:
- ldrb r0, [r6, 0x1]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- cmp r0, 0x84
- bne _08041FB2
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- bl GetBoxMonGender
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFE
- beq _08041FB2
- ldrb r1, [r6, 0x1]
- ldrb r0, [r6]
- strb r0, [r6, 0x1]
- strb r1, [r6]
-_08041FB2:
- adds r0, r4, 0
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08041FC0: .4byte 0x00000183
- thumb_func_end sub_8041EEC
-
- thumb_func_start sub_8041FC4
-sub_8041FC4: @ 8041FC4
- push {r4-r6,lr}
- sub sp, 0x6C
- adds r5, r0, 0
- add r6, sp, 0x64
- adds r1, r6, 0
- bl sub_8041EEC
- add r4, sp, 0x68
- strh r0, [r4]
- adds r0, r4, 0
- adds r1, r5, 0
- bl incense_effects
- ldrh r1, [r4]
- mov r0, sp
- adds r2, r5, 0
- bl sub_80420FC
- mov r0, sp
- adds r1, r5, 0
- bl sub_80419A8
- ldrb r0, [r6, 0x1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 4
- adds r1, r5, r1
- ldrb r0, [r6]
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 4
- adds r2, r5, r2
- mov r0, sp
- bl daycare_build_child_moveset
- mov r2, sp
- adds r2, 0x6A
- movs r0, 0x1
- strb r0, [r2]
- mov r0, sp
- movs r1, 0x2D
- bl SetMonData
- ldr r0, _08042040 @ =gPlayerParty
- movs r1, 0xFA
- lsls r1, 1
- adds r0, r1
- mov r1, sp
- movs r2, 0x64
- bl memcpy
- bl party_compaction
- bl CalculatePlayerPartyCount
- adds r0, r5, 0
- bl sub_8041E64
- add sp, 0x6C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08042040: .4byte gPlayerParty
- thumb_func_end sub_8041FC4
-
- thumb_func_start sub_8042044
-sub_8042044: @ 8042044
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- adds r7, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 24
- lsrs r6, 24
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r1, r5, 0
- movs r2, 0x5
- movs r3, 0x20
- bl CreateMon
- movs r0, 0x12
- add r0, sp
- mov r8, r0
- strb r4, [r0]
- movs r1, 0x4
- add r0, sp, 0x10
- strh r1, [r0]
- mov r4, sp
- adds r4, 0x13
- movs r0, 0x1
- mov r9, r0
- mov r0, r9
- strb r0, [r4]
- adds r0, r7, 0
- movs r1, 0x26
- add r2, sp, 0x10
- bl SetMonData
- ldr r2, _080420F4 @ =gUnknown_08209AD4
- adds r0, r7, 0
- movs r1, 0x2
- bl SetMonData
- lsls r2, r5, 3
- subs r2, r5
- lsls r2, 2
- ldr r0, _080420F8 @ =gBaseStats + 0x11 @ egg cycles offset
- adds r2, r0
- adds r0, r7, 0
- movs r1, 0x20
- bl SetMonData
- adds r0, r7, 0
- movs r1, 0x24
- mov r2, r8
- bl SetMonData
- adds r0, r7, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl SetMonData
- cmp r6, 0
- beq _080420D6
- add r2, sp, 0x14
- movs r0, 0xFD
- strb r0, [r2]
- adds r0, r7, 0
- movs r1, 0x23
- bl SetMonData
-_080420D6:
- mov r2, sp
- adds r2, 0x15
- mov r0, r9
- strb r0, [r2]
- adds r0, r7, 0
- movs r1, 0x2D
- bl SetMonData
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080420F4: .4byte gUnknown_08209AD4
-_080420F8: .4byte gBaseStats + 0x11 @ egg cycles offset
- thumb_func_end sub_8042044
-
- thumb_func_start sub_80420FC
-sub_80420FC: @ 80420FC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x14
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- lsls r5, 16
- lsrs r5, 16
- bl Random
- movs r1, 0x8C
- lsls r1, 1
- adds r4, r1
- ldrh r1, [r4]
- lsls r0, 16
- orrs r1, r0
- movs r0, 0x1
- mov r8, r0
- str r0, [sp]
- str r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x5
- movs r3, 0x20
- bl CreateMon
- movs r1, 0x12
- add r1, sp
- mov r9, r1
- strb r4, [r1]
- movs r1, 0x4
- add r0, sp, 0x10
- strh r1, [r0]
- mov r4, sp
- adds r4, 0x13
- mov r0, r8
- strb r0, [r4]
- adds r0, r6, 0
- movs r1, 0x26
- add r2, sp, 0x10
- bl SetMonData
- ldr r2, _08042198 @ =gUnknown_08209AD4
- adds r0, r6, 0
- movs r1, 0x2
- bl SetMonData
- lsls r2, r5, 3
- subs r2, r5
- lsls r2, 2
- ldr r0, _0804219C @ =gBaseStats + 0x11 @ egg cycles offset
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x20
- bl SetMonData
- adds r0, r6, 0
- movs r1, 0x24
- mov r2, r9
- bl SetMonData
- adds r0, r6, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl SetMonData
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08042198: .4byte gUnknown_08209AD4
-_0804219C: .4byte gBaseStats + 0x11 @ egg cycles offset
- thumb_func_end sub_80420FC
-
- thumb_func_start sp0B8_daycare
-sp0B8_daycare: @ 80421A0
- push {lr}
- ldr r0, _080421AC @ =gSaveBlock1 + 0x2F9C
- bl sub_8041FC4
- pop {r0}
- bx r0
- .align 2, 0
-_080421AC: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sp0B8_daycare
-
- thumb_func_start sub_80421B0
-sub_80421B0: @ 80421B0
- push {r4-r7,lr}
- sub sp, 0x8
- adds r7, r0, 0
- movs r2, 0
- movs r6, 0
- adds r5, r7, 0
-_080421BC:
- lsls r4, r6, 2
- adds r0, r5, 0
- movs r1, 0x5
- str r2, [sp, 0x4]
- bl GetBoxMonData
- ldr r2, [sp, 0x4]
- cmp r0, 0
- beq _080421DE
- movs r0, 0x88
- lsls r0, 1
- adds r1, r7, r0
- adds r1, r4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- adds r2, 0x1
-_080421DE:
- adds r5, 0x50
- adds r6, 0x1
- cmp r6, 0x1
- bls _080421BC
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r7, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _08042226
- cmp r2, 0x2
- bne _08042226
- subs r1, 0x4
- adds r0, r7, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08042226
- adds r0, r7, 0
- bl daycare_relationship_score
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- muls r0, r1
- ldr r1, _08042240 @ =0x0000ffff
- bl __udivsi3
- cmp r4, r0
- bls _08042226
- bl sub_8041940
-_08042226:
- movs r0, 0x8D
- lsls r0, 1
- adds r1, r7, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _08042290
- movs r6, 0
- b _08042288
- .align 2, 0
-_08042240: .4byte 0x0000ffff
-_08042244:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _08042270 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _08042286
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- str r0, [sp]
- cmp r0, 0
- bne _08042278
- ldr r0, _08042274 @ =gSpecialVar_0x8004
- strh r6, [r0]
- movs r0, 0x1
- b _08042292
- .align 2, 0
-_08042270: .4byte gPlayerParty
-_08042274: .4byte gSpecialVar_0x8004
-_08042278:
- subs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x20
- mov r2, sp
- bl SetMonData
-_08042286:
- adds r6, 0x1
-_08042288:
- ldr r0, _0804229C @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r6, r0
- bcc _08042244
-_08042290:
- movs r0, 0
-_08042292:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0804229C: .4byte gPlayerPartyCount
- thumb_func_end sub_80421B0
-
- thumb_func_start sub_80422A0
-sub_80422A0: @ 80422A0
- push {lr}
- ldr r0, _080422B0 @ =gSaveBlock1 + 0x2F9C
- bl sub_80421B0
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080422B0: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sub_80422A0
-
- thumb_func_start sub_80422B4
-sub_80422B4: @ 80422B4
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r1
- ldrh r1, [r0]
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- bx lr
- thumb_func_end sub_80422B4
-
- thumb_func_start sub_80422C4
-sub_80422C4: @ 80422C4
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _080422FC
- ldr r1, _0804231C @ =gStringVar1
- adds r0, r6, 0
- bl GetBoxMonNick
- adds r0, r6, 0
- movs r1, 0x3
- bl GetBoxMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08042320 @ =gStringVar3
- adds r0, r6, 0
- movs r1, 0x7
- adds r2, r5, 0
- bl GetBoxMonData
- adds r0, r5, 0
- adds r1, r4, 0
- bl ConvertInternationalString
-_080422FC:
- adds r4, r6, 0
- adds r4, 0x50
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08042314
- ldr r1, _08042324 @ =gStringVar2
- adds r0, r4, 0
- bl GetBoxMonNick
-_08042314:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804231C: .4byte gStringVar1
-_08042320: .4byte gStringVar3
-_08042324: .4byte gStringVar2
- thumb_func_end sub_80422C4
-
- thumb_func_start sub_8042328
-sub_8042328: @ 8042328
- push {r4-r6,lr}
- ldr r6, _08042354 @ =gLastFieldPokeMenuOpened
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _08042358 @ =gPlayerParty
- adds r0, r4
- ldr r1, _0804235C @ =gStringVar1
- bl GetBoxMonNick
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0xB
- bl GetBoxMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08042354: .4byte gLastFieldPokeMenuOpened
-_08042358: .4byte gPlayerParty
-_0804235C: .4byte gStringVar1
- thumb_func_end sub_8042328
-
- thumb_func_start sp0B5_daycare
-sp0B5_daycare: @ 8042360
- push {lr}
- ldr r0, _0804236C @ =gSaveBlock1 + 0x2F9C
- bl sub_80422C4
- pop {r0}
- bx r0
- .align 2, 0
-_0804236C: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sp0B5_daycare
-
- thumb_func_start sp0B6_daycare
-sp0B6_daycare: @ 8042370
- push {r4,lr}
- ldr r4, _08042384 @ =gSaveBlock1 + 0x2F9C
- adds r0, r4, 0
- bl sub_80422B4
- lsls r0, 24
- cmp r0, 0
- beq _08042388
- movs r0, 0x1
- b _080423A0
- .align 2, 0
-_08042384: .4byte gSaveBlock1 + 0x2F9C
-_08042388:
- adds r0, r4, 0
- bl Daycare_CountPokemon
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0804239A
- movs r0, 0
- b _080423A0
-_0804239A:
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
-_080423A0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sp0B6_daycare
-
- thumb_func_start sub_80423A8
-sub_80423A8: @ 80423A8
- push {r4-r6,lr}
- adds r5, r1, 0
- movs r4, 0
- adds r1, r0, 0
-_080423B0:
- movs r3, 0
- ldrh r0, [r1]
- adds r2, r5, 0
-_080423B6:
- ldrh r6, [r2]
- cmp r0, r6
- bne _080423C0
- movs r0, 0x1
- b _080423D2
-_080423C0:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x1
- ble _080423B6
- adds r1, 0x2
- adds r4, 0x1
- cmp r4, 0x1
- ble _080423B0
- movs r0, 0
-_080423D2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80423A8
-
- thumb_func_start daycare_relationship_score
-daycare_relationship_score: @ 80423D8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- movs r1, 0
- mov r8, r1
- mov r2, sp
- adds r2, 0x8
- str r2, [sp, 0x1C]
- add r1, sp, 0xC
- mov r10, r1
- adds r2, 0xC
- str r2, [sp, 0x20]
- mov r1, sp
- adds r1, 0x2
- ldr r2, _08042488 @ =gBaseStats
- mov r9, r2
- ldr r5, [sp, 0x1C]
- adds r7, r1, 0
- mov r6, sp
- ldr r1, [sp, 0x20]
- str r1, [sp, 0x24]
- mov r2, r10
- str r2, [sp, 0x28]
- adds r4, r0, 0
-_0804240E:
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetBoxMonData
- ldr r1, [sp, 0x28]
- stm r1!, {r0}
- str r1, [sp, 0x28]
- adds r0, r4, 0
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- ldrh r0, [r5]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp, 0x24]
- stm r2!, {r0}
- str r2, [sp, 0x24]
- ldrh r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x14]
- strh r0, [r6]
- ldrh r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x15]
- strh r0, [r7]
- adds r5, 0x2
- adds r7, 0x4
- adds r6, 0x4
- adds r4, 0x50
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x1
- bls _0804240E
- mov r0, sp
- ldrh r1, [r0]
- cmp r1, 0xF
- beq _08042484
- ldrh r0, [r0, 0x4]
- cmp r0, 0xF
- beq _08042484
- cmp r1, 0xD
- bne _0804248C
- cmp r0, 0xD
- bne _08042490
-_08042484:
- movs r0, 0
- b _080424E4
- .align 2, 0
-_08042488: .4byte gBaseStats
-_0804248C:
- cmp r0, 0xD
- bne _0804249C
-_08042490:
- ldr r1, [sp, 0xC]
- mov r2, r10
- ldr r0, [r2, 0x4]
- cmp r1, r0
- beq _080424DE
- b _080424E2
-_0804249C:
- ldr r0, [sp, 0x14]
- ldr r2, [sp, 0x20]
- ldr r1, [r2, 0x4]
- cmp r0, r1
- beq _08042484
- cmp r0, 0xFF
- beq _08042484
- cmp r1, 0xFF
- beq _08042484
- add r1, sp, 0x4
- mov r0, sp
- bl sub_80423A8
- lsls r0, 24
- cmp r0, 0
- beq _08042484
- ldr r0, [sp, 0x1C]
- ldrh r1, [r0, 0x2]
- ldrh r0, [r0]
- cmp r0, r1
- bne _080424D4
- ldr r1, [sp, 0xC]
- mov r2, r10
- ldr r0, [r2, 0x4]
- cmp r1, r0
- beq _080424E2
- movs r0, 0x46
- b _080424E4
-_080424D4:
- ldr r1, [sp, 0xC]
- mov r2, r10
- ldr r0, [r2, 0x4]
- cmp r1, r0
- bne _080424E2
-_080424DE:
- movs r0, 0x14
- b _080424E4
-_080424E2:
- movs r0, 0x32
-_080424E4:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end daycare_relationship_score
-
- thumb_func_start daycare_relationship_score_from_savegame
-daycare_relationship_score_from_savegame: @ 80424F4
- push {lr}
- ldr r0, _08042504 @ =gSaveBlock1 + 0x2F9C
- bl daycare_relationship_score
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08042504: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end daycare_relationship_score_from_savegame
-
- thumb_func_start sp0B9_daycare_relationship_comment
-sp0B9_daycare_relationship_comment: @ 8042508
- push {lr}
- bl daycare_relationship_score_from_savegame
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- movs r1, 0
- cmp r0, 0
- bne _0804251C
- movs r1, 0x3
-_0804251C:
- cmp r0, 0x14
- bne _08042522
- movs r1, 0x2
-_08042522:
- cmp r0, 0x32
- bne _08042528
- movs r1, 0x1
-_08042528:
- cmp r2, 0x46
- bne _0804252E
- movs r1, 0
-_0804252E:
- ldr r0, _08042540 @ =gStringVar4
- ldr r2, _08042544 @ =gUnknown_08209AC4
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- pop {r0}
- bx r0
- .align 2, 0
-_08042540: .4byte gStringVar4
-_08042544: .4byte gUnknown_08209AC4
- thumb_func_end sp0B9_daycare_relationship_comment
-
- thumb_func_start NameHasGenderSymbol
-NameHasGenderSymbol: @ 8042548
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- mov r2, sp
- mov r1, sp
- movs r0, 0
- strb r0, [r1, 0x1]
- strb r0, [r2]
- movs r3, 0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _0804258C
-_08042564:
- adds r1, r4, r3
- ldrb r0, [r1]
- cmp r0, 0xB5
- bne _08042572
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
-_08042572:
- ldrb r0, [r1]
- cmp r0, 0xB6
- bne _0804257E
- ldrb r0, [r2, 0x1]
- adds r0, 0x1
- strb r0, [r2, 0x1]
-_0804257E:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08042564
-_0804258C:
- cmp r5, 0
- bne _080425A0
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- beq _080425A0
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080425B4
-_080425A0:
- cmp r5, 0xFE
- bne _080425B8
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080425B8
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- bne _080425B8
-_080425B4:
- movs r0, 0x1
- b _080425BA
-_080425B8:
- movs r0, 0
-_080425BA:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end NameHasGenderSymbol
-
- thumb_func_start AppendGenderSymbol
-AppendGenderSymbol: @ 80425C4
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- bne _080425E4
- movs r1, 0
- bl NameHasGenderSymbol
- lsls r0, 24
- cmp r0, 0
- bne _08042600
- ldr r1, _080425E0 @ =gOtherText_MaleSymbol3
- b _08042602
- .align 2, 0
-_080425E0: .4byte gOtherText_MaleSymbol3
-_080425E4:
- cmp r1, 0xFE
- bne _08042600
- adds r0, r4, 0
- movs r1, 0xFE
- bl NameHasGenderSymbol
- lsls r0, 24
- cmp r0, 0
- bne _08042600
- ldr r1, _080425FC @ =gOtherText_FemaleSymbol3
- b _08042602
- .align 2, 0
-_080425FC: .4byte gOtherText_FemaleSymbol3
-_08042600:
- ldr r1, _08042610 @ =gOtherText_GenderlessSymbol
-_08042602:
- adds r0, r4, 0
- bl StringAppend
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08042610: .4byte gOtherText_GenderlessSymbol
- thumb_func_end AppendGenderSymbol
-
- thumb_func_start MonAppendGenderSymbol
-MonAppendGenderSymbol: @ 8042614
- push {r4,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- bl GetBoxMonGender
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl AppendGenderSymbol
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end MonAppendGenderSymbol
-
- thumb_func_start DaycareLevelMenuGetText
-DaycareLevelMenuGetText: @ 8042630
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x28
- mov r8, r0
- adds r7, r1, 0
- movs r0, 0xFF
- strb r0, [r7]
- movs r6, 0
- add r0, sp, 0x14
- mov r9, r0
-_08042648:
- lsls r0, r6, 2
- adds r0, r6
- lsls r4, r0, 4
- add r4, r8
- lsls r0, 2
- mov r1, sp
- adds r5, r1, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetBoxMonNick
- adds r0, r5, 0
- adds r1, r4, 0
- bl MonAppendGenderSymbol
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x1
- bls _08042648
- adds r0, r7, 0
- mov r1, sp
- bl StringCopy
- ldr r4, _080426A8 @ =gOtherText_NewLine2
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringAppend
- adds r0, r7, 0
- mov r1, r9
- bl StringAppend
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringAppend
- ldr r1, _080426AC @ =gOtherText_CancelAndLv
- adds r0, r7, 0
- bl StringAppend
- add sp, 0x28
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080426A8: .4byte gOtherText_NewLine2
-_080426AC: .4byte gOtherText_CancelAndLv
- thumb_func_end DaycareLevelMenuGetText
-
- thumb_func_start DaycareLevelMenuGetLevelText
-DaycareLevelMenuGetLevelText: @ 80426B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- movs r0, 0xFF
- strb r0, [r4]
- movs r5, 0
- movs r0, 0xFC
- mov r8, r0
- movs r7, 0x14
-_080426C6:
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 4
- adds r0, r6, r0
- movs r3, 0x88
- lsls r3, 1
- adds r1, r6, r3
- adds r1, r2
- ldr r1, [r1]
- bl Daycare_GetLevelAfterSteps
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x34
- strb r0, [r4]
- mov r0, r8
- strb r0, [r4, 0x1]
- strb r7, [r4, 0x2]
- movs r0, 0x6
- strb r0, [r4, 0x3]
- adds r0, r4, 0x4
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r4, r0, 0
- mov r3, r8
- strb r3, [r4]
- strb r7, [r4, 0x1]
- movs r0, 0
- strb r0, [r4, 0x2]
- adds r0, r4, 0x3
- ldr r1, _08042728 @ =gOtherText_NewLine2
- bl StringCopy
- adds r4, r0, 0
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _080426C6
- movs r0, 0xFF
- strb r0, [r4]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08042728: .4byte gOtherText_NewLine2
- thumb_func_end DaycareLevelMenuGetLevelText
-
- thumb_func_start DaycareLevelMenuProcessKeyInput
-DaycareLevelMenuProcessKeyInput: @ 804272C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, _08042760 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08042768
- ldr r0, _08042764 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0x8]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08042816
- subs r0, r2, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x1
- negs r0, r0
- b _0804278A
- .align 2, 0
-_08042760: .4byte gMain
-_08042764: .4byte gTasks
-_08042768:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804279C
- ldr r0, _08042798 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0x8]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- beq _08042816
- adds r0, r2, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x1
-_0804278A:
- bl MoveMenuCursor
- movs r0, 0x5
- bl PlaySE
- b _08042816
- .align 2, 0
-_08042798: .4byte gTasks
-_0804279C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080427E8
- bl HandleDestroyMenuCursors
- movs r0, 0x5
- bl PlaySE
- ldr r3, _080427DC @ =gLastFieldPokeMenuOpened
- ldr r2, _080427E0 @ =gScriptResult
- ldr r1, _080427E4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- strh r0, [r2]
- strb r0, [r3]
- adds r0, r4, 0
- bl DestroyTask
- movs r0, 0xF
- movs r1, 0x6
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- bl EnableBothScriptContexts
- b _08042816
- .align 2, 0
-_080427DC: .4byte gLastFieldPokeMenuOpened
-_080427E0: .4byte gScriptResult
-_080427E4: .4byte gTasks
-_080427E8:
- movs r4, 0x2
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08042816
- bl HandleDestroyMenuCursors
- ldr r0, _0804281C @ =gLastFieldPokeMenuOpened
- ldr r1, _08042820 @ =gScriptResult
- strh r4, [r1]
- movs r1, 0x2
- strb r1, [r0]
- adds r0, r5, 0
- bl DestroyTask
- movs r0, 0xF
- movs r1, 0x6
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- bl EnableBothScriptContexts
-_08042816:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804281C: .4byte gLastFieldPokeMenuOpened
-_08042820: .4byte gScriptResult
- thumb_func_end DaycareLevelMenuProcessKeyInput
-
- thumb_func_start ShowDaycareLevelMenu
-ShowDaycareLevelMenu: @ 8042824
- push {r4,lr}
- sub sp, 0x6C
- movs r0, 0xF
- movs r1, 0x6
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuDrawTextWindow
- ldr r4, _08042880 @ =gSaveBlock1 + 0x2F9C
- adds r0, r4, 0
- add r1, sp, 0x8
- bl DaycareLevelMenuGetText
- add r0, sp, 0x8
- movs r1, 0x10
- movs r2, 0x7
- bl MenuPrint
- adds r0, r4, 0
- add r1, sp, 0x8
- bl DaycareLevelMenuGetLevelText
- add r0, sp, 0x8
- movs r1, 0xCE
- movs r2, 0x38
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- movs r0, 0
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x7
- movs r3, 0x3
- bl InitMenu
- ldr r0, _08042884 @ =DaycareLevelMenuProcessKeyInput
- movs r1, 0x3
- bl CreateTask
- add sp, 0x6C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08042880: .4byte gSaveBlock1 + 0x2F9C
-_08042884: .4byte DaycareLevelMenuProcessKeyInput
- thumb_func_end ShowDaycareLevelMenu
-
- thumb_func_start ChooseSendDaycareMon
-ChooseSendDaycareMon: @ 8042888
- push {lr}
- movs r0, 0x6
- movs r1, 0
- bl OpenPartyMenu
- ldr r1, _0804289C @ =gMain
- ldr r0, _080428A0 @ =c2_exit_to_overworld_2_switch
- str r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0804289C: .4byte gMain
-_080428A0: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end ChooseSendDaycareMon
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index 6b85e1e76..7bb496641 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -9975,7 +9975,7 @@ _080EAE50:
lsls r0, 16
lsrs r0, 16
movs r1, 0
- bl GetNationalPokedexFlag
+ bl GetSetPokedexFlag
b _080EAE7C
_080EAE62:
ldr r0, _080EAE74 @ =gUnknown_083DB694
diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s
deleted file mode 100644
index 7365f4da6..000000000
--- a/asm/egg_hatch.s
+++ /dev/null
@@ -1,1630 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start AddHatchedMonToParty
-AddHatchedMonToParty: @ 80429EC
- push {r4-r6,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- adds r5, r0, 0
- muls r5, r1
- ldr r0, _08042A9C @ =gPlayerParty
- adds r5, r0
- ldr r1, _08042AA0 @ =gEnemyParty
- adds r0, r5, 0
- bl CreatedHatchedMon
- add r2, sp, 0xC
- movs r6, 0
- strb r6, [r2]
- adds r0, r5, 0
- movs r1, 0x2D
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, sp
- adds r1, r4, 0
- bl GetSpeciesName
- adds r0, r5, 0
- movs r1, 0x2
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0x2
- bl GetNationalPokedexFlag
- adds r0, r4, 0
- movs r1, 0x3
- bl GetNationalPokedexFlag
- ldr r1, _08042AA4 @ =gStringVar1
- adds r0, r5, 0
- bl GetMonNick
- mov r2, sp
- adds r2, 0xE
- movs r0, 0x4
- strh r0, [r2]
- adds r0, r5, 0
- movs r1, 0x26
- bl SetMonData
- add r2, sp, 0x10
- strh r6, [r2]
- adds r0, r5, 0
- movs r1, 0x24
- bl SetMonData
- bl sav1_map_get_name
- mov r2, sp
- adds r2, 0x12
- strb r0, [r2]
- adds r0, r5, 0
- movs r1, 0x23
- bl SetMonData
- adds r0, r5, 0
- bl MonRestorePP
- adds r0, r5, 0
- bl CalculateMonStats
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08042A9C: .4byte gPlayerParty
-_08042AA0: .4byte gEnemyParty
-_08042AA4: .4byte gStringVar1
- thumb_func_end AddHatchedMonToParty
-
- thumb_func_start ScriptHatchMon
-ScriptHatchMon: @ 8042AA8
- push {lr}
- ldr r0, _08042AB8 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- bl AddHatchedMonToParty
- pop {r0}
- bx r0
- .align 2, 0
-_08042AB8: .4byte gSpecialVar_0x8004
- thumb_func_end ScriptHatchMon
-
- thumb_func_start sub_8042ABC
-sub_8042ABC: @ 8042ABC
- push {r4-r6,lr}
- sub sp, 0x20
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r0, r5, r0
- mov r1, sp
- bl GetBoxMonNick
- lsls r0, r4, 3
- subs r0, r4
- lsls r1, r0, 3
- adds r0, r5, r1
- adds r0, 0xC0
- ldrh r0, [r0]
- cmp r0, 0
- beq _08042B40
- adds r0, r1, 0
- adds r0, 0xA0
- adds r5, r0
- adds r6, r5, 0
- adds r6, 0x2C
- mov r0, sp
- adds r1, r6, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _08042B08
- ldr r0, _08042B30 @ =gSaveBlock2
- adds r1, r5, 0
- adds r1, 0x24
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _08042B40
-_08042B08:
- ldr r0, _08042B34 @ =gStringVar1
- mov r1, sp
- bl StringCopy
- ldr r4, _08042B38 @ =gStringVar2
- adds r1, r5, 0
- adds r1, 0x24
- adds r0, r4, 0
- bl StringCopy
- ldr r0, _08042B3C @ =gStringVar3
- adds r1, r6, 0
- bl StringCopy
- adds r0, r4, 0
- bl SanitizeNameString
- movs r0, 0x1
- b _08042B42
- .align 2, 0
-_08042B30: .4byte gSaveBlock2
-_08042B34: .4byte gStringVar1
-_08042B38: .4byte gStringVar2
-_08042B3C: .4byte gStringVar3
-_08042B40:
- movs r0, 0
-_08042B42:
- add sp, 0x20
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8042ABC
-
- thumb_func_start sub_8042B4C
-sub_8042B4C: @ 8042B4C
- push {lr}
- ldr r0, _08042B60 @ =gSaveBlock1 + 0x2F9C
- ldr r1, _08042B64 @ =gSpecialVar_0x8004
- ldrb r1, [r1]
- bl sub_8042ABC
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08042B60: .4byte gSaveBlock1 + 0x2F9C
-_08042B64: .4byte gSpecialVar_0x8004
- thumb_func_end sub_8042B4C
-
- thumb_func_start EggHatchCreateMonSprite
-EggHatchCreateMonSprite: @ 8042B68
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r1, r2, 24
- adds r2, r1, 0
- movs r5, 0
- mov r9, r5
- movs r7, 0
- cmp r3, 0
- bne _08042B96
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08042BB0 @ =gPlayerParty
- adds r7, r1, r0
- movs r5, 0x1
-_08042B96:
- cmp r3, 0x1
- bne _08042BA6
- movs r0, 0x64
- adds r1, r2, 0
- muls r1, r0
- ldr r0, _08042BB0 @ =gPlayerParty
- adds r7, r1, r0
- movs r5, 0x3
-_08042BA6:
- cmp r6, 0
- beq _08042BB4
- cmp r6, 0x1
- beq _08042C14
- b _08042C50
- .align 2, 0
-_08042BB0: .4byte gPlayerParty
-_08042BB4:
- adds r0, r7, 0
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r7, 0
- movs r1, 0
- bl GetMonData
- mov r8, r0
- lsls r0, r5, 3
- ldr r1, _08042C04 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08042C08 @ =gMonFrontPicCoords
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- ldr r3, _08042C0C @ =0x02000000
- ldr r6, _08042C10 @ =gUnknown_081FAF4C
- lsls r4, 1
- adds r4, 0x1
- lsls r4, 2
- adds r4, r6
- ldr r4, [r4]
- str r4, [sp]
- str r5, [sp, 0x4]
- mov r4, r8
- str r4, [sp, 0x8]
- bl HandleLoadSpecialPokePic
- adds r0, r7, 0
- bl sub_8040990
- bl LoadCompressedObjectPalette
- b _08042C50
- .align 2, 0
-_08042C04: .4byte gMonFrontPicTable
-_08042C08: .4byte gMonFrontPicCoords
-_08042C0C: .4byte 0x02000000
-_08042C10: .4byte gUnknown_081FAF4C
-_08042C14:
- adds r0, r7, 0
- bl sub_8040990
- ldrh r0, [r0, 0x4]
- adds r1, r5, 0
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08042C60 @ =gUnknown_02024E8C
- movs r1, 0x78
- movs r2, 0x46
- movs r3, 0x6
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r4, _08042C64 @ =gSprites
- lsls r1, r0, 4
- add r1, r9
- lsls r1, 2
- adds r2, r1, r4
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r2]
- adds r4, 0x1C
- adds r1, r4
- ldr r0, _08042C68 @ =SpriteCallbackDummy
- str r0, [r1]
-_08042C50:
- mov r0, r9
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08042C60: .4byte gUnknown_02024E8C
-_08042C64: .4byte gSprites
-_08042C68: .4byte SpriteCallbackDummy
- thumb_func_end EggHatchCreateMonSprite
-
- thumb_func_start VBlankCB_EggHatch
-VBlankCB_EggHatch: @ 8042C6C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end VBlankCB_EggHatch
-
- thumb_func_start EggHatch
-EggHatch: @ 8042C80
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _08042CA8 @ =Task_EggHatch
- movs r1, 0xA
- bl CreateTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08042CA8: .4byte Task_EggHatch
- thumb_func_end EggHatch
-
- thumb_func_start Task_EggHatch
-Task_EggHatch: @ 8042CAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08042CD8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08042CD0
- ldr r0, _08042CDC @ =CB2_EggHatch_0
- bl SetMainCallback2
- ldr r1, _08042CE0 @ =gFieldCallback
- ldr r0, _08042CE4 @ =sub_8080990
- str r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_08042CD0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08042CD8: .4byte gPaletteFade
-_08042CDC: .4byte CB2_EggHatch_0
-_08042CE0: .4byte gFieldCallback
-_08042CE4: .4byte sub_8080990
- thumb_func_end Task_EggHatch
-
- thumb_func_start CB2_EggHatch_0
-CB2_EggHatch_0: @ 8042CE8
- push {r4-r7,lr}
- ldr r0, _08042D04 @ =gMain
- ldr r1, _08042D08 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x8
- bls _08042CF8
- b _08042F6E
-_08042CF8:
- lsls r0, 2
- ldr r1, _08042D0C @ =_08042D10
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08042D04: .4byte gMain
-_08042D08: .4byte 0x0000043c
-_08042D0C: .4byte _08042D10
- .align 2, 0
-_08042D10:
- .4byte _08042D34
- .4byte _08042D90
- .4byte _08042DC4
- .4byte _08042E20
- .4byte _08042E40
- .4byte _08042E74
- .4byte _08042E88
- .4byte _08042EB0
- .4byte _08042F40
-_08042D34:
- movs r0, 0x80
- lsls r0, 19
- movs r2, 0
- strh r2, [r0]
- ldr r1, _08042D74 @ =gUnknown_0300481C
- ldr r0, _08042D78 @ =0x02018000
- str r0, [r1]
- ldr r1, _08042D7C @ =gSpecialVar_0x8004
- ldrh r1, [r1]
- strb r1, [r0, 0x4]
- adds r0, 0x3A
- strb r2, [r0]
- bl ResetTasks
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, _08042D80 @ =VBlankCB_EggHatch
- bl SetVBlankCallback
- ldr r1, _08042D84 @ =gMain
- ldr r2, _08042D88 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl GetCurrentMapMusic
- ldr r1, _08042D8C @ =gSpecialVar_0x8005
- strh r0, [r1]
- b _08042F6E
- .align 2, 0
-_08042D74: .4byte gUnknown_0300481C
-_08042D78: .4byte 0x02018000
-_08042D7C: .4byte gSpecialVar_0x8004
-_08042D80: .4byte VBlankCB_EggHatch
-_08042D84: .4byte gMain
-_08042D88: .4byte 0x0000043c
-_08042D8C: .4byte gSpecialVar_0x8005
-_08042D90:
- ldr r5, _08042DBC @ =gWindowConfig_81E6F84
- adds r0, r5, 0
- bl SetUpWindowConfig
- ldr r4, _08042DC0 @ =gUnknown_0300481C
- ldr r0, [r4]
- adds r0, 0x8
- adds r1, r5, 0
- bl InitWindowFromConfig
- movs r0, 0x14
- bl SetTextWindowBaseTileNum
- ldr r1, [r4]
- adds r1, 0x38
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x8
- bl LoadTextWindowGraphics
- b _08042F04
- .align 2, 0
-_08042DBC: .4byte gWindowConfig_81E6F84
-_08042DC0: .4byte gUnknown_0300481C
-_08042DC4:
- ldr r0, _08042DFC @ =gUnknown_08D00000
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- ldr r0, _08042E00 @ =gUnknown_08D00524
- ldr r4, _08042E04 @ =0x02000000
- movs r2, 0x80
- lsls r2, 4
- adds r1, r4, 0
- bl CpuSet
- ldr r1, _08042E08 @ =0x040000d4
- str r4, [r1]
- ldr r0, _08042E0C @ =0x06002800
- str r0, [r1, 0x4]
- ldr r0, _08042E10 @ =0x80000280
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r0, _08042E14 @ =gUnknown_08D004E0
- movs r1, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, _08042E18 @ =gMain
- ldr r2, _08042E1C @ =0x0000043c
- adds r1, r2
- b _08042F0A
- .align 2, 0
-_08042DFC: .4byte gUnknown_08D00000
-_08042E00: .4byte gUnknown_08D00524
-_08042E04: .4byte 0x02000000
-_08042E08: .4byte 0x040000d4
-_08042E0C: .4byte 0x06002800
-_08042E10: .4byte 0x80000280
-_08042E14: .4byte gUnknown_08D004E0
-_08042E18: .4byte gMain
-_08042E1C: .4byte 0x0000043c
-_08042E20:
- ldr r0, _08042E34 @ =gUnknown_0820A3B0
- bl LoadSpriteSheet
- ldr r0, _08042E38 @ =gUnknown_0820A3B8
- bl LoadSpriteSheet
- ldr r0, _08042E3C @ =gUnknown_0820A3C0
- bl LoadSpritePalette
- b _08042F04
- .align 2, 0
-_08042E34: .4byte gUnknown_0820A3B0
-_08042E38: .4byte gUnknown_0820A3B8
-_08042E3C: .4byte gUnknown_0820A3C0
-_08042E40:
- ldr r0, _08042E64 @ =gSpriteTemplate_820A3C8
- movs r1, 0x78
- movs r2, 0x4B
- movs r3, 0x5
- bl CreateSprite
- ldr r2, _08042E68 @ =gUnknown_0300481C
- ldr r1, [r2]
- strb r0, [r1]
- ldr r0, [r2]
- ldrb r0, [r0, 0x4]
- bl AddHatchedMonToParty
- ldr r1, _08042E6C @ =gMain
- ldr r2, _08042E70 @ =0x0000043c
- adds r1, r2
- b _08042F0A
- .align 2, 0
-_08042E64: .4byte gSpriteTemplate_820A3C8
-_08042E68: .4byte gUnknown_0300481C
-_08042E6C: .4byte gMain
-_08042E70: .4byte 0x0000043c
-_08042E74:
- ldr r0, _08042E84 @ =gUnknown_0300481C
- ldr r0, [r0]
- ldrb r2, [r0, 0x4]
- movs r0, 0
- movs r1, 0
- bl EggHatchCreateMonSprite
- b _08042F04
- .align 2, 0
-_08042E84: .4byte gUnknown_0300481C
-_08042E88:
- ldr r4, _08042EA4 @ =gUnknown_0300481C
- ldr r0, [r4]
- ldrb r2, [r0, 0x4]
- movs r0, 0
- movs r1, 0x1
- bl EggHatchCreateMonSprite
- ldr r1, [r4]
- strb r0, [r1, 0x1]
- ldr r1, _08042EA8 @ =gMain
- ldr r2, _08042EAC @ =0x0000043c
- adds r1, r2
- b _08042F0A
- .align 2, 0
-_08042EA4: .4byte gUnknown_0300481C
-_08042EA8: .4byte gMain
-_08042EAC: .4byte 0x0000043c
-_08042EB0:
- ldr r0, _08042F14 @ =REG_BG2CNT
- ldr r2, _08042F18 @ =0x00004c06
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _08042F1C @ =gUnknown_0820C9F8
- movs r1, 0x10
- movs r2, 0xA0
- bl LoadPalette
- ldr r3, _08042F20 @ =gUnknown_0820CA98
- ldr r4, _08042F24 @ =0x06004000
- movs r5, 0x98
- lsls r5, 5
- ldr r1, _08042F28 @ =0x040000d4
- ldr r6, _08042F2C @ =0x80000800
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_08042ED6:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _08042ED6
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _08042F30 @ =gUnknown_0820F798
- ldr r2, _08042F34 @ =0x06006000
- ldr r0, _08042F28 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _08042F2C @ =0x80000800
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
-_08042F04:
- ldr r1, _08042F38 @ =gMain
- ldr r0, _08042F3C @ =0x0000043c
- adds r1, r0
-_08042F0A:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08042F6E
- .align 2, 0
-_08042F14: .4byte REG_BG2CNT
-_08042F18: .4byte 0x00004c06
-_08042F1C: .4byte gUnknown_0820C9F8
-_08042F20: .4byte gUnknown_0820CA98
-_08042F24: .4byte 0x06004000
-_08042F28: .4byte 0x040000d4
-_08042F2C: .4byte 0x80000800
-_08042F30: .4byte gUnknown_0820F798
-_08042F34: .4byte 0x06006000
-_08042F38: .4byte gMain
-_08042F3C: .4byte 0x0000043c
-_08042F40:
- ldr r1, _08042F74 @ =REG_BG1CNT
- ldr r2, _08042F78 @ =0x00000501
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08042F7C @ =REG_BG0HOFS
- movs r4, 0
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r0, _08042F80 @ =CB2_EggHatch_1
- bl SetMainCallback2
- ldr r0, _08042F84 @ =gUnknown_0300481C
- ldr r0, [r0]
- strb r4, [r0, 0x2]
-_08042F6E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08042F74: .4byte REG_BG1CNT
-_08042F78: .4byte 0x00000501
-_08042F7C: .4byte REG_BG0HOFS
-_08042F80: .4byte CB2_EggHatch_1
-_08042F84: .4byte gUnknown_0300481C
- thumb_func_end CB2_EggHatch_0
-
- thumb_func_start EggHatchSetMonNickname
-EggHatchSetMonNickname: @ 8042F88
- push {lr}
- ldr r0, _08042FA8 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08042FAC @ =gPlayerParty
- adds r0, r1
- ldr r2, _08042FB0 @ =gStringVar3
- movs r1, 0x2
- bl SetMonData
- ldr r0, _08042FB4 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08042FA8: .4byte gSpecialVar_0x8004
-_08042FAC: .4byte gPlayerParty
-_08042FB0: .4byte gStringVar3
-_08042FB4: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end EggHatchSetMonNickname
-
- thumb_func_start Task_EggHatchPlayBGM
-Task_EggHatchPlayBGM: @ 8042FB8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08043004 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08042FD4
- bl StopMapMusic
-_08042FD4:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08042FE4
- movs r0, 0xBC
- lsls r0, 1
- bl PlayBGM
-_08042FE4:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x3C
- ble _08042FF8
- ldr r0, _08043008 @ =0x00000179
- bl PlayBGM
- adds r0, r5, 0
- bl DestroyTask
-_08042FF8:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08043004: .4byte gTasks
-_08043008: .4byte 0x00000179
- thumb_func_end Task_EggHatchPlayBGM
-
- thumb_func_start CB2_EggHatch_1
-CB2_EggHatch_1: @ 804300C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- ldr r1, _08043030 @ =gUnknown_0300481C
- ldr r0, [r1]
- ldrb r0, [r0, 0x2]
- adds r5, r1, 0
- cmp r0, 0xB
- bls _08043026
- b _080432BA
-_08043026:
- lsls r0, 2
- ldr r1, _08043034 @ =_08043038
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08043030: .4byte gUnknown_0300481C
-_08043034: .4byte _08043038
- .align 2, 0
-_08043038:
- .4byte _08043068
- .4byte _080430A0
- .4byte _080430C0
- .4byte _080430F8
- .4byte _08043124
- .4byte _08043164
- .4byte _08043172
- .4byte _08043180
- .4byte _080431B8
- .4byte _080431DA
- .4byte _08043288
- .4byte _080432A8
-_08043068:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xBA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08043098 @ =gUnknown_0300481C
- ldr r1, [r0]
- ldrb r0, [r1, 0x2]
- adds r0, 0x1
- strb r0, [r1, 0x2]
- ldr r0, _0804309C @ =Task_EggHatchPlayBGM
- movs r1, 0x5
- bl CreateTask
- b _080432BA
- .align 2, 0
-_08043098: .4byte gUnknown_0300481C
-_0804309C: .4byte Task_EggHatchPlayBGM
-_080430A0:
- ldr r0, _080430BC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080430B2
- b _080432BA
-_080430B2:
- ldr r0, [r5]
- strb r1, [r0, 0x3]
- ldr r1, [r5]
- b _0804329C
- .align 2, 0
-_080430BC: .4byte gPaletteFade
-_080430C0:
- ldr r1, [r5]
- ldrb r0, [r1, 0x3]
- adds r0, 0x1
- strb r0, [r1, 0x3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1E
- bhi _080430D2
- b _080432BA
-_080430D2:
- ldr r1, [r5]
- ldrb r0, [r1, 0x2]
- adds r0, 0x1
- strb r0, [r1, 0x2]
- ldr r2, _080430F0 @ =gSprites
- ldr r0, [r5]
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080430F4 @ =SpriteCB_Egg_0
- str r1, [r0]
- b _080432BA
- .align 2, 0
-_080430F0: .4byte gSprites
-_080430F4: .4byte SpriteCB_Egg_0
-_080430F8:
- ldr r2, _0804311C @ =gSprites
- ldr r3, [r5]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08043120 @ =SpriteCallbackDummy
- cmp r1, r0
- beq _08043112
- b _080432BA
-_08043112:
- ldrb r0, [r3, 0x2]
- adds r0, 0x1
- strb r0, [r3, 0x2]
- b _080432BA
- .align 2, 0
-_0804311C: .4byte gSprites
-_08043120: .4byte SpriteCallbackDummy
-_08043124:
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08043150 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08043154 @ =gStringVar1
- bl GetMonNick
- ldr r4, _08043158 @ =gStringVar4
- ldr r1, _0804315C @ =gOtherText_HatchedFromEgg
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- bl EggHatchPrintMessage2
- ldr r0, _08043160 @ =0x00000173
- bl PlayFanfare
- ldr r1, [r5]
- b _0804329C
- .align 2, 0
-_08043150: .4byte gPlayerParty
-_08043154: .4byte gStringVar1
-_08043158: .4byte gStringVar4
-_0804315C: .4byte gOtherText_HatchedFromEgg
-_08043160: .4byte 0x00000173
-_08043164:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- bne _08043170
- b _080432BA
-_08043170:
- b _08043298
-_08043172:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- bne _0804317E
- b _080432BA
-_0804317E:
- b _08043298
-_08043180:
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080431A8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080431AC @ =gStringVar1
- bl GetMonNick
- ldr r4, _080431B0 @ =gStringVar4
- ldr r1, _080431B4 @ =gOtherText_NickHatchPrompt
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- bl EggHatchPrintMessage1
- ldr r1, [r5]
- b _0804329C
- .align 2, 0
-_080431A8: .4byte gPlayerParty
-_080431AC: .4byte gStringVar1
-_080431B0: .4byte gStringVar4
-_080431B4: .4byte gOtherText_NickHatchPrompt
-_080431B8:
- bl EggHatchUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _080432BA
- movs r0, 0x16
- movs r1, 0x8
- movs r2, 0x1B
- movs r3, 0xD
- bl MenuDrawTextWindow
- movs r0, 0x16
- movs r1, 0x8
- movs r2, 0x4
- bl InitYesNoMenu
- b _08043298
-_080431DA:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- movs r1, 0x2
- negs r1, r1
- cmp r0, r1
- beq _080432BA
- lsls r0, r2, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08043298
- cmp r1, 0x1
- beq _08043298
- ldr r0, _08043278 @ =gUnknown_0300481C
- mov r9, r0
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- movs r1, 0x64
- mov r8, r1
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldr r6, _0804327C @ =gPlayerParty
- adds r0, r6
- ldr r1, _08043280 @ =gStringVar3
- mov r10, r1
- bl GetMonNick
- mov r2, r9
- ldr r0, [r2]
- ldrb r0, [r0, 0x4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r2, r9
- ldr r0, [r2]
- ldrb r0, [r0, 0x4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- bl GetMonGender
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r2, r9
- ldr r0, [r2]
- ldrb r0, [r0, 0x4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r0, _08043284 @ =EggHatchSetMonNickname
- str r0, [sp, 0x4]
- movs r0, 0x3
- mov r1, r10
- adds r2, r5, 0
- adds r3, r4, 0
- bl DoNamingScreen
- b _080432BA
- .align 2, 0
-_08043278: .4byte gUnknown_0300481C
-_0804327C: .4byte gPlayerParty
-_08043280: .4byte gStringVar3
-_08043284: .4byte EggHatchSetMonNickname
-_08043288:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_08043298:
- ldr r0, _080432A4 @ =gUnknown_0300481C
- ldr r1, [r0]
-_0804329C:
- ldrb r0, [r1, 0x2]
- adds r0, 0x1
- strb r0, [r1, 0x2]
- b _080432BA
- .align 2, 0
-_080432A4: .4byte gUnknown_0300481C
-_080432A8:
- ldr r0, _080432DC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080432BA
- ldr r0, _080432E0 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
-_080432BA:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080432DC: .4byte gPaletteFade
-_080432E0: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end CB2_EggHatch_1
-
- thumb_func_start SpriteCB_Egg_0
-SpriteCB_Egg_0: @ 80432E4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _08043304
- ldr r0, _08043300 @ =SpriteCB_Egg_1
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x2E]
- b _08043334
- .align 2, 0
-_08043300: .4byte SpriteCB_Egg_1
-_08043304:
- ldrh r0, [r4, 0x30]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x1
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- bne _08043334
- movs r0, 0x17
- bl PlaySE
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- bl CreateRandomEggShardSprite
-_08043334:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end SpriteCB_Egg_0
-
- thumb_func_start SpriteCB_Egg_1
-SpriteCB_Egg_1: @ 804333C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _08043398
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _0804336C
- ldr r0, _08043368 @ =SpriteCB_Egg_2
- str r0, [r4, 0x1C]
- strh r1, [r4, 0x2E]
- strh r1, [r4, 0x32]
- b _08043398
- .align 2, 0
-_08043368: .4byte SpriteCB_Egg_2
-_0804336C:
- ldrh r0, [r4, 0x30]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x2
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- bne _08043398
- movs r0, 0x17
- bl PlaySE
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
-_08043398:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end SpriteCB_Egg_1
-
- thumb_func_start SpriteCB_Egg_2
-SpriteCB_Egg_2: @ 80433A0
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _0804345A
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x26
- ble _08043418
- ldr r0, _08043404 @ =SpriteCB_Egg_3
- str r0, [r4, 0x1C]
- strh r6, [r4, 0x2E]
- ldr r5, _08043408 @ =gUnknown_0300481C
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0804340C @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- ldr r4, _08043410 @ =gSprites
- ldr r3, [r5]
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r6, [r1, 0x24]
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldr r2, _08043414 @ =gMonFrontPicCoords
- lsrs r0, 14
- adds r0, r2
- ldrb r0, [r0, 0x1]
- strh r0, [r1, 0x26]
- b _0804345A
- .align 2, 0
-_08043404: .4byte SpriteCB_Egg_3
-_08043408: .4byte gUnknown_0300481C
-_0804340C: .4byte gPlayerParty
-_08043410: .4byte gSprites
-_08043414: .4byte gMonFrontPicCoords
-_08043418:
- ldrh r0, [r4, 0x30]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x2
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- bne _0804344C
- movs r0, 0x17
- bl PlaySE
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- bl CreateRandomEggShardSprite
- bl CreateRandomEggShardSprite
-_0804344C:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1E
- bne _0804345A
- movs r0, 0x17
- bl PlaySE
-_0804345A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end SpriteCB_Egg_2
-
- thumb_func_start SpriteCB_Egg_3
-SpriteCB_Egg_3: @ 8043460
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- ble _0804347A
- ldr r0, _08043480 @ =SpriteCB_Egg_4
- str r0, [r1, 0x1C]
- movs r0, 0
- strh r0, [r1, 0x2E]
-_0804347A:
- pop {r0}
- bx r0
- .align 2, 0
-_08043480: .4byte SpriteCB_Egg_4
- thumb_func_end SpriteCB_Egg_3
-
- thumb_func_start SpriteCB_Egg_4
-SpriteCB_Egg_4: @ 8043484
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080434A4
- movs r1, 0x1
- negs r1, r1
- ldr r0, _080434F8 @ =0x0000ffff
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_080434A4:
- ldrh r0, [r5, 0x2E]
- cmp r0, 0x3
- bhi _080434C0
- movs r4, 0
-_080434AC:
- bl CreateRandomEggShardSprite
- lsls r0, r4, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080434AC
-_080434C0:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- ldr r0, _080434FC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080434EE
- movs r0, 0x71
- bl PlaySE
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08043500 @ =SpriteCB_Egg_5
- str r0, [r5, 0x1C]
- strh r4, [r5, 0x2E]
-_080434EE:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080434F8: .4byte 0x0000ffff
-_080434FC: .4byte gPaletteFade
-_08043500: .4byte SpriteCB_Egg_5
- thumb_func_end SpriteCB_Egg_4
-
- thumb_func_start SpriteCB_Egg_5
-SpriteCB_Egg_5: @ 8043504
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08043540
- ldr r4, _08043594 @ =gSprites
- ldr r3, _08043598 @ =gUnknown_0300481C
- ldr r0, [r3]
- ldrb r1, [r0, 0x1]
- 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]
- ldr r0, [r3]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_08043540:
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x8
- bne _0804355A
- movs r1, 0x1
- negs r1, r1
- ldr r0, _0804359C @ =0x0000ffff
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_0804355A:
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x9
- bgt _08043578
- ldr r2, _08043594 @ =gSprites
- ldr r0, _08043598 @ =gUnknown_0300481C
- ldr r0, [r0]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- subs r1, 0x1
- strh r1, [r0, 0x22]
-_08043578:
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x28
- ble _08043586
- ldr r0, _080435A0 @ =SpriteCallbackDummy
- str r0, [r5, 0x1C]
-_08043586:
- adds r0, r1, 0x1
- strh r0, [r5, 0x2E]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08043594: .4byte gSprites
-_08043598: .4byte gUnknown_0300481C
-_0804359C: .4byte 0x0000ffff
-_080435A0: .4byte SpriteCallbackDummy
- thumb_func_end SpriteCB_Egg_5
-
- thumb_func_start SpriteCB_EggShard
-SpriteCB_EggShard: @ 80435A4
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x36]
- adds r0, r1
- strh r0, [r2, 0x36]
- ldrh r1, [r2, 0x32]
- ldrh r3, [r2, 0x38]
- adds r0, r1, r3
- strh r0, [r2, 0x38]
- movs r4, 0x36
- ldrsh r0, [r2, r4]
- cmp r0, 0
- bge _080435C2
- adds r0, 0xFF
-_080435C2:
- asrs r0, 8
- strh r0, [r2, 0x24]
- movs r3, 0x38
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bge _080435D0
- adds r0, 0xFF
-_080435D0:
- asrs r0, 8
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x34]
- adds r3, r1, r0
- strh r3, [r2, 0x32]
- movs r4, 0x22
- ldrsh r1, [r2, r4]
- movs r4, 0x26
- ldrsh r0, [r2, r4]
- adds r0, r1, r0
- adds r1, 0x14
- cmp r0, r1
- ble _080435F6
- lsls r0, r3, 16
- cmp r0, 0
- ble _080435F6
- adds r0, r2, 0
- bl DestroySprite
-_080435F6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end SpriteCB_EggShard
-
- thumb_func_start CreateRandomEggShardSprite
-CreateRandomEggShardSprite: @ 80435FC
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r3, _0804364C @ =gEggShardVelocities
- ldr r0, _08043650 @ =gUnknown_0300481C
- ldr r4, [r0]
- adds r4, 0x3A
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r1, r0, r3
- ldrh r6, [r1]
- adds r3, 0x2
- adds r0, r3
- ldrh r5, [r0]
- adds r2, 0x1
- strb r2, [r4]
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsls r6, 16
- asrs r6, 16
- lsls r5, 16
- asrs r5, 16
- movs r0, 0x64
- str r0, [sp]
- lsrs r1, 16
- str r1, [sp, 0x4]
- movs r0, 0x78
- movs r1, 0x3C
- adds r2, r6, 0
- adds r3, r5, 0
- bl CreateEggShardSprite
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804364C: .4byte gEggShardVelocities
-_08043650: .4byte gUnknown_0300481C
- thumb_func_end CreateRandomEggShardSprite
-
- thumb_func_start CreateEggShardSprite
-CreateEggShardSprite: @ 8043654
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- mov r8, r3
- ldr r0, [sp, 0x1C]
- mov r9, r0
- ldr r1, [sp, 0x20]
- mov r10, r1
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- mov r1, r9
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _080436CC @ =gSpriteTemplate_820A418
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x4
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080436D0 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r6, [r0, 0x30]
- mov r1, r8
- strh r1, [r0, 0x32]
- mov r1, r9
- strh r1, [r0, 0x34]
- mov r1, r10
- bl StartSpriteAnim
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080436CC: .4byte gSpriteTemplate_820A418
-_080436D0: .4byte gSprites
- thumb_func_end CreateEggShardSprite
-
- thumb_func_start EggHatchPrintMessage1
-EggHatchPrintMessage1: @ 80436D4
- push {lr}
- sub sp, 0x4
- adds r1, r0, 0
- ldr r0, _080436F8 @ =gUnknown_0300481C
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x8
- adds r2, 0x38
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x3
- bl sub_8002EB0
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080436F8: .4byte gUnknown_0300481C
- thumb_func_end EggHatchPrintMessage1
-
- thumb_func_start EggHatchPrintMessage2
-EggHatchPrintMessage2: @ 80436FC
- push {lr}
- sub sp, 0x4
- adds r1, r0, 0
- ldr r0, _08043720 @ =gUnknown_0300481C
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x8
- adds r2, 0x38
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x3
- bl sub_8003460
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08043720: .4byte gUnknown_0300481C
- thumb_func_end EggHatchPrintMessage2
-
- thumb_func_start EggHatchUpdateWindowText
-EggHatchUpdateWindowText: @ 8043724
- push {lr}
- ldr r0, _08043738 @ =gUnknown_0300481C
- ldr r0, [r0]
- adds r0, 0x8
- bl sub_80035AC
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08043738: .4byte gUnknown_0300481C
- thumb_func_end EggHatchUpdateWindowText
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/evolution_graphics.s b/asm/evolution_graphics.s
deleted file mode 100644
index 1130e085e..000000000
--- a/asm/evolution_graphics.s
+++ /dev/null
@@ -1,1829 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start nullsub_84
-nullsub_84: @ 814951C
- bx lr
- thumb_func_end nullsub_84
-
- thumb_func_start sub_8149520
-sub_8149520: @ 8149520
- push {r4,r5,lr}
- sub sp, 0x4
- movs r4, 0
- ldr r5, _08149554 @ =gUnknown_08416ED0
-_08149528:
- adds r0, r4, 0
- adds r0, 0x14
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r4, 1
- adds r1, r5
- ldrh r1, [r1]
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xB
- bls _08149528
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08149554: .4byte gUnknown_08416ED0
- thumb_func_end sub_8149520
-
- thumb_func_start sub_8149558
-sub_8149558: @ 8149558
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- ble _08149606
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- adds r1, r0, 0
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0x50
- bl __divsi3
- movs r1, 0x58
- subs r1, r0
- strh r1, [r4, 0x22]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08149592
- adds r0, 0x3
-_08149592:
- asrs r0, 2
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3A]
- adds r0, 0x4
- strh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081495BC
- ldrh r0, [r4, 0x38]
- subs r0, 0x1
- strh r0, [r4, 0x38]
-_081495BC:
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- cmp r0, 0
- ble _081495D2
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1
- b _081495D8
-_081495D2:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x14
-_081495D8:
- strb r0, [r1]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _081495E4
- adds r0, 0x3
-_081495E4:
- asrs r0, 2
- adds r0, 0x14
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1F
- bls _081495F2
- movs r2, 0x1F
-_081495F2:
- movs r0, 0x1F
- ands r2, r0
- lsls r2, 1
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x3]
- b _0814960C
-_08149606:
- adds r0, r4, 0
- bl DestroySprite
-_0814960C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8149558
-
- thumb_func_start sub_8149614
-sub_8149614: @ 8149614
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08149664 @ =gSpriteTemplate_8416EB8
- movs r1, 0x78
- movs r2, 0x58
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0814965E
- ldr r4, _08149668 @ =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r2, r3, r4
- movs r1, 0
- movs r0, 0x30
- strh r0, [r2, 0x38]
- strh r5, [r2, 0x3A]
- strh r1, [r2, 0x3C]
- ldrb r1, [r2, 0x1]
- subs r0, 0x34
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r2, 0x3]
- movs r1, 0x3E
- orrs r0, r1
- strb r0, [r2, 0x3]
- adds r4, 0x1C
- adds r3, r4
- ldr r0, _0814966C @ =sub_8149558
- str r0, [r3]
-_0814965E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08149664: .4byte gSpriteTemplate_8416EB8
-_08149668: .4byte gSprites
-_0814966C: .4byte sub_8149558
- thumb_func_end sub_8149614
-
- thumb_func_start sub_8149670
-sub_8149670: @ 8149670
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r0, 0x57
- bgt _081496D6
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- adds r1, r0, 0
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0x5
- bl __divsi3
- adds r0, 0x8
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _081496A8
- adds r0, 0x3
-_081496A8:
- asrs r0, 2
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r0, 26
- lsrs r0, 24
- movs r1, 0x28
- bl Sin
- adds r0, 0x8
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- b _081496DC
-_081496D6:
- adds r0, r4, 0
- bl DestroySprite
-_081496DC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8149670
-
- thumb_func_start sub_81496E4
-sub_81496E4: @ 81496E4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08149740 @ =gSpriteTemplate_8416EB8
- movs r1, 0x78
- movs r2, 0x8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0814973A
- ldr r4, _08149744 @ =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r2, r3, r4
- movs r1, 0
- movs r0, 0x8
- strh r0, [r2, 0x38]
- strh r5, [r2, 0x3A]
- strh r1, [r2, 0x3C]
- ldrb r1, [r2, 0x1]
- subs r0, 0xC
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x32
- orrs r0, r1
- strb r0, [r2, 0x3]
- adds r2, 0x43
- movs r0, 0x1
- strb r0, [r2]
- adds r4, 0x1C
- adds r3, r4
- ldr r0, _08149748 @ =sub_8149670
- str r0, [r3]
-_0814973A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08149740: .4byte gSpriteTemplate_8416EB8
-_08149744: .4byte gSprites
-_08149748: .4byte sub_8149670
- thumb_func_end sub_81496E4
-
- thumb_func_start sub_814974C
-sub_814974C: @ 814974C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- ble _08149788
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x38]
- ldrh r1, [r4, 0x34]
- subs r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x3A]
- adds r0, 0x4
- strh r0, [r4, 0x3A]
- b _0814978E
-_08149788:
- adds r0, r4, 0
- bl DestroySprite
-_0814978E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_814974C
-
- thumb_func_start sub_8149794
-sub_8149794: @ 8149794
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _081497F0 @ =gSpriteTemplate_8416EB8
- movs r1, 0x78
- movs r2, 0x38
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081497EA
- ldr r4, _081497F4 @ =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r2, r3, r4
- movs r1, 0
- strh r5, [r2, 0x34]
- movs r0, 0x78
- strh r0, [r2, 0x38]
- strh r6, [r2, 0x3A]
- strh r1, [r2, 0x3C]
- ldrb r1, [r2, 0x1]
- subs r0, 0x7C
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r2, 0x3]
- movs r1, 0x3E
- orrs r0, r1
- strb r0, [r2, 0x3]
- adds r2, 0x43
- movs r0, 0x1
- strb r0, [r2]
- adds r4, 0x1C
- adds r3, r4
- ldr r0, _081497F8 @ =sub_814974C
- str r0, [r3]
-_081497EA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081497F0: .4byte gSpriteTemplate_8416EB8
-_081497F4: .4byte gSprites
-_081497F8: .4byte sub_814974C
- thumb_func_end sub_8149794
-
- thumb_func_start sub_81497FC
-sub_81497FC: @ 81497FC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x3C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08149810
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
-_08149810:
- ldrh r1, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0x7F
- bgt _081498C0
- lsls r0, r1, 24
- lsrs r0, 24
- movs r5, 0x38
- ldrsh r1, [r4, r5]
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- muls r0, r1
- movs r1, 0x3
- bl __divsi3
- adds r0, 0x78
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x3A]
- adds r3, r0, 0x1
- strh r3, [r4, 0x3A]
- movs r5, 0x3A
- ldrsh r1, [r4, r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- cmp r0, 0
- bge _08149854
- adds r0, 0x7F
-_08149854:
- asrs r0, 7
- movs r1, 0x1F
- subs r1, r0
- lsls r1, 24
- lsrs r2, r1, 24
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0x40
- ble _08149870
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1
- strb r0, [r1]
- b _081498A0
-_08149870:
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x14
- strb r0, [r1]
- ldrh r1, [r4, 0x3A]
- movs r5, 0x3A
- ldrsh r0, [r4, r5]
- cmp r0, 0x70
- ble _081498A0
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081498A0
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
-_081498A0:
- cmp r2, 0x13
- bhi _081498A6
- movs r2, 0x14
-_081498A6:
- movs r0, 0x1F
- ands r2, r0
- lsls r2, 1
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x3]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- b _081498C6
-_081498C0:
- adds r0, r4, 0
- bl DestroySprite
-_081498C6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81497FC
-
- thumb_func_start sub_81498CC
-sub_81498CC: @ 81498CC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _08149948 @ =gSpriteTemplate_8416EB8
- movs r1, 0x78
- movs r2, 0x38
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _0814993C
- bl Random
- ldr r6, _0814994C @ =gSprites
- lsls r5, r4, 4
- adds r5, r4
- lsls r5, 2
- adds r4, r5, r6
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- bl __umodsi3
- movs r1, 0x3
- subs r1, r0
- movs r0, 0
- mov r8, r0
- strh r1, [r4, 0x34]
- bl Random
- movs r1, 0x3F
- ands r1, r0
- adds r1, 0x30
- strh r1, [r4, 0x38]
- mov r0, r8
- strh r0, [r4, 0x3C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0x3E
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r4, 0x43
- movs r0, 0x14
- strb r0, [r4]
- adds r6, 0x1C
- adds r5, r6
- ldr r0, _08149950 @ =sub_81497FC
- str r0, [r5]
-_0814993C:
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149948: .4byte gSpriteTemplate_8416EB8
-_0814994C: .4byte gSprites
-_08149950: .4byte sub_81497FC
- thumb_func_end sub_81498CC
-
- thumb_func_start sub_8149954
-sub_8149954: @ 8149954
- push {lr}
- ldr r0, _08149968 @ =gUnknown_08416E84
- bl LoadCompressedObjectPic
- ldr r0, _0814996C @ =gUnknown_08416E94
- bl LoadSpritePalettes
- pop {r0}
- bx r0
- .align 2, 0
-_08149968: .4byte gUnknown_08416E84
-_0814996C: .4byte gUnknown_08416E94
- thumb_func_end sub_8149954
-
- thumb_func_start sub_8149970
-sub_8149970: @ 8149970
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08149998 @ =sub_81499A0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0814999C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08149998: .4byte sub_81499A0
-_0814999C: .4byte gTasks
- thumb_func_end sub_8149970
-
- thumb_func_start sub_81499A0
-sub_81499A0: @ 81499A0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8149520
- ldr r0, _081499E4 @ =gTasks
- lsls r5, r4, 2
- adds r5, r4
- lsls r5, 3
- adds r5, r0
- movs r0, 0
- strh r0, [r5, 0x26]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- movs r0, 0x3
- lsls r0, r1
- ldr r1, _081499E8 @ =0x00007fff
- str r1, [sp]
- movs r1, 0xA
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _081499EC @ =sub_81499F0
- str r0, [r5]
- movs r0, 0x8C
- bl PlaySE
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081499E4: .4byte gTasks
-_081499E8: .4byte 0x00007fff
-_081499EC: .4byte sub_81499F0
- thumb_func_end sub_81499A0
-
- thumb_func_start sub_81499F0
-sub_81499F0: @ 81499F0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08149A48 @ =gTasks
- lsls r3, r5, 2
- adds r0, r3, r5
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0x26]
- movs r4, 0x26
- ldrsh r0, [r1, r4]
- cmp r0, 0x3F
- bgt _08149A4C
- movs r0, 0x7
- ands r0, r2
- adds r7, r3, 0
- cmp r0, 0
- bne _08149A36
- movs r4, 0
- adds r6, r1, 0
-_08149A18:
- ldrh r1, [r6, 0x26]
- movs r0, 0x78
- ands r0, r1
- lsls r0, 1
- lsls r1, r4, 6
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_8149614
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08149A18
-_08149A36:
- ldr r0, _08149A48 @ =gTasks
- adds r1, r7, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08149A54
- .align 2, 0
-_08149A48: .4byte gTasks
-_08149A4C:
- movs r0, 0x60
- strh r0, [r1, 0x26]
- ldr r0, _08149A5C @ =sub_8149A60
- str r0, [r1]
-_08149A54:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08149A5C: .4byte sub_8149A60
- thumb_func_end sub_81499F0
-
- thumb_func_start sub_8149A60
-sub_8149A60: @ 8149A60
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08149A80 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- ldrh r3, [r1, 0x26]
- movs r4, 0x26
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _08149A84
- subs r0, r3, 0x1
- strh r0, [r1, 0x26]
- b _08149A8A
- .align 2, 0
-_08149A80: .4byte gTasks
-_08149A84:
- adds r0, r2, 0
- bl DestroyTask
-_08149A8A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8149A60
-
- thumb_func_start sub_8149A90
-sub_8149A90: @ 8149A90
- push {lr}
- ldr r0, _08149AA4 @ =sub_8149AA8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08149AA4: .4byte sub_8149AA8
- thumb_func_end sub_8149A90
-
- thumb_func_start sub_8149AA8
-sub_8149AA8: @ 8149AA8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8149520
- ldr r1, _08149AD4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x26]
- ldr r1, _08149AD8 @ =sub_8149ADC
- str r1, [r0]
- movs r0, 0xB7
- bl PlaySE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149AD4: .4byte gTasks
-_08149AD8: .4byte sub_8149ADC
- thumb_func_end sub_8149AA8
-
- thumb_func_start sub_8149ADC
-sub_8149ADC: @ 8149ADC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08149B20 @ =gTasks
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r3, 0x26
- ldrsh r0, [r1, r3]
- cmp r0, 0x5F
- bgt _08149B24
- adds r6, r2, 0
- cmp r0, 0x5
- bgt _08149B0E
- movs r4, 0
-_08149AFC:
- lsls r0, r4, 28
- lsrs r0, 24
- bl sub_81496E4
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x8
- bls _08149AFC
-_08149B0E:
- ldr r0, _08149B20 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08149B28
- .align 2, 0
-_08149B20: .4byte gTasks
-_08149B24:
- ldr r0, _08149B30 @ =sub_8149B34
- str r0, [r1]
-_08149B28:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149B30: .4byte sub_8149B34
- thumb_func_end sub_8149ADC
-
- thumb_func_start sub_8149B34
-sub_8149B34: @ 8149B34
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- pop {r0}
- bx r0
- thumb_func_end sub_8149B34
-
- thumb_func_start sub_8149B44
-sub_8149B44: @ 8149B44
- push {lr}
- ldr r0, _08149B58 @ =sub_8149B5C
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08149B58: .4byte sub_8149B5C
- thumb_func_end sub_8149B44
-
- thumb_func_start sub_8149B5C
-sub_8149B5C: @ 8149B5C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8149520
- ldr r1, _08149B88 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x26]
- ldr r1, _08149B8C @ =sub_8149B90
- str r1, [r0]
- movs r0, 0x66
- bl PlaySE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149B88: .4byte gTasks
-_08149B8C: .4byte sub_8149B90
- thumb_func_end sub_8149B5C
-
- thumb_func_start sub_8149B90
-sub_8149B90: @ 8149B90
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08149BFC @ =gTasks
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r3, 0x26
- ldrsh r0, [r1, r3]
- cmp r0, 0x2F
- bgt _08149C00
- adds r6, r2, 0
- cmp r0, 0
- bne _08149BC4
- movs r4, 0
-_08149BB0:
- lsls r0, r4, 28
- lsrs r0, 24
- movs r1, 0x4
- bl sub_8149794
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _08149BB0
-_08149BC4:
- ldr r0, _08149BFC @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- movs r2, 0x26
- ldrsh r0, [r1, r2]
- cmp r0, 0x20
- bne _08149BEA
- movs r4, 0
-_08149BD6:
- lsls r0, r4, 28
- lsrs r0, 24
- movs r1, 0x8
- bl sub_8149794
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _08149BD6
-_08149BEA:
- ldr r0, _08149BFC @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08149C04
- .align 2, 0
-_08149BFC: .4byte gTasks
-_08149C00:
- ldr r0, _08149C0C @ =sub_8149C10
- str r0, [r1]
-_08149C04:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149C0C: .4byte sub_8149C10
- thumb_func_end sub_8149B90
-
- thumb_func_start sub_8149C10
-sub_8149C10: @ 8149C10
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- pop {r0}
- bx r0
- thumb_func_end sub_8149C10
-
- thumb_func_start sub_8149C20
-sub_8149C20: @ 8149C20
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08149C48 @ =sub_8149C50
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08149C4C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xC]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08149C48: .4byte sub_8149C50
-_08149C4C: .4byte gTasks
- thumb_func_end sub_8149C20
-
- thumb_func_start sub_8149C50
-sub_8149C50: @ 8149C50
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8149520
- ldr r0, _08149C98 @ =gTasks
- lsls r5, r4, 2
- adds r5, r4
- lsls r5, 3
- adds r5, r0
- movs r0, 0
- strh r0, [r5, 0x26]
- ldr r0, _08149C9C @ =gPlttBufferFaded + 0x40
- ldr r1, _08149CA0 @ =gPlttBufferUnfaded + 0x40
- movs r2, 0x30
- bl CpuSet
- ldr r0, _08149CA4 @ =0xfff9001c
- ldr r1, _08149CA8 @ =0x00007fff
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08149CAC @ =sub_8149CB0
- str r0, [r5]
- movs r0, 0xCA
- bl PlaySE
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08149C98: .4byte gTasks
-_08149C9C: .4byte gPlttBufferFaded + 0x40
-_08149CA0: .4byte gPlttBufferUnfaded + 0x40
-_08149CA4: .4byte 0xfff9001c
-_08149CA8: .4byte 0x00007fff
-_08149CAC: .4byte sub_8149CB0
- thumb_func_end sub_8149C50
-
- thumb_func_start sub_8149CB0
-sub_8149CB0: @ 8149CB0
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08149CE8 @ =gTasks
- lsls r5, r6, 2
- adds r0, r5, r6
- lsls r0, 3
- adds r1, r0, r1
- movs r0, 0x26
- ldrsh r2, [r1, r0]
- cmp r2, 0x7F
- bgt _08149D2C
- adds r0, r2, 0
- cmp r0, 0
- beq _08149CEC
- cmp r0, 0x20
- beq _08149D00
- cmp r2, 0x31
- bgt _08149D10
- bl Random
- movs r1, 0x7
- ands r0, r1
- bl sub_81498CC
- b _08149D10
- .align 2, 0
-_08149CE8: .4byte gTasks
-_08149CEC:
- movs r4, 0
-_08149CEE:
- adds r0, r4, 0
- bl sub_81498CC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08149CEE
- b _08149D10
-_08149D00:
- ldr r0, _08149D20 @ =0xffff001c
- ldr r1, _08149D24 @ =0x00007fff
- str r1, [sp]
- movs r1, 0x10
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_08149D10:
- ldr r0, _08149D28 @ =gTasks
- adds r1, r5, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08149D30
- .align 2, 0
-_08149D20: .4byte 0xffff001c
-_08149D24: .4byte 0x00007fff
-_08149D28: .4byte gTasks
-_08149D2C:
- ldr r0, _08149D38 @ =sub_8149D3C
- str r0, [r1]
-_08149D30:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149D38: .4byte sub_8149D3C
- thumb_func_end sub_8149CB0
-
- thumb_func_start sub_8149D3C
-sub_8149D3C: @ 8149D3C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08149D58 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08149D54
- adds r0, r2, 0
- bl DestroyTask
-_08149D54:
- pop {r0}
- bx r0
- .align 2, 0
-_08149D58: .4byte gPaletteFade
- thumb_func_end sub_8149D3C
-
- thumb_func_start sub_8149D5C
-sub_8149D5C: @ 8149D5C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08149D84 @ =sub_8149D8C
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08149D88 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xC]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08149D84: .4byte sub_8149D8C
-_08149D88: .4byte gTasks
- thumb_func_end sub_8149D5C
-
- thumb_func_start sub_8149D8C
-sub_8149D8C: @ 8149D8C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8149520
- ldr r0, _08149DD4 @ =gTasks
- lsls r5, r4, 2
- adds r5, r4
- lsls r5, 3
- adds r5, r0
- movs r0, 0
- strh r0, [r5, 0x26]
- ldr r0, _08149DD8 @ =gPlttBufferFaded + 0x40
- ldr r1, _08149DDC @ =gPlttBufferUnfaded + 0x40
- movs r2, 0x30
- bl CpuSet
- ldr r0, _08149DE0 @ =0xfff90001
- ldr r1, _08149DE4 @ =0x00007fff
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08149DE8 @ =sub_8149DEC
- str r0, [r5]
- movs r0, 0xCA
- bl PlaySE
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08149DD4: .4byte gTasks
-_08149DD8: .4byte gPlttBufferFaded + 0x40
-_08149DDC: .4byte gPlttBufferUnfaded + 0x40
-_08149DE0: .4byte 0xfff90001
-_08149DE4: .4byte 0x00007fff
-_08149DE8: .4byte sub_8149DEC
- thumb_func_end sub_8149D8C
-
- thumb_func_start sub_8149DEC
-sub_8149DEC: @ 8149DEC
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08149E24 @ =gTasks
- lsls r5, r6, 2
- adds r0, r5, r6
- lsls r0, 3
- adds r1, r0, r1
- movs r0, 0x26
- ldrsh r2, [r1, r0]
- cmp r2, 0x7F
- bgt _08149E68
- adds r0, r2, 0
- cmp r0, 0
- beq _08149E28
- cmp r0, 0x20
- beq _08149E3C
- cmp r2, 0x31
- bgt _08149E4C
- bl Random
- movs r1, 0x7
- ands r0, r1
- bl sub_81498CC
- b _08149E4C
- .align 2, 0
-_08149E24: .4byte gTasks
-_08149E28:
- movs r4, 0
-_08149E2A:
- adds r0, r4, 0
- bl sub_81498CC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08149E2A
- b _08149E4C
-_08149E3C:
- ldr r0, _08149E5C @ =0xffff0001
- ldr r1, _08149E60 @ =0x00007fff
- str r1, [sp]
- movs r1, 0x10
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_08149E4C:
- ldr r0, _08149E64 @ =gTasks
- adds r1, r5, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08149E6C
- .align 2, 0
-_08149E5C: .4byte 0xffff0001
-_08149E60: .4byte 0x00007fff
-_08149E64: .4byte gTasks
-_08149E68:
- ldr r0, _08149E74 @ =sub_8149D3C
- str r0, [r1]
-_08149E6C:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149E74: .4byte sub_8149D3C
- thumb_func_end sub_8149DEC
-
- thumb_func_start nullsub_85
-nullsub_85: @ 8149E78
- bx lr
- thumb_func_end nullsub_85
-
- thumb_func_start sub_8149E7C
-sub_8149E7C: @ 8149E7C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- movs r1, 0
- ldr r3, _08149FB0 @ =sub_8149FC8
- ldr r2, _08149FB4 @ =0x00007fff
-_08149E96:
- lsls r0, r1, 1
- add r0, sp
- adds r0, 0x4
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _08149E96
- adds r0, r3, 0
- movs r1, 0
- bl CreateTask
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _08149FB8 @ =gTasks
- mov r1, r8
- lsls r6, r1, 2
- add r6, r8
- lsls r6, 3
- adds r6, r0
- strh r5, [r6, 0xA]
- strh r7, [r6, 0xC]
- movs r1, 0x80
- lsls r1, 1
- strh r1, [r6, 0xE]
- movs r0, 0x10
- strh r0, [r6, 0x10]
- movs r4, 0x80
- lsls r4, 9
- str r1, [sp]
- movs r0, 0x1E
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- movs r0, 0x10
- ldrsh r1, [r6, r0]
- adds r0, r4, 0
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r0, 0x1F
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldr r1, _08149FBC @ =gSprites
- mov r9, r1
- lsls r2, r5, 4
- adds r2, r5
- lsls r2, 2
- mov r3, r9
- adds r3, 0x1C
- adds r0, r2, r3
- ldr r1, _08149FC0 @ =nullsub_85
- str r1, [r0]
- add r2, r9
- ldrb r1, [r2, 0x1]
- movs r4, 0x4
- negs r4, r4
- adds r0, r4, 0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x3C
- orrs r0, r1
- strb r0, [r2, 0x3]
- movs r0, 0x3E
- adds r0, r2
- mov r10, r0
- ldrb r1, [r0]
- movs r5, 0x5
- negs r5, r5
- adds r0, r5, 0
- ands r0, r1
- mov r1, r10
- strb r0, [r1]
- ldrb r1, [r2, 0x5]
- lsrs r1, 4
- lsls r1, 5
- ldr r0, _08149FC4 @ =gPlttBufferFaded + 0x200
- mov r10, r0
- add r1, r10
- add r0, sp, 0x4
- movs r2, 0x10
- str r3, [sp, 0x24]
- bl CpuSet
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- ldr r3, [sp, 0x24]
- adds r3, r1, r3
- ldr r0, _08149FC0 @ =nullsub_85
- str r0, [r3]
- add r1, r9
- ldrb r0, [r1, 0x1]
- ands r4, r0
- movs r0, 0x1
- orrs r4, r0
- strb r4, [r1, 0x1]
- ldrb r0, [r1, 0x3]
- movs r2, 0x3E
- orrs r0, r2
- strb r0, [r1, 0x3]
- adds r2, r1, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- ands r5, r0
- strb r5, [r2]
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- lsls r1, 5
- add r1, r10
- add r0, sp, 0x4
- movs r2, 0x10
- bl CpuSet
- movs r1, 0
- strh r1, [r6, 0x18]
- mov r0, r8
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08149FB0: .4byte sub_8149FC8
-_08149FB4: .4byte 0x00007fff
-_08149FB8: .4byte gTasks
-_08149FBC: .4byte gSprites
-_08149FC0: .4byte nullsub_85
-_08149FC4: .4byte gPlttBufferFaded + 0x200
- thumb_func_end sub_8149E7C
-
- thumb_func_start sub_8149FC8
-sub_8149FC8: @ 8149FC8
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08149FE4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x12]
- movs r0, 0x8
- strh r0, [r1, 0x14]
- ldr r0, _08149FE8 @ =sub_8149FEC
- str r0, [r1]
- bx lr
- .align 2, 0
-_08149FE4: .4byte gTasks
-_08149FE8: .4byte sub_8149FEC
- thumb_func_end sub_8149FC8
-
- thumb_func_start sub_8149FEC
-sub_8149FEC: @ 8149FEC
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _0814A00C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x18
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _0814A010
- adds r0, r3, 0
- bl sub_814A208
- b _0814A032
- .align 2, 0
-_0814A00C: .4byte gTasks
-_0814A010:
- ldrh r1, [r2, 0x14]
- movs r4, 0x14
- ldrsh r0, [r2, r4]
- cmp r0, 0x80
- bne _0814A022
- adds r0, r3, 0
- bl sub_814A158
- b _0814A032
-_0814A022:
- adds r0, r1, 0x2
- strh r0, [r2, 0x14]
- ldrh r0, [r2, 0x12]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r2, 0x12]
- ldr r0, _0814A038 @ =sub_814A03C
- str r0, [r2]
-_0814A032:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A038: .4byte sub_814A03C
- thumb_func_end sub_8149FEC
-
- thumb_func_start sub_814A03C
-sub_814A03C: @ 814A03C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0814A060 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x18
- ldrsh r0, [r2, r3]
- adds r5, r1, 0
- cmp r0, 0
- beq _0814A068
- ldr r0, _0814A064 @ =sub_814A208
- str r0, [r2]
- b _0814A14C
- .align 2, 0
-_0814A060: .4byte gTasks
-_0814A064: .4byte sub_814A208
-_0814A068:
- movs r6, 0
- movs r7, 0x12
- ldrsh r0, [r2, r7]
- cmp r0, 0
- bne _0814A0B8
- movs r0, 0xE
- ldrsh r1, [r2, r0]
- movs r3, 0x14
- ldrsh r0, [r2, r3]
- movs r3, 0x80
- lsls r3, 1
- subs r0, r3, r0
- cmp r1, r0
- bge _0814A08E
- ldrh r0, [r2, 0x14]
- ldrh r7, [r2, 0xE]
- adds r0, r7
- strh r0, [r2, 0xE]
- b _0814A092
-_0814A08E:
- strh r3, [r2, 0xE]
- movs r6, 0x1
-_0814A092:
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r5
- movs r0, 0x10
- ldrsh r1, [r3, r0]
- movs r7, 0x14
- ldrsh r0, [r3, r7]
- adds r0, 0x10
- cmp r1, r0
- ble _0814A0B2
- ldrh r0, [r3, 0x10]
- ldrh r1, [r3, 0x14]
- subs r0, r1
- strh r0, [r3, 0x10]
- b _0814A102
-_0814A0B2:
- movs r0, 0x10
- strh r0, [r3, 0x10]
- b _0814A0FC
-_0814A0B8:
- movs r0, 0x10
- ldrsh r1, [r2, r0]
- movs r3, 0x14
- ldrsh r0, [r2, r3]
- movs r3, 0x80
- lsls r3, 1
- subs r0, r3, r0
- cmp r1, r0
- bge _0814A0D4
- ldrh r0, [r2, 0x14]
- ldrh r7, [r2, 0x10]
- adds r0, r7
- strh r0, [r2, 0x10]
- b _0814A0D8
-_0814A0D4:
- strh r3, [r2, 0x10]
- movs r6, 0x1
-_0814A0D8:
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r5
- movs r0, 0xE
- ldrsh r1, [r3, r0]
- movs r7, 0x14
- ldrsh r0, [r3, r7]
- adds r0, 0x10
- cmp r1, r0
- ble _0814A0F8
- ldrh r0, [r3, 0xE]
- ldrh r1, [r3, 0x14]
- subs r0, r1
- strh r0, [r3, 0xE]
- b _0814A102
-_0814A0F8:
- movs r0, 0x10
- strh r0, [r3, 0xE]
-_0814A0FC:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0814A102:
- adds r0, r2, r4
- lsls r0, 3
- adds r5, r0, r5
- movs r0, 0xE
- ldrsh r1, [r5, r0]
- movs r4, 0x80
- lsls r4, 9
- adds r0, r4, 0
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r0, 0x1E
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- movs r3, 0x10
- ldrsh r1, [r5, r3]
- adds r0, r4, 0
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r0, 0x1F
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- cmp r6, 0x2
- bne _0814A14C
- ldr r0, _0814A154 @ =sub_8149FEC
- str r0, [r5]
-_0814A14C:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A154: .4byte sub_8149FEC
- thumb_func_end sub_814A03C
-
- thumb_func_start sub_814A158
-sub_814A158: @ 814A158
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0814A200 @ =gSprites
- mov r8, r1
- ldr r1, _0814A204 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- add r2, r8
- ldrb r3, [r2, 0x1]
- movs r6, 0x4
- negs r6, r6
- adds r1, r6, 0
- ands r1, r3
- strb r1, [r2, 0x1]
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- add r2, r8
- ldrb r3, [r2, 0x3]
- movs r5, 0x3F
- negs r5, r5
- adds r1, r5, 0
- ands r1, r3
- strb r1, [r2, 0x3]
- movs r1, 0xA
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r1]
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x1]
- ands r6, r2
- strb r6, [r1, 0x1]
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x3]
- ands r5, r2
- strb r5, [r1, 0x3]
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- ands r2, r3
- strb r2, [r1]
- bl DestroyTask
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A200: .4byte gSprites
-_0814A204: .4byte gTasks
- thumb_func_end sub_814A158
-
- thumb_func_start sub_814A208
-sub_814A208: @ 814A208
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0814A2B0 @ =gSprites
- mov r8, r1
- ldr r1, _0814A2B4 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- add r2, r8
- ldrb r3, [r2, 0x1]
- movs r6, 0x4
- negs r6, r6
- adds r1, r6, 0
- ands r1, r3
- strb r1, [r2, 0x1]
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- add r2, r8
- ldrb r3, [r2, 0x3]
- movs r5, 0x3F
- negs r5, r5
- adds r1, r5, 0
- ands r1, r3
- strb r1, [r2, 0x3]
- movs r1, 0xA
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- ands r2, r3
- strb r2, [r1]
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x1]
- ands r6, r2
- strb r6, [r1, 0x1]
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x3]
- ands r5, r2
- strb r5, [r1, 0x3]
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r1]
- bl DestroyTask
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A2B0: .4byte gSprites
-_0814A2B4: .4byte gTasks
- thumb_func_end sub_814A208
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
deleted file mode 100644
index c6d3c0978..000000000
--- a/asm/evolution_scene.s
+++ /dev/null
@@ -1,6717 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start CB2_BeginEvolutionScene
-CB2_BeginEvolutionScene: @ 8111894
- push {lr}
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end CB2_BeginEvolutionScene
-
- thumb_func_start Task_BeginEvolutionScene
-Task_BeginEvolutionScene: @ 81118A4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- movs r7, 0
- ldr r1, _081118C8 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081118CC
- cmp r0, 0x1
- beq _081118E4
- b _08111918
- .align 2, 0
-_081118C8: .4byte gTasks
-_081118CC:
- movs r0, 0x1
- negs r0, r0
- str r7, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08111918
-_081118E4:
- ldr r0, _08111920 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08111918
- movs r0, 0xA
- ldrsh r7, [r4, r0]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- lsls r0, 16
- orrs r7, r0
- ldrh r5, [r4, 0x10]
- ldrb r6, [r4, 0x12]
- ldrh r4, [r4, 0x20]
- lsls r4, 24
- lsrs r4, 24
- adds r0, r2, 0
- bl DestroyTask
- adds r0, r7, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r4, 0
- bl EvolutionScene
-_08111918:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08111920: .4byte gPaletteFade
- thumb_func_end Task_BeginEvolutionScene
-
- thumb_func_start BeginEvolutionScene
-BeginEvolutionScene: @ 8111924
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _08111978 @ =Task_BeginEvolutionScene
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811197C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- mov r0, r8
- strh r0, [r1, 0xA]
- mov r0, r8
- lsrs r0, 16
- strh r0, [r1, 0xC]
- strh r4, [r1, 0x10]
- strh r5, [r1, 0x12]
- strh r6, [r1, 0x20]
- ldr r0, _08111980 @ =CB2_BeginEvolutionScene
- bl SetMainCallback2
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08111978: .4byte Task_BeginEvolutionScene
-_0811197C: .4byte gTasks
-_08111980: .4byte CB2_BeginEvolutionScene
- thumb_func_end BeginEvolutionScene
-
- thumb_func_start EvolutionScene
-EvolutionScene: @ 8111984
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- str r0, [sp, 0x20]
- mov r10, r1
- mov r0, r10
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x24]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x28]
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r5, 0
- str r5, [sp, 0x1C]
- add r0, sp, 0x1C
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _08111C10 @ =0x05006000
- bl CpuSet
- ldr r0, _08111C14 @ =REG_MOSAIC
- strh r5, [r0]
- subs r0, 0xC
- strh r5, [r0]
- adds r0, 0x4
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- adds r0, 0x4
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- ldr r4, _08111C18 @ =gWindowConfig_81E6C58
- adds r0, r4, 0
- bl SetUpWindowConfig
- bl ResetPaletteFade
- ldr r0, _08111C1C @ =gUnknown_030042A4
- strh r5, [r0]
- ldr r0, _08111C20 @ =gUnknown_030042A0
- strh r5, [r0]
- ldr r0, _08111C24 @ =gUnknown_030042C0
- strh r5, [r0]
- ldr r0, _08111C28 @ =gUnknown_030041B4
- strh r5, [r0]
- ldr r0, _08111C2C @ =gUnknown_03004288
- strh r5, [r0]
- ldr r0, _08111C30 @ =gUnknown_03004280
- strh r5, [r0]
- ldr r1, _08111C34 @ =gUnknown_030041B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08111C38 @ =gUnknown_030041B8
- strh r5, [r0]
- ldr r0, _08111C3C @ =gUnknown_03004210
- adds r1, r4, 0
- bl InitWindowFromConfig
- ldr r1, _08111C40 @ =gBattleTerrain
- movs r0, 0x9
- strb r0, [r1]
- bl sub_800D6D4
- bl sub_800DAB8
- bl ResetSpriteData
- bl remove_some_task
- bl ResetTasks
- bl FreeAllSpritePalettes
- ldr r0, _08111C44 @ =gReservedSpritePaletteCount
- movs r3, 0x4
- strb r3, [r0]
- ldr r0, [sp, 0x20]
- movs r1, 0x2
- add r2, sp, 0x8
- bl GetMonData
- ldr r0, _08111C48 @ =gStringVar1
- add r1, sp, 0x8
- bl StringCopy10
- ldr r0, _08111C4C @ =gStringVar2
- movs r1, 0xB
- mov r4, r10
- muls r4, r1
- adds r1, r4, 0
- ldr r2, _08111C50 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, [sp, 0x20]
- movs r1, 0xB
- bl GetMonData
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- ldr r0, [sp, 0x20]
- movs r1, 0x1
- bl GetMonData
- str r0, [sp, 0x2C]
- ldr r0, [sp, 0x20]
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x30]
- lsls r0, r6, 3
- ldr r1, _08111C54 @ =gMonFrontPicTable
- adds r0, r1
- lsls r2, r6, 2
- ldr r3, _08111C58 @ =gMonFrontPicCoords
- adds r2, r3
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- ldr r4, _08111C5C @ =gUnknown_081FAF4C
- ldr r3, [r4, 0x4]
- str r3, [sp]
- str r6, [sp, 0x4]
- movs r3, 0x80
- lsls r3, 18
- bl DecompressPicFromTable_2
- adds r0, r6, 0
- ldr r1, [sp, 0x2C]
- ldr r2, [sp, 0x30]
- bl sub_80409C8
- ldr r0, [r0]
- movs r1, 0x88
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08111C60 @ =gUnknown_02024E8C
- mov r9, r0
- ldr r1, _08111C64 @ =gDummySpriteAffineAnimTable
- str r1, [r0, 0x10]
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1E
- bl CreateSprite
- lsls r1, r0, 24
- lsrs r2, r1, 24
- ldr r3, _08111C68 @ =0x02014800
- strb r0, [r3]
- ldr r7, _08111C6C @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- movs r4, 0x1C
- adds r4, r7
- mov r8, r4
- adds r0, r1, r4
- ldr r2, _08111C70 @ =nullsub_37
- str r2, [r0]
- adds r1, r7
- ldrb r2, [r1, 0x5]
- movs r4, 0xF
- adds r0, r4, 0
- ands r0, r2
- movs r2, 0x10
- orrs r0, r2
- strb r0, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1]
- mov r1, r10
- lsls r0, r1, 3
- ldr r2, _08111C54 @ =gMonFrontPicTable
- adds r0, r2
- lsls r2, r1, 2
- ldr r3, _08111C58 @ =gMonFrontPicCoords
- adds r2, r3
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- str r2, [sp, 0x34]
- ldr r2, _08111C5C @ =gUnknown_081FAF4C
- ldr r2, [r2, 0xC]
- str r2, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- ldr r2, [sp, 0x34]
- movs r3, 0x80
- lsls r3, 18
- bl DecompressPicFromTable_2
- mov r0, r10
- ldr r1, [sp, 0x2C]
- ldr r2, [sp, 0x30]
- bl sub_80409C8
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- mov r0, r10
- movs r1, 0x3
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08111C64 @ =gDummySpriteAffineAnimTable
- mov r1, r9
- str r0, [r1, 0x10]
- mov r0, r9
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1E
- bl CreateSprite
- lsls r1, r0, 24
- lsrs r2, r1, 24
- ldr r3, _08111C68 @ =0x02014800
- strb r0, [r3, 0x1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r8, r1
- ldr r0, _08111C70 @ =nullsub_37
- mov r2, r8
- str r0, [r2]
- adds r1, r7
- ldrb r0, [r1, 0x5]
- ands r4, r0
- movs r0, 0x20
- orrs r4, r0
- strb r4, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1]
- bl sub_8149954
- ldr r0, _08111C74 @ =Task_EvolutionScene
- movs r1, 0
- bl CreateTask
- lsls r1, r0, 24
- lsrs r2, r1, 24
- ldr r4, _08111C68 @ =0x02014800
- strb r0, [r4, 0x2]
- ldr r1, _08111C78 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- strh r6, [r0, 0xE]
- mov r1, r10
- strh r1, [r0, 0x10]
- mov r2, sp
- ldrh r2, [r2, 0x20]
- strh r2, [r0, 0xA]
- ldr r3, [sp, 0x20]
- lsrs r1, r3, 16
- strh r1, [r0, 0xC]
- mov r4, sp
- ldrh r4, [r4, 0x24]
- strh r4, [r0, 0x12]
- movs r1, 0x1
- strh r1, [r0, 0x14]
- strh r5, [r0, 0x1E]
- mov r1, sp
- ldrh r1, [r1, 0x28]
- strh r1, [r0, 0x20]
- ldr r0, _08111C7C @ =0x02009000
- ldr r1, _08111C80 @ =gPlttBufferUnfaded + 0x40
- movs r2, 0x60
- bl memcpy
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08111C84 @ =HBlankCB_EvolutionScene
- bl SetHBlankCallback
- ldr r0, _08111C88 @ =VBlankCB_EvolutionScene
- bl SetVBlankCallback
- bl m4aMPlayAllStop
- ldr r0, _08111C8C @ =CB2_EvolutionSceneUpdate_0
- bl SetMainCallback2
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08111C10: .4byte 0x05006000
-_08111C14: .4byte REG_MOSAIC
-_08111C18: .4byte gWindowConfig_81E6C58
-_08111C1C: .4byte gUnknown_030042A4
-_08111C20: .4byte gUnknown_030042A0
-_08111C24: .4byte gUnknown_030042C0
-_08111C28: .4byte gUnknown_030041B4
-_08111C2C: .4byte gUnknown_03004288
-_08111C30: .4byte gUnknown_03004280
-_08111C34: .4byte gUnknown_030041B0
-_08111C38: .4byte gUnknown_030041B8
-_08111C3C: .4byte gUnknown_03004210
-_08111C40: .4byte gBattleTerrain
-_08111C44: .4byte gReservedSpritePaletteCount
-_08111C48: .4byte gStringVar1
-_08111C4C: .4byte gStringVar2
-_08111C50: .4byte gSpeciesNames
-_08111C54: .4byte gMonFrontPicTable
-_08111C58: .4byte gMonFrontPicCoords
-_08111C5C: .4byte gUnknown_081FAF4C
-_08111C60: .4byte gUnknown_02024E8C
-_08111C64: .4byte gDummySpriteAffineAnimTable
-_08111C68: .4byte 0x02014800
-_08111C6C: .4byte gSprites
-_08111C70: .4byte nullsub_37
-_08111C74: .4byte Task_EvolutionScene
-_08111C78: .4byte gTasks
-_08111C7C: .4byte 0x02009000
-_08111C80: .4byte gPlttBufferUnfaded + 0x40
-_08111C84: .4byte HBlankCB_EvolutionScene
-_08111C88: .4byte VBlankCB_EvolutionScene
-_08111C8C: .4byte CB2_EvolutionSceneUpdate_0
- thumb_func_end EvolutionScene
-
- thumb_func_start CB2_EvolutionSceneLoadGraphics
-CB2_EvolutionSceneLoadGraphics: @ 8111C90
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0xC
- ldr r2, _08111E14 @ =gTasks
- ldr r0, _08111E18 @ =0x02014800
- mov r9, r0
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x20
- ldrsh r2, [r0, r1]
- movs r1, 0x64
- adds r4, r2, 0
- muls r4, r1
- ldr r1, _08111E1C @ =gPlayerParty
- adds r4, r1
- ldrh r6, [r0, 0x10]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- mov r10, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- mov r8, r0
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r5, 0
- str r5, [sp, 0x8]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _08111E20 @ =0x05006000
- add r0, sp, 0x8
- bl CpuSet
- ldr r0, _08111E24 @ =REG_MOSAIC
- strh r5, [r0]
- subs r0, 0xC
- strh r5, [r0]
- adds r0, 0x4
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- adds r0, 0x4
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- ldr r4, _08111E28 @ =gWindowConfig_81E6C58
- adds r0, r4, 0
- bl SetUpWindowConfig
- bl ResetPaletteFade
- ldr r0, _08111E2C @ =gUnknown_030042A4
- strh r5, [r0]
- ldr r0, _08111E30 @ =gUnknown_030042A0
- strh r5, [r0]
- ldr r0, _08111E34 @ =gUnknown_030042C0
- strh r5, [r0]
- ldr r0, _08111E38 @ =gUnknown_030041B4
- strh r5, [r0]
- ldr r0, _08111E3C @ =gUnknown_03004288
- strh r5, [r0]
- ldr r0, _08111E40 @ =gUnknown_03004280
- strh r5, [r0]
- ldr r1, _08111E44 @ =gUnknown_030041B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08111E48 @ =gUnknown_030041B8
- strh r5, [r0]
- ldr r0, _08111E4C @ =gUnknown_03004210
- adds r1, r4, 0
- bl InitWindowFromConfig
- ldr r1, _08111E50 @ =gBattleTerrain
- movs r0, 0x9
- strb r0, [r1]
- bl sub_800D6D4
- bl sub_800DAB8
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _08111E54 @ =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- lsls r0, r6, 3
- ldr r1, _08111E58 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08111E5C @ =gMonFrontPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08111E60 @ =gUnknown_081FAF4C
- ldr r4, [r4, 0xC]
- str r4, [sp]
- str r6, [sp, 0x4]
- bl DecompressPicFromTable_2
- adds r0, r6, 0
- mov r1, r10
- mov r2, r8
- bl sub_80409C8
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- adds r0, r6, 0
- movs r1, 0x3
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08111E64 @ =gUnknown_02024E8C
- ldr r1, _08111E68 @ =gDummySpriteAffineAnimTable
- str r1, [r0, 0x10]
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1E
- bl CreateSprite
- lsls r2, r0, 24
- lsrs r2, 24
- mov r1, r9
- strb r0, [r1, 0x1]
- ldr r3, _08111E6C @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _08111E70 @ =nullsub_37
- str r2, [r0]
- adds r1, r3
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- movs r2, 0x20
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08111E74 @ =HBlankCB_EvolutionScene
- bl SetHBlankCallback
- ldr r0, _08111E78 @ =VBlankCB_EvolutionScene
- bl SetVBlankCallback
- ldr r0, _08111E7C @ =CB2_EvolutionSceneUpdate_0
- bl SetMainCallback2
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08111E14: .4byte gTasks
-_08111E18: .4byte 0x02014800
-_08111E1C: .4byte gPlayerParty
-_08111E20: .4byte 0x05006000
-_08111E24: .4byte REG_MOSAIC
-_08111E28: .4byte gWindowConfig_81E6C58
-_08111E2C: .4byte gUnknown_030042A4
-_08111E30: .4byte gUnknown_030042A0
-_08111E34: .4byte gUnknown_030042C0
-_08111E38: .4byte gUnknown_030041B4
-_08111E3C: .4byte gUnknown_03004288
-_08111E40: .4byte gUnknown_03004280
-_08111E44: .4byte gUnknown_030041B0
-_08111E48: .4byte gUnknown_030041B8
-_08111E4C: .4byte gUnknown_03004210
-_08111E50: .4byte gBattleTerrain
-_08111E54: .4byte gReservedSpritePaletteCount
-_08111E58: .4byte gMonFrontPicTable
-_08111E5C: .4byte gMonFrontPicCoords
-_08111E60: .4byte gUnknown_081FAF4C
-_08111E64: .4byte gUnknown_02024E8C
-_08111E68: .4byte gDummySpriteAffineAnimTable
-_08111E6C: .4byte gSprites
-_08111E70: .4byte nullsub_37
-_08111E74: .4byte HBlankCB_EvolutionScene
-_08111E78: .4byte VBlankCB_EvolutionScene
-_08111E7C: .4byte CB2_EvolutionSceneUpdate_0
- thumb_func_end CB2_EvolutionSceneLoadGraphics
-
- thumb_func_start CB2_TradeEvolutionSceneLoadGraphics
-CB2_TradeEvolutionSceneLoadGraphics: @ 8111E80
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r2, _08111EB8 @ =gTasks
- ldr r0, _08111EBC @ =0x02014800
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x20
- ldrsh r2, [r0, r1]
- movs r1, 0x64
- muls r2, r1
- ldr r1, _08111EC0 @ =gPlayerParty
- adds r4, r2, r1
- ldrh r7, [r0, 0x10]
- ldr r0, _08111EC4 @ =gMain
- ldr r2, _08111EC8 @ =0x0000043c
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x6
- bls _08111EAE
- b _081120D6
-_08111EAE:
- lsls r0, 2
- ldr r1, _08111ECC @ =_08111ED0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08111EB8: .4byte gTasks
-_08111EBC: .4byte 0x02014800
-_08111EC0: .4byte gPlayerParty
-_08111EC4: .4byte gMain
-_08111EC8: .4byte 0x0000043c
-_08111ECC: .4byte _08111ED0
- .align 2, 0
-_08111ED0:
- .4byte _08111EEC
- .4byte _08111F68
- .4byte _08111F88
- .4byte _08111FDC
- .4byte _08111FE2
- .4byte _08112048
- .4byte _081120B4
-_08111EEC:
- movs r0, 0x80
- lsls r0, 19
- movs r4, 0
- strh r4, [r0]
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _08111F3C @ =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _08111F40 @ =gUnknown_030042A4
- strh r4, [r0]
- ldr r0, _08111F44 @ =gUnknown_030042A0
- strh r4, [r0]
- ldr r0, _08111F48 @ =gUnknown_030042C0
- strh r4, [r0]
- ldr r0, _08111F4C @ =gUnknown_030041B4
- strh r4, [r0]
- ldr r0, _08111F50 @ =gUnknown_03004288
- strh r4, [r0]
- ldr r0, _08111F54 @ =gUnknown_03004280
- strh r4, [r0]
- ldr r1, _08111F58 @ =gUnknown_030041B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08111F5C @ =gUnknown_030041B8
- strh r4, [r0]
- ldr r1, _08111F60 @ =gMain
- ldr r0, _08111F64 @ =0x0000043c
- adds r1, r0
- b _0811208E
- .align 2, 0
-_08111F3C: .4byte gReservedSpritePaletteCount
-_08111F40: .4byte gUnknown_030042A4
-_08111F44: .4byte gUnknown_030042A0
-_08111F48: .4byte gUnknown_030042C0
-_08111F4C: .4byte gUnknown_030041B4
-_08111F50: .4byte gUnknown_03004288
-_08111F54: .4byte gUnknown_03004280
-_08111F58: .4byte gUnknown_030041B0
-_08111F5C: .4byte gUnknown_030041B8
-_08111F60: .4byte gMain
-_08111F64: .4byte 0x0000043c
-_08111F68:
- ldr r4, _08111F80 @ =gWindowConfig_81E6F84
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r0, _08111F84 @ =gUnknown_03004828
- ldr r0, [r0]
- adds r0, 0x4
- adds r1, r4, 0
- bl InitWindowFromConfig
- b _08112088
- .align 2, 0
-_08111F80: .4byte gWindowConfig_81E6F84
-_08111F84: .4byte gUnknown_03004828
-_08111F88:
- ldr r4, _08111FC8 @ =gUnknown_03004828
- ldr r0, [r4]
- adds r0, 0x4
- bl LoadTextWindowGraphics
- movs r0, 0x2
- bl SetTextWindowBaseTileNum
- ldr r1, [r4]
- adds r1, 0x34
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x4
- bl LoadTextWindowGraphics
- bl MenuZeroFillScreen
- bl ResetPaletteFade
- ldr r1, _08111FCC @ =gMain
- ldr r0, _08111FD0 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _08111FD4 @ =HBlankCB_EvolutionScene
- bl SetHBlankCallback
- ldr r0, _08111FD8 @ =VBlankCB_TradeEvolutionScene
- bl SetVBlankCallback
- b _081120D6
- .align 2, 0
-_08111FC8: .4byte gUnknown_03004828
-_08111FCC: .4byte gMain
-_08111FD0: .4byte 0x0000043c
-_08111FD4: .4byte HBlankCB_EvolutionScene
-_08111FD8: .4byte VBlankCB_TradeEvolutionScene
-_08111FDC:
- bl sub_804E22C
- b _08112088
-_08111FE2:
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r0, r7, 3
- ldr r1, _08112034 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08112038 @ =gMonFrontPicCoords
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _0811203C @ =gUnknown_081FAF4C
- ldr r4, [r4, 0xC]
- str r4, [sp]
- str r7, [sp, 0x4]
- bl DecompressPicFromTable_2
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80409C8
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, _08112040 @ =gMain
- ldr r0, _08112044 @ =0x0000043c
- adds r1, r0
- b _0811208E
- .align 2, 0
-_08112034: .4byte gMonFrontPicTable
-_08112038: .4byte gMonFrontPicCoords
-_0811203C: .4byte gUnknown_081FAF4C
-_08112040: .4byte gMain
-_08112044: .4byte 0x0000043c
-_08112048:
- adds r0, r7, 0
- movs r1, 0x3
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08112098 @ =gUnknown_02024E8C
- ldr r1, _0811209C @ =gDummySpriteAffineAnimTable
- str r1, [r0, 0x10]
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1E
- bl CreateSprite
- ldr r1, _081120A0 @ =0x02014800
- lsls r2, r0, 24
- lsrs r2, 24
- strb r0, [r1, 0x1]
- ldr r3, _081120A4 @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _081120A8 @ =nullsub_37
- str r2, [r0]
- adds r1, r3
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- movs r2, 0x20
- orrs r0, r2
- strb r0, [r1, 0x5]
-_08112088:
- ldr r1, _081120AC @ =gMain
- ldr r2, _081120B0 @ =0x0000043c
- adds r1, r2
-_0811208E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081120D6
- .align 2, 0
-_08112098: .4byte gUnknown_02024E8C
-_0811209C: .4byte gDummySpriteAffineAnimTable
-_081120A0: .4byte 0x02014800
-_081120A4: .4byte gSprites
-_081120A8: .4byte nullsub_37
-_081120AC: .4byte gMain
-_081120B0: .4byte 0x0000043c
-_081120B4:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _081120E0 @ =CB2_EvolutionSceneUpdate_1
- bl SetMainCallback2
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
-_081120D6:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081120E0: .4byte CB2_EvolutionSceneUpdate_1
- thumb_func_end CB2_TradeEvolutionSceneLoadGraphics
-
- thumb_func_start TradeEvolutionScene
-TradeEvolutionScene: @ 81120E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- str r0, [sp, 0x1C]
- adds r5, r1, 0
- adds r4, r2, 0
- mov r10, r3
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 24
- lsrs r4, 24
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, [sp, 0x1C]
- movs r1, 0x2
- add r2, sp, 0x8
- bl GetMonData
- ldr r0, _08112234 @ =gStringVar1
- add r1, sp, 0x8
- bl StringCopy10
- ldr r0, _08112238 @ =gStringVar2
- movs r1, 0xB
- muls r1, r5
- ldr r2, _0811223C @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r1, _08112240 @ =gAffineAnimsDisabled
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, [sp, 0x1C]
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- mov r1, r8
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- ldr r0, [sp, 0x1C]
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- ldr r0, [sp, 0x1C]
- movs r1, 0x1
- bl GetMonData
- adds r7, r0, 0
- ldr r2, _08112244 @ =0x02014800
- mov r9, r2
- strb r4, [r2]
- lsls r0, r5, 3
- ldr r1, _08112248 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _0811224C @ =gMonFrontPicCoords
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08112250 @ =gUnknown_081FAF4C
- ldr r4, [r4, 0x4]
- str r4, [sp]
- str r5, [sp, 0x4]
- bl DecompressPicFromTable_2
- adds r0, r5, 0
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_80409C8
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- adds r0, r5, 0
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08112254 @ =gUnknown_02024E8C
- ldr r1, _08112258 @ =gDummySpriteAffineAnimTable
- str r1, [r0, 0x10]
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1E
- bl CreateSprite
- lsls r1, r0, 24
- lsrs r2, r1, 24
- mov r1, r9
- strb r0, [r1, 0x1]
- ldr r3, _0811225C @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _08112260 @ =nullsub_37
- str r2, [r0]
- adds r1, r3
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- movs r2, 0x20
- orrs r0, r2
- strb r0, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- bl sub_8149954
- ldr r0, _08112264 @ =Task_TradeEvolutionScene
- movs r1, 0
- bl CreateTask
- lsls r1, r0, 24
- lsrs r2, r1, 24
- mov r1, r9
- strb r0, [r1, 0x2]
- ldr r1, _08112268 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- strh r2, [r0, 0x8]
- mov r1, r8
- strh r1, [r0, 0xE]
- strh r5, [r0, 0x10]
- mov r2, sp
- ldrh r2, [r2, 0x1C]
- strh r2, [r0, 0xA]
- ldr r1, [sp, 0x1C]
- lsrs r1, 16
- str r1, [sp, 0x20]
- strh r1, [r0, 0xC]
- movs r1, 0x1
- strh r1, [r0, 0x14]
- movs r1, 0
- strh r1, [r0, 0x1E]
- mov r2, r10
- strh r2, [r0, 0x20]
- ldr r0, _0811226C @ =CB2_EvolutionSceneUpdate_1
- bl SetMainCallback2
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08112234: .4byte gStringVar1
-_08112238: .4byte gStringVar2
-_0811223C: .4byte gSpeciesNames
-_08112240: .4byte gAffineAnimsDisabled
-_08112244: .4byte 0x02014800
-_08112248: .4byte gMonFrontPicTable
-_0811224C: .4byte gMonFrontPicCoords
-_08112250: .4byte gUnknown_081FAF4C
-_08112254: .4byte gUnknown_02024E8C
-_08112258: .4byte gDummySpriteAffineAnimTable
-_0811225C: .4byte gSprites
-_08112260: .4byte nullsub_37
-_08112264: .4byte Task_TradeEvolutionScene
-_08112268: .4byte gTasks
-_0811226C: .4byte CB2_EvolutionSceneUpdate_1
- thumb_func_end TradeEvolutionScene
-
- thumb_func_start CB2_EvolutionSceneUpdate_0
-CB2_EvolutionSceneUpdate_0: @ 8112270
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _0811228C @ =gUnknown_03004210
- bl sub_800374C
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- .align 2, 0
-_0811228C: .4byte gUnknown_03004210
- thumb_func_end CB2_EvolutionSceneUpdate_0
-
- thumb_func_start CB2_EvolutionSceneUpdate_1
-CB2_EvolutionSceneUpdate_1: @ 8112290
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _081122B0 @ =gUnknown_03004828
- ldr r0, [r0]
- adds r0, 0x4
- bl sub_80035AC
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- .align 2, 0
-_081122B0: .4byte gUnknown_03004828
- thumb_func_end CB2_EvolutionSceneUpdate_1
-
- thumb_func_start CreateShedinja
-CreateShedinja: @ 81122B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r0, 0
- str r0, [sp]
- ldr r0, _081123F4 @ =gEvolutionTable
- mov r8, r0
- lsls r1, r7, 2
- mov r9, r1
- adds r0, r1, r7
- lsls r4, r0, 3
- mov r0, r8
- adds r6, r4, r0
- ldrh r0, [r6]
- cmp r0, 0xD
- beq _081122E2
- b _081123E2
-_081122E2:
- ldr r1, _081123F8 @ =gPlayerPartyCount
- ldrb r0, [r1]
- cmp r0, 0x5
- bhi _081123E2
- adds r1, r0, 0
- movs r0, 0x64
- muls r1, r0
- ldr r0, _081123FC @ =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- mov r1, r10
- movs r2, 0x64
- bl CopyMon
- mov r1, r8
- adds r2, r1, r4
- adds r2, 0xC
- adds r0, r5, 0
- movs r1, 0xB
- bl SetMonData
- ldrh r1, [r6, 0xC]
- movs r0, 0xB
- adds r2, r1, 0
- muls r2, r0
- ldr r0, _08112400 @ =gSpeciesNames
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0x2
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x8
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xA
- mov r2, sp
- bl SetMonData
- movs r4, 0x32
- mov r6, r9
-_08112342:
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, sp
- bl SetMonData
- adds r4, 0x1
- cmp r4, 0x36
- ble _08112342
- movs r4, 0x43
-_08112354:
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, sp
- bl SetMonData
- adds r4, 0x1
- cmp r4, 0x4F
- ble _08112354
- adds r0, r5, 0
- movs r1, 0x37
- mov r2, sp
- bl SetMonData
- movs r0, 0xFF
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0x40
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- bl CalculateMonStats
- bl CalculatePlayerPartyCount
- ldr r0, _081123F4 @ =gEvolutionTable
- adds r4, r6, r7
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0xC]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl GetNationalPokedexFlag
- ldrh r0, [r4, 0xC]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl GetNationalPokedexFlag
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- ldr r1, _08112404 @ =0x0000012f
- cmp r0, r1
- bne _081123E2
- adds r0, r5, 0
- movs r1, 0x3
- bl GetMonData
- cmp r0, 0x1
- bne _081123E2
- mov r0, r10
- movs r1, 0xB
- bl GetMonData
- movs r1, 0x97
- lsls r1, 1
- cmp r0, r1
- bne _081123E2
- ldr r2, _08112408 @ =gUnknown_083F868C
- adds r0, r5, 0
- movs r1, 0x2
- bl SetMonData
-_081123E2:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081123F4: .4byte gEvolutionTable
-_081123F8: .4byte gPlayerPartyCount
-_081123FC: .4byte gPlayerParty
-_08112400: .4byte gSpeciesNames
-_08112404: .4byte 0x0000012f
-_08112408: .4byte gUnknown_083F868C
- thumb_func_end CreateShedinja
-
- thumb_func_start Task_EvolutionScene
-Task_EvolutionScene: @ 811240C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _08112490 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r2
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- mov r9, r0
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- lsls r0, 16
- mov r1, r9
- orrs r1, r0
- mov r9, r1
- ldr r0, _08112494 @ =gMain
- ldrh r1, [r0, 0x2C]
- adds r6, r2, 0
- adds r4, r0, 0
- cmp r1, 0x2
- bne _0811246E
- movs r2, 0x8
- ldrsh r0, [r3, r2]
- cmp r0, 0x8
- bne _0811246E
- ldrh r1, [r3, 0x12]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0811246E
- movs r0, 0x10
- strh r0, [r3, 0x8]
- ldr r0, _08112498 @ =gBattleCommunication
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _0811246E
- strh r2, [r1, 0x18]
-_0811246E:
- lsls r1, r7, 2
- adds r0, r1, r7
- lsls r0, 3
- adds r0, r6
- movs r3, 0x8
- ldrsh r0, [r0, r3]
- mov r8, r1
- cmp r0, 0x15
- bls _08112484
- bl _08112FD0
-_08112484:
- lsls r0, 2
- ldr r1, _0811249C @ =_081124A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08112490: .4byte gTasks
-_08112494: .4byte gMain
-_08112498: .4byte gBattleCommunication
-_0811249C: .4byte _081124A0
- .align 2, 0
-_081124A0:
- .4byte _081124F8
- .4byte _0811253C
- .4byte _08112588
- .4byte _08112594
- .4byte _081125BC
- .4byte _081125FC
- .4byte _08112630
- .4byte _0811266C
- .4byte _081126A0
- .4byte _081126E0
- .4byte _081126FC
- .4byte _08112728
- .4byte _08112754
- .4byte _081127A0
- .4byte _0811284C
- .4byte _081128E4
- .4byte _08112934
- .4byte _08112974
- .4byte _081129A0
- .4byte _081129E8
- .4byte _08112A4C
- .4byte _08112A88
-_081124F8:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _08112530 @ =gSprites
- ldr r0, _08112534 @ =0x02014800
- 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]
- ldr r0, _08112538 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- b _08112A2E
- .align 2, 0
-_08112530: .4byte gSprites
-_08112534: .4byte 0x02014800
-_08112538: .4byte gTasks
-_0811253C:
- ldr r0, _08112574 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0811254C
- bl _08112FD0
-_0811254C:
- ldr r4, _08112578 @ =gStringVar4
- ldr r1, _0811257C @ =gUnknown_08400C4A
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _08112580 @ =gUnknown_03004210
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112584 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- b _08112A2E
- .align 2, 0
-_08112574: .4byte gPaletteFade
-_08112578: .4byte gStringVar4
-_0811257C: .4byte gUnknown_08400C4A
-_08112580: .4byte gUnknown_03004210
-_08112584: .4byte gTasks
-_08112588:
- ldr r0, _08112590 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- b _0811297C
- .align 2, 0
-_08112590: .4byte gUnknown_03004210
-_08112594:
- bl IsCryFinished
- lsls r0, 24
- cmp r0, 0
- bne _081125A2
- bl _08112FD0
-_081125A2:
- movs r0, 0xBC
- lsls r0, 1
- bl PlaySE
- ldr r0, _081125B8 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- b _08112A2E
- .align 2, 0
-_081125B8: .4byte gTasks
-_081125BC:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _081125CC
- bl _08112FD0
-_081125CC:
- ldr r0, _081125F4 @ =0x00000179
- bl PlayNewMapMusic
- ldr r0, _081125F8 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- str r4, [sp]
- movs r0, 0x1C
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- bl _08112FD0
- .align 2, 0
-_081125F4: .4byte 0x00000179
-_081125F8: .4byte gTasks
-_081125FC:
- ldr r0, _08112624 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0811260C
- bl _08112FD0
-_0811260C:
- movs r0, 0x11
- bl sub_8149970
- ldr r1, _08112628 @ =gBattleCommunication
- strb r0, [r1, 0x2]
- ldr r0, _0811262C @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- b _08112A2E
- .align 2, 0
-_08112624: .4byte gPaletteFade
-_08112628: .4byte gBattleCommunication
-_0811262C: .4byte gTasks
-_08112630:
- ldr r4, _08112664 @ =gBattleCommunication
- ldrb r0, [r4, 0x2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _08112646
- bl _08112FD0
-_08112646:
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r6
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r1, _08112668 @ =0x02014800
- movs r0, 0x1
- strb r0, [r1, 0x3]
- bl sub_8149A90
- strb r0, [r4, 0x2]
- bl _08112FD0
- .align 2, 0
-_08112664: .4byte gBattleCommunication
-_08112668: .4byte 0x02014800
-_0811266C:
- ldr r4, _08112698 @ =gBattleCommunication
- ldrb r0, [r4, 0x2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _08112682
- bl _08112FD0
-_08112682:
- ldr r1, _0811269C @ =0x02014800
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- bl sub_8149E7C
- strb r0, [r4, 0x2]
- mov r0, r8
- adds r1, r0, r7
- lsls r1, 3
- adds r1, r6
- b _08112A2E
- .align 2, 0
-_08112698: .4byte gBattleCommunication
-_0811269C: .4byte 0x02014800
-_081126A0:
- ldr r1, _081126D8 @ =0x02014800
- ldrb r0, [r1, 0x3]
- subs r0, 0x1
- strb r0, [r1, 0x3]
- lsls r0, 24
- cmp r0, 0
- beq _081126B2
- bl _08112FD0
-_081126B2:
- movs r0, 0x3
- strb r0, [r1, 0x3]
- ldr r0, _081126DC @ =gBattleCommunication
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _081126CC
- bl _08112FD0
-_081126CC:
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r6
- b _08112A2E
- .align 2, 0
-_081126D8: .4byte 0x02014800
-_081126DC: .4byte gBattleCommunication
-_081126E0:
- bl sub_8149B44
- ldr r1, _081126F4 @ =gBattleCommunication
- strb r0, [r1, 0x2]
- ldr r0, _081126F8 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- b _08112A2E
- .align 2, 0
-_081126F4: .4byte gBattleCommunication
-_081126F8: .4byte gTasks
-_081126FC:
- ldr r5, _08112724 @ =gBattleCommunication
- ldrb r0, [r5, 0x2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _08112712
- bl _08112FD0
-_08112712:
- mov r0, r8
- adds r4, r0, r7
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0x10]
- bl sub_8149C20
- strb r0, [r5, 0x2]
- b _08112992
- .align 2, 0
-_08112724: .4byte gBattleCommunication
-_08112728:
- ldr r0, _08112750 @ =gBattleCommunication
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _0811273E
- bl _08112FD0
-_0811273E:
- movs r0, 0x21
- bl PlaySE
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r6
- b _08112A2E
- .align 2, 0
-_08112750: .4byte gBattleCommunication
-_08112754:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08112762
- bl _08112FD0
-_08112762:
- bl m4aMPlayAllStop
- ldr r0, _08112794 @ =gTasks
- mov r3, r8
- adds r4, r3, r7
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x10]
- movs r1, 0
- bl PlayCry1
- ldr r0, _08112798 @ =gPlttBufferUnfaded + 0x40
- ldr r1, _0811279C @ =0x02009000
- movs r2, 0x60
- bl memcpy
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1C
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08112992
- .align 2, 0
-_08112794: .4byte gTasks
-_08112798: .4byte gPlttBufferUnfaded + 0x40
-_0811279C: .4byte 0x02009000
-_081127A0:
- bl IsCryFinished
- lsls r0, 24
- cmp r0, 0
- bne _081127AE
- bl _08112FD0
-_081127AE:
- ldr r0, _08112834 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081127BE
- bl _08112FD0
-_081127BE:
- ldr r4, _08112838 @ =gStringVar4
- ldr r1, _0811283C @ =gUnknown_08400C60
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _08112840 @ =gUnknown_03004210
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112844 @ =0x00000173
- bl PlayBGM
- ldr r2, _08112848 @ =gTasks
- mov r0, r8
- adds r1, r0, r7
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- adds r2, r1
- adds r2, 0x10
- mov r0, r9
- movs r1, 0xB
- bl SetMonData
- mov r0, r9
- bl CalculateMonStats
- ldrh r1, [r4, 0xE]
- ldrh r2, [r4, 0x10]
- mov r0, r9
- bl EvolutionRenameMon
- ldrh r0, [r4, 0x10]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl GetNationalPokedexFlag
- ldrh r0, [r4, 0x10]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl GetNationalPokedexFlag
- movs r0, 0xE
- bl IncrementGameStat
- b _08112FD0
- .align 2, 0
-_08112834: .4byte gPaletteFade
-_08112838: .4byte gStringVar4
-_0811283C: .4byte gUnknown_08400C60
-_08112840: .4byte gUnknown_03004210
-_08112844: .4byte 0x00000173
-_08112848: .4byte gTasks
-_0811284C:
- ldr r0, _081128A4 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- beq _08112856
- b _08112FD0
-_08112856:
- mov r1, r8
- adds r0, r1, r7
- lsls r0, 3
- adds r5, r0, r6
- ldrb r1, [r5, 0x14]
- mov r0, r9
- bl sub_803B7C8
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0
- beq _081128C4
- movs r2, 0x1E
- ldrsh r4, [r5, r2]
- cmp r4, 0
- bne _081128C4
- bl sub_8053E90
- ldrh r1, [r5, 0x12]
- movs r0, 0x80
- orrs r0, r1
- strh r0, [r5, 0x12]
- strh r4, [r5, 0x14]
- strh r4, [r5, 0x18]
- mov r0, r9
- movs r1, 0x2
- add r2, sp, 0x4
- bl GetMonData
- ldr r0, _081128A8 @ =gBattleTextBuff1
- add r1, sp, 0x4
- bl StringCopy10
- ldr r0, _081128AC @ =0x0000ffff
- cmp r6, r0
- bne _081128B0
- movs r0, 0x15
- strh r0, [r5, 0x8]
- b _08112FD0
- .align 2, 0
-_081128A4: .4byte gUnknown_03004210
-_081128A8: .4byte gBattleTextBuff1
-_081128AC: .4byte 0x0000ffff
-_081128B0:
- ldr r0, _081128C0 @ =0x0000fffe
- cmp r6, r0
- bne _081128B8
- b _08112FD0
-_081128B8:
- movs r0, 0x13
- strh r0, [r5, 0x8]
- b _08112FD0
- .align 2, 0
-_081128C0: .4byte 0x0000fffe
-_081128C4:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _081128E0 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- b _08112A2E
- .align 2, 0
-_081128E0: .4byte gTasks
-_081128E4:
- ldr r0, _0811292C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _081128F4
- b _08112FD0
-_081128F4:
- mov r1, r8
- adds r0, r1, r7
- lsls r0, 3
- adds r4, r0, r6
- ldrh r1, [r4, 0x12]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0811290A
- bl sub_8053E90
-_0811290A:
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0811291A
- ldrh r0, [r4, 0xE]
- mov r1, r9
- bl CreateShedinja
-_0811291A:
- adds r0, r7, 0
- bl DestroyTask
- ldr r0, _08112930 @ =gUnknown_03005E94
- ldr r0, [r0]
- bl SetMainCallback2
- b _08112FD0
- .align 2, 0
-_0811292C: .4byte gPaletteFade
-_08112930: .4byte gUnknown_03005E94
-_08112934:
- ldr r0, _08112968 @ =gBattleCommunication
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _08112948
- b _08112FD0
-_08112948:
- bl m4aMPlayAllStop
- ldr r0, _0811296C @ =0x0006001c
- ldr r1, _08112970 @ =0x00007fff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r6
- b _08112A2E
- .align 2, 0
-_08112968: .4byte gBattleCommunication
-_0811296C: .4byte 0x0006001c
-_08112970: .4byte 0x00007fff
-_08112974:
- ldr r0, _0811299C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
-_0811297C:
- cmp r0, 0
- beq _08112982
- b _08112FD0
-_08112982:
- mov r0, r8
- adds r4, r0, r7
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0xE]
- movs r1, 0
- bl PlayCry1
-_08112992:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08112FD0
- .align 2, 0
-_0811299C: .4byte gPaletteFade
-_081129A0:
- bl IsCryFinished
- lsls r0, 24
- cmp r0, 0
- bne _081129AC
- b _08112FD0
-_081129AC:
- ldr r4, _081129D8 @ =gStringVar4
- ldr r1, _081129DC @ =gUnknown_08400C8D
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _081129E0 @ =gUnknown_03004210
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _081129E4 @ =gTasks
- mov r2, r8
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x1E]
- b _08112F9A
- .align 2, 0
-_081129D8: .4byte gStringVar4
-_081129DC: .4byte gUnknown_08400C8D
-_081129E0: .4byte gUnknown_03004210
-_081129E4: .4byte gTasks
-_081129E8:
- ldr r4, _08112A38 @ =gUnknown_03004210
- ldrh r0, [r4, 0x16]
- cmp r0, 0
- beq _081129F2
- b _08112FD0
-_081129F2:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _081129FE
- b _08112FD0
-_081129FE:
- bl sub_8024CEC
- ldr r0, _08112A3C @ =0x0000016f
- bl PlayFanfare
- ldr r0, _08112A40 @ =gBattleStringsTable
- ldr r0, [r0, 0xC]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r1, _08112A44 @ =gDisplayedStringBattle
- movs r0, 0xF
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112A48 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x40
- strh r0, [r1, 0x14]
-_08112A2E:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08112FD0
- .align 2, 0
-_08112A38: .4byte gUnknown_03004210
-_08112A3C: .4byte 0x0000016f
-_08112A40: .4byte gBattleStringsTable
-_08112A44: .4byte gDisplayedStringBattle
-_08112A48: .4byte gTasks
-_08112A4C:
- ldr r0, _08112A80 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- beq _08112A56
- b _08112FD0
-_08112A56:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08112A62
- b _08112FD0
-_08112A62:
- ldr r0, _08112A84 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x14]
- subs r0, 0x1
- strh r0, [r1, 0x14]
- lsls r0, 16
- cmp r0, 0
- beq _08112A7A
- b _08112FD0
-_08112A7A:
- movs r0, 0xE
- strh r0, [r1, 0x8]
- b _08112FD0
- .align 2, 0
-_08112A80: .4byte gUnknown_03004210
-_08112A84: .4byte gTasks
-_08112A88:
- mov r3, r8
- adds r0, r3, r7
- lsls r0, 3
- adds r0, r6
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0xB
- bls _08112A9A
- b _08112FD0
-_08112A9A:
- lsls r0, 2
- ldr r1, _08112AA4 @ =_08112AA8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08112AA4: .4byte _08112AA8
- .align 2, 0
-_08112AA8:
- .4byte _08112AD8
- .4byte _08112B2C
- .4byte _08112B7C
- .4byte _08112BC0
- .4byte _08112C0C
- .4byte _08112D3C
- .4byte _08112D8C
- .4byte _08112E98
- .4byte _08112EE8
- .4byte _08112F38
- .4byte _08112F78
- .4byte _08112FB0
-_08112AD8:
- ldr r4, _08112B1C @ =gUnknown_03004210
- ldrh r0, [r4, 0x16]
- cmp r0, 0
- beq _08112AE2
- b _08112FD0
-_08112AE2:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08112AEE
- b _08112FD0
-_08112AEE:
- bl sub_8024CEC
- ldr r0, _08112B20 @ =gBattleStringsTable
- ldr r0, [r0, 0x10]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r1, _08112B24 @ =gDisplayedStringBattle
- movs r0, 0xF
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112B28 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08112FCE
- .align 2, 0
-_08112B1C: .4byte gUnknown_03004210
-_08112B20: .4byte gBattleStringsTable
-_08112B24: .4byte gDisplayedStringBattle
-_08112B28: .4byte gTasks
-_08112B2C:
- ldr r4, _08112B6C @ =gUnknown_03004210
- ldrh r0, [r4, 0x16]
- cmp r0, 0
- beq _08112B36
- b _08112FD0
-_08112B36:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08112B42
- b _08112FD0
-_08112B42:
- ldr r0, _08112B70 @ =gBattleStringsTable
- ldr r0, [r0, 0x14]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r1, _08112B74 @ =gDisplayedStringBattle
- movs r0, 0xF
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112B78 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08112FCE
- .align 2, 0
-_08112B6C: .4byte gUnknown_03004210
-_08112B70: .4byte gBattleStringsTable
-_08112B74: .4byte gDisplayedStringBattle
-_08112B78: .4byte gTasks
-_08112B7C:
- ldr r4, _08112BF8 @ =gUnknown_03004210
- ldrh r0, [r4, 0x16]
- cmp r0, 0
- beq _08112B86
- b _08112FD0
-_08112B86:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08112BC0
- ldr r0, _08112BFC @ =gBattleStringsTable
- ldr r0, [r0, 0x18]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r1, _08112C00 @ =gDisplayedStringBattle
- movs r0, 0xF
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112C04 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x5
- strh r0, [r1, 0x1A]
- movs r0, 0x9
- strh r0, [r1, 0x1C]
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- strh r0, [r1, 0x18]
-_08112BC0:
- ldr r0, _08112BF8 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- beq _08112BCA
- b _08112FD0
-_08112BCA:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08112BD6
- b _08112FD0
-_08112BD6:
- bl sub_8023A80
- ldr r0, _08112C04 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r1, 0x18]
- ldr r0, _08112C08 @ =gBattleCommunication
- strb r2, [r0, 0x1]
- bl sub_802BC6C
- b _08112FD0
- .align 2, 0
-_08112BF8: .4byte gUnknown_03004210
-_08112BFC: .4byte gBattleStringsTable
-_08112C00: .4byte gDisplayedStringBattle
-_08112C04: .4byte gTasks
-_08112C08: .4byte gBattleCommunication
-_08112C0C:
- ldr r0, _08112CA4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08112C32
- ldr r4, _08112CA8 @ =gBattleCommunication
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08112C32
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08112C32:
- ldr r0, _08112CA4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08112C58
- ldr r4, _08112CA8 @ =gBattleCommunication
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08112C58
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08112C58:
- ldr r0, _08112CA4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08112CE2
- bl sub_8023AD8
- ldr r0, _08112CAC @ =gBattleStringsTable
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r0, _08112CB0 @ =gUnknown_03004210
- ldr r1, _08112CB4 @ =gDisplayedStringBattle
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08112CA8 @ =gBattleCommunication
- ldrb r2, [r0, 0x1]
- cmp r2, 0
- beq _08112CBC
- ldr r0, _08112CB8 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1C]
- strh r0, [r1, 0x18]
- b _08112CE2
- .align 2, 0
-_08112CA4: .4byte gMain
-_08112CA8: .4byte gBattleCommunication
-_08112CAC: .4byte gBattleStringsTable
-_08112CB0: .4byte gUnknown_03004210
-_08112CB4: .4byte gDisplayedStringBattle
-_08112CB8: .4byte gTasks
-_08112CBC:
- ldr r0, _08112D28 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1A]
- strh r0, [r1, 0x18]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _08112CE2
- movs r0, 0x1
- negs r0, r0
- str r2, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_08112CE2:
- ldr r0, _08112D2C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08112CF0
- b _08112FD0
-_08112CF0:
- bl sub_8023AD8
- ldr r0, _08112D30 @ =gBattleStringsTable
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r0, _08112D34 @ =gUnknown_03004210
- ldr r1, _08112D38 @ =gDisplayedStringBattle
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08112D28 @ =gTasks
- mov r2, r8
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x1C]
- strh r1, [r0, 0x18]
- b _08112FD0
- .align 2, 0
-_08112D28: .4byte gTasks
-_08112D2C: .4byte gMain
-_08112D30: .4byte gBattleStringsTable
-_08112D34: .4byte gUnknown_03004210
-_08112D38: .4byte gDisplayedStringBattle
-_08112D3C:
- ldr r0, _08112D78 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08112D4A
- b _08112FD0
-_08112D4A:
- ldr r0, _08112D7C @ =gPlayerParty
- mov r3, r8
- adds r5, r3, r7
- lsls r5, 3
- adds r5, r6
- ldrh r1, [r5, 0x20]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08112D80 @ =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08112D84 @ =CB2_EvolutionSceneLoadGraphics
- ldr r4, _08112D88 @ =word_2024E82
- ldrh r4, [r4]
- str r4, [sp]
- bl sub_809D9F0
- ldrh r0, [r5, 0x18]
- adds r0, 0x1
- strh r0, [r5, 0x18]
- b _08112FD0
- .align 2, 0
-_08112D78: .4byte gPaletteFade
-_08112D7C: .4byte gPlayerParty
-_08112D80: .4byte gPlayerPartyCount
-_08112D84: .4byte CB2_EvolutionSceneLoadGraphics
-_08112D88: .4byte word_2024E82
-_08112D8C:
- ldr r0, _08112DC0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08112D9A
- b _08112FD0
-_08112D9A:
- ldr r1, [r4, 0x4]
- ldr r0, _08112DC4 @ =CB2_EvolutionSceneUpdate_0
- cmp r1, r0
- beq _08112DA4
- b _08112FD0
-_08112DA4:
- bl sub_809FA30
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x4
- bne _08112DCC
- ldr r0, _08112DC8 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x9
- b _08112FCE
- .align 2, 0
-_08112DC0: .4byte gPaletteFade
-_08112DC4: .4byte CB2_EvolutionSceneUpdate_0
-_08112DC8: .4byte gTasks
-_08112DCC:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r9
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl IsHMMove2
- cmp r0, 0
- beq _08112E24
- ldr r0, _08112E10 @ =gBattleStringsTable
- ldr r3, _08112E14 @ =0x000004cc
- adds r0, r3
- ldr r0, [r0]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r0, _08112E18 @ =gUnknown_03004210
- ldr r1, _08112E1C @ =gDisplayedStringBattle
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08112E20 @ =gTasks
- mov r2, r8
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0xB
- strh r1, [r0, 0x18]
- b _08112FD0
- .align 2, 0
-_08112E10: .4byte gBattleStringsTable
-_08112E14: .4byte 0x000004cc
-_08112E18: .4byte gUnknown_03004210
-_08112E1C: .4byte gDisplayedStringBattle
-_08112E20: .4byte gTasks
-_08112E24:
- ldr r1, _08112E80 @ =gBattleTextBuff2
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- strb r4, [r1, 0x2]
- lsrs r0, r4, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- lsls r4, r6, 24
- lsrs r4, 24
- mov r0, r9
- adds r1, r4, 0
- bl RemoveMonPPBonus
- ldr r0, _08112E84 @ =word_2024E82
- ldrh r1, [r0]
- mov r0, r9
- adds r2, r4, 0
- bl SetMonMoveSlot
- ldr r0, _08112E88 @ =gBattleStringsTable
- movs r3, 0xCF
- lsls r3, 2
- adds r0, r3
- ldr r0, [r0]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r0, _08112E8C @ =gUnknown_03004210
- ldr r1, _08112E90 @ =gDisplayedStringBattle
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112E94 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08112FCE
- .align 2, 0
-_08112E80: .4byte gBattleTextBuff2
-_08112E84: .4byte word_2024E82
-_08112E88: .4byte gBattleStringsTable
-_08112E8C: .4byte gUnknown_03004210
-_08112E90: .4byte gDisplayedStringBattle
-_08112E94: .4byte gTasks
-_08112E98:
- ldr r4, _08112ED8 @ =gUnknown_03004210
- ldrh r0, [r4, 0x16]
- cmp r0, 0
- beq _08112EA2
- b _08112FD0
-_08112EA2:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08112EAE
- b _08112FD0
-_08112EAE:
- ldr r0, _08112EDC @ =gBattleStringsTable
- ldr r0, [r0, 0x1C]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r1, _08112EE0 @ =gDisplayedStringBattle
- movs r0, 0xF
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112EE4 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08112FCE
- .align 2, 0
-_08112ED8: .4byte gUnknown_03004210
-_08112EDC: .4byte gBattleStringsTable
-_08112EE0: .4byte gDisplayedStringBattle
-_08112EE4: .4byte gTasks
-_08112EE8:
- ldr r4, _08112F28 @ =gUnknown_03004210
- ldrh r0, [r4, 0x16]
- cmp r0, 0
- bne _08112FD0
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08112FD0
- ldr r0, _08112F2C @ =gBattleStringsTable
- movs r1, 0xD0
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r1, _08112F30 @ =gDisplayedStringBattle
- movs r0, 0xF
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08112F34 @ =gTasks
- mov r2, r8
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0x13
- strh r1, [r0, 0x8]
- b _08112FD0
- .align 2, 0
-_08112F28: .4byte gUnknown_03004210
-_08112F2C: .4byte gBattleStringsTable
-_08112F30: .4byte gDisplayedStringBattle
-_08112F34: .4byte gTasks
-_08112F38:
- ldr r0, _08112F68 @ =gBattleStringsTable
- ldr r0, [r0, 0x20]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r0, _08112F6C @ =gUnknown_03004210
- ldr r1, _08112F70 @ =gDisplayedStringBattle
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08112F74 @ =gTasks
- mov r3, r8
- adds r0, r3, r7
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0xA
- strh r1, [r0, 0x1A]
- strh r2, [r0, 0x1C]
- movs r1, 0x3
- strh r1, [r0, 0x18]
- b _08112FD0
- .align 2, 0
-_08112F68: .4byte gBattleStringsTable
-_08112F6C: .4byte gUnknown_03004210
-_08112F70: .4byte gDisplayedStringBattle
-_08112F74: .4byte gTasks
-_08112F78:
- ldr r0, _08112FA0 @ =gBattleStringsTable
- ldr r0, [r0, 0x24]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r0, _08112FA4 @ =gUnknown_03004210
- ldr r1, _08112FA8 @ =gDisplayedStringBattle
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08112FAC @ =gTasks
- mov r2, r8
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
-_08112F9A:
- movs r1, 0xE
- strh r1, [r0, 0x8]
- b _08112FD0
- .align 2, 0
-_08112FA0: .4byte gBattleStringsTable
-_08112FA4: .4byte gUnknown_03004210
-_08112FA8: .4byte gDisplayedStringBattle
-_08112FAC: .4byte gTasks
-_08112FB0:
- ldr r0, _08112FE0 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _08112FD0
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08112FD0
- ldr r0, _08112FE4 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x5
-_08112FCE:
- strh r0, [r1, 0x18]
-_08112FD0:
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08112FE0: .4byte gUnknown_03004210
-_08112FE4: .4byte gTasks
- thumb_func_end Task_EvolutionScene
-
- thumb_func_start Task_TradeEvolutionScene
-Task_TradeEvolutionScene: @ 8112FE8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _0811302C @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r2
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- mov r8, r0
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- lsls r0, 16
- mov r3, r8
- orrs r3, r0
- mov r8, r3
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- adds r6, r2, 0
- cmp r0, 0x11
- bls _08113020
- bl _08113B3A
-_08113020:
- lsls r0, 2
- ldr r1, _08113030 @ =_08113034
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811302C: .4byte gTasks
-_08113030: .4byte _08113034
- .align 2, 0
-_08113034:
- .4byte _0811307C
- .4byte _081130B8
- .4byte _081130DC
- .4byte _0811310C
- .4byte _0811314C
- .4byte _0811318C
- .4byte _081131C8
- .4byte _081131F4
- .4byte _0811322C
- .4byte _08113248
- .4byte _08113274
- .4byte _081132A8
- .4byte _081132F8
- .4byte _081133A8
- .4byte _0811346C
- .4byte _08113490
- .4byte _081134F8
- .4byte _08113538
-_0811307C:
- ldr r4, _081130A8 @ =gStringVar4
- ldr r1, _081130AC @ =gUnknown_08400C4A
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _081130B0 @ =gUnknown_03004828
- ldr r1, [r0]
- adds r0, r1, 0x4
- adds r1, 0x34
- ldrb r2, [r1]
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _081130B4 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- b _08113298
- .align 2, 0
-_081130A8: .4byte gStringVar4
-_081130AC: .4byte gUnknown_08400C4A
-_081130B0: .4byte gUnknown_03004828
-_081130B4: .4byte gTasks
-_081130B8:
- ldr r0, _081130D8 @ =gUnknown_03004828
- ldr r0, [r0]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _081130C6
- bl _08113B3A
-_081130C6:
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0xE]
- movs r1, 0
- bl PlayCry1
- b _081132E2
- .align 2, 0
-_081130D8: .4byte gUnknown_03004828
-_081130DC:
- bl IsCryFinished
- lsls r0, 24
- cmp r0, 0
- bne _081130EA
- bl _08113B3A
-_081130EA:
- ldr r0, _08113104 @ =0x00000179
- bl m4aSongNumStop
- movs r0, 0xBC
- lsls r0, 1
- bl PlaySE
- ldr r1, _08113108 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- b _08113298
- .align 2, 0
-_08113104: .4byte 0x00000179
-_08113108: .4byte gTasks
-_0811310C:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _0811311C
- bl _08113B3A
-_0811311C:
- ldr r0, _08113144 @ =0x00000179
- bl PlayBGM
- ldr r1, _08113148 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- str r5, [sp]
- movs r0, 0x1C
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- bl _08113B3A
- .align 2, 0
-_08113144: .4byte 0x00000179
-_08113148: .4byte gTasks
-_0811314C:
- ldr r0, _08113180 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0811315C
- bl _08113B3A
-_0811315C:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x11
- bl sub_8149970
- ldr r1, _08113184 @ =gBattleCommunication
- strb r0, [r1, 0x2]
- ldr r1, _08113188 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- b _08113298
- .align 2, 0
-_08113180: .4byte gPaletteFade
-_08113184: .4byte gBattleCommunication
-_08113188: .4byte gTasks
-_0811318C:
- ldr r4, _081131C0 @ =gBattleCommunication
- ldrb r0, [r4, 0x2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _081131A2
- bl _08113B3A
-_081131A2:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r6
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- ldr r1, _081131C4 @ =0x02014800
- movs r0, 0x1
- strb r0, [r1, 0x3]
- bl sub_8149A90
- strb r0, [r4, 0x2]
- bl _08113B3A
- .align 2, 0
-_081131C0: .4byte gBattleCommunication
-_081131C4: .4byte 0x02014800
-_081131C8:
- ldr r4, _081131EC @ =gBattleCommunication
- ldrb r0, [r4, 0x2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _081131DE
- bl _08113B3A
-_081131DE:
- ldr r1, _081131F0 @ =0x02014800
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- bl sub_8149E7C
- strb r0, [r4, 0x2]
- b _08113290
- .align 2, 0
-_081131EC: .4byte gBattleCommunication
-_081131F0: .4byte 0x02014800
-_081131F4:
- ldr r1, _08113224 @ =0x02014800
- ldrb r0, [r1, 0x3]
- subs r0, 0x1
- strb r0, [r1, 0x3]
- lsls r0, 24
- cmp r0, 0
- beq _08113206
- bl _08113B3A
-_08113206:
- movs r0, 0x3
- strb r0, [r1, 0x3]
- ldr r0, _08113228 @ =gBattleCommunication
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _08113220
- bl _08113B3A
-_08113220:
- b _08113290
- .align 2, 0
-_08113224: .4byte 0x02014800
-_08113228: .4byte gBattleCommunication
-_0811322C:
- bl sub_8149B44
- ldr r1, _08113240 @ =gBattleCommunication
- strb r0, [r1, 0x2]
- ldr r1, _08113244 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- b _08113298
- .align 2, 0
-_08113240: .4byte gBattleCommunication
-_08113244: .4byte gTasks
-_08113248:
- ldr r5, _08113270 @ =gBattleCommunication
- ldrb r0, [r5, 0x2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _0811325E
- bl _08113B3A
-_0811325E:
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0x10]
- bl sub_8149D5C
- strb r0, [r5, 0x2]
- b _081132E2
- .align 2, 0
-_08113270: .4byte gBattleCommunication
-_08113274:
- ldr r0, _081132A4 @ =gBattleCommunication
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _0811328A
- bl _08113B3A
-_0811328A:
- movs r0, 0x21
- bl PlaySE
-_08113290:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r6
-_08113298:
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- bl _08113B3A
- .align 2, 0
-_081132A4: .4byte gBattleCommunication
-_081132A8:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _081132B6
- bl _08113B3A
-_081132B6:
- ldr r0, _081132EC @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x10]
- movs r1, 0
- bl PlayCry1
- ldr r0, _081132F0 @ =gPlttBufferUnfaded + 0x40
- ldr r1, _081132F4 @ =0x02009000
- movs r2, 0x60
- bl memcpy
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_081132E2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- bl _08113B3A
- .align 2, 0
-_081132EC: .4byte gTasks
-_081132F0: .4byte gPlttBufferUnfaded + 0x40
-_081132F4: .4byte 0x02009000
-_081132F8:
- bl IsCryFinished
- lsls r0, 24
- cmp r0, 0
- bne _08113306
- bl _08113B3A
-_08113306:
- ldr r0, _08113390 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08113316
- bl _08113B3A
-_08113316:
- ldr r4, _08113394 @ =gStringVar4
- ldr r1, _08113398 @ =gUnknown_08400C60
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _0811339C @ =gUnknown_03004828
- ldr r1, [r0]
- adds r0, r1, 0x4
- adds r1, 0x34
- ldrb r2, [r1]
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _081133A0 @ =0x00000173
- bl PlayFanfare
- ldr r2, _081133A4 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- adds r2, r1
- adds r2, 0x10
- mov r0, r8
- movs r1, 0xB
- bl SetMonData
- mov r0, r8
- bl CalculateMonStats
- ldrh r1, [r4, 0xE]
- ldrh r2, [r4, 0x10]
- mov r0, r8
- bl EvolutionRenameMon
- ldrh r0, [r4, 0x10]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl GetNationalPokedexFlag
- ldrh r0, [r4, 0x10]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl GetNationalPokedexFlag
- movs r0, 0xE
- bl IncrementGameStat
- b _08113B3A
- .align 2, 0
-_08113390: .4byte gPaletteFade
-_08113394: .4byte gStringVar4
-_08113398: .4byte gUnknown_08400C60
-_0811339C: .4byte gUnknown_03004828
-_081133A0: .4byte 0x00000173
-_081133A4: .4byte gTasks
-_081133A8:
- ldr r0, _08113410 @ =gUnknown_03004828
- ldr r0, [r0]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _081133B4
- b _08113B3A
-_081133B4:
- bl IsFanfareTaskInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081133C2
- b _08113B3A
-_081133C2:
- ldr r1, _08113414 @ =gTasks
- lsls r4, r7, 2
- adds r0, r4, r7
- lsls r0, 3
- adds r5, r0, r1
- ldrb r1, [r5, 0x14]
- mov r0, r8
- bl sub_803B7C8
- lsls r0, 16
- lsrs r6, r0, 16
- mov r9, r4
- cmp r6, 0
- beq _08113434
- movs r3, 0x1E
- ldrsh r2, [r5, r3]
- cmp r2, 0
- bne _08113434
- ldrh r1, [r5, 0x12]
- movs r0, 0x80
- orrs r0, r1
- strh r0, [r5, 0x12]
- strh r2, [r5, 0x14]
- strh r2, [r5, 0x18]
- mov r0, r8
- movs r1, 0x2
- add r2, sp, 0x4
- bl GetMonData
- ldr r0, _08113418 @ =gBattleTextBuff1
- add r1, sp, 0x4
- bl StringCopy10
- ldr r0, _0811341C @ =0x0000ffff
- cmp r6, r0
- bne _08113420
- movs r0, 0x11
- strh r0, [r5, 0x8]
- b _08113B3A
- .align 2, 0
-_08113410: .4byte gUnknown_03004828
-_08113414: .4byte gTasks
-_08113418: .4byte gBattleTextBuff1
-_0811341C: .4byte 0x0000ffff
-_08113420:
- ldr r0, _08113430 @ =0x0000fffe
- cmp r6, r0
- bne _08113428
- b _08113B3A
-_08113428:
- movs r0, 0xF
- strh r0, [r5, 0x8]
- b _08113B3A
- .align 2, 0
-_08113430: .4byte 0x0000fffe
-_08113434:
- ldr r0, _0811345C @ =0x00000179
- bl PlayBGM
- ldr r0, _08113460 @ =gUnknown_03004828
- ldr r2, [r0]
- adds r0, r2, 0x4
- ldr r1, _08113464 @ =gOtherText_LinkStandby2
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08113468 @ =gTasks
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- b _081134DC
- .align 2, 0
-_0811345C: .4byte 0x00000179
-_08113460: .4byte gUnknown_03004828
-_08113464: .4byte gOtherText_LinkStandby2
-_08113468: .4byte gTasks
-_0811346C:
- ldr r0, _08113488 @ =gUnknown_03004828
- ldr r0, [r0]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _08113478
- b _08113B3A
-_08113478:
- adds r0, r7, 0
- bl DestroyTask
- ldr r0, _0811348C @ =gUnknown_03005E94
- ldr r0, [r0]
- bl SetMainCallback2
- b _08113B3A
- .align 2, 0
-_08113488: .4byte gUnknown_03004828
-_0811348C: .4byte gUnknown_03005E94
-_08113490:
- ldr r4, _081134E4 @ =gUnknown_03004828
- ldr r0, [r4]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _0811349C
- b _08113B3A
-_0811349C:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _081134A8
- b _08113B3A
-_081134A8:
- bl sub_8024CEC
- ldr r0, _081134E8 @ =0x0000016f
- bl PlayFanfare
- ldr r0, _081134EC @ =gBattleStringsTable
- ldr r0, [r0, 0xC]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _081134F0 @ =gDisplayedStringBattle
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _081134F4 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x40
- strh r0, [r1, 0x14]
-_081134DC:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08113B3A
- .align 2, 0
-_081134E4: .4byte gUnknown_03004828
-_081134E8: .4byte 0x0000016f
-_081134EC: .4byte gBattleStringsTable
-_081134F0: .4byte gDisplayedStringBattle
-_081134F4: .4byte gTasks
-_081134F8:
- ldr r0, _08113530 @ =gUnknown_03004828
- ldr r0, [r0]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _08113504
- b _08113B3A
-_08113504:
- bl IsFanfareTaskInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08113512
- b _08113B3A
-_08113512:
- ldr r0, _08113534 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x14]
- subs r0, 0x1
- strh r0, [r1, 0x14]
- lsls r0, 16
- cmp r0, 0
- beq _0811352A
- b _08113B3A
-_0811352A:
- movs r0, 0xD
- strh r0, [r1, 0x8]
- b _08113B3A
- .align 2, 0
-_08113530: .4byte gUnknown_03004828
-_08113534: .4byte gTasks
-_08113538:
- lsls r1, r7, 2
- adds r0, r1, r7
- lsls r0, 3
- adds r0, r6
- movs r3, 0x18
- ldrsh r0, [r0, r3]
- mov r9, r1
- cmp r0, 0xB
- bls _0811354C
- b _08113B3A
-_0811354C:
- lsls r0, 2
- ldr r1, _08113558 @ =_0811355C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08113558: .4byte _0811355C
- .align 2, 0
-_0811355C:
- .4byte _0811358C
- .4byte _081135E4
- .4byte _08113638
- .4byte _08113682
- .4byte _0811371C
- .4byte _0811387C
- .4byte _081138CC
- .4byte _081139E8
- .4byte _08113A3C
- .4byte _08113A90
- .4byte _08113AD8
- .4byte _08113B18
-_0811358C:
- ldr r4, _081135D4 @ =gUnknown_03004828
- ldr r0, [r4]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _08113598
- b _08113B3A
-_08113598:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _081135A4
- b _08113B3A
-_081135A4:
- bl sub_8024CEC
- ldr r0, _081135D8 @ =gBattleStringsTable
- ldr r0, [r0, 0x10]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _081135DC @ =gDisplayedStringBattle
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _081135E0 @ =gTasks
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08113B38
- .align 2, 0
-_081135D4: .4byte gUnknown_03004828
-_081135D8: .4byte gBattleStringsTable
-_081135DC: .4byte gDisplayedStringBattle
-_081135E0: .4byte gTasks
-_081135E4:
- ldr r4, _08113628 @ =gUnknown_03004828
- ldr r0, [r4]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _081135F0
- b _08113B3A
-_081135F0:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _081135FC
- b _08113B3A
-_081135FC:
- ldr r0, _0811362C @ =gBattleStringsTable
- ldr r0, [r0, 0x14]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _08113630 @ =gDisplayedStringBattle
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08113634 @ =gTasks
- mov r3, r9
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08113B38
- .align 2, 0
-_08113628: .4byte gUnknown_03004828
-_0811362C: .4byte gBattleStringsTable
-_08113630: .4byte gDisplayedStringBattle
-_08113634: .4byte gTasks
-_08113638:
- ldr r4, _081136FC @ =gUnknown_03004828
- ldr r0, [r4]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _08113644
- b _08113B3A
-_08113644:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08113682
- ldr r0, _08113700 @ =gBattleStringsTable
- ldr r0, [r0, 0x18]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _08113704 @ =gDisplayedStringBattle
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08113708 @ =gTasks
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x5
- strh r0, [r1, 0x1A]
- movs r0, 0x9
- strh r0, [r1, 0x1C]
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- strh r0, [r1, 0x18]
-_08113682:
- ldr r5, _081136FC @ =gUnknown_03004828
- ldr r0, [r5]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _0811368E
- b _08113B3A
-_0811368E:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _0811369C
- b _08113B3A
-_0811369C:
- ldr r0, [r5]
- adds r0, 0x4
- movs r1, 0xD
- str r1, [sp]
- movs r1, 0x18
- movs r2, 0x8
- movs r3, 0x1D
- bl DrawTextWindow
- ldr r4, _0811370C @ =gBattleCommunication
- strb r6, [r4, 0x1]
- ldr r2, [r5]
- adds r0, r2, 0x4
- ldr r1, _08113710 @ =gOtherText_YesNoAndPlayer
- adds r2, 0x34
- ldrb r2, [r2]
- adds r2, 0x80
- movs r3, 0x9
- str r3, [sp]
- movs r3, 0x19
- bl InitWindow
- ldr r0, [r5]
- adds r0, 0x4
- bl sub_8002F44
- ldr r1, _08113714 @ =0x0000ffff
- ldr r3, _08113718 @ =0x00002d9f
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0
- movs r2, 0xC
- bl sub_814A5C0
- bl sub_81150D8
- ldr r0, _08113708 @ =gTasks
- mov r3, r9
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r1, 0x18]
- strb r2, [r4, 0x1]
- b _08113B3A
- .align 2, 0
-_081136FC: .4byte gUnknown_03004828
-_08113700: .4byte gBattleStringsTable
-_08113704: .4byte gDisplayedStringBattle
-_08113708: .4byte gTasks
-_0811370C: .4byte gBattleCommunication
-_08113710: .4byte gOtherText_YesNoAndPlayer
-_08113714: .4byte 0x0000ffff
-_08113718: .4byte 0x00002d9f
-_0811371C:
- ldr r0, _081137CC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08113742
- ldr r4, _081137D0 @ =gBattleCommunication
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08113742
- movs r0, 0x5
- bl PlaySE
- bl HBlankCB_TradeEvolutionScene
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_81150D8
-_08113742:
- ldr r0, _081137CC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08113768
- ldr r4, _081137D0 @ =gBattleCommunication
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08113768
- movs r0, 0x5
- bl PlaySE
- bl HBlankCB_TradeEvolutionScene
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_81150D8
-_08113768:
- ldr r0, _081137CC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0811380A
- ldr r4, _081137D4 @ =gUnknown_03004828
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0xD
- str r1, [sp]
- movs r1, 0x18
- movs r2, 0x8
- movs r3, 0x1D
- bl ZeroFillWindowRect
- bl DestroyMenuCursor
- ldr r0, _081137D8 @ =gBattleStringsTable
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _081137DC @ =gDisplayedStringBattle
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- movs r0, 0x5
- bl PlaySE
- ldr r0, _081137D0 @ =gBattleCommunication
- ldrb r2, [r0, 0x1]
- cmp r2, 0
- beq _081137E4
- ldr r0, _081137E0 @ =gTasks
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1C]
- strh r0, [r1, 0x18]
- b _0811380A
- .align 2, 0
-_081137CC: .4byte gMain
-_081137D0: .4byte gBattleCommunication
-_081137D4: .4byte gUnknown_03004828
-_081137D8: .4byte gBattleStringsTable
-_081137DC: .4byte gDisplayedStringBattle
-_081137E0: .4byte gTasks
-_081137E4:
- ldr r0, _08113868 @ =gTasks
- mov r3, r9
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1A]
- strh r0, [r1, 0x18]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0811380A
- movs r0, 0x1
- negs r0, r0
- str r2, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0811380A:
- ldr r0, _0811386C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08113818
- b _08113B3A
-_08113818:
- ldr r4, _08113870 @ =gUnknown_03004828
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0xD
- str r1, [sp]
- movs r1, 0x18
- movs r2, 0x8
- movs r3, 0x1D
- bl ZeroFillWindowRect
- bl DestroyMenuCursor
- ldr r0, _08113874 @ =gBattleStringsTable
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _08113878 @ =gDisplayedStringBattle
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08113868 @ =gTasks
- mov r2, r9
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x1C]
- strh r1, [r0, 0x18]
- b _08113B3A
- .align 2, 0
-_08113868: .4byte gTasks
-_0811386C: .4byte gMain
-_08113870: .4byte gUnknown_03004828
-_08113874: .4byte gBattleStringsTable
-_08113878: .4byte gDisplayedStringBattle
-_0811387C:
- ldr r0, _081138B8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0811388A
- b _08113B3A
-_0811388A:
- ldr r0, _081138BC @ =gPlayerParty
- mov r3, r9
- adds r5, r3, r7
- lsls r5, 3
- adds r5, r6
- ldrh r1, [r5, 0x20]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _081138C0 @ =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _081138C4 @ =CB2_TradeEvolutionSceneLoadGraphics
- ldr r4, _081138C8 @ =word_2024E82
- ldrh r4, [r4]
- str r4, [sp]
- bl sub_809D9F0
- ldrh r0, [r5, 0x18]
- adds r0, 0x1
- strh r0, [r5, 0x18]
- b _08113B3A
- .align 2, 0
-_081138B8: .4byte gPaletteFade
-_081138BC: .4byte gPlayerParty
-_081138C0: .4byte gPlayerPartyCount
-_081138C4: .4byte CB2_TradeEvolutionSceneLoadGraphics
-_081138C8: .4byte word_2024E82
-_081138CC:
- ldr r0, _08113900 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081138DA
- b _08113B3A
-_081138DA:
- ldr r0, _08113904 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _08113908 @ =CB2_EvolutionSceneUpdate_1
- cmp r1, r0
- beq _081138E6
- b _08113B3A
-_081138E6:
- bl sub_809FA30
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x4
- bne _08113910
- ldr r0, _0811390C @ =gTasks
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x9
- b _08113B38
- .align 2, 0
-_08113900: .4byte gPaletteFade
-_08113904: .4byte gMain
-_08113908: .4byte CB2_EvolutionSceneUpdate_1
-_0811390C: .4byte gTasks
-_08113910:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r8
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl IsHMMove2
- cmp r0, 0
- beq _08113970
- ldr r0, _0811395C @ =gBattleStringsTable
- ldr r3, _08113960 @ =0x000004cc
- adds r0, r3
- ldr r0, [r0]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r0, _08113964 @ =gUnknown_03004828
- ldr r2, [r0]
- adds r0, r2, 0x4
- ldr r1, _08113968 @ =gDisplayedStringBattle
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _0811396C @ =gTasks
- mov r2, r9
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0xB
- strh r1, [r0, 0x18]
- b _08113B3A
- .align 2, 0
-_0811395C: .4byte gBattleStringsTable
-_08113960: .4byte 0x000004cc
-_08113964: .4byte gUnknown_03004828
-_08113968: .4byte gDisplayedStringBattle
-_0811396C: .4byte gTasks
-_08113970:
- ldr r1, _081139D0 @ =gBattleTextBuff2
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- strb r4, [r1, 0x2]
- lsrs r0, r4, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- lsls r4, r6, 24
- lsrs r4, 24
- mov r0, r8
- adds r1, r4, 0
- bl RemoveMonPPBonus
- ldr r0, _081139D4 @ =word_2024E82
- ldrh r1, [r0]
- mov r0, r8
- adds r2, r4, 0
- bl SetMonMoveSlot
- ldr r0, _081139D8 @ =gBattleStringsTable
- movs r3, 0xCF
- lsls r3, 2
- adds r0, r3
- ldr r0, [r0]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r0, _081139DC @ =gUnknown_03004828
- ldr r2, [r0]
- adds r0, r2, 0x4
- ldr r1, _081139E0 @ =gDisplayedStringBattle
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _081139E4 @ =gTasks
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08113B38
- .align 2, 0
-_081139D0: .4byte gBattleTextBuff2
-_081139D4: .4byte word_2024E82
-_081139D8: .4byte gBattleStringsTable
-_081139DC: .4byte gUnknown_03004828
-_081139E0: .4byte gDisplayedStringBattle
-_081139E4: .4byte gTasks
-_081139E8:
- ldr r4, _08113A2C @ =gUnknown_03004828
- ldr r0, [r4]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _081139F4
- b _08113B3A
-_081139F4:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08113A00
- b _08113B3A
-_08113A00:
- ldr r0, _08113A30 @ =gBattleStringsTable
- ldr r0, [r0, 0x1C]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _08113A34 @ =gDisplayedStringBattle
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08113A38 @ =gTasks
- mov r3, r9
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08113B38
- .align 2, 0
-_08113A2C: .4byte gUnknown_03004828
-_08113A30: .4byte gBattleStringsTable
-_08113A34: .4byte gDisplayedStringBattle
-_08113A38: .4byte gTasks
-_08113A3C:
- ldr r4, _08113A80 @ =gUnknown_03004828
- ldr r0, [r4]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- bne _08113B3A
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08113B3A
- ldr r0, _08113A84 @ =gBattleStringsTable
- movs r1, 0xD0
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _08113A88 @ =gDisplayedStringBattle
- adds r2, 0x34
- ldrb r2, [r2]
- movs r4, 0xF
- str r4, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08113A8C @ =gTasks
- mov r2, r9
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x8]
- b _08113B3A
- .align 2, 0
-_08113A80: .4byte gUnknown_03004828
-_08113A84: .4byte gBattleStringsTable
-_08113A88: .4byte gDisplayedStringBattle
-_08113A8C: .4byte gTasks
-_08113A90:
- ldr r0, _08113AC8 @ =gBattleStringsTable
- ldr r0, [r0, 0x20]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r0, _08113ACC @ =gUnknown_03004828
- ldr r2, [r0]
- adds r0, r2, 0x4
- ldr r1, _08113AD0 @ =gDisplayedStringBattle
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08113AD4 @ =gTasks
- mov r3, r9
- adds r0, r3, r7
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0xA
- strh r1, [r0, 0x1A]
- strh r2, [r0, 0x1C]
- movs r1, 0x3
- strh r1, [r0, 0x18]
- b _08113B3A
- .align 2, 0
-_08113AC8: .4byte gBattleStringsTable
-_08113ACC: .4byte gUnknown_03004828
-_08113AD0: .4byte gDisplayedStringBattle
-_08113AD4: .4byte gTasks
-_08113AD8:
- ldr r0, _08113B08 @ =gBattleStringsTable
- ldr r0, [r0, 0x24]
- bl StrCpyDecodeToDisplayedStringBattle
- ldr r0, _08113B0C @ =gUnknown_03004828
- ldr r2, [r0]
- adds r0, r2, 0x4
- ldr r1, _08113B10 @ =gDisplayedStringBattle
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08113B14 @ =gTasks
- mov r2, r9
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0xD
- strh r1, [r0, 0x8]
- b _08113B3A
- .align 2, 0
-_08113B08: .4byte gBattleStringsTable
-_08113B0C: .4byte gUnknown_03004828
-_08113B10: .4byte gDisplayedStringBattle
-_08113B14: .4byte gTasks
-_08113B18:
- ldr r0, _08113B48 @ =gUnknown_03004828
- ldr r0, [r0]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- bne _08113B3A
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08113B3A
- ldr r0, _08113B4C @ =gTasks
- mov r3, r9
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x5
-_08113B38:
- strh r0, [r1, 0x18]
-_08113B3A:
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08113B48: .4byte gUnknown_03004828
-_08113B4C: .4byte gTasks
- thumb_func_end Task_TradeEvolutionScene
-
- thumb_func_start unref_sub_8113B50
-unref_sub_8113B50: @ 8113B50
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- str r0, [sp]
- str r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- movs r1, 0
- str r1, [sp, 0x10]
- movs r2, 0
- str r2, [sp, 0x8]
- ldr r3, _08113C60 @ =0x02014800
- mov r12, r3
- ldr r4, _08113C64 @ =0x000018c4
- add r4, r12
- mov r10, r4
- ldr r5, _08113C68 @ =0x000020c4
- add r5, r12
- mov r8, r5
-_08113B7C:
- adds r0, r3, 0
- adds r0, 0x84
- ldr r1, [sp, 0x8]
- adds r0, r1, r0
- strb r2, [r0]
- adds r0, r3, 0x4
- adds r0, r1, r0
- strb r2, [r0]
- ldr r4, _08113C6C @ =0x02014844
- adds r0, r1, r4
- strb r2, [r0]
- movs r6, 0
- lsls r1, 5
- mov r9, r1
- ldr r5, [sp, 0x8]
- lsls r4, r5, 6
-_08113B9C:
- mov r0, r9
- adds r1, r6, r0
- ldr r5, _08113C70 @ =0x020158c4
- adds r0, r1, r5
- strb r2, [r0]
- mov r5, r10
- adds r0, r1, r5
- strb r2, [r0]
- mov r5, r8
- adds r0, r1, r5
- strb r2, [r0]
- ldr r5, _08113C74 @ =0x020170c4
- adds r0, r1, r5
- strb r2, [r0]
- adds r7, r3, 0
- adds r7, 0xC4
- adds r0, r1, r7
- strb r2, [r0]
- ldr r5, _08113C78 @ =0x000008c4
- adds r0, r3, r5
- adds r0, r1, r0
- strb r2, [r0]
- ldr r5, _08113C7C @ =0x000030c4
- adds r0, r3, r5
- adds r0, r1, r0
- strb r2, [r0]
- ldr r5, _08113C80 @ =0x000038c4
- adds r0, r3, r5
- adds r1, r0
- strb r2, [r1]
- lsls r1, r6, 1
- adds r1, r4
- ldr r5, _08113C84 @ =0x000060c4
- adds r0, r3, r5
- adds r0, r1, r0
- strh r2, [r0]
- ldr r5, _08113C88 @ =0x000070c4
- adds r0, r3, r5
- adds r0, r1, r0
- strh r2, [r0]
- ldr r5, _08113C8C @ =0x000080c4
- adds r0, r3, r5
- adds r0, r1, r0
- strh r2, [r0]
- ldr r5, _08113C90 @ =0x000090c4
- adds r0, r3, r5
- adds r1, r0
- strh r2, [r1]
- adds r6, 0x1
- cmp r6, 0x1F
- ble _08113B9C
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- str r0, [sp, 0x8]
- cmp r0, 0x3F
- ble _08113B7C
- ldr r1, _08113C94 @ =0x0000a0c4
- add r1, r12
- movs r0, 0x40
- strb r0, [r1]
- movs r1, 0
- mov r8, r1
- movs r2, 0
- str r2, [sp, 0x8]
- movs r3, 0x80
- lsls r3, 5
- adds r3, r7
- mov r12, r3
- movs r4, 0xC0
- lsls r4, 5
- adds r4, r7
- mov r9, r4
- movs r5, 0
- adds r4, r7, 0
- subs r4, 0xC0
-_08113C32:
- movs r3, 0
- ldr r2, [sp]
- add r2, r8
- movs r6, 0
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- str r0, [sp, 0x30]
- ldr r1, [sp, 0x8]
- lsls r1, 7
- mov r10, r1
- movs r7, 0x1
- negs r7, r7
-_08113C4A:
- asrs r0, r6, 1
- lsls r0, 2
- add r0, r10
- ldr r1, _08113C98 @ =0x020188c4
- adds r0, r1
- str r2, [r0]
- cmp r3, 0
- beq _08113C9C
- cmp r3, 0x1
- beq _08113CC6
- b _08113CF4
- .align 2, 0
-_08113C60: .4byte 0x02014800
-_08113C64: .4byte 0x000018c4
-_08113C68: .4byte 0x000020c4
-_08113C6C: .4byte 0x02014844
-_08113C70: .4byte 0x020158c4
-_08113C74: .4byte 0x020170c4
-_08113C78: .4byte 0x000008c4
-_08113C7C: .4byte 0x000030c4
-_08113C80: .4byte 0x000038c4
-_08113C84: .4byte 0x000060c4
-_08113C88: .4byte 0x000070c4
-_08113C8C: .4byte 0x000080c4
-_08113C90: .4byte 0x000090c4
-_08113C94: .4byte 0x0000a0c4
-_08113C98: .4byte 0x020188c4
-_08113C9C:
- movs r0, 0x1
- ands r0, r6
- cmp r0, 0
- beq _08113CAA
- cmp r0, 0x1
- beq _08113CB0
- b _08113CF4
-_08113CAA:
- ldrb r1, [r2]
- movs r0, 0xF
- b _08113CB4
-_08113CB0:
- ldrb r1, [r2]
- movs r0, 0xF0
-_08113CB4:
- ands r0, r1
- cmp r0, 0
- beq _08113CF4
- ldrb r0, [r4]
- adds r0, r5
- add r0, r12
- strb r6, [r0]
- movs r3, 0x1
- b _08113CF4
-_08113CC6:
- adds r0, r6, 0
- ands r0, r3
- cmp r0, 0
- beq _08113CD4
- cmp r0, 0x1
- beq _08113CDA
- b _08113CF4
-_08113CD4:
- ldrb r1, [r2]
- movs r0, 0xF
- b _08113CDE
-_08113CDA:
- ldrb r1, [r2]
- movs r0, 0xF0
-_08113CDE:
- ands r0, r1
- cmp r0, 0
- bne _08113CF4
- ldrb r0, [r4]
- adds r0, r5
- add r0, r9
- strb r7, [r0]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r3, 0
-_08113CF4:
- adds r0, r6, 0x1
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08113D02
- adds r2, 0x1D
- b _08113D0C
-_08113D02:
- movs r0, 0x1
- ands r0, r6
- cmp r0, 0
- beq _08113D0C
- adds r2, 0x1
-_08113D0C:
- adds r7, 0x1
- adds r6, 0x1
- cmp r6, 0x3F
- ble _08113C4A
- cmp r3, 0
- beq _08113D26
- ldrb r0, [r4]
- adds r0, r5
- add r0, r9
- strb r6, [r0]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_08113D26:
- movs r0, 0x7
- ldr r2, [sp, 0x30]
- ands r2, r0
- cmp r2, 0
- bne _08113D36
- movs r3, 0xE4
- add r8, r3
- b _08113D3A
-_08113D36:
- movs r0, 0x4
- add r8, r0
-_08113D3A:
- adds r5, 0x20
- adds r4, 0x1
- ldr r1, [sp, 0x8]
- adds r1, 0x1
- str r1, [sp, 0x8]
- cmp r1, 0x3F
- bgt _08113D4A
- b _08113C32
-_08113D4A:
- movs r2, 0
- mov r8, r2
- movs r3, 0
- str r3, [sp, 0x8]
- ldr r0, _08113D84 @ =0x02014844
- movs r4, 0x82
- lsls r4, 6
- adds r4, r0
- mov r10, r4
- movs r5, 0xA2
- lsls r5, 6
- adds r7, r0, r5
- movs r5, 0
- adds r4, r0, 0
- movs r0, 0x1
- mov r9, r0
-_08113D6A:
- movs r3, 0
- ldr r2, [sp, 0x4]
- add r2, r8
- movs r6, 0
- ldr r1, [sp, 0x8]
- adds r1, 0x1
- str r1, [sp, 0x30]
-_08113D78:
- cmp r3, 0
- beq _08113D88
- cmp r3, 0x1
- beq _08113DB4
- b _08113DE4
- .align 2, 0
-_08113D84: .4byte 0x02014844
-_08113D88:
- adds r0, r6, 0
- mov r1, r9
- ands r0, r1
- cmp r0, 0
- beq _08113D98
- cmp r0, 0x1
- beq _08113D9E
- b _08113DE4
-_08113D98:
- ldrb r1, [r2]
- movs r0, 0xF
- b _08113DA2
-_08113D9E:
- ldrb r1, [r2]
- movs r0, 0xF0
-_08113DA2:
- ands r0, r1
- cmp r0, 0
- beq _08113DE4
- ldrb r0, [r4]
- adds r0, r5
- add r0, r10
- strb r6, [r0]
- movs r3, 0x1
- b _08113DE4
-_08113DB4:
- adds r0, r6, 0
- ands r0, r3
- cmp r0, 0
- beq _08113DC2
- cmp r0, 0x1
- beq _08113DC8
- b _08113DE4
-_08113DC2:
- ldrb r1, [r2]
- movs r0, 0xF
- b _08113DCC
-_08113DC8:
- ldrb r1, [r2]
- movs r0, 0xF0
-_08113DCC:
- ands r0, r1
- cmp r0, 0
- bne _08113DE4
- ldrb r0, [r4]
- adds r0, r5
- adds r0, r7
- subs r1, r6, 0x1
- strb r1, [r0]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r3, 0
-_08113DE4:
- adds r1, r6, 0x1
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08113DF2
- adds r2, 0x1D
- b _08113DFC
-_08113DF2:
- mov r0, r9
- ands r6, r0
- cmp r6, 0
- beq _08113DFC
- adds r2, 0x1
-_08113DFC:
- adds r6, r1, 0
- cmp r6, 0x3F
- ble _08113D78
- cmp r3, 0
- beq _08113E14
- ldrb r0, [r4]
- adds r0, r5
- adds r0, r7
- strb r6, [r0]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_08113E14:
- movs r0, 0x7
- ldr r1, [sp, 0x30]
- ands r1, r0
- cmp r1, 0
- bne _08113E24
- movs r2, 0xE4
- add r8, r2
- b _08113E28
-_08113E24:
- movs r3, 0x4
- add r8, r3
-_08113E28:
- adds r5, 0x20
- adds r4, 0x1
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- str r0, [sp, 0x8]
- cmp r0, 0x3F
- ble _08113D6A
- movs r1, 0
- str r1, [sp, 0x8]
-_08113E3A:
- ldr r3, [sp, 0x8]
- ldr r4, _08113EBC @ =0x02014804
- adds r2, r3, r4
- ldr r5, _08113EC0 @ =0x02014844
- adds r1, r3, r5
- ldrb r0, [r2]
- adds r3, 0x1
- str r3, [sp, 0x30]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08113E52
- b _08113F9E
-_08113E52:
- movs r0, 0
- str r0, [sp, 0xC]
- ldrb r2, [r2]
- cmp r0, r2
- bge _08113F54
- ldr r0, _08113EC4 @ =0x02014800
- adds r0, 0x4
- ldr r1, [sp, 0x8]
- adds r0, r1, r0
- str r0, [sp, 0x18]
-_08113E66:
- movs r2, 0x80
- lsls r2, 1
- str r2, [sp, 0x14]
- movs r6, 0
- ldr r3, [sp, 0x8]
- ldr r4, _08113EC0 @ =0x02014844
- adds r0, r3, r4
- ldr r5, [sp, 0xC]
- adds r5, 0x1
- str r5, [sp, 0x34]
- ldrb r0, [r0]
- cmp r6, r0
- bge _08113F3E
- ldr r0, _08113EC4 @ =0x02014800
- mov r10, r0
- lsls r0, r3, 5
- ldr r2, [sp, 0xC]
- adds r1, r2, r0
- mov r9, r0
- ldr r0, _08113EC4 @ =0x02014800
- adds r0, 0xC4
- mov r3, r9
- adds r7, r3, r0
- mov r5, r9
- ldr r4, _08113EC4 @ =0x02014800
- ldr r2, _08113EC8 @ =0x000010c4
- adds r0, r4, r2
- adds r1, r0
- mov r8, r1
- ldrb r3, [r1]
- str r3, [sp, 0x1C]
-_08113EA4:
- ldr r0, _08113ECC @ =0x000020c4
- add r0, r10
- adds r0, r5, r0
- ldr r4, [sp, 0x1C]
- ldrb r1, [r0]
- cmp r4, r1
- bls _08113ED0
- mov r2, r8
- ldrb r1, [r2]
- ldrb r0, [r0]
- b _08113ED6
- .align 2, 0
-_08113EBC: .4byte 0x02014804
-_08113EC0: .4byte 0x02014844
-_08113EC4: .4byte 0x02014800
-_08113EC8: .4byte 0x000010c4
-_08113ECC: .4byte 0x000020c4
-_08113ED0:
- ldrb r1, [r0]
- mov r3, r8
- ldrb r0, [r3]
-_08113ED6:
- subs r3, r1, r0
- ldr r1, [sp, 0xC]
- add r1, r9
- ldr r0, _08113EFC @ =0x000018c4
- add r0, r10
- adds r4, r1, r0
- ldr r0, _08113F00 @ =0x000028c4
- add r0, r10
- adds r2, r5, r0
- ldrb r0, [r4]
- ldr r1, _08113F04 @ =0x02014800
- mov r12, r1
- ldrb r1, [r2]
- cmp r0, r1
- bls _08113F08
- adds r1, r0, 0
- ldrb r0, [r2]
- b _08113F0C
- .align 2, 0
-_08113EFC: .4byte 0x000018c4
-_08113F00: .4byte 0x000028c4
-_08113F04: .4byte 0x02014800
-_08113F08:
- ldrb r1, [r2]
- ldrb r0, [r4]
-_08113F0C:
- subs r1, r0
- adds r3, r1
- ldr r2, [sp, 0x14]
- cmp r2, r3
- ble _08113F2C
- ldrb r0, [r7]
- cmp r0, 0
- bne _08113F2C
- ldr r0, _08114050 @ =0x000008c4
- add r0, r12
- adds r0, r5, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08113F2C
- str r6, [sp, 0x10]
- str r3, [sp, 0x14]
-_08113F2C:
- adds r7, 0x1
- adds r5, 0x1
- adds r6, 0x1
- ldr r3, [sp, 0x8]
- ldr r4, _08114054 @ =0x02014844
- adds r0, r3, r4
- ldrb r0, [r0]
- cmp r6, r0
- blt _08113EA4
-_08113F3E:
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x10]
- ldr r2, [sp, 0x8]
- bl sub_81141F0
- ldr r5, [sp, 0x34]
- str r5, [sp, 0xC]
- ldr r0, [sp, 0x18]
- ldrb r0, [r0]
- cmp r5, r0
- blt _08113E66
-_08113F54:
- movs r6, 0
- ldr r2, _08114058 @ =0x02014800
- ldr r1, [sp, 0x8]
- ldr r3, _08114054 @ =0x02014844
- adds r0, r1, r3
- adds r4, r2, 0
- mov r12, r4
- ldrb r0, [r0]
- cmp r6, r0
- bge _08113F9E
- mov r0, r12
- adds r0, 0x44
- adds r4, r1, r0
-_08113F6E:
- ldr r5, [sp, 0x8]
- lsls r0, r5, 5
- adds r1, r6, r0
- adds r0, r2, 0
- adds r0, 0xC4
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08113F94
- ldr r3, _08114050 @ =0x000008c4
- adds r0, r2, r3
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08113F94
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_811430C
-_08113F94:
- adds r6, 0x1
- ldr r2, _08114058 @ =0x02014800
- ldrb r5, [r4]
- cmp r6, r5
- blt _08113F6E
-_08113F9E:
- ldr r0, [sp, 0x8]
- ldr r1, _0811405C @ =0x02014804
- adds r2, r0, r1
- ldr r3, _08114054 @ =0x02014844
- adds r1, r0, r3
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08113FCC
- movs r6, 0
- ldrb r4, [r2]
- cmp r6, r4
- bge _08113FCC
- adds r4, r2, 0
-_08113FBA:
- adds r0, r6, 0
- adds r1, r6, 0
- ldr r2, [sp, 0x8]
- bl sub_81141F0
- adds r6, 0x1
- ldrb r5, [r4]
- cmp r6, r5
- blt _08113FBA
-_08113FCC:
- ldr r0, [sp, 0x8]
- ldr r1, _0811405C @ =0x02014804
- adds r2, r0, r1
- ldr r3, _08114054 @ =0x02014844
- adds r1, r0, r3
- ldrb r0, [r2]
- ldr r4, _08114058 @ =0x02014800
- ldrb r5, [r1]
- cmp r0, r5
- bhi _08113FE2
- b _081141C4
-_08113FE2:
- movs r0, 0
- str r0, [sp, 0x10]
- ldrb r1, [r1]
- cmp r0, r1
- blt _08113FEE
- b _08114104
-_08113FEE:
- str r2, [sp, 0x2C]
- ldr r1, [sp, 0x8]
- lsls r1, 5
- mov r9, r1
- adds r0, r4, 0
- adds r0, 0x44
- ldr r2, [sp, 0x8]
- adds r0, r2, r0
- str r0, [sp, 0x20]
- mov r3, r9
- str r3, [sp, 0x24]
-_08114004:
- movs r4, 0x80
- lsls r4, 1
- str r4, [sp, 0x14]
- movs r6, 0
- ldr r5, [sp, 0x10]
- adds r5, 0x1
- str r5, [sp, 0x38]
- ldr r0, [sp, 0x2C]
- ldrb r0, [r0]
- cmp r6, r0
- bge _081140C4
- ldr r1, [sp, 0x10]
- ldr r2, [sp, 0x24]
- adds r1, r2
- mov r10, r1
- ldr r0, _08114058 @ =0x02014800
- adds r0, 0xC4
- adds r2, r0
- mov r8, r2
- ldr r7, [sp, 0x24]
- ldr r3, _08114058 @ =0x02014800
- ldr r4, _08114060 @ =0x000010c4
- adds r0, r3, r4
- adds r5, r7, r0
- ldr r0, _08114064 @ =0x020168c4
- add r0, r10
- mov r12, r0
- ldrb r1, [r0]
- str r1, [sp, 0x28]
-_0811403E:
- ldrb r0, [r5]
- ldr r2, [sp, 0x28]
- cmp r0, r2
- bls _08114068
- adds r1, r0, 0
- mov r3, r12
- ldrb r0, [r3]
- b _0811406E
- .align 2, 0
-_08114050: .4byte 0x000008c4
-_08114054: .4byte 0x02014844
-_08114058: .4byte 0x02014800
-_0811405C: .4byte 0x02014804
-_08114060: .4byte 0x000010c4
-_08114064: .4byte 0x020168c4
-_08114068:
- mov r4, r12
- ldrb r1, [r4]
- ldrb r0, [r5]
-_0811406E:
- subs r3, r1, r0
- ldr r1, _0811408C @ =0x02014800
- ldr r2, _08114090 @ =0x000018c4
- adds r0, r1, r2
- adds r4, r7, r0
- ldr r2, _08114094 @ =0x020170c4
- add r2, r10
- ldrb r0, [r4]
- ldrb r1, [r2]
- cmp r0, r1
- bls _08114098
- adds r1, r0, 0
- ldrb r0, [r2]
- b _0811409C
- .align 2, 0
-_0811408C: .4byte 0x02014800
-_08114090: .4byte 0x000018c4
-_08114094: .4byte 0x020170c4
-_08114098:
- ldrb r1, [r2]
- ldrb r0, [r4]
-_0811409C:
- subs r1, r0
- adds r3, r1
- ldr r2, [sp, 0x14]
- cmp r2, r3
- ble _081140B2
- mov r4, r8
- ldrb r0, [r4]
- cmp r0, 0
- bne _081140B2
- str r6, [sp, 0xC]
- str r3, [sp, 0x14]
-_081140B2:
- movs r0, 0x1
- add r8, r0
- adds r7, 0x1
- adds r5, 0x1
- adds r6, 0x1
- ldr r1, [sp, 0x2C]
- ldrb r1, [r1]
- cmp r6, r1
- blt _0811403E
-_081140C4:
- ldr r3, [sp, 0xC]
- add r3, r9
- ldr r2, _08114164 @ =0x02014800
- ldr r4, _08114168 @ =0x000030c4
- adds r1, r2, r4
- adds r1, r3, r1
- ldr r2, [sp, 0x10]
- add r2, r9
- ldr r5, _0811416C @ =0x020168c4
- adds r0, r2, r5
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _08114164 @ =0x02014800
- ldr r4, _08114170 @ =0x000038c4
- adds r1, r0, r4
- adds r1, r3, r1
- ldr r5, _08114174 @ =0x020170c4
- adds r2, r5
- ldrb r0, [r2]
- strb r0, [r1]
- ldr r0, _08114164 @ =0x02014800
- adds r0, 0xC4
- adds r3, r0
- movs r0, 0x1
- strb r0, [r3]
- ldr r0, [sp, 0x38]
- str r0, [sp, 0x10]
- ldr r1, [sp, 0x20]
- ldrb r1, [r1]
- cmp r0, r1
- bge _08114104
- b _08114004
-_08114104:
- movs r6, 0
- ldr r4, _08114164 @ =0x02014800
- ldr r2, [sp, 0x8]
- ldr r3, _08114178 @ =0x02014804
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r6, r0
- bge _081141C4
- adds r7, r4, 0
- mov r9, r6
- movs r5, 0xC4
- adds r5, r7
- mov r8, r5
-_0811411E:
- ldr r1, [sp, 0x8]
- lsls r0, r1, 5
- adds r2, r6, r0
- ldr r3, _0811417C @ =0x000020c4
- adds r0, r7, r3
- adds r0, r2
- mov r10, r0
- ldr r5, _08114168 @ =0x000030c4
- adds r0, r7, r5
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r10
- strb r0, [r1]
- ldr r3, _08114180 @ =0x000028c4
- adds r0, r7, r3
- adds r3, r2, r0
- ldr r5, _08114170 @ =0x000038c4
- adds r0, r7, r5
- adds r0, r2, r0
- ldrb r0, [r0]
- strb r0, [r3]
- mov r0, r8
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _08114184
- mov r2, r9
- strb r2, [r1]
- adds r0, r6, 0
- adds r1, r6, 0
- ldr r2, [sp, 0x8]
- bl sub_81141F0
- b _081141B4
- .align 2, 0
-_08114164: .4byte 0x02014800
-_08114168: .4byte 0x000030c4
-_0811416C: .4byte 0x020168c4
-_08114170: .4byte 0x000038c4
-_08114174: .4byte 0x020170c4
-_08114178: .4byte 0x02014804
-_0811417C: .4byte 0x000020c4
-_08114180: .4byte 0x000028c4
-_08114184:
- ldr r5, _081141E0 @ =0x000010c4
- adds r1, r4, r5
- adds r1, r2, r1
- ldr r5, _081141E4 @ =0x000018c4
- adds r0, r4, r5
- adds r0, r2, r0
- ldrb r0, [r0]
- ldrb r2, [r1]
- subs r0, r2
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r2, r0
- strb r2, [r3]
- mov r0, r10
- strb r2, [r0]
- ldrb r0, [r3]
- subs r0, 0x1
- strb r0, [r3]
- adds r0, r6, 0
- adds r1, r6, 0
- ldr r2, [sp, 0x8]
- bl sub_81141F0
-_081141B4:
- adds r6, 0x1
- ldr r4, _081141E8 @ =0x02014800
- ldr r1, [sp, 0x8]
- ldr r2, _081141EC @ =0x02014804
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r6, r0
- blt _0811411E
-_081141C4:
- ldr r3, [sp, 0x30]
- str r3, [sp, 0x8]
- cmp r3, 0x3F
- bgt _081141CE
- b _08113E3A
-_081141CE:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081141E0: .4byte 0x000010c4
-_081141E4: .4byte 0x000018c4
-_081141E8: .4byte 0x02014800
-_081141EC: .4byte 0x02014804
- thumb_func_end unref_sub_8113B50
-
- thumb_func_start sub_81141F0
-sub_81141F0: @ 81141F0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- mov r8, r1
- mov r9, r2
- ldr r3, _0811424C @ =0x02014800
- lsls r1, r2, 5
- mov r0, r8
- adds r4, r0, r1
- ldr r5, _08114250 @ =0x000030c4
- adds r2, r3, r5
- adds r2, r4, r2
- adds r1, r6, r1
- ldr r7, _08114254 @ =0x000010c4
- adds r0, r3, r7
- adds r5, r1, r0
- ldrb r0, [r5]
- strb r0, [r2]
- ldr r0, _08114258 @ =0x000038c4
- adds r2, r3, r0
- adds r2, r4, r2
- ldr r7, _0811425C @ =0x000018c4
- adds r0, r3, r7
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r2]
- movs r7, 0
- ldr r1, _08114260 @ =0x000020c4
- adds r0, r3, r1
- adds r2, r4, r0
- ldrb r1, [r5]
- ldrb r0, [r2]
- mov r12, r3
- cmp r1, r0
- bcs _08114264
- mov r0, r12
- adds r0, 0xC4
- adds r0, r4, r0
- movs r1, 0x4
- strb r1, [r0]
- ldrb r1, [r2]
- ldrb r0, [r5]
- b _08114276
- .align 2, 0
-_0811424C: .4byte 0x02014800
-_08114250: .4byte 0x000030c4
-_08114254: .4byte 0x000010c4
-_08114258: .4byte 0x000038c4
-_0811425C: .4byte 0x000018c4
-_08114260: .4byte 0x000020c4
-_08114264:
- cmp r1, r0
- bls _08114278
- mov r0, r12
- adds r0, 0xC4
- adds r0, r4, r0
- movs r1, 0x1
- strb r1, [r0]
- ldrb r1, [r5]
- ldrb r0, [r2]
-_08114276:
- subs r7, r1, r0
-_08114278:
- mov r5, r8
- lsls r3, r5, 1
- mov r0, r9
- lsls r4, r0, 6
- adds r0, r3, r4
- ldr r1, _081142BC @ =0x000080c4
- add r1, r12
- adds r0, r1
- lsls r1, r7, 4
- strh r1, [r0]
- movs r7, 0
- mov r1, r9
- lsls r2, r1, 5
- adds r1, r6, r2
- ldr r0, _081142C0 @ =0x000018c4
- add r0, r12
- adds r6, r1, r0
- adds r1, r5, r2
- ldr r0, _081142C4 @ =0x000028c4
- add r0, r12
- adds r5, r1, r0
- ldrb r2, [r6]
- ldrb r0, [r5]
- cmp r2, r0
- bcs _081142CC
- ldr r0, _081142C8 @ =0x000008c4
- add r0, r12
- adds r0, r1, r0
- movs r1, 0x3
- strb r1, [r0]
- ldrb r1, [r5]
- ldrb r0, [r6]
- b _081142DE
- .align 2, 0
-_081142BC: .4byte 0x000080c4
-_081142C0: .4byte 0x000018c4
-_081142C4: .4byte 0x000028c4
-_081142C8: .4byte 0x000008c4
-_081142CC:
- cmp r2, r0
- bls _081142E0
- ldr r0, _08114304 @ =0x000008c4
- add r0, r12
- adds r0, r1, r0
- movs r1, 0x2
- strb r1, [r0]
- ldrb r1, [r6]
- ldrb r0, [r5]
-_081142DE:
- subs r7, r1, r0
-_081142E0:
- adds r0, r3, r4
- ldr r1, _08114308 @ =0x000090c4
- add r1, r12
- adds r0, r1
- lsls r1, r7, 4
- strh r1, [r0]
- mov r1, r12
- adds r1, 0x84
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08114304: .4byte 0x000008c4
-_08114308: .4byte 0x000090c4
- thumb_func_end sub_81141F0
-
- thumb_func_start sub_811430C
-sub_811430C: @ 811430C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r5, _081143AC @ =0x02014800
- lsls r4, r1, 5
- adds r4, r0, r4
- ldr r2, _081143B0 @ =0x000028c4
- adds r2, r5
- mov r10, r2
- add r10, r4
- mov r3, r10
- ldrb r2, [r3]
- ldr r6, _081143B4 @ =0x000020c4
- adds r6, r5
- mov r8, r6
- add r8, r4
- mov r6, r8
- ldrb r3, [r6]
- subs r7, r2, r3
- ldr r2, _081143B8 @ =0x000030c4
- adds r6, r5, r2
- adds r6, r4, r6
- ldr r2, _081143BC @ =0x000038c4
- adds r2, r5
- mov r9, r2
- add r9, r4
- lsrs r2, r7, 31
- adds r2, r7, r2
- asrs r2, 1
- adds r3, r2
- mov r2, r9
- strb r3, [r2]
- strb r3, [r6]
- adds r2, r5, 0
- adds r2, 0xC4
- adds r2, r4, r2
- movs r3, 0x5
- strb r3, [r2]
- ldr r3, _081143C0 @ =0x000008c4
- adds r2, r5, r3
- adds r4, r2
- movs r2, 0x7
- strb r2, [r4]
- adds r3, r5, 0
- adds r3, 0x84
- adds r3, r1, r3
- ldrb r2, [r3]
- adds r2, 0x1
- strb r2, [r3]
- ldrb r3, [r6]
- mov r4, r8
- ldrb r2, [r4]
- subs r7, r3, r2
- lsls r0, 1
- lsls r1, 6
- adds r0, r1
- ldr r6, _081143C4 @ =0x000080c4
- adds r1, r5, r6
- adds r1, r0, r1
- lsls r2, r7, 4
- strh r2, [r1]
- mov r1, r10
- ldrb r2, [r1]
- mov r3, r9
- ldrb r1, [r3]
- subs r7, r2, r1
- ldr r4, _081143C8 @ =0x000090c4
- adds r5, r4
- adds r0, r5
- lsls r1, r7, 4
- strh r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081143AC: .4byte 0x02014800
-_081143B0: .4byte 0x000028c4
-_081143B4: .4byte 0x000020c4
-_081143B8: .4byte 0x000030c4
-_081143BC: .4byte 0x000038c4
-_081143C0: .4byte 0x000008c4
-_081143C4: .4byte 0x000080c4
-_081143C8: .4byte 0x000090c4
- thumb_func_end sub_811430C
-
- thumb_func_start unref_sub_81143CC
-unref_sub_81143CC: @ 81143CC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- movs r0, 0x1
- str r0, [sp, 0x4]
- ldr r0, _08114408 @ =0x02014800
- ldr r2, _0811440C @ =0x0000a0c4
- adds r1, r0, r2
- ldrb r3, [r1]
- adds r4, r0, 0
- cmp r3, 0
- beq _081143EE
- subs r0, r3, 0x1
- strb r0, [r1]
-_081143EE:
- movs r5, 0
- str r5, [sp]
-_081143F2:
- movs r3, 0
- adds r2, r4, 0
- adds r0, r4, 0
- adds r0, 0x84
- ldr r1, [sp]
- adds r0, r1, r0
- adds r1, 0x1
- str r1, [sp, 0x8]
- bl _08114D84
- .align 2, 0
-_08114408: .4byte 0x02014800
-_0811440C: .4byte 0x0000a0c4
-_08114410:
- ldr r5, [sp]
- lsls r0, r5, 5
- adds r1, r3, r0
- adds r2, 0xC4
- adds r1, r2
- ldrb r2, [r1]
- mov r8, r0
- adds r0, r3, 0x1
- mov r10, r0
- cmp r2, 0xC
- bls _08114428
- b _081148D2
-_08114428:
- lsls r0, r2, 2
- ldr r1, _08114434 @ =_08114438
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08114434: .4byte _08114438
- .align 2, 0
-_08114438:
- .4byte _081148D2
- .4byte _0811446C
- .4byte _081144F0
- .4byte _0811457C
- .4byte _08114600
- .4byte _0811468C
- .4byte _081146C8
- .4byte _08114704
- .4byte _08114740
- .4byte _0811477C
- .4byte _081147D0
- .4byte _08114810
- .4byte _08114858
-_0811446C:
- movs r1, 0
- str r1, [sp, 0x4]
- lsls r0, r3, 1
- ldr r2, [sp]
- lsls r1, r2, 6
- adds r0, r1
- ldr r5, _081144E0 @ =0x000060c4
- adds r2, r4, r5
- adds r2, r0, r2
- ldr r5, _081144E4 @ =0x000080c4
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- adds r1, r3, 0x1
- mov r10, r1
- ldr r2, [sp, 0x4]
- cmp r2, r5
- blt _081144A6
- b _081148D2
-_081144A6:
- mov r9, r4
- mov r4, r8
- adds r7, r3, r4
- ldr r0, _081144E8 @ =0x000030c4
- add r0, r9
- adds r4, r7, r0
- ldr r0, _081144EC @ =0x000020c4
- add r0, r9
- adds r2, r7, r0
-_081144B8:
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- ldrb r1, [r4]
- ldr r0, [sp]
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl sub_8114DB4
- ldrb r0, [r4]
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- ldrb r1, [r2]
- cmp r0, r1
- bne _081144D8
- b _081148A0
-_081144D8:
- adds r6, 0x1
- cmp r6, r5
- blt _081144B8
- b _081148D2
- .align 2, 0
-_081144E0: .4byte 0x000060c4
-_081144E4: .4byte 0x000080c4
-_081144E8: .4byte 0x000030c4
-_081144EC: .4byte 0x000020c4
-_081144F0:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r4, _08114568 @ =0x02014800
- lsls r0, r3, 1
- ldr r5, [sp]
- lsls r1, r5, 6
- adds r0, r1
- ldr r1, _0811456C @ =0x000060c4
- adds r2, r4, r1
- adds r2, r0, r2
- ldr r5, _08114570 @ =0x000080c4
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- adds r1, r3, 0x1
- mov r10, r1
- ldr r2, [sp, 0x4]
- cmp r2, r5
- blt _0811452C
- b _081148D2
-_0811452C:
- mov r9, r4
- mov r4, r8
- adds r7, r3, r4
- ldr r0, _08114574 @ =0x000030c4
- add r0, r9
- adds r4, r7, r0
- ldr r0, _08114578 @ =0x000020c4
- add r0, r9
- adds r2, r7, r0
-_0811453E:
- ldrb r0, [r4]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08114548
- b _081148B8
-_08114548:
- adds r1, r0, 0
- ldr r0, [sp]
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl sub_8114DF0
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- adds r6, 0x1
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- cmp r6, r5
- blt _0811453E
- b _081148D2
- .align 2, 0
-_08114568: .4byte 0x02014800
-_0811456C: .4byte 0x000060c4
-_08114570: .4byte 0x000080c4
-_08114574: .4byte 0x000030c4
-_08114578: .4byte 0x000020c4
-_0811457C:
- movs r2, 0
- str r2, [sp, 0x4]
- lsls r0, r3, 1
- ldr r5, [sp]
- lsls r1, r5, 6
- adds r0, r1
- ldr r1, _081145F0 @ =0x000060c4
- adds r2, r4, r1
- adds r2, r0, r2
- ldr r5, _081145F4 @ =0x000080c4
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- adds r1, r3, 0x1
- mov r10, r1
- ldr r2, [sp, 0x4]
- cmp r2, r5
- blt _081145B6
- b _081148D2
-_081145B6:
- mov r9, r4
- mov r4, r8
- adds r7, r3, r4
- ldr r0, _081145F8 @ =0x000030c4
- add r0, r9
- adds r4, r7, r0
- ldr r0, _081145FC @ =0x000020c4
- add r0, r9
- adds r2, r7, r0
-_081145C8:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldrb r1, [r4]
- ldr r0, [sp]
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl sub_8114DB4
- ldrb r0, [r4]
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- ldrb r1, [r2]
- cmp r0, r1
- bne _081145E8
- b _081148AC
-_081145E8:
- adds r6, 0x1
- cmp r6, r5
- blt _081145C8
- b _081148D2
- .align 2, 0
-_081145F0: .4byte 0x000060c4
-_081145F4: .4byte 0x000080c4
-_081145F8: .4byte 0x000030c4
-_081145FC: .4byte 0x000020c4
-_08114600:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r4, _08114678 @ =0x02014800
- lsls r0, r3, 1
- ldr r5, [sp]
- lsls r1, r5, 6
- adds r0, r1
- ldr r1, _0811467C @ =0x000060c4
- adds r2, r4, r1
- adds r2, r0, r2
- ldr r5, _08114680 @ =0x000080c4
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- adds r1, r3, 0x1
- mov r10, r1
- ldr r2, [sp, 0x4]
- cmp r2, r5
- blt _0811463C
- b _081148D2
-_0811463C:
- mov r9, r4
- mov r4, r8
- adds r7, r3, r4
- ldr r0, _08114684 @ =0x000030c4
- add r0, r9
- adds r4, r7, r0
- ldr r0, _08114688 @ =0x000020c4
- add r0, r9
- adds r2, r7, r0
-_0811464E:
- ldrb r0, [r4]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08114658
- b _081148B8
-_08114658:
- adds r1, r0, 0
- ldr r0, [sp]
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl sub_8114DF0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r6, 0x1
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- cmp r6, r5
- blt _0811464E
- b _081148D2
- .align 2, 0
-_08114678: .4byte 0x02014800
-_0811467C: .4byte 0x000060c4
-_08114680: .4byte 0x000080c4
-_08114684: .4byte 0x000030c4
-_08114688: .4byte 0x000020c4
-_0811468C:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r5, _081146C0 @ =0x02014800
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _081146C4 @ =0x000030c4
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114E48
- lsls r0, 24
- ldr r3, [sp, 0x10]
- adds r2, r3, 0x1
- mov r10, r2
- cmp r0, 0
- bne _081146B4
- b _081148D2
-_081146B4:
- adds r0, r5, 0
- adds r0, 0xC4
- adds r0, r4, r0
- movs r1, 0x9
- strb r1, [r0]
- b _081148D2
- .align 2, 0
-_081146C0: .4byte 0x02014800
-_081146C4: .4byte 0x000030c4
-_081146C8:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r5, _081146FC @ =0x02014800
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _08114700 @ =0x000030c4
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114E48
- lsls r0, 24
- ldr r3, [sp, 0x10]
- adds r2, r3, 0x1
- mov r10, r2
- cmp r0, 0
- bne _081146F0
- b _081148D2
-_081146F0:
- adds r0, r5, 0
- adds r0, 0xC4
- adds r0, r4, r0
- movs r1, 0xA
- strb r1, [r0]
- b _081148D2
- .align 2, 0
-_081146FC: .4byte 0x02014800
-_08114700: .4byte 0x000030c4
-_08114704:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r5, _08114738 @ =0x02014800
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _0811473C @ =0x000030c4
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114E48
- lsls r0, 24
- ldr r3, [sp, 0x10]
- adds r2, r3, 0x1
- mov r10, r2
- cmp r0, 0
- bne _0811472C
- b _081148D2
-_0811472C:
- adds r0, r5, 0
- adds r0, 0xC4
- adds r0, r4, r0
- movs r1, 0xB
- strb r1, [r0]
- b _081148D2
- .align 2, 0
-_08114738: .4byte 0x02014800
-_0811473C: .4byte 0x000030c4
-_08114740:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r5, _08114774 @ =0x02014800
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _08114778 @ =0x000030c4
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114E48
- lsls r0, 24
- ldr r3, [sp, 0x10]
- adds r2, r3, 0x1
- mov r10, r2
- cmp r0, 0
- bne _08114768
- b _081148D2
-_08114768:
- adds r0, r5, 0
- adds r0, 0xC4
- adds r0, r4, r0
- movs r1, 0xC
- strb r1, [r0]
- b _081148D2
- .align 2, 0
-_08114774: .4byte 0x02014800
-_08114778: .4byte 0x000030c4
-_0811477C:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r6, _081147B4 @ =0x02014800
- mov r0, r8
- adds r5, r3, r0
- ldr r1, _081147B8 @ =0x000030c4
- adds r4, r6, r1
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114DB4
- ldr r2, _081147BC @ =0x000020c4
- adds r0, r6, r2
- adds r0, r5, r0
- ldrb r1, [r4]
- ldr r3, [sp, 0x10]
- ldrb r0, [r0]
- cmp r1, r0
- bne _081147C0
- adds r0, r6, 0
- adds r0, 0xC4
- adds r0, r5, r0
- mov r4, sp
- ldrb r4, [r4, 0x4]
- strb r4, [r0]
- b _08114844
- .align 2, 0
-_081147B4: .4byte 0x02014800
-_081147B8: .4byte 0x000030c4
-_081147BC: .4byte 0x000020c4
-_081147C0:
- adds r0, r6, 0
- adds r0, 0xC4
- adds r0, r5, r0
- movs r1, 0x1
- strb r1, [r0]
- adds r0, r3, 0x1
- mov r10, r0
- b _081148D2
-_081147D0:
- movs r1, 0
- str r1, [sp, 0x4]
- ldr r6, _08114804 @ =0x02014800
- mov r2, r8
- adds r5, r3, r2
- ldr r0, _08114808 @ =0x000030c4
- adds r4, r6, r0
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114DF0
- ldr r1, _0811480C @ =0x000020c4
- adds r0, r6, r1
- adds r0, r5, r0
- ldrb r1, [r4]
- ldr r3, [sp, 0x10]
- ldrb r0, [r0]
- cmp r1, r0
- beq _08114882
- adds r0, r6, 0
- adds r0, 0xC4
- adds r0, r5, r0
- movs r1, 0x2
- b _08114842
- .align 2, 0
-_08114804: .4byte 0x02014800
-_08114808: .4byte 0x000030c4
-_0811480C: .4byte 0x000020c4
-_08114810:
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r6, _0811484C @ =0x02014800
- mov r1, r8
- adds r5, r3, r1
- ldr r2, _08114850 @ =0x000030c4
- adds r4, r6, r2
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114DB4
- ldr r1, _08114854 @ =0x000020c4
- adds r0, r6, r1
- adds r0, r5, r0
- ldrb r1, [r4]
- ldr r3, [sp, 0x10]
- ldrb r0, [r0]
- cmp r1, r0
- beq _08114882
- adds r0, r6, 0
- adds r0, 0xC4
- adds r0, r5, r0
- movs r1, 0x3
-_08114842:
- strb r1, [r0]
-_08114844:
- adds r5, r3, 0x1
- mov r10, r5
- b _081148D2
- .align 2, 0
-_0811484C: .4byte 0x02014800
-_08114850: .4byte 0x000030c4
-_08114854: .4byte 0x000020c4
-_08114858:
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r6, _08114894 @ =0x02014800
- mov r1, r8
- adds r5, r3, r1
- ldr r2, _08114898 @ =0x000030c4
- adds r4, r6, r2
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114DF0
- ldr r1, _0811489C @ =0x000020c4
- adds r0, r6, r1
- adds r0, r5, r0
- ldrb r1, [r4]
- ldr r3, [sp, 0x10]
- ldrb r0, [r0]
- cmp r1, r0
- bne _081148C4
-_08114882:
- adds r0, r6, 0
- adds r0, 0xC4
- adds r0, r5, r0
- mov r2, sp
- ldrb r2, [r2, 0x4]
- strb r2, [r0]
- adds r4, r3, 0x1
- mov r10, r4
- b _081148D2
- .align 2, 0
-_08114894: .4byte 0x02014800
-_08114898: .4byte 0x000030c4
-_0811489C: .4byte 0x000020c4
-_081148A0:
- mov r0, r9
- adds r0, 0xC4
- adds r0, r7, r0
- movs r5, 0
- strb r5, [r0]
- b _081148D2
-_081148AC:
- mov r0, r9
- adds r0, 0xC4
- adds r0, r7, r0
- movs r1, 0
- strb r1, [r0]
- b _081148D2
-_081148B8:
- mov r0, r9
- adds r0, 0xC4
- adds r0, r7, r0
- movs r1, 0
- strb r1, [r0]
- b _081148D2
-_081148C4:
- adds r0, r6, 0
- adds r0, 0xC4
- adds r0, r5, r0
- movs r1, 0x4
- strb r1, [r0]
- adds r2, r3, 0x1
- mov r10, r2
-_081148D2:
- ldr r0, _081148F4 @ =0x02014800
- mov r4, r8
- adds r1, r3, r4
- ldr r5, _081148F8 @ =0x000008c4
- adds r2, r0, r5
- adds r1, r2
- ldrb r1, [r1]
- adds r4, r0, 0
- cmp r1, 0xC
- bls _081148E8
- b _08114D76
-_081148E8:
- lsls r0, r1, 2
- ldr r1, _081148FC @ =_08114900
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081148F4: .4byte 0x02014800
-_081148F8: .4byte 0x000008c4
-_081148FC: .4byte _08114900
- .align 2, 0
-_08114900:
- .4byte _08114D76
- .4byte _08114934
- .4byte _081149B8
- .4byte _08114A3C
- .4byte _08114AC0
- .4byte _08114B44
- .4byte _08114B7C
- .4byte _08114BB4
- .4byte _08114BEC
- .4byte _08114C24
- .4byte _08114C78
- .4byte _08114CB8
- .4byte _08114CF8
-_08114934:
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r0, r3, 1
- ldr r2, [sp]
- lsls r1, r2, 6
- adds r0, r1
- ldr r5, _081149A8 @ =0x000070c4
- adds r2, r4, r5
- adds r2, r0, r2
- ldr r5, _081149AC @ =0x000090c4
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- ldr r1, [sp, 0x4]
- cmp r1, r5
- blt _0811496A
- b _08114D76
-_0811496A:
- mov r9, r4
- mov r2, r8
- adds r7, r3, r2
- ldr r0, _081149B0 @ =0x000038c4
- add r0, r9
- adds r4, r7, r0
- movs r3, 0
- ldr r0, _081149B4 @ =0x000028c4
- add r0, r9
- adds r2, r7, r0
-_0811497E:
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- ldrb r1, [r4]
- ldr r0, [sp]
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl sub_8114DB4
- ldrb r0, [r4]
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0811499E
- b _08114D4C
-_0811499E:
- adds r6, 0x1
- cmp r6, r5
- blt _0811497E
- b _08114D76
- .align 2, 0
-_081149A8: .4byte 0x000070c4
-_081149AC: .4byte 0x000090c4
-_081149B0: .4byte 0x000038c4
-_081149B4: .4byte 0x000028c4
-_081149B8:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r4, _08114A28 @ =0x02014800
- lsls r0, r3, 1
- ldr r5, [sp]
- lsls r1, r5, 6
- adds r0, r1
- ldr r1, _08114A2C @ =0x000070c4
- adds r2, r4, r1
- adds r2, r0, r2
- ldr r5, _08114A30 @ =0x000090c4
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- ldr r1, [sp, 0x4]
- cmp r1, r5
- blt _081149F0
- b _08114D76
-_081149F0:
- mov r9, r4
- mov r2, r8
- adds r7, r3, r2
- ldr r0, _08114A34 @ =0x000038c4
- add r0, r9
- adds r4, r7, r0
- ldr r0, _08114A38 @ =0x000028c4
- add r0, r9
- adds r2, r7, r0
-_08114A02:
- ldrb r0, [r4]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08114A0C
- b _08114D3C
-_08114A0C:
- adds r1, r0, 0
- ldr r0, [sp]
- str r2, [sp, 0xC]
- bl sub_8114DF0
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- adds r6, 0x1
- ldr r2, [sp, 0xC]
- cmp r6, r5
- blt _08114A02
- b _08114D76
- .align 2, 0
-_08114A28: .4byte 0x02014800
-_08114A2C: .4byte 0x000070c4
-_08114A30: .4byte 0x000090c4
-_08114A34: .4byte 0x000038c4
-_08114A38: .4byte 0x000028c4
-_08114A3C:
- movs r2, 0
- str r2, [sp, 0x4]
- lsls r0, r3, 1
- ldr r5, [sp]
- lsls r1, r5, 6
- adds r0, r1
- ldr r1, _08114AB0 @ =0x000070c4
- adds r2, r4, r1
- adds r2, r0, r2
- ldr r5, _08114AB4 @ =0x000090c4
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- ldr r1, [sp, 0x4]
- cmp r1, r5
- blt _08114A72
- b _08114D76
-_08114A72:
- mov r9, r4
- mov r2, r8
- adds r7, r3, r2
- ldr r0, _08114AB8 @ =0x000038c4
- add r0, r9
- adds r4, r7, r0
- movs r3, 0
- ldr r0, _08114ABC @ =0x000028c4
- add r0, r9
- adds r2, r7, r0
-_08114A86:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldrb r1, [r4]
- ldr r0, [sp]
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl sub_8114DB4
- ldrb r0, [r4]
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08114AA6
- b _08114D4C
-_08114AA6:
- adds r6, 0x1
- cmp r6, r5
- blt _08114A86
- b _08114D76
- .align 2, 0
-_08114AB0: .4byte 0x000070c4
-_08114AB4: .4byte 0x000090c4
-_08114AB8: .4byte 0x000038c4
-_08114ABC: .4byte 0x000028c4
-_08114AC0:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r4, _08114B30 @ =0x02014800
- lsls r0, r3, 1
- ldr r5, [sp]
- lsls r1, r5, 6
- adds r0, r1
- ldr r1, _08114B34 @ =0x000070c4
- adds r2, r4, r1
- adds r2, r0, r2
- ldr r5, _08114B38 @ =0x000090c4
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- ldr r1, [sp, 0x4]
- cmp r1, r5
- blt _08114AF8
- b _08114D76
-_08114AF8:
- mov r9, r4
- mov r2, r8
- adds r7, r3, r2
- ldr r0, _08114B3C @ =0x000038c4
- add r0, r9
- adds r4, r7, r0
- ldr r0, _08114B40 @ =0x000028c4
- add r0, r9
- adds r2, r7, r0
-_08114B0A:
- ldrb r0, [r4]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08114B14
- b _08114D5C
-_08114B14:
- adds r1, r0, 0
- ldr r0, [sp]
- str r2, [sp, 0xC]
- bl sub_8114DF0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r6, 0x1
- ldr r2, [sp, 0xC]
- cmp r6, r5
- blt _08114B0A
- b _08114D76
- .align 2, 0
-_08114B30: .4byte 0x02014800
-_08114B34: .4byte 0x000070c4
-_08114B38: .4byte 0x000090c4
-_08114B3C: .4byte 0x000038c4
-_08114B40: .4byte 0x000028c4
-_08114B44:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r5, _08114B70 @ =0x02014800
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _08114B74 @ =0x000038c4
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- bl sub_8114E48
- lsls r0, 24
- cmp r0, 0
- bne _08114B64
- b _08114D76
-_08114B64:
- ldr r2, _08114B78 @ =0x000008c4
- adds r0, r5, r2
- adds r0, r4, r0
- movs r1, 0x9
- b _08114D74
- .align 2, 0
-_08114B70: .4byte 0x02014800
-_08114B74: .4byte 0x000038c4
-_08114B78: .4byte 0x000008c4
-_08114B7C:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r5, _08114BA8 @ =0x02014800
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _08114BAC @ =0x000038c4
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- bl sub_8114E48
- lsls r0, 24
- cmp r0, 0
- bne _08114B9C
- b _08114D76
-_08114B9C:
- ldr r2, _08114BB0 @ =0x000008c4
- adds r0, r5, r2
- adds r0, r4, r0
- movs r1, 0xA
- b _08114D74
- .align 2, 0
-_08114BA8: .4byte 0x02014800
-_08114BAC: .4byte 0x000038c4
-_08114BB0: .4byte 0x000008c4
-_08114BB4:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r5, _08114BE0 @ =0x02014800
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _08114BE4 @ =0x000038c4
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- bl sub_8114E48
- lsls r0, 24
- cmp r0, 0
- bne _08114BD4
- b _08114D76
-_08114BD4:
- ldr r2, _08114BE8 @ =0x000008c4
- adds r0, r5, r2
- adds r0, r4, r0
- movs r1, 0xB
- b _08114D74
- .align 2, 0
-_08114BE0: .4byte 0x02014800
-_08114BE4: .4byte 0x000038c4
-_08114BE8: .4byte 0x000008c4
-_08114BEC:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r5, _08114C18 @ =0x02014800
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _08114C1C @ =0x000038c4
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- bl sub_8114E48
- lsls r0, 24
- cmp r0, 0
- bne _08114C0C
- b _08114D76
-_08114C0C:
- ldr r2, _08114C20 @ =0x000008c4
- adds r0, r5, r2
- adds r0, r4, r0
- movs r1, 0xC
- b _08114D74
- .align 2, 0
-_08114C18: .4byte 0x02014800
-_08114C1C: .4byte 0x000038c4
-_08114C20: .4byte 0x000008c4
-_08114C24:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r6, _08114C58 @ =0x02014800
- mov r0, r8
- adds r5, r3, r0
- ldr r1, _08114C5C @ =0x000038c4
- adds r4, r6, r1
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- bl sub_8114DB4
- ldr r2, _08114C60 @ =0x000028c4
- adds r0, r6, r2
- adds r0, r5, r0
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _08114C68
- ldr r4, _08114C64 @ =0x000008c4
- adds r0, r6, r4
- adds r0, r5, r0
- mov r5, sp
- ldrb r5, [r5, 0x4]
- strb r5, [r0]
- b _08114D76
- .align 2, 0
-_08114C58: .4byte 0x02014800
-_08114C5C: .4byte 0x000038c4
-_08114C60: .4byte 0x000028c4
-_08114C64: .4byte 0x000008c4
-_08114C68:
- ldr r1, _08114C74 @ =0x000008c4
- adds r0, r6, r1
- adds r0, r5, r0
- movs r1, 0x1
- b _08114D74
- .align 2, 0
-_08114C74: .4byte 0x000008c4
-_08114C78:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r6, _08114CA8 @ =0x02014800
- mov r4, r8
- adds r5, r3, r4
- ldr r0, _08114CAC @ =0x000038c4
- adds r4, r6, r0
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- bl sub_8114DF0
- ldr r1, _08114CB0 @ =0x000028c4
- adds r0, r6, r1
- adds r0, r5, r0
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- beq _08114D1E
- ldr r1, _08114CB4 @ =0x000008c4
- adds r0, r6, r1
- adds r0, r5, r0
- movs r1, 0x2
- b _08114D74
- .align 2, 0
-_08114CA8: .4byte 0x02014800
-_08114CAC: .4byte 0x000038c4
-_08114CB0: .4byte 0x000028c4
-_08114CB4: .4byte 0x000008c4
-_08114CB8:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r6, _08114CE8 @ =0x02014800
- mov r4, r8
- adds r5, r3, r4
- ldr r0, _08114CEC @ =0x000038c4
- adds r4, r6, r0
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- bl sub_8114DB4
- ldr r1, _08114CF0 @ =0x000028c4
- adds r0, r6, r1
- adds r0, r5, r0
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- beq _08114D1E
- ldr r1, _08114CF4 @ =0x000008c4
- adds r0, r6, r1
- adds r0, r5, r0
- movs r1, 0x3
- b _08114D74
- .align 2, 0
-_08114CE8: .4byte 0x02014800
-_08114CEC: .4byte 0x000038c4
-_08114CF0: .4byte 0x000028c4
-_08114CF4: .4byte 0x000008c4
-_08114CF8:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r6, _08114D2C @ =0x02014800
- mov r4, r8
- adds r5, r3, r4
- ldr r0, _08114D30 @ =0x000038c4
- adds r4, r6, r0
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- bl sub_8114DF0
- ldr r1, _08114D34 @ =0x000028c4
- adds r0, r6, r1
- adds r0, r5, r0
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _08114D6C
-_08114D1E:
- ldr r2, _08114D38 @ =0x000008c4
- adds r0, r6, r2
- adds r0, r5, r0
- mov r4, sp
- ldrb r4, [r4, 0x4]
- strb r4, [r0]
- b _08114D76
- .align 2, 0
-_08114D2C: .4byte 0x02014800
-_08114D30: .4byte 0x000038c4
-_08114D34: .4byte 0x000028c4
-_08114D38: .4byte 0x000008c4
-_08114D3C:
- ldr r0, _08114D48 @ =0x000008c4
- add r0, r9
- adds r0, r7, r0
- movs r1, 0
- b _08114D74
- .align 2, 0
-_08114D48: .4byte 0x000008c4
-_08114D4C:
- ldr r0, _08114D58 @ =0x000008c4
- add r0, r9
- adds r0, r7, r0
- strb r3, [r0]
- b _08114D76
- .align 2, 0
-_08114D58: .4byte 0x000008c4
-_08114D5C:
- ldr r0, _08114D68 @ =0x000008c4
- add r0, r9
- adds r0, r7, r0
- movs r1, 0
- b _08114D74
- .align 2, 0
-_08114D68: .4byte 0x000008c4
-_08114D6C:
- ldr r1, _08114DAC @ =0x000008c4
- adds r0, r6, r1
- adds r0, r5, r0
- movs r1, 0x4
-_08114D74:
- strb r1, [r0]
-_08114D76:
- mov r3, r10
- ldr r2, _08114DB0 @ =0x02014800
- adds r0, r2, 0
- adds r0, 0x84
- ldr r4, [sp]
- adds r0, r4, r0
- adds r4, r2, 0
-_08114D84:
- ldrb r0, [r0]
- cmp r3, r0
- bge _08114D8E
- bl _08114410
-_08114D8E:
- ldr r5, [sp, 0x8]
- str r5, [sp]
- cmp r5, 0x3F
- bgt _08114D9A
- bl _081143F2
-_08114D9A:
- ldr r0, [sp, 0x4]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08114DAC: .4byte 0x000008c4
-_08114DB0: .4byte 0x02014800
- thumb_func_end unref_sub_81143CC
-
- thumb_func_start sub_8114DB4
-sub_8114DB4: @ 8114DB4
- push {lr}
- lsls r1, 24
- lsrs r3, r1, 24
- ldr r2, _08114DDC @ =0x02014800
- lsrs r1, 25
- lsls r1, 2
- lsls r0, 7
- adds r1, r0
- ldr r0, _08114DE0 @ =0x000040c4
- adds r2, r0
- adds r1, r2
- ldr r2, [r1]
- movs r0, 0x1
- ands r3, r0
- cmp r3, 0
- beq _08114DE4
- ldrb r0, [r2]
- movs r1, 0xF0
- b _08114DE8
- .align 2, 0
-_08114DDC: .4byte 0x02014800
-_08114DE0: .4byte 0x000040c4
-_08114DE4:
- ldrb r0, [r2]
- movs r1, 0xF
-_08114DE8:
- orrs r0, r1
- strb r0, [r2]
- pop {r0}
- bx r0
- thumb_func_end sub_8114DB4
-
- thumb_func_start sub_8114DF0
-sub_8114DF0: @ 8114DF0
- push {lr}
- lsls r1, 24
- lsrs r3, r1, 24
- ldr r2, _08114E28 @ =0x02014800
- lsrs r1, 25
- lsls r1, 2
- lsls r0, 7
- adds r1, r0
- ldr r0, _08114E2C @ =0x000040c4
- adds r2, r0
- adds r1, r2
- ldr r2, [r1]
- movs r0, 0xC0
- lsls r0, 7
- adds r1, r2, r0
- movs r0, 0x1
- ands r3, r0
- cmp r3, 0
- beq _08114E30
- ldrb r1, [r1]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- bne _08114E42
- ldrb r1, [r2]
- movs r0, 0xF
- b _08114E3E
- .align 2, 0
-_08114E28: .4byte 0x02014800
-_08114E2C: .4byte 0x000040c4
-_08114E30:
- ldrb r1, [r1]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _08114E42
- ldrb r1, [r2]
- movs r0, 0xF0
-_08114E3E:
- ands r0, r1
- strb r0, [r2]
-_08114E42:
- pop {r0}
- bx r0
- thumb_func_end sub_8114DF0
-
- thumb_func_start sub_8114E48
-sub_8114E48: @ 8114E48
- push {r4-r7,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r1, _08114E6C @ =0x02014800
- ldr r2, _08114E70 @ =0x0000a0c4
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0
- bne _08114E60
- b _08114F5E
-_08114E60:
- movs r1, 0
- movs r3, 0
- cmp r4, 0
- bne _08114E74
- movs r1, 0x1
- b _08114EA6
- .align 2, 0
-_08114E6C: .4byte 0x02014800
-_08114E70: .4byte 0x0000a0c4
-_08114E74:
- subs r0, r4, 0x1
- lsls r0, 5
- adds r2, r3, r0
- adds r0, r5, 0
- adds r0, 0xC4
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08114EA6
- ldr r7, _08114EC4 @ =0x000008c4
- adds r0, r5, r7
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08114EA6
- adds r3, 0x1
- cmp r3, 0x1F
- bgt _08114EA6
- cmp r4, 0
- bne _08114E74
- lsls r0, r1, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r1, r0, 24
-_08114EA6:
- cmp r3, 0x20
- bne _08114EB4
- lsls r0, r1, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r1, r0, 24
-_08114EB4:
- movs r3, 0
- cmp r4, 0x3F
- bne _08114EC8
- lsls r0, r1, 24
- movs r7, 0x80
- lsls r7, 17
- adds r0, r7
- b _08114EF8
- .align 2, 0
-_08114EC4: .4byte 0x000008c4
-_08114EC8:
- adds r0, r4, 0x1
- lsls r0, 5
- adds r2, r3, r0
- adds r0, r5, 0
- adds r0, 0xC4
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08114EFA
- ldr r7, _08114F64 @ =0x000008c4
- adds r0, r5, r7
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08114EFA
- adds r3, 0x1
- cmp r3, 0x1F
- bgt _08114EFA
- cmp r4, 0x3F
- bne _08114EC8
- lsls r0, r1, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
-_08114EF8:
- lsrs r1, r0, 24
-_08114EFA:
- cmp r3, 0x20
- bne _08114F08
- lsls r0, r1, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r1, r0, 24
-_08114F08:
- cmp r1, 0x2
- beq _08114F5E
- subs r0, r6, 0x2
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r0, 0
- bge _08114F18
- movs r1, 0
-_08114F18:
- adds r0, r6, 0x2
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x3F
- ble _08114F26
- movs r2, 0x3F
-_08114F26:
- lsls r1, 24
- asrs r3, r1, 24
- lsls r0, r2, 24
- asrs r2, r0, 24
- adds r6, r1, 0
- adds r7, r0, 0
- cmp r3, r2
- bge _08114F7C
- cmp r4, 0
- beq _08114F7C
- subs r0, r4, 0x1
- lsls r5, r0, 7
- ldr r0, _08114F68 @ =0x020188c4
- mov r12, r0
-_08114F42:
- asrs r0, r3, 1
- lsls r0, 2
- adds r0, r5
- add r0, r12
- ldr r1, [r0]
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08114F6C
- ldrb r1, [r1]
- movs r0, 0xF0
-_08114F58:
- ands r0, r1
- cmp r0, 0
- beq _08114F72
-_08114F5E:
- movs r0, 0x1
- b _08114FCA
- .align 2, 0
-_08114F64: .4byte 0x000008c4
-_08114F68: .4byte 0x020188c4
-_08114F6C:
- ldrb r1, [r1]
- movs r0, 0xF
- b _08114F58
-_08114F72:
- adds r3, 0x1
- cmp r3, r2
- bge _08114F7C
- cmp r4, 0
- bne _08114F42
-_08114F7C:
- asrs r3, r6, 24
- asrs r1, r7, 24
- cmp r3, r1
- bge _08114FC8
- cmp r4, 0x3F
- beq _08114FC8
- adds r0, r4, 0x1
- lsls r5, r0, 7
- ldr r6, _08114FB0 @ =0x020188c4
- adds r2, r1, 0
-_08114F90:
- asrs r0, r3, 1
- lsls r0, 2
- adds r0, r5
- adds r0, r6
- ldr r1, [r0]
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08114FB4
- ldrb r1, [r1]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- beq _08114FBE
- b _08114F5E
- .align 2, 0
-_08114FB0: .4byte 0x020188c4
-_08114FB4:
- ldrb r1, [r1]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _08114F5E
-_08114FBE:
- adds r3, 0x1
- cmp r3, r2
- bge _08114FC8
- cmp r4, 0x3F
- bne _08114F90
-_08114FC8:
- movs r0, 0
-_08114FCA:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8114E48
-
- thumb_func_start HBlankCB_EvolutionScene
-HBlankCB_EvolutionScene: @ 8114FD0
- bx lr
- thumb_func_end HBlankCB_EvolutionScene
-
- thumb_func_start VBlankCB_EvolutionScene
-VBlankCB_EvolutionScene: @ 8114FD4
- push {lr}
- ldr r1, _08115034 @ =REG_BG0CNT
- ldr r2, _08115038 @ =0x00009803
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x8
- ldr r0, _0811503C @ =gUnknown_030042A4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _08115040 @ =gUnknown_030042A0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _08115044 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _08115048 @ =gUnknown_030041B4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0811504C @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _08115050 @ =gUnknown_03004280
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _08115054 @ =gUnknown_030041B0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _08115058 @ =gUnknown_030041B8
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_8089668
- pop {r0}
- bx r0
- .align 2, 0
-_08115034: .4byte REG_BG0CNT
-_08115038: .4byte 0x00009803
-_0811503C: .4byte gUnknown_030042A4
-_08115040: .4byte gUnknown_030042A0
-_08115044: .4byte gUnknown_030042C0
-_08115048: .4byte gUnknown_030041B4
-_0811504C: .4byte gUnknown_03004288
-_08115050: .4byte gUnknown_03004280
-_08115054: .4byte gUnknown_030041B0
-_08115058: .4byte gUnknown_030041B8
- thumb_func_end VBlankCB_EvolutionScene
-
- thumb_func_start VBlankCB_TradeEvolutionScene
-VBlankCB_TradeEvolutionScene: @ 811505C
- push {lr}
- ldr r1, _081150B4 @ =REG_BG0HOFS
- ldr r0, _081150B8 @ =gUnknown_030042A4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150BC @ =gUnknown_030042A0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150C0 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150C4 @ =gUnknown_030041B4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150C8 @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150CC @ =gUnknown_03004280
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150D0 @ =gUnknown_030041B0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150D4 @ =gUnknown_030041B8
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_8089668
- pop {r0}
- bx r0
- .align 2, 0
-_081150B4: .4byte REG_BG0HOFS
-_081150B8: .4byte gUnknown_030042A4
-_081150BC: .4byte gUnknown_030042A0
-_081150C0: .4byte gUnknown_030042C0
-_081150C4: .4byte gUnknown_030041B4
-_081150C8: .4byte gUnknown_03004288
-_081150CC: .4byte gUnknown_03004280
-_081150D0: .4byte gUnknown_030041B0
-_081150D4: .4byte gUnknown_030041B8
- thumb_func_end VBlankCB_TradeEvolutionScene
-
- thumb_func_start sub_81150D8
-sub_81150D8: @ 81150D8
- push {lr}
- ldr r0, _081150F4 @ =gBattleCommunication
- ldrb r1, [r0, 0x1]
- lsls r1, 28
- movs r0, 0x90
- lsls r0, 23
- adds r1, r0
- lsrs r1, 24
- movs r0, 0xC8
- bl sub_814A880
- pop {r0}
- bx r0
- .align 2, 0
-_081150F4: .4byte gBattleCommunication
- thumb_func_end sub_81150D8
-
- thumb_func_start HBlankCB_TradeEvolutionScene
-HBlankCB_TradeEvolutionScene: @ 81150F8
- bx lr
- thumb_func_end HBlankCB_TradeEvolutionScene
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s
deleted file mode 100644
index 9df9dfd8d..000000000
--- a/asm/field_effect_helpers.s
+++ /dev/null
@@ -1,4349 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start SetUpReflection
-SetUpReflection: @ 812680C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r5, r2, 24
- lsrs r5, 24
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x22
- ldrsh r2, [r4, r0]
- adds r0, r4, 0
- movs r3, 0x98
- bl obj_unfreeze
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _081268BC @ =gSprites
- adds r7, r1, r0
- ldr r0, _081268C0 @ =sub_81269E0
- str r0, [r7, 0x1C]
- ldrb r1, [r7, 0x5]
- movs r0, 0xC
- orrs r1, r0
- strb r1, [r7, 0x5]
- ldr r2, _081268C4 @ =gUnknown_0830FD14
- lsrs r0, r1, 4
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 4
- movs r2, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x5]
- movs r1, 0x3F
- adds r1, r7
- mov r8, r1
- ldrb r0, [r1]
- movs r1, 0x40
- orrs r0, r1
- mov r1, r8
- strb r0, [r1]
- ldr r0, _081268C8 @ =gDummySpriteAnimTable
- str r0, [r7, 0x8]
- adds r0, r7, 0
- movs r1, 0
- bl StartSpriteAnim
- ldr r0, _081268CC @ =gDummySpriteAffineAnimTable
- str r0, [r7, 0x10]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x8
- orrs r0, r1
- mov r1, r8
- strb r0, [r1]
- adds r2, r7, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x2E]
- strh r0, [r7, 0x2E]
- ldrb r0, [r6, 0x8]
- strh r0, [r7, 0x30]
- strh r5, [r7, 0x3C]
- adds r0, r6, 0
- adds r1, r7, 0
- bl npc_pal_op
- cmp r5, 0
- bne _081268B2
- ldrb r0, [r7, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strb r1, [r7, 0x1]
-_081268B2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081268BC: .4byte gSprites
-_081268C0: .4byte sub_81269E0
-_081268C4: .4byte gUnknown_0830FD14
-_081268C8: .4byte gDummySpriteAnimTable
-_081268CC: .4byte gDummySpriteAffineAnimTable
- thumb_func_end SetUpReflection
-
- thumb_func_start sub_81268D0
-sub_81268D0: @ 81268D0
- push {lr}
- ldrb r0, [r0, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldrh r0, [r0, 0xA]
- subs r0, 0x2
- lsls r0, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_81268D0
-
- thumb_func_start npc_pal_op
-npc_pal_op: @ 81268E4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, _0812693C @ =gUnknown_08401E2C
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrb r0, [r5, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldrb r1, [r0, 0xC]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08126940
- ldrb r0, [r5, 0x1F]
- bl sub_8057450
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08126926
- ldrb r0, [r5, 0x1E]
- bl sub_8057450
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08126940
-_08126926:
- subs r0, 0x1
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x32]
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- adds r0, r5, 0
- bl npc_pal_op_A
- b _0812694A
- .align 2, 0
-_0812693C: .4byte gUnknown_08401E2C
-_08126940:
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- adds r0, r5, 0
- bl npc_pal_op_B
-_0812694A:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end npc_pal_op
-
- thumb_func_start npc_pal_op_B
-npc_pal_op_B: @ 8126954
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldrb r0, [r0, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r2, r0, 0
- ldrh r1, [r2, 0x4]
- ldr r0, _08126980 @ =0x000011ff
- cmp r1, r0
- beq _081269A8
- ldrb r0, [r2, 0xC]
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0
- bne _08126984
- ldrh r0, [r2, 0x2]
- adds r1, r4, 0
- bl npc_load_two_palettes__no_record
- b _081269A2
- .align 2, 0
-_08126980: .4byte 0x000011ff
-_08126984:
- cmp r1, 0xA
- bne _08126992
- ldrh r0, [r2, 0x2]
- adds r1, r4, 0
- bl npc_load_two_palettes__and_record
- b _081269A2
-_08126992:
- adds r0, r4, 0
- bl npc_paltag_by_palslot
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl pal_patch_for_npc
-_081269A2:
- adds r0, r4, 0
- bl sub_807D78C
-_081269A8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end npc_pal_op_B
-
- thumb_func_start npc_pal_op_A
-npc_pal_op_A: @ 81269B0
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldrb r0, [r0, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r2, r0, 0
- ldrh r1, [r2, 0x4]
- ldr r0, _081269DC @ =0x000011ff
- cmp r1, r0
- beq _081269D4
- adds r0, r1, 0
- adds r1, r4, 0
- bl pal_patch_for_npc
- adds r0, r4, 0
- bl sub_807D78C
-_081269D4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081269DC: .4byte 0x000011ff
- thumb_func_end npc_pal_op_A
-
- thumb_func_start sub_81269E0
-sub_81269E0: @ 81269E0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08126A28 @ =gMapObjects
- adds r7, r0, r1
- ldrb r1, [r7, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08126A2C @ =gSprites
- adds r5, r0, r1
- ldr r0, [r7]
- ldr r1, _08126A30 @ =0x00020001
- ands r0, r1
- cmp r0, r1
- bne _08126A18
- ldrb r1, [r7, 0x8]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _08126A34
-_08126A18:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- b _08126B3E
- .align 2, 0
-_08126A28: .4byte gMapObjects
-_08126A2C: .4byte gSprites
-_08126A30: .4byte 0x00020001
-_08126A34:
- ldr r1, _08126B4C @ =gUnknown_0830FD14
- ldrb r0, [r5, 0x5]
- lsrs r0, 4
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 4
- ldrb r2, [r4, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldrb r1, [r5, 0x1]
- lsrs r1, 6
- lsls r1, 6
- ldrb r2, [r4, 0x1]
- movs r3, 0x3F
- adds r0, r3, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r5, 0x3]
- lsrs r0, 6
- lsls r0, 6
- ldrb r2, [r4, 0x3]
- adds r1, r3, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x3]
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- movs r2, 0x10
- orrs r0, r2
- lsls r0, 1
- subs r2, 0x4F
- mov r9, r2
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x3]
- ldrh r1, [r5, 0x4]
- lsls r1, 22
- lsrs r1, 22
- ldrh r2, [r4, 0x4]
- ldr r0, _08126B50 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, [r5, 0x18]
- str r0, [r4, 0x18]
- adds r0, r5, 0
- adds r0, 0x42
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 26
- adds r2, r4, 0
- adds r2, 0x42
- ands r3, r0
- ldrb r1, [r2]
- movs r0, 0x40
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
- movs r0, 0x3E
- adds r0, r5
- mov r8, r0
- ldrb r0, [r0]
- adds r6, r4, 0
- adds r6, 0x3E
- movs r1, 0x4
- ands r1, r0
- ldrb r2, [r6]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6]
- ldrh r0, [r5, 0x20]
- strh r0, [r4, 0x20]
- adds r0, r7, 0
- bl sub_81268D0
- ldrh r1, [r5, 0x22]
- adds r0, r1
- ldrh r1, [r4, 0x32]
- adds r1, r0
- strh r1, [r4, 0x22]
- adds r0, r5, 0
- adds r0, 0x28
- ldrb r1, [r0]
- adds r0, r4, 0
- adds r0, 0x28
- strb r1, [r0]
- adds r0, r5, 0
- adds r0, 0x29
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x29
- strb r0, [r1]
- ldrh r0, [r5, 0x24]
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x26]
- negs r0, r0
- strh r0, [r4, 0x26]
- mov r2, r8
- ldrb r0, [r2]
- movs r1, 0x2
- ands r1, r0
- ldrb r2, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08126B3E
- ldrb r0, [r4, 0x3]
- mov r2, r9
- ands r2, r0
- strb r2, [r4, 0x3]
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08126B3E
- movs r1, 0x2
- adds r0, r2, 0
- orrs r0, r1
- strb r0, [r4, 0x3]
-_08126B3E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08126B4C: .4byte gUnknown_0830FD14
-_08126B50: .4byte 0xfffffc00
- thumb_func_end sub_81269E0
-
- thumb_func_start sub_8126B54
-sub_8126B54: @ 8126B54
- push {r4,lr}
- ldr r0, _08126B9C @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x20]
- movs r1, 0
- movs r2, 0
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r0, 0x40
- beq _08126B92
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08126BA0 @ =gSprites
- adds r1, r0
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- orrs r0, r3
- strb r0, [r1]
-_08126B92:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08126B9C: .4byte gFieldEffectObjectTemplatePointers
-_08126BA0: .4byte gSprites
- thumb_func_end sub_8126B54
-
- thumb_func_start objid_set_invisible
-objid_set_invisible: @ 8126BA4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08126BC0 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08126BC0: .4byte gSprites
- thumb_func_end objid_set_invisible
-
- thumb_func_start sub_8126BC4
-sub_8126BC4: @ 8126BC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 16
- lsrs r7, r2, 16
- lsls r3, 16
- lsrs r6, r3, 16
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, _08126C68 @ =gSprites
- adds r2, r0, r1
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _08126C0E
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- lsls r0, r7, 16
- asrs r0, 16
- cmp r1, r0
- bne _08126C0E
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- lsls r0, r6, 16
- asrs r0, 16
- cmp r1, r0
- beq _08126C5A
-_08126C0E:
- lsls r0, r7, 16
- asrs r0, 16
- lsls r1, r6, 16
- asrs r1, 16
- mov r4, sp
- adds r4, 0x2
- mov r2, sp
- adds r3, r4, 0
- bl sub_80603CC
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, _08126C68 @ =gSprites
- adds r2, r0, r1
- mov r0, sp
- ldrh r0, [r0]
- adds r0, 0x8
- strh r0, [r2, 0x20]
- ldrh r0, [r4]
- adds r0, 0x8
- strh r0, [r2, 0x22]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- strh r7, [r2, 0x2E]
- strh r6, [r2, 0x30]
- mov r1, r8
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
-_08126C5A:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08126C68: .4byte gSprites
- thumb_func_end sub_8126BC4
-
- thumb_func_start FldEff_Shadow
-FldEff_Shadow: @ 8126C6C
- push {r4,r5,lr}
- ldr r5, _08126CF8 @ =gUnknown_0202FF84
- ldrb r0, [r5]
- ldrb r1, [r5, 0x4]
- ldrb r2, [r5, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08126CFC @ =gMapObjects
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r4, r0, 0
- ldr r2, _08126D00 @ =gFieldEffectObjectTemplatePointers
- ldr r1, _08126D04 @ =gUnknown_08401E32
- ldrb r0, [r4, 0xC]
- lsls r0, 26
- lsrs r0, 30
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- movs r3, 0x94
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _08126CF0
- ldr r0, _08126D08 @ =gSprites
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- ldr r0, [r5]
- strh r0, [r2, 0x2E]
- ldr r0, [r5, 0x4]
- strh r0, [r2, 0x30]
- ldr r0, [r5, 0x8]
- strh r0, [r2, 0x32]
- ldrh r1, [r4, 0xA]
- lsls r1, 16
- asrs r1, 17
- ldr r3, _08126D0C @ =gUnknown_08401E36
- ldrb r0, [r4, 0xC]
- lsls r0, 26
- lsrs r0, 30
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- subs r1, r0
- strh r1, [r2, 0x34]
-_08126CF0:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08126CF8: .4byte gUnknown_0202FF84
-_08126CFC: .4byte gMapObjects
-_08126D00: .4byte gFieldEffectObjectTemplatePointers
-_08126D04: .4byte gUnknown_08401E32
-_08126D08: .4byte gSprites
-_08126D0C: .4byte gUnknown_08401E36
- thumb_func_end FldEff_Shadow
-
- thumb_func_start oamc_shadow
-oamc_shadow: @ 8126D10
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r5, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _08126D3E
- adds r0, r5, 0
- movs r1, 0x3
- bl FieldEffectStop
- b _08126DC4
-_08126D3E:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08126DCC @ =gMapObjects
- adds r4, r0, r1
- ldrb r0, [r4, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08126DD0 @ =gSprites
- adds r1, r0
- ldrb r0, [r1, 0x5]
- movs r2, 0xC
- ands r2, r0
- ldrb r3, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r5, 0x5]
- ldrh r0, [r1, 0x20]
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x34]
- ldrh r1, [r1, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldr r0, [r4]
- ldr r1, _08126DD4 @ =0x00400001
- ands r0, r1
- cmp r0, r1
- bne _08126DBC
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsPokeGrass
- lsls r0, 24
- cmp r0, 0
- bne _08126DBC
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08126DBC
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08126DBC
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsReflective
- lsls r0, 24
- cmp r0, 0
- bne _08126DBC
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsReflective
- lsls r0, 24
- cmp r0, 0
- beq _08126DC4
-_08126DBC:
- adds r0, r5, 0
- movs r1, 0x3
- bl FieldEffectStop
-_08126DC4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08126DCC: .4byte gMapObjects
-_08126DD0: .4byte gSprites
-_08126DD4: .4byte 0x00400001
- thumb_func_end oamc_shadow
-
- thumb_func_start FldEff_TallGrass
-FldEff_TallGrass: @ 8126DD8
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08126E70 @ =gUnknown_0202FF84
- ldrh r1, [r5]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r5, 0x4]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08126E74 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x10]
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r3, 0
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _08126E64
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08126E78 @ =gSprites
- adds r3, r0, r1
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x3
- ldrb r1, [r5, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldr r0, [r5, 0x8]
- strh r0, [r3, 0x2E]
- ldr r0, [r5]
- strh r0, [r3, 0x30]
- ldr r0, [r5, 0x4]
- strh r0, [r3, 0x32]
- ldr r0, [r5, 0x10]
- strh r0, [r3, 0x34]
- ldr r0, [r5, 0x14]
- strh r0, [r3, 0x36]
- ldr r0, [r5, 0x18]
- strh r0, [r3, 0x38]
- ldr r0, [r5, 0x1C]
- cmp r0, 0
- beq _08126E64
- adds r0, r3, 0
- movs r1, 0x4
- bl SeekSpriteAnim
-_08126E64:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08126E70: .4byte gUnknown_0202FF84
-_08126E74: .4byte gFieldEffectObjectTemplatePointers
-_08126E78: .4byte gSprites
- thumb_func_end FldEff_TallGrass
-
- thumb_func_start unc_grass_normal
-unc_grass_normal: @ 8126E7C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- lsrs r4, r0, 8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, _08126F24 @ =gUnknown_0202E844
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08126EC6
- ldr r2, _08126F28 @ =gSaveBlock1
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- cmp r0, r4
- bne _08126EAC
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r0, r7
- beq _08126EC6
-_08126EAC:
- ldr r1, [r3, 0x4]
- ldrh r0, [r5, 0x30]
- subs r0, r1
- strh r0, [r5, 0x30]
- ldr r1, [r3, 0x8]
- ldrh r0, [r5, 0x32]
- subs r0, r1
- strh r0, [r5, 0x32]
- ldrb r1, [r2, 0x5]
- lsls r1, 8
- ldrb r0, [r2, 0x4]
- orrs r0, r1
- strh r0, [r5, 0x38]
-_08126EC6:
- ldrh r0, [r5, 0x34]
- lsrs r1, r0, 8
- mov r8, r1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r0, [r5, 0x36]
- lsls r0, 24
- lsrs r7, r0, 24
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r8
- adds r1, r4, 0
- adds r2, r7, 0
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08126F1A
- adds r0, r6, 0
- bl MetatileBehavior_IsTallGrass
- lsls r0, 24
- cmp r0, 0
- beq _08126F1A
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08126F2C
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08126F2C
-_08126F1A:
- adds r0, r5, 0
- movs r1, 0x4
- bl FieldEffectStop
- b _08126F70
- .align 2, 0
-_08126F24: .4byte gUnknown_0202E844
-_08126F28: .4byte gSaveBlock1
-_08126F2C:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08126F7C @ =gMapObjects
- adds r2, r0, r1
- ldr r0, [r2, 0x10]
- ldr r1, [r5, 0x30]
- cmp r0, r1
- beq _08126F4C
- ldr r0, [r2, 0x14]
- cmp r0, r1
- beq _08126F4C
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_08126F4C:
- movs r6, 0
- adds r0, r5, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0
- bne _08126F5A
- movs r6, 0x4
-_08126F5A:
- adds r0, r5, 0
- movs r1, 0
- bl sub_806487C
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_812882C
-_08126F70:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08126F7C: .4byte gMapObjects
- thumb_func_end unc_grass_normal
-
- thumb_func_start FldEff_JumpTallGrass
-FldEff_JumpTallGrass: @ 8126F80
- push {r4,lr}
- ldr r4, _08126FE4 @ =gUnknown_0202FF84
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_8060470
- ldr r0, _08126FE8 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x28]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08126FDC
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08126FEC @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0xC
- strh r0, [r2, 0x30]
-_08126FDC:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08126FE4: .4byte gUnknown_0202FF84
-_08126FE8: .4byte gFieldEffectObjectTemplatePointers
-_08126FEC: .4byte gSprites
- thumb_func_end FldEff_JumpTallGrass
-
- thumb_func_start sub_8126FF0
-sub_8126FF0: @ 8126FF0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r5, 0
- ldr r0, _08127060 @ =gSprites
- mov r8, r0
- lsls r3, 16
- asrs r3, 16
- lsls r4, 16
- asrs r4, 16
-_08127014:
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- mov r1, r8
- adds r2, r0, r1
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _08127068
- ldr r1, [r2, 0x1C]
- ldr r0, _08127064 @ =unc_grass_normal
- cmp r1, r0
- bne _08127068
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r3, r0
- bne _08127068
- movs r1, 0x32
- ldrsh r0, [r2, r1]
- cmp r4, r0
- bne _08127068
- ldrh r1, [r2, 0x34]
- lsrs r0, r1, 8
- cmp r12, r0
- bne _08127068
- movs r0, 0xFF
- ands r0, r1
- cmp r7, r0
- bne _08127068
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r6, r0
- bne _08127068
- adds r0, r5, 0
- b _08127074
- .align 2, 0
-_08127060: .4byte gSprites
-_08127064: .4byte unc_grass_normal
-_08127068:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3F
- bls _08127014
- movs r0, 0x40
-_08127074:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8126FF0
-
- thumb_func_start FldEff_LongGrass
-FldEff_LongGrass: @ 8127080
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _0812711C @ =gUnknown_0202FF84
- ldrh r1, [r5]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r5, 0x4]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127120 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x3C]
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r3, 0
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _08127110
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08127124 @ =gSprites
- adds r4, r0, r1
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r5, 0x8]
- bl ZCoordToPriority
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldr r0, [r5, 0x8]
- strh r0, [r4, 0x2E]
- ldr r0, [r5]
- strh r0, [r4, 0x30]
- ldr r0, [r5, 0x4]
- strh r0, [r4, 0x32]
- ldr r0, [r5, 0x10]
- strh r0, [r4, 0x34]
- ldr r0, [r5, 0x14]
- strh r0, [r4, 0x36]
- ldr r0, [r5, 0x18]
- strh r0, [r4, 0x38]
- ldr r0, [r5, 0x1C]
- cmp r0, 0
- beq _08127110
- adds r0, r4, 0
- movs r1, 0x6
- bl SeekSpriteAnim
-_08127110:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0812711C: .4byte gUnknown_0202FF84
-_08127120: .4byte gFieldEffectObjectTemplatePointers
-_08127124: .4byte gSprites
- thumb_func_end FldEff_LongGrass
-
- thumb_func_start unc_grass_tall
-unc_grass_tall: @ 8127128
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- lsrs r7, r0, 8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, _081271D0 @ =gUnknown_0202E844
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08127172
- ldr r2, _081271D4 @ =gSaveBlock1
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- cmp r0, r7
- bne _08127158
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r0, r6
- beq _08127172
-_08127158:
- ldr r1, [r3, 0x4]
- ldrh r0, [r5, 0x30]
- subs r0, r1
- strh r0, [r5, 0x30]
- ldr r1, [r3, 0x8]
- ldrh r0, [r5, 0x32]
- subs r0, r1
- strh r0, [r5, 0x32]
- ldrb r1, [r2, 0x5]
- lsls r1, 8
- ldrb r0, [r2, 0x4]
- orrs r0, r1
- strh r0, [r5, 0x38]
-_08127172:
- ldrh r0, [r5, 0x34]
- lsrs r1, r0, 8
- mov r8, r1
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r5, 0x36]
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _081271C6
- adds r0, r4, 0
- bl MetatileBehavior_IsLongGrass
- lsls r0, 24
- cmp r0, 0
- beq _081271C6
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _081271D8
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081271D8
-_081271C6:
- adds r0, r5, 0
- movs r1, 0x11
- bl FieldEffectStop
- b _0812720E
- .align 2, 0
-_081271D0: .4byte gUnknown_0202E844
-_081271D4: .4byte gSaveBlock1
-_081271D8:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812721C @ =gMapObjects
- adds r2, r0, r1
- ldr r0, [r2, 0x10]
- ldr r1, [r5, 0x30]
- cmp r0, r1
- beq _081271F8
- ldr r0, [r2, 0x14]
- cmp r0, r1
- beq _081271F8
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_081271F8:
- adds r0, r5, 0
- movs r1, 0
- bl sub_806487C
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- movs r2, 0
- bl sub_812882C
-_0812720E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812721C: .4byte gMapObjects
- thumb_func_end unc_grass_tall
-
- thumb_func_start FldEff_JumpLongGrass
-FldEff_JumpLongGrass: @ 8127220
- push {r4,lr}
- ldr r4, _08127284 @ =gUnknown_0202FF84
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127288 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x40]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0812727C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _0812728C @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0x12
- strh r0, [r2, 0x30]
-_0812727C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127284: .4byte gUnknown_0202FF84
-_08127288: .4byte gFieldEffectObjectTemplatePointers
-_0812728C: .4byte gSprites
- thumb_func_end FldEff_JumpLongGrass
-
- thumb_func_start FldEff_ShortGrass
-FldEff_ShortGrass: @ 8127290
- push {r4-r6,lr}
- ldr r6, _08127324 @ =gUnknown_0202FF84
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _08127328 @ =gMapObjects
- adds r5, r1, r0
- ldr r0, _0812732C @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x78]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0812731C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r4, _08127330 @ =gSprites
- adds r2, r4
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r6]
- strh r0, [r2, 0x2E]
- ldr r0, [r6, 0x4]
- strh r0, [r2, 0x30]
- ldr r0, [r6, 0x8]
- strh r0, [r2, 0x32]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r2, 0x34]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x36]
-_0812731C:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08127324: .4byte gUnknown_0202FF84
-_08127328: .4byte gMapObjects
-_0812732C: .4byte gFieldEffectObjectTemplatePointers
-_08127330: .4byte gSprites
- thumb_func_end FldEff_ShortGrass
-
- thumb_func_start sub_8127334
-sub_8127334: @ 8127334
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08127372
- ldr r5, _0812737C @ =gMapObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x2]
- lsls r0, 29
- cmp r0, 0
- blt _08127380
-_08127372:
- adds r0, r4, 0
- movs r1, 0x29
- bl FieldEffectStop
- b _08127416
- .align 2, 0
-_0812737C: .4byte gMapObjects
-_08127380:
- ldrb r0, [r1, 0x5]
- bl GetFieldObjectGraphicsInfo
- mov r8, r0
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08127424 @ =gSprites
- adds r6, r0, r1
- ldrh r5, [r6, 0x22]
- ldrh r7, [r6, 0x20]
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _081273BC
- lsls r0, r5, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _081273D6
-_081273BC:
- strh r7, [r4, 0x34]
- strh r5, [r4, 0x36]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081273D6
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_081273D6:
- strh r7, [r4, 0x20]
- strh r5, [r4, 0x22]
- mov r1, r8
- ldrh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 17
- subs r0, 0x8
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r0, [r6, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- adds r0, r6, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 31
- adds r0, r4, 0
- bl sub_806487C
-_08127416:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08127424: .4byte gSprites
- thumb_func_end sub_8127334
-
- thumb_func_start FldEff_SandFootprints
-FldEff_SandFootprints: @ 8127428
- push {r4,lr}
- ldr r4, _08127490 @ =gUnknown_0202FF84
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127494 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x2C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _08127486
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08127498 @ =gSprites
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x3
- ldrb r2, [r4, 0xC]
- ands r2, r1
- lsls r2, 2
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0xD
- strh r1, [r0, 0x3C]
- ldrb r1, [r4, 0x10]
- bl StartSpriteAnim
-_08127486:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127490: .4byte gUnknown_0202FF84
-_08127494: .4byte gFieldEffectObjectTemplatePointers
-_08127498: .4byte gSprites
- thumb_func_end FldEff_SandFootprints
-
- thumb_func_start FldEff_DeepSandFootprints
-FldEff_DeepSandFootprints: @ 812749C
- push {r4,r5,lr}
- ldr r4, _08127504 @ =gUnknown_0202FF84
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127508 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x5C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- adds r5, r1, 0
- cmp r1, 0x40
- beq _081274FC
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812750C @ =gSprites
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x3
- ldrb r2, [r4, 0xC]
- ands r2, r1
- lsls r2, 2
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x18
- strh r1, [r0, 0x3C]
- ldrb r1, [r4, 0x10]
- bl StartSpriteAnim
-_081274FC:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08127504: .4byte gUnknown_0202FF84
-_08127508: .4byte gFieldEffectObjectTemplatePointers
-_0812750C: .4byte gSprites
- thumb_func_end FldEff_DeepSandFootprints
-
- thumb_func_start FldEff_BikeTireTracks
-FldEff_BikeTireTracks: @ 8127510
- push {r4,r5,lr}
- ldr r4, _08127578 @ =gUnknown_0202FF84
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _0812757C @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x6C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- adds r5, r1, 0
- cmp r1, 0x40
- beq _08127570
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08127580 @ =gSprites
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x3
- ldrb r2, [r4, 0xC]
- ands r2, r1
- lsls r2, 2
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x23
- strh r1, [r0, 0x3C]
- ldrb r1, [r4, 0x10]
- bl StartSpriteAnim
-_08127570:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08127578: .4byte gUnknown_0202FF84
-_0812757C: .4byte gFieldEffectObjectTemplatePointers
-_08127580: .4byte gSprites
- thumb_func_end FldEff_BikeTireTracks
-
- thumb_func_start sub_8127584
-sub_8127584: @ 8127584
- push {lr}
- ldr r2, _0812759C @ =gUnknown_08401E40
- movs r3, 0x2E
- ldrsh r1, [r0, r3]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_0812759C: .4byte gUnknown_08401E40
- thumb_func_end sub_8127584
-
- thumb_func_start sub_81275A0
-sub_81275A0: @ 81275A0
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _081275B6
- movs r0, 0x1
- strh r0, [r1, 0x2E]
-_081275B6:
- adds r0, r1, 0
- movs r1, 0
- bl sub_806487C
- pop {r0}
- bx r0
- thumb_func_end sub_81275A0
-
- thumb_func_start sub_81275C4
-sub_81275C4: @ 81275C4
- push {r4,lr}
- adds r4, r0, 0
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- ldrb r1, [r3]
- lsls r1, 29
- lsrs r1, 31
- adds r0, r4, 0
- bl sub_806487C
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x38
- ble _08127608
- ldrh r1, [r4, 0x3C]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldEffectStop
-_08127608:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81275C4
-
- thumb_func_start FldEff_Splash
-FldEff_Splash: @ 8127610
- push {r4-r6,lr}
- ldr r6, _081276A4 @ =gUnknown_0202FF84
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _081276A8 @ =gMapObjects
- adds r5, r1, r0
- ldr r0, _081276AC @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x34]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _0812769A
- ldrb r0, [r5, 0x5]
- bl GetFieldObjectGraphicsInfo
- lsls r3, r4, 4
- adds r3, r4
- lsls r3, 2
- ldr r4, _081276B0 @ =gSprites
- adds r3, r4
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r1, [r1]
- movs r2, 0x2
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- ldrb r2, [r5, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x5]
- movs r2, 0xC
- ands r2, r1
- ldrb r4, [r3, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r4
- orrs r1, r2
- strb r1, [r3, 0x5]
- ldr r1, [r6]
- strh r1, [r3, 0x2E]
- ldr r1, [r6, 0x4]
- strh r1, [r3, 0x30]
- ldr r1, [r6, 0x8]
- strh r1, [r3, 0x32]
- ldrh r0, [r0, 0xA]
- lsls r0, 16
- asrs r0, 17
- subs r0, 0x4
- strh r0, [r3, 0x26]
- movs r0, 0x46
- bl PlaySE
-_0812769A:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081276A4: .4byte gUnknown_0202FF84
-_081276A8: .4byte gMapObjects
-_081276AC: .4byte gFieldEffectObjectTemplatePointers
-_081276B0: .4byte gSprites
- thumb_func_end FldEff_Splash
-
- thumb_func_start sub_81276B4
-sub_81276B4: @ 81276B4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _081276E4
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _081276EE
-_081276E4:
- adds r0, r4, 0
- movs r1, 0xF
- bl FieldEffectStop
- b _0812772E
-_081276EE:
- ldr r3, _08127738 @ =gSprites
- ldr r2, _0812773C @ =gMapObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x20]
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806487C
-_0812772E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08127738: .4byte gSprites
-_0812773C: .4byte gMapObjects
- thumb_func_end sub_81276B4
-
- thumb_func_start FldEff_JumpSmallSplash
-FldEff_JumpSmallSplash: @ 8127740
- push {r4,lr}
- ldr r4, _081277A4 @ =gUnknown_0202FF84
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_8060470
- ldr r0, _081277A8 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x38]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0812779C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _081277AC @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0x10
- strh r0, [r2, 0x30]
-_0812779C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081277A4: .4byte gUnknown_0202FF84
-_081277A8: .4byte gFieldEffectObjectTemplatePointers
-_081277AC: .4byte gSprites
- thumb_func_end FldEff_JumpSmallSplash
-
- thumb_func_start FldEff_JumpBigSplash
-FldEff_JumpBigSplash: @ 81277B0
- push {r4,lr}
- ldr r4, _08127814 @ =gUnknown_0202FF84
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127818 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x30]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0812780C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _0812781C @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0xE
- strh r0, [r2, 0x30]
-_0812780C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127814: .4byte gUnknown_0202FF84
-_08127818: .4byte gFieldEffectObjectTemplatePointers
-_0812781C: .4byte gSprites
- thumb_func_end FldEff_JumpBigSplash
-
- thumb_func_start FldEff_FeetInFlowingWater
-FldEff_FeetInFlowingWater: @ 8127820
- push {r4-r7,lr}
- ldr r7, _081278C0 @ =gUnknown_0202FF84
- ldrb r0, [r7]
- ldrb r1, [r7, 0x4]
- ldrb r2, [r7, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _081278C4 @ =gMapObjects
- adds r6, r1, r0
- ldr r0, _081278C8 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x34]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _081278B6
- ldrb r0, [r6, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r4, r0, 0
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r3, _081278CC @ =gSprites
- adds r0, r3
- ldr r1, _081278D0 @ =sub_81278D8
- str r1, [r0, 0x1C]
- adds r5, r0, 0
- adds r5, 0x3E
- ldrb r1, [r5]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r5]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrb r1, [r1, 0x5]
- movs r2, 0xC
- ands r2, r1
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r1, [r7]
- strh r1, [r0, 0x2E]
- ldr r1, [r7, 0x4]
- strh r1, [r0, 0x30]
- ldr r1, [r7, 0x8]
- strh r1, [r0, 0x32]
- ldr r1, _081278D4 @ =0x0000ffff
- strh r1, [r0, 0x34]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x36]
- ldrh r1, [r4, 0xA]
- lsls r1, 16
- asrs r1, 17
- subs r1, 0x4
- strh r1, [r0, 0x26]
- movs r1, 0x1
- bl StartSpriteAnim
-_081278B6:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081278C0: .4byte gUnknown_0202FF84
-_081278C4: .4byte gMapObjects
-_081278C8: .4byte gFieldEffectObjectTemplatePointers
-_081278CC: .4byte gSprites
-_081278D0: .4byte sub_81278D8
-_081278D4: .4byte 0x0000ffff
- thumb_func_end FldEff_FeetInFlowingWater
-
- thumb_func_start sub_81278D8
-sub_81278D8: @ 81278D8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08127912
- ldr r2, _0812791C @ =gMapObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r5, r0, r2
- ldrb r0, [r5, 0x2]
- lsls r0, 28
- cmp r0, 0
- blt _08127920
-_08127912:
- adds r0, r4, 0
- movs r1, 0x22
- bl FieldEffectStop
- b _0812796A
- .align 2, 0
-_0812791C: .4byte gMapObjects
-_08127920:
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08127974 @ =gSprites
- adds r0, r1
- ldrh r1, [r0, 0x20]
- strh r1, [r4, 0x20]
- ldrh r1, [r0, 0x22]
- strh r1, [r4, 0x22]
- adds r0, 0x43
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806487C
- ldr r1, [r5, 0x10]
- ldr r0, [r4, 0x34]
- cmp r1, r0
- beq _0812796A
- ldrh r0, [r5, 0x10]
- strh r0, [r4, 0x34]
- ldrh r0, [r5, 0x12]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0812796A
- movs r0, 0x46
- bl PlaySE
-_0812796A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08127974: .4byte gSprites
- thumb_func_end sub_81278D8
-
- thumb_func_start FldEff_Ripple
-FldEff_Ripple: @ 8127978
- push {r4,lr}
- ldr r0, _081279CC @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x14]
- ldr r4, _081279D0 @ =gUnknown_0202FF84
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081279C4
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _081279D4 @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x5
- strh r0, [r2, 0x2E]
-_081279C4:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081279CC: .4byte gFieldEffectObjectTemplatePointers
-_081279D0: .4byte gUnknown_0202FF84
-_081279D4: .4byte gSprites
- thumb_func_end FldEff_Ripple
-
- thumb_func_start FldEff_HotSpringsWater
-FldEff_HotSpringsWater: @ 81279D8
- push {r4-r6,lr}
- ldr r6, _08127A6C @ =gUnknown_0202FF84
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _08127A70 @ =gMapObjects
- adds r5, r1, r0
- ldr r0, _08127A74 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x7C]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08127A64
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r4, _08127A78 @ =gSprites
- adds r2, r4
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r6]
- strh r0, [r2, 0x2E]
- ldr r0, [r6, 0x4]
- strh r0, [r2, 0x30]
- ldr r0, [r6, 0x8]
- strh r0, [r2, 0x32]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r2, 0x34]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x36]
-_08127A64:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08127A6C: .4byte gUnknown_0202FF84
-_08127A70: .4byte gMapObjects
-_08127A74: .4byte gFieldEffectObjectTemplatePointers
-_08127A78: .4byte gSprites
- thumb_func_end FldEff_HotSpringsWater
-
- thumb_func_start sub_8127A7C
-sub_8127A7C: @ 8127A7C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08127AB6
- ldr r5, _08127AC0 @ =gMapObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x2]
- lsls r0, 26
- cmp r0, 0
- blt _08127AC4
-_08127AB6:
- adds r0, r4, 0
- movs r1, 0x2A
- bl FieldEffectStop
- b _08127B08
- .align 2, 0
-_08127AC0: .4byte gMapObjects
-_08127AC4:
- ldrb r0, [r1, 0x5]
- bl GetFieldObjectGraphicsInfo
- mov r1, sp
- ldrb r2, [r1]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, _08127B10 @ =gSprites
- adds r1, r2
- ldrh r2, [r1, 0x20]
- strh r2, [r4, 0x20]
- ldrh r0, [r0, 0xA]
- lsls r0, 16
- asrs r0, 17
- ldrh r2, [r1, 0x22]
- adds r0, r2
- subs r0, 0x8
- strh r0, [r4, 0x22]
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806487C
-_08127B08:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08127B10: .4byte gSprites
- thumb_func_end sub_8127A7C
-
- thumb_func_start FldEff_Unknown19
-FldEff_Unknown19: @ 8127B14
- push {r4,lr}
- ldr r4, _08127B74 @ =gUnknown_0202FF84
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127B78 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x44]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08127B6C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127B7C @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x13
- strh r0, [r2, 0x2E]
-_08127B6C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127B74: .4byte gUnknown_0202FF84
-_08127B78: .4byte gFieldEffectObjectTemplatePointers
-_08127B7C: .4byte gSprites
- thumb_func_end FldEff_Unknown19
-
- thumb_func_start FldEff_Unknown20
-FldEff_Unknown20: @ 8127B80
- push {r4,lr}
- ldr r4, _08127BE0 @ =gUnknown_0202FF84
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127BE4 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x48]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08127BD8
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127BE8 @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x14
- strh r0, [r2, 0x2E]
-_08127BD8:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127BE0: .4byte gUnknown_0202FF84
-_08127BE4: .4byte gFieldEffectObjectTemplatePointers
-_08127BE8: .4byte gSprites
- thumb_func_end FldEff_Unknown20
-
- thumb_func_start FldEff_Unknown21
-FldEff_Unknown21: @ 8127BEC
- push {r4,lr}
- ldr r4, _08127C4C @ =gUnknown_0202FF84
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127C50 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x4C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08127C44
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127C54 @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x15
- strh r0, [r2, 0x2E]
-_08127C44:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127C4C: .4byte gUnknown_0202FF84
-_08127C50: .4byte gFieldEffectObjectTemplatePointers
-_08127C54: .4byte gSprites
- thumb_func_end FldEff_Unknown21
-
- thumb_func_start FldEff_Unknown22
-FldEff_Unknown22: @ 8127C58
- push {r4,lr}
- ldr r4, _08127CB8 @ =gUnknown_0202FF84
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127CBC @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x50]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08127CB0
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127CC0 @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x16
- strh r0, [r2, 0x2E]
-_08127CB0:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127CB8: .4byte gUnknown_0202FF84
-_08127CBC: .4byte gFieldEffectObjectTemplatePointers
-_08127CC0: .4byte gSprites
- thumb_func_end FldEff_Unknown22
-
- thumb_func_start ash
-ash: @ 8127CC4
- push {r4,lr}
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _08127CF4 @ =gUnknown_0202FF84
- lsls r0, 16
- asrs r0, 16
- str r0, [r4]
- lsls r1, 16
- asrs r1, 16
- str r1, [r4, 0x4]
- movs r0, 0x52
- str r0, [r4, 0x8]
- movs r0, 0x1
- str r0, [r4, 0xC]
- str r2, [r4, 0x10]
- lsls r3, 16
- asrs r3, 16
- str r3, [r4, 0x14]
- movs r0, 0x7
- bl FieldEffectStart
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08127CF4: .4byte gUnknown_0202FF84
- thumb_func_end ash
-
- thumb_func_start FldEff_Ash
-FldEff_Ash: @ 8127CF8
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08127D78 @ =gUnknown_0202FF84
- ldrh r1, [r5]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r5, 0x4]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127D7C @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x18]
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r3, 0
- ldrsh r2, [r4, r3]
- ldrb r3, [r5, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08127D6E
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127D80 @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r5, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r5]
- strh r0, [r2, 0x30]
- ldr r0, [r5, 0x4]
- strh r0, [r2, 0x32]
- ldr r0, [r5, 0x10]
- strh r0, [r2, 0x34]
- ldr r0, [r5, 0x14]
- strh r0, [r2, 0x36]
-_08127D6E:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08127D78: .4byte gUnknown_0202FF84
-_08127D7C: .4byte gFieldEffectObjectTemplatePointers
-_08127D80: .4byte gSprites
- thumb_func_end FldEff_Ash
-
- thumb_func_start sub_8127D84
-sub_8127D84: @ 8127D84
- push {lr}
- ldr r2, _08127D9C @ =gUnknown_08401E48
- movs r3, 0x2E
- ldrsh r1, [r0, r3]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08127D9C: .4byte gUnknown_08401E48
- thumb_func_end sub_8127D84
-
- thumb_func_start sub_8127DA0
-sub_8127DA0: @ 8127DA0
- push {lr}
- adds r3, r0, 0
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x36]
- subs r0, 0x1
- strh r0, [r3, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _08127DCA
- movs r0, 0x1
- strh r0, [r3, 0x2E]
-_08127DCA:
- pop {r0}
- bx r0
- thumb_func_end sub_8127DA0
-
- thumb_func_start sub_8127DD0
-sub_8127DD0: @ 8127DD0
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- ldrh r2, [r4, 0x34]
- bl MapGridSetMetatileIdAt
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- ldr r2, _08127E28 @ =gMapObjects
- ldr r0, _08127E2C @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x2
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08127E28: .4byte gMapObjects
-_08127E2C: .4byte gPlayerAvatar
- thumb_func_end sub_8127DD0
-
- thumb_func_start sub_8127E30
-sub_8127E30: @ 8127E30
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_806487C
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08127E50
- adds r0, r4, 0
- movs r1, 0x7
- bl FieldEffectStop
-_08127E50:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8127E30
-
- thumb_func_start FldEff_SurfBlob
-FldEff_SurfBlob: @ 8127E58
- push {r4,r5,lr}
- ldr r4, _08127EC0 @ =gUnknown_0202FF84
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127EC4 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x1C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0x96
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- cmp r0, 0x40
- beq _08127EB2
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08127EC8 @ =gSprites
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r3]
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r1, 0x32]
- ldr r0, _08127ECC @ =0x0000ffff
- strh r0, [r1, 0x34]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1, 0x3A]
- strh r0, [r1, 0x3C]
-_08127EB2:
- movs r0, 0x8
- bl FieldEffectActiveListRemove
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08127EC0: .4byte gUnknown_0202FF84
-_08127EC4: .4byte gFieldEffectObjectTemplatePointers
-_08127EC8: .4byte gSprites
-_08127ECC: .4byte 0x0000ffff
- thumb_func_end FldEff_SurfBlob
-
- thumb_func_start sub_8127ED0
-sub_8127ED0: @ 8127ED0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _08127EF8 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrh r0, [r2, 0x2E]
- movs r3, 0x10
- negs r3, r3
- ands r3, r0
- movs r0, 0xF0
- lsls r0, 20
- ands r0, r1
- lsrs r0, 24
- orrs r0, r3
- strh r0, [r2, 0x2E]
- bx lr
- .align 2, 0
-_08127EF8: .4byte gSprites
- thumb_func_end sub_8127ED0
-
- thumb_func_start sub_8127EFC
-sub_8127EFC: @ 8127EFC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _08127F24 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrh r0, [r2, 0x2E]
- movs r3, 0xF1
- negs r3, r3
- ands r3, r0
- movs r0, 0xF0
- lsls r0, 20
- ands r0, r1
- lsrs r0, 20
- orrs r3, r0
- strh r3, [r2, 0x2E]
- bx lr
- .align 2, 0
-_08127F24: .4byte gSprites
- thumb_func_end sub_8127EFC
-
- thumb_func_start sub_8127F28
-sub_8127F28: @ 8127F28
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r4, _08127F54 @ =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r3, r4
- ldrh r0, [r3, 0x2E]
- ldr r4, _08127F58 @ =0xfffff0ff
- ands r4, r0
- movs r0, 0xF0
- lsls r0, 20
- ands r0, r1
- lsrs r0, 16
- orrs r4, r0
- strh r4, [r3, 0x2E]
- strh r2, [r3, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08127F54: .4byte gSprites
-_08127F58: .4byte 0xfffff0ff
- thumb_func_end sub_8127F28
-
- thumb_func_start sub_8127F5C
-sub_8127F5C: @ 8127F5C
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF
- ands r0, r1
- bx lr
- thumb_func_end sub_8127F5C
-
- thumb_func_start sub_8127F64
-sub_8127F64: @ 8127F64
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF0
- ands r0, r1
- lsrs r0, 4
- bx lr
- thumb_func_end sub_8127F64
-
- thumb_func_start sub_8127F70
-sub_8127F70: @ 8127F70
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF0
- lsls r0, 4
- ands r0, r1
- lsrs r0, 8
- bx lr
- thumb_func_end sub_8127F70
-
- thumb_func_start sub_8127F7C
-sub_8127F7C: @ 8127F7C
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08127FCC @ =gMapObjects
- adds r4, r0
- ldrb r0, [r4, 0x4]
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- ldr r0, _08127FD0 @ =gSprites
- adds r5, r0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_8127FD4
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_812800C
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_81280A0
- ldrb r0, [r5, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r2, [r6, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08127FCC: .4byte gMapObjects
-_08127FD0: .4byte gSprites
- thumb_func_end sub_8127F7C
-
- thumb_func_start sub_8127FD4
-sub_8127FD4: @ 8127FD4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, _08128008 @ =gUnknown_08401E54
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- adds r0, r4, 0
- bl sub_8127F64
- lsls r0, 24
- cmp r0, 0
- bne _08128000
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- add r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl StartSpriteAnimIfDifferent
-_08128000:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08128008: .4byte gUnknown_08401E54
- thumb_func_end sub_8127FD4
-
- thumb_func_start sub_812800C
-sub_812800C: @ 812800C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r1, 0
- ldrh r2, [r0, 0x10]
- mov r1, sp
- strh r2, [r1]
- ldrh r1, [r0, 0x12]
- mov r0, sp
- adds r0, 0x2
- strh r1, [r0]
- movs r2, 0x26
- ldrsh r3, [r4, r2]
- mov r8, r0
- cmp r3, 0
- bne _08128094
- mov r0, sp
- movs r5, 0
- ldrsh r2, [r0, r5]
- movs r5, 0x3A
- ldrsh r0, [r4, r5]
- cmp r2, r0
- bne _08128048
- lsls r0, r1, 16
- asrs r0, 16
- movs r5, 0x3C
- ldrsh r1, [r4, r5]
- cmp r0, r1
- beq _08128094
-_08128048:
- strh r3, [r4, 0x38]
- strh r2, [r4, 0x3A]
- mov r1, r8
- movs r2, 0
- ldrsh r0, [r1, r2]
- strh r0, [r4, 0x3C]
- movs r5, 0x1
- mov r7, r8
- mov r6, sp
-_0812805A:
- adds r0, r5, 0
- mov r1, sp
- adds r2, r7, 0
- bl MoveCoords
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r2, 0
- ldrsh r1, [r7, r2]
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _08128080
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _08128094
-_08128080:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4, 0x3A]
- strh r0, [r6]
- ldrh r0, [r4, 0x3C]
- mov r1, r8
- strh r0, [r1]
- cmp r5, 0x4
- bls _0812805A
-_08128094:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812800C
-
- thumb_func_start sub_81280A0
-sub_81280A0: @ 81280A0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r1, 0
- adds r4, r2, 0
- ldr r1, _08128104 @ =gUnknown_08401E5A
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r4, 0
- bl sub_8127F5C
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- cmp r2, 0
- beq _0812811A
- ldrh r1, [r4, 0x36]
- adds r1, 0x1
- strh r1, [r4, 0x36]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _081280E0
- ldrh r0, [r4, 0x34]
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
-_081280E0:
- ldrh r1, [r4, 0x36]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _081280F0
- ldrh r0, [r4, 0x34]
- negs r0, r0
- strh r0, [r4, 0x34]
-_081280F0:
- cmp r2, 0x2
- beq _0812811A
- adds r0, r4, 0
- bl sub_8127F70
- lsls r0, 24
- cmp r0, 0
- bne _08128108
- ldrh r0, [r4, 0x26]
- b _0812810E
- .align 2, 0
-_08128104: .4byte gUnknown_08401E5A
-_08128108:
- ldrh r0, [r4, 0x26]
- ldrh r3, [r4, 0x30]
- adds r0, r3
-_0812810E:
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x20]
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r4, 0x22]
-_0812811A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81280A0
-
- thumb_func_start sub_8128124
-sub_8128124: @ 8128124
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08128168 @ =gDummySpriteTemplate
- movs r1, 0
- movs r2, 0
- movs r3, 0xFF
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r1, _0812816C @ =gSprites
- adds r2, r1
- ldr r1, _08128170 @ =sub_8128174
- str r1, [r2, 0x1C]
- movs r1, 0x3E
- adds r1, r2
- mov r12, r1
- ldrb r1, [r1]
- movs r3, 0x4
- orrs r1, r3
- mov r3, r12
- strb r1, [r3]
- strh r4, [r2, 0x2E]
- movs r1, 0x1
- strh r1, [r2, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08128168: .4byte gDummySpriteTemplate
-_0812816C: .4byte gSprites
-_08128170: .4byte sub_8128174
- thumb_func_end sub_8128124
-
- thumb_func_start sub_8128174
-sub_8128174: @ 8128174
- push {lr}
- adds r2, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081281B0 @ =gSprites
- adds r3, r0, r1
- ldrh r1, [r2, 0x32]
- adds r0, r1, 0x1
- strh r0, [r2, 0x32]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0812819C
- ldrh r0, [r2, 0x30]
- ldrh r1, [r3, 0x26]
- adds r0, r1
- strh r0, [r3, 0x26]
-_0812819C:
- ldrh r1, [r2, 0x32]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _081281AC
- ldrh r0, [r2, 0x30]
- negs r0, r0
- strh r0, [r2, 0x30]
-_081281AC:
- pop {r0}
- bx r0
- .align 2, 0
-_081281B0: .4byte gSprites
- thumb_func_end sub_8128174
-
- thumb_func_start FldEff_Dust
-FldEff_Dust: @ 81281B4
- push {r4,lr}
- ldr r4, _08128218 @ =gUnknown_0202FF84
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_8060470
- ldr r0, _0812821C @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x24]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08128210
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08128220 @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0xA
- strh r0, [r2, 0x30]
-_08128210:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08128218: .4byte gUnknown_0202FF84
-_0812821C: .4byte gFieldEffectObjectTemplatePointers
-_08128220: .4byte gSprites
- thumb_func_end FldEff_Dust
-
- thumb_func_start FldEff_SandPile
-FldEff_SandPile: @ 8128224
- push {r4-r7,lr}
- ldr r7, _081282D0 @ =gUnknown_0202FF84
- ldrb r0, [r7]
- ldrb r1, [r7, 0x4]
- ldrb r2, [r7, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _081282D4 @ =gMapObjects
- adds r6, r1, r0
- ldr r0, _081282D8 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x74]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _081282C8
- ldrb r0, [r6, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r5, r0, 0
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r4, _081282DC @ =gSprites
- adds r0, r4
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x5]
- movs r2, 0xC
- ands r2, r1
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r1, [r7]
- strh r1, [r0, 0x2E]
- ldr r1, [r7, 0x4]
- strh r1, [r0, 0x30]
- ldr r1, [r7, 0x8]
- strh r1, [r0, 0x32]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x20]
- strh r1, [r0, 0x34]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x36]
- ldrh r1, [r5, 0xA]
- lsls r1, 16
- asrs r1, 17
- subs r1, 0x2
- strh r1, [r0, 0x26]
- movs r1, 0x2
- bl SeekSpriteAnim
-_081282C8:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081282D0: .4byte gUnknown_0202FF84
-_081282D4: .4byte gMapObjects
-_081282D8: .4byte gFieldEffectObjectTemplatePointers
-_081282DC: .4byte gSprites
- thumb_func_end FldEff_SandPile
-
- thumb_func_start sub_81282E0
-sub_81282E0: @ 81282E0
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0812831A
- ldr r2, _08128324 @ =gMapObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrb r0, [r1, 0x2]
- lsls r0, 27
- cmp r0, 0
- blt _08128328
-_0812831A:
- adds r0, r4, 0
- movs r1, 0x27
- bl FieldEffectStop
- b _0812839A
- .align 2, 0
-_08128324: .4byte gMapObjects
-_08128328:
- ldr r2, _081283A4 @ =gSprites
- ldrb r1, [r1, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r5, [r0, 0x22]
- ldrh r6, [r0, 0x20]
- movs r2, 0x20
- ldrsh r1, [r0, r2]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08128350
- lsls r0, r5, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _0812836A
-_08128350:
- strh r6, [r4, 0x34]
- strh r5, [r4, 0x36]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812836A
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_0812836A:
- strh r6, [r4, 0x20]
- strh r5, [r4, 0x22]
- ldr r3, _081283A4 @ =gSprites
- ldr r2, _081283A8 @ =gMapObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x43
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806487C
-_0812839A:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081283A4: .4byte gSprites
-_081283A8: .4byte gMapObjects
- thumb_func_end sub_81282E0
-
- thumb_func_start FldEff_Bubbles
-FldEff_Bubbles: @ 81283AC
- push {r4,lr}
- ldr r4, _08128404 @ =gUnknown_0202FF84
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0
- bl sub_8060470
- ldr r0, _08128408 @ =gFieldEffectObjectTemplatePointers
- adds r0, 0x88
- ldr r0, [r0]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081283FC
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0812840C @ =gSprites
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r3]
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x5]
-_081283FC:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08128404: .4byte gUnknown_0202FF84
-_08128408: .4byte gFieldEffectObjectTemplatePointers
-_0812840C: .4byte gSprites
- thumb_func_end FldEff_Bubbles
-
- thumb_func_start sub_8128410
-sub_8128410: @ 8128410
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, r0
- strh r1, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806487C
- ldrh r1, [r4, 0x3E]
- ldr r0, _0812844C @ =0x00001004
- ands r0, r1
- cmp r0, 0
- beq _08128444
- adds r0, r4, 0
- movs r1, 0x35
- bl FieldEffectStop
-_08128444:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812844C: .4byte 0x00001004
- thumb_func_end sub_8128410
-
- thumb_func_start FldEff_BerryTreeGrowthSparkle
-FldEff_BerryTreeGrowthSparkle: @ 8128450
- push {r4,lr}
- ldr r4, _081284B8 @ =gUnknown_0202FF84
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x4
- bl sub_8060470
- ldr r0, _081284BC @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x58]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081284B0
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _081284C0 @ =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x50
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x17
- strh r0, [r2, 0x2E]
-_081284B0:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081284B8: .4byte gUnknown_0202FF84
-_081284BC: .4byte gFieldEffectObjectTemplatePointers
-_081284C0: .4byte gSprites
- thumb_func_end FldEff_BerryTreeGrowthSparkle
-
- thumb_func_start FldEff_TreeDisguise
-FldEff_TreeDisguise: @ 81284C4
- push {lr}
- movs r0, 0x1C
- movs r1, 0x18
- movs r2, 0x4
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end FldEff_TreeDisguise
-
- thumb_func_start FldEff_MountainDisguise
-FldEff_MountainDisguise: @ 81284D4
- push {lr}
- movs r0, 0x1D
- movs r1, 0x19
- movs r2, 0x3
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end FldEff_MountainDisguise
-
- thumb_func_start FldEff_SandDisguise
-FldEff_SandDisguise: @ 81284E4
- push {lr}
- movs r0, 0x24
- movs r1, 0x1C
- movs r2, 0x2
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end FldEff_SandDisguise
-
- thumb_func_start ShowDisguiseFieldEffect
-ShowDisguiseFieldEffect: @ 81284F4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- mov r8, r4
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r5, _08128528 @ =gUnknown_0202FF84
- ldrb r0, [r5]
- ldrb r1, [r5, 0x4]
- ldrb r2, [r5, 0x8]
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _0812852C
- adds r0, r4, 0
- bl FieldEffectActiveListRemove
- movs r0, 0x40
- b _08128598
- .align 2, 0
-_08128528: .4byte gUnknown_0202FF84
-_0812852C:
- ldr r1, _081285A4 @ =gFieldEffectObjectTemplatePointers
- lsls r0, r6, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- mov r1, sp
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08128594
- mov r0, sp
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _081285A8 @ =gSprites
- adds r2, r0
- movs r0, 0x3E
- adds r0, r2
- mov r12, r0
- ldrb r3, [r0]
- lsls r1, r3, 30
- lsrs r1, 31
- adds r1, 0x1
- movs r0, 0x1
- ands r1, r0
- lsls r1, 1
- movs r0, 0x3
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- lsls r3, r7, 4
- ldrb r1, [r2, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r3
- strb r0, [r2, 0x5]
- mov r0, r8
- strh r0, [r2, 0x30]
- ldr r0, [r5]
- strh r0, [r2, 0x32]
- ldr r0, [r5, 0x4]
- strh r0, [r2, 0x34]
- ldr r0, [r5, 0x8]
- strh r0, [r2, 0x36]
-_08128594:
- mov r0, sp
- ldrb r0, [r0]
-_08128598:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081285A4: .4byte gFieldEffectObjectTemplatePointers
-_081285A8: .4byte gSprites
- thumb_func_end ShowDisguiseFieldEffect
-
- thumb_func_start sub_81285AC
-sub_81285AC: @ 81285AC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x34]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r5, 0x36]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _081285DC
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldEffectStop
-_081285DC:
- ldr r4, _08128694 @ =gMapObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- bl GetFieldObjectGraphicsInfo
- mov r1, sp
- ldrb r2, [r1]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- ldr r1, _08128698 @ =gSprites
- adds r2, r1
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r1, [r1]
- movs r3, 0x3E
- adds r3, r5
- mov r12, r3
- movs r3, 0x4
- ands r3, r1
- mov r1, r12
- ldrb r4, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r4
- orrs r1, r3
- mov r3, r12
- strb r1, [r3]
- ldrh r1, [r2, 0x20]
- strh r1, [r5, 0x20]
- ldrh r0, [r0, 0xA]
- lsls r0, 16
- asrs r0, 17
- ldrh r1, [r2, 0x22]
- adds r0, r1
- subs r0, 0x10
- strh r0, [r5, 0x22]
- adds r2, 0x43
- ldrb r0, [r2]
- subs r0, 0x1
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x1
- bne _0812865C
- adds r0, r1, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_0812865C:
- movs r3, 0x2E
- ldrsh r0, [r5, r3]
- ldrh r2, [r5, 0x2E]
- cmp r0, 0x2
- bne _08128678
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08128678
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_08128678:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0812868C
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldEffectStop
-_0812868C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08128694: .4byte gMapObjects
-_08128698: .4byte gSprites
- thumb_func_end sub_81285AC
-
- thumb_func_start sub_812869C
-sub_812869C: @ 812869C
- push {lr}
- adds r1, r0, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081286BA
- ldr r2, _081286C0 @ =gSprites
- ldrb r1, [r1, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2E]
- adds r1, 0x1
- strh r1, [r0, 0x2E]
-_081286BA:
- pop {r0}
- bx r0
- .align 2, 0
-_081286C0: .4byte gSprites
- thumb_func_end sub_812869C
-
- thumb_func_start sub_81286C4
-sub_81286C4: @ 81286C4
- push {lr}
- adds r2, r0, 0
- adds r2, 0x21
- ldrb r1, [r2]
- cmp r1, 0x2
- beq _081286FA
- cmp r1, 0
- beq _081286FA
- ldrb r1, [r0, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081286EC @ =gSprites
- adds r1, r0, r1
- movs r3, 0x3C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _081286F0
- movs r0, 0
- b _081286FC
- .align 2, 0
-_081286EC: .4byte gSprites
-_081286F0:
- movs r0, 0x2
- strb r0, [r2]
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
-_081286FA:
- movs r0, 0x1
-_081286FC:
- pop {r1}
- bx r1
- thumb_func_end sub_81286C4
-
- thumb_func_start FldEff_Sparkle
-FldEff_Sparkle: @ 8128700
- push {r4,lr}
- ldr r4, _08128768 @ =gUnknown_0202FF84
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- ldr r0, [r4, 0x4]
- adds r0, 0x7
- str r0, [r4, 0x4]
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _0812876C @ =gFieldEffectObjectTemplatePointers
- adds r0, 0x8C
- ldr r0, [r0]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _08128760
- ldr r0, _08128770 @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- movs r0, 0x3
- ldrb r2, [r4, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
-_08128760:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08128768: .4byte gUnknown_0202FF84
-_0812876C: .4byte gFieldEffectObjectTemplatePointers
-_08128770: .4byte gSprites
- thumb_func_end FldEff_Sparkle
-
- thumb_func_start sub_8128774
-sub_8128774: @ 8128774
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _081287A8
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081287A0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
-_081287A0:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _081287BE
-_081287A8:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x22
- ble _081287BE
- adds r0, r2, 0
- movs r1, 0x36
- bl FieldEffectStop
-_081287BE:
- pop {r0}
- bx r0
- thumb_func_end sub_8128774
-
- thumb_func_start sub_81287C4
-sub_81287C4: @ 81287C4
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081287E2
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldEffectStop
- b _081287F8
-_081287E2:
- adds r0, r4, 0
- movs r1, 0
- bl sub_806487C
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0
- bl SetObjectSubpriorityByZCoord
-_081287F8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81287C4
-
- thumb_func_start sub_8128800
-sub_8128800: @ 8128800
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812881E
- ldrh r1, [r2, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl FieldEffectStop
- b _08128826
-_0812881E:
- adds r0, r2, 0
- movs r1, 0
- bl sub_806487C
-_08128826:
- pop {r0}
- bx r0
- thumb_func_end sub_8128800
-
- thumb_func_start sub_812882C
-sub_812882C: @ 812882C
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r0, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- adds r1, r6, 0
- bl SetObjectSubpriorityByZCoord
- movs r7, 0
-_08128842:
- lsls r0, r7, 3
- adds r0, r7
- lsls r0, 2
- ldr r1, _081288DC @ =gMapObjects
- adds r4, r0, r1
- ldrb r0, [r4]
- lsls r0, 31
- cmp r0, 0
- beq _081288E4
- ldrb r0, [r4, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081288E0 @ =gSprites
- adds r5, r0, r1
- adds r0, r6, 0
- adds r0, 0x28
- movs r2, 0
- ldrsb r2, [r0, r2]
- ldrh r0, [r6, 0x20]
- adds r1, r0, r2
- subs r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x20
- ldrsh r2, [r5, r0]
- cmp r1, r2
- bge _081288E4
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r2
- ble _081288E4
- adds r0, r5, 0
- adds r0, 0x29
- movs r3, 0
- ldrsb r3, [r0, r3]
- ldrh r2, [r5, 0x22]
- adds r2, r3
- ldrh r4, [r5, 0x22]
- adds r0, r6, 0
- adds r0, 0x29
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrh r0, [r6, 0x22]
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- adds r3, r0, r3
- lsls r2, 16
- asrs r2, 16
- lsls r3, 16
- asrs r3, 16
- cmp r2, r3
- blt _081288BC
- cmp r2, r0
- bge _081288E4
-_081288BC:
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r3
- ble _081288E4
- adds r2, r6, 0
- adds r2, 0x43
- adds r0, r5, 0
- adds r0, 0x43
- ldrb r1, [r0]
- ldrb r0, [r2]
- cmp r0, r1
- bhi _081288E4
- adds r0, r1, 0x2
- strb r0, [r2]
- b _081288EE
- .align 2, 0
-_081288DC: .4byte gMapObjects
-_081288E0: .4byte gSprites
-_081288E4:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xF
- bls _08128842
-_081288EE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812882C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_fadetransition.s b/asm/field_fadetransition.s
deleted file mode 100644
index 1f489ceb3..000000000
--- a/asm/field_fadetransition.s
+++ /dev/null
@@ -1,1221 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start task_mpl_807DD60
-task_mpl_807DD60: @ 80809CC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r2, _080809F0 @ =gTasks
- adds r4, r0, r2
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08080A06
- cmp r0, 0x1
- bgt _080809F4
- cmp r0, 0
- beq _080809FA
- b _08080A36
- .align 2, 0
-_080809F0: .4byte gTasks
-_080809F4:
- cmp r0, 0x2
- beq _08080A24
- b _08080A36
-_080809FA:
- bl sub_8083664
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- b _08080A1C
-_08080A06:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0x1
- beq _08080A36
- bl pal_fill_for_map_transition
-_08080A1C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08080A36
-_08080A24:
- bl sub_8080E70
- cmp r0, 0x1
- bne _08080A36
- bl ScriptContext2_Disable
- adds r0, r5, 0
- bl DestroyTask
-_08080A36:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end task_mpl_807DD60
-
- thumb_func_start sub_8080A3C
-sub_8080A3C: @ 8080A3C
- push {lr}
- bl ScriptContext2_Enable
- bl sub_8053E90
- bl palette_bg_fill_black
- ldr r0, _08080A58 @ =task_mpl_807DD60
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08080A58: .4byte task_mpl_807DD60
- thumb_func_end sub_8080A3C
-
- thumb_func_start sub_8080A5C
-sub_8080A5C: @ 8080A5C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08080A80 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08080A90
- cmp r0, 0x1
- bgt _08080A84
- cmp r0, 0
- beq _08080A8A
- b _08080ABC
- .align 2, 0
-_08080A80: .4byte gTasks
-_08080A84:
- cmp r0, 0x2
- beq _08080AA6
- b _08080ABC
-_08080A8A:
- bl sub_80084A4
- b _08080A9E
-_08080A90:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _08080ABC
- bl pal_fill_for_map_transition
-_08080A9E:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08080ABC
-_08080AA6:
- bl sub_8080E70
- cmp r0, 0x1
- bne _08080ABC
- bl sub_8007B14
- bl ScriptContext2_Disable
- adds r0, r5, 0
- bl DestroyTask
-_08080ABC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8080A5C
-
- thumb_func_start sub_8080AC4
-sub_8080AC4: @ 8080AC4
- push {lr}
- bl ScriptContext2_Enable
- bl sub_8053E90
- bl palette_bg_fill_black
- ldr r0, _08080AE0 @ =sub_8080A5C
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08080AE0: .4byte sub_8080A5C
- thumb_func_end sub_8080AC4
-
- thumb_func_start sub_8080AE4
-sub_8080AE4: @ 8080AE4
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsDoor
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08080B1C
- ldr r1, _08080B18 @ =sub_8080B9C
- b _08080B2E
- .align 2, 0
-_08080B18: .4byte sub_8080B9C
-_08080B1C:
- adds r0, r4, 0
- bl MetatileBehavior_IsNonAnimDoor
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08080B40 @ =task_map_chg_seq_0807E2CC
- cmp r0, 0x1
- bne _08080B2E
- ldr r1, _08080B44 @ =task_map_chg_seq_0807E20C
-_08080B2E:
- adds r0, r1, 0
- movs r1, 0xA
- bl CreateTask
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08080B40: .4byte task_map_chg_seq_0807E2CC
-_08080B44: .4byte task_map_chg_seq_0807E20C
- thumb_func_end sub_8080AE4
-
- thumb_func_start mapldr_default
-mapldr_default: @ 8080B48
- push {lr}
- bl sub_8053E90
- bl pal_fill_for_map_transition
- bl sub_8080AE4
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- thumb_func_end mapldr_default
-
- thumb_func_start sub_8080B60
-sub_8080B60: @ 8080B60
- push {lr}
- bl sub_8053E90
- bl pal_fill_black
- bl sub_8080AE4
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- thumb_func_end sub_8080B60
-
- thumb_func_start sub_8080B78
-sub_8080B78: @ 8080B78
- push {lr}
- bl sub_8053E90
- bl pal_fill_for_map_transition
- movs r0, 0x2E
- bl PlaySE
- ldr r0, _08080B98 @ =task_map_chg_seq_0807E2CC
- movs r1, 0xA
- bl CreateTask
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_08080B98: .4byte task_map_chg_seq_0807E2CC
- thumb_func_end sub_8080B78
-
- thumb_func_start sub_8080B9C
-sub_8080B9C: @ 8080B9C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08080BC8 @ =gTasks
- adds r5, r0, r1
- adds r6, r5, 0
- adds r6, 0xC
- adds r7, r5, 0
- adds r7, 0xE
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _08080CAE
- lsls r0, 2
- ldr r1, _08080BCC @ =_08080BD0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08080BC8: .4byte gTasks
-_08080BCC: .4byte _08080BD0
- .align 2, 0
-_08080BD0:
- .4byte _08080BE4
- .4byte _08080C08
- .4byte _08080C40
- .4byte _08080C84
- .4byte _08080CA4
-_08080BE4:
- movs r0, 0
- bl sub_8080958
- bl FreezeMapObjects
- adds r0, r6, 0
- adds r1, r7, 0
- bl PlayerGetDestCoords
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r2, 0
- ldrsh r1, [r7, r2]
- bl FieldSetDoorOpened
- movs r0, 0x1
- strh r0, [r5, 0x8]
- b _08080CAE
-_08080C08:
- bl sub_8080E70
- cmp r0, 0
- beq _08080CAE
- movs r0, 0x1
- bl sub_8080958
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08080C3C @ =gMapObjects
- adds r0, r1
- movs r1, 0x8
- bl FieldObjectSetSpecialAnim
- movs r0, 0x2
- strh r0, [r5, 0x8]
- b _08080CAE
- .align 2, 0
-_08080C3C: .4byte gMapObjects
-_08080C40:
- bl walkrun_is_standing_still
- lsls r0, 24
- cmp r0, 0
- beq _08080CAE
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r2, 0
- ldrsh r1, [r7, r2]
- bl FieldAnimateDoorClose
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0xA]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08080C80 @ =gMapObjects
- adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
- movs r0, 0x3
- strh r0, [r5, 0x8]
- b _08080CAE
- .align 2, 0
-_08080C80: .4byte gMapObjects
-_08080C84:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- blt _08080C9A
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0x1
- beq _08080CAE
-_08080C9A:
- bl UnfreezeMapObjects
- movs r0, 0x4
- strh r0, [r5, 0x8]
- b _08080CAE
-_08080CA4:
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
-_08080CAE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8080B9C
-
- thumb_func_start task_map_chg_seq_0807E20C
-task_map_chg_seq_0807E20C: @ 8080CB4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08080CE0 @ =gTasks
- adds r5, r0, r1
- adds r6, r5, 0
- adds r6, 0xC
- adds r7, r5, 0
- adds r7, 0xE
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _08080D06
- cmp r0, 0x1
- bgt _08080CE4
- cmp r0, 0
- beq _08080CEE
- b _08080D6E
- .align 2, 0
-_08080CE0: .4byte gTasks
-_08080CE4:
- cmp r0, 0x2
- beq _08080D50
- cmp r0, 0x3
- beq _08080D64
- b _08080D6E
-_08080CEE:
- movs r0, 0
- bl sub_8080958
- bl FreezeMapObjects
- adds r0, r6, 0
- adds r1, r7, 0
- bl PlayerGetDestCoords
- movs r0, 0x1
- strh r0, [r5, 0x8]
- b _08080D6E
-_08080D06:
- bl sub_8080E70
- cmp r0, 0
- beq _08080D6E
- movs r0, 0x1
- bl sub_8080958
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08080D4C @ =gMapObjects
- adds r4, r0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl GetGoSpeed0AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- movs r0, 0x2
- strh r0, [r5, 0x8]
- b _08080D6E
- .align 2, 0
-_08080D4C: .4byte gMapObjects
-_08080D50:
- bl walkrun_is_standing_still
- lsls r0, 24
- cmp r0, 0
- beq _08080D6E
- bl UnfreezeMapObjects
- movs r0, 0x3
- strh r0, [r5, 0x8]
- b _08080D6E
-_08080D64:
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
-_08080D6E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end task_map_chg_seq_0807E20C
-
- thumb_func_start task_map_chg_seq_0807E2CC
-task_map_chg_seq_0807E2CC: @ 8080D74
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08080D94 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08080D98
- cmp r0, 0x1
- beq _08080DA8
- b _08080DBE
- .align 2, 0
-_08080D94: .4byte gTasks
-_08080D98:
- bl FreezeMapObjects
- bl ScriptContext2_Enable
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08080DBE
-_08080DA8:
- bl sub_8080E70
- cmp r0, 0
- beq _08080DBE
- bl UnfreezeMapObjects
- bl ScriptContext2_Disable
- adds r0, r5, 0
- bl DestroyTask
-_08080DBE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end task_map_chg_seq_0807E2CC
-
- thumb_func_start sub_8080DC4
-sub_8080DC4: @ 8080DC4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8080E70
- cmp r0, 0x1
- bne _08080DE0
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _08080DE8 @ =sub_80712B4
- movs r1, 0x50
- bl CreateTask
-_08080DE0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08080DE8: .4byte sub_80712B4
- thumb_func_end sub_8080DC4
-
- thumb_func_start atk17_seteffectuser
-atk17_seteffectuser: @ 8080DEC
- push {lr}
- bl pal_fill_black
- ldr r0, _08080E00 @ =sub_8080DC4
- bl CreateStartMenuTask
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_08080E00: .4byte sub_8080DC4
- thumb_func_end atk17_seteffectuser
-
- thumb_func_start task_mpl_807E3C8
-task_mpl_807E3C8: @ 8080E04
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8080E70
- cmp r0, 0x1
- bne _08080E20
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
- bl sub_8064E2C
-_08080E20:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end task_mpl_807E3C8
-
- thumb_func_start sub_8080E28
-sub_8080E28: @ 8080E28
- push {lr}
- bl ScriptContext2_Enable
- bl pal_fill_black
- ldr r0, _08080E40 @ =task_mpl_807E3C8
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08080E40: .4byte task_mpl_807E3C8
- thumb_func_end sub_8080E28
-
- thumb_func_start sub_8080E44
-sub_8080E44: @ 8080E44
- push {lr}
- bl ScriptContext2_Enable
- bl sub_8053E90
- bl pal_fill_black
- ldr r0, _08080E60 @ =task_mpl_807E3C8
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08080E60: .4byte task_mpl_807E3C8
- thumb_func_end sub_8080E44
-
- thumb_func_start sub_8080E64
-sub_8080E64: @ 8080E64
- ldr r0, _08080E6C @ =gPaletteFade
- ldrb r0, [r0, 0x7]
- lsrs r0, 7
- bx lr
- .align 2, 0
-_08080E6C: .4byte gPaletteFade
- thumb_func_end sub_8080E64
-
- thumb_func_start sub_8080E70
-sub_8080E70: @ 8080E70
- push {lr}
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08080E82
- movs r0, 0
- b _08080E84
-_08080E82:
- movs r0, 0x1
-_08080E84:
- pop {r1}
- bx r1
- thumb_func_end sub_8080E70
-
- thumb_func_start sub_8080E88
-sub_8080E88: @ 8080E88
- push {lr}
- bl ScriptContext2_Enable
- bl sub_8053FF8
- bl fade_8080918
- bl PlayRainSoundEffect
- movs r0, 0x9
- bl PlaySE
- ldr r0, _08080EB4 @ =gFieldCallback
- ldr r1, _08080EB8 @ =mapldr_default
- str r1, [r0]
- ldr r0, _08080EBC @ =task0A_fade_n_map_maybe
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08080EB4: .4byte gFieldCallback
-_08080EB8: .4byte mapldr_default
-_08080EBC: .4byte task0A_fade_n_map_maybe
- thumb_func_end sub_8080E88
-
- thumb_func_start sp13E_warp_to_last_warp
-sp13E_warp_to_last_warp: @ 8080EC0
- push {lr}
- bl ScriptContext2_Enable
- bl sub_8053FF8
- bl fade_8080918
- bl PlayRainSoundEffect
- ldr r0, _08080EE4 @ =gFieldCallback
- ldr r1, _08080EE8 @ =mapldr_default
- str r1, [r0]
- ldr r0, _08080EEC @ =task0A_fade_n_map_maybe
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08080EE4: .4byte gFieldCallback
-_08080EE8: .4byte mapldr_default
-_08080EEC: .4byte task0A_fade_n_map_maybe
- thumb_func_end sp13E_warp_to_last_warp
-
- thumb_func_start sub_8080EF0
-sub_8080EF0: @ 8080EF0
- push {lr}
- bl ScriptContext2_Enable
- ldr r0, _08080F08 @ =gFieldCallback
- ldr r1, _08080F0C @ =mapldr_default
- str r1, [r0]
- ldr r0, _08080F10 @ =sub_808115C
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08080F08: .4byte gFieldCallback
-_08080F0C: .4byte mapldr_default
-_08080F10: .4byte sub_808115C
- thumb_func_end sub_8080EF0
-
- thumb_func_start sp13F_fall_to_last_warp
-sp13F_fall_to_last_warp: @ 8080F14
- push {lr}
- bl sp13E_warp_to_last_warp
- ldr r1, _08080F24 @ =gFieldCallback
- ldr r0, _08080F28 @ =sub_8086748
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08080F24: .4byte gFieldCallback
-_08080F28: .4byte sub_8086748
- thumb_func_end sp13F_fall_to_last_warp
-
- thumb_func_start sub_8080F2C
-sub_8080F2C: @ 8080F2C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ScriptContext2_Enable
- adds r0, r4, 0
- movs r1, 0xA
- bl sub_8086A2C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8080F2C
-
- thumb_func_start sub_8080F48
-sub_8080F48: @ 8080F48
- push {lr}
- bl ScriptContext2_Enable
- movs r0, 0xA
- bl sub_80871B8
- pop {r0}
- bx r0
- thumb_func_end sub_8080F48
-
- thumb_func_start sub_8080F58
-sub_8080F58: @ 8080F58
- push {lr}
- bl ScriptContext2_Enable
- movs r0, 0xA
- bl sub_8087654
- pop {r0}
- bx r0
- thumb_func_end sub_8080F58
-
- thumb_func_start sub_8080F68
-sub_8080F68: @ 8080F68
- push {lr}
- bl ScriptContext2_Enable
- bl sub_8053FF8
- bl fade_8080918
- movs r0, 0x2D
- bl PlaySE
- ldr r0, _08080F90 @ =task0A_fade_n_map_maybe
- movs r1, 0xA
- bl CreateTask
- ldr r1, _08080F94 @ =gFieldCallback
- ldr r0, _08080F98 @ =sub_8080B78
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08080F90: .4byte task0A_fade_n_map_maybe
-_08080F94: .4byte gFieldCallback
-_08080F98: .4byte sub_8080B78
- thumb_func_end sub_8080F68
-
- thumb_func_start sub_8080F9C
-sub_8080F9C: @ 8080F9C
- push {lr}
- bl ScriptContext2_Enable
- bl fade_8080918
- ldr r0, _08080FB8 @ =task0A_fade_n_map_maybe
- movs r1, 0xA
- bl CreateTask
- ldr r1, _08080FBC @ =gFieldCallback
- ldr r0, _08080FC0 @ =sub_80C791C
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08080FB8: .4byte task0A_fade_n_map_maybe
-_08080FBC: .4byte gFieldCallback
-_08080FC0: .4byte sub_80C791C
- thumb_func_end sub_8080F9C
-
- thumb_func_start sub_8080FC4
-sub_8080FC4: @ 8080FC4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08080FE8 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08080FF8
- cmp r0, 0x1
- bgt _08080FEC
- cmp r0, 0
- beq _08080FF2
- b _08081022
- .align 2, 0
-_08080FE8: .4byte gTasks
-_08080FEC:
- cmp r0, 0x2
- beq _08081012
- b _08081022
-_08080FF2:
- bl ScriptContext2_Enable
- b _0808100A
-_08080FF8:
- bl sub_8080E64
- cmp r0, 0
- bne _08081022
- bl sub_8054034
- lsls r0, 24
- cmp r0, 0
- beq _08081022
-_0808100A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08081022
-_08081012:
- bl warp_in
- ldr r0, _08081028 @ =sub_8054588
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_08081022:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08081028: .4byte sub_8054588
- thumb_func_end sub_8080FC4
-
- thumb_func_start DoCableClubWarp
-DoCableClubWarp: @ 808102C
- push {lr}
- bl ScriptContext2_Enable
- bl sub_8053FF8
- bl fade_8080918
- movs r0, 0x9
- bl PlaySE
- ldr r0, _0808104C @ =sub_8080FC4
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0808104C: .4byte sub_8080FC4
- thumb_func_end DoCableClubWarp
-
- thumb_func_start sub_8081050
-sub_8081050: @ 8081050
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08081074 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08081096
- cmp r0, 0x1
- bgt _08081078
- cmp r0, 0
- beq _0808107E
- b _080810CC
- .align 2, 0
-_08081074: .4byte gTasks + 0x8
-_08081078:
- cmp r0, 0x2
- beq _080810B4
- b _080810CC
-_0808107E:
- bl ClearLinkCallback_2
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- bl sub_8053FF8
- movs r0, 0x9
- bl PlaySE
- b _080810AC
-_08081096:
- bl sub_8080E64
- cmp r0, 0
- bne _080810CC
- bl sub_8054034
- lsls r0, 24
- cmp r0, 0
- beq _080810CC
- bl sub_800832C
-_080810AC:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080810CC
-_080810B4:
- ldr r0, _080810D4 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080810CC
- bl warp_in
- ldr r0, _080810D8 @ =CB2_LoadMap
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_080810CC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080810D4: .4byte gReceivedRemoteLinkPlayers
-_080810D8: .4byte CB2_LoadMap
- thumb_func_end sub_8081050
-
- thumb_func_start sub_80810DC
-sub_80810DC: @ 80810DC
- push {lr}
- ldr r0, _080810EC @ =sub_8081050
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080810EC: .4byte sub_8081050
- thumb_func_end sub_80810DC
-
- thumb_func_start task0A_fade_n_map_maybe
-task0A_fade_n_map_maybe: @ 80810F0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08081114 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08081128
- cmp r0, 0x1
- bgt _08081118
- cmp r0, 0
- beq _0808111E
- b _08081152
- .align 2, 0
-_08081114: .4byte gTasks
-_08081118:
- cmp r0, 0x2
- beq _08081142
- b _08081152
-_0808111E:
- bl FreezeMapObjects
- bl ScriptContext2_Enable
- b _0808113A
-_08081128:
- bl sub_8080E64
- cmp r0, 0
- bne _08081152
- bl sub_8054034
- lsls r0, 24
- cmp r0, 0
- beq _08081152
-_0808113A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08081152
-_08081142:
- bl warp_in
- ldr r0, _08081158 @ =CB2_LoadMap
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_08081152:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08081158: .4byte CB2_LoadMap
- thumb_func_end task0A_fade_n_map_maybe
-
- thumb_func_start sub_808115C
-sub_808115C: @ 808115C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0808118C @ =gTasks
- adds r5, r1, r0
- adds r4, r5, 0
- adds r4, 0xC
- adds r6, r5, 0
- adds r6, 0xE
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- adds r2, r0, 0
- cmp r1, 0x4
- bls _08081180
- b _080812BC
-_08081180:
- lsls r0, r1, 2
- ldr r1, _08081190 @ =_08081194
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0808118C: .4byte gTasks
-_08081190: .4byte _08081194
- .align 2, 0
-_08081194:
- .4byte _080811A8
- .4byte _080811E4
- .4byte _08081240
- .4byte _0808128C
- .4byte _080812A8
-_080811A8:
- bl FreezeMapObjects
- adds r0, r4, 0
- adds r1, r6, 0
- bl PlayerGetDestCoords
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0
- ldrsh r1, [r6, r2]
- subs r1, 0x1
- bl sub_8058790
- lsls r0, 16
- lsrs r0, 16
- bl PlaySE
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0
- ldrsh r1, [r6, r2]
- subs r1, 0x1
- bl FieldAnimateDoorOpen
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0xA]
- movs r0, 0x1
- strh r0, [r5, 0x8]
- b _080812BC
-_080811E4:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- blt _080811FA
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0x1
- beq _080812BC
-_080811FA:
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r4, _0808123C @ =gMapObjects
- adds r0, r4
- bl FieldObjectClearAnimIfSpecialAnimActive
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x9
- bl FieldObjectSetSpecialAnim
- movs r0, 0x2
- strh r0, [r5, 0x8]
- b _080812BC
- .align 2, 0
-_0808123C: .4byte gMapObjects
-_08081240:
- bl walkrun_is_standing_still
- lsls r0, 24
- cmp r0, 0
- beq _080812BC
- movs r2, 0
- ldrsh r0, [r4, r2]
- movs r2, 0
- ldrsh r1, [r6, r2]
- subs r1, 0x1
- bl FieldAnimateDoorClose
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0xA]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08081288 @ =gMapObjects
- adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
- movs r0, 0
- bl sub_8080958
- movs r0, 0x3
- strh r0, [r5, 0x8]
- b _080812BC
- .align 2, 0
-_08081288: .4byte gMapObjects
-_0808128C:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- blt _080812A2
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0x1
- beq _080812BC
-_080812A2:
- movs r0, 0x4
- strh r0, [r5, 0x8]
- b _080812BC
-_080812A8:
- bl sub_8053FF8
- bl fade_8080918
- bl PlayRainSoundEffect
- movs r0, 0
- strh r0, [r5, 0x8]
- ldr r0, _080812C4 @ =task0A_fade_n_map_maybe
- str r0, [r5]
-_080812BC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080812C4: .4byte task0A_fade_n_map_maybe
- thumb_func_end sub_808115C
-
- thumb_func_start sub_80812C8
-sub_80812C8: @ 80812C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080812EC @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08081300
- cmp r0, 0x1
- bgt _080812F0
- cmp r0, 0
- beq _080812F6
- b _0808132A
- .align 2, 0
-_080812EC: .4byte gTasks
-_080812F0:
- cmp r0, 0x2
- beq _0808131A
- b _0808132A
-_080812F6:
- bl FreezeMapObjects
- bl ScriptContext2_Enable
- b _08081312
-_08081300:
- bl sub_8080E64
- cmp r0, 0
- bne _0808132A
- bl sub_8054034
- lsls r0, 24
- cmp r0, 0
- beq _0808132A
-_08081312:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0808132A
-_0808131A:
- bl warp_in
- ldr r0, _08081330 @ =sub_8054534
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_0808132A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08081330: .4byte sub_8054534
- thumb_func_end sub_80812C8
-
- thumb_func_start sub_8081334
-sub_8081334: @ 8081334
- push {lr}
- bl ScriptContext2_Enable
- bl sub_8053FF8
- bl fade_8080918
- bl PlayRainSoundEffect
- movs r0, 0x9
- bl PlaySE
- ldr r0, _08081360 @ =gFieldCallback
- ldr r1, _08081364 @ =sub_8080B60
- str r1, [r0]
- ldr r0, _08081368 @ =sub_80812C8
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08081360: .4byte gFieldCallback
-_08081364: .4byte sub_8080B60
-_08081368: .4byte sub_80812C8
- thumb_func_end sub_8081334
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_ground_effect.s b/asm/field_ground_effect.s
deleted file mode 100644
index 47c4b4c60..000000000
--- a/asm/field_ground_effect.s
+++ /dev/null
@@ -1,1302 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start FieldObjectCheckForReflectiveSurface
-FieldObjectCheckForReflectiveSurface: @ 8063A44
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r0, 0
- ldrb r0, [r5, 0x5]
- bl GetFieldObjectGraphicsInfo
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- adds r1, 0x8
- lsls r1, 12
- lsrs r1, 16
- str r1, [sp]
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- adds r0, 0x8
- lsls r0, 12
- movs r4, 0
- lsrs r2, r0, 16
- str r2, [sp, 0x4]
- asrs r0, 16
- cmp r4, r0
- blt _08063A7A
- b _08063B80
-_08063A7A:
- movs r0, 0x1
- mov r10, r0
-_08063A7E:
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- add r1, r10
- lsls r4, 16
- asrs r6, r4, 16
- adds r1, r6
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl GetReflectionTypeByMetatileBehavior
- lsls r0, 24
- lsrs r0, 24
- mov r9, r4
- cmp r0, 0
- bne _08063B82
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- movs r2, 0x16
- ldrsh r1, [r5, r2]
- add r1, r10
- adds r1, r6
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl GetReflectionTypeByMetatileBehavior
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08063B82
- movs r2, 0x1
- ldr r1, [sp]
- lsls r0, r1, 16
- asrs r1, r0, 16
- mov r8, r0
- cmp r2, r1
- bge _08063B6E
- movs r0, 0x80
- lsls r0, 9
- asrs r7, r0, 16
-_08063AD8:
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- lsls r1, r2, 16
- asrs r4, r1, 16
- adds r0, r4
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- adds r1, r7
- adds r1, r6
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl GetReflectionTypeByMetatileBehavior
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08063B82
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- subs r0, r4
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- adds r1, r7
- adds r1, r6
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl GetReflectionTypeByMetatileBehavior
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08063B82
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- adds r0, r4
- movs r2, 0x16
- ldrsh r1, [r5, r2]
- adds r1, r7
- adds r1, r6
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl GetReflectionTypeByMetatileBehavior
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08063B82
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- subs r0, r4
- movs r2, 0x16
- ldrsh r1, [r5, r2]
- adds r1, r7
- adds r1, r6
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl GetReflectionTypeByMetatileBehavior
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08063B82
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r0, r8
- blt _08063AD8
-_08063B6E:
- movs r1, 0x80
- lsls r1, 9
- add r1, r9
- lsrs r4, r1, 16
- ldr r2, [sp, 0x4]
- lsls r0, r2, 16
- cmp r1, r0
- bge _08063B80
- b _08063A7E
-_08063B80:
- movs r0, 0
-_08063B82:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end FieldObjectCheckForReflectiveSurface
-
- thumb_func_start GetReflectionTypeByMetatileBehavior
-GetReflectionTypeByMetatileBehavior: @ 8063B94
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsIce
- lsls r0, 24
- cmp r0, 0
- beq _08063BAA
- movs r0, 0x1
- b _08063BBC
-_08063BAA:
- adds r0, r4, 0
- bl MetatileBehavior_IsReflective
- lsls r0, 24
- cmp r0, 0
- bne _08063BBA
- movs r0, 0
- b _08063BBC
-_08063BBA:
- movs r0, 0x2
-_08063BBC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetReflectionTypeByMetatileBehavior
-
- thumb_func_start GetLedgeJumpDirection
-GetLedgeJumpDirection: @ 8063BC4
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r4, r2, 24
- cmp r4, 0
- beq _08063C0A
- cmp r4, 0x4
- bls _08063BE0
- subs r0, r4, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
-_08063BE0:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r3, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08063C10 @ =gUnknown_08376040
- lsls r1, r4, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08063C14
-_08063C0A:
- movs r0, 0
- b _08063C1A
- .align 2, 0
-_08063C10: .4byte gUnknown_08376040
-_08063C14:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r0, 24
-_08063C1A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetLedgeJumpDirection
-
- thumb_func_start FieldObjectSetSpriteOamTableForLongGrass
-FieldObjectSetSpriteOamTableForLongGrass: @ 8063C20
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldrb r0, [r5]
- lsls r0, 27
- cmp r0, 0
- blt _08063C74
- ldrb r0, [r5, 0x1E]
- bl MetatileBehavior_IsLongGrass
- lsls r0, 24
- cmp r0, 0
- beq _08063C74
- ldrb r0, [r5, 0x1F]
- bl MetatileBehavior_IsLongGrass
- lsls r0, 24
- cmp r0, 0
- beq _08063C74
- adds r4, 0x42
- ldrb r1, [r4]
- movs r6, 0x40
- negs r6, r6
- adds r0, r6, 0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
- ldrb r0, [r5, 0xB]
- lsrs r0, 4
- bl ZCoordToPriority
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08063C74
- ldrb r0, [r4]
- adds r1, r6, 0
- ands r1, r0
- movs r0, 0x5
- orrs r1, r0
- strb r1, [r4]
-_08063C74:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end FieldObjectSetSpriteOamTableForLongGrass
-
- thumb_func_start IsZCoordMismatchAt
-IsZCoordMismatchAt: @ 8063C7C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r0, r1, 16
- lsls r2, 16
- lsrs r1, r2, 16
- cmp r4, 0
- beq _08063CAA
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08063CAA
- cmp r0, 0xF
- beq _08063CAA
- cmp r0, r4
- bne _08063CAE
-_08063CAA:
- movs r0, 0
- b _08063CB0
-_08063CAE:
- movs r0, 0x1
-_08063CB0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end IsZCoordMismatchAt
-
- thumb_func_start FieldObjectUpdateZCoordAndPriority
-FieldObjectUpdateZCoordAndPriority: @ 8063CB8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x3]
- lsls r0, 29
- cmp r0, 0
- blt _08063D06
- adds r0, r4, 0
- bl FieldObjectUpdateZCoord
- ldr r1, _08063D0C @ =gFieldObjectPriorities_08376070
- ldrb r2, [r4, 0xB]
- lsls r2, 24
- lsrs r0, r2, 28
- adds r0, r1
- ldrb r0, [r0]
- adds r4, r5, 0
- adds r4, 0x42
- movs r1, 0x3F
- ands r1, r0
- ldrb r3, [r4]
- movs r0, 0x40
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r4]
- ldr r0, _08063D10 @ =gFieldObjectPriorities_08376060
- lsrs r2, 28
- adds r2, r0
- movs r0, 0x3
- ldrb r1, [r2]
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
-_08063D06:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08063D0C: .4byte gFieldObjectPriorities_08376070
-_08063D10: .4byte gFieldObjectPriorities_08376060
- thumb_func_end FieldObjectUpdateZCoordAndPriority
-
- thumb_func_start InitObjectPriorityByZCoord
-InitObjectPriorityByZCoord: @ 8063D14
- push {r4,lr}
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08063D58 @ =gFieldObjectPriorities_08376070
- adds r2, r1, r2
- ldrb r2, [r2]
- movs r3, 0x42
- adds r3, r0
- mov r12, r3
- movs r3, 0x3F
- ands r3, r2
- mov r2, r12
- ldrb r4, [r2]
- movs r2, 0x40
- negs r2, r2
- ands r2, r4
- orrs r2, r3
- mov r3, r12
- strb r2, [r3]
- ldr r2, _08063D5C @ =gFieldObjectPriorities_08376060
- adds r1, r2
- movs r3, 0x3
- ldrb r2, [r1]
- ands r2, r3
- lsls r2, 2
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08063D58: .4byte gFieldObjectPriorities_08376070
-_08063D5C: .4byte gFieldObjectPriorities_08376060
- thumb_func_end InitObjectPriorityByZCoord
-
- thumb_func_start ZCoordToPriority
-ZCoordToPriority: @ 8063D60
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08063D6C @ =gFieldObjectPriorities_08376060
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08063D6C: .4byte gFieldObjectPriorities_08376060
- thumb_func_end ZCoordToPriority
-
- thumb_func_start FieldObjectUpdateZCoord
-FieldObjectUpdateZCoord: @ 8063D70
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- movs r2, 0x16
- ldrsh r1, [r4, r2]
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r5, 0xF
- beq _08063DBE
- cmp r0, 0xF
- beq _08063DBE
- movs r3, 0xF
- adds r0, r5, 0
- ands r0, r3
- ldrb r1, [r4, 0xB]
- movs r2, 0x10
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r4, 0xB]
- cmp r5, 0
- beq _08063DBE
- cmp r5, 0xF
- beq _08063DBE
- lsls r0, r5, 4
- ands r2, r3
- orrs r2, r0
- strb r2, [r4, 0xB]
-_08063DBE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end FieldObjectUpdateZCoord
-
- thumb_func_start SetObjectSubpriorityByZCoord
-SetObjectSubpriorityByZCoord: @ 8063DC4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- adds r3, r1, 0
- adds r3, 0x29
- movs r5, 0
- ldrsb r5, [r3, r5]
- ldrh r4, [r1, 0x22]
- ldr r3, _08063E04 @ =gSpriteCoordOffsetY
- subs r4, r5
- ldrh r3, [r3]
- adds r4, r3
- adds r4, 0x8
- movs r3, 0xFF
- ands r4, r3
- lsrs r4, 4
- movs r3, 0x10
- subs r3, r4
- lsls r3, 17
- ldr r4, _08063E08 @ =gUnknown_08376050
- adds r0, r4
- lsrs r3, 16
- ldrb r0, [r0]
- adds r3, r0
- adds r2, r3
- adds r1, 0x43
- strb r2, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08063E04: .4byte gSpriteCoordOffsetY
-_08063E08: .4byte gUnknown_08376050
- thumb_func_end SetObjectSubpriorityByZCoord
-
- thumb_func_start FieldObjectUpdateSubpriority
-FieldObjectUpdateSubpriority: @ 8063E0C
- push {lr}
- adds r2, r0, 0
- ldrb r0, [r2, 0x3]
- lsls r0, 29
- cmp r0, 0
- blt _08063E22
- ldrb r0, [r2, 0xB]
- lsrs r0, 4
- movs r2, 0x1
- bl SetObjectSubpriorityByZCoord
-_08063E22:
- pop {r0}
- bx r0
- thumb_func_end FieldObjectUpdateSubpriority
-
- thumb_func_start AreZCoordsCompatible
-AreZCoordsCompatible: @ 8063E28
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r0, 0
- beq _08063E3E
- cmp r1, 0
- beq _08063E3E
- cmp r0, r1
- bne _08063E42
-_08063E3E:
- movs r0, 0x1
- b _08063E44
-_08063E42:
- movs r0, 0
-_08063E44:
- pop {r1}
- bx r1
- thumb_func_end AreZCoordsCompatible
-
- thumb_func_start GroundEffect_SpawnOnTallGrass
-GroundEffect_SpawnOnTallGrass: @ 8063E48
- push {lr}
- ldr r3, _08063E8C @ =gUnknown_0202FF84
- movs r2, 0x10
- ldrsh r1, [r0, r2]
- str r1, [r3]
- movs r2, 0x12
- ldrsh r1, [r0, r2]
- str r1, [r3, 0x4]
- ldrb r1, [r0, 0xB]
- lsrs r1, 4
- str r1, [r3, 0x8]
- movs r1, 0x2
- str r1, [r3, 0xC]
- ldrb r1, [r0, 0x8]
- lsls r1, 8
- ldrb r2, [r0, 0x9]
- orrs r1, r2
- str r1, [r3, 0x10]
- ldrb r0, [r0, 0xA]
- str r0, [r3, 0x14]
- ldr r1, _08063E90 @ =gSaveBlock1
- ldrb r0, [r1, 0x5]
- lsls r0, 8
- ldrb r1, [r1, 0x4]
- orrs r0, r1
- str r0, [r3, 0x18]
- movs r0, 0x1
- str r0, [r3, 0x1C]
- movs r0, 0x4
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_08063E8C: .4byte gUnknown_0202FF84
-_08063E90: .4byte gSaveBlock1
- thumb_func_end GroundEffect_SpawnOnTallGrass
-
- thumb_func_start sub_8063E94
-sub_8063E94: @ 8063E94
- push {lr}
- ldr r3, _08063ED8 @ =gUnknown_0202FF84
- movs r2, 0x10
- ldrsh r1, [r0, r2]
- str r1, [r3]
- movs r2, 0x12
- ldrsh r1, [r0, r2]
- str r1, [r3, 0x4]
- ldrb r1, [r0, 0xB]
- lsrs r1, 4
- str r1, [r3, 0x8]
- movs r1, 0x2
- str r1, [r3, 0xC]
- ldrb r1, [r0, 0x8]
- lsls r1, 8
- ldrb r2, [r0, 0x9]
- orrs r1, r2
- str r1, [r3, 0x10]
- ldrb r0, [r0, 0xA]
- str r0, [r3, 0x14]
- ldr r1, _08063EDC @ =gSaveBlock1
- ldrb r0, [r1, 0x5]
- lsls r0, 8
- ldrb r1, [r1, 0x4]
- orrs r0, r1
- str r0, [r3, 0x18]
- movs r0, 0
- str r0, [r3, 0x1C]
- movs r0, 0x4
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_08063ED8: .4byte gUnknown_0202FF84
-_08063EDC: .4byte gSaveBlock1
- thumb_func_end sub_8063E94
-
- thumb_func_start sub_8063EE0
-sub_8063EE0: @ 8063EE0
- push {lr}
- ldr r3, _08063F24 @ =gUnknown_0202FF84
- movs r2, 0x10
- ldrsh r1, [r0, r2]
- str r1, [r3]
- movs r2, 0x12
- ldrsh r1, [r0, r2]
- str r1, [r3, 0x4]
- ldrb r1, [r0, 0xB]
- lsrs r1, 4
- str r1, [r3, 0x8]
- movs r1, 0x2
- str r1, [r3, 0xC]
- ldrb r1, [r0, 0x8]
- lsls r1, 8
- ldrb r2, [r0, 0x9]
- orrs r1, r2
- str r1, [r3, 0x10]
- ldrb r0, [r0, 0xA]
- str r0, [r3, 0x14]
- ldr r1, _08063F28 @ =gSaveBlock1
- ldrb r0, [r1, 0x5]
- lsls r0, 8
- ldrb r1, [r1, 0x4]
- orrs r0, r1
- str r0, [r3, 0x18]
- movs r0, 0x1
- str r0, [r3, 0x1C]
- movs r0, 0x11
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_08063F24: .4byte gUnknown_0202FF84
-_08063F28: .4byte gSaveBlock1
- thumb_func_end sub_8063EE0
-
- thumb_func_start sub_8063F2C
-sub_8063F2C: @ 8063F2C
- push {lr}
- ldr r3, _08063F70 @ =gUnknown_0202FF84
- movs r2, 0x10
- ldrsh r1, [r0, r2]
- str r1, [r3]
- movs r2, 0x12
- ldrsh r1, [r0, r2]
- str r1, [r3, 0x4]
- ldrb r1, [r0, 0xB]
- lsrs r1, 4
- str r1, [r3, 0x8]
- movs r1, 0x2
- str r1, [r3, 0xC]
- ldrb r1, [r0, 0x8]
- lsls r1, 8
- ldrb r2, [r0, 0x9]
- orrs r1, r2
- str r1, [r3, 0x10]
- ldrb r0, [r0, 0xA]
- str r0, [r3, 0x14]
- ldr r1, _08063F74 @ =gSaveBlock1
- ldrb r0, [r1, 0x5]
- lsls r0, 8
- ldrb r1, [r1, 0x4]
- orrs r0, r1
- str r0, [r3, 0x18]
- movs r0, 0
- str r0, [r3, 0x1C]
- movs r0, 0x11
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_08063F70: .4byte gUnknown_0202FF84
-_08063F74: .4byte gSaveBlock1
- thumb_func_end sub_8063F2C
-
- thumb_func_start GroundEffect_WaterReflection
-GroundEffect_WaterReflection: @ 8063F78
- push {lr}
- movs r2, 0
- bl SetUpReflection
- pop {r0}
- bx r0
- thumb_func_end GroundEffect_WaterReflection
-
- thumb_func_start GroundEffect_IceReflection
-GroundEffect_IceReflection: @ 8063F84
- push {lr}
- movs r2, 0x1
- bl SetUpReflection
- pop {r0}
- bx r0
- thumb_func_end GroundEffect_IceReflection
-
- thumb_func_start GroundEffect_FlowingWater
-GroundEffect_FlowingWater: @ 8063F90
- push {lr}
- adds r1, r0, 0
- movs r0, 0x22
- bl oe_exec_and_other_stuff
- pop {r0}
- bx r0
- thumb_func_end GroundEffect_FlowingWater
-
- thumb_func_start sub_8063FA0
-sub_8063FA0: @ 8063FA0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldr r1, _08063FC8 @ =gUnknown_08376080
- ldrb r0, [r0, 0xD]
- lsls r0, 2
- adds r0, r1
- ldr r3, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl _call_via_r3
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08063FC8: .4byte gUnknown_08376080
- thumb_func_end sub_8063FA0
-
- thumb_func_start sub_8063FCC
-sub_8063FCC: @ 8063FCC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldr r1, _08063FF4 @ =gUnknown_08376080
- ldrb r0, [r0, 0xD]
- lsls r0, 2
- adds r0, r1
- ldr r3, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl _call_via_r3
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08063FF4: .4byte gUnknown_08376080
- thumb_func_end sub_8063FCC
-
- thumb_func_start nullsub_50
-nullsub_50: @ 8063FF8
- bx lr
- thumb_func_end nullsub_50
-
- thumb_func_start DoTracksGroundEffect_Footprints
-DoTracksGroundEffect_Footprints: @ 8063FFC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r4, r2, 24
- lsrs r4, 24
- ldr r1, _08064044 @ =gSandFootprints_FieldEffectData
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- ldr r1, _08064048 @ =gUnknown_0202FF84
- movs r2, 0x14
- ldrsh r0, [r5, r2]
- str r0, [r1]
- movs r2, 0x16
- ldrsh r0, [r5, r2]
- str r0, [r1, 0x4]
- movs r0, 0x95
- str r0, [r1, 0x8]
- movs r0, 0x2
- str r0, [r1, 0xC]
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- str r0, [r1, 0x10]
- lsls r4, 1
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- bl FieldEffectStart
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08064044: .4byte gSandFootprints_FieldEffectData
-_08064048: .4byte gUnknown_0202FF84
- thumb_func_end DoTracksGroundEffect_Footprints
-
- thumb_func_start DoTracksGroundEffect_BikeTireTracks
-DoTracksGroundEffect_BikeTireTracks: @ 806404C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, [r4, 0x10]
- ldr r0, [r4, 0x14]
- cmp r1, r0
- beq _0806408E
- ldr r2, _08064094 @ =gUnknown_0202FF84
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- str r0, [r2]
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- str r0, [r2, 0x4]
- movs r0, 0x95
- str r0, [r2, 0x8]
- movs r0, 0x2
- str r0, [r2, 0xC]
- ldr r3, _08064098 @ =gBikeTireTracks_Transitions
- ldrb r1, [r4, 0x18]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 2
- subs r0, 0x5
- adds r1, r0
- adds r1, r3
- ldrb r0, [r1]
- str r0, [r2, 0x10]
- movs r0, 0x23
- bl FieldEffectStart
-_0806408E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08064094: .4byte gUnknown_0202FF84
-_08064098: .4byte gBikeTireTracks_Transitions
- thumb_func_end DoTracksGroundEffect_BikeTireTracks
-
- thumb_func_start GroundEffect_Ripple
-GroundEffect_Ripple: @ 806409C
- push {lr}
- bl DoRippleFieldEffect
- pop {r0}
- bx r0
- thumb_func_end GroundEffect_Ripple
-
- thumb_func_start GroundEffect_StepOnPuddle
-GroundEffect_StepOnPuddle: @ 80640A8
- push {lr}
- adds r1, r0, 0
- movs r0, 0xF
- bl oe_exec_and_other_stuff
- pop {r0}
- bx r0
- thumb_func_end GroundEffect_StepOnPuddle
-
- thumb_func_start GroundEffect_SandPile
-GroundEffect_SandPile: @ 80640B8
- push {lr}
- adds r1, r0, 0
- movs r0, 0x27
- bl oe_exec_and_other_stuff
- pop {r0}
- bx r0
- thumb_func_end GroundEffect_SandPile
-
- thumb_func_start GroundEffect_JumpOnTallGrass
-GroundEffect_JumpOnTallGrass: @ 80640C8
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r1, _0806411C @ =gUnknown_0202FF84
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- str r0, [r1]
- movs r4, 0x12
- ldrsh r0, [r5, r4]
- str r0, [r1, 0x4]
- ldrb r0, [r5, 0xB]
- lsrs r0, 4
- str r0, [r1, 0x8]
- movs r0, 0x2
- str r0, [r1, 0xC]
- movs r0, 0xC
- bl FieldEffectStart
- ldrb r0, [r5, 0x8]
- ldrb r1, [r5, 0x9]
- ldrb r2, [r5, 0xA]
- movs r7, 0x10
- ldrsh r3, [r5, r7]
- movs r7, 0x12
- ldrsh r4, [r5, r7]
- str r4, [sp]
- bl sub_8126FF0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- bne _08064112
- adds r0, r5, 0
- adds r1, r6, 0
- bl GroundEffect_SpawnOnTallGrass
-_08064112:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806411C: .4byte gUnknown_0202FF84
- thumb_func_end GroundEffect_JumpOnTallGrass
-
- thumb_func_start GroundEffect_JumpOnLongGrass
-GroundEffect_JumpOnLongGrass: @ 8064120
- push {lr}
- ldr r2, _08064144 @ =gUnknown_0202FF84
- movs r3, 0x10
- ldrsh r1, [r0, r3]
- str r1, [r2]
- movs r3, 0x12
- ldrsh r1, [r0, r3]
- str r1, [r2, 0x4]
- ldrb r0, [r0, 0xB]
- lsrs r0, 4
- str r0, [r2, 0x8]
- movs r0, 0x2
- str r0, [r2, 0xC]
- movs r0, 0x12
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_08064144: .4byte gUnknown_0202FF84
- thumb_func_end GroundEffect_JumpOnLongGrass
-
- thumb_func_start GroundEffect_JumpOnShallowWater
-GroundEffect_JumpOnShallowWater: @ 8064148
- push {r4,lr}
- ldr r3, _08064174 @ =gUnknown_0202FF84
- movs r4, 0x10
- ldrsh r2, [r0, r4]
- str r2, [r3]
- movs r4, 0x12
- ldrsh r2, [r0, r4]
- str r2, [r3, 0x4]
- ldrb r0, [r0, 0xB]
- lsrs r0, 4
- str r0, [r3, 0x8]
- ldrb r0, [r1, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r3, 0xC]
- movs r0, 0x10
- bl FieldEffectStart
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08064174: .4byte gUnknown_0202FF84
- thumb_func_end GroundEffect_JumpOnShallowWater
-
- thumb_func_start GroundEffect_JumpOnWater
-GroundEffect_JumpOnWater: @ 8064178
- push {r4,lr}
- ldr r3, _080641A4 @ =gUnknown_0202FF84
- movs r4, 0x10
- ldrsh r2, [r0, r4]
- str r2, [r3]
- movs r4, 0x12
- ldrsh r2, [r0, r4]
- str r2, [r3, 0x4]
- ldrb r0, [r0, 0xB]
- lsrs r0, 4
- str r0, [r3, 0x8]
- ldrb r0, [r1, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r3, 0xC]
- movs r0, 0xE
- bl FieldEffectStart
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080641A4: .4byte gUnknown_0202FF84
- thumb_func_end GroundEffect_JumpOnWater
-
- thumb_func_start GroundEffect_JumpLandingDust
-GroundEffect_JumpLandingDust: @ 80641A8
- push {r4,lr}
- ldr r3, _080641D4 @ =gUnknown_0202FF84
- movs r4, 0x10
- ldrsh r2, [r0, r4]
- str r2, [r3]
- movs r4, 0x12
- ldrsh r2, [r0, r4]
- str r2, [r3, 0x4]
- ldrb r0, [r0, 0xB]
- lsrs r0, 4
- str r0, [r3, 0x8]
- ldrb r0, [r1, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r3, 0xC]
- movs r0, 0xA
- bl FieldEffectStart
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080641D4: .4byte gUnknown_0202FF84
- thumb_func_end GroundEffect_JumpLandingDust
-
- thumb_func_start GroundEffect_ShortGrass
-GroundEffect_ShortGrass: @ 80641D8
- push {lr}
- adds r1, r0, 0
- movs r0, 0x29
- bl oe_exec_and_other_stuff
- pop {r0}
- bx r0
- thumb_func_end GroundEffect_ShortGrass
-
- thumb_func_start GroundEffect_HotSprings
-GroundEffect_HotSprings: @ 80641E8
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2A
- bl oe_exec_and_other_stuff
- pop {r0}
- bx r0
- thumb_func_end GroundEffect_HotSprings
-
- thumb_func_start GroundEffect_Seaweed
-GroundEffect_Seaweed: @ 80641F8
- push {lr}
- ldr r2, _08064214 @ =gUnknown_0202FF84
- movs r3, 0x10
- ldrsh r1, [r0, r3]
- str r1, [r2]
- movs r1, 0x12
- ldrsh r0, [r0, r1]
- str r0, [r2, 0x4]
- movs r0, 0x35
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_08064214: .4byte gUnknown_0202FF84
- thumb_func_end GroundEffect_Seaweed
-
- thumb_func_start sub_8064218
-sub_8064218: @ 8064218
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r6, r1, 0
- adds r5, r2, 0
- movs r4, 0
- ldr r0, _08064258 @ =gUnknown_083760A0
- mov r8, r0
-_0806422A:
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- beq _08064240
- lsls r0, r4, 2
- add r0, r8
- ldr r2, [r0]
- adds r0, r7, 0
- adds r1, r6, 0
- bl _call_via_r2
-_08064240:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsrs r5, 1
- cmp r4, 0x13
- bls _0806422A
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08064258: .4byte gUnknown_083760A0
- thumb_func_end sub_8064218
-
- thumb_func_start filters_out_some_ground_effects
-filters_out_some_ground_effects: @ 806425C
- push {lr}
- adds r2, r0, 0
- adds r3, r1, 0
- ldrb r0, [r2]
- lsls r0, 27
- cmp r0, 0
- bge _0806428A
- ldrb r1, [r2, 0x2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- adds r1, 0x8
- ands r0, r1
- subs r1, 0x18
- ands r0, r1
- strb r0, [r2, 0x2]
- ldr r0, [r3]
- ldr r1, _08064290 @ =0xfff9f7bd
- ands r0, r1
- str r0, [r3]
-_0806428A:
- pop {r0}
- bx r0
- .align 2, 0
-_08064290: .4byte 0xfff9f7bd
- thumb_func_end filters_out_some_ground_effects
-
- thumb_func_start FilterOutStepOnPuddleGroundEffectIfJumping
-FilterOutStepOnPuddleGroundEffectIfJumping: @ 8064294
- push {lr}
- adds r2, r1, 0
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _080642A8
- ldr r0, [r2]
- ldr r1, _080642AC @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
-_080642A8:
- pop {r0}
- bx r0
- .align 2, 0
-_080642AC: .4byte 0xfffffbff
- thumb_func_end FilterOutStepOnPuddleGroundEffectIfJumping
-
- thumb_func_start DoGroundEffects_OnSpawn
-DoGroundEffects_OnSpawn: @ 80642B0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4]
- lsls r0, 29
- cmp r0, 0
- bge _080642F4
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- bl FieldObjectUpdateZCoordAndPriority
- adds r0, r4, 0
- mov r1, sp
- bl GetAllGroundEffectFlags_OnSpawn
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetSpriteOamTableForLongGrass
- ldr r2, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8064218
- ldrb r1, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r4]
-_080642F4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end DoGroundEffects_OnSpawn
-
- thumb_func_start DoGroundEffects_OnBeginStep
-DoGroundEffects_OnBeginStep: @ 80642FC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4]
- lsls r0, 29
- cmp r0, 0
- bge _08064348
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- bl FieldObjectUpdateZCoordAndPriority
- adds r0, r4, 0
- mov r1, sp
- bl GetAllGroundEffectFlags_OnBeginStep
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetSpriteOamTableForLongGrass
- adds r0, r4, 0
- mov r1, sp
- bl filters_out_some_ground_effects
- ldr r2, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8064218
- ldrb r1, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r4]
-_08064348:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end DoGroundEffects_OnBeginStep
-
- thumb_func_start DoGroundEffects_OnFinishStep
-DoGroundEffects_OnFinishStep: @ 8064350
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4]
- lsls r0, 28
- cmp r0, 0
- bge _0806439C
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- bl FieldObjectUpdateZCoordAndPriority
- adds r0, r4, 0
- mov r1, sp
- bl GetAllGroundEffectFlags_OnFinishStep
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetSpriteOamTableForLongGrass
- adds r0, r4, 0
- mov r1, sp
- bl FilterOutStepOnPuddleGroundEffectIfJumping
- ldr r2, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8064218
- ldrb r1, [r4]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- movs r1, 0x21
- negs r1, r1
- ands r0, r1
- strb r0, [r4]
-_0806439C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end DoGroundEffects_OnFinishStep
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
deleted file mode 100644
index c8c402217..000000000
--- a/asm/field_map_obj.s
+++ /dev/null
@@ -1,628 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
-.ifndef NONMATCHING
- thumb_func_start sub_805F3EC
-sub_805F3EC: @ 805F3EC
- movs r0, 0
- bx lr
- thumb_func_end sub_805F3EC
-
- thumb_func_start sub_805F3F0
-sub_805F3F0: @ 805F3F0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r1, _0805F434 @ =gUnknown_0836DC09
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- bl state_to_direction
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F434: .4byte gUnknown_0836DC09
- thumb_func_end sub_805F3F0
-
- thumb_func_start sub_805F438
-sub_805F438: @ 805F438
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r7, r1, 0
- mov r8, r3
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r1, _0805F4EC @ =gUnknown_0836DC09
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r2, r6, 0
- bl state_to_direction
- adds r6, r0, 0
- mov r5, sp
- adds r5, 0x2
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, sp
- adds r3, r5, 0
- bl FieldObjectMoveDestCoords
- adds r0, r6, 0
- bl GetGoSpeed0AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _0805F4BE
- mov r1, r8
- cmp r1, 0
- beq _0805F4D2
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r8
- lsls r0, 24
- cmp r0, 0
- bne _0805F4D2
-_0805F4BE:
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
-_0805F4D2:
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r7, 0x30]
- movs r0, 0x1
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F4EC: .4byte gUnknown_0836DC09
- thumb_func_end sub_805F438
-.endif
-
- thumb_func_start sub_805F4F0
-sub_805F4F0: @ 805F4F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r7, r1, 0
- mov r8, r3
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r1, _0805F5A4 @ =gUnknown_0836DC09
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r2, r6, 0
- bl state_to_direction
- adds r6, r0, 0
- mov r5, sp
- adds r5, 0x2
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, sp
- adds r3, r5, 0
- bl FieldObjectMoveDestCoords
- adds r0, r6, 0
- bl sub_8060744
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _0805F576
- mov r1, r8
- cmp r1, 0
- beq _0805F58A
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r8
- lsls r0, 24
- cmp r0, 0
- bne _0805F58A
-_0805F576:
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
-_0805F58A:
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r7, 0x30]
- movs r0, 0x1
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F5A4: .4byte gUnknown_0836DC09
- thumb_func_end sub_805F4F0
-
- thumb_func_start sub_805F5A8
-sub_805F5A8: @ 805F5A8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r7, r1, 0
- mov r8, r3
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r1, _0805F65C @ =gUnknown_0836DC09
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r2, r6, 0
- bl state_to_direction
- adds r6, r0, 0
- mov r5, sp
- adds r5, 0x2
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, sp
- adds r3, r5, 0
- bl FieldObjectMoveDestCoords
- adds r0, r6, 0
- bl sub_806079C
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _0805F62E
- mov r1, r8
- cmp r1, 0
- beq _0805F642
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r8
- lsls r0, 24
- cmp r0, 0
- bne _0805F642
-_0805F62E:
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
-_0805F642:
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r7, 0x30]
- movs r0, 0x1
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F65C: .4byte gUnknown_0836DC09
- thumb_func_end sub_805F5A8
-
- thumb_func_start sub_805F660
-sub_805F660: @ 805F660
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r7, r1, 0
- mov r8, r3
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r1, _0805F714 @ =gUnknown_0836DC09
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r2, r6, 0
- bl state_to_direction
- adds r6, r0, 0
- mov r5, sp
- adds r5, 0x2
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, sp
- adds r3, r5, 0
- bl FieldObjectMoveDestCoords
- adds r0, r6, 0
- bl sub_80607C8
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _0805F6E6
- mov r1, r8
- cmp r1, 0
- beq _0805F6FA
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r8
- lsls r0, 24
- cmp r0, 0
- bne _0805F6FA
-_0805F6E6:
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
-_0805F6FA:
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r7, 0x30]
- movs r0, 0x1
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F714: .4byte gUnknown_0836DC09
- thumb_func_end sub_805F660
-
- thumb_func_start cph_IM_DIFFERENT
-cph_IM_DIFFERENT: @ 805F718
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r1, _0805F75C @ =gUnknown_0836DC09
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- bl state_to_direction
- bl sub_806084C
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F75C: .4byte gUnknown_0836DC09
- thumb_func_end cph_IM_DIFFERENT
-
- thumb_func_start sub_805F760
-sub_805F760: @ 805F760
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r7, r1, 0
- mov r8, r3
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r1, _0805F814 @ =gUnknown_0836DC09
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r2, r6, 0
- bl state_to_direction
- adds r6, r0, 0
- mov r5, sp
- adds r5, 0x2
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, sp
- adds r3, r5, 0
- bl FieldObjectMoveDestCoords
- adds r0, r6, 0
- bl sub_80608A4
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _0805F7E6
- mov r1, r8
- cmp r1, 0
- beq _0805F7FA
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r8
- lsls r0, 24
- cmp r0, 0
- bne _0805F7FA
-_0805F7E6:
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
-_0805F7FA:
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r7, 0x30]
- movs r0, 0x1
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F814: .4byte gUnknown_0836DC09
- thumb_func_end sub_805F760
-
- thumb_func_start oac_hopping
-oac_hopping: @ 805F818
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r4, r0, 0
- adds r7, r1, 0
- mov r8, r3
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r1, _0805F8DC @ =gUnknown_0836DC09
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r2, r6, 0
- bl state_to_direction
- adds r6, r0, 0
- ldrh r1, [r4, 0x10]
- add r0, sp, 0x4
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- mov r5, sp
- adds r5, 0x6
- strh r0, [r5]
- movs r0, 0x2
- str r0, [sp]
- adds r0, r6, 0
- add r1, sp, 0x4
- adds r2, r5, 0
- movs r3, 0x2
- bl sub_8060320
- adds r0, r6, 0
- bl GetJumpLedgeAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
- add r0, sp, 0x4
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _0805F8AC
- mov r1, r8
- cmp r1, 0
- beq _0805F8C0
- add r0, sp, 0x4
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r8
- lsls r0, 24
- cmp r0, 0
- bne _0805F8C0
-_0805F8AC:
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
-_0805F8C0:
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r7, 0x30]
- movs r0, 0x1
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F8DC: .4byte gUnknown_0836DC09
- thumb_func_end oac_hopping
diff --git a/asm/fldeff_80C5CD4.s b/asm/fldeff_80C5CD4.s
index 33182fc6a..011ce6427 100644
--- a/asm/fldeff_80C5CD4.s
+++ b/asm/fldeff_80C5CD4.s
@@ -741,7 +741,7 @@ _080C627C: .4byte gMapHeader
thumb_func_start sub_80C6280
sub_80C6280: @ 80C6280
push {lr}
- ldr r1, _080C6294 @ =gUnknown_0202FF84
+ ldr r1, _080C6294 @ =gFieldEffectArguments
ldr r0, [r1, 0x4]
cmp r0, 0x2
beq _080C62AA
@@ -751,7 +751,7 @@ sub_80C6280: @ 80C6280
beq _080C62A2
b _080C62BE
.align 2, 0
-_080C6294: .4byte gUnknown_0202FF84
+_080C6294: .4byte gFieldEffectArguments
_080C6298:
cmp r0, 0x3
beq _080C62AE
@@ -815,7 +815,7 @@ SetUpFieldMove_SecretPower: @ 80C62C4
bne _080C6330
bl sub_80C6264
ldr r1, _080C6320 @ =gFieldCallback
- ldr r0, _080C6324 @ =sub_808AB90
+ ldr r0, _080C6324 @ =FieldCallback_Teleport
str r0, [r1]
ldr r1, _080C6328 @ =gUnknown_03005CE4
ldr r0, _080C632C @ =sub_80C639C
@@ -824,7 +824,7 @@ SetUpFieldMove_SecretPower: @ 80C62C4
_080C6318: .4byte gScriptResult
_080C631C: .4byte gUnknown_0203923C
_080C6320: .4byte gFieldCallback
-_080C6324: .4byte sub_808AB90
+_080C6324: .4byte FieldCallback_Teleport
_080C6328: .4byte gUnknown_03005CE4
_080C632C: .4byte sub_80C639C
_080C6330:
@@ -836,14 +836,14 @@ _080C6330:
bne _080C6360
bl sub_80C6264
ldr r1, _080C6350 @ =gFieldCallback
- ldr r0, _080C6354 @ =sub_808AB90
+ ldr r0, _080C6354 @ =FieldCallback_Teleport
str r0, [r1]
ldr r1, _080C6358 @ =gUnknown_03005CE4
ldr r0, _080C635C @ =sub_80C64A8
b _080C6380
.align 2, 0
_080C6350: .4byte gFieldCallback
-_080C6354: .4byte sub_808AB90
+_080C6354: .4byte FieldCallback_Teleport
_080C6358: .4byte gUnknown_03005CE4
_080C635C: .4byte sub_80C64A8
_080C6360:
@@ -859,7 +859,7 @@ _080C636E:
_080C6372:
bl sub_80C6264
ldr r1, _080C638C @ =gFieldCallback
- ldr r0, _080C6390 @ =sub_808AB90
+ ldr r0, _080C6390 @ =FieldCallback_Teleport
str r0, [r1]
ldr r1, _080C6394 @ =gUnknown_03005CE4
ldr r0, _080C6398 @ =sub_80C660C
@@ -872,7 +872,7 @@ _080C6384:
bx r1
.align 2, 0
_080C638C: .4byte gFieldCallback
-_080C6390: .4byte sub_808AB90
+_080C6390: .4byte FieldCallback_Teleport
_080C6394: .4byte gUnknown_03005CE4
_080C6398: .4byte sub_80C660C
thumb_func_end SetUpFieldMove_SecretPower
@@ -880,7 +880,7 @@ _080C6398: .4byte sub_80C660C
thumb_func_start sub_80C639C
sub_80C639C: @ 80C639C
push {lr}
- ldr r1, _080C63B0 @ =gUnknown_0202FF84
+ ldr r1, _080C63B0 @ =gFieldEffectArguments
ldr r0, _080C63B4 @ =gLastFieldPokeMenuOpened
ldrb r0, [r0]
str r0, [r1]
@@ -889,7 +889,7 @@ sub_80C639C: @ 80C639C
pop {r0}
bx r0
.align 2, 0
-_080C63B0: .4byte gUnknown_0202FF84
+_080C63B0: .4byte gFieldEffectArguments
_080C63B4: .4byte gLastFieldPokeMenuOpened
_080C63B8: .4byte gUnknown_081A2CE6
thumb_func_end sub_80C639C
@@ -943,7 +943,7 @@ FldEff_SecretPowerCave: @ 80C63FC
ldrh r1, [r2, 0x2]
lsls r1, 23
lsrs r1, 23
- ldr r4, _080C6448 @ =gUnknown_0202FF84
+ ldr r4, _080C6448 @ =gFieldEffectArguments
ldr r3, [r4, 0x14]
adds r1, r3
lsls r1, 16
@@ -963,7 +963,7 @@ FldEff_SecretPowerCave: @ 80C63FC
_080C643C: .4byte gSpriteTemplate_83D2614
_080C6440: .4byte gSprites
_080C6444: .4byte gPlayerAvatar
-_080C6448: .4byte gUnknown_0202FF84
+_080C6448: .4byte gFieldEffectArguments
thumb_func_end FldEff_SecretPowerCave
thumb_func_start sub_80C644C
@@ -1025,7 +1025,7 @@ sub_80C6498: @ 80C6498
thumb_func_start sub_80C64A8
sub_80C64A8: @ 80C64A8
push {lr}
- ldr r1, _080C64BC @ =gUnknown_0202FF84
+ ldr r1, _080C64BC @ =gFieldEffectArguments
ldr r0, _080C64C0 @ =gLastFieldPokeMenuOpened
ldrb r0, [r0]
str r0, [r1]
@@ -1034,7 +1034,7 @@ sub_80C64A8: @ 80C64A8
pop {r0}
bx r0
.align 2, 0
-_080C64BC: .4byte gUnknown_0202FF84
+_080C64BC: .4byte gFieldEffectArguments
_080C64C0: .4byte gLastFieldPokeMenuOpened
_080C64C4: .4byte gUnknown_081A2D3E
thumb_func_end sub_80C64A8
@@ -1088,13 +1088,13 @@ FldEff_SecretPowerTree: @ 80C6508
ands r2, r0
cmp r2, 0x96
bne _080C652A
- ldr r1, _080C6588 @ =gUnknown_0202FF84
+ ldr r1, _080C6588 @ =gFieldEffectArguments
movs r0, 0
str r0, [r1, 0x1C]
_080C652A:
cmp r2, 0x9C
bne _080C6534
- ldr r1, _080C6588 @ =gUnknown_0202FF84
+ ldr r1, _080C6588 @ =gFieldEffectArguments
movs r0, 0x2
str r0, [r1, 0x1C]
_080C6534:
@@ -1110,7 +1110,7 @@ _080C6534:
ldrh r1, [r2, 0x2]
lsls r1, 23
lsrs r1, 23
- ldr r4, _080C6588 @ =gUnknown_0202FF84
+ ldr r4, _080C6588 @ =gFieldEffectArguments
ldr r3, [r4, 0x14]
adds r1, r3
lsls r1, 16
@@ -1137,7 +1137,7 @@ _080C6576:
.align 2, 0
_080C6580: .4byte gUnknown_0203923C
_080C6584: .4byte 0x00000fff
-_080C6588: .4byte gUnknown_0202FF84
+_080C6588: .4byte gFieldEffectArguments
_080C658C: .4byte gSpriteTemplate_83D262C
_080C6590: .4byte gSprites
_080C6594: .4byte gPlayerAvatar
@@ -1149,7 +1149,7 @@ sub_80C6598: @ 80C6598
adds r4, r0, 0
movs r0, 0x9B
bl PlaySE
- ldr r0, _080C65BC @ =gUnknown_0202FF84
+ ldr r0, _080C65BC @ =gFieldEffectArguments
ldr r1, [r0, 0x1C]
adds r2, r4, 0
adds r2, 0x2A
@@ -1162,7 +1162,7 @@ sub_80C6598: @ 80C6598
pop {r0}
bx r0
.align 2, 0
-_080C65BC: .4byte gUnknown_0202FF84
+_080C65BC: .4byte gFieldEffectArguments
_080C65C0: .4byte sub_80C65C4
thumb_func_end sub_80C6598
@@ -1177,7 +1177,7 @@ sub_80C65C4: @ 80C65C4
asrs r0, 16
cmp r0, 0x27
ble _080C65EE
- ldr r0, _080C65F4 @ =gUnknown_0202FF84
+ ldr r0, _080C65F4 @ =gFieldEffectArguments
ldr r0, [r0, 0x1C]
cmp r0, 0
beq _080C65E2
@@ -1195,7 +1195,7 @@ _080C65EE:
pop {r0}
bx r0
.align 2, 0
-_080C65F4: .4byte gUnknown_0202FF84
+_080C65F4: .4byte gFieldEffectArguments
_080C65F8: .4byte sub_80C65FC
thumb_func_end sub_80C65C4
@@ -1212,7 +1212,7 @@ sub_80C65FC: @ 80C65FC
thumb_func_start sub_80C660C
sub_80C660C: @ 80C660C
push {lr}
- ldr r1, _080C6620 @ =gUnknown_0202FF84
+ ldr r1, _080C6620 @ =gFieldEffectArguments
ldr r0, _080C6624 @ =gLastFieldPokeMenuOpened
ldrb r0, [r0]
str r0, [r1]
@@ -1221,7 +1221,7 @@ sub_80C660C: @ 80C660C
pop {r0}
bx r0
.align 2, 0
-_080C6620: .4byte gUnknown_0202FF84
+_080C6620: .4byte gFieldEffectArguments
_080C6624: .4byte gLastFieldPokeMenuOpened
_080C6628: .4byte gUnknown_081A2D96
thumb_func_end sub_80C660C
@@ -1275,7 +1275,7 @@ FldEff_SecretPowerShrub: @ 80C666C
ldrh r1, [r2, 0x2]
lsls r1, 23
lsrs r1, 23
- ldr r4, _080C66B8 @ =gUnknown_0202FF84
+ ldr r4, _080C66B8 @ =gFieldEffectArguments
ldr r3, [r4, 0x14]
adds r1, r3
lsls r1, 16
@@ -1295,7 +1295,7 @@ FldEff_SecretPowerShrub: @ 80C666C
_080C66AC: .4byte gSpriteTemplate_83D2644
_080C66B0: .4byte gSprites
_080C66B4: .4byte gPlayerAvatar
-_080C66B8: .4byte gUnknown_0202FF84
+_080C66B8: .4byte gFieldEffectArguments
thumb_func_end FldEff_SecretPowerShrub
thumb_func_start sub_80C66BC
@@ -2103,7 +2103,7 @@ FldEff_SandPillar: @ 80C6D3C
mov r0, sp
adds r1, r4, 0
bl GetXYCoordsOneStepInFrontOfPlayer
- ldr r1, _080C6D78 @ =gUnknown_0202FF84
+ ldr r1, _080C6D78 @ =gFieldEffectArguments
mov r0, sp
movs r2, 0
ldrsh r0, [r0, r2]
@@ -2122,7 +2122,7 @@ FldEff_SandPillar: @ 80C6D3C
beq _080C6D86
b _080C6E4C
.align 2, 0
-_080C6D78: .4byte gUnknown_0202FF84
+_080C6D78: .4byte gFieldEffectArguments
_080C6D7C:
cmp r0, 0x3
beq _080C6DEC
@@ -2240,7 +2240,7 @@ SpriteCB_SandPillar_0: @ 80C6E64
adds r5, r0, 0
movs r0, 0x83
bl PlaySE
- ldr r4, _080C6E90 @ =gUnknown_0202FF84
+ ldr r4, _080C6E90 @ =gFieldEffectArguments
ldr r0, [r4, 0x14]
ldr r1, [r4, 0x18]
subs r1, 0x1
@@ -2255,7 +2255,7 @@ SpriteCB_SandPillar_0: @ 80C6E64
bl MapGridSetMetatileIdAt
b _080C6EAA
.align 2, 0
-_080C6E90: .4byte gUnknown_0202FF84
+_080C6E90: .4byte gFieldEffectArguments
_080C6E94: .4byte 0x00000286
_080C6E98: .4byte 0x00000e02
_080C6E9C:
@@ -2266,7 +2266,7 @@ _080C6E9C:
lsls r2, 2
bl MapGridSetMetatileIdAt
_080C6EAA:
- ldr r4, _080C6ED8 @ =gUnknown_0202FF84
+ ldr r4, _080C6ED8 @ =gFieldEffectArguments
ldr r0, [r4, 0x14]
ldr r1, [r4, 0x18]
ldr r2, _080C6EDC @ =0x0000020a
@@ -2286,7 +2286,7 @@ _080C6EAA:
pop {r0}
bx r0
.align 2, 0
-_080C6ED8: .4byte gUnknown_0202FF84
+_080C6ED8: .4byte gFieldEffectArguments
_080C6EDC: .4byte 0x0000020a
_080C6EE0: .4byte SpriteCB_SandPillar_1
thumb_func_end SpriteCB_SandPillar_0
@@ -2304,7 +2304,7 @@ SpriteCB_SandPillar_1: @ 80C6EE4
strh r0, [r5, 0x2E]
b _080C6F14
_080C6EF8:
- ldr r4, _080C6F1C @ =gUnknown_0202FF84
+ ldr r4, _080C6F1C @ =gFieldEffectArguments
ldr r0, [r4, 0x14]
ldr r1, [r4, 0x18]
ldr r2, _080C6F20 @ =0x00000e8c
@@ -2321,7 +2321,7 @@ _080C6F14:
pop {r0}
bx r0
.align 2, 0
-_080C6F1C: .4byte gUnknown_0202FF84
+_080C6F1C: .4byte gFieldEffectArguments
_080C6F20: .4byte 0x00000e8c
_080C6F24: .4byte SpriteCB_SandPillar_2
thumb_func_end SpriteCB_SandPillar_1
diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s
deleted file mode 100644
index 3ad85d7cf..000000000
--- a/asm/hall_of_fame.s
+++ /dev/null
@@ -1,3402 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8141E38
-sub_8141E38: @ 8141E38
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8141E38
-
- thumb_func_start sub_8141E4C
-sub_8141E4C: @ 8141E4C
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8141E4C
-
- thumb_func_start sub_8141E64
-sub_8141E64: @ 8141E64
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08141E80 @ =gMain
- ldr r1, _08141E84 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _08141EA0
- lsls r0, 2
- ldr r1, _08141E88 @ =_08141E8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08141E80: .4byte gMain
-_08141E84: .4byte 0x0000043c
-_08141E88: .4byte _08141E8C
- .align 2, 0
-_08141E8C:
- .4byte _08141EA0
- .4byte _08141EC0
- .4byte _08141EC6
- .4byte _08141F1C
- .4byte _08141F58
-_08141EA0:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_81433E0
- ldr r0, _08141EB8 @ =gMain
- ldr r2, _08141EBC @ =0x0000043c
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- b _08141F84
- .align 2, 0
-_08141EB8: .4byte gMain
-_08141EBC: .4byte 0x0000043c
-_08141EC0:
- bl sub_8143570
- b _08141F38
-_08141EC6:
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08141F04 @ =sub_8141E38
- bl SetVBlankCallback
- ldr r3, _08141F08 @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _08141F0C @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08141F10 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08141F14 @ =gMain
- ldr r2, _08141F18 @ =0x0000043c
- adds r1, r2
- b _08141F3E
- .align 2, 0
-_08141F04: .4byte sub_8141E38
-_08141F08: .4byte 0x04000208
-_08141F0C: .4byte 0x04000200
-_08141F10: .4byte REG_DISPSTAT
-_08141F14: .4byte gMain
-_08141F18: .4byte 0x0000043c
-_08141F1C:
- ldr r1, _08141F48 @ =REG_BLDCNT
- ldr r2, _08141F4C @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0xE2
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0
- strh r0, [r1]
- bl sub_81435B8
-_08141F38:
- ldr r1, _08141F50 @ =gMain
- ldr r0, _08141F54 @ =0x0000043c
- adds r1, r0
-_08141F3E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08141F84
- .align 2, 0
-_08141F48: .4byte REG_BLDCNT
-_08141F4C: .4byte 0x00003f42
-_08141F50: .4byte gMain
-_08141F54: .4byte 0x0000043c
-_08141F58:
- bl UpdatePaletteFade
- ldr r0, _08141F7C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08141F84
- ldr r0, _08141F80 @ =sub_8141E4C
- bl SetMainCallback2
- movs r0, 0xDA
- lsls r0, 1
- bl PlayBGM
- movs r0, 0
- b _08141F86
- .align 2, 0
-_08141F7C: .4byte gPaletteFade
-_08141F80: .4byte sub_8141E4C
-_08141F84:
- movs r0, 0x1
-_08141F86:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8141E64
-
- thumb_func_start sub_8141F90
-sub_8141F90: @ 8141F90
- push {r4,lr}
- bl sub_8141E64
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08141FB6
- ldr r0, _08141FBC @ =sub_8141FF8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08141FC0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
-_08141FB6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141FBC: .4byte sub_8141FF8
-_08141FC0: .4byte gTasks
- thumb_func_end sub_8141F90
-
- thumb_func_start sub_8141FC4
-sub_8141FC4: @ 8141FC4
- push {lr}
- bl sub_8141E64
- lsls r0, 24
- cmp r0, 0
- bne _08141FEA
- ldr r0, _08141FF0 @ =sub_8141FF8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08141FF4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0x8]
-_08141FEA:
- pop {r0}
- bx r0
- .align 2, 0
-_08141FF0: .4byte sub_8141FF8
-_08141FF4: .4byte gTasks
- thumb_func_end sub_8141FC4
-
- thumb_func_start sub_8141FF8
-sub_8141FF8: @ 8141FF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _081420C8 @ =0x0201c000
- mov r9, r0
- ldr r1, _081420CC @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- movs r7, 0
- ldr r4, _081420D0 @ =0xfffffe00
- mov r10, r4
-_08142024:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _081420D4 @ =gPlayerParty
- adds r6, r1, r0
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r3, r0, 0
- cmp r3, 0
- beq _081420DC
- adds r0, r6, 0
- movs r1, 0x41
- bl GetMonData
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 2
- mov r1, r9
- adds r5, r1, r4
- ldr r2, _081420D8 @ =0x000001ff
- adds r1, r2, 0
- ands r0, r1
- ldrh r1, [r5, 0x8]
- mov r2, r10
- ands r1, r2
- orrs r1, r0
- strh r1, [r5, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [r5]
- adds r0, r6, 0
- movs r1, 0
- bl GetMonData
- mov r1, r9
- adds r1, 0x4
- adds r1, r4
- str r0, [r1]
- adds r0, r6, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 1
- ldrb r2, [r5, 0x9]
- movs r1, 0x1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x9]
- adds r0, r6, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- movs r2, 0
- mov r6, r8
- lsls r5, r6, 2
- mov r3, r9
- adds r3, 0xA
-_081420A0:
- adds r1, r2, r4
- adds r1, r3, r1
- mov r6, sp
- adds r0, r6, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x9
- bls _081420A0
- ldr r0, _081420CC @ =gTasks
- mov r2, r8
- adds r1, r5, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- adds r0, 0x1
- strh r0, [r1, 0xC]
- b _08142108
- .align 2, 0
-_081420C8: .4byte 0x0201c000
-_081420CC: .4byte gTasks
-_081420D0: .4byte 0xfffffe00
-_081420D4: .4byte gPlayerParty
-_081420D8: .4byte 0x000001ff
-_081420DC:
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 2
- mov r4, r9
- adds r2, r4, r1
- ldrh r0, [r2, 0x8]
- mov r6, r10
- ands r0, r6
- strh r0, [r2, 0x8]
- str r3, [r2]
- mov r0, r9
- adds r0, 0x4
- adds r0, r1
- str r3, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0x1
- ands r0, r1
- strb r0, [r2, 0x9]
- movs r0, 0xFF
- strb r0, [r2, 0xA]
- mov r0, r8
- lsls r5, r0, 2
-_08142108:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x5
- bls _08142024
- ldr r0, _08142158 @ =gUnknown_0203931C
- movs r3, 0
- str r3, [r0]
- ldr r4, _0814215C @ =gTasks
- mov r2, r8
- adds r1, r5, r2
- lsls r1, 3
- adds r2, r1, r4
- strh r3, [r2, 0xA]
- movs r0, 0xFF
- strh r0, [r2, 0x10]
- movs r7, 0
- adds r3, r4, 0
- adds r3, 0x8
- movs r2, 0xFF
-_08142130:
- adds r0, r7, 0x5
- lsls r0, 1
- adds r0, r1
- adds r0, r3
- strh r2, [r0]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x5
- bls _08142130
- mov r6, r8
- adds r0, r5, r6
- lsls r0, 3
- adds r1, r0, r4
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _08142164
- ldr r0, _08142160 @ =sub_81422E8
- b _08142166
- .align 2, 0
-_08142158: .4byte gUnknown_0203931C
-_0814215C: .4byte gTasks
-_08142160: .4byte sub_81422E8
-_08142164:
- ldr r0, _08142178 @ =sub_814217C
-_08142166:
- str r0, [r1]
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142178: .4byte sub_814217C
- thumb_func_end sub_8141FF8
-
- thumb_func_start sub_814217C
-sub_814217C: @ 814217C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _081421C4 @ =0x0201c000
- mov r9, r0
- movs r7, 0x80
- lsls r7, 6
- add r7, r9
- ldr r0, _081421C8 @ =gUnknown_02039324
- ldrb r0, [r0]
- cmp r0, 0
- bne _081421D4
- movs r4, 0
- mov r0, r8
- lsls r0, 2
- mov r10, r0
- ldr r5, _081421CC @ =0xfffe4000
- add r5, r9
- movs r3, 0xF0
- lsls r3, 9
- movs r2, 0
- ldr r1, _081421D0 @ =0x00001fff
-_081421B2:
- adds r0, r4, r3
- adds r0, r5
- strb r2, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r1
- bls _081421B2
- b _081421E0
- .align 2, 0
-_081421C4: .4byte 0x0201c000
-_081421C8: .4byte gUnknown_02039324
-_081421CC: .4byte 0xfffe4000
-_081421D0: .4byte 0x00001fff
-_081421D4:
- movs r0, 0x3
- bl sub_8125EC8
- mov r0, r8
- lsls r0, 2
- mov r10, r0
-_081421E0:
- movs r4, 0
- ldrh r1, [r7, 0x8]
- ldr r2, _081421E8 @ =0x000001ff
- b _081421FA
- .align 2, 0
-_081421E8: .4byte 0x000001ff
-_081421EC:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r7, 0x78
- cmp r4, 0x31
- bhi _08142206
- ldrh r1, [r7, 0x8]
-_081421FA:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _081421EC
- cmp r4, 0x31
- bls _08142228
-_08142206:
- ldr r5, _08142264 @ =0x0201e000
- adds r6, r5, 0
- adds r5, 0x78
- movs r4, 0
- subs r7, 0x78
-_08142210:
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x78
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, 0x78
- adds r5, 0x78
- cmp r4, 0x30
- bls _08142210
-_08142228:
- adds r0, r7, 0
- mov r1, r9
- movs r2, 0x78
- bl memcpy
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08142268 @ =gMenuText_HOFSaving
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _0814226C @ =gTasks
- mov r0, r10
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _08142270 @ =sub_8142274
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142264: .4byte 0x0201e000
-_08142268: .4byte gMenuText_HOFSaving
-_0814226C: .4byte gTasks
-_08142270: .4byte sub_8142274
- thumb_func_end sub_814217C
-
- thumb_func_start sub_8142274
-sub_8142274: @ 8142274
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _081422A8 @ =gGameContinueCallback
- ldr r0, _081422AC @ =sub_8141FC4
- str r0, [r1]
- movs r0, 0x3
- bl TrySavingData
- movs r0, 0x37
- bl PlaySE
- ldr r1, _081422B0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081422B4 @ =sub_81422B8
- str r1, [r0]
- movs r1, 0x20
- strh r1, [r0, 0xE]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081422A8: .4byte gGameContinueCallback
-_081422AC: .4byte sub_8141FC4
-_081422B0: .4byte gTasks
-_081422B4: .4byte sub_81422B8
- thumb_func_end sub_8142274
-
- thumb_func_start sub_81422B8
-sub_81422B8: @ 81422B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081422D8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r2, [r1, 0xE]
- movs r3, 0xE
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _081422DC
- subs r0, r2, 0x1
- strh r0, [r1, 0xE]
- b _081422E0
- .align 2, 0
-_081422D8: .4byte gTasks
-_081422DC:
- ldr r0, _081422E4 @ =sub_81422E8
- str r0, [r1]
-_081422E0:
- pop {r0}
- bx r0
- .align 2, 0
-_081422E4: .4byte sub_81422E8
- thumb_func_end sub_81422B8
-
- thumb_func_start sub_81422E8
-sub_81422E8: @ 81422E8
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08142314 @ =gWindowConfig_81E7198
- adds r0, r5, 0
- bl SetUpWindowConfig
- adds r0, r5, 0
- bl InitMenuWindow
- ldr r1, _08142318 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0814231C @ =sub_8142320
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08142314: .4byte gWindowConfig_81E7198
-_08142318: .4byte gTasks
-_0814231C: .4byte sub_8142320
- thumb_func_end sub_81422E8
-
- thumb_func_start sub_8142320
-sub_8142320: @ 8142320
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _08142350 @ =0x0201c000
- ldr r0, _08142354 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldrh r6, [r1, 0xA]
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 2
- adds r4, r0, r2
- movs r2, 0xC
- ldrsh r0, [r1, r2]
- cmp r0, 0x3
- ble _0814235C
- ldr r1, _08142358 @ =gUnknown_0840B534
- b _0814235E
- .align 2, 0
-_08142350: .4byte 0x0201c000
-_08142354: .4byte gTasks
-_08142358: .4byte gUnknown_0840B534
-_0814235C:
- ldr r1, _081423F0 @ =gUnknown_0840B564
-_0814235E:
- lsls r2, r6, 3
- adds r0, r2, r1
- ldrh r5, [r0]
- adds r0, r1, 0x2
- adds r0, r2, r0
- ldrh r3, [r0]
- adds r0, r1, 0x4
- adds r0, r2, r0
- ldrh r0, [r0]
- mov r9, r0
- adds r1, 0x6
- adds r2, r1
- ldrh r2, [r2]
- mov r8, r2
- ldrh r0, [r4, 0x8]
- lsls r0, 23
- lsrs r0, 23
- lsls r1, r5, 16
- asrs r1, 16
- lsls r2, r3, 16
- asrs r2, 16
- ldr r3, [r4]
- str r3, [sp]
- ldr r3, [r4, 0x4]
- str r3, [sp, 0x4]
- adds r3, r6, 0
- bl sub_81436BC
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _081423F4 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r3
- movs r4, 0
- mov r5, r9
- strh r5, [r2, 0x30]
- mov r5, r8
- strh r5, [r2, 0x32]
- strh r4, [r2, 0x2E]
- adds r3, 0x1C
- adds r1, r3
- ldr r2, _081423F8 @ =sub_81435DC
- str r2, [r1]
- ldr r5, _081423FC @ =gTasks
- adds r1, r6, 0x5
- lsls r1, 1
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r1, r4
- adds r2, r5, 0
- adds r2, 0x8
- adds r1, r2
- strh r0, [r1]
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r4, r5
- ldr r0, _08142400 @ =sub_8142404
- str r0, [r4]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081423F0: .4byte gUnknown_0840B564
-_081423F4: .4byte gSprites
-_081423F8: .4byte sub_81435DC
-_081423FC: .4byte gTasks
-_08142400: .4byte sub_8142404
- thumb_func_end sub_8142320
-
- thumb_func_start sub_8142404
-sub_8142404: @ 8142404
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08142470 @ =0x0201c000
- ldr r3, _08142474 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r5, r2, r3
- ldrh r1, [r5, 0xA]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r6, r0, r4
- ldr r4, _08142478 @ =gSprites
- adds r1, 0x5
- lsls r1, 1
- adds r1, r2
- adds r3, 0x8
- adds r1, r3
- movs r0, 0
- ldrsh r1, [r1, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0814246A
- ldrh r2, [r6, 0x8]
- ldr r0, _0814247C @ =0x000001ff
- ands r0, r2
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08142458
- lsls r0, r2, 23
- lsrs r0, 23
- movs r1, 0
- bl PlayCry1
-_08142458:
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0xE
- bl sub_8143088
- movs r0, 0x78
- strh r0, [r5, 0xE]
- ldr r0, _08142480 @ =sub_8142484
- str r0, [r5]
-_0814246A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08142470: .4byte 0x0201c000
-_08142474: .4byte gTasks
-_08142478: .4byte gSprites
-_0814247C: .4byte 0x000001ff
-_08142480: .4byte sub_8142484
- thumb_func_end sub_8142404
-
- thumb_func_start sub_8142484
-sub_8142484: @ 8142484
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _081424BC @ =0x0201c000
- ldr r1, _081424C0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- adds r4, r6, r1
- ldrh r3, [r4, 0xA]
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r2
- mov r9, r0
- ldrh r2, [r4, 0xE]
- movs r7, 0xE
- ldrsh r0, [r4, r7]
- mov r12, r1
- cmp r0, 0
- beq _081424C4
- subs r0, r2, 0x1
- strh r0, [r4, 0xE]
- b _0814255C
- .align 2, 0
-_081424BC: .4byte 0x0201c000
-_081424C0: .4byte gTasks
-_081424C4:
- ldr r2, _0814253C @ =gUnknown_0203931C
- ldr r0, _08142540 @ =gSprites
- mov r8, r0
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r6
- mov r1, r12
- adds r1, 0x8
- adds r6, r0, r1
- movs r7, 0
- ldrsh r1, [r6, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r0
- ldr r3, [r2]
- orrs r3, r1
- str r3, [r2]
- ldrh r2, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bgt _08142550
- mov r7, r9
- ldrh r1, [r7, 0x1C]
- ldr r0, _08142544 @ =0x000001ff
- ands r0, r1
- cmp r0, 0
- beq _08142550
- adds r0, r2, 0x1
- strh r0, [r4, 0xA]
- ldr r0, _08142548 @ =0x0000735f
- str r0, [sp]
- adds r0, r3, 0
- movs r1, 0
- movs r2, 0xC
- movs r3, 0xC
- bl BeginNormalPaletteFade
- movs r0, 0
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r0, _0814254C @ =sub_8142320
- str r0, [r4]
- b _0814255C
- .align 2, 0
-_0814253C: .4byte gUnknown_0203931C
-_08142540: .4byte gSprites
-_08142544: .4byte 0x000001ff
-_08142548: .4byte 0x0000735f
-_0814254C: .4byte sub_8142320
-_08142550:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- add r0, r12
- ldr r1, _0814256C @ =sub_8142570
- str r1, [r0]
-_0814255C:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814256C: .4byte sub_8142570
- thumb_func_end sub_8142484
-
- thumb_func_start sub_8142570
-sub_8142570: @ 8142570
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08142604 @ =0xffff0000
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r3, 0
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r5, r0, 3
- ldr r0, _08142608 @ =gTasks + 0x8
- mov r12, r0
- mov r8, r1
- ldr r6, _0814260C @ =gSprites
- movs r7, 0xD
- negs r7, r7
-_0814259E:
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r5
- mov r2, r12
- adds r1, r0, r2
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0xFF
- beq _081425C0
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x5]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1, 0x5]
-_081425C0:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _0814259E
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xF
- bl sub_8143068
- movs r0, 0x69
- bl PlaySE
- ldr r1, _08142610 @ =gTasks
- mov r2, r8
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC8
- lsls r1, 1
- strh r1, [r0, 0xE]
- ldr r1, _08142614 @ =sub_8142618
- str r1, [r0]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142604: .4byte 0xffff0000
-_08142608: .4byte gTasks + 0x8
-_0814260C: .4byte gSprites
-_08142610: .4byte gTasks
-_08142614: .4byte sub_8142618
- thumb_func_end sub_8142570
-
- thumb_func_start sub_8142618
-sub_8142618: @ 8142618
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, _08142658 @ =gTasks
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r5, r0, 3
- adds r1, r5, r7
- ldrh r2, [r1, 0xE]
- movs r3, 0xE
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0814265C
- subs r2, 0x1
- strh r2, [r1, 0xE]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0
- bne _081426D2
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x6E
- ble _081426D2
- bl sub_81438C4
- b _081426D2
- .align 2, 0
-_08142658: .4byte gTasks
-_0814265C:
- movs r3, 0
- mov r9, r4
- ldr r0, _081426E4 @ =gUnknown_0203931C
- mov r10, r0
- adds r4, r5, 0
- adds r7, 0x8
- mov r8, r7
- ldr r7, _081426E8 @ =gSprites
- movs r1, 0xD
- negs r1, r1
- mov r12, r1
- movs r5, 0x4
-_08142674:
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r4
- mov r2, r8
- adds r1, r0, r2
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0xFF
- beq _08142698
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r1, 0x5]
- mov r0, r12
- ands r0, r2
- orrs r0, r5
- strb r0, [r1, 0x5]
-_08142698:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _08142674
- mov r3, r10
- ldr r0, [r3]
- ldr r1, _081426EC @ =0x0000735f
- str r1, [sp]
- movs r1, 0
- movs r2, 0xC
- movs r3, 0xC
- bl BeginNormalPaletteFade
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _081426F0 @ =gTasks
- mov r2, r9
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0x7
- strh r1, [r0, 0xE]
- ldr r1, _081426F4 @ =sub_81426F8
- str r1, [r0]
-_081426D2:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081426E4: .4byte gUnknown_0203931C
-_081426E8: .4byte gSprites
-_081426EC: .4byte 0x0000735f
-_081426F0: .4byte gTasks
-_081426F4: .4byte sub_81426F8
- thumb_func_end sub_8142618
-
- thumb_func_start sub_81426F8
-sub_81426F8: @ 81426F8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08142718 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- ldrh r1, [r2, 0xE]
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- cmp r0, 0xF
- ble _08142720
- ldr r0, _0814271C @ =sub_8142738
- str r0, [r2]
- b _0814272E
- .align 2, 0
-_08142718: .4byte gTasks
-_0814271C: .4byte sub_8142738
-_08142720:
- adds r0, r1, 0x1
- strh r0, [r2, 0xE]
- ldr r1, _08142734 @ =REG_BLDALPHA
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- lsls r0, 8
- strh r0, [r1]
-_0814272E:
- pop {r0}
- bx r0
- .align 2, 0
-_08142734: .4byte REG_BLDALPHA
- thumb_func_end sub_81426F8
-
- thumb_func_start sub_8142738
-sub_8142738: @ 8142738
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xCA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _08142784 @ =gWindowConfig_81E71B4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r0, _08142788 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- movs r1, 0x78
- movs r2, 0x48
- movs r3, 0x6
- bl sub_81437A4
- ldr r2, _0814278C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x10]
- movs r0, 0x78
- strh r0, [r1, 0xE]
- ldr r0, _08142790 @ =sub_8142794
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08142784: .4byte gWindowConfig_81E71B4
-_08142788: .4byte gSaveBlock2
-_0814278C: .4byte gTasks
-_08142790: .4byte sub_8142794
- thumb_func_end sub_8142738
-
- thumb_func_start sub_8142794
-sub_8142794: @ 8142794
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081427B4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081427B8
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _0814280A
- .align 2, 0
-_081427B4: .4byte gTasks
-_081427B8:
- ldr r2, _081427D8 @ =gSprites
- movs r3, 0x10
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrh r2, [r1, 0x20]
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- cmp r0, 0xA0
- beq _081427DC
- adds r0, r2, 0x1
- strh r0, [r1, 0x20]
- b _0814280A
- .align 2, 0
-_081427D8: .4byte gSprites
-_081427DC:
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0xF
- movs r3, 0x9
- bl MenuDrawTextWindow
- movs r0, 0x1
- movs r1, 0x2
- bl sub_8143300
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08142810 @ =gMenuText_HOFCongratulations
- movs r1, 0x4
- movs r2, 0xF
- bl MenuPrint
- ldr r0, _08142814 @ =sub_8142818
- str r0, [r4]
-_0814280A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08142810: .4byte gMenuText_HOFCongratulations
-_08142814: .4byte sub_8142818
- thumb_func_end sub_8142794
-
- thumb_func_start sub_8142818
-sub_8142818: @ 8142818
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08142844 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0814283E
- movs r0, 0x4
- bl FadeOutBGM
- ldr r0, _08142848 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0814284C @ =sub_8142850
- str r0, [r1]
-_0814283E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08142844: .4byte gMain
-_08142848: .4byte gTasks
-_0814284C: .4byte sub_8142850
- thumb_func_end sub_8142818
-
- thumb_func_start sub_8142850
-sub_8142850: @ 8142850
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08142890 @ =gPlttBufferFaded
- ldr r1, _08142894 @ =gPlttBufferUnfaded
- movs r2, 0x80
- lsls r2, 2
- bl CpuSet
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x8
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08142898 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0814289C @ =sub_81428A0
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08142890: .4byte gPlttBufferFaded
-_08142894: .4byte gPlttBufferUnfaded
-_08142898: .4byte gTasks
-_0814289C: .4byte sub_81428A0
- thumb_func_end sub_8142850
-
- thumb_func_start sub_81428A0
-sub_81428A0: @ 81428A0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081428C4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081428BE
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _081428C8 @ =sub_81439D0
- bl SetMainCallback2
-_081428BE:
- pop {r0}
- bx r0
- .align 2, 0
-_081428C4: .4byte gPaletteFade
-_081428C8: .4byte sub_81439D0
- thumb_func_end sub_81428A0
-
- thumb_func_start sub_81428CC
-sub_81428CC: @ 81428CC
- push {r4,r5,lr}
- ldr r0, _081428E4 @ =gMain
- ldr r1, _081428E8 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _08142908
- lsls r0, 2
- ldr r1, _081428EC @ =_081428F0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081428E4: .4byte gMain
-_081428E8: .4byte 0x0000043c
-_081428EC: .4byte _081428F0
- .align 2, 0
-_081428F0:
- .4byte _08142908
- .4byte _08142928
- .4byte _0814293C
- .4byte _08142980
- .4byte _081429C0
- .4byte _081429EC
-_08142908:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_81433E0
- ldr r0, _08142920 @ =gMain
- ldr r2, _08142924 @ =0x0000043c
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- b _08142A12
- .align 2, 0
-_08142920: .4byte gMain
-_08142924: .4byte 0x0000043c
-_08142928:
- bl sub_8143570
- ldr r1, _08142934 @ =gMain
- ldr r3, _08142938 @ =0x0000043c
- adds r1, r3
- b _081429DC
- .align 2, 0
-_08142934: .4byte gMain
-_08142938: .4byte 0x0000043c
-_0814293C:
- ldr r0, _08142968 @ =sub_8141E38
- bl SetVBlankCallback
- ldr r3, _0814296C @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _08142970 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08142974 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08142978 @ =gMain
- ldr r4, _0814297C @ =0x0000043c
- adds r1, r4
- b _081429DC
- .align 2, 0
-_08142968: .4byte sub_8141E38
-_0814296C: .4byte 0x04000208
-_08142970: .4byte 0x04000200
-_08142974: .4byte REG_DISPSTAT
-_08142978: .4byte gMain
-_0814297C: .4byte 0x0000043c
-_08142980:
- ldr r0, _081429AC @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl sub_81435B8
- ldr r0, _081429B0 @ =0x0201c000
- adds r2, r0, 0
- ldr r1, _081429B4 @ =gUnknown_0840B57C
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r1!, {r3,r5}
- stm r2!, {r3,r5}
- bl sub_80C5CD4
- ldr r1, _081429B8 @ =gMain
- ldr r4, _081429BC @ =0x0000043c
- adds r1, r4
- b _081429DC
- .align 2, 0
-_081429AC: .4byte REG_BLDCNT
-_081429B0: .4byte 0x0201c000
-_081429B4: .4byte gUnknown_0840B57C
-_081429B8: .4byte gMain
-_081429BC: .4byte 0x0000043c
-_081429C0:
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- bl sub_80C5DCC
- lsls r0, 24
- cmp r0, 0
- beq _08142A12
- ldr r1, _081429E4 @ =gMain
- ldr r5, _081429E8 @ =0x0000043c
- adds r1, r5
-_081429DC:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08142A12
- .align 2, 0
-_081429E4: .4byte gMain
-_081429E8: .4byte 0x0000043c
-_081429EC:
- ldr r1, _08142A18 @ =REG_BLDCNT
- ldr r2, _08142A1C @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0xE2
- lsls r3, 3
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08142A20 @ =sub_8142A28
- movs r1, 0
- bl CreateTask
- ldr r0, _08142A24 @ =sub_8141E4C
- bl SetMainCallback2
-_08142A12:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08142A18: .4byte REG_BLDCNT
-_08142A1C: .4byte 0x00003f42
-_08142A20: .4byte sub_8142A28
-_08142A24: .4byte sub_8141E4C
- thumb_func_end sub_81428CC
-
- thumb_func_start sub_8142A28
-sub_8142A28: @ 8142A28
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x3
- bl sub_8125EC8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08142A54
- ldr r0, _08142A4C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _08142A50 @ =sub_8142FEC
- str r0, [r1]
- b _08142AEA
- .align 2, 0
-_08142A4C: .4byte gTasks
-_08142A50: .4byte sub_8142FEC
-_08142A54:
- ldr r2, _08142A8C @ =0x0201e000
- movs r3, 0
- ldrh r1, [r2, 0x8]
- ldr r4, _08142A90 @ =0x000001ff
- adds r0, r4, 0
- ands r0, r1
- ldr r7, _08142A94 @ =gTasks
- lsls r6, r5, 2
- cmp r0, 0
- beq _08142A7E
-_08142A68:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r2, 0x78
- cmp r3, 0x31
- bhi _08142A98
- ldrh r1, [r2, 0x8]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _08142A68
-_08142A7E:
- cmp r3, 0x31
- bhi _08142A98
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r7
- subs r1, r3, 0x1
- b _08142AA0
- .align 2, 0
-_08142A8C: .4byte 0x0201e000
-_08142A90: .4byte 0x000001ff
-_08142A94: .4byte gTasks
-_08142A98:
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r7
- movs r1, 0x31
-_08142AA0:
- strh r1, [r0, 0x8]
- movs r0, 0xA
- bl GetGameStat
- ldr r2, _08142AF0 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0xA]
- movs r3, 0
- ldr r7, _08142AF4 @ =0x0600381a
- ldr r4, _08142AF8 @ =0x0600385a
-_08142AB8:
- lsls r1, r3, 1
- adds r2, r1, r7
- adds r0, r3, 0x3
- strh r0, [r2]
- adds r1, r4
- adds r0, 0x11
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x10
- bls _08142AB8
- ldr r4, _08142AFC @ =gWindowConfig_81E7198
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r1, _08142AF0 @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08142B00 @ =sub_8142B04
- str r1, [r0]
-_08142AEA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142AF0: .4byte gTasks
-_08142AF4: .4byte 0x0600381a
-_08142AF8: .4byte 0x0600385a
-_08142AFC: .4byte gWindowConfig_81E7198
-_08142B00: .4byte sub_8142B04
- thumb_func_end sub_8142A28
-
- thumb_func_start sub_8142B04
-sub_8142B04: @ 8142B04
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r3, _08142BB8 @ =0x0201e000
- movs r5, 0
- ldr r1, _08142BBC @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r6, r1, 0
- ldr r2, _08142BC0 @ =gUnknown_0203931C
- cmp r5, r0
- bge _08142B3E
- adds r1, r0, 0
-_08142B32:
- adds r3, 0x78
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r1
- blt _08142B32
-_08142B3E:
- adds r4, r3, 0
- movs r0, 0
- str r0, [r2]
- mov r5, r8
- lsls r2, r5, 2
- adds r1, r2, r5
- lsls r1, 3
- adds r1, r6
- strh r0, [r1, 0xC]
- strh r0, [r1, 0x10]
- movs r5, 0
- str r2, [sp, 0xC]
- ldr r6, _08142BC4 @ =0x000001ff
- adds r2, r1, 0
-_08142B5A:
- ldrh r1, [r4, 0x8]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08142B6A
- ldrh r0, [r2, 0x10]
- adds r0, 0x1
- strh r0, [r2, 0x10]
-_08142B6A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x14
- cmp r5, 0x5
- bls _08142B5A
- adds r4, r3, 0
- movs r5, 0
- ldr r1, _08142BBC @ =gTasks
- ldr r0, [sp, 0xC]
- add r0, r8
- lsls r7, r0, 3
- adds r6, r7, r1
- str r6, [sp, 0x8]
- adds r1, 0x8
- mov r9, r1
- ldr r0, _08142BC8 @ =gUnknown_0840B564
- mov r10, r0
-_08142B8E:
- ldrh r1, [r4, 0x8]
- ldr r2, _08142BC4 @ =0x000001ff
- adds r0, r2, 0
- ands r0, r1
- adds r6, r1, 0
- cmp r0, 0
- beq _08142C30
- ldr r1, [sp, 0x8]
- movs r2, 0x10
- ldrsh r0, [r1, r2]
- cmp r0, 0x3
- ble _08142BD4
- lsls r1, r5, 3
- ldr r0, _08142BCC @ =gUnknown_0840B534
- adds r0, 0x4
- adds r0, r1, r0
- ldrh r3, [r0]
- ldr r0, _08142BD0 @ =gUnknown_0840B534 + 0x6
- adds r1, r0
- b _08142BE2
- .align 2, 0
-_08142BB8: .4byte 0x0201e000
-_08142BBC: .4byte gTasks
-_08142BC0: .4byte gUnknown_0203931C
-_08142BC4: .4byte 0x000001ff
-_08142BC8: .4byte gUnknown_0840B564
-_08142BCC: .4byte gUnknown_0840B534
-_08142BD0: .4byte gUnknown_0840B534 + 0x6
-_08142BD4:
- lsls r1, r5, 3
- mov r0, r10
- adds r0, 0x4
- adds r0, r1, r0
- ldrh r3, [r0]
- ldr r2, _08142C28 @ =gUnknown_0840B564 + 0x6
- adds r1, r2
-_08142BE2:
- ldrh r2, [r1]
- lsls r0, r6, 23
- lsrs r0, 23
- lsls r1, r3, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- ldr r3, [r4]
- str r3, [sp]
- ldr r3, [r4, 0x4]
- str r3, [sp, 0x4]
- adds r3, r5, 0
- bl sub_81436BC
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08142C2C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r3, [r1, 0x5]
- movs r6, 0xD
- negs r6, r6
- adds r2, r6, 0
- ands r3, r2
- movs r2, 0x4
- orrs r3, r2
- strb r3, [r1, 0x5]
- adds r1, r5, 0x5
- lsls r1, 1
- adds r1, r7
- add r1, r9
- strh r0, [r1]
- b _08142C3C
- .align 2, 0
-_08142C28: .4byte gUnknown_0840B564 + 0x6
-_08142C2C: .4byte gSprites
-_08142C30:
- adds r0, r5, 0x5
- lsls r0, 1
- adds r0, r7
- add r0, r9
- movs r1, 0xFF
- strh r1, [r0]
-_08142C3C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x14
- cmp r5, 0x5
- bls _08142B8E
- ldr r0, _08142CB0 @ =0xffff0000
- ldr r2, _08142CB4 @ =0x0000735f
- movs r1, 0xC
- bl BlendPalettes
- ldr r3, _08142CB8 @ =gStringVar1
- ldr r1, _08142CBC @ =gMenuText_HOFNumber
- adds r0, r3, 0
- bl StringCopy
- adds r3, r0, 0
- movs r5, 0xFC
- strb r5, [r3]
- movs r0, 0x14
- strb r0, [r3, 0x1]
- movs r0, 0x6
- strb r0, [r3, 0x2]
- adds r3, 0x3
- ldr r0, _08142CC0 @ =gTasks
- ldr r4, [sp, 0xC]
- add r4, r8
- lsls r4, 3
- adds r4, r0
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- adds r0, r3, 0
- bl ConvertIntToDecimalString
- adds r3, r0, 0
- strb r5, [r3]
- movs r0, 0x13
- strb r0, [r3, 0x1]
- movs r0, 0xF0
- strb r0, [r3, 0x2]
- movs r0, 0xFF
- strb r0, [r3, 0x3]
- ldr r0, _08142CB8 @ =gStringVar1
- movs r1, 0
- movs r2, 0
- bl MenuPrint
- ldr r0, _08142CC4 @ =sub_8142CC8
- str r0, [r4]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142CB0: .4byte 0xffff0000
-_08142CB4: .4byte 0x0000735f
-_08142CB8: .4byte gStringVar1
-_08142CBC: .4byte gMenuText_HOFNumber
-_08142CC0: .4byte gTasks
-_08142CC4: .4byte sub_8142CC8
- thumb_func_end sub_8142B04
-
- thumb_func_start sub_8142CC8
-sub_8142CC8: @ 8142CC8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08142DD0 @ =0x0201e000
- mov r8, r0
- movs r3, 0
- ldr r1, _08142DD4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- cmp r3, r0
- bge _08142CFE
- adds r1, r0, 0
-_08142CF0:
- movs r0, 0x78
- add r8, r0
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- blt _08142CF0
-_08142CFE:
- movs r3, 0
- lsls r6, r4, 2
- adds r0, r6, r4
- lsls r5, r0, 3
- ldr r1, _08142DD8 @ =gTasks + 0x8
- mov r10, r1
- ldr r2, _08142DDC @ =gSprites
- mov r12, r2
- movs r0, 0xD
- negs r0, r0
- mov r9, r0
- movs r7, 0x4
-_08142D16:
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r5
- add r0, r10
- ldrh r1, [r0]
- cmp r1, 0xFF
- beq _08142D36
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r2, [r0, 0x5]
- mov r1, r9
- ands r1, r2
- orrs r1, r7
- strb r1, [r0, 0x5]
-_08142D36:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _08142D16
- adds r1, r6, r4
- lsls r1, 3
- ldr r2, _08142DD4 @ =gTasks
- adds r5, r1, r2
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- adds r0, 0x5
- lsls r0, 1
- adds r0, r1
- ldr r1, _08142DD4 @ =gTasks
- adds r1, 0x8
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08142DDC @ =gSprites
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x5]
- lsrs r1, 4
- movs r0, 0x80
- lsls r0, 9
- lsls r0, r1
- ldr r1, _08142DE0 @ =0xffff0000
- eors r0, r1
- ldr r2, _08142DE4 @ =gUnknown_0203931C
- str r0, [r2]
- ldr r2, _08142DE8 @ =0x0000735f
- movs r1, 0xC
- bl BlendPalettesUnfaded
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- mov r1, r8
- adds r4, r1, r0
- ldrh r1, [r4, 0x8]
- ldr r0, _08142DEC @ =0x000001ff
- ands r0, r1
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08142DB2
- bl StopCryAndClearCrySongs
- ldrh r0, [r4, 0x8]
- lsls r0, 23
- lsrs r0, 23
- movs r1, 0
- bl PlayCry1
-_08142DB2:
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0xE
- bl sub_8143088
- ldr r0, _08142DF0 @ =sub_8142DF4
- str r0, [r5]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142DD0: .4byte 0x0201e000
-_08142DD4: .4byte gTasks
-_08142DD8: .4byte gTasks + 0x8
-_08142DDC: .4byte gSprites
-_08142DE0: .4byte 0xffff0000
-_08142DE4: .4byte gUnknown_0203931C
-_08142DE8: .4byte 0x0000735f
-_08142DEC: .4byte 0x000001ff
-_08142DF0: .4byte sub_8142DF4
- thumb_func_end sub_8142CC8
-
- thumb_func_start sub_8142DF4
-sub_8142DF4: @ 8142DF4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08142E88 @ =gMain
- ldrh r2, [r1, 0x2E]
- movs r0, 0x1
- ands r0, r2
- adds r3, r1, 0
- cmp r0, 0
- beq _08142EC4
- ldr r7, _08142E8C @ =gTasks
- lsls r0, r6, 2
- adds r1, r0, r6
- lsls r3, r1, 3
- adds r4, r3, r7
- ldrh r2, [r4, 0x8]
- movs r5, 0x8
- ldrsh r1, [r4, r5]
- mov r8, r0
- cmp r1, 0
- beq _08142E98
- subs r0, r2, 0x1
- strh r0, [r4, 0x8]
- movs r5, 0
- adds r7, 0x8
- mov r9, r7
- adds r7, r3, 0
-_08142E30:
- adds r0, r5, 0x5
- lsls r0, 1
- adds r0, r7
- add r0, r9
- ldrb r1, [r0]
- cmp r1, 0xFF
- beq _08142E5E
- ldr r0, _08142E90 @ =gSprites
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r0
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- bl DestroySprite
-_08142E5E:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08142E30
- ldr r0, _08142E8C @ =gTasks
- mov r2, r8
- adds r1, r2, r6
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08142E80
- subs r0, r2, 0x1
- strh r0, [r1, 0xA]
-_08142E80:
- ldr r0, _08142E94 @ =sub_8142B04
- str r0, [r1]
- b _08142F64
- .align 2, 0
-_08142E88: .4byte gMain
-_08142E8C: .4byte gTasks
-_08142E90: .4byte gSprites
-_08142E94: .4byte sub_8142B04
-_08142E98:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _08142EB2
- bl StopCryAndClearCrySongs
- ldr r0, _08142EB8 @ =gMPlay_BGM
- ldr r1, _08142EBC @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_08142EB2:
- ldr r0, _08142EC0 @ =sub_8142F78
- str r0, [r4]
- b _08142F64
- .align 2, 0
-_08142EB8: .4byte gMPlay_BGM
-_08142EBC: .4byte 0x0000ffff
-_08142EC0: .4byte sub_8142F78
-_08142EC4:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _08142F08
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _08142EE6
- bl StopCryAndClearCrySongs
- ldr r0, _08142EF8 @ =gMPlay_BGM
- ldr r1, _08142EFC @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_08142EE6:
- ldr r0, _08142F00 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _08142F04 @ =sub_8142F78
- str r0, [r1]
- b _08142F64
- .align 2, 0
-_08142EF8: .4byte gMPlay_BGM
-_08142EFC: .4byte 0x0000ffff
-_08142F00: .4byte gTasks
-_08142F04: .4byte sub_8142F78
-_08142F08:
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- beq _08142F38
- ldr r0, _08142F30 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xC]
- movs r4, 0xC
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _08142F38
- subs r0, r2, 0x1
- strh r0, [r1, 0xC]
- ldr r0, _08142F34 @ =sub_8142CC8
- str r0, [r1]
- b _08142F64
- .align 2, 0
-_08142F30: .4byte gTasks
-_08142F34: .4byte sub_8142CC8
-_08142F38:
- ldrh r1, [r3, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08142F64
- ldr r1, _08142F70 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r2, r0, r1
- movs r5, 0xC
- ldrsh r1, [r2, r5]
- movs r3, 0x10
- ldrsh r0, [r2, r3]
- subs r0, 0x1
- cmp r1, r0
- bge _08142F64
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- ldr r0, _08142F74 @ =sub_8142CC8
- str r0, [r2]
-_08142F64:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142F70: .4byte gTasks
-_08142F74: .4byte sub_8142CC8
- thumb_func_end sub_8142DF4
-
- thumb_func_start sub_8142F78
-sub_8142F78: @ 8142F78
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08142FB4 @ =gPlttBufferFaded
- ldr r1, _08142FB8 @ =gPlttBufferUnfaded
- movs r2, 0x80
- lsls r2, 2
- bl CpuSet
- ldr r0, _08142FBC @ =0x0201c000
- adds r2, r0, 0
- ldr r1, _08142FC0 @ =gUnknown_0840B57C
- ldm r1!, {r3,r5,r6}
- stm r2!, {r3,r5,r6}
- ldm r1!, {r3,r5}
- stm r2!, {r3,r5}
- bl sub_80C5E38
- ldr r1, _08142FC4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08142FC8 @ =sub_8142FCC
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08142FB4: .4byte gPlttBufferFaded
-_08142FB8: .4byte gPlttBufferUnfaded
-_08142FBC: .4byte 0x0201c000
-_08142FC0: .4byte gUnknown_0840B57C
-_08142FC4: .4byte gTasks
-_08142FC8: .4byte sub_8142FCC
- thumb_func_end sub_8142F78
-
- thumb_func_start sub_8142FCC
-sub_8142FCC: @ 8142FCC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80C5F98
- lsls r0, 24
- cmp r0, 0
- beq _08142FE6
- adds r0, r4, 0
- bl DestroyTask
- bl ReturnFromHallOfFamePC
-_08142FE6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8142FCC
-
- thumb_func_start sub_8142FEC
-sub_8142FEC: @ 8142FEC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08143020 @ =gMenuText_HOFCorrupt
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
- ldr r1, _08143024 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08143028 @ =sub_814302C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143020: .4byte gMenuText_HOFCorrupt
-_08143024: .4byte gTasks
-_08143028: .4byte sub_814302C
- thumb_func_end sub_8142FEC
-
- thumb_func_start sub_814302C
-sub_814302C: @ 814302C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _08143056
- ldr r0, _0814305C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08143056
- ldr r0, _08143060 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08143064 @ =sub_8142F78
- str r0, [r1]
-_08143056:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814305C: .4byte gMain
-_08143060: .4byte gTasks
-_08143064: .4byte sub_8142F78
- thumb_func_end sub_814302C
-
- thumb_func_start sub_8143068
-sub_8143068: @ 8143068
- push {lr}
- lsls r2, r1, 24
- ldr r0, _08143084 @ =gMenuText_WelcomeToHOFAndDexRating
- movs r1, 0x80
- lsls r1, 17
- adds r2, r1
- lsrs r2, 24
- movs r1, 0
- movs r3, 0xF0
- bl sub_8072BD8
- pop {r0}
- bx r0
- .align 2, 0
-_08143084: .4byte gMenuText_WelcomeToHOFAndDexRating
- thumb_func_end sub_8143068
-
- thumb_func_start sub_8143088
-sub_8143088: @ 8143088
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- ldr r7, _08143188 @ =gStringVar1
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x13
- strb r0, [r7, 0x1]
- movs r0, 0x28
- strb r0, [r7, 0x2]
- movs r0, 0xFF
- strb r0, [r7, 0x3]
- mov r0, r9
- ldrh r2, [r0, 0x8]
- ldr r0, _0814318C @ =0x000001ff
- ands r0, r2
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _081430EA
- lsls r0, r2, 23
- lsrs r0, 23
- bl SpeciesToPokedexNum
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _08143190 @ =0x0000ffff
- cmp r6, r0
- beq _081430EA
- ldr r1, _08143194 @ =gOtherText_Number2
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- adds r1, r6, 0
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
-_081430EA:
- ldr r5, _08143188 @ =gStringVar1
- mov r1, r8
- adds r1, 0x4
- lsls r1, 24
- lsrs r1, 24
- mov r4, r10
- adds r4, 0x1
- lsls r2, r4, 24
- lsrs r2, 24
- adds r0, r5, 0
- bl MenuPrint
- adds r7, r5, 0
- movs r3, 0
- mov r1, r9
- ldrb r0, [r1, 0xA]
- str r4, [sp]
- mov r2, r8
- adds r2, 0x9
- str r2, [sp, 0xC]
- mov r6, r10
- adds r6, 0x3
- str r6, [sp, 0x8]
- cmp r0, 0xFF
- beq _0814313A
- mov r2, r9
- adds r2, 0xA
-_08143120:
- adds r1, r7, r3
- adds r0, r2, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x9
- bhi _0814313A
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08143120
-_0814313A:
- adds r7, r3
- movs r2, 0xFF
- strb r2, [r7]
- mov r1, r9
- ldrh r0, [r1, 0x8]
- ldr r1, _0814318C @ =0x000001ff
- ands r1, r0
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bne _08143198
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x13
- strb r0, [r7, 0x1]
- movs r0, 0xA0
- strb r0, [r7, 0x2]
- strb r2, [r7, 0x3]
- ldr r0, _08143188 @ =gStringVar1
- ldr r2, [sp, 0xC]
- lsls r1, r2, 24
- lsrs r1, 24
- ldr r3, [sp]
- lsls r2, r3, 24
- lsrs r2, 24
- bl MenuPrint
- ldr r6, [sp, 0x8]
- lsls r1, r6, 24
- lsrs r1, 24
- mov r3, r10
- adds r3, 0x4
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- movs r2, 0x1D
- bl MenuZeroFillWindowRect
- b _081432E4
- .align 2, 0
-_08143188: .4byte gStringVar1
-_0814318C: .4byte 0x000001ff
-_08143190: .4byte 0x0000ffff
-_08143194: .4byte gOtherText_Number2
-_08143198:
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x13
- strb r0, [r7, 0x1]
- movs r0, 0x3E
- strb r0, [r7, 0x2]
- adds r7, 0x3
- movs r0, 0xBA
- strb r0, [r7]
- adds r7, 0x1
- movs r3, 0
- ldr r2, _08143238 @ =gSpeciesNames
- mov r1, r9
- ldrh r0, [r1, 0x8]
- lsls r0, 23
- lsrs r0, 23
- movs r1, 0xB
- muls r0, r1
- adds r0, r2
- ldrb r0, [r0]
- mov r6, r8
- adds r6, 0x7
- str r6, [sp, 0x4]
- mov r1, r8
- adds r1, 0xD
- str r1, [sp, 0x10]
- cmp r0, 0xFF
- beq _08143204
- adds r5, r2, 0
- movs r4, 0xB
-_081431D4:
- adds r1, r7, r3
- mov r6, r9
- ldrh r0, [r6, 0x8]
- lsls r0, 23
- lsrs r0, 23
- muls r0, r4
- adds r0, r3, r0
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x9
- bhi _08143204
- ldrh r0, [r6, 0x8]
- lsls r0, 23
- lsrs r0, 23
- muls r0, r4
- adds r0, r3, r0
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _081431D4
-_08143204:
- adds r7, r3
- movs r0, 0
- strb r0, [r7]
- adds r7, 0x1
- mov r1, r9
- ldrh r0, [r1, 0x8]
- ldr r1, _0814323C @ =0x000001ff
- ands r1, r0
- cmp r1, 0x20
- beq _0814324A
- cmp r1, 0x1D
- beq _0814324A
- lsls r0, 23
- lsrs r0, 23
- mov r2, r9
- ldr r1, [r2, 0x4]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08143240
- cmp r0, 0xFE
- beq _08143244
- b _0814324A
- .align 2, 0
-_08143238: .4byte gSpeciesNames
-_0814323C: .4byte 0x000001ff
-_08143240:
- movs r0, 0xB5
- b _08143246
-_08143244:
- movs r0, 0xB6
-_08143246:
- strb r0, [r7]
- adds r7, 0x1
-_0814324A:
- movs r4, 0xFC
- strb r4, [r7]
- movs r3, 0x13
- mov r8, r3
- strb r3, [r7, 0x1]
- movs r0, 0xA0
- strb r0, [r7, 0x2]
- movs r6, 0xFF
- mov r10, r6
- strb r6, [r7, 0x3]
- ldr r5, _081432F4 @ =gStringVar1
- ldr r0, [sp, 0xC]
- lsls r1, r0, 24
- lsrs r1, 24
- ldr r3, [sp]
- lsls r2, r3, 24
- lsrs r2, 24
- adds r0, r5, 0
- bl MenuPrint
- mov r6, r9
- ldrb r0, [r6, 0x9]
- lsrs r6, r0, 1
- ldr r1, _081432F8 @ =gOtherText_Level3
- adds r0, r5, 0
- bl StringCopy
- adds r7, r0, 0
- strb r4, [r7]
- movs r0, 0x14
- strb r0, [r7, 0x1]
- movs r0, 0x6
- strb r0, [r7, 0x2]
- adds r7, 0x3
- adds r0, r7, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r7, r0, 0
- strb r4, [r7]
- mov r0, r8
- strb r0, [r7, 0x1]
- movs r0, 0x30
- strb r0, [r7, 0x2]
- mov r1, r10
- strb r1, [r7, 0x3]
- ldr r2, [sp, 0x4]
- lsls r1, r2, 24
- lsrs r1, 24
- ldr r3, [sp, 0x8]
- lsls r4, r3, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r2, r4, 0
- bl MenuPrint
- mov r0, r9
- ldrh r6, [r0]
- ldr r1, _081432FC @ =gOtherText_IDNumber
- adds r0, r5, 0
- bl StringCopy
- adds r7, r0, 0
- adds r1, r6, 0
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- ldr r2, [sp, 0x10]
- lsls r1, r2, 24
- lsrs r1, 24
- adds r0, r5, 0
- adds r2, r4, 0
- bl MenuPrint
-_081432E4:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081432F4: .4byte gStringVar1
-_081432F8: .4byte gOtherText_Level3
-_081432FC: .4byte gOtherText_IDNumber
- thumb_func_end sub_8143088
-
- thumb_func_start sub_8143300
-sub_8143300: @ 8143300
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r5, 24
- lsls r4, 24
- ldr r0, _081433CC @ =gOtherText_Name
- lsrs r1, r5, 24
- mov r8, r1
- movs r2, 0x80
- lsls r2, 17
- adds r5, r2
- lsrs r5, 24
- lsrs r6, r4, 24
- adds r4, r2
- lsrs r4, 24
- adds r1, r5, 0
- adds r2, r4, 0
- bl MenuPrint
- ldr r0, _081433D0 @ =gSaveBlock2
- mov r10, r0
- movs r1, 0xE
- add r8, r1
- mov r2, r8
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- mov r1, r8
- adds r2, r4, 0
- bl MenuPrint_RightAligned
- ldr r0, _081433D4 @ =gOtherText_IDNumber2
- adds r4, r6, 0x3
- lsls r4, 24
- lsrs r4, 24
- adds r1, r5, 0
- adds r2, r4, 0
- bl MenuPrint
- mov r0, r10
- ldrb r1, [r0, 0xA]
- ldrb r0, [r0, 0xB]
- lsls r0, 8
- orrs r1, r0
- ldr r2, _081433D8 @ =gStringVar1
- mov r9, r2
- mov r0, r9
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- mov r0, r9
- mov r1, r8
- adds r2, r4, 0
- bl MenuPrint_RightAligned
- ldr r0, _081433DC @ =gMainMenuString_Time
- adds r6, 0x5
- lsls r6, 24
- lsrs r6, 24
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint
- mov r0, r10
- ldrh r1, [r0, 0xE]
- mov r0, r9
- bl ConvertIntToDecimalString
- adds r2, r0, 0
- movs r1, 0
- strb r1, [r2]
- movs r0, 0xF0
- strb r0, [r2, 0x1]
- strb r1, [r2, 0x2]
- adds r2, 0x3
- mov r0, r10
- ldrb r1, [r0, 0x10]
- adds r0, r2, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r2, r0, 0
- movs r0, 0xFF
- strb r0, [r2]
- mov r0, r9
- mov r1, r8
- adds r2, r6, 0
- bl MenuPrint_RightAligned
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081433CC: .4byte gOtherText_Name
-_081433D0: .4byte gSaveBlock2
-_081433D4: .4byte gOtherText_IDNumber2
-_081433D8: .4byte gStringVar1
-_081433DC: .4byte gMainMenuString_Time
- thumb_func_end sub_8143300
-
- thumb_func_start sub_81433E0
-sub_81433E0: @ 81433E0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x8
- strh r1, [r0]
- adds r0, 0x8
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x8
- strh r1, [r0]
- adds r0, 0xA
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0xA
- strh r1, [r0]
- adds r0, 0xC
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0xC
- strh r1, [r0]
- adds r0, 0xE
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- add r0, sp, 0x4
- mov r8, r0
- ldr r1, _0814354C @ =gHallOfFame_Gfx
- mov r9, r1
- mov r2, sp
- movs r6, 0
- ldr r1, _08143550 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _08143554 @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_08143444:
- strh r6, [r2]
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r5
- subs r4, r5
- cmp r4, r5
- bhi _08143444
- strh r6, [r2]
- mov r2, sp
- str r2, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r4, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0xE0
- lsls r0, 19
- movs r3, 0x80
- lsls r3, 3
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r2, _08143550 @ =0x040000d4
- mov r1, r8
- str r1, [r2]
- str r0, [r2, 0x4]
- lsrs r0, r3, 2
- movs r1, 0x85
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r1, 0xA0
- lsls r1, 19
- mov r0, sp
- strh r4, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- lsrs r3, 1
- movs r0, 0x81
- lsls r0, 24
- orrs r3, r0
- str r3, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r1, 0xC0
- lsls r1, 19
- mov r0, r9
- bl LZ77UnCompVram
- movs r1, 0
- ldr r3, _08143558 @ =0x06003800
- movs r2, 0x1
-_081434B2:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3F
- bls _081434B2
- movs r1, 0
- ldr r5, _0814355C @ =0x02000000
- ldr r3, _08143560 @ =0x06003b80
- movs r2, 0x1
-_081434CA:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xBF
- bls _081434CA
- movs r1, 0
- ldr r4, _08143564 @ =0x06003000
- movs r3, 0x2
- ldr r2, _08143568 @ =0x000003ff
-_081434E2:
- 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 _081434E2
- adds r2, r5, 0
- movs r3, 0x80
- lsls r3, 7
- mov r4, sp
- movs r6, 0
- ldr r1, _08143550 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _08143554 @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_0814350A:
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r5
- subs r3, r5
- cmp r3, r5
- bhi _0814350A
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- ldr r0, _0814356C @ =gHallOfFame_Pal
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814354C: .4byte gHallOfFame_Gfx
-_08143550: .4byte 0x040000d4
-_08143554: .4byte 0x81000800
-_08143558: .4byte 0x06003800
-_0814355C: .4byte 0x02000000
-_08143560: .4byte 0x06003b80
-_08143564: .4byte 0x06003000
-_08143568: .4byte 0x000003ff
-_0814356C: .4byte gHallOfFame_Pal
- thumb_func_end sub_81433E0
-
- thumb_func_start sub_8143570
-sub_8143570: @ 8143570
- push {r4,lr}
- bl remove_some_task
- bl ResetTasks
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _081435A8 @ =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _081435AC @ =gUnknown_0840B514
- bl LoadCompressedObjectPic
- ldr r0, _081435B0 @ =gUnknown_0840B524
- bl LoadCompressedObjectPalette
- ldr r4, _081435B4 @ =gWindowConfig_81E71B4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081435A8: .4byte gReservedSpritePaletteCount
-_081435AC: .4byte gUnknown_0840B514
-_081435B0: .4byte gUnknown_0840B524
-_081435B4: .4byte gWindowConfig_81E71B4
- thumb_func_end sub_8143570
-
- thumb_func_start sub_81435B8
-sub_81435B8: @ 81435B8
- ldr r1, _081435D8 @ =REG_BG1CNT
- movs r2, 0xE0
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- subs r2, 0xFD
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- movs r2, 0xDA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_081435D8: .4byte REG_BG1CNT
- thumb_func_end sub_81435B8
-
- thumb_func_start sub_81435DC
-sub_81435DC: @ 81435DC
- push {r4,lr}
- adds r2, r0, 0
- ldr r1, [r2, 0x20]
- ldr r0, [r2, 0x30]
- cmp r1, r0
- beq _08143632
- ldrh r3, [r2, 0x20]
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- movs r4, 0x30
- ldrsh r1, [r2, r4]
- cmp r0, r1
- bge _081435FC
- adds r0, r3, 0
- adds r0, 0xF
- strh r0, [r2, 0x20]
-_081435FC:
- ldrh r3, [r2, 0x20]
- movs r4, 0x20
- ldrsh r0, [r2, r4]
- cmp r0, r1
- ble _0814360C
- adds r0, r3, 0
- subs r0, 0xF
- strh r0, [r2, 0x20]
-_0814360C:
- ldrh r3, [r2, 0x22]
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- movs r4, 0x32
- ldrsh r1, [r2, r4]
- cmp r0, r1
- bge _08143620
- adds r0, r3, 0
- adds r0, 0xA
- strh r0, [r2, 0x22]
-_08143620:
- ldrh r3, [r2, 0x22]
- movs r4, 0x22
- ldrsh r0, [r2, r4]
- cmp r0, r1
- ble _0814363A
- adds r0, r3, 0
- subs r0, 0xA
- strh r0, [r2, 0x22]
- b _0814363A
-_08143632:
- movs r0, 0x1
- strh r0, [r2, 0x2E]
- ldr r0, _08143640 @ =nullsub_81
- str r0, [r2, 0x1C]
-_0814363A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143640: .4byte nullsub_81
- thumb_func_end sub_81435DC
-
- thumb_func_start nullsub_81
-nullsub_81: @ 8143644
- bx lr
- thumb_func_end nullsub_81
-
- thumb_func_start sub_8143648
-sub_8143648: @ 8143648
- push {r4-r7,lr}
- lsls r1, 24
- ldr r4, _08143670 @ =gUnknown_02024E8C
- adds r3, r4, 0
- ldr r2, _08143674 @ =gUnknown_0840B6B8
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- strh r0, [r4, 0x2]
- ldr r0, _08143678 @ =gUnknown_0840B69C
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- str r0, [r4, 0xC]
- ldr r0, _0814367C @ =gSpriteAnimTable_81E7C64
- str r0, [r4, 0x8]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08143670: .4byte gUnknown_02024E8C
-_08143674: .4byte gUnknown_0840B6B8
-_08143678: .4byte gUnknown_0840B69C
-_0814367C: .4byte gSpriteAnimTable_81E7C64
- thumb_func_end sub_8143648
-
- thumb_func_start sub_8143680
-sub_8143680: @ 8143680
- push {r4-r7,lr}
- lsls r1, 24
- ldr r4, _081436AC @ =gUnknown_02024E8C
- adds r3, r4, 0
- ldr r2, _081436B0 @ =gUnknown_0840B6B8
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- strh r0, [r4, 0x2]
- ldr r0, _081436B4 @ =gUnknown_0840B69C
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- str r0, [r4, 0xC]
- ldr r0, _081436B8 @ =gUnknown_081EC2A4
- ldr r0, [r0]
- str r0, [r4, 0x8]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081436AC: .4byte gUnknown_02024E8C
-_081436B0: .4byte gUnknown_0840B6B8
-_081436B4: .4byte gUnknown_0840B69C
-_081436B8: .4byte gUnknown_081EC2A4
- thumb_func_end sub_8143680
-
- thumb_func_start sub_81436BC
-sub_81436BC: @ 81436BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r6, r0, 0
- mov r9, r1
- mov r10, r2
- mov r8, r3
- ldr r7, [sp, 0x34]
- lsls r6, 16
- lsrs r6, 16
- mov r0, r9
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- mov r1, r10
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- mov r2, r8
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- lsls r0, r6, 3
- ldr r1, _08143790 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08143794 @ =gMonFrontPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08143798 @ =gUnknown_0840B5A0
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r6, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r4, 0x1
- str r4, [sp, 0xC]
- bl LoadSpecialPokePic
- adds r0, r6, 0
- ldr r1, [sp, 0x30]
- adds r2, r7, 0
- bl species_and_otid_get_pal
- lsls r4, r5, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r1, r5, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_8143648
- ldr r0, _0814379C @ =gUnknown_02024E8C
- mov r5, r9
- lsls r5, 16
- asrs r5, 16
- mov r9, r5
- mov r1, r10
- lsls r1, 16
- asrs r1, 16
- mov r10, r1
- movs r3, 0xA
- mov r2, r8
- subs r3, r2
- lsls r3, 24
- lsrs r3, 24
- mov r1, r9
- mov r2, r10
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _081437A0 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r4
- strb r1, [r2, 0x5]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08143790: .4byte gMonFrontPicTable
-_08143794: .4byte gMonFrontPicCoords
-_08143798: .4byte gUnknown_0840B5A0
-_0814379C: .4byte gUnknown_02024E8C
-_081437A0: .4byte gSprites
- thumb_func_end sub_81436BC
-
- thumb_func_start sub_81437A4
-sub_81437A4: @ 81437A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r9, r1
- mov r10, r2
- adds r6, r3, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- lsls r6, 16
- lsrs r6, 16
- lsls r7, r0, 3
- ldr r1, _08143854 @ =gTrainerFrontPicTable
- mov r8, r1
- add r8, r7
- ldr r1, _08143858 @ =gTrainerFrontPicCoords
- lsls r2, r0, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r5, _0814385C @ =gUnknown_0840B5A0
- lsls r4, r6, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp]
- str r0, [sp, 0x4]
- mov r0, r8
- bl DecompressPicFromTable_2
- ldr r0, _08143860 @ =gTrainerFrontPicPaletteTable
- adds r0, r7, r0
- ldr r0, [r0]
- lsls r4, r6, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r1, r6, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8143680
- ldr r0, _08143864 @ =gUnknown_02024E8C
- mov r1, r9
- lsls r1, 16
- asrs r1, 16
- mov r9, r1
- mov r2, r10
- lsls r2, 16
- asrs r2, 16
- mov r10, r2
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08143868 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r4
- strb r1, [r2, 0x5]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08143854: .4byte gTrainerFrontPicTable
-_08143858: .4byte gTrainerFrontPicCoords
-_0814385C: .4byte gUnknown_0840B5A0
-_08143860: .4byte gTrainerFrontPicPaletteTable
-_08143864: .4byte gUnknown_02024E8C
-_08143868: .4byte gSprites
- thumb_func_end sub_81437A4
-
- thumb_func_start sub_814386C
-sub_814386C: @ 814386C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x26]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- cmp r0, 0x78
- ble _08143882
- adds r0, r5, 0
- bl DestroySprite
- b _081438BA
-_08143882:
- adds r0, r1, 0x1
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x26]
- ldrh r4, [r5, 0x2E]
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- ands r0, r1
- adds r0, 0x8
- ldr r1, _081438C0 @ =gSineTable
- lsls r4, 1
- adds r4, r1
- movs r2, 0
- ldrsh r1, [r4, r2]
- muls r0, r1
- cmp r0, 0
- bge _081438B0
- adds r0, 0xFF
-_081438B0:
- asrs r0, 8
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x4
- strh r0, [r5, 0x2E]
-_081438BA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081438C0: .4byte gSineTable
- thumb_func_end sub_814386C
-
- thumb_func_start sub_81438C4
-sub_81438C4: @ 81438C4
- push {r4,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF0
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl Random
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x7
- ands r2, r0
- negs r2, r2
- ldr r0, _08143934 @ =gSpriteTemplate_840B7A4
- lsls r4, 16
- asrs r4, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r4, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08143938 @ =gSprites
- adds r4, r1, r0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x11
- bl __umodsi3
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- bl Random
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0
- beq _0814393C
- movs r0, 0
- b _0814393E
- .align 2, 0
-_08143934: .4byte gSpriteTemplate_840B7A4
-_08143938: .4byte gSprites
-_0814393C:
- movs r0, 0x1
-_0814393E:
- strh r0, [r4, 0x30]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81438C4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/intro_credits_graphics.s b/asm/intro_credits_graphics.s
deleted file mode 100644
index 8d73f6cf6..000000000
--- a/asm/intro_credits_graphics.s
+++ /dev/null
@@ -1,1166 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start load_intro_part2_graphics
-load_intro_part2_graphics: @ 8148B8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08148BE8 @ =gUnknown_0841225C
- ldr r1, _08148BEC @ =0x06004000
- bl LZ77UnCompVram
- ldr r0, _08148BF0 @ =gUnknown_084126DC
- ldr r1, _08148BF4 @ =0x06007800
- bl LZ77UnCompVram
- ldr r0, _08148BF8 @ =gUnknown_084121FC
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- cmp r4, 0
- beq _08148BB4
- cmp r4, 0x1
- beq _08148C14
-_08148BB4:
- ldr r0, _08148BFC @ =gUnknown_084128D8
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148C00 @ =gUnknown_08412EB4
- ldr r1, _08148C04 @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148C08 @ =gUnknown_08412818
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08148C0C @ =gUnknown_08416B54
- bl LoadCompressedObjectPic
- ldr r0, _08148C10 @ =gUnknown_08413184
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149248
- b _08148C46
- .align 2, 0
-_08148BE8: .4byte gUnknown_0841225C
-_08148BEC: .4byte 0x06004000
-_08148BF0: .4byte gUnknown_084126DC
-_08148BF4: .4byte 0x06007800
-_08148BF8: .4byte gUnknown_084121FC
-_08148BFC: .4byte gUnknown_084128D8
-_08148C00: .4byte gUnknown_08412EB4
-_08148C04: .4byte 0x06003000
-_08148C08: .4byte gUnknown_08412818
-_08148C0C: .4byte gUnknown_08416B54
-_08148C10: .4byte gUnknown_08413184
-_08148C14:
- ldr r0, _08148C58 @ =gUnknown_08413340
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148C5C @ =gUnknown_084139C8
- ldr r1, _08148C60 @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148C64 @ =gUnknown_08413300
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148C68 @ =gUnknown_08416BDC
- bl LoadCompressedObjectPic
- ldr r0, _08148C6C @ =gUnknown_08413CCC
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149264
-_08148C46:
- ldr r1, _08148C70 @ =gUnknown_0203935C
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08148C74 @ =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08148C58: .4byte gUnknown_08413340
-_08148C5C: .4byte gUnknown_084139C8
-_08148C60: .4byte 0x06003000
-_08148C64: .4byte gUnknown_08413300
-_08148C68: .4byte gUnknown_08416BDC
-_08148C6C: .4byte gUnknown_08413CCC
-_08148C70: .4byte gUnknown_0203935C
-_08148C74: .4byte gReservedSpritePaletteCount
- thumb_func_end load_intro_part2_graphics
-
- thumb_func_start sub_8148C78
-sub_8148C78: @ 8148C78
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08148CA4 @ =REG_BG3CNT
- ldr r2, _08148CA8 @ =0x00000603
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- adds r2, 0xFF
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _08148CAC @ =0x00000f05
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r2, 0xF2
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08148CA4: .4byte REG_BG3CNT
-_08148CA8: .4byte 0x00000603
-_08148CAC: .4byte 0x00000f05
- thumb_func_end sub_8148C78
-
- thumb_func_start sub_8148CB0
-sub_8148CB0: @ 8148CB0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08148CD4 @ =gUnknown_0841225C
- ldr r1, _08148CD8 @ =0x06004000
- bl LZ77UnCompVram
- ldr r0, _08148CDC @ =gUnknown_084126DC
- ldr r1, _08148CE0 @ =0x06007800
- bl LZ77UnCompVram
- cmp r4, 0x4
- bhi _08148CFC
- lsls r0, r4, 2
- ldr r1, _08148CE4 @ =_08148CE8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08148CD4: .4byte gUnknown_0841225C
-_08148CD8: .4byte 0x06004000
-_08148CDC: .4byte gUnknown_084126DC
-_08148CE0: .4byte 0x06007800
-_08148CE4: .4byte _08148CE8
- .align 2, 0
-_08148CE8:
- .4byte _08148CFC
- .4byte _08148D58
- .4byte _08148DC4
- .4byte _08148DC4
- .4byte _08148E1C
-_08148CFC:
- ldr r0, _08148D34 @ =gUnknown_084121FC
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148D38 @ =gUnknown_084128D8
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148D3C @ =gUnknown_08412EB4
- ldr r1, _08148D40 @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148D44 @ =gUnknown_08412818
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08148D48 @ =gUnknown_08416B54
- bl LoadCompressedObjectPic
- ldr r0, _08148D4C @ =gUnknown_084131C4
- ldr r1, _08148D50 @ =0x06010000
- bl LZ77UnCompVram
- ldr r0, _08148D54 @ =gUnknown_08413184
- b _08148D8E
- .align 2, 0
-_08148D34: .4byte gUnknown_084121FC
-_08148D38: .4byte gUnknown_084128D8
-_08148D3C: .4byte gUnknown_08412EB4
-_08148D40: .4byte 0x06003000
-_08148D44: .4byte gUnknown_08412818
-_08148D48: .4byte gUnknown_08416B54
-_08148D4C: .4byte gUnknown_084131C4
-_08148D50: .4byte 0x06010000
-_08148D54: .4byte gUnknown_08413184
-_08148D58:
- ldr r0, _08148DA0 @ =gUnknown_0841221C
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148DA4 @ =gUnknown_084128D8
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148DA8 @ =gUnknown_08412EB4
- ldr r1, _08148DAC @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148DB0 @ =gUnknown_08412878
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08148DB4 @ =gUnknown_08416B54
- bl LoadCompressedObjectPic
- ldr r0, _08148DB8 @ =gUnknown_084131C4
- ldr r1, _08148DBC @ =0x06010000
- bl LZ77UnCompVram
- ldr r0, _08148DC0 @ =gUnknown_084131A4
-_08148D8E:
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149248
- b _08148E58
- .align 2, 0
-_08148DA0: .4byte gUnknown_0841221C
-_08148DA4: .4byte gUnknown_084128D8
-_08148DA8: .4byte gUnknown_08412EB4
-_08148DAC: .4byte 0x06003000
-_08148DB0: .4byte gUnknown_08412878
-_08148DB4: .4byte gUnknown_08416B54
-_08148DB8: .4byte gUnknown_084131C4
-_08148DBC: .4byte 0x06010000
-_08148DC0: .4byte gUnknown_084131A4
-_08148DC4:
- ldr r0, _08148E04 @ =gUnknown_0841221C
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148E08 @ =gUnknown_08413340
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148E0C @ =gUnknown_084139C8
- ldr r1, _08148E10 @ =0x06003000
- bl LZ77UnCompVram
- ldr r4, _08148E14 @ =gUnknown_08413320
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148E18 @ =gUnknown_08416BDC
- bl LoadCompressedObjectPic
- movs r1, 0x80
- lsls r1, 1
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149264
- b _08148E58
- .align 2, 0
-_08148E04: .4byte gUnknown_0841221C
-_08148E08: .4byte gUnknown_08413340
-_08148E0C: .4byte gUnknown_084139C8
-_08148E10: .4byte 0x06003000
-_08148E14: .4byte gUnknown_08413320
-_08148E18: .4byte gUnknown_08416BDC
-_08148E1C:
- ldr r0, _08148E6C @ =gUnknown_0841223C
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148E70 @ =gUnknown_08413E78
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148E74 @ =gUnknown_08414084
- ldr r1, _08148E78 @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148E7C @ =gUnknown_08413E38
- movs r1, 0
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08148E80 @ =gUnknown_08416C70
- bl LoadCompressedObjectPic
- ldr r0, _08148E84 @ =gUnknown_08414064
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149280
-_08148E58:
- ldr r1, _08148E88 @ =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
- ldr r1, _08148E8C @ =gUnknown_0203935C
- movs r0, 0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08148E6C: .4byte gUnknown_0841223C
-_08148E70: .4byte gUnknown_08413E78
-_08148E74: .4byte gUnknown_08414084
-_08148E78: .4byte 0x06003000
-_08148E7C: .4byte gUnknown_08413E38
-_08148E80: .4byte gUnknown_08416C70
-_08148E84: .4byte gUnknown_08414064
-_08148E88: .4byte gReservedSpritePaletteCount
-_08148E8C: .4byte gUnknown_0203935C
- thumb_func_end sub_8148CB0
-
- thumb_func_start sub_8148E90
-sub_8148E90: @ 8148E90
- ldr r1, _08148EB4 @ =REG_BG3CNT
- ldr r2, _08148EB8 @ =0x00000603
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- adds r2, 0xFF
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _08148EBC @ =0x00000f05
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08148EB4: .4byte REG_BG3CNT
-_08148EB8: .4byte 0x00000603
-_08148EBC: .4byte 0x00000f05
- thumb_func_end sub_8148E90
-
- thumb_func_start sub_8148EC0
-sub_8148EC0: @ 8148EC0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- ldr r1, _08148F34 @ =sub_8148F3C
- mov r9, r1
- mov r0, r9
- movs r1, 0
- str r3, [sp]
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _08148F38 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- strh r5, [r0, 0x8]
- strh r6, [r0, 0xA]
- strh r2, [r0, 0xC]
- strh r2, [r0, 0xE]
- mov r1, r8
- strh r1, [r0, 0x10]
- strh r2, [r0, 0x12]
- strh r2, [r0, 0x14]
- ldr r3, [sp]
- strh r3, [r0, 0x16]
- movs r1, 0x8
- strh r1, [r0, 0x18]
- strh r2, [r0, 0x1A]
- adds r0, r4, 0
- bl _call_via_r9
- adds r0, r4, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08148F34: .4byte sub_8148F3C
-_08148F38: .4byte gTasks
- thumb_func_end sub_8148EC0
-
- thumb_func_start sub_8148F3C
-sub_8148F3C: @ 8148F3C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08148FB4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0xA]
- lsls r4, r0, 16
- adds r6, r1, 0
- cmp r4, 0
- beq _08148F7C
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- lsls r0, 16
- ldrh r1, [r3, 0xE]
- adds r2, r0, r1
- lsrs r0, r4, 12
- subs r2, r0
- asrs r1, r2, 16
- strh r1, [r3, 0xC]
- strh r2, [r3, 0xE]
- ldr r0, _08148FB8 @ =REG_BG1HOFS
- strh r1, [r0]
- ldr r2, _08148FBC @ =REG_BG1VOFS
- ldr r1, _08148FC0 @ =gUnknown_02039358
- ldr r0, _08148FC4 @ =gUnknown_0203935A
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r2]
-_08148F7C:
- ldrh r0, [r3, 0x10]
- lsls r4, r0, 16
- cmp r4, 0
- beq _08148FD8
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- lsls r0, 16
- ldrh r1, [r3, 0x14]
- adds r2, r0, r1
- lsrs r0, r4, 12
- subs r2, r0
- asrs r1, r2, 16
- strh r1, [r3, 0x12]
- strh r2, [r3, 0x14]
- ldr r0, _08148FC8 @ =REG_BG2HOFS
- strh r1, [r0]
- movs r1, 0x8
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _08148FD0
- ldr r2, _08148FCC @ =REG_BG2VOFS
- ldr r1, _08148FC0 @ =gUnknown_02039358
- ldr r0, _08148FC4 @ =gUnknown_0203935A
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r2]
- b _08148FD8
- .align 2, 0
-_08148FB4: .4byte gTasks
-_08148FB8: .4byte REG_BG1HOFS
-_08148FBC: .4byte REG_BG1VOFS
-_08148FC0: .4byte gUnknown_02039358
-_08148FC4: .4byte gUnknown_0203935A
-_08148FC8: .4byte REG_BG2HOFS
-_08148FCC: .4byte REG_BG2VOFS
-_08148FD0:
- ldr r0, _08149010 @ =REG_BG2VOFS
- ldr r1, _08149014 @ =gUnknown_02039358
- ldrh r1, [r1]
- strh r1, [r0]
-_08148FD8:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r6
- ldrh r0, [r3, 0x16]
- lsls r4, r0, 16
- cmp r4, 0
- beq _08149008
- movs r1, 0x18
- ldrsh r0, [r3, r1]
- lsls r0, 16
- ldrh r1, [r3, 0x1A]
- adds r2, r0, r1
- lsrs r0, r4, 12
- subs r2, r0
- asrs r1, r2, 16
- strh r1, [r3, 0x18]
- strh r2, [r3, 0x1A]
- ldr r0, _08149018 @ =REG_BG3HOFS
- strh r1, [r0]
- ldr r1, _0814901C @ =REG_BG3VOFS
- ldr r0, _08149014 @ =gUnknown_02039358
- ldrh r0, [r0]
- strh r0, [r1]
-_08149008:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149010: .4byte REG_BG2VOFS
-_08149014: .4byte gUnknown_02039358
-_08149018: .4byte REG_BG3HOFS
-_0814901C: .4byte REG_BG3VOFS
- thumb_func_end sub_8148F3C
-
- thumb_func_start sub_8149020
-sub_8149020: @ 8149020
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08149100
- cmp r0, 0x1
- ble _08149034
- cmp r0, 0x2
- beq _08149098
-_08149034:
- ldr r0, _08149060 @ =gMain
- ldr r2, [r0, 0x20]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0
- bne _08149100
- ldr r0, _08149064 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08149100
- movs r0, 0x4
- ands r2, r0
- cmp r2, 0
- beq _0814906C
- ldr r2, _08149068 @ =gPlttBufferUnfaded
- ldrh r1, [r2, 0x12]
- mov r0, sp
- strh r1, [r0]
- ldrh r1, [r2, 0x14]
- b _08149076
- .align 2, 0
-_08149060: .4byte gMain
-_08149064: .4byte gPaletteFade
-_08149068: .4byte gPlttBufferUnfaded
-_0814906C:
- ldr r2, _08149094 @ =gPlttBufferUnfaded
- ldrh r1, [r2, 0x14]
- mov r0, sp
- strh r1, [r0]
- ldrh r1, [r2, 0x12]
-_08149076:
- adds r0, 0x2
- strh r1, [r0]
- adds r4, r0, 0
- mov r0, sp
- movs r1, 0x9
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- bl LoadPalette
- b _08149100
- .align 2, 0
-_08149094: .4byte gPlttBufferUnfaded
-_08149098:
- ldr r0, _081490C8 @ =gMain
- ldr r2, [r0, 0x20]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0
- bne _08149100
- ldr r0, _081490CC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08149100
- movs r0, 0x4
- ands r2, r0
- cmp r2, 0
- beq _081490D8
- mov r1, sp
- ldr r2, _081490D0 @ =0x00003d27
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _081490D4 @ =0x00000295
- b _081490E6
- .align 2, 0
-_081490C8: .4byte gMain
-_081490CC: .4byte gPaletteFade
-_081490D0: .4byte 0x00003d27
-_081490D4: .4byte 0x00000295
-_081490D8:
- mov r1, sp
- movs r2, 0xC7
- lsls r2, 2
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _08149108 @ =0x00003d27
-_081490E6:
- adds r0, r2, 0
- strh r0, [r1]
- adds r4, r1, 0
- mov r0, sp
- movs r1, 0xC
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xD
- movs r2, 0x2
- bl LoadPalette
-_08149100:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149108: .4byte 0x00003d27
- thumb_func_end sub_8149020
-
- thumb_func_start sub_814910C
-sub_814910C: @ 814910C
- push {lr}
- adds r2, r0, 0
- ldr r0, _08149124 @ =gUnknown_0203935C
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08149128
- adds r0, r2, 0
- bl DestroySprite
- b _0814916C
- .align 2, 0
-_08149124: .4byte gUnknown_0203935C
-_08149128:
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- lsls r0, 16
- ldrh r1, [r2, 0x32]
- orrs r0, r1
- ldrh r1, [r2, 0x30]
- adds r0, r1
- asrs r1, r0, 16
- strh r1, [r2, 0x20]
- strh r0, [r2, 0x32]
- cmp r1, 0xFF
- ble _08149144
- ldr r0, _08149158 @ =0x0000ffe0
- strh r0, [r2, 0x20]
-_08149144:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _08149164
- ldr r1, _0814915C @ =gUnknown_02039358
- ldr r0, _08149160 @ =gUnknown_0203935A
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- b _08149168
- .align 2, 0
-_08149158: .4byte 0x0000ffe0
-_0814915C: .4byte gUnknown_02039358
-_08149160: .4byte gUnknown_0203935A
-_08149164:
- ldr r0, _08149170 @ =gUnknown_02039358
- ldrh r0, [r0]
-_08149168:
- negs r0, r0
- strh r0, [r2, 0x26]
-_0814916C:
- pop {r0}
- bx r0
- .align 2, 0
-_08149170: .4byte gUnknown_02039358
- thumb_func_end sub_814910C
-
- thumb_func_start sub_8149174
-sub_8149174: @ 8149174
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- movs r7, 0
- cmp r7, r8
- bcs _0814922A
- ldr r0, _0814923C @ =gSprites
- mov r10, r0
- movs r2, 0x3F
- mov r9, r2
-_0814919E:
- lsls r6, r7, 3
- ldr r0, [sp, 0x4]
- adds r6, r0
- ldrb r1, [r6, 0x1]
- ldrb r2, [r6, 0x2]
- ldrb r3, [r6, 0x3]
- ldr r0, _08149240 @ =gSpriteTemplate_8416B3C
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- mov r2, r10
- adds r4, r5, r2
- ldrb r2, [r6]
- lsls r1, r2, 26
- lsrs r1, 30
- lsrs r2, 6
- adds r0, r4, 0
- movs r3, 0
- bl CalcCenterToCornerVec
- ldrb r3, [r4, 0x5]
- movs r0, 0xC
- orrs r3, r0
- strb r3, [r4, 0x5]
- ldrb r1, [r6]
- lsls r1, 26
- lsrs r1, 30
- lsls r1, 6
- ldrb r2, [r4, 0x1]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r6]
- lsrs r1, 6
- lsls r1, 6
- ldrb r2, [r4, 0x3]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0xF
- ands r3, r0
- strb r3, [r4, 0x5]
- ldr r0, _08149244 @ =gSprites + 0x8
- adds r5, r0
- ldr r2, [sp, 0x8]
- str r2, [r5]
- ldrb r1, [r6]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r1, 0
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x2E]
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x32]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, r8
- bcc _0814919E
-_0814922A:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814923C: .4byte gSprites
-_08149240: .4byte gSpriteTemplate_8416B3C
-_08149244: .4byte gSprites + 0x8
- thumb_func_end sub_8149174
-
- thumb_func_start sub_8149248
-sub_8149248: @ 8149248
- push {lr}
- ldr r1, _0814925C @ =gUnknown_08416B94
- ldr r2, _08149260 @ =gSpriteAnimTable_8416B84
- movs r0, 0
- movs r3, 0x9
- bl sub_8149174
- pop {r0}
- bx r0
- .align 2, 0
-_0814925C: .4byte gUnknown_08416B94
-_08149260: .4byte gSpriteAnimTable_8416B84
- thumb_func_end sub_8149248
-
- thumb_func_start sub_8149264
-sub_8149264: @ 8149264
- push {lr}
- ldr r1, _08149278 @ =gUnknown_08416C10
- ldr r2, _0814927C @ =gSpriteAnimTable_8416C04
- movs r0, 0x1
- movs r3, 0xC
- bl sub_8149174
- pop {r0}
- bx r0
- .align 2, 0
-_08149278: .4byte gUnknown_08416C10
-_0814927C: .4byte gSpriteAnimTable_8416C04
- thumb_func_end sub_8149264
-
- thumb_func_start sub_8149280
-sub_8149280: @ 8149280
- push {lr}
- ldr r1, _08149294 @ =gUnknown_08416C8C
- ldr r2, _08149298 @ =gSpriteAnimTable_8416C88
- movs r0, 0x1
- movs r3, 0x6
- bl sub_8149174
- pop {r0}
- bx r0
- .align 2, 0
-_08149294: .4byte gUnknown_08416C8C
-_08149298: .4byte gSpriteAnimTable_8416C88
- thumb_func_end sub_8149280
-
- thumb_func_start nullsub_82
-nullsub_82: @ 814929C
- bx lr
- thumb_func_end nullsub_82
-
- thumb_func_start sub_81492A0
-sub_81492A0: @ 81492A0
- push {r4,lr}
- ldr r4, _0814930C @ =gSprites
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r1, [r1]
- movs r2, 0x3E
- adds r2, r0
- mov r12, r2
- movs r2, 0x4
- ands r2, r1
- mov r1, r12
- ldrb r3, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x20]
- strh r1, [r0, 0x20]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x24]
- strh r1, [r0, 0x24]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x26]
- strh r1, [r0, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814930C: .4byte gSprites
- thumb_func_end sub_81492A0
-
- thumb_func_start intro_create_brendan_sprite
-intro_create_brendan_sprite: @ 8149310
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, _0814935C @ =gSpriteTemplate_8416CDC
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _08149360 @ =gSpriteTemplate_8416D2C
- adds r4, 0x8
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08149364 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strh r6, [r1, 0x2E]
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0814935C: .4byte gSpriteTemplate_8416CDC
-_08149360: .4byte gSpriteTemplate_8416D2C
-_08149364: .4byte gSprites
- thumb_func_end intro_create_brendan_sprite
-
- thumb_func_start intro_create_may_sprite
-intro_create_may_sprite: @ 8149368
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, _081493B4 @ =gSpriteTemplate_8416CF4
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _081493B8 @ =gSpriteTemplate_8416D44
- adds r4, 0x8
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081493BC @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strh r6, [r1, 0x2E]
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081493B4: .4byte gSpriteTemplate_8416CF4
-_081493B8: .4byte gSpriteTemplate_8416D44
-_081493BC: .4byte gSprites
- thumb_func_end intro_create_may_sprite
-
- thumb_func_start nullsub_83
-nullsub_83: @ 81493C0
- bx lr
- thumb_func_end nullsub_83
-
- thumb_func_start sub_81493C4
-sub_81493C4: @ 81493C4
- push {r4,lr}
- ldr r4, _08149420 @ =gSprites
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r1, [r1]
- movs r2, 0x3E
- adds r2, r0
- mov r12, r2
- movs r2, 0x4
- ands r2, r1
- mov r1, r12
- ldrb r3, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x22]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x24]
- strh r1, [r0, 0x24]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x26]
- strh r1, [r0, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149420: .4byte gSprites
- thumb_func_end sub_81493C4
-
- thumb_func_start intro_create_latios_sprite
-intro_create_latios_sprite: @ 8149424
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r2, r0, 0
- adds r5, r1, 0
- ldr r0, _08149490 @ =gSpriteTemplate_8416D7C
- mov r8, r0
- lsls r2, 16
- asrs r4, r2, 16
- ldr r0, _08149494 @ =0xffe00000
- adds r2, r0
- asrs r2, 16
- lsls r5, 16
- asrs r5, 16
- mov r0, r8
- adds r1, r2, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- adds r4, 0x20
- lsls r4, 16
- asrs r4, 16
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08149498 @ =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- strh r6, [r0, 0x2E]
- movs r1, 0x1
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _0814949C @ =sub_81493C4
- str r0, [r4]
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08149490: .4byte gSpriteTemplate_8416D7C
-_08149494: .4byte 0xffe00000
-_08149498: .4byte gSprites
-_0814949C: .4byte sub_81493C4
- thumb_func_end intro_create_latios_sprite
-
- thumb_func_start intro_create_latias_sprite
-intro_create_latias_sprite: @ 81494A0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r2, r0, 0
- adds r5, r1, 0
- ldr r0, _0814950C @ =gSpriteTemplate_8416D94
- mov r8, r0
- lsls r2, 16
- asrs r4, r2, 16
- ldr r0, _08149510 @ =0xffe00000
- adds r2, r0
- asrs r2, 16
- lsls r5, 16
- asrs r5, 16
- mov r0, r8
- adds r1, r2, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- adds r4, 0x20
- lsls r4, 16
- asrs r4, 16
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08149514 @ =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- strh r6, [r0, 0x2E]
- movs r1, 0x1
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _08149518 @ =sub_81493C4
- str r0, [r4]
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0814950C: .4byte gSpriteTemplate_8416D94
-_08149510: .4byte 0xffe00000
-_08149514: .4byte gSprites
-_08149518: .4byte sub_81493C4
- thumb_func_end intro_create_latias_sprite
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/learn_move.s b/asm/learn_move.s
deleted file mode 100644
index 89cd2efb8..000000000
--- a/asm/learn_move.s
+++ /dev/null
@@ -1,2739 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_813265C
-sub_813265C: @ 813265C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_813265C
-
- thumb_func_start sub_8132670
-sub_8132670: @ 8132670
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _08132698 @ =sub_813269C
- movs r1, 0xA
- bl CreateTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08132698: .4byte sub_813269C
- thumb_func_end sub_8132670
-
- thumb_func_start sub_813269C
-sub_813269C: @ 813269C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _081326C8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081326C0
- ldr r0, _081326CC @ =sub_81326D8
- bl SetMainCallback2
- ldr r1, _081326D0 @ =gFieldCallback
- ldr r0, _081326D4 @ =sub_8080990
- str r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_081326C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081326C8: .4byte gPaletteFade
-_081326CC: .4byte sub_81326D8
-_081326D0: .4byte gFieldCallback
-_081326D4: .4byte sub_8080990
- thumb_func_end sub_813269C
-
- thumb_func_start sub_81326D8
-sub_81326D8: @ 81326D8
- push {r4,r5,lr}
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r4, _08132778 @ =gUnknown_030007B0
- ldr r0, _0813277C @ =0x02017000
- str r0, [r4]
- bl sub_81332A0
- ldr r1, [r4]
- ldr r0, _08132780 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- ldr r2, _08132784 @ =0x000002c5
- adds r1, r2
- movs r5, 0
- strb r0, [r1]
- bl sub_8133558
- ldr r0, _08132788 @ =sub_813265C
- bl SetVBlankCallback
- ldr r4, _0813278C @ =gWindowConfig_81E7240
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- ldr r4, _08132790 @ =gWindowConfig_81E6CE4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- ldr r0, _08132794 @ =REG_BG0VOFS
- strh r5, [r0]
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- strh r5, [r0]
- ldr r0, _08132798 @ =gUnknown_08402D80
- bl LoadSpriteSheet
- ldr r0, _0813279C @ =gUnknown_08402D88
- bl LoadSpritePalette
- bl sub_8133358
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r0, _081327A0 @ =sub_8132870
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132778: .4byte gUnknown_030007B0
-_0813277C: .4byte 0x02017000
-_08132780: .4byte gSpecialVar_0x8004
-_08132784: .4byte 0x000002c5
-_08132788: .4byte sub_813265C
-_0813278C: .4byte gWindowConfig_81E7240
-_08132790: .4byte gWindowConfig_81E6CE4
-_08132794: .4byte REG_BG0VOFS
-_08132798: .4byte gUnknown_08402D80
-_0813279C: .4byte gUnknown_08402D88
-_081327A0: .4byte sub_8132870
- thumb_func_end sub_81326D8
-
- thumb_func_start sub_81327A4
-sub_81327A4: @ 81327A4
- push {r4,r5,lr}
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r4, _08132844 @ =gUnknown_030007B0
- ldr r0, _08132848 @ =0x02017000
- str r0, [r4]
- bl sub_8133558
- ldr r1, [r4]
- ldr r0, _0813284C @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- ldr r2, _08132850 @ =0x000002c6
- adds r1, r2
- movs r5, 0
- strb r0, [r1]
- ldr r0, _08132854 @ =sub_813265C
- bl SetVBlankCallback
- ldr r4, _08132858 @ =gWindowConfig_81E7240
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- ldr r4, _0813285C @ =gWindowConfig_81E6CE4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08132860 @ =REG_BG0VOFS
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- adds r0, 0x4
- strh r5, [r0]
- strh r5, [r0]
- ldr r0, _08132864 @ =gUnknown_08402D80
- bl LoadSpriteSheet
- ldr r0, _08132868 @ =gUnknown_08402D88
- bl LoadSpritePalette
- bl sub_8133358
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r0, _0813286C @ =sub_8132870
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132844: .4byte gUnknown_030007B0
-_08132848: .4byte 0x02017000
-_0813284C: .4byte gSpecialVar_0x8005
-_08132850: .4byte 0x000002c6
-_08132854: .4byte sub_813265C
-_08132858: .4byte gWindowConfig_81E7240
-_0813285C: .4byte gWindowConfig_81E6CE4
-_08132860: .4byte REG_BG0VOFS
-_08132864: .4byte gUnknown_08402D80
-_08132868: .4byte gUnknown_08402D88
-_0813286C: .4byte sub_8132870
- thumb_func_end sub_81327A4
-
- thumb_func_start sub_8132870
-sub_8132870: @ 8132870
- push {r4,lr}
- bl sub_8132908
- ldr r4, _081328E0 @ =gUnknown_030007B0
- ldr r1, [r4]
- ldrb r0, [r1, 0x1D]
- cmp r0, 0
- beq _08132896
- movs r0, 0
- strb r0, [r1, 0x1D]
- ldr r0, [r4]
- ldrb r1, [r0, 0x18]
- lsls r1, 1
- adds r1, 0x1
- lsls r1, 27
- lsrs r1, 24
- movs r0, 0x58
- bl sub_814AD7C
-_08132896:
- ldr r1, [r4]
- ldrb r0, [r1, 0x1E]
- cmp r0, 0
- beq _081328A6
- movs r0, 0
- strb r0, [r1, 0x1E]
- bl sub_8133800
-_081328A6:
- ldr r1, [r4]
- ldr r2, _081328E4 @ =0x000002c3
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _081328C8
- adds r2, 0x1
- adds r0, r1, r2
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8133AEC
- ldr r0, [r4]
- ldr r1, _081328E4 @ =0x000002c3
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_081328C8:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081328E0: .4byte gUnknown_030007B0
-_081328E4: .4byte 0x000002c3
- thumb_func_end sub_8132870
-
- thumb_func_start sub_81328E8
-sub_81328E8: @ 81328E8
- push {r4,lr}
- adds r1, r0, 0
- ldr r4, _08132904 @ =gStringVar4
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08132904: .4byte gStringVar4
- thumb_func_end sub_81328E8
-
- thumb_func_start sub_8132908
-sub_8132908: @ 8132908
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r1, _0813292C @ =gUnknown_030007B0
- ldr r0, [r1]
- ldrb r0, [r0]
- adds r7, r1, 0
- cmp r0, 0x21
- bls _08132920
- b _08132FD6
-_08132920:
- lsls r0, 2
- ldr r1, _08132930 @ =_08132934
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813292C: .4byte gUnknown_030007B0
-_08132930: .4byte _08132934
- .align 2, 0
-_08132934:
- .4byte _081329BC
- .4byte _08132A0C
- .4byte _08132A24
- .4byte _08132A2C
- .4byte _08132A60
- .4byte _08132A66
- .4byte _08132A98
- .4byte _08132FD6
- .4byte _08132AAA
- .4byte _08132AD0
- .4byte _08132FD6
- .4byte _08132FD6
- .4byte _08132B74
- .4byte _08132B98
- .4byte _08132DD8
- .4byte _08132DF8
- .4byte _08132BF0
- .4byte _08132C08
- .4byte _08132C2C
- .4byte _08132D40
- .4byte _08132D68
- .4byte _08132DB8
- .4byte _08132DC6
- .4byte _08132FD6
- .4byte _08132C74
- .4byte _08132C8C
- .4byte _08132CB0
- .4byte _08132D0C
- .4byte _08132E18
- .4byte _08132E7C
- .4byte _08132F58
- .4byte _08132F84
- .4byte _08132FA4
- .4byte _08132FBC
-_081329BC:
- ldr r1, [r7]
- ldrb r0, [r1]
- adds r0, 0x1
- movs r4, 0
- strb r0, [r1]
- bl sub_8132FEC
- movs r0, 0
- bl sub_8133030
- bl sub_8133800
- ldr r0, _08132A04 @ =gSprites
- adds r0, 0x64
- movs r1, 0x48
- strh r1, [r0]
- ldr r0, [r7]
- ldr r1, _08132A08 @ =0x000002c3
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- b _08132FD6
- .align 2, 0
-_08132A04: .4byte gSprites
-_08132A08: .4byte 0x000002c3
-_08132A0C:
- ldr r0, _08132A20 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08132A1A
- b _08132FD6
-_08132A1A:
- ldr r1, [r7]
- movs r0, 0x4
- b _08132FD4
- .align 2, 0
-_08132A20: .4byte gPaletteFade
-_08132A24:
- ldr r1, [r7]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
-_08132A2C:
- movs r0, 0
- bl sub_8133030
- bl sub_8133800
- ldr r2, _08132A54 @ =gUnknown_030007B0
- ldr r0, [r2]
- ldr r1, _08132A58 @ =0x000002c3
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _08132A5C @ =gSprites
- adds r0, 0x64
- movs r1, 0x48
- strh r1, [r0]
- b _08132FD6
- .align 2, 0
-_08132A54: .4byte gUnknown_030007B0
-_08132A58: .4byte 0x000002c3
-_08132A5C: .4byte gSprites
-_08132A60:
- bl sub_81330E8
- b _08132A9C
-_08132A66:
- movs r0, 0
- bl sub_8133140
- bl sub_8133800
- ldr r2, _08132A8C @ =gUnknown_030007B0
- ldr r0, [r2]
- ldr r1, _08132A90 @ =0x000002c3
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08132A94 @ =gSprites
- adds r0, 0x64
- movs r1, 0x48
- strh r1, [r0]
- ldr r1, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132A8C: .4byte gUnknown_030007B0
-_08132A90: .4byte 0x000002c3
-_08132A94: .4byte gSprites
-_08132A98:
- bl sub_8133248
-_08132A9C:
- lsls r0, 24
- cmp r0, 0
- beq _08132AA4
- b _08132FD6
-_08132AA4:
- bl sub_813362C
- b _08132FD6
-_08132AAA:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132AB6
- b _08132FD6
-_08132AB6:
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _08132ACC @ =gUnknown_030007B0
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132ACC: .4byte gUnknown_030007B0
-_08132AD0:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _08132B3A
- bl sub_8133CA4
- ldr r4, _08132B1C @ =gUnknown_030007B0
- ldr r2, [r4]
- ldr r1, _08132B20 @ =0x000002c5
- adds r0, r2, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08132B24 @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r2, 0x1B]
- lsls r1, 1
- adds r2, 0x20
- adds r2, r1
- ldrh r1, [r2]
- bl GiveMoveToMon
- lsls r0, 16
- ldr r1, _08132B28 @ =0xffff0000
- cmp r0, r1
- beq _08132B34
- ldr r0, _08132B2C @ =gOtherText_PokeLearnedMove
- bl sub_81328E8
- ldr r1, _08132B30 @ =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
- ldr r1, [r4]
- movs r0, 0x1F
- b _08132FD4
- .align 2, 0
-_08132B1C: .4byte gUnknown_030007B0
-_08132B20: .4byte 0x000002c5
-_08132B24: .4byte gPlayerParty
-_08132B28: .4byte 0xffff0000
-_08132B2C: .4byte gOtherText_PokeLearnedMove
-_08132B30: .4byte gSpecialVar_0x8004
-_08132B34:
- ldr r1, [r4]
- movs r0, 0x10
- b _08132FD4
-_08132B3A:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08132B48
- cmp r1, 0x1
- beq _08132B48
- b _08132FD6
-_08132B48:
- bl sub_8133CA4
- ldr r3, _08132B70 @ =gUnknown_030007B0
- ldr r1, [r3]
- movs r2, 0xB1
- lsls r2, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132B60
- movs r0, 0x3
- strb r0, [r1]
-_08132B60:
- ldr r1, [r3]
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08132B6C
- b _08132FD6
-_08132B6C:
- movs r0, 0x5
- b _08132FD4
- .align 2, 0
-_08132B70: .4byte gUnknown_030007B0
-_08132B74:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132B80
- b _08132FD6
-_08132B80:
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _08132B94 @ =gUnknown_030007B0
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132B94: .4byte gUnknown_030007B0
-_08132B98:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r4, r0, 24
- cmp r4, 0
- bne _08132BB4
- bl sub_8133CA4
- ldr r0, _08132BB0 @ =gSpecialVar_0x8004
- strh r4, [r0]
- b _08132FCE
- .align 2, 0
-_08132BB0: .4byte gSpecialVar_0x8004
-_08132BB4:
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _08132BC2
- cmp r4, 0x1
- beq _08132BC2
- b _08132FD6
-_08132BC2:
- bl sub_8133CA4
- ldr r3, _08132BEC @ =gUnknown_030007B0
- ldr r1, [r3]
- movs r2, 0xB1
- lsls r2, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132BDA
- movs r0, 0x3
- strb r0, [r1]
-_08132BDA:
- ldr r1, [r3]
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08132BE6
- b _08132FD6
-_08132BE6:
- movs r0, 0x5
- b _08132FD4
- .align 2, 0
-_08132BEC: .4byte gUnknown_030007B0
-_08132BF0:
- ldr r0, _08132C00 @ =gOtherText_DeleteOlderMove
- bl sub_81328E8
- ldr r0, _08132C04 @ =gUnknown_030007B0
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132C00: .4byte gOtherText_DeleteOlderMove
-_08132C04: .4byte gUnknown_030007B0
-_08132C08:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132C14
- b _08132FD6
-_08132C14:
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _08132C28 @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0x12
- b _08132FD4
- .align 2, 0
-_08132C28: .4byte gUnknown_030007B0
-_08132C2C:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _08132C54
- bl sub_8133CA4
- ldr r0, _08132C4C @ =gOtherText_WhichMoveToForget
- bl sub_81328E8
- ldr r0, _08132C50 @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0x13
- b _08132FD4
- .align 2, 0
-_08132C4C: .4byte gOtherText_WhichMoveToForget
-_08132C50: .4byte gUnknown_030007B0
-_08132C54:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08132C62
- cmp r1, 0x1
- beq _08132C62
- b _08132FD6
-_08132C62:
- bl sub_8133CA4
- ldr r0, _08132C70 @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0x18
- b _08132FD4
- .align 2, 0
-_08132C70: .4byte gUnknown_030007B0
-_08132C74:
- ldr r0, _08132C84 @ =gOtherText_StopLearningMove
- bl sub_81328E8
- ldr r0, _08132C88 @ =gUnknown_030007B0
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132C84: .4byte gOtherText_StopLearningMove
-_08132C88: .4byte gUnknown_030007B0
-_08132C8C:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132C98
- b _08132FD6
-_08132C98:
- ldr r0, _08132CAC @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0x1A
- strb r0, [r1]
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- b _08132FD6
- .align 2, 0
-_08132CAC: .4byte gUnknown_030007B0
-_08132CB0:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _08132CCC
- bl sub_8133CA4
- ldr r0, _08132CC8 @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0x1B
- b _08132FD4
- .align 2, 0
-_08132CC8: .4byte gUnknown_030007B0
-_08132CCC:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08132CDA
- cmp r1, 0x1
- beq _08132CDA
- b _08132FD6
-_08132CDA:
- bl sub_8133CA4
- ldr r1, _08132D08 @ =gUnknown_030007B0
- ldr r2, [r1]
- movs r3, 0xB1
- lsls r3, 2
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132CF2
- movs r0, 0x3
- strb r0, [r2]
-_08132CF2:
- ldr r2, [r1]
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08132D00
- movs r0, 0x5
- strb r0, [r2]
-_08132D00:
- ldr r1, [r1]
- movs r0, 0x10
- b _08132FD4
- .align 2, 0
-_08132D08: .4byte gUnknown_030007B0
-_08132D0C:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132D18
- b _08132FD6
-_08132D18:
- ldr r3, _08132D3C @ =gUnknown_030007B0
- ldr r1, [r3]
- movs r2, 0xB1
- lsls r2, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132D2C
- movs r0, 0x3
- strb r0, [r1]
-_08132D2C:
- ldr r1, [r3]
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08132D38
- b _08132FD6
-_08132D38:
- movs r0, 0x5
- b _08132FD4
- .align 2, 0
-_08132D3C: .4byte gUnknown_030007B0
-_08132D40:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132D4C
- b _08132FD6
-_08132D4C:
- ldr r0, _08132D64 @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r2, 0
- movs r0, 0x14
- strb r0, [r1]
- subs r0, 0x15
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08132FD6
- .align 2, 0
-_08132D64: .4byte gUnknown_030007B0
-_08132D68:
- ldr r0, _08132DA4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08132D76
- b _08132FD6
-_08132D76:
- ldr r0, _08132DA8 @ =gPlayerParty
- ldr r5, [r7]
- ldr r2, _08132DAC @ =0x000002c5
- adds r1, r5, r2
- ldrb r1, [r1]
- ldr r2, _08132DB0 @ =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08132DB4 @ =sub_81327A4
- ldrb r4, [r5, 0x1B]
- lsls r4, 1
- adds r5, 0x20
- adds r5, r4
- ldrh r4, [r5]
- str r4, [sp]
- bl sub_809D9F0
- ldr r1, [r7]
- movs r0, 0x1C
- b _08132FD4
- .align 2, 0
-_08132DA4: .4byte gPaletteFade
-_08132DA8: .4byte gPlayerParty
-_08132DAC: .4byte 0x000002c5
-_08132DB0: .4byte gPlayerPartyCount
-_08132DB4: .4byte sub_81327A4
-_08132DB8:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132DC4
- b _08132FD6
-_08132DC4:
- b _08132FCE
-_08132DC6:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08132FD6
-_08132DD8:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08132DF4 @ =gUnknown_030007B0
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132DF4: .4byte gUnknown_030007B0
-_08132DF8:
- ldr r0, _08132E10 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08132E06
- b _08132FD6
-_08132E06:
- ldr r0, _08132E14 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- b _08132FD6
- .align 2, 0
-_08132E10: .4byte gPaletteFade
-_08132E14: .4byte c2_exit_to_overworld_2_switch
-_08132E18:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r5, _08132E74 @ =gUnknown_030007B0
- ldr r1, [r5]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl sub_8132FEC
- bl sub_8133800
- ldr r0, [r5]
- movs r4, 0xB1
- lsls r4, 2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132E4E
- movs r0, 0x1
- bl sub_8133030
-_08132E4E:
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08132E66
- ldr r0, _08132E78 @ =gSprites
- adds r0, 0x64
- movs r1, 0x48
- strh r1, [r0]
- movs r0, 0x1
- bl sub_8133140
-_08132E66:
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8133AEC
- b _08132FD6
- .align 2, 0
-_08132E74: .4byte gUnknown_030007B0
-_08132E78: .4byte gSprites
-_08132E7C:
- ldr r0, _08132E9C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08132E8A
- b _08132FD6
-_08132E8A:
- ldr r1, [r7]
- ldr r0, _08132EA0 @ =0x000002c6
- adds r2, r1, r0
- ldrb r0, [r2]
- cmp r0, 0x4
- bne _08132EA4
- movs r0, 0x18
- b _08132FD4
- .align 2, 0
-_08132E9C: .4byte gPaletteFade
-_08132EA0: .4byte 0x000002c6
-_08132EA4:
- ldr r4, _08132F38 @ =0x000002c5
- adds r0, r1, r4
- ldrb r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08132F3C @ =gPlayerParty
- adds r0, r5
- ldrb r1, [r2]
- adds r1, 0xD
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08132F40 @ =gStringVar3
- movs r1, 0xD
- mov r9, r1
- mov r1, r9
- muls r1, r0
- ldr r0, _08132F44 @ =gMoveNames
- mov r8, r0
- add r1, r8
- adds r0, r2, 0
- bl StringCopy
- ldr r1, [r7]
- adds r0, r1, r4
- ldrb r0, [r0]
- muls r0, r6
- adds r0, r5
- ldr r2, _08132F48 @ =0x000002c6
- adds r1, r2
- ldrb r1, [r1]
- bl RemoveMonPPBonus
- ldr r3, [r7]
- adds r4, r3, r4
- ldrb r0, [r4]
- muls r0, r6
- adds r0, r5
- ldrb r2, [r3, 0x1B]
- lsls r2, 1
- adds r1, r3, 0
- adds r1, 0x20
- adds r1, r2
- ldrh r1, [r1]
- ldr r2, _08132F48 @ =0x000002c6
- adds r3, r2
- ldrb r2, [r3]
- bl SetMonMoveSlot
- ldr r0, _08132F4C @ =gStringVar2
- ldr r1, [r7]
- ldrb r2, [r1, 0x1B]
- lsls r2, 1
- adds r1, 0x20
- adds r1, r2
- ldrh r1, [r1]
- mov r2, r9
- muls r2, r1
- adds r1, r2, 0
- add r1, r8
- bl StringCopy
- ldr r0, _08132F50 @ =gOtherText_ForgotMove123
- bl sub_81328E8
- ldr r1, [r7]
- movs r0, 0x1E
- strb r0, [r1]
- ldr r1, _08132F54 @ =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
- b _08132FD6
- .align 2, 0
-_08132F38: .4byte 0x000002c5
-_08132F3C: .4byte gPlayerParty
-_08132F40: .4byte gStringVar3
-_08132F44: .4byte gMoveNames
-_08132F48: .4byte 0x000002c6
-_08132F4C: .4byte gStringVar2
-_08132F50: .4byte gOtherText_ForgotMove123
-_08132F54: .4byte gSpecialVar_0x8004
-_08132F58:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _08132FD6
- ldr r0, _08132F78 @ =gOtherText_ForgotOrDidNotLearnMove / deuOtherText_ForgotAndLearned
- bl sub_81328E8
- ldr r0, _08132F7C @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0x1F
- strb r0, [r1]
- ldr r0, _08132F80 @ =0x0000016f
- bl PlayFanfare
- b _08132FD6
- .align 2, 0
-.ifdef ENGLISH
-_08132F78: .4byte gOtherText_ForgotOrDidNotLearnMove
-.else
-_08132F78: .4byte deuOtherText_ForgotAndLearned
-.endif
-_08132F7C: .4byte gUnknown_030007B0
-_08132F80: .4byte 0x0000016f
-_08132F84:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _08132FD6
- ldr r0, _08132F9C @ =0x0000016f
- bl PlayFanfare
- ldr r0, _08132FA0 @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0x20
- b _08132FD4
- .align 2, 0
-_08132F9C: .4byte 0x0000016f
-_08132FA0: .4byte gUnknown_030007B0
-_08132FA4:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08132FD6
- ldr r0, _08132FB8 @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0x21
- b _08132FD4
- .align 2, 0
-_08132FB8: .4byte gUnknown_030007B0
-_08132FBC:
- ldr r0, _08132FE4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08132FD6
- movs r0, 0x5
- bl PlaySE
-_08132FCE:
- ldr r0, _08132FE8 @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0xE
-_08132FD4:
- strb r0, [r1]
-_08132FD6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08132FE4: .4byte gMain
-_08132FE8: .4byte gUnknown_030007B0
- thumb_func_end sub_8132908
-
- thumb_func_start sub_8132FEC
-sub_8132FEC: @ 8132FEC
- push {r4-r6,lr}
- ldr r0, _08133024 @ =gWindowConfig_81E7240
- bl BasicInitMenuWindow
- movs r5, 0
- ldr r4, _08133028 @ =gUnknown_08402CF8
- adds r6, r4, 0
-_08132FFA:
- lsls r3, r5, 2
- ldrb r0, [r4]
- adds r1, r6, 0x1
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r6, 0x2
- adds r3, r2
- ldrb r2, [r3]
- ldrb r3, [r4, 0x3]
- bl MenuDrawTextWindow
- adds r4, 0x4
- adds r5, 0x1
- cmp r5, 0x3
- bls _08132FFA
- ldr r0, _0813302C @ =gWindowConfig_81E6CE4
- bl BasicInitMenuWindow
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08133024: .4byte gWindowConfig_81E7240
-_08133028: .4byte gUnknown_08402CF8
-_0813302C: .4byte gWindowConfig_81E6CE4
- thumb_func_end sub_8132FEC
-
- thumb_func_start sub_8133030
-sub_8133030: @ 8133030
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, _081330D4 @ =gSprites
- ldr r5, _081330D8 @ =gUnknown_030007B0
- ldr r0, [r5]
- ldrb r0, [r0, 0x3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r2, 0
- ldr r6, _081330DC @ =gUnknown_08402D08
- movs r3, 0x4
-_08133070:
- ldr r0, [r5]
- adds r0, r2
- ldrb r1, [r0, 0x7]
- 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]
- adds r2, 0x1
- cmp r2, 0xF
- ble _08133070
- ldr r0, [r6]
- cmp r0, 0
- beq _081330B4
- ldr r5, _081330E0 @ =gTileBuffer
- adds r4, r6, 0
-_08133096:
- ldr r1, [r4]
- adds r0, r5, 0
- movs r2, 0x40
- movs r3, 0x2
- bl sub_8072C74
- ldrb r1, [r4, 0x4]
- ldrb r2, [r4, 0x5]
- adds r0, r5, 0
- bl MenuPrint
- adds r4, 0x8
- ldr r0, [r4]
- cmp r0, 0
- bne _08133096
-_081330B4:
- cmp r7, 0
- bne _081330CC
- ldr r0, _081330E4 @ =gOtherText_TeachWhichMove
- movs r1, 0x20
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x18
- movs r2, 0x78
- movs r3, 0xC0
- bl sub_8072AB0
-_081330CC:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081330D4: .4byte gSprites
-_081330D8: .4byte gUnknown_030007B0
-_081330DC: .4byte gUnknown_08402D08
-_081330E0: .4byte gTileBuffer
-_081330E4: .4byte gOtherText_TeachWhichMove
- thumb_func_end sub_8133030
-
- thumb_func_start sub_81330E8
-sub_81330E8: @ 81330E8
- push {r4,lr}
- ldr r0, _08133134 @ =gMain
- ldrh r2, [r0, 0x2E]
- movs r1, 0x30
- ands r1, r2
- negs r0, r1
- orrs r0, r1
- lsrs r4, r0, 31
- ldr r0, _08133138 @ =gSaveBlock2
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0813310C
- movs r0, 0xC0
- lsls r0, 2
- ands r0, r2
- cmp r0, 0
- beq _0813310C
- adds r4, 0x1
-_0813310C:
- cmp r4, 0
- beq _0813312A
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0813313C @ =gUnknown_030007B0
- ldr r1, [r2]
- movs r0, 0x5
- strb r0, [r1]
- ldr r0, [r2]
- movs r1, 0xB1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_0813312A:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08133134: .4byte gMain
-_08133138: .4byte gSaveBlock2
-_0813313C: .4byte gUnknown_030007B0
- thumb_func_end sub_81330E8
-
- thumb_func_start sub_8133140
-sub_8133140: @ 8133140
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- ldr r4, _08133234 @ =gSprites
- ldr r5, _08133238 @ =gUnknown_030007B0
- ldr r0, [r5]
- ldrb r0, [r0, 0x3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r3, 0x5
- negs r3, r3
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- adds r1, r3, 0
- ands r1, r2
- strb r1, [r0]
- movs r6, 0
- ldr r7, _0813323C @ =gUnknown_08402D08
-_0813318A:
- ldr r0, [r5]
- adds r0, r6
- ldrb r0, [r0, 0x7]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0xF
- ble _0813318A
- movs r6, 0
- ldr r0, [r7]
- cmp r0, 0
- beq _08133208
- mov r9, r7
- mov r10, r6
- movs r0, 0x24
- add r0, r9
- mov r8, r0
-_081331BA:
- mov r0, r9
- adds r0, 0x20
- add r0, r10
- ldr r1, [r0]
- ldr r0, _08133240 @ =gTileBuffer
- movs r2, 0x40
- movs r3, 0x2
- bl sub_8072C74
- mov r0, r8
- ldrb r5, [r0]
- ldrb r4, [r0, 0x1]
- ldr r0, _08133240 @ =gTileBuffer
- adds r1, r5, 0
- adds r2, r4, 0
- bl MenuPrint
- cmp r6, 0
- beq _081331F8
- adds r1, r4, 0x2
- lsls r1, 24
- lsrs r1, 24
- adds r2, r5, 0x7
- lsls r2, 24
- lsrs r2, 24
- adds r3, r4, 0x3
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- bl MenuZeroFillWindowRect
-_081331F8:
- movs r0, 0x8
- add r10, r0
- add r8, r0
- adds r7, 0x8
- adds r6, 0x1
- ldr r0, [r7]
- cmp r0, 0
- bne _081331BA
-_08133208:
- ldr r0, [sp, 0x8]
- cmp r0, 0
- bne _08133222
- ldr r0, _08133244 @ =gOtherText_TeachWhichMove
- movs r1, 0x20
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x18
- movs r2, 0x78
- movs r3, 0xC0
- bl sub_8072AB0
-_08133222:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08133234: .4byte gSprites
-_08133238: .4byte gUnknown_030007B0
-_0813323C: .4byte gUnknown_08402D08
-_08133240: .4byte gTileBuffer
-_08133244: .4byte gOtherText_TeachWhichMove
- thumb_func_end sub_8133140
-
- thumb_func_start sub_8133248
-sub_8133248: @ 8133248
- push {r4,lr}
- ldr r0, _08133294 @ =gMain
- ldrh r2, [r0, 0x2E]
- movs r1, 0x30
- ands r1, r2
- negs r0, r1
- orrs r0, r1
- lsrs r4, r0, 31
- ldr r0, _08133298 @ =gSaveBlock2
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0813326C
- movs r0, 0xC0
- lsls r0, 2
- ands r0, r2
- cmp r0, 0
- beq _0813326C
- adds r4, 0x1
-_0813326C:
- cmp r4, 0
- beq _0813328A
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0813329C @ =gUnknown_030007B0
- ldr r1, [r2]
- movs r3, 0
- movs r0, 0x3
- strb r0, [r1]
- ldr r0, [r2]
- movs r1, 0xB1
- lsls r1, 2
- adds r0, r1
- strb r3, [r0]
-_0813328A:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08133294: .4byte gMain
-_08133298: .4byte gSaveBlock2
-_0813329C: .4byte gUnknown_030007B0
- thumb_func_end sub_8133248
-
- thumb_func_start sub_81332A0
-sub_81332A0: @ 81332A0
- push {r4,lr}
- ldr r2, _081332F8 @ =gUnknown_030007B0
- ldr r0, [r2]
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0, 0x2]
- ldr r0, [r2]
- strb r1, [r0, 0x19]
- ldr r0, [r2]
- strb r1, [r0, 0x18]
- ldr r0, [r2]
- strb r1, [r0, 0x1C]
- ldr r0, [r2]
- strb r1, [r0, 0x1A]
- ldr r0, [r2]
- strb r1, [r0, 0x1B]
- ldr r0, [r2]
- strb r1, [r0, 0x1D]
- ldr r0, [r2]
- strb r1, [r0, 0x1E]
- ldr r0, [r2]
- ldr r3, _081332FC @ =0x000002c3
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r2]
- adds r3, 0x1
- adds r0, r3
- strb r1, [r0]
- movs r3, 0
- adds r4, r2, 0
- movs r2, 0
-_081332E0:
- ldr r0, [r4]
- lsls r1, r3, 1
- adds r0, 0x20
- adds r0, r1
- strh r2, [r0]
- adds r3, 0x1
- cmp r3, 0x13
- ble _081332E0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081332F8: .4byte gUnknown_030007B0
-_081332FC: .4byte 0x000002c3
- thumb_func_end sub_81332A0
-
- thumb_func_start sub_8133300
-sub_8133300: @ 8133300
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 1
- movs r0, 0xFF
- ands r1, r0
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- beq _08133324
- cmp r0, 0x1
- ble _0813334A
- cmp r0, 0x2
- beq _08133338
- b _0813334A
-_08133324:
- adds r0, r1, 0
- movs r1, 0x3
- bl Sin
- ldrh r1, [r4, 0x32]
- adds r2, r0, 0
- muls r2, r1
- adds r0, r2, 0
- strh r0, [r4, 0x24]
- b _0813334A
-_08133338:
- adds r0, r1, 0
- movs r1, 0x1
- bl Sin
- ldrh r1, [r4, 0x32]
- adds r2, r0, 0
- muls r2, r1
- adds r0, r2, 0
- strh r0, [r4, 0x26]
-_0813334A:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8133300
-
- thumb_func_start sub_8133358
-sub_8133358: @ 8133358
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r6, _0813353C @ =gSpriteTemplate_8402D90
- adds r0, r6, 0
- movs r1, 0x8
- movs r2, 0x10
- movs r3, 0
- bl CreateSprite
- ldr r4, _08133540 @ =gUnknown_030007B0
- ldr r1, [r4]
- strb r0, [r1, 0x3]
- ldr r5, _08133544 @ =gSprites
- ldr r2, [r4]
- ldrb r1, [r2, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- mov r8, r1
- mov r1, r8
- strh r1, [r0, 0x2E]
- ldrb r1, [r2, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08133548 @ =0x0000ffff
- strh r1, [r0, 0x32]
- adds r0, r6, 0
- movs r1, 0x48
- movs r2, 0x10
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- strb r0, [r1, 0x4]
- ldr r0, [r4]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r2, [r4]
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x2E]
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldr r0, _0813354C @ =gSpriteTemplate_8402DC0
- mov r9, r0
- movs r1, 0xA0
- movs r2, 0x4
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- strb r0, [r1, 0x5]
- ldr r0, [r4]
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r2, [r4]
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r6, 0x2
- strh r6, [r0, 0x2E]
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x32]
- mov r0, r9
- movs r1, 0xA0
- movs r2, 0x3C
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- strb r0, [r1, 0x6]
- ldr r2, [r4]
- ldrb r1, [r2, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r2, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- movs r5, 0
- ldr r6, _08133550 @ =gSpriteTemplate_8402E08
-_0813344E:
- adds r2, r5, 0
- cmp r5, 0
- bge _08133456
- adds r2, r5, 0x3
-_08133456:
- asrs r2, 2
- lsls r1, r2, 2
- subs r1, r5, r1
- lsls r1, 19
- movs r0, 0xE0
- lsls r0, 13
- adds r1, r0
- asrs r1, 16
- lsls r2, 19
- movs r0, 0xD0
- lsls r0, 14
- adds r2, r0
- asrs r2, 16
- adds r0, r6, 0
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- adds r2, r5, 0x4
- adds r1, 0x3
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x3
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08133544 @ =gSprites
- adds r0, r1
- movs r1, 0x2
- bl StartSpriteAnim
- adds r5, 0x1
- cmp r5, 0x7
- ble _0813344E
- movs r5, 0
- ldr r7, _08133550 @ =gSpriteTemplate_8402E08
- ldr r6, _08133540 @ =gUnknown_030007B0
-_081334A6:
- adds r2, r5, 0
- cmp r5, 0
- bge _081334AE
- adds r2, r5, 0x3
-_081334AE:
- asrs r2, 2
- lsls r1, r2, 2
- subs r1, r5, r1
- lsls r1, 19
- movs r0, 0xE0
- lsls r0, 13
- adds r1, r0
- asrs r1, 16
- lsls r2, 19
- movs r0, 0xB8
- lsls r0, 15
- adds r2, r0
- asrs r2, 16
- adds r0, r7, 0
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- adds r2, r5, 0
- adds r2, 0xC
- adds r1, 0x3
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x3
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08133544 @ =gSprites
- adds r0, r4
- movs r1, 0x2
- bl StartSpriteAnim
- adds r5, 0x1
- cmp r5, 0x7
- ble _081334A6
- movs r5, 0
- ldr r3, _08133540 @ =gUnknown_030007B0
- movs r2, 0x4
-_08133500:
- ldr r0, [r3]
- adds r0, 0x3
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r5, 0x1
- cmp r5, 0x13
- ble _08133500
- ldr r1, _08133548 @ =0x0000ffff
- ldr r3, _08133554 @ =0x00002d9f
- movs r0, 0x12
- str r0, [sp]
- movs r0, 0x10
- movs r2, 0xC
- bl CreateBlendedOutlineCursor
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813353C: .4byte gSpriteTemplate_8402D90
-_08133540: .4byte gUnknown_030007B0
-_08133544: .4byte gSprites
-_08133548: .4byte 0x0000ffff
-_0813354C: .4byte gSpriteTemplate_8402DC0
-_08133550: .4byte gSpriteTemplate_8402E08
-_08133554: .4byte 0x00002d9f
- thumb_func_end sub_8133358
-
- thumb_func_start sub_8133558
-sub_8133558: @ 8133558
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r5, _081335F4 @ =gUnknown_030007B0
- ldr r1, [r5]
- ldr r2, _081335F8 @ =0x000002c5
- adds r0, r1, r2
- ldrb r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _081335FC @ =gPlayerParty
- adds r0, r2
- adds r1, 0x20
- bl GetMoveRelearnerMoves
- ldr r1, [r5]
- strb r0, [r1, 0x1A]
- movs r4, 0
- ldr r0, [r5]
- ldrb r0, [r0, 0x1A]
- cmp r4, r0
- bge _081335AA
- adds r6, r5, 0
- movs r5, 0x52
-_08133586:
- lsls r2, r4, 1
- ldr r1, [r6]
- adds r0, r1, r5
- adds r1, 0x20
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _08133600 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- adds r5, 0x19
- adds r4, 0x1
- ldr r0, [r6]
- ldrb r0, [r0, 0x1A]
- cmp r4, r0
- blt _08133586
-_081335AA:
- ldr r4, _081335F4 @ =gUnknown_030007B0
- ldr r0, [r4]
- ldr r1, _081335F8 @ =0x000002c5
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081335FC @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- ldr r0, _08133604 @ =gStringVar1
- mov r1, sp
- bl StringCopy10
- ldr r0, [r4]
- ldrb r2, [r0, 0x1A]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 3
- adds r1, r2
- adds r1, 0x52
- adds r0, r1
- ldr r1, _08133608 @ =gUnknownText_Exit
- bl StringCopy
- ldr r1, [r4]
- ldrb r0, [r1, 0x1A]
- adds r0, 0x1
- strb r0, [r1, 0x1A]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081335F4: .4byte gUnknown_030007B0
-_081335F8: .4byte 0x000002c5
-_081335FC: .4byte gPlayerParty
-_08133600: .4byte gMoveNames
-_08133604: .4byte gStringVar1
-_08133608: .4byte gUnknownText_Exit
- thumb_func_end sub_8133558
-
- thumb_func_start sub_813360C
-sub_813360C: @ 813360C
- lsls r0, 24
- ldr r3, _08133628 @ =gUnknown_030007B0
- ldr r2, [r3]
- ldrb r1, [r2, 0x18]
- strb r1, [r2, 0x1C]
- ldr r1, [r3]
- lsrs r0, 24
- ldrb r2, [r1, 0x18]
- adds r0, r2
- strb r0, [r1, 0x18]
- ldr r1, [r3]
- movs r0, 0x1
- strb r0, [r1, 0x1D]
- bx lr
- .align 2, 0
-_08133628: .4byte gUnknown_030007B0
- thumb_func_end sub_813360C
-
- thumb_func_start sub_813362C
-sub_813362C: @ 813362C
- push {r4,r5,lr}
- ldr r2, _08133670 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08133688
- ldr r4, _08133674 @ =gUnknown_030007B0
- ldr r0, [r4]
- ldrb r0, [r0, 0x1B]
- cmp r0, 0
- bne _08133646
- b _08133796
-_08133646:
- movs r0, 0x5
- bl PlaySE
- ldr r1, [r4]
- ldrb r0, [r1, 0x1B]
- subs r0, 0x1
- strb r0, [r1, 0x1B]
- ldr r0, [r4]
- ldr r1, _08133678 @ =0x000002c3
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r4]
- ldrb r0, [r1, 0x18]
- cmp r0, 0
- beq _0813367C
- movs r0, 0x1
- negs r0, r0
- bl sub_813360C
- b _08133796
- .align 2, 0
-_08133670: .4byte gMain
-_08133674: .4byte gUnknown_030007B0
-_08133678: .4byte 0x000002c3
-_0813367C:
- ldrb r0, [r1, 0x19]
- cmp r0, 0
- bne _08133684
- b _08133796
-_08133684:
- subs r0, 0x1
- b _081336DC
-_08133688:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081336E8
- ldr r4, _081336C8 @ =gUnknown_030007B0
- ldr r0, [r4]
- ldrb r1, [r0, 0x1B]
- ldrb r0, [r0, 0x1A]
- subs r0, 0x1
- cmp r1, r0
- blt _081336A0
- b _08133796
-_081336A0:
- movs r0, 0x5
- bl PlaySE
- ldr r1, [r4]
- ldrb r0, [r1, 0x1B]
- adds r0, 0x1
- strb r0, [r1, 0x1B]
- ldr r0, [r4]
- ldr r3, _081336CC @ =0x000002c3
- adds r0, r3
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r4]
- ldrb r0, [r1, 0x18]
- cmp r0, 0x2
- beq _081336D0
- movs r0, 0x1
- bl sub_813360C
- b _08133796
- .align 2, 0
-_081336C8: .4byte gUnknown_030007B0
-_081336CC: .4byte 0x000002c3
-_081336D0:
- ldrb r2, [r1, 0x19]
- ldrb r0, [r1, 0x1A]
- subs r0, 0x3
- cmp r2, r0
- beq _08133796
- adds r0, r2, 0x1
-_081336DC:
- strb r0, [r1, 0x19]
- ldr r1, [r4]
- ldrb r0, [r1, 0x1E]
- adds r0, 0x1
- strb r0, [r1, 0x1E]
- b _08133796
-_081336E8:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813376C
- movs r0, 0x5
- bl PlaySE
- ldr r5, _08133738 @ =gUnknown_030007B0
- ldr r2, [r5]
- ldrb r1, [r2, 0x1B]
- ldrb r0, [r2, 0x1A]
- subs r0, 0x1
- cmp r1, r0
- beq _08133748
- movs r0, 0x8
- strb r0, [r2]
- ldr r0, _0813373C @ =gStringVar2
- ldr r1, [r5]
- ldrb r3, [r1, 0x1B]
- lsls r2, r3, 1
- adds r2, r3
- lsls r2, 3
- adds r2, r3
- adds r2, 0x52
- adds r1, r2
- bl StringCopy
- ldr r4, _08133740 @ =gStringVar4
- ldr r1, _08133744 @ =gOtherText_TeachSpecificMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
- b _08133796
- .align 2, 0
-_08133738: .4byte gUnknown_030007B0
-_0813373C: .4byte gStringVar2
-_08133740: .4byte gStringVar4
-_08133744: .4byte gOtherText_TeachSpecificMove
-_08133748:
- ldr r4, _08133764 @ =gStringVar4
- ldr r1, _08133768 @ =gOtherText_GiveUpTeachingMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
- ldr r1, [r5]
- movs r0, 0xC
- strb r0, [r1]
- b _08133796
- .align 2, 0
-_08133764: .4byte gStringVar4
-_08133768: .4byte gOtherText_GiveUpTeachingMove
-_0813376C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08133796
- movs r0, 0x5
- bl PlaySE
- ldr r0, _081337D4 @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0xC
- strb r0, [r1]
- ldr r4, _081337D8 @ =gStringVar4
- ldr r1, _081337DC @ =gOtherText_GiveUpTeachingMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
-_08133796:
- ldr r0, _081337D4 @ =gUnknown_030007B0
- ldr r4, [r0]
- ldrb r0, [r4, 0x1A]
- cmp r0, 0x3
- bls _081337F8
- ldr r3, _081337E0 @ =gSprites
- adds r5, r3, 0
- adds r5, 0xC6
- ldrb r0, [r5]
- movs r1, 0x5
- negs r1, r1
- adds r2, r1, 0
- ands r2, r0
- strb r2, [r5]
- movs r0, 0x85
- lsls r0, 1
- adds r0, r3
- mov r12, r0
- ldrb r0, [r0]
- adds r3, r1, 0
- ands r3, r0
- mov r1, r12
- strb r3, [r1]
- ldrb r0, [r4, 0x19]
- cmp r0, 0
- bne _081337E4
- movs r1, 0x4
- adds r0, r2, 0
- orrs r0, r1
- strb r0, [r5]
- b _081337F8
- .align 2, 0
-_081337D4: .4byte gUnknown_030007B0
-_081337D8: .4byte gStringVar4
-_081337DC: .4byte gOtherText_GiveUpTeachingMove
-_081337E0: .4byte gSprites
-_081337E4:
- ldrb r1, [r4, 0x19]
- ldrb r0, [r4, 0x1A]
- subs r0, 0x3
- cmp r1, r0
- bne _081337F8
- movs r1, 0x4
- adds r0, r3, 0
- orrs r0, r1
- mov r3, r12
- strb r0, [r3]
-_081337F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813362C
-
- thumb_func_start sub_8133800
-sub_8133800: @ 8133800
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _08133834 @ =gUnknown_030007B0
- ldr r0, [r1]
- ldrb r6, [r0, 0x19]
- ldr r3, _08133838 @ =gTileBuffer
- mov r10, r1
- ldr r0, _0813383C @ =gBattleMoves
- mov r9, r0
- movs r1, 0x2
- mov r8, r1
-_0813381C:
- mov r4, r10
- ldr r2, [r4]
- ldrb r0, [r2, 0x1A]
- cmp r6, r0
- bcc _08133844
- adds r0, r3, 0
- ldr r1, _08133840 @ =gEmptyString_81E72B0
- movs r2, 0x90
- movs r3, 0
- bl sub_8072C74
- b _081338FA
- .align 2, 0
-_08133834: .4byte gUnknown_030007B0
-_08133838: .4byte gTileBuffer
-_0813383C: .4byte gBattleMoves
-_08133840: .4byte gEmptyString_81E72B0
-_08133844:
- ldrb r0, [r2, 0x1A]
- subs r0, 0x1
- cmp r6, r0
- bne _08133860
- adds r0, r3, 0
- ldr r1, _0813385C @ =gUnknownText_Exit
- movs r2, 0x90
- movs r3, 0
- bl sub_8072C74
- b _081338FA
- .align 2, 0
-_0813385C: .4byte gUnknownText_Exit
-_08133860:
- lsls r1, r6, 1
- adds r0, r2, 0
- adds r0, 0x20
- adds r0, r1
- ldrh r5, [r0]
- movs r4, 0xB1
- lsls r4, 2
- adds r0, r2, r4
- ldrb r0, [r0]
- adds r7, r1, 0
- cmp r0, 0
- beq _081338A4
- ldr r1, _0813389C @ =gContestMoves
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 27
- ldr r1, _081338A0 @ =gUnknown_083CAF70
- adds r0, r1
- ldr r1, [r0]
- adds r0, r3, 0
- movs r2, 0x27
- movs r3, 0
- bl sub_8072C74
- adds r3, r0, 0
- lsls r4, r5, 1
- b _081338C2
- .align 2, 0
-_0813389C: .4byte gContestMoves
-_081338A0: .4byte gUnknown_083CAF70
-_081338A4:
- lsls r4, r5, 1
- adds r0, r4, r5
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x2]
- lsls r1, r0, 3
- subs r1, r0
- ldr r0, _08133938 @ =gTypeNames
- adds r1, r0
- adds r0, r3, 0
- movs r2, 0x27
- movs r3, 0
- bl sub_8072C74
- adds r3, r0, 0
-_081338C2:
- adds r0, r7, r6
- lsls r0, 3
- adds r0, r6
- adds r0, 0x52
- mov r2, r10
- ldr r1, [r2]
- adds r1, r0
- adds r0, r3, 0
- movs r2, 0x72
- movs r3, 0
- bl sub_8072C74
- adds r3, r0, 0
- movs r0, 0xCA
- strb r0, [r3]
- strb r0, [r3, 0x1]
- movs r0, 0xBA
- strb r0, [r3, 0x2]
- adds r3, 0x3
- adds r0, r4, r5
- lsls r0, 2
- add r0, r9
- ldrb r1, [r0, 0x4]
- adds r0, r3, 0
- movs r2, 0x90
- movs r3, 0
- bl sub_8072C14
-_081338FA:
- adds r3, r0, 0
- movs r0, 0xFE
- strb r0, [r3]
- adds r3, 0x1
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0x1
- negs r4, r4
- add r8, r4
- mov r0, r8
- cmp r0, 0
- blt _08133916
- b _0813381C
-_08133916:
- movs r0, 0xFF
- strb r0, [r3]
- ldr r0, _0813393C @ =gTileBuffer
- movs r1, 0xB
- movs r2, 0x1
- bl MenuPrint
- movs r0, 0
- bl sub_813360C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08133938: .4byte gTypeNames
-_0813393C: .4byte gTileBuffer
- thumb_func_end sub_8133800
-
- thumb_func_start sub_8133940
-sub_8133940: @ 8133940
- push {r4-r7,lr}
- sub sp, 0x34
- adds r4, r1, 0
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _08133968 @ =gExpandedPlaceholder_Empty
- mov r0, sp
- bl StringCopy
- ldrb r0, [r4, 0x2]
- subs r0, 0x1
- cmp r0, 0x6
- bls _0813395C
- b _08133AE2
-_0813395C:
- lsls r0, 2
- ldr r1, _0813396C @ =_08133970
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08133968: .4byte gExpandedPlaceholder_Empty
-_0813396C: .4byte _08133970
- .align 2, 0
-_08133970:
- .4byte _08133AE2
- .4byte _0813398C
- .4byte _08133AE2
- .4byte _081339A4
- .4byte _08133AE2
- .4byte _081339E4
- .4byte _08133A64
-_0813398C:
- ldr r0, _081339A0 @ =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0x1
- bls _081339B4
- ldrb r1, [r1, 0x1]
- b _081339CE
- .align 2, 0
-_081339A0: .4byte gBattleMoves
-_081339A4:
- ldr r0, _081339C4 @ =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x3]
- cmp r0, 0
- bne _081339CC
-_081339B4:
- ldr r1, _081339C8 @ =gOtherText_ThreeDashes2
- mov r0, sp
- movs r2, 0x20
- movs r3, 0x2
- bl sub_8072C74
- b _081339D8
- .align 2, 0
-_081339C4: .4byte gBattleMoves
-_081339C8: .4byte gOtherText_ThreeDashes2
-_081339CC:
- ldrb r1, [r1, 0x3]
-_081339CE:
- mov r0, sp
- movs r2, 0x20
- movs r3, 0x2
- bl sub_8072C14
-_081339D8:
- ldrb r1, [r4]
- ldrb r2, [r4, 0x1]
- mov r0, sp
- bl MenuPrint
- b _08133AE2
-_081339E4:
- ldrb r2, [r4]
- ldrb r1, [r4, 0x1]
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r2, 0
- bl MenuZeroFillWindowRect
- ldr r2, _08133A34 @ =gContestEffects
- ldr r1, _08133A38 @ =gContestMoves
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xFF
- bne _08133A14
- movs r5, 0
-_08133A14:
- movs r4, 0
- ldr r7, _08133A3C @ =gUnknown_030007B0
- ldr r6, _08133A40 @ =gSprites
-_08133A1A:
- cmp r4, r5
- bcs _08133A44
- ldr r0, [r7]
- adds r0, r4
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x1
- bl StartSpriteAnim
- b _08133A58
- .align 2, 0
-_08133A34: .4byte gContestEffects
-_08133A38: .4byte gContestMoves
-_08133A3C: .4byte gUnknown_030007B0
-_08133A40: .4byte gSprites
-_08133A44:
- ldr r0, [r7]
- adds r0, r4
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0
- bl StartSpriteAnim
-_08133A58:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08133A1A
- b _08133AE2
-_08133A64:
- ldrb r2, [r4]
- ldrb r1, [r4, 0x1]
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r2, 0
- bl MenuZeroFillWindowRect
- ldr r2, _08133AB4 @ =gContestEffects
- ldr r1, _08133AB8 @ =gContestMoves
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xFF
- bne _08133A94
- movs r5, 0
-_08133A94:
- movs r4, 0
- ldr r7, _08133ABC @ =gUnknown_030007B0
- ldr r6, _08133AC0 @ =gSprites
-_08133A9A:
- cmp r4, r5
- bcs _08133AC4
- ldr r0, [r7]
- adds r0, r4
- ldrb r1, [r0, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x3
- bl StartSpriteAnim
- b _08133AD8
- .align 2, 0
-_08133AB4: .4byte gContestEffects
-_08133AB8: .4byte gContestMoves
-_08133ABC: .4byte gUnknown_030007B0
-_08133AC0: .4byte gSprites
-_08133AC4:
- ldr r0, [r7]
- adds r0, r4
- ldrb r1, [r0, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x2
- bl StartSpriteAnim
-_08133AD8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08133A9A
-_08133AE2:
- add sp, 0x34
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8133940
-
- thumb_func_start sub_8133AEC
-sub_8133AEC: @ 8133AEC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r6, _08133B88 @ =gUnknown_030007B0
- ldr r2, [r6]
- ldrb r1, [r2, 0x1B]
- ldrb r0, [r2, 0x1A]
- subs r0, 0x1
- cmp r1, r0
- bne _08133B08
- b _08133C04
-_08133B08:
- lsls r1, 1
- adds r0, r2, 0
- adds r0, 0x20
- adds r0, r1
- ldrh r5, [r0]
- cmp r3, 0
- beq _08133BA0
- movs r4, 0
- lsls r0, r5, 3
- mov r8, r0
- ldr r7, _08133B8C @ =gSprites
- adds r3, r6, 0
- movs r6, 0x5
- negs r6, r6
-_08133B24:
- ldr r0, [r3]
- adds r0, r4
- ldrb r0, [r0, 0x7]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _08133B24
- movs r4, 0
-_08133B48:
- ldr r0, _08133B90 @ =gUnknown_08402E3D
- adds r0, r4, r0
- ldrb r0, [r0]
- lsls r1, r0, 1
- adds r1, r0
- ldr r0, _08133B94 @ =gUnknown_08402E24
- adds r1, r0
- adds r0, r5, 0
- bl sub_8133940
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _08133B48
- ldr r1, _08133B98 @ =gUnknown_083CADD4
- ldr r0, _08133B9C @ =gContestMoves
- add r0, r8
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x58
- movs r2, 0x48
- movs r3, 0x90
- bl sub_8072AB0
- b _08133C92
- .align 2, 0
-_08133B88: .4byte gUnknown_030007B0
-_08133B8C: .4byte gSprites
-_08133B90: .4byte gUnknown_08402E3D
-_08133B94: .4byte gUnknown_08402E24
-_08133B98: .4byte gUnknown_083CADD4
-_08133B9C: .4byte gContestMoves
-_08133BA0:
- movs r4, 0
- subs r6, r5, 0x1
-_08133BA4:
- ldr r0, _08133BF8 @ =gUnknown_08402E39
- adds r0, r4, r0
- ldrb r0, [r0]
- lsls r1, r0, 1
- adds r1, r0
- ldr r0, _08133BFC @ =gUnknown_08402E24
- adds r1, r0
- adds r0, r5, 0
- bl sub_8133940
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _08133BA4
- ldr r1, _08133C00 @ =gMoveDescriptions
- lsls r0, r6, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x58
- movs r2, 0x48
- movs r3, 0x90
- bl sub_8072A18
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08133C92
- lsls r1, r0, 25
- movs r0, 0x90
- lsls r0, 20
- adds r1, r0
- lsrs r1, 24
- movs r0, 0xB
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuFillWindowRectWithBlankTile
- b _08133C92
- .align 2, 0
-_08133BF8: .4byte gUnknown_08402E39
-_08133BFC: .4byte gUnknown_08402E24
-_08133C00: .4byte gMoveDescriptions
-_08133C04:
- cmp r3, 0
- beq _08133C5C
- ldr r4, _08133C54 @ =gUnknown_08402E24
- ldrb r2, [r4, 0xF]
- ldrb r1, [r4, 0x10]
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r2, 0
- bl MenuZeroFillWindowRect
- ldrb r2, [r4, 0x12]
- ldrb r1, [r4, 0x13]
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r2, 0
- bl MenuZeroFillWindowRect
- movs r4, 0
- ldr r5, _08133C58 @ =gSprites
- adds r3, r6, 0
- movs r2, 0x4
-_08133C32:
- ldr r0, [r3]
- adds r0, r4
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _08133C32
- b _08133C86
- .align 2, 0
-_08133C54: .4byte gUnknown_08402E24
-_08133C58: .4byte gSprites
-_08133C5C:
- ldr r4, _08133CA0 @ =gUnknown_08402E24
- ldrb r0, [r4, 0x3]
- ldrb r1, [r4, 0x4]
- adds r2, r0, 0x3
- lsls r2, 24
- lsrs r2, 24
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- ldrb r0, [r4, 0x9]
- ldrb r1, [r4, 0xA]
- adds r2, r0, 0x3
- lsls r2, 24
- lsrs r2, 24
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
-_08133C86:
- movs r0, 0xB
- movs r1, 0x9
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
-_08133C92:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08133CA0: .4byte gUnknown_08402E24
- thumb_func_end sub_8133AEC
-
- thumb_func_start sub_8133CA4
-sub_8133CA4: @ 8133CA4
- push {lr}
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1B
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- ldr r0, _08133CC8 @ =gUnknown_030007B0
- ldr r0, [r0]
- movs r1, 0xB1
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8133AEC
- pop {r0}
- bx r0
- .align 2, 0
-_08133CC8: .4byte gUnknown_030007B0
- thumb_func_end sub_8133CA4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/macros/event.inc b/asm/macros/event.inc
index cd2927c66..960b300b7 100644
--- a/asm/macros/event.inc
+++ b/asm/macros/event.inc
@@ -1,10 +1,10 @@
@ Does nothing.
- .macro snop
+ .macro nop
.byte 0x00
.endm
@ Does nothing.
- .macro snop1
+ .macro nop1
.byte 0x01
.endm
@@ -25,27 +25,27 @@
.endm
@ Jumps to destination and continues script execution from there.
- .macro jump destination
+ .macro goto destination
.byte 0x05
.4byte \destination
.endm
@ If the result of the last comparison matches condition (see Comparison operators), jumps to destination and continues script execution from there.
- .macro jumpif condition, destination
+ .macro goto_if condition, destination
.byte 0x06
.byte \condition
.4byte \destination
.endm
@ If the result of the last comparison matches condition (see Comparison operators), calls destination.
- .macro callif condition, destination
+ .macro call_if condition, destination
.byte 0x07
.byte \condition
.4byte \destination
.endm
@ Jumps to the standard function at index function.
- .macro jumpstd function
+ .macro gotostd function
.byte 0x08
.byte \function
.endm
@@ -57,58 +57,58 @@
.endm
@ If the result of the last comparison matches condition (see Comparison operators), jumps to the standard function at index function.
- .macro jumpstdif condition, function
+ .macro gotostd_if condition, function
.byte 0x0a
.byte \condition
.byte \function
.endm
@ If the result of the last comparison matches condition (see Comparison operators), calls the standard function at index function.
- .macro callstdif condition, function
+ .macro callstd_if condition, function
.byte 0x0b
.byte \condition
.byte \function
.endm
@ Executes a script stored in a default RAM location.
- .macro jumpram
+ .macro gotoram
.byte 0x0c
.endm
@ Terminates script execution and "resets the script RAM".
- .macro die
+ .macro killscript
.byte 0x0d
.endm
- @ Pads the specified value to a dword, and then writes that dword to a predefined address (0x0203AAA8).
- .macro setbyte value
+ @ Sets mystery event status
+ .macro setmysteryeventstatus value
.byte 0x0e
.byte \value
.endm
- @ Sets the specified script bank to value.
- .macro loadptr destination, value
+ @ Sets the specified script bank to immediate value.
+ .macro loadword destination, value
.byte 0x0f
.byte \destination
.4byte \value
.endm
- @ Sets the specified script bank to value.
- .macro setbufferbyte destination, value
+ @ Sets the specified script bank to immediate value.
+ .macro loadbyte destination, value
.byte 0x10
.byte \destination
.byte \value
.endm
@ Sets the byte at offset to value.
- .macro writebytetooffset value, offset
+ .macro writebytetoaddr value, offset
.byte 0x11
.byte \value
.4byte \offset
.endm
@ Copies the byte value at source into the specified script bank.
- .macro loadbytefrompointer destination, source
+ .macro loadbytefromaddr destination, source
.byte 0x12
.byte \destination
.4byte \source
@@ -122,7 +122,7 @@
.endm
@ Copies the contents of bank source into bank destination.
- .macro copybuffers destination, source
+ .macro copylocal destination, source
.byte 0x14
.byte \destination
.byte \source
@@ -171,71 +171,83 @@
.endm
@ Compares the values of script banks a and b, after forcing the values to bytes.
- .macro comparebuffers byte1, byte2
+ .macro compare_local_to_local byte1, byte2
.byte 0x1b
.byte \byte1
.byte \byte2
.endm
@ Compares the least-significant byte of the value of script bank a to a fixed byte value (b).
- .macro comparebuffertobyte a, b
+ .macro compare_local_to_value a, b
.byte 0x1c
.byte \a
.byte \b
.endm
@ Compares the least-significant byte of the value of script bank a to the byte located at offset b.
- .macro comparebuffertoptrbyte a, b
+ .macro compare_local_to_addr a, b
.byte 0x1d
.byte \a
.4byte \b
.endm
@ Compares the byte located at offset a to the least-significant byte of the value of script bank b.
- .macro compareptrbytetobuffer a, b
+ .macro compare_addr_to_local a, b
.byte 0x1e
.4byte \a
.byte \b
.endm
@ Compares the byte located at offset a to a fixed byte value (b).
- .macro compareptrbytetobyte a, b
+ .macro compare_addr_to_value a, b
.byte 0x1f
.4byte \a
.byte \b
.endm
@ Compares the byte located at offset a to the byte located at offset b.
- .macro compareptrbytes a, b
+ .macro compare_addr_to_addr a, b
.byte 0x20
.4byte \a
.4byte \b
.endm
@ Compares the value of `var` to a fixed word value (b).
- .macro compare var, value
+ .macro compare_var_to_value var, value
.byte 0x21
.2byte \var
.2byte \value
.endm
@ Compares the value of `var` to the value of `var2`.
- .macro comparevars var1, var2
+ .macro compare_var_to_var var1, var2
.byte 0x22
.2byte \var1
.2byte \var2
.endm
- @ Calls the ASM routine stored at code. Script execution is blocked until the ASM returns (bx lr, mov pc, lr, etc.). Remember to add 1 to the offset when calling THUMB code.
- .macro callasm code
+ @ Generic compare macro which attempts to deduce argument types based on their values
+ @ Any values between 0x4000 to 0x4FFF and 0x8000 to 0x8FFF are considered event variable identifiers
+ .macro compare arg1, arg2
+ .if ((\arg1 >> 12) == 4 || (\arg1 >> 12) == 8) && ((\arg2 >> 12) == 4 || (\arg2 >> 12) == 8)
+ compare_var_to_var \arg1, \arg2
+ .elseif ((\arg1 >> 12) == 4 || (\arg1 >> 12) == 8) && (\arg2 >= 0 && \arg2 <= 0xFFFF)
+ compare_var_to_value \arg1, \arg2
+ .else
+ .error "Invalid arguments for 'compare'"
+ .endif
+ .endm
+
+ @ Calls the native C function stored at `func`.
+ .macro callnative func
.byte 0x23
- .4byte \code
+ .4byte \func
.endm
- @ Replaces a pointer in the script engine RAM with asm_pointer.
- .macro jumpasm asm_pointer
+ @ Replaces the script with the function stored at `func`. Execution returns to the bytecode script when func returns TRUE.
+ .macro gotonative func
.byte 0x24
- .4byte \asm_pointer
+ .4byte \func
.endm
@ Calls a special function; that is, a piece of ASM code designed for use by scripts and listed in a table of pointers.
@@ -245,7 +257,7 @@
.endm
@ Calls a special function. That function's output (if any) will be written to the variable you specify.
- .macro specialval output, function
+ .macro specialvar output, function
.byte 0x26
.2byte \output
.2byte SPECIAL_\function
@@ -257,7 +269,7 @@
.endm
@ Blocks script execution for time (frames? milliseconds?).
- .macro pause time
+ .macro delay time
.byte 0x28
.2byte \time
.endm
@@ -281,33 +293,35 @@
.endm
@ In FireRed, this command is a nop.
- .macro compareflags
+ .macro initclock hour minute
.byte 0x2c
+ .byte \hour
+ .byte \minute
.endm
@ In FireRed, this command is a nop.
- .macro checkdailyflags
+ .macro dodailyevents
.byte 0x2d
.endm
@ Resets the values of variables 0x8000, 0x8001, and 0x8002. Related to RTC in RSE?
- .macro resetvars
+ .macro gettime
.byte 0x2e
.endm
@ Plays the specified (sound_number) sound. Only one sound may play at a time, with newer ones interrupting older ones.
- .macro playsfx sound_number
+ .macro playse sound_number
.byte 0x2f
.2byte \sound_number
.endm
@ Blocks script execution until the currently-playing sound (triggered by sound) finishes playing.
- .macro checksound
+ .macro waitse
.byte 0x30
.endm
@ Plays the specified (fanfare_number) fanfare.
- .macro fanfare fanfare_number
+ .macro playfanfare fanfare_number
.byte 0x31
.2byte \fanfare_number
.endm
@@ -318,37 +332,37 @@
.endm
@ Plays the specified (song_number) song. The byte is apparently supposed to be 0x00.
- .macro playmusic song_number, unknown
+ .macro playbgm song_number, unknown
.byte 0x33
.2byte \song_number
.byte \unknown
.endm
@ Plays the specified (song_number) song.
- .macro playmusicbattle song_number
+ .macro savebgm song_number
.byte 0x34
.2byte \song_number
.endm
@ Crossfades the currently-playing song into the map's default song.
- .macro fadedefault
+ .macro fadedefaultbgm
.byte 0x35
.endm
@ Crossfades the currently-playng song into the specified (song_number) song.
- .macro fademusic song_number
+ .macro fadenewbgm song_number
.byte 0x36
.2byte \song_number
.endm
@ Fades out the currently-playing song.
- .macro fadeout speed
+ .macro fadeoutbgm speed
.byte 0x37
.byte \speed
.endm
@ Fades the currently-playing song back in.
- .macro fadein speed
+ .macro fadeinbgm speed
.byte 0x38
.byte \speed
.endm
@@ -363,7 +377,7 @@
.endm
@ Clone of warp that does not play a sound effect.
- .macro warpmuted map, warp, X, Y
+ .macro warpsilent map, warp, X, Y
.byte 0x3a
map \map
.byte \warp
@@ -372,7 +386,7 @@
.endm
@ Clone of warp that uses "a walking effect".
- .macro warpwalk map, warp, X, Y
+ .macro warpdoor map, warp, X, Y
.byte 0x3b
map \map
.byte \warp
@@ -396,7 +410,7 @@
.endm
@ Clone of warp. Used by an (unused?) Safari Zone script to return the player to the gatehouse and end the Safari Game.
- .macro warp3 map, warp, X, Y
+ .macro setwarp map, warp, X, Y
.byte 0x3e
map \map
.byte \warp
@@ -405,7 +419,7 @@
.endm
@ Sets a default warp place. If a warp tries to send the player to Warp 127 on Map 127.127, they will instead be sent here. Useful when a map has warps that need to go to script-controlled locations (i.e. elevators).
- .macro warpplace map, warp, X, Y
+ .macro setdynamicwarp map, warp, X, Y
.byte 0x3f
map \map
.byte \warp
@@ -414,7 +428,7 @@
.endm
@ Clone of warp3, except that this writes data to different offsets...
- .macro warp4 map, warp, X, Y
+ .macro setdivewarp map, warp, X, Y
.byte 0x40
map \map
.byte \warp
@@ -423,7 +437,7 @@
.endm
@ Clone of warp3, except that this writes data to different offsets...
- .macro warp5 map, warp, X, Y
+ .macro setholewarp map, warp, X, Y
.byte 0x41
map \map
.byte \warp
@@ -504,7 +518,7 @@
.endm
@ In FireRed, this command is a nop. (The argument is read, but not used for anything.)
- .macro testdecor a
+ .macro hasdecor a
.byte 0x4d
.2byte \a
.endm
@@ -516,148 +530,146 @@
.endm
@ Applies the movement data at movements to the specified (index) Person event. Also closes any standard message boxes that are still open.
- .macro move index, movements
- .byte 0x4f
- .2byte \index
- .4byte \movements
- .endm
-
- @ Apparent clone of applymovement. Oddly, it doesn't seem to work at all if applied to any Person other than the player (0xFF), and the X and Y arguments don't seem to do anything.
@ This command in fact uses variables to access the Person event ID. So, for example, if you setvar 0x8000 to 0x3, and then use applymovementpos 0x8000 @move1, Person event 3 will have the movements at @move1 applied to them. Thank you Shiny Quagsire for bringing this to my attention.
- .macro movecoords variable, movements, x, y
- .byte 0x50
- .2byte \variable
- .4byte \movements
- .byte \x
- .byte \y
+ .macro applymovement index, movements, mapGroup, mapNum
+ .ifb \mapGroup
+ .byte 0x4f
+ .2byte \index
+ .4byte \movements
+ .else
+ .byte 0x50
+ .2byte \index
+ .4byte \movements
+ .byte \mapGroup
+ .byte \mapNum
+ .endif
.endm
@ Blocks script execution until the movements being applied to the specified (index) Person event finish. If the specified Person event is 0x0000, then the command will block script execution until all Person events affected by applymovement finish their movements. If the specified Person event is not currently being manipulated with applymovement, then this command does nothing.
- .macro waitmove index
- .byte 0x51
- .2byte \index
- .endm
-
- @ Apparent clone of waitmovement. Oddly, it doesn't seem to work at all if applied to any Person other than the player (0xFF), and the X and Y arguments don't seem to do anything.
- .macro waitmovexy index, X, Y
- .byte 0x52
- .2byte \index
- .byte \X
- .byte \Y
- .endm
-
- @ Attempts to hide the specified (local_ID, a local ID) Person event on the current map, by setting its visibility flag if it has a valid one. If the Person does not have a valid visibility flag, this command does nothing.
- .macro disappear local_ID
- .byte 0x53
- .2byte \local_ID
- .endm
-
- @ Clone of hidesprite that also moves the Person? Test it!
- .macro disappearxy index, X, Y
- .byte 0x54
- .2byte \index
- .byte \X
- .byte \Y
- .endm
-
- .macro reappear word
- .byte 0x55
- .2byte \word
- .endm
-
- .macro reappearxy word, byte1, byte2
- .byte 0x56
- .2byte \word
- .byte \byte1
- .byte \byte2
- .endm
-
- .macro movesprite word1, word2, word3
- .byte 0x57
- .2byte \word1
- .2byte \word2
- .2byte \word3
- .endm
-
- .macro spritevisible word, byte1, byte2
- .byte 0x58
- .2byte \word
- .byte \byte1
- .byte \byte2
- .endm
-
- .macro spriteinvisible word, byte1, byte2
- .byte 0x59
- .2byte \word
- .byte \byte1
- .byte \byte2
+ .macro waitmovement index, mapBank, mapNum
+ .ifb \mapBank
+ .byte 0x51
+ .2byte \index
+ .else
+ .byte 0x52
+ .2byte \index
+ .byte \mapBank
+ .byte \mapNum
+ .endif
+ .endm
+
+ @ Attempts to hide the specified (local_ID, a local ID) Person event on the specified map, by setting its visibility flag if it has a valid one. If the Person does not have a valid visibility flag, this command does nothing.
+ @ If no map is specified, then the current map is used
+ .macro removeobject localId, mapGroup, mapNum
+ .ifb \mapGroup
+ .byte 0x53
+ .2byte \localId
+ .else
+ .byte 0x54
+ .2byte \localId
+ .byte \mapGroup
+ .byte \mapNum
+ .endif
+ .endm
+
+ .macro addobject localId, mapGroup, mapNum
+ .ifb \mapGroup
+ .byte 0x55
+ .2byte \localId
+ .else
+ .byte 0x56
+ .2byte \localId
+ .byte \mapGroup
+ .byte \mapNum
+ .endif
+ .endm
+
+ .macro setobjectxy word1, word2, word3
+ .byte 0x57
+ .2byte \word1
+ .2byte \word2
+ .2byte \word3
+ .endm
+
+ .macro showobject word, byte1, byte2
+ .byte 0x58
+ .2byte \word
+ .byte \byte1
+ .byte \byte2
+ .endm
+
+ .macro hideobject word, byte1, byte2
+ .byte 0x59
+ .2byte \word
+ .byte \byte1
+ .byte \byte2
.endm
@ If the script was called by a Person event, then that Person will turn to face toward the tile that the player is stepping off of.
.macro faceplayer
- .byte 0x5a
+ .byte 0x5a
.endm
- .macro spriteface word, byte
- .byte 0x5b
- .2byte \word
- .byte \byte
+ .macro turnobject word, byte
+ .byte 0x5b
+ .2byte \word
+ .byte \byte
.endm
@ If the Trainer flag for Trainer index is not set, this command does absolutely nothing.
.macro trainerbattle type, trainer, word, pointer1, pointer2, pointer3, pointer4
- .byte 0x5c
- .byte \type
- .2byte \trainer
- .2byte \word
- .if \type == 0
- .4byte \pointer1 @ text
- .4byte \pointer2 @ text
- .elseif \type == 1
- .4byte \pointer1 @ text
- .4byte \pointer2 @ text
- .4byte \pointer3 @ event script
- .elseif \type == 2
- .4byte \pointer1 @ text
- .4byte \pointer2 @ text
- .4byte \pointer3 @ event script
- .elseif \type == 3
- .4byte \pointer1 @ text
- .elseif \type == 4
- .4byte \pointer1 @ text
- .4byte \pointer2 @ text
- .4byte \pointer3 @ text
- .elseif \type == 5
- .4byte \pointer1 @ text
- .4byte \pointer2 @ text
- .elseif \type == 6
- .4byte \pointer1 @ text
- .4byte \pointer2 @ text
- .4byte \pointer3 @ text
- .4byte \pointer4 @ event script
- .elseif \type == 7
- .4byte \pointer1 @ text
- .4byte \pointer2 @ text
- .4byte \pointer3 @ text
- .elseif \type == 8
- .4byte \pointer1 @ text
- .4byte \pointer2 @ text
- .4byte \pointer3 @ text
- .4byte \pointer4 @ event script
- .endif
+ .byte 0x5c
+ .byte \type
+ .2byte \trainer
+ .2byte \word
+ .if \type == 0
+ .4byte \pointer1 @ text
+ .4byte \pointer2 @ text
+ .elseif \type == 1
+ .4byte \pointer1 @ text
+ .4byte \pointer2 @ text
+ .4byte \pointer3 @ event script
+ .elseif \type == 2
+ .4byte \pointer1 @ text
+ .4byte \pointer2 @ text
+ .4byte \pointer3 @ event script
+ .elseif \type == 3
+ .4byte \pointer1 @ text
+ .elseif \type == 4
+ .4byte \pointer1 @ text
+ .4byte \pointer2 @ text
+ .4byte \pointer3 @ text
+ .elseif \type == 5
+ .4byte \pointer1 @ text
+ .4byte \pointer2 @ text
+ .elseif \type == 6
+ .4byte \pointer1 @ text
+ .4byte \pointer2 @ text
+ .4byte \pointer3 @ text
+ .4byte \pointer4 @ event script
+ .elseif \type == 7
+ .4byte \pointer1 @ text
+ .4byte \pointer2 @ text
+ .4byte \pointer3 @ text
+ .elseif \type == 8
+ .4byte \pointer1 @ text
+ .4byte \pointer2 @ text
+ .4byte \pointer3 @ text
+ .4byte \pointer4 @ event script
+ .endif
.endm
@ Starts a trainer battle using the battle information stored in RAM (usually by trainerbattle, which actually calls this command behind-the-scenes), and blocks script execution until the battle finishes.
- .macro reptrainerbattle
+ .macro battlebegin
.byte 0x5d
.endm
- .macro endtrainerbattle
+ .macro ontrainerbattleend
.byte 0x5e
.endm
- .macro endtrainerbattle2
+ .macro ontrainerbattleendgoto
.byte 0x5f
.endm
@@ -668,37 +680,37 @@
.endm
@ Sets Flag (trainer + 0x500). (I didn't make a mistake. The command names actually are backwards.)
- .macro cleartrainerflag trainer
+ .macro settrainerflag trainer
.byte 0x61
.2byte \trainer
.endm
@ Clears Flag (trainer + 0x500). (I didn't make a mistake. The command names actually are backwards.)
- .macro settrainerflag trainer
+ .macro cleartrainerflag trainer
.byte 0x62
.2byte \trainer
.endm
- .macro movespriteperm word1, word2, word3
+ .macro setobjectxyperm word1, word2, word3
.byte 0x63
.2byte \word1
.2byte \word2
.2byte \word3
.endm
- .macro moveoffscreen word
+ .macro moveobjectoffscreen word
.byte 0x64
.2byte \word
.endm
- .macro spritebehave word, byte
+ .macro setobjectmovementtype word, byte
.byte 0x65
.2byte \word
.byte \byte
.endm
@ If a standard message box (or its text) is being drawn on-screen, this command blocks script execution until the box and its text have been fully drawn.
- .macro waittext
+ .macro waitmessage
.byte 0x66
.endm
@@ -709,7 +721,7 @@
.endm
@ Holds the current message box open until the player presses a key. The message box is then closed.
- .macro closebutton
+ .macro closemessage
.byte 0x68
.endm
@@ -755,7 +767,7 @@
.endm
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00. If B is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
- .macro multichoicedef X, Y, list, default, B
+ .macro multichoicedefault X, Y, list, default, B
.byte 0x70
.byte \X
.byte \Y
@@ -765,7 +777,7 @@
.endm
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The per_row argument determines how many list items will be shown on a single row of the box.
- .macro multichoicerow X, Y, list, per_row, B
+ .macro multichoicegrid X, Y, list, per_row, B
.byte 0x71
.byte \X
.byte \Y
@@ -774,7 +786,7 @@
.byte \B
.endm
- .macro showbox byte1, byte2, byte3, byte4
+ .macro drawbox byte1, byte2, byte3, byte4
.byte 0x72
.byte \byte1
.byte \byte2
@@ -782,7 +794,7 @@
.byte \byte4
.endm
- .macro hidebox byte1, byte2, byte3, byte4
+ .macro erasebox byte1, byte2, byte3, byte4
.byte 0x73
.byte \byte1
.byte \byte2
@@ -790,7 +802,7 @@
.byte \byte4
.endm
- .macro clearbox byte1, byte2, byte3, byte4
+ .macro drawboxtext byte1, byte2, byte3, byte4
.byte 0x74
.byte \byte1
.byte \byte2
@@ -799,7 +811,7 @@
.endm
@ Displays a box containing the front sprite for the specified (species) Pokmon species.
- .macro showpokepic species, X, Y
+ .macro drawpokepic species, X, Y
.byte 0x75
.2byte \species
.byte \X
@@ -807,24 +819,24 @@
.endm
@ Hides all boxes displayed with showpokepic.
- .macro hidepokepic
+ .macro erasepokepic
.byte 0x76
.endm
@ In FireRed, this command is a nop. (The argument is discarded.)
- .macro showcontestwinner a
+ .macro drawcontestwinner a
.byte 0x77
.byte \a
.endm
@ Displays the string at pointer as braille text in a standard message box. The string must be formatted to use braille characters.
- .macro braillemsg text
+ .macro braillemessage text
.byte 0x78
.4byte \text
.endm
@ Gives the player one of the specified (species) Pokmon at level level holding item. The unknown arguments should all be zeroes.
- .macro givepokemon species, level, item, unknown1, unknown2, unknown3
+ .macro givepoke species, level, item, unknown1, unknown2, unknown3
.byte 0x79
.2byte \species
.byte \level
@@ -847,68 +859,68 @@
.endm
@ Checks if at least one Pokmon in the player's party knows the specified (index) attack. If so, variable 0x800D (LASTRESULT) is set to the (zero-indexed) slot number of the Pokmon that knows the move. If not, LASTRESULT is set to 0x0006.
- .macro checkattack index
+ .macro checkpokemove index
.byte 0x7c
.2byte \index
.endm
@ Writes the name of the Pokmon at index species to the specified buffer.
- .macro bufferpoke out, species
+ .macro getspeciesname out, species
.byte 0x7d
.byte \out
.2byte \species
.endm
@ Writes the name of the first Pokmon in the player's party to the specified buffer.
- .macro bufferfirstpoke out
+ .macro getfirstpartypokename out
.byte 0x7e
.byte \out
.endm
@ Writes the name of the Pokmon in slot slot (zero-indexed) of the player's party to the specified buffer. If an empty or invalid slot is specified, ten spaces ("") are written to the buffer.
- .macro bufferpartypoke out, slot
+ .macro getpartypokename out, slot
.byte 0x7f
.byte \out
.2byte \slot
.endm
@ Writes the name of the item at index item to the specified buffer. If the specified index is larger than the number of items in the game (0x176), the name of item 0 ("????????") is buffered instead.
- .macro bufferitem out, item
+ .macro getitemname out, item
.byte 0x80
.byte \out
.2byte \item
.endm
@ In FireRed, this command is a nop. (The first argument is discarded immediately. The second argument is read, but not used for anything.)
- .macro bufferdecor a, b
+ .macro getdecorname a, b
.byte 0x81
.byte \a
.2byte \b
.endm
@ Writes the name of the attack at index attack to the specified buffer.
- .macro bufferattack out, attack
+ .macro getmovename out, attack
.byte 0x82
.byte \out
.2byte \attack
.endm
@ Converts the value of input to a decimal string, and writes that string to the specified buffer.
- .macro buffernum out, input
+ .macro getnumberstring out, input
.byte 0x83
.byte \out
.2byte \input
.endm
@ Writes the standard string identified by index to the specified buffer. Specifying an invalid standard string (e.x. 0x2B) can and usually will cause data corruption (I've observed destruction of the stored player name and crashes when entering/exiting certain menu screens).
- .macro bufferstd out, index
+ .macro getstdstring out, index
.byte 0x84
.byte \out
.2byte \index
.endm
@ Copies the string at offset to the specified buffer.
- .macro buffertext out, offset
+ .macro getstring out, offset
.byte 0x85
.byte \out
.4byte \offset
@@ -932,13 +944,13 @@
.4byte \products
.endm
- .macro pokecasino word
+ .macro playslotmachine word
.byte 0x89
.2byte \word
.endm
@ In FireRed, this command is a nop.
- .macro event_8a byte1, byte2, byte3
+ .macro plantberrytree byte1, byte2, byte3
.byte 0x8a
.byte \byte1, \byte2, \byte3
.endm
@@ -977,7 +989,7 @@
.endm
@ If check is 0x00, this command subtracts value from the player's money.
- .macro paymoney value, check
+ .macro takemoney value, check
.byte 0x91
.4byte \value
.byte \check
@@ -991,28 +1003,28 @@
.endm
@ Spawns a secondary box showing how much money the player has.
- .macro showmoney X, Y
+ .macro showmoneybox X, Y
.byte 0x93
.byte \X
.byte \Y
.endm
@ Hides the secondary box spawned by showmoney.
- .macro hidemoney X, Y
+ .macro hidemoneybox X, Y
.byte 0x94
.byte \X
.byte \Y
.endm
@ Updates the secondary box spawned by showmoney. (What does it do with its arguments?)
- .macro updatemoney X, Y
+ .macro updatemoneybox X, Y
.byte 0x95
.byte \X
.byte \Y
.endm
@ In FireRed, this command is a nop.
- .macro event_96 word
+ .macro getpricereduction word
.byte 0x96
.2byte \word
.endm
@@ -1029,36 +1041,36 @@
.byte \byte2
.endm
- .macro darken word
+ .macro setdarklevel word
.byte 0x99
.2byte \word
.endm
- .macro lighten byte
+ .macro animdarklevel byte
.byte 0x9a
.byte \byte
.endm
- .macro message2 pointer
+ .macro messageautoscroll pointer
.byte 0x9b
.4byte \pointer
.endm
@ Executes the specified field move animation.
- .macro doanimation animation
+ .macro dofieldeffect animation
.byte 0x9c
.2byte \animation
.endm
@ Tells the game which party Pokmon to use for the next field move animation.
- .macro setanimation animation, slot
+ .macro setfieldeffect animation, slot
.byte 0x9d
.byte \animation
.2byte \slot
.endm
@ Blocks script execution until all playing field move animations complete.
- .macro checkanimation animation
+ .macro waitfieldeffect animation
.byte 0x9e
.2byte \animation
.endm
@@ -1070,12 +1082,12 @@
.endm
@ Checks the player's gender. If male, then 0x0000 is stored in variable 0x800D (LASTRESULT). If female, then 0x0001 is stored in LASTRESULT.
- .macro checkgender
+ .macro checkplayergender
.byte 0xa0
.endm
@ Plays the specified (species) Pokmon's cry. You can use waitcry to block script execution until the sound finishes.
- .macro pokecry species, effect
+ .macro playpokecry species, effect
.byte 0xa1
.2byte \species
.2byte \effect
@@ -1112,12 +1124,12 @@
.byte \subroutine
.endm
- .macro setmapfooter word
+ .macro setmaplayoutindex word
.byte 0xa7
.2byte \word
.endm
- .macro spritelevelup word, byte1, byte2, byte3
+ .macro setobjectpriority word, byte1, byte2, byte3
.byte 0xa8
.2byte \word
.byte \byte1
@@ -1125,14 +1137,14 @@
.byte \byte3
.endm
- .macro restorespritelevel word, byte1, byte2
+ .macro resetobjectpriority word, byte1, byte2
.byte 0xa9
.2byte \word
.byte \byte1
.byte \byte2
.endm
- .macro createvsprite byte1, byte2, word1, word2, byte3, byte4
+ .macro createvobject byte1, byte2, word1, word2, byte3, byte4
.byte 0xaa
.byte \byte1
.byte \byte2
@@ -1142,52 +1154,52 @@
.byte \byte4
.endm
- .macro vspriteface byte1, byte2
+ .macro turnvobject byte1, byte2
.byte 0xab
.byte \byte1
.byte \byte2
.endm
@ Queues the opening of the door tile at (X, Y) with an animation.
- .macro setdooropened X, Y
+ .macro opendoor X, Y
.byte 0xac
.2byte \X
.2byte \Y
.endm
@ Queues the closing of the door tile at (X, Y) with an animation.
- .macro setdoorclosed X, Y
+ .macro closedoor X, Y
.byte 0xad
.2byte \X
.2byte \Y
.endm
@ Executes the state changes queued with setdooropened, setdoorclosed, setdooropened2, and setdoorclosed2.
- .macro doorchange
+ .macro waitdooranim
.byte 0xae
.endm
@ Queues the opening of the door tile at (X, Y) without an animation.
- .macro setdooropened2 X, Y
+ .macro setdooropen X, Y
.byte 0xaf
.2byte \X
.2byte \Y
.endm
@ Queues the closing of the door tile at (X, Y) without an animation.
- .macro setdoorclosed2 X, Y
+ .macro setdoorclosed X, Y
.byte 0xb0
.2byte \X
.2byte \Y
.endm
@ In FireRed, this command is a nop.
- .macro event_b1
+ .macro addelevmenuitem
.byte 0xb1
.endm
@ In FireRed, this command is a nop.
- .macro event_b2
+ .macro showelevmenu
.byte 0xb2
.endm
@@ -1201,7 +1213,7 @@
.2byte \word
.endm
- .macro removecoins word
+ .macro takecoins word
.byte 0xb5
.2byte \word
.endm
@@ -1225,7 +1237,7 @@
.2byte \word
.endm
- .macro vjump pointer
+ .macro vgoto pointer
.byte 0xb9
.4byte \pointer
.endm
@@ -1235,63 +1247,63 @@
.4byte \pointer
.endm
- .macro if5 byte, pointer
+ .macro vgoto_if byte, pointer
.byte 0xbb
.byte \byte
.4byte \pointer
.endm
- .macro if6 byte, pointer
+ .macro vcall_if byte, pointer
.byte 0xbc
.byte \byte
.4byte \pointer
.endm
- .macro vtext pointer
+ .macro vmessage pointer
.byte 0xbd
.4byte \pointer
.endm
- .macro vloadptr pointer
+ .macro vloadword pointer
.byte 0xbe
.4byte \pointer
.endm
- .macro vbuffer byte, pointer
+ .macro vgetstring byte, pointer
.byte 0xbf
.byte \byte
.4byte \pointer
.endm
@ Spawns a secondary box showing how many Coins the player has.
- .macro showcoins X, Y
+ .macro showcoinsbox X, Y
.byte 0xc0
.byte \X
.byte \Y
.endm
@ Hides the secondary box spawned by showcoins. It doesn't appear to use its arguments, but they are still required.
- .macro hidecoins X, Y
+ .macro hidecoinsbox X, Y
.byte 0xc1
.byte \X
.byte \Y
.endm
@ Updates the secondary box spawned by showcoins. (What does it do with its arguments?)
- .macro updatecoins X, Y
+ .macro updatecoinsbox X, Y
.byte 0xc2
.byte \X
.byte \Y
.endm
@ Increases the value of the specified hidden variable by 1. The hidden variable's value will not be allowed to exceed 0x00FFFFFF.
- .macro inccounter a
+ .macro incrementgamestat a
.byte 0xc3
.byte \a
.endm
@ Clone of warp... Except that it doesn't appear to have any effect when used in some of FireRed's default level scripts. (If it did, Berry Forest would be impossible to enter...)
- .macro warp6 map, warp, X, Y
+ .macro setescapewarp map, warp, X, Y
.byte 0xc4
map \map
.byte \warp
@@ -1475,8 +1487,8 @@
@ Supplementary
- .macro jumpeq dest
- jumpif 1, \dest
+ .macro goto_if_eq dest
+ goto_if 1, \dest
.endm
.macro switch var
@@ -1484,15 +1496,21 @@
.endm
.macro case condition, dest
- compare 0x8000, \condition
- jumpeq \dest
+ compare_var_to_value 0x8000, \condition
+ goto_if_eq \dest
.endm
.macro msgbox text, type=4
- loadptr 0, \text
+ loadword 0, \text
callstd \type
.endm
+ @ Message box types
+ MSGBOX_YESNO = 5
+
+ YES = 1
+ NO = 0
+
.macro giveitem item, amount=1, function=0
setorcopyvar 0x8000, \item
setorcopyvar 0x8001, \amount
diff --git a/asm/mauville_old_man.s b/asm/mauville_old_man.s
deleted file mode 100644
index 726de6fc1..000000000
--- a/asm/mauville_old_man.s
+++ /dev/null
@@ -1,1522 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80F7DC0
-sub_80F7DC0: @ 80F7DC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- ldr r1, _080F7E84 @ =gUnknown_083E53C8
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- movs r5, 0
- movs r0, 0x2
- add r0, sp
- mov r8, r0
- ldr r1, _080F7E88 @ =gSaveBlock1 + 0x2D94
- adds r1, 0x18
- adds r3, r1, 0
-_080F7DE4:
- adds r0, r3, r5
- strb r5, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x7
- bls _080F7DE4
- movs r5, 0
- ldr r2, _080F7E88 @ =gSaveBlock1 + 0x2D94
- adds r2, 0x4
- mov r9, r2
- adds r6, r1, 0
-_080F7DFC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r4, r5, 0x1
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, r6, r5
- ldrb r7, [r2]
- adds r1, r6, r1
- ldrb r0, [r1]
- strb r0, [r2]
- strb r7, [r1]
- lsls r4, 16
- lsrs r5, r4, 16
- cmp r5, 0x7
- bls _080F7DFC
- movs r3, 0
- mov r10, r3
- movs r5, 0
-_080F7E2A:
- lsls r4, r5, 2
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- bl sub_80EAE88
- add r4, r8
- strh r0, [r4]
- add r0, r10
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _080F7E2A
- movs r0, 0
- ldr r2, _080F7E88 @ =gSaveBlock1 + 0x2D94
- strb r0, [r2, 0x2]
- movs r7, 0
- movs r5, 0
-_080F7E56:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x2
- bhi _080F7E90
- cmp r7, 0x7
- bhi _080F7E90
- lsls r0, r5, 1
- add r0, r9
- ldr r1, _080F7E8C @ =0x0000ffff
- strh r1, [r0]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- adds r4, r5, 0x1
- b _080F7EE2
- .align 2, 0
-_080F7E84: .4byte gUnknown_083E53C8
-_080F7E88: .4byte gSaveBlock1 + 0x2D94
-_080F7E8C: .4byte 0x0000ffff
-_080F7E90:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- mov r1, r10
- bl __umodsi3
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- adds r4, r5, 0x1
- lsls r6, r5, 1
- cmp r5, 0x5
- bhi _080F7ECC
- mov r3, r8
- ldrh r0, [r3]
- b _080F7EC2
-_080F7EB2:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r5, 0x5
- bhi _080F7ECC
- lsls r0, r1, 2
- adds r0, r3, r0
- ldrh r0, [r0]
-_080F7EC2:
- subs r0, r2, r0
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r0, 0
- bgt _080F7EB2
-_080F7ECC:
- cmp r1, 0x6
- bne _080F7ED2
- movs r1, 0
-_080F7ED2:
- lsls r0, r1, 2
- add r0, sp
- ldrh r0, [r0]
- bl sub_80EB784
- mov r2, r9
- adds r1, r2, r6
- strh r0, [r1]
-_080F7EE2:
- lsls r0, r4, 16
- lsrs r5, r0, 16
- cmp r5, 0x9
- bls _080F7E56
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80F7DC0
-
- thumb_func_start sub_80F7EFC
-sub_80F7EFC: @ 80F7EFC
- ldr r0, _080F7F08 @ =gSaveBlock1 + 0x2D94
- adds r0, 0x29
- movs r1, 0
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080F7F08: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7EFC
-
- thumb_func_start sub_80F7F0C
-sub_80F7F0C: @ 80F7F0C
- ldr r1, _080F7F14 @ =gSaveBlock1 + 0x2D94
- movs r0, 0
- strb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_080F7F14: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7F0C
-
- thumb_func_start sub_80F7F18
-sub_80F7F18: @ 80F7F18
- push {lr}
- bl sub_8109A20
- pop {r0}
- bx r0
- thumb_func_end sub_80F7F18
-
- thumb_func_start sub_80F7F24
-sub_80F7F24: @ 80F7F24
- push {lr}
- bl sub_80F8428
- pop {r0}
- bx r0
- thumb_func_end sub_80F7F24
-
- thumb_func_start sub_80F7F30
-sub_80F7F30: @ 80F7F30
- push {lr}
- bl GetCurrentMauvilleOldMan
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080F7F76
- lsls r0, 2
- ldr r1, _080F7F48 @ =_080F7F4C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F7F48: .4byte _080F7F4C
- .align 2, 0
-_080F7F4C:
- .4byte _080F7F60
- .4byte _080F7F66
- .4byte _080F7F72
- .4byte _080F7F6C
- .4byte _080F7F76
-_080F7F60:
- bl sub_80F7EFC
- b _080F7F76
-_080F7F66:
- bl sub_80F7F0C
- b _080F7F76
-_080F7F6C:
- bl sub_80F7F24
- b _080F7F76
-_080F7F72:
- bl sub_80F7F18
-_080F7F76:
- bl sub_80F83D0
- pop {r0}
- bx r0
- thumb_func_end sub_80F7F30
-
- thumb_func_start sub_80F7F80
-sub_80F7F80: @ 80F7F80
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080F7FA8 @ =sub_80F8184
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080F7FAC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x12]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7FA8: .4byte sub_80F8184
-_080F7FAC: .4byte gTasks
- thumb_func_end sub_80F7F80
-
- thumb_func_start sub_80F7FB0
-sub_80F7FB0: @ 80F7FB0
- push {r4-r7,lr}
- adds r6, r1, 0
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x5
- bls _080F7FBE
- b _080F817A
-_080F7FBE:
- lsls r0, 2
- ldr r1, _080F7FC8 @ =_080F7FCC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F7FC8: .4byte _080F7FCC
- .align 2, 0
-_080F7FCC:
- .4byte _080F7FE4
- .4byte _080F817A
- .4byte _080F8040
- .4byte _080F8074
- .4byte _080F8074
- .4byte _080F817A
-_080F7FE4:
- ldr r2, _080F8034 @ =gSaveBlock1 + 0x2D94
- ldr r0, _080F8038 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- adds r1, r2, 0
- adds r1, 0xE
- cmp r0, 0
- bne _080F7FF4
- adds r1, r2, 0x2
-_080F7FF4:
- adds r2, r1, 0
- adds r1, r6, 0
- adds r1, 0xC
- movs r3, 0x5
-_080F7FFC:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080F7FFC
- ldr r2, _080F803C @ =0x0000ffff
- adds r4, r2, 0
- movs r2, 0
- adds r1, r6, 0
- adds r1, 0x18
- movs r3, 0x5
-_080F8016:
- ldrh r0, [r1]
- orrs r0, r4
- strh r0, [r1]
- strh r2, [r1, 0x2]
- strh r2, [r1, 0x4]
- strh r2, [r1, 0x6]
- adds r1, 0x8
- subs r3, 0x1
- cmp r3, 0
- bge _080F8016
- movs r0, 0
- strb r0, [r6]
- strb r0, [r6, 0x1]
- strh r0, [r6, 0x4]
- b _080F817A
- .align 2, 0
-_080F8034: .4byte gSaveBlock1 + 0x2D94
-_080F8038: .4byte gSpecialVar_0x8004
-_080F803C: .4byte 0x0000ffff
-_080F8040:
- ldrb r1, [r6]
- lsls r1, 1
- adds r0, r6, 0
- adds r0, 0xC
- adds r0, r1
- ldrh r4, [r0]
- lsrs r0, r4, 9
- ldr r1, _080F8070 @ =0x000001ff
- ands r1, r4
- bl sub_814A2D0
- adds r1, r0, 0
- movs r0, 0
- strh r0, [r6, 0x4]
- movs r2, 0x3
- ands r2, r4
- lsrs r4, 3
- movs r0, 0x1
- ands r4, r0
- adds r2, r4
- adds r0, r6, 0
- bl sub_814A2EC
- b _080F817A
- .align 2, 0
-_080F8070: .4byte 0x000001ff
-_080F8074:
- ldrb r1, [r6, 0x1]
- lsls r0, r1, 3
- adds r0, 0x18
- adds r7, r6, r0
- ldrb r0, [r6, 0x3]
- cmp r0, 0x1
- beq _080F8124
- cmp r0, 0x1
- bgt _080F808C
- cmp r0, 0
- beq _080F8092
- b _080F817A
-_080F808C:
- cmp r0, 0xFE
- beq _080F8170
- b _080F817A
-_080F8092:
- ldrb r0, [r6, 0x2]
- cmp r0, 0
- bne _080F80D0
- cmp r1, 0x6
- beq _080F80A2
- ldrh r0, [r7]
- cmp r0, 0xFF
- bne _080F80A6
-_080F80A2:
- movs r0, 0xFE
- b _080F8178
-_080F80A6:
- ldrh r0, [r7, 0x2]
- strb r0, [r6, 0x2]
- ldrh r0, [r7]
- cmp r0, 0x32
- bhi _080F80CA
- movs r1, 0x3
- bl __udivsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r0, r1, 1
- adds r0, r1
- adds r0, 0xF9
- lsls r0, 16
- lsrs r0, 16
- bl m4aSongNumStart
-_080F80CA:
- movs r0, 0x1
- strb r0, [r6, 0x3]
- b _080F8114
-_080F80D0:
- ldrh r1, [r6, 0xA]
- movs r2, 0xA
- ldrsh r0, [r6, r2]
- cmp r0, 0xA
- ble _080F80E0
- ldrh r0, [r6, 0x6]
- subs r0, 0x2
- strh r0, [r6, 0x6]
-_080F80E0:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080F80EE
- ldrh r0, [r6, 0x8]
- adds r0, 0x40
- b _080F80F2
-_080F80EE:
- ldrh r0, [r6, 0x8]
- subs r0, 0x40
-_080F80F2:
- strh r0, [r6, 0x8]
- ldr r4, _080F811C @ =gMPlay_SE2
- ldr r5, _080F8120 @ =0x0000ffff
- ldrh r2, [r6, 0x6]
- adds r0, r4, 0
- adds r1, r5, 0
- bl m4aMPlayVolumeControl
- movs r0, 0x8
- ldrsh r2, [r6, r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl m4aMPlayPitchControl
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
-_080F8114:
- ldrb r0, [r6, 0x2]
- subs r0, 0x1
- strb r0, [r6, 0x2]
- b _080F817A
- .align 2, 0
-_080F811C: .4byte gMPlay_SE2
-_080F8120: .4byte 0x0000ffff
-_080F8124:
- adds r0, r1, 0x1
- movs r1, 0
- strb r0, [r6, 0x1]
- strb r1, [r6, 0x3]
- ldrh r0, [r7]
- cmp r0, 0x32
- bhi _080F817A
- ldrh r0, [r7, 0x6]
- lsls r0, 4
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r6, 0x6]
- ldr r4, _080F8168 @ =gMPlay_SE2
- ldr r5, _080F816C @ =0x0000ffff
- ldrh r2, [r6, 0x6]
- adds r0, r4, 0
- adds r1, r5, 0
- bl m4aMPlayVolumeControl
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r7, [r7, 0x4]
- adds r0, r7
- strh r0, [r6, 0x8]
- movs r0, 0x8
- ldrsh r2, [r6, r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl m4aMPlayPitchControl
- b _080F817A
- .align 2, 0
-_080F8168: .4byte gMPlay_SE2
-_080F816C: .4byte 0x0000ffff
-_080F8170:
- ldr r0, _080F8180 @ =gMPlay_SE2
- bl m4aMPlayStop
- movs r0, 0xFF
-_080F8178:
- strb r0, [r6, 0x3]
-_080F817A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8180: .4byte gMPlay_SE2
- thumb_func_end sub_80F7FB0
-
- thumb_func_start sub_80F8184
-sub_80F8184: @ 80F8184
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080F81B4 @ =gTasks
- adds r5, r0, r1
- ldr r1, _080F81B8 @ =gUnknown_03005DA0
- adds r0, r5, 0
- bl sub_80F7FB0
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x5
- bls _080F81A8
- b _080F83C8
-_080F81A8:
- lsls r0, 2
- ldr r1, _080F81BC @ =_080F81C0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F81B4: .4byte gTasks
-_080F81B8: .4byte gUnknown_03005DA0
-_080F81BC: .4byte _080F81C0
- .align 2, 0
-_080F81C0:
- .4byte _080F81D8
- .4byte _080F8218
- .4byte _080F8228
- .4byte _080F82D8
- .4byte _080F83B8
- .4byte _080F82C6
-_080F81D8:
- bl sub_80F7BA0
- ldr r4, _080F820C @ =gMenuWindowPtr
- ldr r0, [r4]
- ldr r1, _080F8210 @ =gWindowConfig_81E6CE4
- bl InitWindowFromConfig
- ldr r0, [r4]
- ldr r1, _080F8214 @ =gStringVar4
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x2
- movs r3, 0x4
- bl sub_8002EB0
- movs r0, 0
- strh r0, [r5, 0xA]
- strh r0, [r5, 0xC]
- strh r0, [r5, 0xE]
- strh r0, [r5, 0x10]
- movs r0, 0x4
- bl FadeOutBGMTemporarily
- movs r0, 0x1
- b _080F83C6
- .align 2, 0
-_080F820C: .4byte gMenuWindowPtr
-_080F8210: .4byte gWindowConfig_81E6CE4
-_080F8214: .4byte gStringVar4
-_080F8218:
- bl IsBGMPausedOrStopped
- lsls r0, 24
- cmp r0, 0
- bne _080F8224
- b _080F83C8
-_080F8224:
- movs r0, 0x2
- b _080F83C6
-_080F8228:
- ldr r4, _080F8240 @ =gSaveBlock1 + 0x2D94
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- ldr r0, _080F8244 @ =gStringVar4
- adds r1, r0
- movs r3, 0
- ldrb r0, [r1]
- ldr r7, _080F8248 @ =gUnknown_03005DA0
- ldrh r2, [r5, 0x12]
- ldr r6, _080F824C @ =gUnknown_020388BC
- b _080F825A
- .align 2, 0
-_080F8240: .4byte gSaveBlock1 + 0x2D94
-_080F8244: .4byte gStringVar4
-_080F8248: .4byte gUnknown_03005DA0
-_080F824C: .4byte gUnknown_020388BC
-_080F8250:
- adds r1, 0x1
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- ldrb r0, [r1]
-_080F825A:
- cmp r0, 0
- beq _080F826A
- cmp r0, 0xFE
- beq _080F826A
- cmp r0, 0xFC
- beq _080F826A
- cmp r0, 0xFF
- bne _080F8250
-_080F826A:
- cmp r2, 0
- bne _080F8278
- movs r0, 0x10
- ldrsh r1, [r5, r0]
- lsls r1, 1
- adds r0, r4, 0x2
- b _080F8282
-_080F8278:
- movs r2, 0x10
- ldrsh r1, [r5, r2]
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0xE
-_080F8282:
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x3
- ands r1, r0
- lsrs r0, 3
- movs r2, 0x1
- ands r0, r2
- adds r1, r0
- strh r1, [r6]
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- adds r1, r3, 0
- bl __divsi3
- movs r1, 0
- strh r0, [r7, 0x4]
- lsls r0, 16
- cmp r0, 0
- bgt _080F82AC
- movs r0, 0x1
- strh r0, [r7, 0x4]
-_080F82AC:
- ldrh r0, [r5, 0x10]
- adds r0, 0x1
- strh r0, [r5, 0x10]
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _080F82BE
- movs r0, 0x3
- b _080F82C0
-_080F82BE:
- movs r0, 0x5
-_080F82C0:
- strh r0, [r5, 0x8]
- strh r1, [r5, 0xA]
- b _080F83C8
-_080F82C6:
- ldrh r1, [r5, 0xC]
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _080F82D2
- b _080F83C4
-_080F82D2:
- subs r0, r1, 0x1
- strh r0, [r5, 0xC]
- b _080F83C8
-_080F82D8:
- ldr r1, _080F8304 @ =gStringVar4
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- adds r0, r1
- ldrb r4, [r0]
- cmp r4, 0xFF
- bne _080F830C
- movs r0, 0xC8
- lsls r0, 1
- movs r1, 0x6
- bl FadeInNewBGM
- ldr r0, _080F8308 @ =gMPlay_SE2
- movs r1, 0x2
- bl m4aMPlayFadeOutTemporarily
- bl EnableBothScriptContexts
- adds r0, r6, 0
- bl DestroyTask
- b _080F83C8
- .align 2, 0
-_080F8304: .4byte gStringVar4
-_080F8308: .4byte gMPlay_SE2
-_080F830C:
- cmp r4, 0
- bne _080F832C
- ldr r0, _080F8328 @ =gMenuWindowPtr
- ldr r0, [r0]
- bl sub_8003418
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- movs r0, 0x2
- strh r0, [r5, 0x8]
- strh r4, [r5, 0xC]
- b _080F83C8
- .align 2, 0
-_080F8328: .4byte gMenuWindowPtr
-_080F832C:
- cmp r4, 0xFE
- bne _080F8340
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0xE]
- movs r0, 0x2
- strh r0, [r5, 0x8]
- strh r1, [r5, 0xC]
- b _080F83C8
-_080F8340:
- cmp r4, 0xFC
- bne _080F8354
- ldrh r0, [r5, 0xE]
- adds r0, 0x2
- strh r0, [r5, 0xE]
- movs r0, 0x2
- strh r0, [r5, 0x8]
- movs r0, 0x8
- strh r0, [r5, 0xC]
- b _080F83C8
-_080F8354:
- cmp r4, 0x37
- bne _080F8374
- movs r4, 0
- strb r4, [r0]
- ldr r0, _080F8370 @ =gMenuWindowPtr
- ldr r0, [r0]
- bl sub_8003418
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- strh r4, [r5, 0xC]
- b _080F83C8
- .align 2, 0
-_080F8370: .4byte gMenuWindowPtr
-_080F8374:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080F8394
- cmp r0, 0x1
- bgt _080F8386
- cmp r0, 0
- beq _080F838C
- b _080F83C8
-_080F8386:
- cmp r0, 0x2
- beq _080F83A0
- b _080F83C8
-_080F838C:
- ldr r0, _080F839C @ =gMenuWindowPtr
- ldr r0, [r0]
- bl sub_8003418
-_080F8394:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- b _080F83C8
- .align 2, 0
-_080F839C: .4byte gMenuWindowPtr
-_080F83A0:
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0xE]
- strh r1, [r5, 0xA]
- ldr r0, _080F83B4 @ =gUnknown_03005DA0
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0xC]
- movs r0, 0x4
- b _080F83C6
- .align 2, 0
-_080F83B4: .4byte gUnknown_03005DA0
-_080F83B8:
- ldrh r0, [r5, 0xC]
- subs r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _080F83C8
-_080F83C4:
- movs r0, 0x3
-_080F83C6:
- strh r0, [r5, 0x8]
-_080F83C8:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80F8184
-
- thumb_func_start sub_80F83D0
-sub_80F83D0: @ 80F83D0
- push {r4,lr}
- ldr r4, _080F83F4 @ =0x00004010
- bl GetCurrentMauvilleOldMan
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 8
- movs r0, 0x8A
- lsls r0, 15
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- bl VarSet
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F83F4: .4byte 0x00004010
- thumb_func_end sub_80F83D0
-
- thumb_func_start sub_80F83F8
-sub_80F83F8: @ 80F83F8
- push {r4,lr}
- ldr r0, _080F8424 @ =gSaveBlock1 + 0x2D94
- movs r2, 0
- movs r1, 0x3
- strb r1, [r0]
- strb r2, [r0, 0x1]
- movs r4, 0
- movs r3, 0xFF
- adds r1, r0, 0x4
- movs r2, 0x3
-_080F840C:
- strb r4, [r1]
- ldrb r0, [r1, 0x4]
- orrs r0, r3
- strb r0, [r1, 0x4]
- adds r1, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _080F840C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8424: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F83F8
-
- thumb_func_start sub_80F8428
-sub_80F8428: @ 80F8428
- ldr r0, _080F8434 @ =gSaveBlock1 + 0x2D94
- movs r2, 0
- movs r1, 0x3
- strb r1, [r0]
- strb r2, [r0, 0x1]
- bx lr
- .align 2, 0
-_080F8434: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F8428
-
- thumb_func_start sub_80F8438
-sub_80F8438: @ 80F8438
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x32
- bne _080F8444
- movs r0, 0
-_080F8444:
- bl GetGameStat
- pop {r1}
- bx r1
- thumb_func_end sub_80F8438
-
- thumb_func_start sub_80F844C
-sub_80F844C: @ 80F844C
- push {lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r1, _080F8460 @ =gUnknown_083E53E0
-_080F8454:
- ldrb r0, [r1]
- cmp r0, r3
- bne _080F8464
- adds r0, r1, 0
- b _080F846E
- .align 2, 0
-_080F8460: .4byte gUnknown_083E53E0
-_080F8464:
- adds r1, 0x10
- adds r2, 0x1
- cmp r2, 0x23
- ble _080F8454
- ldr r0, _080F8474 @ =gUnknown_083E5610
-_080F846E:
- pop {r1}
- bx r1
- .align 2, 0
-_080F8474: .4byte gUnknown_083E5610
- thumb_func_end sub_80F844C
-
- thumb_func_start sub_80F8478
-sub_80F8478: @ 80F8478
- push {lr}
- bl sub_80F844C
- ldr r0, [r0, 0x4]
- pop {r1}
- bx r1
- thumb_func_end sub_80F8478
-
- thumb_func_start sub_80F8484
-sub_80F8484: @ 80F8484
- push {lr}
- bl sub_80F844C
- ldr r0, [r0, 0xC]
- pop {r1}
- bx r1
- thumb_func_end sub_80F8484
-
- thumb_func_start sub_80F8490
-sub_80F8490: @ 80F8490
- push {lr}
- bl sub_80F844C
- ldr r0, [r0, 0x8]
- pop {r1}
- bx r1
- thumb_func_end sub_80F8490
-
- thumb_func_start sub_80F849C
-sub_80F849C: @ 80F849C
- push {lr}
- movs r1, 0
- ldr r2, _080F84C4 @ =gSaveBlock1 + 0x2D94
- ldrb r0, [r2, 0x4]
- cmp r0, 0
- beq _080F84BC
- adds r2, 0x4
-_080F84AA:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bhi _080F84BC
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F84AA
-_080F84BC:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080F84C4: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F849C
-
- thumb_func_start sub_80F84C8
-sub_80F84C8: @ 80F84C8
- lsls r0, 2
- ldr r1, _080F84E8 @ =gSaveBlock1 + 0x2DB8
- adds r0, r1
- ldrb r2, [r0]
- ldrb r1, [r0, 0x1]
- lsls r1, 8
- orrs r2, r1
- ldrb r1, [r0, 0x2]
- lsls r1, 16
- orrs r2, r1
- ldrb r0, [r0, 0x3]
- lsls r0, 24
- orrs r2, r0
- adds r0, r2, 0
- bx lr
- .align 2, 0
-_080F84E8: .4byte gSaveBlock1 + 0x2DB8
- thumb_func_end sub_80F84C8
-
- thumb_func_start sub_80F84EC
-sub_80F84EC: @ 80F84EC
- lsls r0, 2
- ldr r2, _080F8504 @ =gSaveBlock1 + 0x2DB8
- adds r0, r2
- strb r1, [r0]
- lsrs r2, r1, 8
- strb r2, [r0, 0x1]
- lsrs r2, r1, 16
- strb r2, [r0, 0x2]
- lsrs r1, 24
- strb r1, [r0, 0x3]
- bx lr
- .align 2, 0
-_080F8504: .4byte gSaveBlock1 + 0x2DB8
- thumb_func_end sub_80F84EC
-
- thumb_func_start sub_80F8508
-sub_80F8508: @ 80F8508
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080F8528 @ =gSaveBlock1 + 0x2D94
- adds r0, 0x4
- adds r0, r5, r0
- ldrb r0, [r0]
- bl sub_80F8438
- adds r4, r0, 0
- adds r0, r5, 0
- bl sub_80F84C8
- cmp r4, r0
- bhi _080F852C
- movs r0, 0
- b _080F852E
- .align 2, 0
-_080F8528: .4byte gSaveBlock1 + 0x2D94
-_080F852C:
- movs r0, 0x1
-_080F852E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F8508
-
- thumb_func_start sub_80F8534
-sub_80F8534: @ 80F8534
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r4, r0, 3
- subs r4, r0
- ldr r0, _080F855C @ =gSaveBlock1 + 0x2D9C
- adds r4, r0
- adds r0, r5, 0
- movs r1, 0xFF
- movs r2, 0x8
- bl memset
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x7
- bl memcpy
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F855C: .4byte gSaveBlock1 + 0x2D9C
- thumb_func_end sub_80F8534
-
- thumb_func_start sub_80F8560
-sub_80F8560: @ 80F8560
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r5, r0, 3
- subs r5, r0
- ldr r0, _080F8594 @ =gSaveBlock1 + 0x2D9C
- adds r5, r0
- adds r0, r6, 0
- bl StringLength
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0xFF
- movs r2, 0x7
- bl memset
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl StringCopyN
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8594: .4byte gSaveBlock1 + 0x2D9C
- thumb_func_end sub_80F8560
-
- thumb_func_start sub_80F8598
-sub_80F8598: @ 80F8598
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r0, _080F85EC @ =gSaveBlock1 + 0x2D94
- adds r0, 0x4
- adds r0, r5, r0
- strb r6, [r0]
- ldr r1, _080F85F0 @ =gSaveBlock2
- adds r0, r5, 0
- bl sub_80F8560
- lsls r4, r6, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80F8438
- adds r1, r0, 0
- adds r0, r5, 0
- bl sub_80F84EC
- ldr r5, _080F85F4 @ =gStringVar1
- adds r0, r4, 0
- bl sub_80F8438
- adds r1, r0, 0
- adds r0, r5, 0
- movs r2, 0
- movs r3, 0xA
- bl ConvertIntToDecimalStringN
- ldr r4, _080F85F8 @ =gStringVar2
- adds r0, r6, 0
- bl sub_80F8490
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F85EC: .4byte gSaveBlock1 + 0x2D94
-_080F85F0: .4byte gSaveBlock2
-_080F85F4: .4byte gStringVar1
-_080F85F8: .4byte gStringVar2
- thumb_func_end sub_80F8598
-
- thumb_func_start sub_80F85FC
-sub_80F85FC: @ 80F85FC
- push {r4-r7,lr}
- adds r7, r0, 0
- adds r6, r1, 0
- movs r5, 0
- cmp r5, r6
- bge _080F8612
-_080F8608:
- adds r0, r7, r5
- strb r5, [r0]
- adds r5, 0x1
- cmp r5, r6
- blt _080F8608
-_080F8612:
- cmp r6, 0
- ble _080F8648
- adds r5, r6, 0
-_080F8618:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __modsi3
- adds r4, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __modsi3
- adds r4, r7, r4
- ldrb r2, [r4]
- adds r0, r7, r0
- ldrb r1, [r0]
- strb r1, [r4]
- strb r2, [r0]
- subs r5, 0x1
- cmp r5, 0
- bne _080F8618
-_080F8648:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80F85FC
-
- thumb_func_start sub_80F8650
-sub_80F8650: @ 80F8650
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r7, sp
- mov r10, sp
- ldr r0, _080F86D4 @ =gUnknown_083E5620
- ldr r0, [r0]
- lsls r0, 3
- lsrs r0, 3
- adds r0, 0x3
- lsrs r0, 2
- lsls r0, 2
- mov r1, sp
- subs r1, r0
- mov sp, r1
- mov r8, sp
- mov r0, sp
- movs r1, 0x24
- bl sub_80F85FC
- movs r5, 0
- ldr r0, _080F86D8 @ =gUnknown_083E53E0
- mov r9, r0
- ldr r3, _080F86DC @ =gSaveBlock1 + 0x2D94
-_080F8686:
- mov r1, r8
- adds r0, r1, r5
- ldrb r0, [r0]
- lsls r0, 4
- add r0, r9
- ldrb r4, [r0]
- ldrb r6, [r0, 0x1]
- movs r1, 0
- ldrb r0, [r3, 0x4]
- cmp r0, r4
- beq _080F86AC
- ldr r2, _080F86E0 @ =gSaveBlock1 + 0x2D98
-_080F869E:
- adds r1, 0x1
- cmp r1, 0x3
- bgt _080F86AC
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, r4
- bne _080F869E
-_080F86AC:
- cmp r1, 0x4
- bne _080F86E4
- adds r0, r4, 0
- str r3, [r7]
- bl sub_80F8438
- ldr r3, [r7]
- cmp r0, r6
- bcc _080F86E4
- movs r0, 0x1
- strb r0, [r3, 0x1]
- bl sub_80F849C
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl sub_80F8598
- movs r0, 0x1
- b _080F86EC
- .align 2, 0
-_080F86D4: .4byte gUnknown_083E5620
-_080F86D8: .4byte gUnknown_083E53E0
-_080F86DC: .4byte gSaveBlock1 + 0x2D94
-_080F86E0: .4byte gSaveBlock1 + 0x2D98
-_080F86E4:
- adds r5, 0x1
- cmp r5, 0x23
- ble _080F8686
- movs r0, 0
-_080F86EC:
- mov sp, r10
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F8650
-
- thumb_func_start sub_80F8700
-sub_80F8700: @ 80F8700
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080F8748 @ =gSaveBlock1 + 0x2D94
- adds r0, 0x4
- adds r0, r5, r0
- ldrb r6, [r0]
- ldr r4, _080F874C @ =gStringVar1
- adds r0, r5, 0
- bl sub_80F84C8
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0xA
- bl ConvertIntToDecimalStringN
- ldr r4, _080F8750 @ =gStringVar2
- adds r0, r6, 0
- bl sub_80F8490
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldr r1, _080F8754 @ =gStringVar3
- adds r0, r5, 0
- bl sub_80F8534
- adds r0, r6, 0
- bl sub_80F8484
- bl ShowFieldMessage
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8748: .4byte gSaveBlock1 + 0x2D94
-_080F874C: .4byte gStringVar1
-_080F8750: .4byte gStringVar2
-_080F8754: .4byte gStringVar3
- thumb_func_end sub_80F8700
-
- thumb_func_start sub_80F8758
-sub_80F8758: @ 80F8758
- push {r4-r6,lr}
- bl sub_80F849C
- adds r3, r0, 0
- lsls r3, 25
- movs r0, 0x80
- lsls r0, 19
- adds r3, r0
- lsrs r3, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x19
- bl MenuDrawTextWindow
- movs r4, 0
- ldr r1, _080F87BC @ =gSaveBlock1 + 0x2D94
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _080F87A4
- adds r6, r1, 0x4
- movs r5, 0x80
- lsls r5, 18
-_080F8784:
- bl sub_80F8478
- lsrs r2, r5, 24
- movs r1, 0x1
- bl MenuPrint
- movs r1, 0x80
- lsls r1, 18
- adds r5, r1
- adds r4, 0x1
- cmp r4, 0x3
- bgt _080F87A4
- adds r0, r4, r6
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F8784
-_080F87A4:
- ldr r0, _080F87C0 @ =gPCText_Cancel
- lsls r2, r4, 25
- movs r1, 0x80
- lsls r1, 18
- adds r2, r1
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F87BC: .4byte gSaveBlock1 + 0x2D94
-_080F87C0: .4byte gPCText_Cancel
- thumb_func_end sub_80F8758
-
- thumb_func_start sub_80F87C4
-sub_80F87C4: @ 80F87C4
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080F87E4 @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _080F87E8
- cmp r5, 0x1
- beq _080F8810
- b _080F8862
- .align 2, 0
-_080F87E4: .4byte gTasks
-_080F87E8:
- bl sub_80F8758
- bl sub_80F849C
- adds r3, r0, 0
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- str r5, [sp]
- movs r0, 0x18
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x2
- bl InitMenu
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080F8862
-_080F8810:
- bl ProcessMenuInput
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _080F8862
- adds r0, 0x1
- cmp r4, r0
- beq _080F8832
- bl sub_80F849C
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _080F8840
-_080F8832:
- ldr r1, _080F883C @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- b _080F8848
- .align 2, 0
-_080F883C: .4byte gScriptResult
-_080F8840:
- ldr r0, _080F886C @ =gScriptResult
- strh r5, [r0]
- ldr r0, _080F8870 @ =gUnknown_03000748
- strb r4, [r0]
-_080F8848:
- bl HandleDestroyMenuCursors
- movs r0, 0
- movs r1, 0
- movs r2, 0x19
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080F8862:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F886C: .4byte gScriptResult
-_080F8870: .4byte gUnknown_03000748
- thumb_func_end sub_80F87C4
-
- thumb_func_start sub_80F8874
-sub_80F8874: @ 80F8874
- push {lr}
- ldr r0, _080F8884 @ =sub_80F87C4
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080F8884: .4byte sub_80F87C4
- thumb_func_end sub_80F8874
-
- thumb_func_start sub_80F8888
-sub_80F8888: @ 80F8888
- push {lr}
- ldr r0, _080F8898 @ =gUnknown_03000748
- ldrb r0, [r0]
- bl sub_80F8700
- pop {r0}
- bx r0
- .align 2, 0
-_080F8898: .4byte gUnknown_03000748
- thumb_func_end sub_80F8888
-
- thumb_func_start sub_80F889C
-sub_80F889C: @ 80F889C
- push {lr}
- bl sub_80F849C
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80F889C
-
- thumb_func_start sub_80F88AC
-sub_80F88AC: @ 80F88AC
- push {r4,r5,lr}
- ldr r1, _080F88C8 @ =gSaveBlock1 + 0x2D94
- ldr r5, _080F88CC @ =gUnknown_03000748
- ldrb r0, [r5]
- adds r1, 0x4
- adds r1, r0, r1
- ldrb r4, [r1]
- bl sub_80F8508
- cmp r0, 0x1
- beq _080F88D0
- movs r0, 0
- b _080F88DA
- .align 2, 0
-_080F88C8: .4byte gSaveBlock1 + 0x2D94
-_080F88CC: .4byte gUnknown_03000748
-_080F88D0:
- ldrb r0, [r5]
- adds r1, r4, 0
- bl sub_80F8598
- movs r0, 0x1
-_080F88DA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F88AC
-
- thumb_func_start sub_80F88E0
-sub_80F88E0: @ 80F88E0
- push {lr}
- ldr r0, _080F88F0 @ =gSaveBlock1 + 0x2D94
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080F88F4
- movs r0, 0x1
- b _080F88F6
- .align 2, 0
-_080F88F0: .4byte gSaveBlock1 + 0x2D94
-_080F88F4:
- movs r0, 0
-_080F88F6:
- pop {r1}
- bx r1
- thumb_func_end sub_80F88E0
-
- thumb_func_start sub_80F88FC
-sub_80F88FC: @ 80F88FC
- push {lr}
- bl sub_80F8650
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80F88FC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/mystery_event_script.s b/asm/mystery_event_script.s
deleted file mode 100644
index 02b6a0a48..000000000
--- a/asm/mystery_event_script.s
+++ /dev/null
@@ -1,831 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start unref_sub_81261B4
-unref_sub_81261B4: @ 81261B4
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r7, r1, 0
- ldrb r0, [r5]
- cmp r0, 0x1
- bne _08126204
- ldrb r0, [r5, 0x11]
- cmp r0, 0xF
- bne _08126204
- adds r6, r5, 0
- adds r6, 0x12
- adds r0, r6, 0
- bl sub_812618C
- cmp r0, 0
- bne _08126204
- adds r0, r5, 0
- adds r0, 0x16
- bl sub_812618C
- adds r4, r0, 0
- subs r4, r7
- adds r4, r5
- adds r0, r5, 0
- adds r0, 0x1A
- bl sub_812618C
- adds r1, r0, 0
- subs r1, r7
- adds r1, r5
- subs r1, r4
- adds r0, r4, 0
- bl sub_812616C
- adds r1, r0, 0
- adds r0, r6, 0
- bl sub_81261A4
- movs r0, 0x1
- b _08126206
-_08126204:
- movs r0, 0
-_08126206:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_81261B4
-
- thumb_func_start unref_sub_812620C
-unref_sub_812620C: @ 812620C
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r7, r1, 0
- ldrb r0, [r5]
- cmp r0, 0x1
- bne _08126260
- ldrb r0, [r5, 0x11]
- cmp r0, 0x10
- bne _08126260
- adds r6, r5, 0
- adds r6, 0x12
- adds r0, r6, 0
- bl sub_812618C
- cmp r0, 0
- bne _08126260
- adds r0, r5, 0
- adds r0, 0x16
- bl sub_812618C
- adds r4, r0, 0
- subs r4, r7
- adds r4, r5
- adds r0, r5, 0
- adds r0, 0x1A
- bl sub_812618C
- adds r1, r0, 0
- subs r1, r7
- adds r1, r5
- subs r1, r4
- adds r0, r4, 0
- bl CalcCRC16
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r6, 0
- bl sub_81261A4
- movs r0, 0x1
- b _08126262
-_08126260:
- movs r0, 0
-_08126262:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_812620C
-
- thumb_func_start sub_8126268
-sub_8126268: @ 8126268
- push {lr}
- movs r2, 0
- ldr r3, _08126284 @ =gSaveBlock1 + 0x3A80
- movs r1, 0
-_08126270:
- adds r0, r3, r1
- ldrb r0, [r0]
- adds r2, r0
- adds r1, 0x1
- cmp r1, 0xB
- bls _08126270
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08126284: .4byte gSaveBlock1 + 0x3A80
- thumb_func_end sub_8126268
-
- thumb_func_start sub_8126288
-sub_8126288: @ 8126288
- push {r4,lr}
- ldr r4, _081262B4 @ =gSaveBlock1 + 0x3A80
- bl sub_8126268
- adds r1, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _081262B0
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _081262B0
- ldrh r0, [r4, 0x2]
- cmp r0, 0
- beq _081262B0
- cmp r1, 0
- beq _081262B0
- subs r0, r4, 0x4
- ldr r0, [r0]
- cmp r1, r0
- beq _081262B8
-_081262B0:
- movs r0, 0
- b _081262BA
- .align 2, 0
-_081262B4: .4byte gSaveBlock1 + 0x3A80
-_081262B8:
- movs r0, 0x1
-_081262BA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8126288
-
- thumb_func_start sub_81262C0
-sub_81262C0: @ 81262C0
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, _081262DC @ =gSaveBlock1 + 0x3A7C
- ldr r2, _081262E0 @ =0x01000008
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_081262DC: .4byte gSaveBlock1 + 0x3A7C
-_081262E0: .4byte 0x01000008
- thumb_func_end sub_81262C0
-
- thumb_func_start sub_81262E4
-sub_81262E4: @ 81262E4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r5, r1, 0
- lsls r2, 16
- lsrs r2, 16
- adds r6, r2, 0
- cmp r3, 0
- beq _08126304
- cmp r1, 0
- beq _08126304
- cmp r2, 0
- bne _0812630A
-_08126304:
- bl sub_81262C0
- b _0812632A
-_0812630A:
- ldr r4, _08126330 @ =gSaveBlock1
- movs r1, 0xEA
- lsls r1, 6
- adds r0, r4, r1
- strb r3, [r0]
- adds r1, 0x1
- adds r0, r4, r1
- strb r5, [r0]
- adds r1, 0x1
- adds r0, r4, r1
- strh r6, [r0]
- bl sub_8126268
- ldr r1, _08126334 @ =0x00003a7c
- adds r4, r1
- str r0, [r4]
-_0812632A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08126330: .4byte gSaveBlock1
-_08126334: .4byte 0x00003a7c
- thumb_func_end sub_81262E4
-
- thumb_func_start sub_8126338
-sub_8126338: @ 8126338
- push {r4,r5,lr}
- ldr r4, _0812634C @ =gSaveBlock1 + 0x3A80
- bl sub_8126288
- cmp r0, 0
- bne _08126350
- bl sub_81262C0
- movs r0, 0
- b _0812636E
- .align 2, 0
-_0812634C: .4byte gSaveBlock1 + 0x3A80
-_08126350:
- ldrh r5, [r4, 0x2]
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- strb r0, [r4, 0x1]
- lsls r0, 24
- cmp r0, 0
- bne _08126364
- bl sub_81262C0
- b _0812636C
-_08126364:
- bl sub_8126268
- subs r1, r4, 0x4
- str r0, [r1]
-_0812636C:
- adds r0, r5, 0
-_0812636E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8126338
-
- thumb_func_start script_status_stop_and_ret_1
-script_status_stop_and_ret_1: @ 8126374
- push {lr}
- bl StopScript
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end script_status_stop_and_ret_1
-
- thumb_func_start sub_8126380
-sub_8126380: @ 8126380
- push {r4-r7,lr}
- adds r7, r0, 0
- bl ScriptReadWord
- str r0, [r7, 0x68]
- adds r0, r7, 0
- bl ScriptReadHalfword
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r7, 0
- bl ScriptReadWord
- adds r6, r0, 0
- adds r0, r7, 0
- bl ScriptReadHalfword
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r7, 0
- bl ScriptReadWord
- adds r3, r0, 0
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_8126098
- cmp r0, 0x1
- bne _081263C4
- str r0, [r7, 0x70]
- b _081263C8
-_081263C4:
- bl sub_81260D0
-_081263C8:
- movs r0, 0x1
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8126380
-
- thumb_func_start sub_81263D0
-sub_81263D0: @ 81263D0
- movs r0, 0
- bx lr
- thumb_func_end sub_81263D0
-
- thumb_func_start sub_81263D4
-sub_81263D4: @ 81263D4
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- str r2, [r0, 0x6C]
- movs r0, 0
- bx lr
- thumb_func_end sub_81263D4
-
- thumb_func_start sub_81263E4
-sub_81263E4: @ 81263E4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r5, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadWord
- ldr r1, [r4, 0x68]
- subs r0, r1
- ldr r1, [r4, 0x64]
- adds r1, r0, r1
- cmp r5, 0xFF
- beq _08126408
- ldr r0, [r4, 0x6C]
- cmp r5, r0
- bne _0812640E
-_08126408:
- ldr r0, _08126418 @ =gStringVar4
- bl StringExpandPlaceholders
-_0812640E:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08126418: .4byte gStringVar4
- thumb_func_end sub_81263E4
-
- thumb_func_start sub_812641C
-sub_812641C: @ 812641C
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- ldr r1, [r4, 0x68]
- subs r0, r1
- ldr r1, [r4, 0x64]
- adds r0, r1
- bl ScriptContext2_RunNewScript
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812641C
-
- thumb_func_start sub_8126438
-sub_8126438: @ 8126438
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- bl IsEnigmaBerryValid
- mov r8, r0
- adds r0, r7, 0
- bl ScriptReadWord
- adds r4, r0, 0
- ldr r0, [r7, 0x68]
- subs r4, r0
- ldr r0, [r7, 0x64]
- adds r4, r0
- ldr r6, _08126484 @ =gStringVar1
- ldr r5, _08126488 @ =gSaveBlock1 + 0x3160
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x7
- bl StringCopyN
- adds r0, r4, 0
- bl SetEnigmaBerry
- ldr r4, _0812648C @ =gStringVar2
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x7
- bl StringCopyN
- mov r0, r8
- cmp r0, 0
- bne _08126498
- ldr r0, _08126490 @ =gStringVar4
- ldr r1, _08126494 @ =gOtherText_BerryObtainedDadHasIt
- b _081264B8
- .align 2, 0
-_08126484: .4byte gStringVar1
-_08126488: .4byte gSaveBlock1 + 0x3160
-_0812648C: .4byte gStringVar2
-_08126490: .4byte gStringVar4
-_08126494: .4byte gOtherText_BerryObtainedDadHasIt
-_08126498:
- adds r0, r6, 0
- adds r1, r4, 0
- bl StringCompare
- cmp r0, 0
- beq _081264B4
- ldr r0, _081264AC @ =gStringVar4
- ldr r1, _081264B0 @ =gOtherText_BerryTransformed
- b _081264B8
- .align 2, 0
-_081264AC: .4byte gStringVar4
-_081264B0: .4byte gOtherText_BerryTransformed
-_081264B4:
- ldr r0, _081264D4 @ =gStringVar4
- ldr r1, _081264D8 @ =gOtherText_BerryAlreadyObtained
-_081264B8:
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [r7, 0x6C]
- bl IsEnigmaBerryValid
- cmp r0, 0x1
- bne _081264E0
- ldr r0, _081264DC @ =0x0000402d
- movs r1, 0x1
- bl VarSet
- b _081264E4
- .align 2, 0
-_081264D4: .4byte gStringVar4
-_081264D8: .4byte gOtherText_BerryAlreadyObtained
-_081264DC: .4byte 0x0000402d
-_081264E0:
- movs r0, 0x1
- str r0, [r7, 0x6C]
-_081264E4:
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8126438
-
- thumb_func_start sub_81264F0
-sub_81264F0: @ 81264F0
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, [r4, 0x8]
- ldrb r0, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- bl GiveGiftRibbonToParty
- ldr r0, _0812651C @ =gStringVar4
- ldr r1, _08126520 @ =gOtherText_SpecialRibbonReceived
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [r4, 0x6C]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0812651C: .4byte gStringVar4
-_08126520: .4byte gOtherText_SpecialRibbonReceived
- thumb_func_end sub_81264F0
-
- thumb_func_start sub_8126524
-sub_8126524: @ 8126524
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r4, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r4, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadWord
- adds r5, r0, 0
- ldr r0, [r4, 0x68]
- subs r5, r0
- ldr r0, [r4, 0x64]
- adds r5, r0
- adds r0, r4, 0
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, [r4, 0x68]
- subs r1, r0
- ldr r0, [r4, 0x64]
- adds r1, r0
- subs r1, r5
- lsls r1, 16
- lsrs r1, 16
- str r6, [sp]
- adds r0, r5, 0
- mov r2, r9
- mov r3, r8
- bl InitRamScript
- movs r0, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8126524
-
- thumb_func_start sub_812658C
-sub_812658C: @ 812658C
- push {r4,lr}
- adds r4, r0, 0
- bl EnableNationalPokedex
- ldr r0, _081265A8 @ =gStringVar4
- ldr r1, _081265AC @ =gOtherText_DexUpgraded
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [r4, 0x6C]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081265A8: .4byte gStringVar4
-_081265AC: .4byte gOtherText_DexUpgraded
- thumb_func_end sub_812658C
-
- thumb_func_start sub_81265B0
-sub_81265B0: @ 81265B0
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, [r4, 0x8]
- ldrb r0, [r1]
- adds r1, 0x1
- str r1, [r4, 0x8]
- bl sub_80EB890
- ldr r0, _081265D4 @ =gStringVar4
- ldr r1, _081265D8 @ =gOtherText_RareWordAdded
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [r4, 0x6C]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081265D4: .4byte gStringVar4
-_081265D8: .4byte gOtherText_RareWordAdded
- thumb_func_end sub_81265B0
-
- thumb_func_start sub_81265DC
-sub_81265DC: @ 81265DC
- push {r4,r5,lr}
- ldr r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81262E4
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81265DC
-
- thumb_func_start sub_8126608
-sub_8126608: @ 8126608
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x88
- adds r6, r0, 0
- bl ScriptReadWord
- ldr r1, [r6, 0x68]
- subs r0, r1
- ldr r1, [r6, 0x64]
- adds r5, r0, r1
- movs r0, 0x64
- adds r0, r5
- mov r8, r0
- add r4, sp, 0x24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bne _08126658
- ldr r0, _08126650 @ =gStringVar1
- ldr r1, _08126654 @ =gSystemText_Egg
- movs r2, 0xB
- bl StringCopyN
- b _08126662
- .align 2, 0
-_08126650: .4byte gStringVar1
-_08126654: .4byte gSystemText_Egg
-_08126658:
- ldr r0, _08126678 @ =gStringVar1
- ldr r1, _0812667C @ =gSystemText_Pokemon2
- movs r2, 0xB
- bl StringCopyN
-_08126662:
- ldr r0, _08126680 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _0812668C
- ldr r0, _08126684 @ =gStringVar4
- ldr r1, _08126688 @ =gOtherText_PartyIsFull
- bl StringExpandPlaceholders
- movs r0, 0x3
- b _081266F6
- .align 2, 0
-_08126678: .4byte gStringVar1
-_0812667C: .4byte gSystemText_Pokemon2
-_08126680: .4byte gPlayerPartyCount
-_08126684: .4byte gStringVar4
-_08126688: .4byte gOtherText_PartyIsFull
-_0812668C:
- ldr r7, _08126708 @ =gPlayerParty + 5 * 0x64
- adds r0, r7, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- mov r0, sp
- mov r1, r8
- movs r2, 0x24
- bl memcpy
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- beq _081266C6
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0x2
- bl GetNationalPokedexFlag
- adds r0, r4, 0
- movs r1, 0x3
- bl GetNationalPokedexFlag
-_081266C6:
- adds r0, r7, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl ItemIsMail
- lsls r0, 24
- cmp r0, 0
- beq _081266E4
- adds r0, r7, 0
- mov r1, sp
- bl GiveMailToMon2
-_081266E4:
- bl party_compaction
- bl CalculatePlayerPartyCount
- ldr r0, _0812670C @ =gStringVar4
- ldr r1, _08126710 @ =gOtherText_PokeWasSentOver
- bl StringExpandPlaceholders
- movs r0, 0x2
-_081266F6:
- str r0, [r6, 0x6C]
- movs r0, 0
- add sp, 0x88
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08126708: .4byte gPlayerParty + 5 * 0x64
-_0812670C: .4byte gStringVar4
-_08126710: .4byte gOtherText_PokeWasSentOver
- thumb_func_end sub_8126608
-
- thumb_func_start sub_8126714
-sub_8126714: @ 8126714
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, [r4, 0x68]
- subs r1, r0
- ldr r0, [r4, 0x64]
- adds r1, r0
- ldr r0, _08126748 @ =gSaveBlock2 + 0x498
- movs r2, 0xBC
- bl memcpy
- bl sub_813601C
- ldr r0, _0812674C @ =gStringVar4
- ldr r1, _08126750 @ =gOtherText_NewTrainerInHoenn
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [r4, 0x6C]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08126748: .4byte gSaveBlock2 + 0x498
-_0812674C: .4byte gStringVar4
-_08126750: .4byte gOtherText_NewTrainerInHoenn
- thumb_func_end sub_8126714
-
- thumb_func_start sub_8126754
-sub_8126754: @ 8126754
- push {r4,lr}
- adds r4, r0, 0
- bl EnableResetRTC
- ldr r0, _08126770 @ =gStringVar4
- ldr r1, _08126774 @ =gSystemText_ClockAdjustmentUsable
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [r4, 0x6C]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08126770: .4byte gStringVar4
-_08126774: .4byte gSystemText_ClockAdjustmentUsable
- thumb_func_end sub_8126754
-
- thumb_func_start sub_8126778
-sub_8126778: @ 8126778
- push {r4-r6,lr}
- adds r6, r0, 0
- bl ScriptReadWord
- adds r5, r0, 0
- adds r0, r6, 0
- bl ScriptReadWord
- adds r4, r0, 0
- ldr r0, [r6, 0x68]
- subs r4, r0
- ldr r0, [r6, 0x64]
- adds r4, r0
- adds r0, r6, 0
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, [r6, 0x68]
- subs r1, r0
- ldr r0, [r6, 0x64]
- adds r1, r0
- subs r1, r4
- adds r0, r4, 0
- bl sub_812616C
- cmp r5, r0
- beq _081267B6
- movs r0, 0
- str r0, [r6, 0x70]
- movs r0, 0x1
- str r0, [r6, 0x6C]
-_081267B6:
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8126778
-
- thumb_func_start sub_81267C0
-sub_81267C0: @ 81267C0
- push {r4-r6,lr}
- adds r6, r0, 0
- bl ScriptReadWord
- adds r5, r0, 0
- adds r0, r6, 0
- bl ScriptReadWord
- adds r4, r0, 0
- ldr r0, [r6, 0x68]
- subs r4, r0
- ldr r0, [r6, 0x64]
- adds r4, r0
- adds r0, r6, 0
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, [r6, 0x68]
- subs r1, r0
- ldr r0, [r6, 0x64]
- adds r1, r0
- subs r1, r4
- adds r0, r4, 0
- bl CalcCRC16
- lsls r0, 16
- lsrs r0, 16
- cmp r5, r0
- beq _08126802
- movs r0, 0
- str r0, [r6, 0x70]
- movs r0, 0x1
- str r0, [r6, 0x6C]
-_08126802:
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81267C0
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 8a7c153b9..ec6754b86 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -7645,7 +7645,7 @@ _08070AF4:
ldr r7, _08070B28 @ =0x0201c000
ldr r0, [r7]
movs r1, 0x1
- bl sub_803B7C8
+ bl MonTryLearningNewMove
lsls r0, 16
lsrs r4, r0, 16
ldr r1, _08070B2C @ =0xfffff282
@@ -7680,7 +7680,7 @@ _08070B40:
lsrs r2, r0, 16
cmp r2, 0
beq _08070B74
- ldr r1, _08070B6C @ =gUnknown_03005E94
+ ldr r1, _08070B6C @ =gCB2_AfterEvolution
ldr r0, _08070B70 @ =sub_80A53F8
str r0, [r1]
ldr r0, [r7]
@@ -7692,7 +7692,7 @@ _08070B40:
bl DestroyTask
b _08070C2C
.align 2, 0
-_08070B6C: .4byte gUnknown_03005E94
+_08070B6C: .4byte gCB2_AfterEvolution
_08070B70: .4byte sub_80A53F8
_08070B74:
adds r0, r6, 0
@@ -7703,7 +7703,7 @@ _08070B7C:
ldr r1, _08070BBC @ =gStringVar1
bl GetMonNickname
ldr r0, _08070BC0 @ =gStringVar2
- ldr r5, _08070BC4 @ =word_2024E82
+ ldr r5, _08070BC4 @ =gMoveToLearn
ldrh r2, [r5]
movs r1, 0xD
muls r1, r2
@@ -7729,7 +7729,7 @@ _08070B7C:
.align 2, 0
_08070BBC: .4byte gStringVar1
_08070BC0: .4byte gStringVar2
-_08070BC4: .4byte word_2024E82
+_08070BC4: .4byte gMoveToLearn
_08070BC8: .4byte gMoveNames
_08070BCC: .4byte gStringVar4
_08070BD0: .4byte gOtherText_WantsToLearn
@@ -7796,7 +7796,7 @@ sub_8070C54: @ 8070C54
ldr r7, _08070C78 @ =0x0201c000
ldr r0, [r7]
movs r1, 0
- bl sub_803B7C8
+ bl MonTryLearningNewMove
lsls r0, 16
lsrs r4, r0, 16
ldr r0, _08070C7C @ =0x0000fffe
@@ -7826,7 +7826,7 @@ _08070C8C:
lsrs r2, r0, 16
cmp r2, 0
beq _08070CC0
- ldr r1, _08070CB8 @ =gUnknown_03005E94
+ ldr r1, _08070CB8 @ =gCB2_AfterEvolution
ldr r0, _08070CBC @ =sub_80A53F8
str r0, [r1]
ldr r0, [r7]
@@ -7838,7 +7838,7 @@ _08070C8C:
bl DestroyTask
b _08070D68
.align 2, 0
-_08070CB8: .4byte gUnknown_03005E94
+_08070CB8: .4byte gCB2_AfterEvolution
_08070CBC: .4byte sub_80A53F8
_08070CC0:
adds r0, r6, 0
@@ -7849,7 +7849,7 @@ _08070CC8:
ldr r1, _08070D08 @ =gStringVar1
bl GetMonNickname
ldr r0, _08070D0C @ =gStringVar2
- ldr r5, _08070D10 @ =word_2024E82
+ ldr r5, _08070D10 @ =gMoveToLearn
ldrh r2, [r5]
movs r1, 0xD
muls r1, r2
@@ -7875,7 +7875,7 @@ _08070CC8:
.align 2, 0
_08070D08: .4byte gStringVar1
_08070D0C: .4byte gStringVar2
-_08070D10: .4byte word_2024E82
+_08070D10: .4byte gMoveToLearn
_08070D14: .4byte gMoveNames
_08070D18: .4byte gStringVar4
_08070D1C: .4byte gOtherText_WantsToLearn
@@ -7971,7 +7971,7 @@ DoEvolutionStoneItemEffect: @ 8070DBC
adds r1, r6, 0
adds r2, r5, 0
bl sub_806E8D0
- ldr r1, _08070E20 @ =gUnknown_03005E94
+ ldr r1, _08070E20 @ =gCB2_AfterEvolution
ldr r0, _08070E24 @ =sub_80A53F8
str r0, [r1]
ldr r0, _08070E28 @ =0x0201c000
@@ -7995,7 +7995,7 @@ DoEvolutionStoneItemEffect: @ 8070DBC
.align 2, 0
_08070E18: .4byte gTasks
_08070E1C: .4byte TaskDummy
-_08070E20: .4byte gUnknown_03005E94
+_08070E20: .4byte gCB2_AfterEvolution
_08070E24: .4byte sub_80A53F8
_08070E28: .4byte 0x0201c000
_08070E2C: .4byte gUnknown_0202E8F4
diff --git a/asm/pokeblock_feed.s b/asm/pokeblock_feed.s
deleted file mode 100644
index 7df634399..000000000
--- a/asm/pokeblock_feed.s
+++ /dev/null
@@ -1,1836 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8147890
-sub_8147890: @ 8147890
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8147890
-
- thumb_func_start sub_81478A8
-sub_81478A8: @ 81478A8
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_81478A8
-
- thumb_func_start sub_81478BC
-sub_81478BC: @ 81478BC
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _081478D8 @ =gMain
- ldr r1, _081478DC @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xD
- bls _081478CE
- b _08147AD0
-_081478CE:
- lsls r0, 2
- ldr r1, _081478E0 @ =_081478E4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081478D8: .4byte gMain
-_081478DC: .4byte 0x0000043c
-_081478E0: .4byte _081478E4
- .align 2, 0
-_081478E4:
- .4byte _0814791C
- .4byte _08147938
- .4byte _0814794C
- .4byte _08147960
- .4byte _08147966
- .4byte _08147980
- .4byte _0814798C
- .4byte _081479B8
- .4byte _081479DC
- .4byte _081479F4
- .4byte _08147A20
- .4byte _08147A3C
- .4byte _08147A5C
- .4byte _08147A8C
-_0814791C:
- bl sub_80F9438
- bl sub_80F9368
- bl sub_8147B04
- ldr r1, _08147930 @ =gMain
- ldr r2, _08147934 @ =0x0000043c
- adds r1, r2
- b _08147A4A
- .align 2, 0
-_08147930: .4byte gMain
-_08147934: .4byte 0x0000043c
-_08147938:
- bl ResetPaletteFade
- ldr r2, _08147948 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- b _08147A44
- .align 2, 0
-_08147948: .4byte gPaletteFade
-_0814794C:
- bl ResetSpriteData
- ldr r1, _08147958 @ =gMain
- ldr r2, _0814795C @ =0x0000043c
- adds r1, r2
- b _08147A4A
- .align 2, 0
-_08147958: .4byte gMain
-_0814795C: .4byte 0x0000043c
-_08147960:
- bl FreeAllSpritePalettes
- b _08147A44
-_08147966:
- ldr r0, _08147974 @ =gWindowConfig_81E6E50
- bl SetUpWindowConfig
- ldr r1, _08147978 @ =gMain
- ldr r2, _0814797C @ =0x0000043c
- adds r1, r2
- b _08147A4A
- .align 2, 0
-_08147974: .4byte gWindowConfig_81E6E50
-_08147978: .4byte gMain
-_0814797C: .4byte 0x0000043c
-_08147980:
- ldr r0, _08147988 @ =gWindowConfig_81E6E50
- bl MultistepInitMenuWindowBegin
- b _08147A44
- .align 2, 0
-_08147988: .4byte gWindowConfig_81E6E50
-_0814798C:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _08147996
- b _08147AD0
-_08147996:
- ldr r0, _081479A8 @ =0x02000000
- ldr r1, _081479AC @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r1, _081479B0 @ =gMain
- ldr r2, _081479B4 @ =0x0000043c
- adds r1, r2
- b _08147A4A
- .align 2, 0
-_081479A8: .4byte 0x02000000
-_081479AC: .4byte 0x0001ffff
-_081479B0: .4byte gMain
-_081479B4: .4byte 0x0000043c
-_081479B8:
- ldr r0, _081479D4 @ =gUnknown_02039310
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081479D8 @ =gPlayerParty
- adds r0, r1
- bl sub_8147B20
- lsls r0, 24
- cmp r0, 0
- bne _081479D0
- b _08147AD0
-_081479D0:
- b _08147A44
- .align 2, 0
-_081479D4: .4byte gUnknown_02039310
-_081479D8: .4byte gPlayerParty
-_081479DC:
- bl sub_81480B4
- ldr r1, _081479EC @ =0x02000000
- ldr r2, _081479F0 @ =0x0001fffd
- adds r1, r2
- strb r0, [r1]
- b _08147A44
- .align 2, 0
-_081479EC: .4byte 0x02000000
-_081479F0: .4byte 0x0001fffd
-_081479F4:
- ldr r0, _08147A10 @ =gUnknown_02039310
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08147A14 @ =gPlayerParty
- adds r0, r1
- bl sub_8147F84
- ldr r1, _08147A18 @ =0x02000000
- ldr r2, _08147A1C @ =0x0001fffe
- adds r1, r2
- strb r0, [r1]
- b _08147A44
- .align 2, 0
-_08147A10: .4byte gUnknown_02039310
-_08147A14: .4byte gPlayerParty
-_08147A18: .4byte 0x02000000
-_08147A1C: .4byte 0x0001fffe
-_08147A20:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r1, _08147A34 @ =gMain
- ldr r2, _08147A38 @ =0x0000043c
- adds r1, r2
- b _08147A4A
- .align 2, 0
-_08147A34: .4byte gMain
-_08147A38: .4byte 0x0000043c
-_08147A3C:
- bl sub_8055870
- cmp r0, 0x1
- beq _08147AD0
-_08147A44:
- ldr r1, _08147A54 @ =gMain
- ldr r0, _08147A58 @ =0x0000043c
- adds r1, r0
-_08147A4A:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08147AD0
- .align 2, 0
-_08147A54: .4byte gMain
-_08147A58: .4byte 0x0000043c
-_08147A5C:
- ldr r3, _08147AB0 @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _08147AB4 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08147AB8 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08147ABC @ =sub_81478A8
- bl SetVBlankCallback
- ldr r1, _08147AC0 @ =gMain
- ldr r2, _08147AC4 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08147A8C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _08147AC8 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _08147ACC @ =sub_8147890
- bl SetMainCallback2
- movs r0, 0x1
- b _08147AD2
- .align 2, 0
-_08147AB0: .4byte 0x04000208
-_08147AB4: .4byte 0x04000200
-_08147AB8: .4byte REG_DISPSTAT
-_08147ABC: .4byte sub_81478A8
-_08147AC0: .4byte gMain
-_08147AC4: .4byte 0x0000043c
-_08147AC8: .4byte gPaletteFade
-_08147ACC: .4byte sub_8147890
-_08147AD0:
- movs r0, 0
-_08147AD2:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81478BC
-
- thumb_func_start sub_8147ADC
-sub_8147ADC: @ 8147ADC
- push {lr}
-_08147ADE:
- bl sub_81478BC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08147AF2
- movs r0, 0x1
- bl sub_8147DDC
- b _08147AFE
-_08147AF2:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08147ADE
-_08147AFE:
- pop {r0}
- bx r0
- thumb_func_end sub_8147ADC
-
- thumb_func_start sub_8147B04
-sub_8147B04: @ 8147B04
- ldr r1, _08147B18 @ =REG_BG1CNT
- ldr r2, _08147B1C @ =0x00001d02
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08147B18: .4byte REG_BG1CNT
-_08147B1C: .4byte 0x00001d02
- thumb_func_end sub_8147B04
-
- thumb_func_start sub_8147B20
-sub_8147B20: @ 8147B20
- push {r4-r6,lr}
- sub sp, 0xC
- adds r4, r0, 0
- ldr r0, _08147B40 @ =0x02000000
- ldr r1, _08147B44 @ =0x0001ffff
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x8
- bls _08147B34
- b _08147C84
-_08147B34:
- lsls r0, 2
- ldr r1, _08147B48 @ =_08147B4C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08147B40: .4byte 0x02000000
-_08147B44: .4byte 0x0001ffff
-_08147B48: .4byte _08147B4C
- .align 2, 0
-_08147B4C:
- .4byte _08147B70
- .4byte _08147BB8
- .4byte _08147BF0
- .4byte _08147BFC
- .4byte _08147C08
- .4byte _08147C14
- .4byte _08147C2C
- .4byte _08147C38
- .4byte _08147C60
-_08147B70:
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- lsls r0, r5, 3
- ldr r1, _08147BAC @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08147BB0 @ =gMonFrontPicCoords
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08147BB4 @ =gUnknown_081FAF4C
- ldr r4, [r4, 0x4]
- str r4, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- bl HandleLoadSpecialPokePic
- b _08147C40
- .align 2, 0
-_08147BAC: .4byte gMonFrontPicTable
-_08147BB0: .4byte gMonFrontPicCoords
-_08147BB4: .4byte gUnknown_081FAF4C
-_08147BB8:
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- adds r1, r0, 0
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_80409C8
- adds r4, r0, 0
- bl LoadCompressedObjectPalette
- ldrh r0, [r4, 0x4]
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
- b _08147C40
-_08147BF0:
- ldr r0, _08147BF8 @ =gUnknown_083F7F74
- bl LoadCompressedObjectPic
- b _08147C40
- .align 2, 0
-_08147BF8: .4byte gUnknown_083F7F74
-_08147BFC:
- ldr r0, _08147C04 @ =gUnknown_083F7F7C
- bl LoadCompressedObjectPalette
- b _08147C40
- .align 2, 0
-_08147C04: .4byte gUnknown_083F7F7C
-_08147C08:
- ldr r0, _08147C10 @ =gUnknown_084121DC
- bl LoadCompressedObjectPic
- b _08147C40
- .align 2, 0
-_08147C10: .4byte gUnknown_084121DC
-_08147C14:
- ldr r0, _08147C24 @ =gScriptItemId
- ldrb r0, [r0]
- bl sub_8147C90
- ldr r0, _08147C28 @ =gUnknown_02039350
- bl LoadCompressedObjectPalette
- b _08147C40
- .align 2, 0
-_08147C24: .4byte gScriptItemId
-_08147C28: .4byte gUnknown_02039350
-_08147C2C:
- ldr r0, _08147C34 @ =gBattleTerrainTiles_Building
- movs r1, 0xC0
- lsls r1, 19
- b _08147C3C
- .align 2, 0
-_08147C34: .4byte gBattleTerrainTiles_Building
-_08147C38:
- ldr r0, _08147C50 @ =gUnknown_08E782FC
- ldr r1, _08147C54 @ =0x0600e800
-_08147C3C:
- bl LZDecompressVram
-_08147C40:
- ldr r1, _08147C58 @ =0x02000000
- ldr r0, _08147C5C @ =0x0001ffff
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08147C84
- .align 2, 0
-_08147C50: .4byte gUnknown_08E782FC
-_08147C54: .4byte 0x0600e800
-_08147C58: .4byte 0x02000000
-_08147C5C: .4byte 0x0001ffff
-_08147C60:
- ldr r0, _08147C78 @ =gBattleTerrainPalette_BattleTower
- movs r1, 0x20
- movs r2, 0x60
- bl LoadCompressedPalette
- ldr r0, _08147C7C @ =0x02000000
- ldr r1, _08147C80 @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _08147C86
- .align 2, 0
-_08147C78: .4byte gBattleTerrainPalette_BattleTower
-_08147C7C: .4byte 0x02000000
-_08147C80: .4byte 0x0001ffff
-_08147C84:
- movs r0, 0
-_08147C86:
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8147B20
-
- thumb_func_start sub_8147C90
-sub_8147C90: @ 8147C90
- push {lr}
- lsls r0, 24
- lsrs r0, 21
- ldr r1, _08147CB8 @ =gSaveBlock1 + 0x7F8
- adds r0, r1
- movs r1, 0
- bl sub_810CA9C
- lsls r0, 24
- ldr r2, _08147CBC @ =gUnknown_02039350
- ldr r1, _08147CC0 @ =gUnknown_084120A4
- lsrs r0, 22
- subs r0, 0x4
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, _08147CC4 @ =0x000039e2
- strh r0, [r2, 0x4]
- pop {r0}
- bx r0
- .align 2, 0
-_08147CB8: .4byte gSaveBlock1 + 0x7F8
-_08147CBC: .4byte gUnknown_02039350
-_08147CC0: .4byte gUnknown_084120A4
-_08147CC4: .4byte 0x000039e2
- thumb_func_end sub_8147C90
-
- thumb_func_start sub_8147CC8
-sub_8147CC8: @ 8147CC8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08147D00 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08147CDC
- b _08147DCE
-_08147CDC:
- ldr r0, _08147D04 @ =gTasks
- lsls r2, r4, 2
- adds r1, r2, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x8
- ldrsh r3, [r1, r0]
- ldr r0, _08147D08 @ =0x0000010d
- adds r5, r2, 0
- cmp r3, r0
- beq _08147D50
- cmp r3, r0
- bgt _08147D0C
- cmp r3, 0
- beq _08147D20
- cmp r3, 0xFF
- beq _08147D38
- b _08147D8C
- .align 2, 0
-_08147D00: .4byte gPaletteFade
-_08147D04: .4byte gTasks
-_08147D08: .4byte 0x0000010d
-_08147D0C:
- ldr r0, _08147D1C @ =0x00000119
- cmp r3, r0
- beq _08147D68
- adds r0, 0x10
- cmp r3, r0
- beq _08147D80
- b _08147D8C
- .align 2, 0
-_08147D1C: .4byte 0x00000119
-_08147D20:
- ldr r0, _08147D30 @ =gUnknown_03005F3C
- strb r3, [r0]
- ldr r0, _08147D34 @ =gUnknown_03005F94
- strh r3, [r0]
- bl sub_81481DC
- b _08147D8C
- .align 2, 0
-_08147D30: .4byte gUnknown_03005F3C
-_08147D34: .4byte gUnknown_03005F94
-_08147D38:
- ldr r0, _08147D48 @ =0x02000000
- ldr r2, _08147D4C @ =0x0001fffd
- adds r0, r2
- ldrb r0, [r0]
- ldrb r1, [r1, 0xA]
- bl sub_8148108
- b _08147D8C
- .align 2, 0
-_08147D48: .4byte 0x02000000
-_08147D4C: .4byte 0x0001fffd
-_08147D50:
- bl sub_814817C
- ldr r1, _08147D60 @ =0x02000000
- ldr r2, _08147D64 @ =0x0001fffc
- adds r1, r2
- strb r0, [r1]
- b _08147D8C
- .align 2, 0
-_08147D60: .4byte 0x02000000
-_08147D64: .4byte 0x0001fffc
-_08147D68:
- ldr r0, _08147D78 @ =0x02000000
- ldr r1, _08147D7C @ =0x0001fffe
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8148044
- b _08147D8C
- .align 2, 0
-_08147D78: .4byte 0x02000000
-_08147D7C: .4byte 0x0001fffe
-_08147D80:
- ldr r0, _08147D88 @ =sub_8147E40
- str r0, [r1]
- b _08147DCE
- .align 2, 0
-_08147D88: .4byte sub_8147E40
-_08147D8C:
- ldr r0, _08147DA0 @ =gUnknown_03005F94
- ldr r1, _08147DA4 @ =gUnknown_03005F34
- ldrh r2, [r0]
- ldrh r0, [r1]
- cmp r2, r0
- bcs _08147DA8
- bl sub_814825C
- b _08147DB8
- .align 2, 0
-_08147DA0: .4byte gUnknown_03005F94
-_08147DA4: .4byte gUnknown_03005F34
-_08147DA8:
- cmp r2, r0
- bne _08147DB8
- ldr r0, _08147DD4 @ =gTasks
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0xFE
- strh r0, [r1, 0x8]
-_08147DB8:
- ldr r1, _08147DD8 @ =gUnknown_03005F94
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- ldr r0, _08147DD4 @ =gTasks
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_08147DCE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08147DD4: .4byte gTasks
-_08147DD8: .4byte gUnknown_03005F94
- thumb_func_end sub_8147CC8
-
- thumb_func_start sub_8147DDC
-sub_8147DDC: @ 8147DDC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08147E08 @ =sub_8147CC8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08147E0C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r4, [r1, 0xA]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08147E08: .4byte sub_8147CC8
-_08147E0C: .4byte gTasks
- thumb_func_end sub_8147DDC
-
- thumb_func_start sub_8147E10
-sub_8147E10: @ 8147E10
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl MenuUpdateWindowText
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08147E30
- ldr r0, _08147E38 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08147E3C @ =sub_8147F4C
- str r0, [r1]
-_08147E30:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08147E38: .4byte gTasks
-_08147E3C: .4byte sub_8147F4C
- thumb_func_end sub_8147E10
-
- thumb_func_start sub_8147E40
-sub_8147E40: @ 8147E40
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08147E94 @ =gUnknown_02039310
- ldrb r1, [r0]
- movs r0, 0x64
- adds r5, r1, 0
- muls r5, r0
- ldr r0, _08147E98 @ =gPlayerParty
- adds r5, r0
- ldr r0, _08147E9C @ =gScriptItemId
- ldrh r4, [r0]
- lsls r4, 3
- ldr r0, _08147EA0 @ =gSaveBlock1 + 0x7F8
- adds r4, r0
- adds r0, r5, 0
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl sub_810CAE4
- ldr r6, _08147EA4 @ =gUnknown_02039312
- strh r0, [r6]
- ldr r1, _08147EA8 @ =gStringVar1
- adds r0, r5, 0
- bl GetMonNickname
- ldr r1, _08147EAC @ =gStringVar2
- adds r0, r4, 0
- bl sub_810CB44
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08147EB8
- ldr r0, _08147EB0 @ =gStringVar4
- ldr r1, _08147EB4 @ =gContestStatsText_NormallyAte
- bl StringExpandPlaceholders
- b _08147ED8
- .align 2, 0
-_08147E94: .4byte gUnknown_02039310
-_08147E98: .4byte gPlayerParty
-_08147E9C: .4byte gScriptItemId
-_08147EA0: .4byte gSaveBlock1 + 0x7F8
-_08147EA4: .4byte gUnknown_02039312
-_08147EA8: .4byte gStringVar1
-_08147EAC: .4byte gStringVar2
-_08147EB0: .4byte gStringVar4
-_08147EB4: .4byte gContestStatsText_NormallyAte
-_08147EB8:
- cmp r0, 0
- ble _08147ED0
- ldr r0, _08147EC8 @ =gStringVar4
- ldr r1, _08147ECC @ =gContestStatsText_HappilyAte
- bl StringExpandPlaceholders
- b _08147ED8
- .align 2, 0
-_08147EC8: .4byte gStringVar4
-_08147ECC: .4byte gContestStatsText_HappilyAte
-_08147ED0:
- ldr r0, _08147EF8 @ =gStringVar4
- ldr r1, _08147EFC @ =gContestStatsText_DisdainfullyAte
- bl StringExpandPlaceholders
-_08147ED8:
- ldr r0, _08147EF8 @ =gStringVar4
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrintMessage
- ldr r1, _08147F00 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _08147F04 @ =sub_8147E10
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08147EF8: .4byte gStringVar4
-_08147EFC: .4byte gContestStatsText_DisdainfullyAte
-_08147F00: .4byte gTasks
-_08147F04: .4byte sub_8147E10
- thumb_func_end sub_8147E40
-
- thumb_func_start sub_8147F08
-sub_8147F08: @ 8147F08
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08147F3C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08147F34
- ldr r0, _08147F40 @ =gMPlay_BGM
- ldr r1, _08147F44 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- ldr r0, _08147F48 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08147F34:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08147F3C: .4byte gPaletteFade
-_08147F40: .4byte gMPlay_BGM
-_08147F44: .4byte 0x0000ffff
-_08147F48: .4byte gMain
- thumb_func_end sub_8147F08
-
- thumb_func_start sub_8147F4C
-sub_8147F4C: @ 8147F4C
- 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, _08147F7C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08147F80 @ =sub_8147F08
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08147F7C: .4byte gTasks
-_08147F80: .4byte sub_8147F08
- thumb_func_end sub_8147F4C
-
- thumb_func_start sub_8147F84
-sub_8147F84: @ 8147F84
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- movs r1, 0x41
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08148024 @ =gUnknown_02024E8C
- movs r1, 0x30
- movs r2, 0x50
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _08148028 @ =gUnknown_03005F24
- strh r4, [r0]
- ldr r0, _0814802C @ =gUnknown_03005F2C
- mov r1, r8
- strb r1, [r0]
- adds r0, r5, 0
- bl GetNature
- ldr r1, _08148030 @ =gUnknown_03005F30
- strb r0, [r1]
- ldr r7, _08148034 @ =gSprites
- mov r1, r8
- lsls r0, r1, 4
- add r0, r8
- lsls r5, r0, 2
- adds r6, r5, r7
- strh r4, [r6, 0x32]
- adds r0, r7, 0
- adds r0, 0x1C
- adds r0, r5, r0
- ldr r1, _08148038 @ =SpriteCallbackDummy
- str r1, [r0]
- ldr r0, _0814803C @ =gUnknown_03005F28
- mov r9, r0
- movs r0, 0x1
- mov r1, r9
- strb r0, [r1]
- adds r0, r4, 0
- bl sub_8040A3C
- lsls r0, 24
- cmp r0, 0
- bne _08148016
- adds r0, r7, 0
- adds r0, 0x10
- adds r0, r5, r0
- ldr r1, _08148040 @ =gSpriteAffineAnimTable_84120EC
- str r1, [r0]
- ldrb r3, [r6, 0x1]
- movs r0, 0x3
- orrs r3, r0
- strb r3, [r6, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r6, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r6, 0
- bl CalcCenterToCornerVec
- movs r0, 0
- mov r1, r9
- strb r0, [r1]
-_08148016:
- mov r0, r8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08148024: .4byte gUnknown_02024E8C
-_08148028: .4byte gUnknown_03005F24
-_0814802C: .4byte gUnknown_03005F2C
-_08148030: .4byte gUnknown_03005F30
-_08148034: .4byte gSprites
-_08148038: .4byte SpriteCallbackDummy
-_0814803C: .4byte gUnknown_03005F28
-_08148040: .4byte gSpriteAffineAnimTable_84120EC
- thumb_func_end sub_8147F84
-
- thumb_func_start sub_8148044
-sub_8148044: @ 8148044
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0814806C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r3
- movs r0, 0x30
- strh r0, [r2, 0x20]
- movs r0, 0x50
- strh r0, [r2, 0x22]
- ldr r0, _08148070 @ =0x0000fff8
- strh r0, [r2, 0x2E]
- movs r0, 0x1
- strh r0, [r2, 0x30]
- adds r3, 0x1C
- adds r1, r3
- ldr r0, _08148074 @ =sub_8148078
- str r0, [r1]
- bx lr
- .align 2, 0
-_0814806C: .4byte gSprites
-_08148070: .4byte 0x0000fff8
-_08148074: .4byte sub_8148078
- thumb_func_end sub_8148044
-
- thumb_func_start sub_8148078
-sub_8148078: @ 8148078
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- adds r0, 0x4
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x2E]
- ldrh r2, [r4, 0x22]
- adds r1, r0, r2
- strh r1, [r4, 0x22]
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _0814809E
- ldrh r0, [r4, 0x32]
- movs r1, 0
- bl PlayCry1
-_0814809E:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x9
- bne _081480AA
- ldr r0, _081480B0 @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_081480AA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081480B0: .4byte SpriteCallbackDummy
- thumb_func_end sub_8148078
-
- thumb_func_start sub_81480B4
-sub_81480B4: @ 81480B4
- push {r4,r5,lr}
- movs r0, 0xBC
- movs r1, 0x64
- movs r2, 0x2
- bl sub_810BA50
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _081480FC @ =gSprites
- lsls r3, r4, 4
- adds r3, r4
- lsls r3, 2
- adds r0, r3, r5
- ldrb r2, [r0, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x1]
- adds r1, r5, 0
- adds r1, 0x10
- adds r1, r3, r1
- ldr r2, _08148100 @ =gSpriteAffineAnimTable_84121A0
- str r2, [r1]
- adds r5, 0x1C
- adds r3, r5
- ldr r1, _08148104 @ =SpriteCallbackDummy
- str r1, [r3]
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_081480FC: .4byte gSprites
-_08148100: .4byte gSpriteAffineAnimTable_84121A0
-_08148104: .4byte SpriteCallbackDummy
- thumb_func_end sub_81480B4
-
- thumb_func_start sub_8148108
-sub_8148108: @ 8148108
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _08148148 @ =gSprites
- mov r8, r0
- lsls r0, r7, 4
- adds r0, r7
- lsls r6, r0, 2
- mov r0, r8
- adds r4, r6, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- cmp r5, 0
- bne _08148150
- mov r0, r8
- adds r0, 0x10
- adds r0, r6, r0
- ldr r1, _0814814C @ =gSpriteAffineAnimTable_84121A4
- b _08148158
- .align 2, 0
-_08148148: .4byte gSprites
-_0814814C: .4byte gSpriteAffineAnimTable_84121A4
-_08148150:
- mov r0, r8
- adds r0, 0x10
- adds r0, r6, r0
- ldr r1, _08148174 @ =gSpriteAffineAnimTable_84121A8
-_08148158:
- str r1, [r0]
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- ldr r1, _08148178 @ =gSprites
- adds r0, r1
- bl InitSpriteAffineAnim
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08148174: .4byte gSpriteAffineAnimTable_84121A8
-_08148178: .4byte gSprites
- thumb_func_end sub_8148108
-
- thumb_func_start sub_814817C
-sub_814817C: @ 814817C
- push {lr}
- ldr r0, _081481A4 @ =gSpriteTemplate_84121E4
- movs r1, 0xAE
- movs r2, 0x54
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081481A8 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r2, _081481AC @ =0x0000fff4
- strh r2, [r1, 0x2E]
- movs r2, 0x1
- strh r2, [r1, 0x30]
- pop {r1}
- bx r1
- .align 2, 0
-_081481A4: .4byte gSpriteTemplate_84121E4
-_081481A8: .4byte gSprites
-_081481AC: .4byte 0x0000fff4
- thumb_func_end sub_814817C
-
- thumb_func_start sub_81481B0
-sub_81481B0: @ 81481B0
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x20]
- subs r0, 0x4
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x2E]
- ldrh r3, [r2, 0x22]
- adds r1, r0, r3
- strh r1, [r2, 0x22]
- ldrh r1, [r2, 0x30]
- adds r0, r1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _081481D6
- adds r0, r2, 0
- bl DestroySprite
-_081481D6:
- pop {r0}
- bx r0
- thumb_func_end sub_81481B0
-
- thumb_func_start sub_81481DC
-sub_81481DC: @ 81481DC
- push {r4-r7,lr}
- ldr r6, _0814824C @ =gUnknown_03005F34
- movs r0, 0x1
- strh r0, [r6]
- ldr r1, _08148250 @ =gNatureToMonPokeblockAnim
- ldr r0, _08148254 @ =gUnknown_03005F30
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrb r3, [r0]
- movs r4, 0
- ldr r2, _08148258 @ =gMonPokeblockAnims
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r7, r2, 0
- adds r7, 0x8
- adds r0, r1, r7
- ldrh r0, [r0]
- adds r0, 0x1
- strh r0, [r6]
- adds r5, r2, 0
- adds r5, 0x12
- adds r1, r5
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _08148244
- adds r2, r6, 0
- adds r6, r5, 0
- adds r5, r7, 0
-_0814821A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r4, 0x7
- bhi _08148244
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- ldrh r7, [r2]
- adds r0, r7
- strh r0, [r2]
- adds r1, r6
- movs r7, 0
- ldrsh r0, [r1, r7]
- cmp r0, 0x1
- bne _0814821A
-_08148244:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814824C: .4byte gUnknown_03005F34
-_08148250: .4byte gNatureToMonPokeblockAnim
-_08148254: .4byte gUnknown_03005F30
-_08148258: .4byte gMonPokeblockAnims
- thumb_func_end sub_81481DC
-
- thumb_func_start sub_814825C
-sub_814825C: @ 814825C
- push {lr}
- ldr r0, _08148274 @ =gUnknown_03005F3C
- ldrb r0, [r0]
- cmp r0, 0x5A
- bls _08148268
- b _08148532
-_08148268:
- lsls r0, 2
- ldr r1, _08148278 @ =_0814827C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08148274: .4byte gUnknown_03005F3C
-_08148278: .4byte _0814827C
- .align 2, 0
-_0814827C:
- .4byte _081483E8
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _0814843C
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _0814847A
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _081484CC
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148524
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
-_081483E8:
- ldr r2, _0814841C @ =gUnknown_03005F40
- ldr r1, _08148420 @ =gNatureToMonPokeblockAnim
- ldr r0, _08148424 @ =gUnknown_03005F30
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r2, _08148428 @ =gUnknown_03005F20
- ldr r0, _0814842C @ =gUnknown_03005F2C
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08148430 @ =gSprites
- adds r1, r0
- str r1, [r2]
- ldr r0, _08148434 @ =gUnknown_03005F50
- movs r2, 0x44
- bl memcpy
- ldr r1, _08148438 @ =gUnknown_03005F3C
- movs r0, 0xA
- strb r0, [r1]
- b _08148532
- .align 2, 0
-_0814841C: .4byte gUnknown_03005F40
-_08148420: .4byte gNatureToMonPokeblockAnim
-_08148424: .4byte gUnknown_03005F30
-_08148428: .4byte gUnknown_03005F20
-_0814842C: .4byte gUnknown_03005F2C
-_08148430: .4byte gSprites
-_08148434: .4byte gUnknown_03005F50
-_08148438: .4byte gUnknown_03005F3C
-_0814843C:
- bl sub_8148540
- ldr r1, _081484A4 @ =gNatureToMonPokeblockAnim
- ldr r0, _081484A8 @ =gUnknown_03005F30
- ldrb r0, [r0]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08148474
- ldr r3, _081484AC @ =gUnknown_03005F20
- ldr r2, [r3]
- ldrb r0, [r2, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldr r2, [r3]
- ldrb r1, [r2, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x3]
- ldr r0, [r3]
- ldr r1, _081484B0 @ =gSpriteAffineAnimTable_8412050
- str r1, [r0, 0x10]
- bl InitSpriteAffineAnim
-_08148474:
- ldr r1, _081484B4 @ =gUnknown_03005F3C
- movs r0, 0x32
- strb r0, [r1]
-_0814847A:
- ldr r1, _081484A4 @ =gNatureToMonPokeblockAnim
- ldr r0, _081484A8 @ =gUnknown_03005F30
- ldrb r0, [r0]
- lsls r0, 1
- adds r1, 0x1
- adds r2, r0, r1
- ldrb r1, [r2]
- cmp r1, 0
- beq _081484EE
- ldr r0, _081484B8 @ =gUnknown_03005F28
- ldrb r0, [r0]
- cmp r0, 0
- bne _081484BC
- ldr r0, _081484AC @ =gUnknown_03005F20
- ldr r0, [r0]
- adds r1, 0xA
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAffineAnim
- b _081484EE
- .align 2, 0
-_081484A4: .4byte gNatureToMonPokeblockAnim
-_081484A8: .4byte gUnknown_03005F30
-_081484AC: .4byte gUnknown_03005F20
-_081484B0: .4byte gSpriteAffineAnimTable_8412050
-_081484B4: .4byte gUnknown_03005F3C
-_081484B8: .4byte gUnknown_03005F28
-_081484BC:
- ldr r0, _081484C8 @ =gUnknown_03005F20
- ldr r0, [r0]
- ldrb r1, [r2]
- bl StartSpriteAffineAnim
- b _081484EE
- .align 2, 0
-_081484C8: .4byte gUnknown_03005F20
-_081484CC:
- bl sub_81485CC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08148532
- ldr r0, _081484F8 @ =gUnknown_03005FA0
- movs r1, 0x12
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08148504
- ldr r1, _081484FC @ =gUnknown_03005F40
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl sub_8148540
-_081484EE:
- ldr r1, _08148500 @ =gUnknown_03005F3C
- movs r0, 0x3C
- strb r0, [r1]
- b _08148532
- .align 2, 0
-_081484F8: .4byte gUnknown_03005FA0
-_081484FC: .4byte gUnknown_03005F40
-_08148500: .4byte gUnknown_03005F3C
-_08148504:
- ldr r0, _0814851C @ =gUnknown_03005F20
- ldr r0, [r0]
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r1, _08148520 @ =gUnknown_03005F3C
- movs r0, 0x46
- strb r0, [r1]
- b _08148532
- .align 2, 0
-_0814851C: .4byte gUnknown_03005F20
-_08148520: .4byte gUnknown_03005F3C
-_08148524:
- bl sub_8148618
- ldr r0, _08148538 @ =gUnknown_03005F40
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0814853C @ =gUnknown_03005F3C
- strb r1, [r0]
-_08148532:
- pop {r0}
- bx r0
- .align 2, 0
-_08148538: .4byte gUnknown_03005F40
-_0814853C: .4byte gUnknown_03005F3C
- thumb_func_end sub_814825C
-
- thumb_func_start sub_8148540
-sub_8148540: @ 8148540
- push {r4-r7,lr}
- movs r4, 0
- ldr r5, _081485B4 @ =gUnknown_03005FA0
- mov r12, r5
- ldr r7, _081485B8 @ =gMonPokeblockAnims
- ldr r6, _081485BC @ =gUnknown_03005F40
-_0814854C:
- lsls r2, r4, 1
- mov r0, r12
- adds r3, r2, r0
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- adds r2, r7
- ldrh r0, [r2]
- strh r0, [r3]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _0814854C
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _081485C4
- movs r2, 0
- ldrsh r0, [r5, r2]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x14]
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- bl Cos
- strh r0, [r5, 0x16]
- ldrh r0, [r5, 0x8]
- strh r0, [r5, 0x18]
- ldr r0, _081485C0 @ =gUnknown_03005F20
- ldr r1, [r0]
- ldrh r0, [r1, 0x24]
- strh r0, [r5, 0x1A]
- ldrh r0, [r1, 0x26]
- strh r0, [r5, 0x1C]
- bl sub_8148710
- ldrh r0, [r5, 0x18]
- strh r0, [r5, 0x8]
- bl sub_814862C
- ldrh r0, [r5, 0x18]
- strh r0, [r5, 0x8]
- movs r0, 0
- b _081485C6
- .align 2, 0
-_081485B4: .4byte gUnknown_03005FA0
-_081485B8: .4byte gMonPokeblockAnims
-_081485BC: .4byte gUnknown_03005F40
-_081485C0: .4byte gUnknown_03005F20
-_081485C4:
- movs r0, 0x1
-_081485C6:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8148540
-
- thumb_func_start sub_81485CC
-sub_81485CC: @ 81485CC
- push {r4,lr}
- ldr r3, _08148604 @ =gUnknown_03005FA0
- ldrh r0, [r3, 0x18]
- ldrh r1, [r3, 0x8]
- subs r0, r1
- lsls r0, 16
- ldr r1, _08148608 @ =gUnknown_03005F20
- ldr r4, [r1]
- lsrs r0, 15
- ldr r1, _0814860C @ =0x0201d000
- adds r2, r0, r1
- ldrh r2, [r2]
- strh r2, [r4, 0x24]
- movs r2, 0x80
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4, 0x26]
- ldrh r0, [r3, 0x8]
- subs r0, 0x1
- strh r0, [r3, 0x8]
- lsls r0, 16
- cmp r0, 0
- beq _08148610
- movs r0, 0
- b _08148612
- .align 2, 0
-_08148604: .4byte gUnknown_03005FA0
-_08148608: .4byte gUnknown_03005F20
-_0814860C: .4byte 0x0201d000
-_08148610:
- movs r0, 0x1
-_08148612:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81485CC
-
- thumb_func_start sub_8148618
-sub_8148618: @ 8148618
- push {lr}
- ldr r0, _08148628 @ =gUnknown_03005F20
- ldr r0, [r0]
- bl FreeSpriteOamMatrix
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08148628: .4byte gUnknown_03005F20
- thumb_func_end sub_8148618
-
- thumb_func_start sub_814862C
-sub_814862C: @ 814862C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r1, _08148700 @ =gUnknown_03005FA0
- ldrh r0, [r1, 0x10]
- mov r8, r0
- ldrh r0, [r1, 0x18]
- mov r2, r8
- subs r0, r2
- lsls r0, 16
- lsrs r7, r0, 16
- ldrh r0, [r1, 0xC]
- ldrh r3, [r1, 0x1A]
- adds r0, r3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- ldrh r0, [r1, 0xE]
- ldrh r1, [r1, 0x1C]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r6, 0
- subs r0, r7, 0x1
- ldr r4, _08148704 @ =0x0201cffe
- mov r10, r4
- cmp r6, r0
- bge _081486D4
- ldr r1, [sp]
- lsls r0, r1, 16
- asrs r0, 16
- str r0, [sp, 0x4]
-_08148674:
- mov r2, r8
- adds r5, r2, r6
- lsls r5, 1
- ldr r4, _08148708 @ =0x0201d000
- adds r3, r5, r4
- ldrh r2, [r3]
- ldr r0, [sp, 0x4]
- subs r1, r2, r0
- ldr r4, _0814870C @ =0x0201d400
- adds r5, r4
- ldrh r0, [r5]
- mov r12, r0
- mov r4, r9
- lsls r0, r4, 16
- asrs r0, 16
- mov r4, r12
- subs r0, r4, r0
- lsls r4, r0, 16
- lsrs r4, 16
- lsls r1, 16
- asrs r1, 16
- adds r6, 0x1
- adds r0, r1, 0
- muls r0, r6
- adds r1, r7, 0
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- bl __divsi3
- ldr r2, [sp, 0x8]
- subs r2, r0
- ldr r3, [sp, 0xC]
- strh r2, [r3]
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- muls r0, r6
- adds r1, r7, 0
- bl __divsi3
- ldrh r1, [r5]
- subs r1, r0
- strh r1, [r5]
- lsls r6, 16
- lsrs r6, 16
- subs r0, r7, 0x1
- cmp r6, r0
- blt _08148674
-_081486D4:
- mov r1, r8
- adds r0, r1, r7
- lsls r0, 1
- mov r2, r10
- adds r1, r0, r2
- mov r3, sp
- ldrh r3, [r3]
- strh r3, [r1]
- movs r1, 0x80
- lsls r1, 3
- add r1, r10
- adds r0, r1
- mov r4, r9
- strh r4, [r0]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08148700: .4byte gUnknown_03005FA0
-_08148704: .4byte 0x0201cffe
-_08148708: .4byte 0x0201d000
-_0814870C: .4byte 0x0201d400
- thumb_func_end sub_814862C
-
- thumb_func_start sub_8148710
-sub_8148710: @ 8148710
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- ldr r1, _081487A4 @ =gUnknown_03005FA0
- ldrh r2, [r1, 0x1A]
- ldrh r0, [r1, 0x14]
- subs r2, r0
- ldrh r3, [r1, 0x1C]
- ldrh r0, [r1, 0x16]
- subs r3, r0
- adds r6, r1, 0
- ldr r1, _081487A8 @ =0x0201d000
- mov r9, r1
- lsls r2, 16
- asrs r2, 16
- mov r8, r2
- movs r2, 0x80
- lsls r2, 3
- add r2, r9
- mov r10, r2
- lsls r3, 16
- asrs r7, r3, 16
-_08148746:
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bge _08148750
- negs r0, r0
-_08148750:
- lsls r0, 16
- lsrs r0, 16
- ldrh r2, [r6, 0x6]
- adds r0, r2
- lsls r5, r0, 16
- strh r0, [r6, 0x6]
- ldrh r2, [r6, 0x4]
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bge _0814876A
- movs r0, 0x1
- str r0, [sp]
-_0814876A:
- ldrh r0, [r6, 0x18]
- ldrh r1, [r6, 0x8]
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r1, 0
- beq _081487F0
- ldr r1, [sp]
- cmp r1, 0
- bne _081487AC
- movs r1, 0
- ldrsh r0, [r6, r1]
- lsrs r5, 24
- adds r1, r2, r5
- lsls r1, 16
- asrs r1, 16
- bl Sin
- lsls r4, 1
- mov r2, r9
- adds r1, r4, r2
- add r0, r8
- strh r0, [r1]
- movs r1, 0
- ldrsh r0, [r6, r1]
- ldrh r1, [r6, 0x6]
- adds r1, r5
- b _081487CE
- .align 2, 0
-_081487A4: .4byte gUnknown_03005FA0
-_081487A8: .4byte 0x0201d000
-_081487AC:
- movs r1, 0
- ldrsh r0, [r6, r1]
- lsrs r5, 24
- subs r1, r2, r5
- lsls r1, 16
- asrs r1, 16
- bl Sin
- lsls r4, 1
- mov r2, r9
- adds r1, r4, r2
- add r0, r8
- strh r0, [r1]
- movs r1, 0
- ldrsh r0, [r6, r1]
- ldrh r1, [r6, 0x6]
- subs r1, r5
-_081487CE:
- lsls r1, 16
- asrs r1, 16
- bl Cos
- add r4, r10
- adds r0, r7, r0
- strh r0, [r4]
- ldrh r0, [r6, 0x2]
- ldrh r2, [r6]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6]
- ldrh r0, [r6, 0x8]
- subs r0, 0x1
- strh r0, [r6, 0x8]
- b _08148746
-_081487F0:
- 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_8148710
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s
index 542eed201..9e380f597 100644
--- a/asm/pokedex_area_screen.s
+++ b/asm/pokedex_area_screen.s
@@ -518,7 +518,7 @@ _08110A44:
bl GetRoamerLocation
ldrb r0, [r4, 0x10]
ldrb r1, [r4, 0x11]
- bl get_mapheader_by_bank_and_number
+ bl Overworld_GetMapHeaderByGroupAndId
ldrb r0, [r0, 0x14]
strh r0, [r4, 0x12]
movs r3, 0x88
@@ -566,7 +566,7 @@ SetAreaHasMon: @ 8110A98
adds r0, r5
strb r1, [r0, 0x11]
adds r0, r2, 0
- bl get_mapheader_by_bank_and_number
+ bl Overworld_GetMapHeaderByGroupAndId
ldrb r0, [r0, 0x14]
bl sub_80FBA04
ldrh r1, [r4]
@@ -599,7 +599,7 @@ SetSpecialMapHasMon: @ 8110AE4
cmp r0, 0x1F
bhi _08110B96
adds r0, r2, 0
- bl get_mapheader_by_bank_and_number
+ bl Overworld_GetMapHeaderByGroupAndId
adds r6, r0, 0
ldrb r0, [r6, 0x14]
cmp r0, 0x57
diff --git a/asm/pokemon_menu.s b/asm/pokemon_menu.s
deleted file mode 100644
index fe1b41724..000000000
--- a/asm/pokemon_menu.s
+++ /dev/null
@@ -1,3438 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8089A70
-sub_8089A70: @ 8089A70
- push {lr}
- ldr r0, _08089A88 @ =gPaletteFade
- ldrb r1, [r0, 0x8]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0, 0x8]
- movs r0, 0
- movs r1, 0
- bl OpenPartyMenu
- pop {r0}
- bx r0
- .align 2, 0
-_08089A88: .4byte gPaletteFade
- thumb_func_end sub_8089A70
-
- thumb_func_start sub_8089A8C
-sub_8089A8C: @ 8089A8C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, _08089AD0 @ =gUnknown_0202FFA9
- movs r0, 0
- strb r0, [r5]
- ldr r0, _08089AD4 @ =gLastFieldPokeMenuOpened
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089AD8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _08089AE0
- ldr r4, _08089ADC @ =gUnknown_0202FFAA
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl AppendToList
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl AppendToList
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl AppendToList
- b _08089BC8
- .align 2, 0
-_08089AD0: .4byte gUnknown_0202FFA9
-_08089AD4: .4byte gLastFieldPokeMenuOpened
-_08089AD8: .4byte gPlayerParty
-_08089ADC: .4byte gUnknown_0202FFAA
-_08089AE0:
- movs r6, 0
- ldr r0, _08089B24 @ =gUnknown_0839F554
- ldrh r0, [r0]
- mov r8, r0
-_08089AE8:
- movs r4, 0
- adds r7, r6, 0x1
- mov r0, r8
- cmp r0, 0xFF
- beq _08089B48
- ldr r5, _08089B24 @ =gUnknown_0839F554
-_08089AF4:
- ldr r0, _08089B28 @ =gLastFieldPokeMenuOpened
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089B2C @ =gPlayerParty
- adds r0, r1
- adds r1, r6, 0
- adds r1, 0xD
- bl GetMonData
- lsls r1, r4, 1
- adds r1, r5
- ldrh r1, [r1]
- cmp r0, r1
- bne _08089B38
- adds r2, r4, 0
- adds r2, 0xA
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _08089B30 @ =gUnknown_0202FFAA
- ldr r1, _08089B34 @ =gUnknown_0202FFA9
- bl AppendToList
- b _08089B48
- .align 2, 0
-_08089B24: .4byte gUnknown_0839F554
-_08089B28: .4byte gLastFieldPokeMenuOpened
-_08089B2C: .4byte gPlayerParty
-_08089B30: .4byte gUnknown_0202FFAA
-_08089B34: .4byte gUnknown_0202FFA9
-_08089B38:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, 0xFF
- bne _08089AF4
-_08089B48:
- lsls r0, r7, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08089AE8
- ldr r4, _08089BA4 @ =gUnknown_0202FFAA
- ldr r5, _08089BA8 @ =gUnknown_0202FFA9
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl AppendToList
- ldr r6, _08089BAC @ =gPlayerParty + 1 * 0x64
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08089B76
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl AppendToList
-_08089B76:
- ldr r0, _08089BB0 @ =gLastFieldPokeMenuOpened
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- adds r1, r6, 0
- subs r1, 0x64
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl ItemIsMail
- lsls r0, 24
- cmp r0, 0
- beq _08089BB4
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x7
- bl AppendToList
- b _08089BBE
- .align 2, 0
-_08089BA4: .4byte gUnknown_0202FFAA
-_08089BA8: .4byte gUnknown_0202FFA9
-_08089BAC: .4byte gPlayerParty + 1 * 0x64
-_08089BB0: .4byte gLastFieldPokeMenuOpened
-_08089BB4:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl AppendToList
-_08089BBE:
- ldr r0, _08089BD4 @ =gUnknown_0202FFAA
- ldr r1, _08089BD8 @ =gUnknown_0202FFA9
- movs r2, 0x3
- bl AppendToList
-_08089BC8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08089BD4: .4byte gUnknown_0202FFAA
-_08089BD8: .4byte gUnknown_0202FFA9
- thumb_func_end sub_8089A8C
-
- thumb_func_start sub_8089BDC
-sub_8089BDC: @ 8089BDC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- adds r4, r2, 0
- mov r8, r3
- ldr r7, [sp, 0x20]
- ldr r1, [sp, 0x24]
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x5
- bl sub_806D538
- adds r4, r5, r4
- lsls r4, 24
- lsrs r4, 24
- mov r0, r8
- lsls r3, r0, 1
- adds r3, r6, r3
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl MenuDrawTextWindow
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- adds r6, 0x1
- lsls r6, 24
- lsrs r6, 24
- str r7, [sp]
- adds r0, r5, 0
- adds r1, r6, 0
- mov r2, r8
- ldr r3, [sp, 0x1C]
- bl PrintMenuItemsReordered
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8089BDC
-
- thumb_func_start sub_8089C50
-sub_8089C50: @ 8089C50
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r4, [sp, 0x18]
- ldr r5, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r4, 0x1
- str r4, [sp, 0x8]
- bl sub_8089BDC
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8089C50
-
- thumb_func_start sub_8089C7C
-sub_8089C7C: @ 8089C7C
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _08089CC8 @ =gUnknown_0202FFA9
- ldrb r0, [r6]
- lsls r0, 1
- movs r4, 0x12
- subs r4, r0
- lsls r4, 24
- lsrs r4, 24
- ldrb r3, [r6]
- ldr r0, _08089CCC @ =gPokemonMenuActions
- str r0, [sp]
- ldr r0, _08089CD0 @ =gUnknown_0202FFAA
- str r0, [sp, 0x4]
- movs r0, 0x3
- str r0, [sp, 0x8]
- movs r0, 0x13
- adds r1, r4, 0
- movs r2, 0xA
- bl sub_8089BDC
- movs r2, 0x1
- orrs r2, r4
- ldrb r3, [r6]
- str r5, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x14
- bl InitMenu
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08089CC8: .4byte gUnknown_0202FFA9
-_08089CCC: .4byte gPokemonMenuActions
-_08089CD0: .4byte gUnknown_0202FFAA
- thumb_func_end sub_8089C7C
-
- thumb_func_start sub_8089CD4
-sub_8089CD4: @ 8089CD4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08089D00 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08089D84
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _08089D04
- cmp r0, 0x2
- beq _08089D60
- b _08089D84
- .align 2, 0
-_08089D00: .4byte gPaletteFade
-_08089D04:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _08089D48 @ =gLastFieldPokeMenuOpened
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089D4C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08089D50 @ =gStringVar1
- bl GetMonNickname
- bl sub_8089A8C
- ldr r0, _08089D54 @ =gUnknown_0202FFA8
- strb r5, [r0]
- movs r0, 0
- bl sub_8089C7C
- ldr r1, _08089D58 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08089D5C @ =sub_8089D94
- str r1, [r0]
- adds r0, r4, 0
- bl sub_808B5B4
- b _08089D84
- .align 2, 0
-_08089D48: .4byte gLastFieldPokeMenuOpened
-_08089D4C: .4byte gPlayerParty
-_08089D50: .4byte gStringVar1
-_08089D54: .4byte gUnknown_0202FFA8
-_08089D58: .4byte gTasks
-_08089D5C: .4byte sub_8089D94
-_08089D60:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08089D8C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08089D90 @ =sub_8089E4C
- str r1, [r0]
-_08089D84:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08089D8C: .4byte gTasks
-_08089D90: .4byte sub_8089E4C
- thumb_func_end sub_8089CD4
-
- thumb_func_start sub_8089D94
-sub_8089D94: @ 8089D94
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, _08089DC8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08089E44
- ldr r2, _08089DCC @ =gMain
- ldrh r0, [r2, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _08089DD4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- ldr r1, _08089DD0 @ =gUnknown_0202FFA8
- strb r0, [r1]
- b _08089E1A
- .align 2, 0
-_08089DC8: .4byte gPaletteFade
-_08089DCC: .4byte gMain
-_08089DD0: .4byte gUnknown_0202FFA8
-_08089DD4:
- cmp r1, 0x80
- bne _08089DF0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- ldr r1, _08089DEC @ =gUnknown_0202FFA8
- strb r0, [r1]
- b _08089E1A
- .align 2, 0
-_08089DEC: .4byte gUnknown_0202FFA8
-_08089DF0:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08089E30
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08089E24 @ =gPokemonMenuActions
- ldr r2, _08089E28 @ =gUnknown_0202FFAA
- ldr r0, _08089E2C @ =gUnknown_0202FFA8
- ldrb r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_08089E1A:
- adds r0, r4, 0
- bl sub_808B5B4
- b _08089E44
- .align 2, 0
-_08089E24: .4byte gPokemonMenuActions
-_08089E28: .4byte gUnknown_0202FFAA
-_08089E2C: .4byte gUnknown_0202FFA8
-_08089E30:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08089E44
- adds r0, r5, 0
- bl PokemonMenu_Cancel
- adds r0, r5, 0
- bl sub_808B5B4
-_08089E44:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8089D94
-
- thumb_func_start sub_8089E4C
-sub_8089E4C: @ 8089E4C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08089E78 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08089E72
- ldr r0, _08089E7C @ =gLastFieldPokeMenuOpened
- strb r1, [r0]
- ldr r0, _08089E80 @ =sub_805469C
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08089E72:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08089E78: .4byte gPaletteFade
-_08089E7C: .4byte gLastFieldPokeMenuOpened
-_08089E80: .4byte sub_805469C
- thumb_func_end sub_8089E4C
-
- thumb_func_start sub_8089E84
-sub_8089E84: @ 8089E84
- push {lr}
- ldr r0, _08089EAC @ =gLastFieldPokeMenuOpened
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089EB0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08089EB4 @ =gStringVar1
- bl GetMonNickname
- bl sub_8089A8C
- ldr r1, _08089EB8 @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- movs r0, 0
- bl sub_8089C7C
- pop {r0}
- bx r0
- .align 2, 0
-_08089EAC: .4byte gLastFieldPokeMenuOpened
-_08089EB0: .4byte gPlayerParty
-_08089EB4: .4byte gStringVar1
-_08089EB8: .4byte gUnknown_0202FFA8
- thumb_func_end sub_8089E84
-
- thumb_func_start sub_8089EBC
-sub_8089EBC: @ 8089EBC
- push {r4,r5,lr}
- ldr r4, _08089EC4 @ =0x0201b260
- ldr r5, _08089EC8 @ =gUnknown_020384F0
- b _08089ED8
- .align 2, 0
-_08089EC4: .4byte 0x0201b260
-_08089EC8: .4byte gUnknown_020384F0
-_08089ECC:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08089F04
-_08089ED8:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08089ECC
- ldrb r0, [r4]
- ldrb r1, [r5]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r1, _08089F0C @ =gLastFieldPokeMenuOpened
- ldrb r0, [r5]
- strb r0, [r1]
- bl sub_8089E84
- ldr r0, _08089F10 @ =sub_806AEDC
- bl SetMainCallback2
-_08089F04:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08089F0C: .4byte gLastFieldPokeMenuOpened
-_08089F10: .4byte sub_806AEDC
- thumb_func_end sub_8089EBC
-
- thumb_func_start sub_8089F14
-sub_8089F14: @ 8089F14
- push {lr}
- ldr r2, _08089F38 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _08089F3C @ =sub_8089D94
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _08089F40 @ =sub_8089EBC
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08089F38: .4byte gPaletteFade
-_08089F3C: .4byte sub_8089D94
-_08089F40: .4byte sub_8089EBC
- thumb_func_end sub_8089F14
-
- thumb_func_start sub_8089F44
-sub_8089F44: @ 8089F44
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _08089FAC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08089FA2
- ldr r2, _08089FB0 @ =gSprites
- ldr r1, _08089FB4 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0xE]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r4, [r0, 0x2E]
- lsls r4, 24
- lsrs r4, 24
- adds r0, r3, 0
- bl DestroyTask
- ldr r0, _08089FB8 @ =0x0201b000
- ldr r1, _08089FBC @ =0x00000262
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08089FC0 @ =gPlayerParty
- ldr r1, _08089FC4 @ =gPlayerPartyCount
- ldrb r2, [r1]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08089FC8 @ =sub_8089F14
- str r5, [sp]
- adds r1, r4, 0
- bl ShowPokemonSummaryScreen
-_08089FA2:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08089FAC: .4byte gPaletteFade
-_08089FB0: .4byte gSprites
-_08089FB4: .4byte gTasks
-_08089FB8: .4byte 0x0201b000
-_08089FBC: .4byte 0x00000262
-_08089FC0: .4byte gPlayerParty
-_08089FC4: .4byte gPlayerPartyCount
-_08089FC8: .4byte sub_8089F14
- thumb_func_end sub_8089F44
-
- thumb_func_start PokemonMenu_Summary
-PokemonMenu_Summary: @ 8089FCC
- 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, _08089FFC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A000 @ =sub_8089F44
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08089FFC: .4byte gTasks
-_0808A000: .4byte sub_8089F44
- thumb_func_end PokemonMenu_Summary
-
- thumb_func_start sub_808A004
-sub_808A004: @ 808A004
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0808A024 @ =sub_806CA60
- ldr r2, _0808A028 @ =sub_8089CD4
- bl SetTaskFuncWithFollowupFunc
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- .align 2, 0
-_0808A024: .4byte sub_806CA60
-_0808A028: .4byte sub_8089CD4
- thumb_func_end sub_808A004
-
- thumb_func_start PokemonMenu_Switch
-PokemonMenu_Switch: @ 808A02C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl HandleDestroyMenuCursors
- ldr r0, _0808A054 @ =0x02001000
- ldr r1, _0808A058 @ =sub_806CD5C
- str r1, [r0, 0xC]
- ldr r1, _0808A05C @ =0x0001a272
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0]
- adds r0, r4, 0
- bl sub_808A004
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A054: .4byte 0x02001000
-_0808A058: .4byte sub_806CD5C
-_0808A05C: .4byte 0x0001a272
- thumb_func_end PokemonMenu_Switch
-
- thumb_func_start sub_808A060
-sub_808A060: @ 808A060
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A0D0 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x40
- bne _0808A086
- ldr r4, _0808A0D4 @ =gUnknown_0202FFA8
- ldrb r0, [r4]
- cmp r0, 0
- beq _0808A086
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
-_0808A086:
- ldr r0, _0808A0D0 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x80
- bne _0808A0A4
- ldr r4, _0808A0D4 @ =gUnknown_0202FFA8
- ldrb r0, [r4]
- cmp r0, 0x2
- beq _0808A0A4
- movs r0, 0x1
- bl MoveMenuCursor
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
-_0808A0A4:
- ldr r0, _0808A0D0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808A0E0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0808A0D8 @ =gUnknown_0839F578
- ldr r2, _0808A0DC @ =gPokemonMenuActions
- ldr r0, _0808A0D4 @ =gUnknown_0202FFA8
- ldrb r3, [r0]
- movs r0, 0
- bl PartyMenuGetPopupMenuFunc
- adds r1, r0, 0
- adds r0, r5, 0
- bl _call_via_r1
- b _0808A0F6
- .align 2, 0
-_0808A0D0: .4byte gMain
-_0808A0D4: .4byte gUnknown_0202FFA8
-_0808A0D8: .4byte gUnknown_0839F578
-_0808A0DC: .4byte gPokemonMenuActions
-_0808A0E0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808A0F6
- ldr r1, _0808A0FC @ =gUnknown_0839F578
- movs r0, 0
- bl sub_806E7D0
- adds r0, r5, 0
- bl PokemonMenu_CancelSubmenu
-_0808A0F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A0FC: .4byte gUnknown_0839F578
- thumb_func_end sub_808A060
-
- thumb_func_start sub_808A100
-sub_808A100: @ 808A100
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0808A130 @ =gUnknown_0839F578
- ldr r2, _0808A134 @ =gPokemonMenuActions
- movs r0, 0
- movs r3, 0
- bl sub_806E750
- movs r0, 0xD
- movs r1, 0x2
- bl sub_806D538
- ldr r1, _0808A138 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A13C @ =sub_808A060
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A130: .4byte gUnknown_0839F578
-_0808A134: .4byte gPokemonMenuActions
-_0808A138: .4byte gTasks
-_0808A13C: .4byte sub_808A060
- thumb_func_end sub_808A100
-
- thumb_func_start PokemonMenu_Item
-PokemonMenu_Item: @ 808A140
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl HandleDestroyMenuCursors
- ldr r1, _0808A174 @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _0808A178 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A17C @ =sub_808A100
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A174: .4byte gUnknown_0202FFA8
-_0808A178: .4byte gTasks
-_0808A17C: .4byte sub_808A100
- thumb_func_end PokemonMenu_Item
-
- thumb_func_start sub_808A180
-sub_808A180: @ 808A180
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A1D0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A1CA
- adds r0, r5, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A1D4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _0808A1D8 @ =gSaveBlock1 + 0x2B4C
- adds r1, r0
- ldr r2, _0808A1DC @ =sub_808A520
- movs r0, 0x4
- movs r3, 0x3
- bl sub_80E62A0
-_0808A1CA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A1D0: .4byte gPaletteFade
-_0808A1D4: .4byte gPlayerParty
-_0808A1D8: .4byte gSaveBlock1 + 0x2B4C
-_0808A1DC: .4byte sub_808A520
- thumb_func_end sub_808A180
-
- thumb_func_start sub_808A1E0
-sub_808A1E0: @ 808A1E0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A21C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808A216
- adds r0, r4, 0
- bl sub_806CA38
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl SetHeldItemIconVisibility
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r1, _0808A220 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A224 @ =sub_8089CD4
- str r1, [r0]
-_0808A216:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A21C: .4byte gUnknown_0202E8F6
-_0808A220: .4byte gTasks
-_0808A224: .4byte sub_8089CD4
- thumb_func_end sub_808A1E0
-
- thumb_func_start sub_808A228
-sub_808A228: @ 808A228
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A268 @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemIsMail
- lsls r0, 24
- cmp r0, 0
- beq _0808A278
- ldr r0, _0808A26C @ =gUnknown_0202E8F4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0808A278
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808A270 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A274 @ =sub_808A180
- str r1, [r0]
- b _0808A29A
- .align 2, 0
-_0808A268: .4byte gScriptItemId
-_0808A26C: .4byte gUnknown_0202E8F4
-_0808A270: .4byte gTasks
-_0808A274: .4byte sub_808A180
-_0808A278:
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r0, _0808A2A4 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808A2A8 @ =sub_8089CD4
- str r0, [r1]
-_0808A29A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A2A4: .4byte gTasks
-_0808A2A8: .4byte sub_8089CD4
- thumb_func_end sub_808A228
-
- thumb_func_start sub_808A2AC
-sub_808A2AC: @ 808A2AC
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0808A2D0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A2CA
- ldr r0, _0808A2D4 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0808A2D8 @ =sub_808A228
- adds r0, r3, 0
- bl PartyMenuTryGiveMonHeldItem
-_0808A2CA:
- pop {r0}
- bx r0
- .align 2, 0
-_0808A2D0: .4byte gPaletteFade
-_0808A2D4: .4byte gScriptItemId
-_0808A2D8: .4byte sub_808A228
- thumb_func_end sub_808A2AC
-
- thumb_func_start sub_808A2DC
-sub_808A2DC: @ 808A2DC
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A324 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _0808A328 @ =gSaveBlock1 + 0x2B4C
- adds r1, r0
- ldr r2, _0808A32C @ =sub_808A520
- movs r0, 0x4
- movs r3, 0x3
- bl sub_80E62A0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A324: .4byte gPlayerParty
-_0808A328: .4byte gSaveBlock1 + 0x2B4C
-_0808A32C: .4byte sub_808A520
- thumb_func_end sub_808A2DC
-
- thumb_func_start sub_808A330
-sub_808A330: @ 808A330
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0808A344 @ =gScriptItemId
- ldrh r1, [r1]
- ldr r2, _0808A348 @ =sub_808A2DC
- bl PartyMenuTryGiveMonHeldItem
- pop {r0}
- bx r0
- .align 2, 0
-_0808A344: .4byte gScriptItemId
-_0808A348: .4byte sub_808A2DC
- thumb_func_end sub_808A330
-
- thumb_func_start sub_808A34C
-sub_808A34C: @ 808A34C
- push {lr}
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_808A34C
-
- thumb_func_start sub_808A358
-sub_808A358: @ 808A358
- push {r4,lr}
- ldr r4, _0808A360 @ =0x0201b260
- b _0808A370
- .align 2, 0
-_0808A360: .4byte 0x0201b260
-_0808A364:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808A394
-_0808A370:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A364
- ldrb r0, [r4]
- ldr r1, _0808A39C @ =gLastFieldPokeMenuOpened
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808A3A0 @ =sub_806AEDC
- bl SetMainCallback2
-_0808A394:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A39C: .4byte gLastFieldPokeMenuOpened
-_0808A3A0: .4byte sub_806AEDC
- thumb_func_end sub_808A358
-
- thumb_func_start sub_808A3A4
-sub_808A3A4: @ 808A3A4
- push {r4,r5,lr}
- ldr r4, _0808A3D8 @ =0x0201b260
- adds r5, r4, 0x2
-_0808A3AA:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A3E4
- ldrb r0, [r4]
- ldr r1, _0808A3DC @ =gLastFieldPokeMenuOpened
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- movs r0, 0x3
- strb r0, [r5]
- bl sub_8089E84
- ldr r0, _0808A3E0 @ =sub_806AEDC
- bl SetMainCallback2
- b _0808A3F0
- .align 2, 0
-_0808A3D8: .4byte 0x0201b260
-_0808A3DC: .4byte gLastFieldPokeMenuOpened
-_0808A3E0: .4byte sub_806AEDC
-_0808A3E4:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A3AA
-_0808A3F0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_808A3A4
-
- thumb_func_start sub_808A3F8
-sub_808A3F8: @ 808A3F8
- push {r4,lr}
- ldr r0, _0808A460 @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemIsMail
- lsls r0, 24
- cmp r0, 0
- beq _0808A47E
- ldr r0, _0808A464 @ =sub_808A330
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _0808A468 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806BD58
- ldr r0, _0808A46C @ =gLastFieldPokeMenuOpened
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_806C994
- adds r0, r4, 0
- movs r1, 0
- bl sub_806BF74
- adds r0, r4, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A470 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 24
- cmp r0, 0
- bne _0808A478
- ldr r0, _0808A474 @ =sub_808A34C
- bl SetMainCallback2
- b _0808A4C6
- .align 2, 0
-_0808A460: .4byte gScriptItemId
-_0808A464: .4byte sub_808A330
-_0808A468: .4byte gPaletteFade
-_0808A46C: .4byte gLastFieldPokeMenuOpened
-_0808A470: .4byte gPlayerParty
-_0808A474: .4byte sub_808A34C
-_0808A478:
- adds r0, r4, 0
- bl DestroyTask
-_0808A47E:
- ldr r2, _0808A4A4 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0808A4A8 @ =gScriptItemId
- ldrh r0, [r0]
- cmp r0, 0
- beq _0808A4B4
- ldr r2, _0808A4AC @ =sub_808A2AC
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0xFF
- bl sub_806AF4C
- ldr r0, _0808A4B0 @ =sub_808A358
- bl SetMainCallback2
- b _0808A4C6
- .align 2, 0
-_0808A4A4: .4byte gPaletteFade
-_0808A4A8: .4byte gScriptItemId
-_0808A4AC: .4byte sub_808A2AC
-_0808A4B0: .4byte sub_808A358
-_0808A4B4:
- ldr r2, _0808A4CC @ =sub_8089D94
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _0808A4D0 @ =sub_808A3A4
- bl SetMainCallback2
-_0808A4C6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A4CC: .4byte sub_8089D94
-_0808A4D0: .4byte sub_808A3A4
- thumb_func_end sub_808A3F8
-
- thumb_func_start sub_808A4D4
-sub_808A4D4: @ 808A4D4
- push {r4,lr}
- ldr r4, _0808A4DC @ =0x0201b260
- b _0808A4EC
- .align 2, 0
-_0808A4DC: .4byte 0x0201b260
-_0808A4E0:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808A510
-_0808A4EC:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A4E0
- ldrb r0, [r4]
- ldr r1, _0808A518 @ =gLastFieldPokeMenuOpened
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808A51C @ =sub_806AEDC
- bl SetMainCallback2
-_0808A510:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A518: .4byte gLastFieldPokeMenuOpened
-_0808A51C: .4byte sub_806AEDC
- thumb_func_end sub_808A4D4
-
- thumb_func_start sub_808A520
-sub_808A520: @ 808A520
- push {r4-r7,lr}
- ldr r2, _0808A584 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0808A588 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _0808A59C
- ldr r7, _0808A58C @ =gUnknown_0202E8F8
- ldrh r0, [r7]
- cmp r0, 0
- beq _0808A542
- movs r1, 0x1
- bl RemoveBagItem
-_0808A542:
- ldr r6, _0808A590 @ =gLastFieldPokeMenuOpened
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _0808A594 @ =gPlayerParty
- adds r0, r4
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl AddBagItem
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- bl TakeMailFromMon
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0xC
- adds r2, r7, 0
- bl SetMonData
- ldr r2, _0808A598 @ =sub_8089CD4
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0
- bl sub_806AF4C
- b _0808A5A8
- .align 2, 0
-_0808A584: .4byte gPaletteFade
-_0808A588: .4byte gScriptResult
-_0808A58C: .4byte gUnknown_0202E8F8
-_0808A590: .4byte gLastFieldPokeMenuOpened
-_0808A594: .4byte gPlayerParty
-_0808A598: .4byte sub_8089CD4
-_0808A59C:
- ldr r2, _0808A5B4 @ =sub_808A5BC
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0xFF
- bl sub_806AF4C
-_0808A5A8:
- ldr r0, _0808A5B8 @ =sub_808A4D4
- bl SetMainCallback2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A5B4: .4byte sub_808A5BC
-_0808A5B8: .4byte sub_808A4D4
- thumb_func_end sub_808A520
-
- thumb_func_start sub_808A5BC
-sub_808A5BC: @ 808A5BC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A5F0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A5EA
- ldr r0, _0808A5F4 @ =gLastFieldPokeMenuOpened
- ldrb r0, [r0]
- ldr r1, _0808A5F8 @ =gScriptItemId
- ldrh r1, [r1]
- movs r2, 0
- bl DisplayGiveHeldItemMessage
- ldr r1, _0808A5FC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A600 @ =sub_808A1E0
- str r1, [r0]
-_0808A5EA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A5F0: .4byte gPaletteFade
-_0808A5F4: .4byte gLastFieldPokeMenuOpened
-_0808A5F8: .4byte gScriptItemId
-_0808A5FC: .4byte gTasks
-_0808A600: .4byte sub_808A1E0
- thumb_func_end sub_808A5BC
-
- thumb_func_start sub_808A604
-sub_808A604: @ 808A604
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A628 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A622
- ldr r0, _0808A62C @ =sub_80A61D0
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0808A622:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A628: .4byte gPaletteFade
-_0808A62C: .4byte sub_80A61D0
- thumb_func_end sub_808A604
-
- thumb_func_start PokemonMenu_GiveItem
-PokemonMenu_GiveItem: @ 808A630
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _0808A66C @ =gUnknown_0202E8F5
- strb r0, [r1]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808A670 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A674 @ =sub_808A604
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A66C: .4byte gUnknown_0202E8F5
-_0808A670: .4byte gTasks
-_0808A674: .4byte sub_808A604
- thumb_func_end PokemonMenu_GiveItem
-
- thumb_func_start sub_808A678
-sub_808A678: @ 808A678
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_808A8D4
- pop {r0}
- bx r0
- thumb_func_end sub_808A678
-
- thumb_func_start PokemonMenu_TakeItem
-PokemonMenu_TakeItem: @ 808A688
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl HandleDestroyMenuCursors
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r1, _0808A6B4 @ =sub_808A678
- adds r0, r4, 0
- bl PartyMenuTryGiveMonHeldItem_806ECE8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A6B4: .4byte sub_808A678
- thumb_func_end PokemonMenu_TakeItem
-
- thumb_func_start PokemonMenu_TakeMail
-PokemonMenu_TakeMail: @ 808A6B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl HandleDestroyMenuCursors
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r1, _0808A6E4 @ =sub_808A678
- adds r0, r4, 0
- bl DoTakeMail
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A6E4: .4byte sub_808A678
- thumb_func_end PokemonMenu_TakeMail
-
- thumb_func_start PokemonMenu_Mail
-PokemonMenu_Mail: @ 808A6E8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl HandleDestroyMenuCursors
- ldr r1, _0808A728 @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _0808A72C @ =gUnknown_0839F584
- ldr r2, _0808A730 @ =gPokemonMenuActions
- movs r0, 0
- movs r3, 0
- bl sub_806E750
- ldr r1, _0808A734 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A738 @ =sub_808A73C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A728: .4byte gUnknown_0202FFA8
-_0808A72C: .4byte gUnknown_0839F584
-_0808A730: .4byte gPokemonMenuActions
-_0808A734: .4byte gTasks
-_0808A738: .4byte sub_808A73C
- thumb_func_end PokemonMenu_Mail
-
- thumb_func_start sub_808A73C
-sub_808A73C: @ 808A73C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A764 @ =gMain
- ldrh r0, [r0, 0x30]
- cmp r0, 0x40
- bne _0808A77A
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0808A768 @ =gUnknown_0202FFA8
- ldrb r0, [r4]
- cmp r0, 0
- bne _0808A770
- ldr r0, _0808A76C @ =gUnknown_0839F584
- ldrb r0, [r0]
- subs r0, 0x1
- lsls r0, 24
- asrs r0, 24
- b _0808A774
- .align 2, 0
-_0808A764: .4byte gMain
-_0808A768: .4byte gUnknown_0202FFA8
-_0808A76C: .4byte gUnknown_0839F584
-_0808A770:
- movs r0, 0x1
- negs r0, r0
-_0808A774:
- bl MoveMenuCursor
- strb r0, [r4]
-_0808A77A:
- ldr r0, _0808A7A0 @ =gMain
- ldrh r0, [r0, 0x30]
- cmp r0, 0x80
- bne _0808A7B4
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0808A7A4 @ =gUnknown_0202FFA8
- ldrb r0, [r4]
- ldr r1, _0808A7A8 @ =gUnknown_0839F584
- ldrb r2, [r1]
- subs r1, r2, 0x1
- cmp r0, r1
- bne _0808A7AC
- movs r0, 0x1
- subs r0, r2
- lsls r0, 24
- asrs r0, 24
- b _0808A7AE
- .align 2, 0
-_0808A7A0: .4byte gMain
-_0808A7A4: .4byte gUnknown_0202FFA8
-_0808A7A8: .4byte gUnknown_0839F584
-_0808A7AC:
- movs r0, 0x1
-_0808A7AE:
- bl MoveMenuCursor
- strb r0, [r4]
-_0808A7B4:
- ldr r0, _0808A7E0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808A7F0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0808A7E4 @ =gUnknown_0839F584
- ldr r2, _0808A7E8 @ =gPokemonMenuActions
- ldr r0, _0808A7EC @ =gUnknown_0202FFA8
- ldrb r3, [r0]
- movs r0, 0
- bl PartyMenuGetPopupMenuFunc
- adds r1, r0, 0
- adds r0, r5, 0
- bl _call_via_r1
- b _0808A806
- .align 2, 0
-_0808A7E0: .4byte gMain
-_0808A7E4: .4byte gUnknown_0839F584
-_0808A7E8: .4byte gPokemonMenuActions
-_0808A7EC: .4byte gUnknown_0202FFA8
-_0808A7F0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808A806
- ldr r1, _0808A80C @ =gUnknown_0839F584
- movs r0, 0
- bl sub_806E7D0
- adds r0, r5, 0
- bl PokemonMenu_Cancel
-_0808A806:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A80C: .4byte gUnknown_0839F584
- thumb_func_end sub_808A73C
-
- thumb_func_start PokemonMenu_ReadMail
-PokemonMenu_ReadMail: @ 808A810
- 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, _0808A840 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A844 @ =sub_808A848
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A840: .4byte gTasks
-_0808A844: .4byte sub_808A848
- thumb_func_end PokemonMenu_ReadMail
-
- thumb_func_start sub_808A848
-sub_808A848: @ 808A848
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A898 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A890
- adds r0, r5, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A89C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- ldr r1, _0808A8A0 @ =gSaveBlock1 + 0x2B4C
- adds r0, r1
- ldr r1, _0808A8A4 @ =sub_808A8A8
- movs r2, 0x1
- bl HandleReadMail
-_0808A890:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A898: .4byte gPaletteFade
-_0808A89C: .4byte gPlayerParty
-_0808A8A0: .4byte gSaveBlock1 + 0x2B4C
-_0808A8A4: .4byte sub_808A8A8
- thumb_func_end sub_808A848
-
- thumb_func_start sub_808A8A8
-sub_808A8A8: @ 808A8A8
- push {lr}
- ldr r1, _0808A8C4 @ =gUnknown_020384F0
- ldr r0, _0808A8C8 @ =gLastFieldPokeMenuOpened
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0808A8CC @ =0x0201b000
- ldr r1, _0808A8D0 @ =0x00000262
- adds r0, r1
- movs r1, 0x4
- strb r1, [r0]
- bl sub_8089F14
- pop {r0}
- bx r0
- .align 2, 0
-_0808A8C4: .4byte gUnknown_020384F0
-_0808A8C8: .4byte gLastFieldPokeMenuOpened
-_0808A8CC: .4byte 0x0201b000
-_0808A8D0: .4byte 0x00000262
- thumb_func_end sub_808A8A8
-
- thumb_func_start sub_808A8D4
-sub_808A8D4: @ 808A8D4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0808A90C @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r1, _0808A910 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A914 @ =sub_8089CD4
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A90C: .4byte gUnknown_0202FFA8
-_0808A910: .4byte gTasks
-_0808A914: .4byte sub_8089CD4
- thumb_func_end sub_808A8D4
-
- thumb_func_start PokemonMenu_Cancel
-PokemonMenu_Cancel: @ 808A918
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl HandleDestroyMenuCursors
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_808A8D4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PokemonMenu_Cancel
-
- thumb_func_start PokemonMenu_CancelSubmenu
-PokemonMenu_CancelSubmenu: @ 808A938
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl HandleDestroyMenuCursors
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r0, _0808A978 @ =gUnknown_0202FFA8
- ldrb r0, [r0]
- bl sub_8089C7C
- ldr r1, _0808A97C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A980 @ =sub_8089D94
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A978: .4byte gUnknown_0202FFA8
-_0808A97C: .4byte gTasks
-_0808A980: .4byte sub_8089D94
- thumb_func_end PokemonMenu_CancelSubmenu
-
- thumb_func_start PokemonMenu_FieldMove
-PokemonMenu_FieldMove: @ 808A984
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _0808A9D0 @ =gTasks + 0x8
- adds r4, r6, r7
- bl HandleDestroyMenuCursors
- ldr r1, _0808A9D4 @ =gUnknown_0202FFAA
- ldr r0, _0808A9D8 @ =gUnknown_0202FFA8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0xA
- strh r0, [r4, 0x16]
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A9DC
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldrh r0, [r4, 0x16]
- subs r0, 0xB
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0808AABA
- movs r0, 0x9
- b _0808AAB2
- .align 2, 0
-_0808A9D0: .4byte gTasks + 0x8
-_0808A9D4: .4byte gUnknown_0202FFAA
-_0808A9D8: .4byte gUnknown_0202FFA8
-_0808A9DC:
- ldrh r1, [r4, 0x16]
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0x7
- bgt _0808AA2C
- ldr r2, _0808AA20 @ =0x00000807
- adds r0, r1, r2
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808AA2C
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r0, _0808AA24 @ =gOtherText_CantBeUsedBadge
- movs r1, 0x1
- bl sub_806E834
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0808AA28 @ =sub_808AAF0
- str r1, [r0]
- b _0808AADA
- .align 2, 0
-_0808AA20: .4byte 0x00000807
-_0808AA24: .4byte gOtherText_CantBeUsedBadge
-_0808AA28: .4byte sub_808AAF0
-_0808AA2C:
- ldr r1, _0808AA78 @ =gFieldMoveFuncs
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AA90
- ldr r1, _0808AA7C @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- ldrh r0, [r4, 0x16]
- subs r0, 0xB
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _0808AA88
- ldr r1, _0808AA80 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808AA84 @ =sub_808AB34
- str r1, [r0]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0808AADA
- .align 2, 0
-_0808AA78: .4byte gFieldMoveFuncs
-_0808AA7C: .4byte gUnknown_0202FFA8
-_0808AA80: .4byte gTasks
-_0808AA84: .4byte sub_808AB34
-_0808AA88:
- adds r0, r5, 0
- bl sub_8133D28
- b _0808AADA
-_0808AA90:
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bne _0808AABA
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0808AABA
- movs r0, 0x8
-_0808AAB2:
- movs r1, 0
- bl sub_806D538
- b _0808AACC
-_0808AABA:
- ldr r0, _0808AAE4 @ =gFieldMoveFuncs
- movs r2, 0x16
- ldrsh r1, [r4, r2]
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x4]
- movs r1, 0
- bl sub_806D538
-_0808AACC:
- ldr r0, _0808AAE8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808AAEC @ =sub_808ABF4
- str r0, [r1]
-_0808AADA:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AAE4: .4byte gFieldMoveFuncs
-_0808AAE8: .4byte gTasks
-_0808AAEC: .4byte sub_808ABF4
- thumb_func_end PokemonMenu_FieldMove
-
- thumb_func_start sub_808AAF0
-sub_808AAF0: @ 808AAF0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808AB2C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808AB24
- ldr r0, _0808AB30 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0808AB12
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808AB24
-_0808AB12:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl PokemonMenu_Cancel
-_0808AB24:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AB2C: .4byte gUnknown_0202E8F6
-_0808AB30: .4byte gMain
- thumb_func_end sub_808AAF0
-
- thumb_func_start sub_808AB34
-sub_808AB34: @ 808AB34
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808AB6C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808AB84
- ldr r0, _0808AB70 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0x1E
- ldrsh r0, [r1, r2]
- cmp r0, 0x5
- bne _0808AB62
- bl ShouldDoBrailleFlyEffect
- lsls r0, 24
- cmp r0, 0
- beq _0808AB78
-_0808AB62:
- ldr r0, _0808AB74 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- b _0808AB7E
- .align 2, 0
-_0808AB6C: .4byte gPaletteFade
-_0808AB70: .4byte gTasks
-_0808AB74: .4byte c2_exit_to_overworld_2_switch
-_0808AB78:
- ldr r0, _0808AB8C @ =CB2_InitFlyRegionMap
- bl SetMainCallback2
-_0808AB7E:
- adds r0, r4, 0
- bl DestroyTask
-_0808AB84:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AB8C: .4byte CB2_InitFlyRegionMap
- thumb_func_end sub_808AB34
-
- thumb_func_start sub_808AB90
-sub_808AB90: @ 808AB90
- push {lr}
- bl pal_fill_black
- ldr r0, _0808ABA4 @ =sub_808ABA8
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0808ABA4: .4byte sub_808ABA8
- thumb_func_end sub_808AB90
-
- thumb_func_start sub_808ABA8
-sub_808ABA8: @ 808ABA8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808ABDE
- ldr r0, _0808ABE4 @ =gLastFieldPokeMenuOpened
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808ABE8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- ldr r1, _0808ABEC @ =gUnknown_0202FF84
- str r0, [r1]
- ldr r0, _0808ABF0 @ =gUnknown_03005CE4
- ldr r0, [r0]
- bl _call_via_r0
- adds r0, r4, 0
- bl DestroyTask
-_0808ABDE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808ABE4: .4byte gLastFieldPokeMenuOpened
-_0808ABE8: .4byte gPlayerParty
-_0808ABEC: .4byte gUnknown_0202FF84
-_0808ABF0: .4byte gUnknown_03005CE4
- thumb_func_end sub_808ABA8
-
- thumb_func_start sub_808ABF4
-sub_808ABF4: @ 808ABF4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808AC28 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0808AC0E
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808AC20
-_0808AC0E:
- movs r0, 0x1
- movs r1, 0x11
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl PokemonMenu_Cancel
-_0808AC20:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AC28: .4byte gMain
- thumb_func_end sub_808ABF4
-
- thumb_func_start sub_808AC2C
-sub_808AC2C: @ 808AC2C
- push {lr}
- ldr r0, _0808AC40 @ =gUnknown_0202FF84
- ldr r1, _0808AC44 @ =gLastFieldPokeMenuOpened
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x9
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808AC40: .4byte gUnknown_0202FF84
-_0808AC44: .4byte gLastFieldPokeMenuOpened
- thumb_func_end sub_808AC2C
-
- thumb_func_start SetUpFieldMove_Surf
-SetUpFieldMove_Surf: @ 808AC48
- push {lr}
- bl PartyHasMonWithSurf
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AC84
- bl IsPlayerFacingSurfableFishableWater
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AC84
- ldr r1, _0808AC74 @ =gFieldCallback
- ldr r0, _0808AC78 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808AC7C @ =gUnknown_03005CE4
- ldr r0, _0808AC80 @ =sub_808AC2C
- str r0, [r1]
- movs r0, 0x1
- b _0808AC86
- .align 2, 0
-_0808AC74: .4byte gFieldCallback
-_0808AC78: .4byte sub_808AB90
-_0808AC7C: .4byte gUnknown_03005CE4
-_0808AC80: .4byte sub_808AC2C
-_0808AC84:
- movs r0, 0
-_0808AC86:
- pop {r1}
- bx r1
- thumb_func_end SetUpFieldMove_Surf
-
- thumb_func_start sub_808AC8C
-sub_808AC8C: @ 808AC8C
- push {lr}
- ldr r0, _0808ACA0 @ =gUnknown_0202FF84
- ldr r1, _0808ACA4 @ =gLastFieldPokeMenuOpened
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x1F
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808ACA0: .4byte gUnknown_0202FF84
-_0808ACA4: .4byte gLastFieldPokeMenuOpened
- thumb_func_end sub_808AC8C
-
- thumb_func_start SetUpFieldMove_Fly
-SetUpFieldMove_Fly: @ 808ACA8
- push {lr}
- bl ShouldDoBrailleFlyEffect
- lsls r0, 24
- cmp r0, 0
- beq _0808ACD0
- ldr r1, _0808ACC0 @ =gFieldCallback
- ldr r0, _0808ACC4 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808ACC8 @ =gUnknown_03005CE4
- ldr r0, _0808ACCC @ =DoBrailleFlyEffect
- b _0808ACF2
- .align 2, 0
-_0808ACC0: .4byte gFieldCallback
-_0808ACC4: .4byte sub_808AB90
-_0808ACC8: .4byte gUnknown_03005CE4
-_0808ACCC: .4byte DoBrailleFlyEffect
-_0808ACD0:
- ldr r0, _0808ACE4 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- bl is_light_level_1_2_3_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808ACE8
- movs r0, 0
- b _0808ACF6
- .align 2, 0
-_0808ACE4: .4byte gMapHeader
-_0808ACE8:
- ldr r1, _0808ACFC @ =gFieldCallback
- ldr r0, _0808AD00 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808AD04 @ =gUnknown_03005CE4
- ldr r0, _0808AD08 @ =sub_808AC8C
-_0808ACF2:
- str r0, [r1]
- movs r0, 0x1
-_0808ACF6:
- pop {r1}
- bx r1
- .align 2, 0
-_0808ACFC: .4byte gFieldCallback
-_0808AD00: .4byte sub_808AB90
-_0808AD04: .4byte gUnknown_03005CE4
-_0808AD08: .4byte sub_808AC8C
- thumb_func_end SetUpFieldMove_Fly
-
- thumb_func_start sub_808AD0C
-sub_808AD0C: @ 808AD0C
- push {r4,lr}
- ldr r4, _0808AD14 @ =0x0201b260
- b _0808AD24
- .align 2, 0
-_0808AD14: .4byte 0x0201b260
-_0808AD18:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808AD48
-_0808AD24:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AD18
- ldrb r0, [r4]
- ldr r1, _0808AD50 @ =gLastFieldPokeMenuOpened
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808AD54 @ =sub_806AEDC
- bl SetMainCallback2
-_0808AD48:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AD50: .4byte gLastFieldPokeMenuOpened
-_0808AD54: .4byte sub_806AEDC
- thumb_func_end sub_808AD0C
-
- thumb_func_start sub_808AD58
-sub_808AD58: @ 808AD58
- push {lr}
- ldr r2, _0808AD7C @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _0808AD80 @ =sub_8089CD4
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0
- bl sub_806AF4C
- ldr r0, _0808AD84 @ =sub_808AD0C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0808AD7C: .4byte gPaletteFade
-_0808AD80: .4byte sub_8089CD4
-_0808AD84: .4byte sub_808AD0C
- thumb_func_end sub_808AD58
-
- thumb_func_start unref_sub_808AD88
-unref_sub_808AD88: @ 808AD88
- push {lr}
- ldr r0, _0808ADA4 @ =gLastFieldPokeMenuOpened
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808ADA8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0808ADA4: .4byte gLastFieldPokeMenuOpened
-_0808ADA8: .4byte gPlayerParty
- thumb_func_end unref_sub_808AD88
-
- thumb_func_start sub_808ADAC
-sub_808ADAC: @ 808ADAC
- push {lr}
- ldr r0, _0808ADC0 @ =gUnknown_0202FF84
- ldr r1, _0808ADC4 @ =gLastFieldPokeMenuOpened
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x2C
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808ADC0: .4byte gUnknown_0202FF84
-_0808ADC4: .4byte gLastFieldPokeMenuOpened
- thumb_func_end sub_808ADAC
-
- thumb_func_start SetUpFieldMove_Dive
-SetUpFieldMove_Dive: @ 808ADC8
- push {lr}
- bl sub_8068F18
- ldr r1, _0808ADE0 @ =gUnknown_0202FF84
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1, 0x4]
- cmp r0, 0
- bne _0808ADE4
- movs r0, 0
- b _0808ADF2
- .align 2, 0
-_0808ADE0: .4byte gUnknown_0202FF84
-_0808ADE4:
- ldr r1, _0808ADF8 @ =gFieldCallback
- ldr r0, _0808ADFC @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808AE00 @ =gUnknown_03005CE4
- ldr r0, _0808AE04 @ =sub_808ADAC
- str r0, [r1]
- movs r0, 0x1
-_0808ADF2:
- pop {r1}
- bx r1
- .align 2, 0
-_0808ADF8: .4byte gFieldCallback
-_0808ADFC: .4byte sub_808AB90
-_0808AE00: .4byte gUnknown_03005CE4
-_0808AE04: .4byte sub_808ADAC
- thumb_func_end SetUpFieldMove_Dive
-
- thumb_func_start sub_808AE08
-sub_808AE08: @ 808AE08
- push {lr}
- ldr r0, _0808AE1C @ =gUnknown_0202FF84
- ldr r1, _0808AE20 @ =gLastFieldPokeMenuOpened
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x2B
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808AE1C: .4byte gUnknown_0202FF84
-_0808AE20: .4byte gLastFieldPokeMenuOpened
- thumb_func_end sub_808AE08
-
- thumb_func_start SetUpFieldMove_Waterfall
-SetUpFieldMove_Waterfall: @ 808AE24
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AE80
- bl IsPlayerSurfingNorth
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AE80
- ldr r1, _0808AE70 @ =gFieldCallback
- ldr r0, _0808AE74 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808AE78 @ =gUnknown_03005CE4
- ldr r0, _0808AE7C @ =sub_808AE08
- str r0, [r1]
- movs r0, 0x1
- b _0808AE82
- .align 2, 0
-_0808AE70: .4byte gFieldCallback
-_0808AE74: .4byte sub_808AB90
-_0808AE78: .4byte gUnknown_03005CE4
-_0808AE7C: .4byte sub_808AE08
-_0808AE80:
- movs r0, 0
-_0808AE82:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end SetUpFieldMove_Waterfall
-
- thumb_func_start sub_808AE8C
-sub_808AE8C: @ 808AE8C
- push {r4-r6,lr}
- ldr r0, _0808AED8 @ =gScriptItemId
- ldrb r0, [r0]
- subs r0, 0x21
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
-_0808AE9A:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0808AEDC @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0808AF10
- adds r0, r5, 0
- bl sub_806D668
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0808AECE
- adds r0, r4, 0
- adds r1, r6, 0
- bl CanMonLearnTMHM
- cmp r0, 0
- bne _0808AEE0
-_0808AECE:
- adds r0, r5, 0
- movs r1, 0x9A
- bl sub_806BC3C
- b _0808AF10
- .align 2, 0
-_0808AED8: .4byte gScriptItemId
-_0808AEDC: .4byte gPlayerParty
-_0808AEE0:
- ldr r0, _0808AF04 @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemIdToBattleMoveId
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl pokemon_has_move
- lsls r0, 24
- cmp r0, 0
- beq _0808AF08
- adds r0, r5, 0
- movs r1, 0xA8
- bl sub_806BC3C
- b _0808AF10
- .align 2, 0
-_0808AF04: .4byte gScriptItemId
-_0808AF08:
- adds r0, r5, 0
- movs r1, 0x8C
- bl sub_806BC3C
-_0808AF10:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0808AE9A
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_808AE8C
-
- thumb_func_start sub_808AF20
-sub_808AF20: @ 808AF20
- push {r4,r5,lr}
- movs r5, 0
-_0808AF24:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0808AF78 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0808AF66
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0808AF58
- ldr r0, _0808AF7C @ =gScriptItemId
- ldrh r2, [r0]
- adds r0, r4, 0
- movs r1, 0x3
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- cmp r0, 0
- bne _0808AF66
-_0808AF58:
- adds r0, r5, 0
- bl sub_806D668
- adds r0, r5, 0
- movs r1, 0
- bl sub_806BC3C
-_0808AF66:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0808AF24
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AF78: .4byte gPlayerParty
-_0808AF7C: .4byte gScriptItemId
- thumb_func_end sub_808AF20
-
- thumb_func_start sub_808AF80
-sub_808AF80: @ 808AF80
- push {r4,r5,lr}
- ldr r5, _0808AFB0 @ =0x0201b260
-_0808AF84:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B00C
- ldr r0, _0808AFB4 @ =gUnknown_02038561
- ldrb r0, [r0]
- cmp r0, 0
- bne _0808AFC6
- ldr r0, _0808AFB8 @ =gScriptItemId
- ldrh r0, [r0]
- bl CheckIfItemIsTMHMOrEvolutionStone
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808AFBC
- cmp r0, 0x2
- beq _0808AFC2
- b _0808AFC6
- .align 2, 0
-_0808AFB0: .4byte 0x0201b260
-_0808AFB4: .4byte gUnknown_02038561
-_0808AFB8: .4byte gScriptItemId
-_0808AFBC:
- bl sub_808AE8C
- b _0808AFC6
-_0808AFC2:
- bl sub_808AF20
-_0808AFC6:
- ldr r4, _0808B000 @ =gLastFieldPokeMenuOpened
- ldrb r0, [r4]
- cmp r0, 0x5
- bhi _0808AFE2
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808B004 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- bne _0808AFE6
-_0808AFE2:
- movs r0, 0
- strb r0, [r4]
-_0808AFE6:
- ldrb r0, [r5]
- ldr r1, _0808B000 @ =gLastFieldPokeMenuOpened
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r5]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808B008 @ =sub_806AEDC
- bl SetMainCallback2
- b _0808B018
- .align 2, 0
-_0808B000: .4byte gLastFieldPokeMenuOpened
-_0808B004: .4byte gPlayerParty
-_0808B008: .4byte sub_806AEDC
-_0808B00C:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AF84
-_0808B018:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_808AF80
-
- thumb_func_start sub_808B020
-sub_808B020: @ 808B020
- push {lr}
- ldr r2, _0808B040 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0808B044 @ =gUnknown_02038561
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808B0A0
- cmp r0, 0x1
- bgt _0808B048
- cmp r0, 0
- beq _0808B052
- b _0808B0AC
- .align 2, 0
-_0808B040: .4byte gPaletteFade
-_0808B044: .4byte gUnknown_02038561
-_0808B048:
- cmp r0, 0x3
- beq _0808B0A0
- cmp r0, 0x4
- beq _0808B08C
- b _0808B0AC
-_0808B052:
- ldr r0, _0808B070 @ =gScriptItemId
- ldrh r0, [r0]
- bl CheckIfItemIsTMHMOrEvolutionStone
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B078
- ldr r2, _0808B074 @ =sub_808B0C0
- movs r0, 0
- movs r1, 0
- movs r3, 0x14
- bl sub_806AF4C
- b _0808B0AC
- .align 2, 0
-_0808B070: .4byte gScriptItemId
-_0808B074: .4byte sub_808B0C0
-_0808B078:
- ldr r2, _0808B088 @ =sub_808B0C0
- movs r0, 0
- movs r1, 0
- movs r3, 0x3
- bl sub_806AF4C
- b _0808B0AC
- .align 2, 0
-_0808B088: .4byte sub_808B0C0
-_0808B08C:
- ldr r2, _0808B09C @ =sub_808B1EC
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
- b _0808B0AC
- .align 2, 0
-_0808B09C: .4byte sub_808B1EC
-_0808B0A0:
- ldr r2, _0808B0B8 @ =sub_808B0C0
- movs r0, 0
- movs r1, 0
- movs r3, 0x4
- bl sub_806AF4C
-_0808B0AC:
- ldr r0, _0808B0BC @ =sub_808AF80
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0808B0B8: .4byte sub_808B0C0
-_0808B0BC: .4byte sub_808AF80
- thumb_func_end sub_808B020
-
- thumb_func_start sub_808B0C0
-sub_808B0C0: @ 808B0C0
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B0EC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0808B1CE
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _0808B0F0
- cmp r0, 0x2
- beq _0808B184
- b _0808B1CE
- .align 2, 0
-_0808B0EC: .4byte gPaletteFade
-_0808B0F0:
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _0808B118 @ =gLastFieldPokeMenuOpened
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808B11C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0808B120
- movs r0, 0x20
- bl PlaySE
- b _0808B1CE
- .align 2, 0
-_0808B118: .4byte gLastFieldPokeMenuOpened
-_0808B11C: .4byte gPlayerParty
-_0808B120:
- bl sub_806D5A4
- ldr r5, _0808B16C @ =gUnknown_02038561
- ldrb r0, [r5]
- cmp r0, 0
- bne _0808B13C
- ldr r3, _0808B170 @ =gUnknown_03004AE4
- ldr r0, _0808B174 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0808B178 @ =sub_808B224
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
-_0808B13C:
- ldrb r0, [r5]
- cmp r0, 0x1
- bne _0808B154
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0808B174 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0808B17C @ =sub_808B2EC
- adds r0, r4, 0
- bl PartyMenuTryGiveMonHeldItem
-_0808B154:
- ldrb r0, [r5]
- cmp r0, 0x3
- bne _0808B1CE
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0808B180 @ =sub_808B2B4
- adds r0, r4, 0
- bl PartyMenuTryGiveMonMail
- b _0808B1CE
- .align 2, 0
-_0808B16C: .4byte gUnknown_02038561
-_0808B170: .4byte gUnknown_03004AE4
-_0808B174: .4byte gScriptItemId
-_0808B178: .4byte sub_808B224
-_0808B17C: .4byte sub_808B2EC
-_0808B180: .4byte sub_808B2B4
-_0808B184:
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _0808B1D8 @ =gLastFieldPokeMenuOpened
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r2, _0808B1DC @ =gUnknown_02038561
- ldrb r0, [r2]
- cmp r0, 0x1
- bhi _0808B1BA
- ldr r0, _0808B1E0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808B1E4 @ =sub_808B25C
- str r0, [r1]
-_0808B1BA:
- ldrb r0, [r2]
- cmp r0, 0x3
- bne _0808B1CE
- ldr r0, _0808B1E0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808B1E8 @ =sub_808B2B4
- str r0, [r1]
-_0808B1CE:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B1D8: .4byte gLastFieldPokeMenuOpened
-_0808B1DC: .4byte gUnknown_02038561
-_0808B1E0: .4byte gTasks
-_0808B1E4: .4byte sub_808B25C
-_0808B1E8: .4byte sub_808B2B4
- thumb_func_end sub_808B0C0
-
- thumb_func_start sub_808B1EC
-sub_808B1EC: @ 808B1EC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B214 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B20E
- ldr r3, _0808B218 @ =gUnknown_03004AE4
- ldr r0, _0808B21C @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0808B220 @ =sub_808B224
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
-_0808B20E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B214: .4byte gPaletteFade
-_0808B218: .4byte gUnknown_03004AE4
-_0808B21C: .4byte gScriptItemId
-_0808B220: .4byte sub_808B224
- thumb_func_end sub_808B1EC
-
- thumb_func_start sub_808B224
-sub_808B224: @ 808B224
- 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, _0808B254 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B258 @ =sub_808B25C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B254: .4byte gTasks
-_0808B258: .4byte sub_808B25C
- thumb_func_end sub_808B224
-
- thumb_func_start sub_808B25C
-sub_808B25C: @ 808B25C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B280 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B27A
- ldr r0, _0808B284 @ =sub_80A5B40
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0808B27A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B280: .4byte gPaletteFade
-_0808B284: .4byte sub_80A5B40
- thumb_func_end sub_808B25C
-
- thumb_func_start sub_808B288
-sub_808B288: @ 808B288
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B2AC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B2A6
- ldr r0, _0808B2B0 @ =Mailbox_ReturnToMailListAfterDeposit
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0808B2A6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B2AC: .4byte gPaletteFade
-_0808B2B0: .4byte Mailbox_ReturnToMailListAfterDeposit
- thumb_func_end sub_808B288
-
- thumb_func_start sub_808B2B4
-sub_808B2B4: @ 808B2B4
- 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, _0808B2E4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B2E8 @ =sub_808B288
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B2E4: .4byte gTasks
-_0808B2E8: .4byte sub_808B288
- thumb_func_end sub_808B2B4
-
- thumb_func_start sub_808B2EC
-sub_808B2EC: @ 808B2EC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B31C @ =gUnknown_0202E8F4
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0808B328
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808B320 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B324 @ =sub_808B338
- str r1, [r0]
- b _0808B32E
- .align 2, 0
-_0808B31C: .4byte gUnknown_0202E8F4
-_0808B320: .4byte gTasks
-_0808B324: .4byte sub_808B338
-_0808B328:
- adds r0, r4, 0
- bl sub_808B224
-_0808B32E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_808B2EC
-
- thumb_func_start sub_808B338
-sub_808B338: @ 808B338
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808B38C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B384
- adds r0, r5, 0
- bl sub_806CA38
- ldr r1, _0808B390 @ =gLastFieldPokeMenuOpened
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808B394 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _0808B398 @ =gSaveBlock1 + 0x2B4C
- adds r1, r0
- ldr r2, _0808B39C @ =sub_808B3EC
- movs r0, 0x4
- movs r3, 0x3
- bl sub_80E62A0
-_0808B384:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B38C: .4byte gPaletteFade
-_0808B390: .4byte gLastFieldPokeMenuOpened
-_0808B394: .4byte gPlayerParty
-_0808B398: .4byte gSaveBlock1 + 0x2B4C
-_0808B39C: .4byte sub_808B3EC
- thumb_func_end sub_808B338
-
- thumb_func_start sub_808B3A0
-sub_808B3A0: @ 808B3A0
- push {r4,lr}
- ldr r4, _0808B3A8 @ =0x0201b260
- b _0808B3B8
- .align 2, 0
-_0808B3A8: .4byte 0x0201b260
-_0808B3AC:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808B3DC
-_0808B3B8:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B3AC
- ldrb r0, [r4]
- ldr r1, _0808B3E4 @ =gLastFieldPokeMenuOpened
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808B3E8 @ =sub_806AEDC
- bl SetMainCallback2
-_0808B3DC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B3E4: .4byte gLastFieldPokeMenuOpened
-_0808B3E8: .4byte sub_806AEDC
- thumb_func_end sub_808B3A0
-
- thumb_func_start sub_808B3EC
-sub_808B3EC: @ 808B3EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0808B464 @ =gPaletteFade
- mov r8, r0
- ldrb r0, [r0, 0x8]
- movs r1, 0x80
- orrs r0, r1
- mov r1, r8
- strb r0, [r1, 0x8]
- ldr r0, _0808B468 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _0808B480
- ldr r7, _0808B46C @ =gUnknown_0202E8F8
- ldrh r0, [r7]
- cmp r0, 0
- beq _0808B416
- movs r1, 0x1
- bl RemoveBagItem
-_0808B416:
- ldr r6, _0808B470 @ =gLastFieldPokeMenuOpened
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _0808B474 @ =gPlayerParty
- adds r0, r4
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl AddBagItem
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- bl TakeMailFromMon
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0xC
- adds r2, r7, 0
- bl SetMonData
- ldr r0, _0808B478 @ =sub_808B25C
- movs r1, 0x5
- bl CreateTask
- mov r0, r8
- ldrb r1, [r0, 0x8]
- movs r0, 0x7F
- ands r0, r1
- mov r1, r8
- strb r0, [r1, 0x8]
- ldr r0, _0808B47C @ =sub_806AEDC
- b _0808B48E
- .align 2, 0
-_0808B464: .4byte gPaletteFade
-_0808B468: .4byte gScriptResult
-_0808B46C: .4byte gUnknown_0202E8F8
-_0808B470: .4byte gLastFieldPokeMenuOpened
-_0808B474: .4byte gPlayerParty
-_0808B478: .4byte sub_808B25C
-_0808B47C: .4byte sub_806AEDC
-_0808B480:
- ldr r2, _0808B49C @ =sub_808B4A4
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
- ldr r0, _0808B4A0 @ =sub_808B3A0
-_0808B48E:
- bl SetMainCallback2
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B49C: .4byte sub_808B4A4
-_0808B4A0: .4byte sub_808B3A0
- thumb_func_end sub_808B3EC
-
- thumb_func_start sub_808B4A4
-sub_808B4A4: @ 808B4A4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B4D8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B4D2
- ldr r0, _0808B4DC @ =gLastFieldPokeMenuOpened
- ldrb r0, [r0]
- ldr r1, _0808B4E0 @ =gScriptItemId
- ldrh r1, [r1]
- movs r2, 0x1
- bl DisplayGiveHeldItemMessage
- ldr r1, _0808B4E4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B4E8 @ =sub_808B4EC
- str r1, [r0]
-_0808B4D2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B4D8: .4byte gPaletteFade
-_0808B4DC: .4byte gLastFieldPokeMenuOpened
-_0808B4E0: .4byte gScriptItemId
-_0808B4E4: .4byte gTasks
-_0808B4E8: .4byte sub_808B4EC
- thumb_func_end sub_808B4A4
-
- thumb_func_start sub_808B4EC
-sub_808B4EC: @ 808B4EC
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _0808B504 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808B500
- adds r0, r1, 0
- bl sub_808B224
-_0808B500:
- pop {r0}
- bx r0
- .align 2, 0
-_0808B504: .4byte gUnknown_0202E8F6
- thumb_func_end sub_808B4EC
-
- thumb_func_start sub_808B508
-sub_808B508: @ 808B508
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_808B224
- pop {r0}
- bx r0
- thumb_func_end sub_808B508
-
- thumb_func_start sub_808B518
-sub_808B518: @ 808B518
- push {r4,lr}
- ldr r4, _0808B520 @ =0x0201b260
- b _0808B530
- .align 2, 0
-_0808B520: .4byte 0x0201b260
-_0808B524:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808B554
-_0808B530:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B524
- ldrb r0, [r4]
- ldr r1, _0808B55C @ =gUnknown_020384F0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808B560 @ =sub_806AEDC
- bl SetMainCallback2
-_0808B554:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B55C: .4byte gUnknown_020384F0
-_0808B560: .4byte sub_806AEDC
- thumb_func_end sub_808B518
-
- thumb_func_start sub_808B564
-sub_808B564: @ 808B564
- push {lr}
- ldr r2, _0808B58C @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- bl sub_809FA30
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- beq _0808B594
- ldr r2, _0808B590 @ =TaughtMove
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
- b _0808B5A0
- .align 2, 0
-_0808B58C: .4byte gPaletteFade
-_0808B590: .4byte TaughtMove
-_0808B594:
- ldr r2, _0808B5AC @ =StopTryingToTeachMove_806F588
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
-_0808B5A0:
- ldr r0, _0808B5B0 @ =sub_808B518
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0808B5AC: .4byte StopTryingToTeachMove_806F588
-_0808B5B0: .4byte sub_808B518
- thumb_func_end sub_808B564
-
- thumb_func_start sub_808B5B4
-sub_808B5B4: @ 808B5B4
- push {lr}
- ldr r3, _0808B5D8 @ =gUnknown_03005CF0
- ldr r2, _0808B5DC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, [r1]
- str r2, [r3]
- ldr r2, _0808B5E0 @ =sub_808B5E4
- str r2, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_0808B5D8: .4byte gUnknown_03005CF0
-_0808B5DC: .4byte gTasks
-_0808B5E0: .4byte sub_808B5E4
- thumb_func_end sub_808B5B4
-
- thumb_func_start sub_808B5E4
-sub_808B5E4: @ 808B5E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8055870
- cmp r0, 0x1
- beq _0808B602
- ldr r1, _0808B608 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B60C @ =gUnknown_03005CF0
- ldr r1, [r1]
- str r1, [r0]
-_0808B602:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B608: .4byte gTasks
-_0808B60C: .4byte gUnknown_03005CF0
- thumb_func_end sub_808B5E4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index db16c2788..eaf44749b 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -12958,7 +12958,7 @@ _0809C08C:
adds r1, r6, r2
str r0, [r1]
adds r0, r7, 0
- bl pokemon_get_pal
+ bl GetMonSpritePal
ldr r2, _0809C11C @ =0x000011e8
adds r1, r6, r2
str r0, [r1]
@@ -13031,7 +13031,7 @@ _0809C120:
str r2, [r4]
ldrh r0, [r5]
mov r1, r9
- bl species_and_otid_get_pal
+ bl GetMonSpritePalFromOtIdPersonality
ldr r2, _0809C1D0 @ =0x000011e8
adds r1, r6, r2
str r0, [r1]
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index fea619ac8..859fd177f 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -3859,7 +3859,7 @@ _0809F718:
adds r1, r0, 0
adds r0, r5, 0
adds r2, r6, 0
- bl sub_80409C8
+ bl GetMonSpritePalStructFromOtIdPersonality
adds r4, r0, 0
bl LoadCompressedObjectPalette
ldrh r0, [r4, 0x4]
@@ -7620,7 +7620,7 @@ sub_80A1808: @ 80A1808
ldr r0, _080A1868 @ =sub_80A1888
str r0, [r4]
adds r0, r6, 0
- bl sub_8040A3C
+ bl IsPokeSpriteNotFlipped
lsls r0, 24
cmp r0, 0
bne _080A186C
diff --git a/asm/pokenav.s b/asm/pokenav.s
index cb6a40450..a4d585815 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -17787,7 +17787,7 @@ sub_80F4824: @ 80F4824
adds r0, r5, 0
mov r1, r8
adds r2, r4, 0
- bl species_and_otid_get_pal
+ bl GetMonSpritePalFromOtIdPersonality
mov r2, r9
lsls r1, r2, 7
adds r1, r7, r1
@@ -22370,7 +22370,7 @@ _080F6C3A:
adds r6, r0, r1
ldrh r7, [r6]
adds r0, r7, 0
- bl trainer_flag_check
+ bl HasTrainerAlreadyBeenFought
lsls r0, 24
cmp r0, 0
beq _080F6CA0
@@ -22402,7 +22402,7 @@ _080F6C3A:
strb r1, [r0]
ldrh r0, [r6, 0xA]
ldrh r1, [r6, 0xC]
- bl get_mapheader_by_bank_and_number
+ bl Overworld_GetMapHeaderByGroupAndId
ldrh r1, [r5]
lsls r1, 3
adds r4, r1
@@ -22431,7 +22431,7 @@ _080F6CB4:
adds r5, r0, r1
ldrh r4, [r5]
adds r0, r4, 0
- bl trainer_flag_check
+ bl HasTrainerAlreadyBeenFought
lsls r0, 24
cmp r0, 0
beq _080F6D0E
diff --git a/asm/reshow_battle_screen.s b/asm/reshow_battle_screen.s
deleted file mode 100644
index 59b08dd01..000000000
--- a/asm/reshow_battle_screen.s
+++ /dev/null
@@ -1,1097 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start nullsub_14
-nullsub_14: @ 807AD54
- bx lr
- thumb_func_end nullsub_14
-
- thumb_func_start ReshowBattleScreenAfterMenu
-ReshowBattleScreenAfterMenu: @ 807AD58
- push {lr}
- ldr r2, _0807AD90 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- ldr r0, _0807AD94 @ =REG_MOSAIC
- movs r2, 0
- strh r2, [r0]
- ldr r0, _0807AD98 @ =0x02000000
- ldr r3, _0807AD9C @ =0x0001ffff
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _0807ADA0 @ =0x0001fffe
- adds r0, r1
- strb r2, [r0]
- ldr r0, _0807ADA4 @ =CB2_ReshowBattleScreenAfterMenu
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0807AD90: .4byte gPaletteFade
-_0807AD94: .4byte REG_MOSAIC
-_0807AD98: .4byte 0x02000000
-_0807AD9C: .4byte 0x0001ffff
-_0807ADA0: .4byte 0x0001fffe
-_0807ADA4: .4byte CB2_ReshowBattleScreenAfterMenu
- thumb_func_end ReshowBattleScreenAfterMenu
-
- thumb_func_start CB2_ReshowBattleScreenAfterMenu
-CB2_ReshowBattleScreenAfterMenu: @ 807ADA8
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r0, _0807ADC4 @ =0x02000000
- ldr r1, _0807ADC8 @ =0x0001ffff
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x13
- bls _0807ADBA
- b _0807B010
-_0807ADBA:
- lsls r0, 2
- ldr r1, _0807ADCC @ =_0807ADD0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807ADC4: .4byte 0x02000000
-_0807ADC8: .4byte 0x0001ffff
-_0807ADCC: .4byte _0807ADD0
- .align 2, 0
-_0807ADD0:
- .4byte _0807AE20
- .4byte _0807AE84
- .4byte _0807AE9C
- .4byte _0807AEC8
- .4byte _0807AECE
- .4byte _0807AEE0
- .4byte _0807AEE6
- .4byte _0807AF18
- .4byte _0807AF1C
- .4byte _0807AF20
- .4byte _0807AF24
- .4byte _0807AF48
- .4byte _0807AF50
- .4byte _0807AF58
- .4byte _0807AF60
- .4byte _0807AF68
- .4byte _0807AF70
- .4byte _0807AF78
- .4byte _0807AF80
- .4byte _0807AF88
-_0807AE20:
- bl dp12_8087EA4
- ldr r4, _0807AE5C @ =gWindowConfig_81E6C58
- adds r0, r4, 0
- bl SetUpWindowConfig
- bl ResetPaletteFade
- ldr r0, _0807AE60 @ =gUnknown_03004210
- adds r1, r4, 0
- bl InitWindowFromConfig
- ldr r0, _0807AE64 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0807AE68 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r0, _0807AE6C @ =gUnknown_030042C0
- strh r1, [r0]
- ldr r0, _0807AE70 @ =gUnknown_030041B4
- strh r1, [r0]
- ldr r0, _0807AE74 @ =gUnknown_03004288
- strh r1, [r0]
- ldr r0, _0807AE78 @ =gUnknown_03004280
- strh r1, [r0]
- ldr r0, _0807AE7C @ =gUnknown_030041B0
- strh r1, [r0]
- ldr r0, _0807AE80 @ =gUnknown_030041B8
- strh r1, [r0]
- b _0807B040
- .align 2, 0
-_0807AE5C: .4byte gWindowConfig_81E6C58
-_0807AE60: .4byte gUnknown_03004210
-_0807AE64: .4byte gUnknown_030042A4
-_0807AE68: .4byte gUnknown_030042A0
-_0807AE6C: .4byte gUnknown_030042C0
-_0807AE70: .4byte gUnknown_030041B4
-_0807AE74: .4byte gUnknown_03004288
-_0807AE78: .4byte gUnknown_03004280
-_0807AE7C: .4byte gUnknown_030041B0
-_0807AE80: .4byte gUnknown_030041B8
-_0807AE84:
- movs r0, 0
- str r0, [sp, 0x4]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _0807AE98 @ =0x01006000
- add r0, sp, 0x4
- bl CpuFastSet
- b _0807B040
- .align 2, 0
-_0807AE98: .4byte 0x01006000
-_0807AE9C:
- ldr r5, _0807AEBC @ =0x02000000
- ldr r0, _0807AEC0 @ =0x0001fffe
- adds r4, r5, r0
- ldrb r0, [r4]
- bl sub_800E414
- lsls r0, 24
- cmp r0, 0
- bne _0807AEF8
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r0, _0807AEC4 @ =0x0001ffff
- adds r1, r5, r0
- b _0807AF38
- .align 2, 0
-_0807AEBC: .4byte 0x02000000
-_0807AEC0: .4byte 0x0001fffe
-_0807AEC4: .4byte 0x0001ffff
-_0807AEC8:
- bl ResetSpriteData
- b _0807B040
-_0807AECE:
- bl FreeAllSpritePalettes
- ldr r1, _0807AEDC @ =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- b _0807B040
- .align 2, 0
-_0807AEDC: .4byte gReservedSpritePaletteCount
-_0807AEE0:
- bl sub_8031EE8
- b _0807B040
-_0807AEE6:
- ldr r5, _0807AF00 @ =0x02000000
- ldr r1, _0807AF04 @ =0x0001fffe
- adds r4, r5, r1
- ldrb r0, [r4]
- bl sub_8031C30
- lsls r0, 24
- cmp r0, 0
- beq _0807AF08
-_0807AEF8:
- movs r0, 0
- strb r0, [r4]
- b _0807B040
- .align 2, 0
-_0807AF00: .4byte 0x02000000
-_0807AF04: .4byte 0x0001fffe
-_0807AF08:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r0, _0807AF14 @ =0x0001ffff
- adds r1, r5, r0
- b _0807AF38
- .align 2, 0
-_0807AF14: .4byte 0x0001ffff
-_0807AF18:
- movs r0, 0
- b _0807AF26
-_0807AF1C:
- movs r0, 0x1
- b _0807AF26
-_0807AF20:
- movs r0, 0x2
- b _0807AF26
-_0807AF24:
- movs r0, 0x3
-_0807AF26:
- bl sub_807B094
- lsls r0, 24
- cmp r0, 0
- beq _0807AF32
- b _0807B040
-_0807AF32:
- ldr r1, _0807AF40 @ =0x02000000
- ldr r0, _0807AF44 @ =0x0001ffff
- adds r1, r0
-_0807AF38:
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- b _0807B040
- .align 2, 0
-_0807AF40: .4byte 0x02000000
-_0807AF44: .4byte 0x0001ffff
-_0807AF48:
- movs r0, 0
- bl sub_807B184
- b _0807B040
-_0807AF50:
- movs r0, 0x1
- bl sub_807B184
- b _0807B040
-_0807AF58:
- movs r0, 0x2
- bl sub_807B184
- b _0807B040
-_0807AF60:
- movs r0, 0x3
- bl sub_807B184
- b _0807B040
-_0807AF68:
- movs r0, 0
- bl sub_807B508
- b _0807B040
-_0807AF70:
- movs r0, 0x1
- bl sub_807B508
- b _0807B040
-_0807AF78:
- movs r0, 0x2
- bl sub_807B508
- b _0807B040
-_0807AF80:
- movs r0, 0x3
- bl sub_807B508
- b _0807B040
-_0807AF88:
- bl sub_80327CC
- movs r0, 0x1
- bl GetBankByPlayerAI
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r7, _0807B000 @ =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0807B004 @ =gEnemyParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _0807AFEC
- movs r0, 0x3
- bl GetBankByPlayerAI
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
-_0807AFEC:
- ldr r1, _0807B008 @ =gActionSelectionCursor
- ldr r0, _0807B00C @ =gBankInMenu
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
- b _0807B040
- .align 2, 0
-_0807B000: .4byte gBattlePartyID
-_0807B004: .4byte gEnemyParty
-_0807B008: .4byte gActionSelectionCursor
-_0807B00C: .4byte gBankInMenu
-_0807B010:
- ldr r0, _0807B054 @ =sub_800FCD4
- bl SetHBlankCallback
- ldr r0, _0807B058 @ =sub_800FCFC
- bl SetVBlankCallback
- bl sub_807B06C
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginHardwarePaletteFade
- ldr r2, _0807B05C @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0807B060 @ =sub_800F808
- bl SetMainCallback2
-_0807B040:
- ldr r1, _0807B064 @ =0x02000000
- ldr r0, _0807B068 @ =0x0001ffff
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B054: .4byte sub_800FCD4
-_0807B058: .4byte sub_800FCFC
-_0807B05C: .4byte gPaletteFade
-_0807B060: .4byte sub_800F808
-_0807B064: .4byte 0x02000000
-_0807B068: .4byte 0x0001ffff
- thumb_func_end CB2_ReshowBattleScreenAfterMenu
-
- thumb_func_start sub_807B06C
-sub_807B06C: @ 807B06C
- push {lr}
- bl sub_800D6D4
- ldr r3, _0807B08C @ =REG_BG1CNT
- ldrb r2, [r3]
- movs r1, 0xD
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- ldr r2, _0807B090 @ =REG_BG2CNT
- ldrb r0, [r2]
- ands r1, r0
- strb r1, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_0807B08C: .4byte REG_BG1CNT
-_0807B090: .4byte REG_BG2CNT
- thumb_func_end sub_807B06C
-
- thumb_func_start sub_807B094
-sub_807B094: @ 807B094
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0807B0D8 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- bcs _0807B172
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _0807B0F2
- lsls r0, r4, 2
- ldr r1, _0807B0DC @ =0x02017800
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0807B0E8
- ldr r1, _0807B0E0 @ =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0807B0E4 @ =gEnemyParty
- adds r0, r1
- adds r1, r4, 0
- bl sub_8031794
- b _0807B168
- .align 2, 0
-_0807B0D8: .4byte gNoOfAllBanks
-_0807B0DC: .4byte 0x02017800
-_0807B0E0: .4byte gBattlePartyID
-_0807B0E4: .4byte gEnemyParty
-_0807B0E8:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8032350
- b _0807B168
-_0807B0F2:
- ldr r2, _0807B108 @ =gBattleTypeFlags
- ldrh r1, [r2]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0807B110
- cmp r4, 0
- bne _0807B110
- ldr r0, _0807B10C @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- b _0807B122
- .align 2, 0
-_0807B108: .4byte gBattleTypeFlags
-_0807B10C: .4byte gSaveBlock2
-_0807B110:
- ldrh r1, [r2]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0807B12A
- cmp r4, 0
- bne _0807B12A
- movs r0, 0x2
-_0807B122:
- movs r1, 0
- bl sub_8031AF4
- b _0807B168
-_0807B12A:
- lsls r0, r4, 2
- ldr r1, _0807B154 @ =0x02017800
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0807B160
- ldr r1, _0807B158 @ =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0807B15C @ =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- bl sub_80318FC
- b _0807B168
- .align 2, 0
-_0807B154: .4byte 0x02017800
-_0807B158: .4byte gBattlePartyID
-_0807B15C: .4byte gPlayerParty
-_0807B160:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8032350
-_0807B168:
- ldr r0, _0807B17C @ =0x02000000
- ldr r1, _0807B180 @ =0x0001fffe
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0807B172:
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0807B17C: .4byte 0x02000000
-_0807B180: .4byte 0x0001fffe
- thumb_func_end sub_807B094
-
- thumb_func_start sub_807B184
-sub_807B184: @ 807B184
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0807B1B8 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r7, r0
- bcc _0807B19E
- b _0807B4D8
-_0807B19E:
- lsls r2, r7, 2
- ldr r0, _0807B1BC @ =0x02017800
- adds r0, r2, r0
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- str r2, [sp]
- cmp r0, 0
- beq _0807B1C0
- adds r0, r7, 0
- bl sub_8077F7C
- b _0807B1C6
- .align 2, 0
-_0807B1B8: .4byte gNoOfAllBanks
-_0807B1BC: .4byte 0x02017800
-_0807B1C0:
- adds r0, r7, 0
- bl sub_8077F68
-_0807B1C6:
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r7, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0807B1DA
- b _0807B2D8
-_0807B1DA:
- ldr r1, _0807B2BC @ =gBattlePartyID
- lsls r0, r7, 1
- adds r6, r0, r1
- ldrh r0, [r6]
- movs r1, 0x64
- mov r10, r1
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- ldr r1, _0807B2C0 @ =gEnemyParty
- mov r9, r1
- add r0, r9
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _0807B1FE
- b _0807B4D8
-_0807B1FE:
- ldrh r0, [r6]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r7, 0
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C56C
- ldr r5, _0807B2C4 @ =gUnknown_02024E8C
- adds r0, r7, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, r8
- bl CreateSprite
- ldr r4, _0807B2C8 @ =gObjectBankIDs
- adds r4, r7, r4
- strb r0, [r4]
- ldr r5, _0807B2CC @ =gSprites
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r7, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0807B2D0 @ =SpriteCallbackDummy
- str r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r7, [r0, 0x2E]
- ldrh r0, [r6]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- ldrb r2, [r4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- strh r0, [r1, 0x32]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0807B2D4 @ =gBattleMonForms
- adds r1, r7, r1
- ldrb r1, [r1]
- bl StartSpriteAnim
- b _0807B4AC
- .align 2, 0
-_0807B2BC: .4byte gBattlePartyID
-_0807B2C0: .4byte gEnemyParty
-_0807B2C4: .4byte gUnknown_02024E8C
-_0807B2C8: .4byte gObjectBankIDs
-_0807B2CC: .4byte gSprites
-_0807B2D0: .4byte SpriteCallbackDummy
-_0807B2D4: .4byte gBattleMonForms
-_0807B2D8:
- ldr r2, _0807B328 @ =gBattleTypeFlags
- ldrh r1, [r2]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0807B338
- cmp r7, 0
- bne _0807B338
- ldr r5, _0807B32C @ =gSaveBlock2
- ldrb r4, [r5, 0x8]
- movs r0, 0
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C5A0
- ldr r6, _0807B330 @ =gUnknown_02024E8C
- ldr r1, _0807B334 @ =gTrainerBackPicCoords
- ldrb r0, [r5, 0x8]
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r0, 0xA0
- lsls r0, 15
- adds r4, r0
- asrs r4, 16
- movs r0, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r6, 0
- b _0807B37C
- .align 2, 0
-_0807B328: .4byte gBattleTypeFlags
-_0807B32C: .4byte gSaveBlock2
-_0807B330: .4byte gUnknown_02024E8C
-_0807B334: .4byte gTrainerBackPicCoords
-_0807B338:
- ldrh r1, [r2]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0807B3D0
- cmp r7, 0
- bne _0807B3D0
- movs r0, 0
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x2
- bl GetMonSpriteTemplate_803C5A0
- ldr r5, _0807B3BC @ =gUnknown_02024E8C
- ldr r0, _0807B3C0 @ =gTrainerBackPicCoords
- ldrb r0, [r0, 0x8]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r4, r1
- asrs r4, 16
- movs r0, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
-_0807B37C:
- movs r1, 0x50
- adds r2, r4, 0
- bl CreateSprite
- ldr r3, _0807B3C4 @ =gObjectBankIDs
- strb r0, [r3]
- ldr r4, _0807B3C8 @ =gSprites
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1, 0x5]
- 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, _0807B3CC @ =SpriteCallbackDummy
- str r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x2E]
- b _0807B4AC
- .align 2, 0
-_0807B3BC: .4byte gUnknown_02024E8C
-_0807B3C0: .4byte gTrainerBackPicCoords
-_0807B3C4: .4byte gObjectBankIDs
-_0807B3C8: .4byte gSprites
-_0807B3CC: .4byte SpriteCallbackDummy
-_0807B3D0:
- ldr r1, _0807B4E8 @ =gBattlePartyID
- lsls r0, r7, 1
- adds r6, r0, r1
- ldrh r0, [r6]
- movs r1, 0x64
- mov r10, r1
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- ldr r1, _0807B4EC @ =gPlayerParty
- mov r9, r1
- add r0, r9
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0807B4D8
- ldrh r0, [r6]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r7, 0
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C56C
- ldr r5, _0807B4F0 @ =gUnknown_02024E8C
- adds r0, r7, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, r8
- bl CreateSprite
- ldr r4, _0807B4F4 @ =gObjectBankIDs
- adds r4, r7, r4
- strb r0, [r4]
- ldr r5, _0807B4F8 @ =gSprites
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r7, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0807B4FC @ =SpriteCallbackDummy
- str r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r7, [r0, 0x2E]
- ldrh r0, [r6]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- ldrb r2, [r4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- strh r0, [r1, 0x32]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0807B500 @ =gBattleMonForms
- adds r1, r7, r1
- ldrb r1, [r1]
- bl StartSpriteAnim
-_0807B4AC:
- ldr r1, _0807B4F8 @ =gSprites
- ldr r0, _0807B4F4 @ =gObjectBankIDs
- adds r0, r7, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldr r0, _0807B504 @ =0x02017800
- ldr r1, [sp]
- adds r0, r1, r0
- ldr r1, [r0]
- lsls r1, 31
- adds r2, 0x3E
- lsrs r1, 31
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
-_0807B4D8:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B4E8: .4byte gBattlePartyID
-_0807B4EC: .4byte gPlayerParty
-_0807B4F0: .4byte gUnknown_02024E8C
-_0807B4F4: .4byte gObjectBankIDs
-_0807B4F8: .4byte gSprites
-_0807B4FC: .4byte SpriteCallbackDummy
-_0807B500: .4byte gBattleMonForms
-_0807B504: .4byte 0x02017800
- thumb_func_end sub_807B184
-
- thumb_func_start sub_807B508
-sub_807B508: @ 807B508
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0807B530 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r5, r0
- bcc _0807B518
- b _0807B68A
-_0807B518:
- ldr r2, _0807B534 @ =gBattleTypeFlags
- ldrh r1, [r2]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0807B538
- cmp r5, 0
- bne _0807B538
- bl battle_make_oam_safari_battle
- b _0807B550
- .align 2, 0
-_0807B530: .4byte gNoOfAllBanks
-_0807B534: .4byte gBattleTypeFlags
-_0807B538:
- ldrh r1, [r2]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0807B54A
- cmp r5, 0
- bne _0807B54A
- b _0807B68A
-_0807B54A:
- adds r0, r5, 0
- bl battle_make_oam_normal_battle
-_0807B550:
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0807B58C @ =gHealthboxIDs
- adds r4, r5, r0
- strb r6, [r4]
- adds r0, r5, 0
- bl sub_8043F44
- adds r0, r6, 0
- bl sub_8043DFC
- adds r0, r5, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _0807B598
- ldrb r0, [r4]
- ldr r1, _0807B590 @ =gBattlePartyID
- lsls r4, r5, 1
- adds r1, r4, r1
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0807B594 @ =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- b _0807B5E4
- .align 2, 0
-_0807B58C: .4byte gHealthboxIDs
-_0807B590: .4byte gBattlePartyID
-_0807B594: .4byte gEnemyParty
-_0807B598:
- ldr r0, _0807B5C0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0807B5CC
- ldrb r0, [r4]
- ldr r1, _0807B5C4 @ =gBattlePartyID
- lsls r4, r5, 1
- adds r1, r4, r1
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0807B5C8 @ =gPlayerParty
- adds r1, r2
- movs r2, 0xA
- bl sub_8045A5C
- b _0807B5E4
- .align 2, 0
-_0807B5C0: .4byte gBattleTypeFlags
-_0807B5C4: .4byte gBattlePartyID
-_0807B5C8: .4byte gPlayerParty
-_0807B5CC:
- ldrb r0, [r4]
- ldr r1, _0807B610 @ =gBattlePartyID
- lsls r4, r5, 1
- adds r1, r4, r1
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0807B614 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
-_0807B5E4:
- adds r0, r5, 0
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _0807B600
- adds r0, r5, 0
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0807B61C
-_0807B600:
- ldr r0, _0807B618 @ =gHealthboxIDs
- adds r0, r5, r0
- ldrb r0, [r0]
- movs r1, 0x1
- bl nullsub_11
- b _0807B628
- .align 2, 0
-_0807B610: .4byte gBattlePartyID
-_0807B614: .4byte gPlayerParty
-_0807B618: .4byte gHealthboxIDs
-_0807B61C:
- ldr r0, _0807B654 @ =gHealthboxIDs
- adds r0, r5, r0
- ldrb r0, [r0]
- movs r1, 0
- bl nullsub_11
-_0807B628:
- adds r0, r5, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _0807B660
- ldr r0, _0807B658 @ =gBattlePartyID
- adds r0, r4, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0807B65C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _0807B68A
- adds r0, r6, 0
- bl sub_8043DB0
- b _0807B68A
- .align 2, 0
-_0807B654: .4byte gHealthboxIDs
-_0807B658: .4byte gBattlePartyID
-_0807B65C: .4byte gEnemyParty
-_0807B660:
- ldr r0, _0807B690 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0807B68A
- ldr r0, _0807B694 @ =gBattlePartyID
- adds r0, r4, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0807B698 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _0807B68A
- adds r0, r6, 0
- bl sub_8043DB0
-_0807B68A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B690: .4byte gBattleTypeFlags
-_0807B694: .4byte gBattlePartyID
-_0807B698: .4byte gPlayerParty
- thumb_func_end sub_807B508
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/shop.s b/asm/shop.s
deleted file mode 100644
index a341e90a1..000000000
--- a/asm/shop.s
+++ /dev/null
@@ -1,2613 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80B33D0
-sub_80B33D0: @ 80B33D0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r6, r0, 0
- adds r4, r1, 0
- mov r8, r2
- lsls r4, 22
- ldr r5, _080B3418 @ =gBGTilemapBuffers + 0x1800
- lsls r6, 17
- asrs r6, 16
- movs r0, 0x80
- lsls r0, 15
- adds r4, r0
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- mov r3, r8
- bl BuyMenuDrawMapMetatileLayer
- ldr r0, _080B341C @ =0xfffff800
- adds r5, r0
- movs r0, 0x8
- add r8, r0
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- mov r3, r8
- bl BuyMenuDrawMapMetatileLayer
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3418: .4byte gBGTilemapBuffers + 0x1800
-_080B341C: .4byte 0xfffff800
- thumb_func_end sub_80B33D0
-
- thumb_func_start sub_80B3420
-sub_80B3420: @ 80B3420
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r1, sp
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x3
- strh r0, [r1]
- ldrh r0, [r4]
- subs r0, 0x3
- strh r0, [r4]
- movs r1, 0
- ldr r0, _080B34A8 @ =0x000001ff
- mov r10, r0
- ldr r2, _080B34AC @ =gMapHeader
- mov r9, r2
-_080B3452:
- movs r4, 0
- lsls r1, 16
- mov r8, r1
- asrs r7, r1, 16
-_080B345A:
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- lsls r4, 16
- asrs r6, r4, 16
- adds r0, r6
- mov r2, sp
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- adds r1, r7
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r7, 0x5
- beq _080B34D0
- cmp r6, 0x6
- beq _080B34D0
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, r6
- mov r2, sp
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- adds r1, r7
- bl MapGridGetMetatileLayerTypeAt
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r5, r10
- bhi _080B34B0
- mov r1, r9
- ldr r0, [r1]
- ldr r0, [r0, 0x10]
- lsls r1, r5, 4
- ldr r2, [r0, 0xC]
- adds r2, r1
- b _080B34C0
- .align 2, 0
-_080B34A8: .4byte 0x000001ff
-_080B34AC: .4byte gMapHeader
-_080B34B0:
- mov r2, r9
- ldr r0, [r2]
- ldr r1, [r0, 0x14]
- ldr r2, _080B34CC @ =0xfffffe00
- adds r0, r5, r2
- lsls r0, 4
- ldr r2, [r1, 0xC]
- adds r2, r0
-_080B34C0:
- adds r0, r6, 0
- adds r1, r7, 0
- bl BuyMenuDrawMapMetatile
- b _080B3506
- .align 2, 0
-_080B34CC: .4byte 0xfffffe00
-_080B34D0:
- cmp r5, r10
- bhi _080B34EC
- asrs r0, r4, 16
- mov r3, r9
- ldr r1, [r3]
- ldr r1, [r1, 0x10]
- lsls r3, r5, 4
- ldr r2, [r1, 0xC]
- adds r2, r3
- mov r3, r8
- asrs r1, r3, 16
- bl sub_80B33D0
- b _080B3506
-_080B34EC:
- asrs r0, r4, 16
- mov r2, r9
- ldr r1, [r2]
- ldr r2, [r1, 0x14]
- ldr r3, _080B354C @ =0xfffffe00
- adds r1, r5, r3
- lsls r1, 4
- ldr r2, [r2, 0xC]
- adds r2, r1
- mov r3, r8
- asrs r1, r3, 16
- bl sub_80B33D0
-_080B3506:
- cmp r7, 0
- bne _080B3520
- asrs r1, r4, 16
- cmp r1, 0
- beq _080B3520
- cmp r1, 0x6
- beq _080B3520
- lsls r1, 17
- asrs r1, 16
- ldr r0, _080B3550 @ =gBGTilemapBuffers + 0x800
- movs r2, 0x40
- bl sub_80B32EC
-_080B3520:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r4, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _080B345A
- adds r0, r1, 0
- add r0, r8
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080B3452
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B354C: .4byte 0xfffffe00
-_080B3550: .4byte gBGTilemapBuffers + 0x800
- thumb_func_end sub_80B3420
-
- thumb_func_start BuyMenuDrawMapGraphics
-BuyMenuDrawMapGraphics: @ 80B3554
- push {lr}
- bl sub_80F9020
- bl sub_80B356C
- bl sub_80B368C
- bl sub_80B3420
- pop {r0}
- bx r0
- thumb_func_end BuyMenuDrawMapGraphics
-
- thumb_func_start sub_80B356C
-sub_80B356C: @ 80B356C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r8, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r5, 0
- ldr r2, _080B3674 @ =gUnknown_020386A4
- movs r1, 0x10
-_080B3598:
- lsls r0, r5, 3
- adds r0, r2
- strh r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _080B3598
- movs r5, 0
- ldr r7, _080B3678 @ =gUnknown_020386AA
- subs r1, r7, 0x6
- mov r9, r1
-_080B35B0:
- movs r4, 0
- adds r2, r5, 0x1
- mov r10, r2
-_080B35B6:
- mov r1, sp
- ldr r3, _080B367C @ =0x0000fffd
- adds r0, r3, 0
- ldrh r1, [r1]
- adds r0, r1
- adds r0, r4
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _080B3680 @ =0x0000fffe
- adds r1, r2, 0
- mov r3, sp
- ldrh r3, [r3, 0x2]
- adds r1, r3
- adds r1, r5
- lsls r1, 16
- lsrs r1, 16
- ldr r2, [sp, 0x4]
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x10
- beq _080B3650
- mov r0, r8
- lsls r3, r0, 3
- mov r1, r9
- adds r0, r3, r1
- movs r6, 0
- strh r2, [r0]
- mov r0, r9
- adds r0, 0x2
- adds r0, r3, r0
- strh r4, [r0]
- ldr r1, _080B3684 @ =gUnknown_020386A8
- adds r0, r3, r1
- strh r5, [r0]
- ldr r1, _080B3688 @ =gMapObjects
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r2, r0, r1
- ldrb r0, [r2, 0x18]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x1
- bne _080B3616
- adds r0, r3, r7
- strh r6, [r0]
-_080B3616:
- ldrb r0, [r2, 0x18]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x2
- bne _080B3626
- adds r1, r3, r7
- movs r0, 0x1
- strh r0, [r1]
-_080B3626:
- ldrb r0, [r2, 0x18]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x3
- bne _080B3636
- adds r1, r3, r7
- movs r0, 0x2
- strh r0, [r1]
-_080B3636:
- ldrb r0, [r2, 0x18]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x4
- bne _080B3646
- adds r1, r3, r7
- movs r0, 0x3
- strh r0, [r1]
-_080B3646:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
-_080B3650:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bls _080B35B6
- mov r2, r10
- lsls r0, r2, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _080B35B0
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3674: .4byte gUnknown_020386A4
-_080B3678: .4byte gUnknown_020386AA
-_080B367C: .4byte 0x0000fffd
-_080B3680: .4byte 0x0000fffe
-_080B3684: .4byte gUnknown_020386A8
-_080B3688: .4byte gMapObjects
- thumb_func_end sub_80B356C
-
- thumb_func_start sub_80B368C
-sub_80B368C: @ 80B368C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r5, 0
- ldr r6, _080B3710 @ =gUnknown_020386A4
- adds r0, r6, 0x6
- mov r8, r0
- ldr r7, _080B3714 @ =gMapObjects
-_080B369E:
- lsls r4, r5, 3
- adds r1, r4, r6
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x10
- beq _080B36F8
- adds r1, r0, 0
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x5]
- adds r1, r6, 0x2
- adds r1, r4, r1
- ldrh r2, [r1]
- lsls r2, 4
- adds r2, 0x8
- lsls r2, 16
- asrs r2, 16
- adds r1, r6, 0x4
- adds r1, r4, r1
- ldrh r3, [r1]
- lsls r3, 20
- movs r1, 0x80
- lsls r1, 14
- adds r3, r1
- asrs r3, 16
- movs r1, 0x2
- str r1, [sp]
- ldr r1, _080B3718 @ =SpriteCallbackDummy
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080B371C @ =gSprites
- adds r2, r0
- mov r1, r8
- adds r0, r4, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- bl StartSpriteAnim
-_080B36F8:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _080B369E
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3710: .4byte gUnknown_020386A4
-_080B3714: .4byte gMapObjects
-_080B3718: .4byte SpriteCallbackDummy
-_080B371C: .4byte gSprites
- thumb_func_end sub_80B368C
-
- thumb_func_start sub_80B3720
-sub_80B3720: @ 80B3720
- push {r4-r6,lr}
- movs r1, 0
- ldr r6, _080B3754 @ =gBGTilemapBuffers + 0x800
- ldr r5, _080B3758 @ =0x000003ff
- ldr r4, _080B375C @ =0x02018000
- ldr r0, _080B3760 @ =0x0000c3e0
- adds r3, r0, 0
-_080B372E:
- lsls r0, r1, 16
- asrs r2, r0, 16
- lsls r1, r2, 1
- adds r0, r1, r4
- ldrh r0, [r0]
- cmp r0, 0
- beq _080B3742
- adds r1, r6
- adds r0, r3
- strh r0, [r1]
-_080B3742:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, r5
- ble _080B372E
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3754: .4byte gBGTilemapBuffers + 0x800
-_080B3758: .4byte 0x000003ff
-_080B375C: .4byte 0x02018000
-_080B3760: .4byte 0x0000c3e0
- thumb_func_end sub_80B3720
-
- thumb_func_start sub_80B3764
-sub_80B3764: @ 80B3764
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80B3720
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl sub_80B39D0
- ldr r0, _080B3798 @ =gUnknown_03000708
- ldrb r0, [r0, 0x9]
- str r0, [sp]
- movs r0, 0xF
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x2
- movs r3, 0x8
- bl InitMenu
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3798: .4byte gUnknown_03000708
- thumb_func_end sub_80B3764
-
- thumb_func_start sub_80B379C
-sub_80B379C: @ 80B379C
- push {r4-r7,lr}
- movs r1, 0
- ldr r0, _080B37E0 @ =gBGTilemapBuffers + 0x800
- mov r12, r0
- ldr r7, _080B37E4 @ =0x02018300
- ldr r0, _080B37E8 @ =0x0000c3e0
- adds r6, r0, 0
-_080B37AA:
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0xC
- adds r5, r1, 0x1
- lsls r4, r0, 5
- lsls r3, r1, 5
-_080B37B6:
- adds r1, r4, r2
- lsls r1, 1
- add r1, r12
- adds r0, r3, r2
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- adds r0, r6, r0
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xD
- bls _080B37B6
- lsls r0, r5, 16
- lsrs r1, r0, 16
- cmp r1, 0x7
- bls _080B37AA
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B37E0: .4byte gBGTilemapBuffers + 0x800
-_080B37E4: .4byte 0x02018300
-_080B37E8: .4byte 0x0000c3e0
- thumb_func_end sub_80B379C
-
- thumb_func_start sub_80B37EC
-sub_80B37EC: @ 80B37EC
- push {lr}
- bl sub_80B3A70
- pop {r0}
- bx r0
- thumb_func_end sub_80B37EC
-
- thumb_func_start sub_80B37F8
-sub_80B37F8: @ 80B37F8
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r1, _080B3884 @ =gUnknown_03000708
- ldrb r0, [r1, 0xB]
- ldrb r2, [r1, 0x9]
- adds r0, r2
- ldr r1, [r1, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- bl ItemId_GetPrice
- adds r4, r0, 0
- movs r0, 0x1
- bl GetPriceReduction
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 24
- lsrs r0, 24
- asrs r4, r0
- ldr r0, _080B3888 @ =gTasks
- lsls r5, r6, 2
- adds r5, r6
- lsls r5, 3
- adds r5, r0
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- muls r0, r4
- movs r1, 0x6
- movs r2, 0x6
- movs r3, 0xB
- bl sub_80B7A94
- ldr r0, _080B388C @ =gStringVar1
- movs r1, 0xFC
- strb r1, [r0]
- movs r1, 0x14
- strb r1, [r0, 0x1]
- movs r1, 0x6
- strb r1, [r0, 0x2]
- adds r0, 0x3
- movs r2, 0xA
- ldrsh r1, [r5, r2]
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _080B3890 @ =gOtherText_xString1
- movs r1, 0x1
- movs r2, 0xB
- bl MenuPrint
- ldr r0, _080B3894 @ =gBGTilemapBuffers + 0x800
- movs r1, 0x2
- str r1, [sp]
- ldr r1, _080B3898 @ =0x0000c3e1
- str r1, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0xB
- movs r3, 0xC
- bl sub_80A3FA0
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3884: .4byte gUnknown_03000708
-_080B3888: .4byte gTasks
-_080B388C: .4byte gStringVar1
-_080B3890: .4byte gOtherText_xString1
-_080B3894: .4byte gBGTilemapBuffers + 0x800
-_080B3898: .4byte 0x0000c3e1
- thumb_func_end sub_80B37F8
-
- thumb_func_start sub_80B389C
-sub_80B389C: @ 80B389C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- mov r8, r2
- lsls r0, 16
- lsrs r2, r0, 16
- mov r9, r2
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r5, _080B392C @ =gStringVar1
- mov r0, r8
- cmp r0, 0
- beq _080B38C8
- movs r0, 0xFC
- strb r0, [r5]
- movs r0, 0x1
- strb r0, [r5, 0x1]
- movs r0, 0x2
- strb r0, [r5, 0x2]
- adds r5, 0x3
-_080B38C8:
- adds r0, r2, 0
- adds r1, r5, 0
- bl CopyItemName
- ldr r6, _080B392C @ =gStringVar1
- lsls r7, r4, 3
- movs r0, 0x1
- str r0, [sp]
- adds r0, r6, 0
- movs r1, 0x70
- adds r2, r7, 0
- movs r3, 0x58
- bl sub_8072A18
- adds r5, r6, 0
- mov r0, r8
- cmp r0, 0
- beq _080B38EE
- adds r5, r6, 0x3
-_080B38EE:
- mov r0, r9
- bl ItemId_GetPrice
- adds r4, r0, 0
- movs r0, 0x1
- bl GetPriceReduction
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 24
- lsrs r0, 24
- asrs r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x4
- bl sub_80B79F8
- adds r0, r6, 0
- movs r1, 0xCA
- adds r2, r7, 0
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B392C: .4byte gStringVar1
- thumb_func_end sub_80B389C
-
- thumb_func_start sub_80B3930
-sub_80B3930: @ 80B3930
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r4, r2, 0
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- ldr r2, _080B39A0 @ =gStringVar1
- cmp r4, 0
- beq _080B395A
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x1
- strb r0, [r2, 0x1]
- movs r0, 0x2
- strb r0, [r2, 0x2]
- adds r2, 0x3
-_080B395A:
- lsls r6, r3, 5
- ldr r0, _080B39A4 @ =gDecorations + 0x1
- mov r8, r0
- adds r1, r6, r0
- adds r0, r2, 0
- bl StringCopy
- ldr r5, _080B39A0 @ =gStringVar1
- mov r0, r9
- lsls r7, r0, 3
- movs r0, 0x1
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0x70
- adds r2, r7, 0
- movs r3, 0x58
- bl sub_8072A18
- adds r2, r5, 0
- cmp r4, 0
- beq _080B3986
- adds r2, r5, 0x3
-_080B3986:
- mov r0, r8
- subs r0, 0x1
- adds r3, r6, r0
- ldrh r1, [r3, 0x14]
- ldr r0, _080B39A8 @ =0x00002710
- cmp r1, r0
- bne _080B39AC
- movs r0, 0x19
- mov r1, r9
- adds r2, r4, 0
- bl sub_80B7B34
- b _080B39C2
- .align 2, 0
-_080B39A0: .4byte gStringVar1
-_080B39A4: .4byte gDecorations + 0x1
-_080B39A8: .4byte 0x00002710
-_080B39AC:
- ldrh r1, [r3, 0x14]
- adds r0, r2, 0
- movs r2, 0x4
- bl sub_80B79F8
- adds r0, r5, 0
- movs r1, 0xCA
- adds r2, r7, 0
- movs r3, 0x1
- bl MenuPrint_PixelCoords
-_080B39C2:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B3930
-
- thumb_func_start sub_80B39D0
-sub_80B39D0: @ 80B39D0
- push {r4-r6,lr}
- adds r6, r1, 0
- adds r5, r2, 0
- b _080B3A1A
-_080B39D8:
- ldrb r0, [r1, 0xC]
- cmp r0, 0
- bne _080B39FC
- ldrb r0, [r1, 0xB]
- adds r0, r4
- ldr r1, [r1, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r1, r4, 25
- movs r2, 0x80
- lsls r2, 18
- adds r1, r2
- lsrs r1, 24
- adds r2, r5, 0
- bl sub_80B389C
- b _080B3A18
-_080B39FC:
- ldrb r0, [r1, 0xB]
- adds r0, r4
- ldr r1, [r1, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r1, r4, 25
- movs r2, 0x80
- lsls r2, 18
- adds r1, r2
- lsrs r1, 24
- adds r2, r5, 0
- bl sub_80B3930
-_080B3A18:
- adds r0, r4, 0x1
-_080B3A1A:
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bgt _080B3A2E
- ldr r1, _080B3A68 @ =gUnknown_03000708
- ldrb r0, [r1, 0xB]
- adds r0, r4
- ldrb r2, [r1, 0x8]
- cmp r0, r2
- blt _080B39D8
-_080B3A2E:
- cmp r4, 0x8
- beq _080B3A60
- ldr r1, _080B3A68 @ =gUnknown_03000708
- ldrb r0, [r1, 0xB]
- adds r0, r4
- ldrb r1, [r1, 0x8]
- cmp r0, r1
- bne _080B3A60
- lsls r3, r4, 1
- adds r4, r3, 0x2
- lsls r4, 24
- lsrs r4, 24
- adds r3, 0x3
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0xE
- adds r1, r4, 0
- movs r2, 0x1C
- bl MenuFillWindowRectWithBlankTile
- ldr r0, _080B3A6C @ =gOtherText_CancelNoTerminator
- movs r1, 0xE
- adds r2, r4, 0
- bl MenuPrint
-_080B3A60:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3A68: .4byte gUnknown_03000708
-_080B3A6C: .4byte gOtherText_CancelNoTerminator
- thumb_func_end sub_80B39D0
-
- thumb_func_start sub_80B3A70
-sub_80B3A70: @ 80B3A70
- push {r4,lr}
- sub sp, 0x8
- ldr r2, _080B3A9C @ =gUnknown_03000708
- ldrb r1, [r2, 0xB]
- ldrb r0, [r2, 0x9]
- adds r0, r1, r0
- ldrb r1, [r2, 0x8]
- cmp r0, r1
- beq _080B3ACC
- ldrb r4, [r2, 0xC]
- cmp r4, 0
- bne _080B3AA0
- ldr r1, [r2, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- bl ItemId_GetDescription
- movs r1, 0x30
- str r1, [sp]
- str r4, [sp, 0x4]
- b _080B3ABA
- .align 2, 0
-_080B3A9C: .4byte gUnknown_03000708
-_080B3AA0:
- ldr r1, _080B3AC8 @ =gDecorations
- ldr r2, [r2, 0x4]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 5
- adds r1, 0x18
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x30
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
-_080B3ABA:
- movs r1, 0x4
- movs r2, 0x68
- movs r3, 0x68
- bl sub_8072AB0
- b _080B3AE0
- .align 2, 0
-_080B3AC8: .4byte gDecorations
-_080B3ACC:
- ldr r0, _080B3AE8 @ =gOtherText_QuitShopping
- movs r1, 0x30
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x4
- movs r2, 0x68
- movs r3, 0x68
- bl sub_8072AB0
-_080B3AE0:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3AE8: .4byte gOtherText_QuitShopping
- thumb_func_end sub_80B3A70
-
- thumb_func_start sub_80B3AEC
-sub_80B3AEC: @ 80B3AEC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080B3B5C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080B3B06
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080B3B7A
-_080B3B06:
- ldr r4, _080B3B60 @ =gUnknown_03000708
- ldrb r1, [r4, 0x9]
- adds r0, r1, 0
- movs r2, 0
- bl sub_80B39D0
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4, 0xB]
- ldrb r1, [r4, 0x9]
- adds r0, r1
- ldr r1, [r4, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x4
- bne _080B3B74
- ldr r0, _080B3B64 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0x9
- ble _080B3B74
- movs r0, 0xC
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B3B74
- ldr r1, _080B3B68 @ =gOtherText_FreePremierBall
- ldr r2, _080B3B6C @ =sub_80B4378
- ldr r3, _080B3B70 @ =0x0000c3e1
- adds r0, r5, 0
- bl DisplayItemMessageOnField
- b _080B3B7A
- .align 2, 0
-_080B3B5C: .4byte gMain
-_080B3B60: .4byte gUnknown_03000708
-_080B3B64: .4byte gTasks
-_080B3B68: .4byte gOtherText_FreePremierBall
-_080B3B6C: .4byte sub_80B4378
-_080B3B70: .4byte 0x0000c3e1
-_080B3B74:
- adds r0, r5, 0
- bl sub_80B4378
-_080B3B7A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B3AEC
-
- thumb_func_start sub_80B3B80
-sub_80B3B80: @ 80B3B80
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x26
- bl IncrementGameStat
- ldr r5, _080B3BC0 @ =gSaveBlock1 + 0x490
- ldr r0, _080B3BC4 @ =gUnknown_020386A0
- ldr r1, [r0]
- adds r0, r5, 0
- bl sub_80B79E0
- movs r0, 0x5F
- bl PlaySE
- ldr r0, [r5]
- movs r1, 0
- movs r2, 0
- bl sub_80B7BEC
- ldr r1, _080B3BC8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080B3BCC @ =sub_80B3AEC
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3BC0: .4byte gSaveBlock1 + 0x490
-_080B3BC4: .4byte gUnknown_020386A0
-_080B3BC8: .4byte gTasks
-_080B3BCC: .4byte sub_80B3AEC
- thumb_func_end sub_80B3B80
-
- thumb_func_start sub_80B3BD0
-sub_80B3BD0: @ 80B3BD0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B3BF0 @ =gUnknown_03000708
- ldrb r1, [r0, 0x9]
- adds r0, r1, 0
- movs r2, 0
- bl sub_80B39D0
- adds r0, r4, 0
- bl sub_80B4378
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3BF0: .4byte gUnknown_03000708
- thumb_func_end sub_80B3BD0
-
- thumb_func_start sub_80B3BF4
-sub_80B3BF4: @ 80B3BF4
- push {r4,r5,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x7
- movs r1, 0x8
- movs r2, 0xD
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _080B3C7C @ =gBGTilemapBuffers + 0x800
- movs r1, 0x4
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x8
- movs r2, 0x9
- movs r3, 0x4
- bl sub_80A3FA0
- bl sub_80B379C
- bl sub_80B3420
- ldr r0, _080B3C80 @ =gSaveBlock1
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080B3C84 @ =gUnknown_020386A0
- ldr r1, [r1]
- bl IsEnoughMoney
- lsls r0, 24
- cmp r0, 0
- beq _080B3D18
- ldr r4, _080B3C88 @ =gUnknown_03000708
- ldrb r0, [r4, 0xC]
- cmp r0, 0
- bne _080B3CAC
- ldrb r0, [r4, 0xB]
- ldrb r1, [r4, 0x9]
- adds r0, r1
- ldr r1, [r4, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- ldr r2, _080B3C8C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r2
- ldrh r1, [r1, 0xA]
- bl AddBagItem
- lsls r0, 24
- cmp r0, 0
- beq _080B3C9C
- ldr r1, _080B3C90 @ =gOtherText_HereYouGo
- ldr r2, _080B3C94 @ =sub_80B3B80
- ldr r3, _080B3C98 @ =0x0000c3e1
- adds r0, r5, 0
- bl DisplayItemMessageOnField
- adds r0, r5, 0
- bl sub_80B4470
- b _080B3D24
- .align 2, 0
-_080B3C7C: .4byte gBGTilemapBuffers + 0x800
-_080B3C80: .4byte gSaveBlock1
-_080B3C84: .4byte gUnknown_020386A0
-_080B3C88: .4byte gUnknown_03000708
-_080B3C8C: .4byte gTasks
-_080B3C90: .4byte gOtherText_HereYouGo
-_080B3C94: .4byte sub_80B3B80
-_080B3C98: .4byte 0x0000c3e1
-_080B3C9C:
- ldr r1, _080B3CA4 @ =gOtherText_NoRoomFor
- ldr r2, _080B3CA8 @ =sub_80B3BD0
- b _080B3CD8
- .align 2, 0
-_080B3CA4: .4byte gOtherText_NoRoomFor
-_080B3CA8: .4byte sub_80B3BD0
-_080B3CAC:
- ldrb r0, [r4, 0xB]
- ldrb r1, [r4, 0x9]
- adds r0, r1
- ldr r1, [r4, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrb r0, [r0]
- bl IsThereStorageSpaceForDecoration
- lsls r0, 24
- cmp r0, 0
- beq _080B3CF0
- ldrb r0, [r4, 0xC]
- cmp r0, 0x1
- bne _080B3CD4
- ldr r1, _080B3CD0 @ =gOtherText_HereYouGo2
- b _080B3CD6
- .align 2, 0
-_080B3CD0: .4byte gOtherText_HereYouGo2
-_080B3CD4:
- ldr r1, _080B3CE4 @ =gOtherText_HereYouGo3
-_080B3CD6:
- ldr r2, _080B3CE8 @ =sub_80B3B80
-_080B3CD8:
- ldr r3, _080B3CEC @ =0x0000c3e1
- adds r0, r5, 0
- bl DisplayItemMessageOnField
- b _080B3D24
- .align 2, 0
-_080B3CE4: .4byte gOtherText_HereYouGo3
-_080B3CE8: .4byte sub_80B3B80
-_080B3CEC: .4byte 0x0000c3e1
-_080B3CF0:
- ldr r4, _080B3D08 @ =gStringVar4
- ldr r1, _080B3D0C @ =gOtherText_SpaceForIsFull
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080B3D10 @ =sub_80B3BD0
- ldr r3, _080B3D14 @ =0x0000c3e1
- adds r0, r5, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
- b _080B3D24
- .align 2, 0
-_080B3D08: .4byte gStringVar4
-_080B3D0C: .4byte gOtherText_SpaceForIsFull
-_080B3D10: .4byte sub_80B3BD0
-_080B3D14: .4byte 0x0000c3e1
-_080B3D18:
- ldr r1, _080B3D2C @ =gOtherText_NotEnoughMoney
- ldr r2, _080B3D30 @ =sub_80B3BD0
- ldr r3, _080B3D34 @ =0x0000c3e1
- adds r0, r5, 0
- bl DisplayItemMessageOnField
-_080B3D24:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3D2C: .4byte gOtherText_NotEnoughMoney
-_080B3D30: .4byte sub_80B3BD0
-_080B3D34: .4byte 0x0000c3e1
- thumb_func_end sub_80B3BF4
-
- thumb_func_start sub_80B3D38
-sub_80B3D38: @ 80B3D38
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _080B3D70 @ =gBGTilemapBuffers + 0x800
- movs r1, 0x4
- str r1, [sp]
- ldr r1, _080B3D74 @ =0x0000c3e1
- str r1, [sp, 0x4]
- movs r1, 0x8
- movs r2, 0x9
- movs r3, 0x4
- bl sub_80A3FA0
- ldr r1, _080B3D78 @ =gUnknown_083CC708
- adds r0, r4, 0
- bl DoYesNoFuncWithChoice
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3D70: .4byte gBGTilemapBuffers + 0x800
-_080B3D74: .4byte 0x0000c3e1
-_080B3D78: .4byte gUnknown_083CC708
- thumb_func_end sub_80B3D38
-
- thumb_func_start sub_80B3D7C
-sub_80B3D7C: @ 80B3D7C
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B3DC0 @ =gUnknown_03000708
- ldrb r1, [r0, 0x9]
- adds r0, r1, 0
- movs r2, 0
- bl sub_80B39D0
- movs r0, 0x7
- movs r1, 0x8
- movs r2, 0xD
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _080B3DC4 @ =gBGTilemapBuffers + 0x800
- movs r1, 0x4
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x8
- movs r2, 0x9
- movs r3, 0x4
- bl sub_80A3FA0
- adds r0, r4, 0
- bl sub_80B4378
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3DC0: .4byte gUnknown_03000708
-_080B3DC4: .4byte gBGTilemapBuffers + 0x800
- thumb_func_end sub_80B3D7C
-
- thumb_func_start sub_80B3DC8
-sub_80B3DC8: @ 80B3DC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- adds r4, r6, 0
- ldr r7, _080B3EA8 @ =gUnknown_03000708
- ldrb r1, [r7, 0xD]
- adds r0, r6, 0
- bl sub_80A52C4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B3DEE
- adds r0, r6, 0
- bl sub_80B37F8
-_080B3DEE:
- ldr r0, _080B3EAC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B3ED8
- ldr r0, _080B3EB0 @ =gUnknown_020386A0
- mov r8, r0
- ldrb r0, [r7, 0xB]
- ldrb r1, [r7, 0x9]
- adds r0, r1
- ldr r1, [r7, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- bl ItemId_GetPrice
- adds r4, r0, 0
- movs r0, 0x1
- bl GetPriceReduction
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 24
- lsrs r0, 24
- asrs r4, r0
- ldr r0, _080B3EB4 @ =gTasks
- lsls r5, r6, 2
- adds r5, r6
- lsls r5, 3
- adds r5, r0
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- muls r0, r4
- mov r2, r8
- str r0, [r2]
- movs r0, 0
- movs r1, 0xA
- movs r2, 0xD
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _080B3EB8 @ =gBGTilemapBuffers + 0x800
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0xB
- movs r3, 0xC
- bl sub_80A3FA0
- bl sub_80B379C
- bl sub_80B3420
- ldrb r0, [r7, 0xB]
- ldrb r1, [r7, 0x9]
- adds r0, r1
- ldr r1, [r7, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, _080B3EBC @ =gStringVar1
- bl CopyItemName
- ldr r0, _080B3EC0 @ =gStringVar2
- movs r2, 0xA
- ldrsh r1, [r5, r2]
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _080B3EC4 @ =gStringVar3
- mov r2, r8
- ldr r1, [r2]
- movs r2, 0
- movs r3, 0x8
- bl ConvertIntToDecimalStringN
- ldr r4, _080B3EC8 @ =gStringVar4
- ldr r1, _080B3ECC @ =gOtherText_ThatWillBe
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080B3ED0 @ =sub_80B3D38
- ldr r3, _080B3ED4 @ =0x0000c3e1
- adds r0, r6, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
- b _080B3EF0
- .align 2, 0
-_080B3EA8: .4byte gUnknown_03000708
-_080B3EAC: .4byte gMain
-_080B3EB0: .4byte gUnknown_020386A0
-_080B3EB4: .4byte gTasks
-_080B3EB8: .4byte gBGTilemapBuffers + 0x800
-_080B3EBC: .4byte gStringVar1
-_080B3EC0: .4byte gStringVar2
-_080B3EC4: .4byte gStringVar3
-_080B3EC8: .4byte gStringVar4
-_080B3ECC: .4byte gOtherText_ThatWillBe
-_080B3ED0: .4byte sub_80B3D38
-_080B3ED4: .4byte 0x0000c3e1
-_080B3ED8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080B3EF0
- ldrb r1, [r7, 0x9]
- adds r0, r1, 0
- movs r2, 0
- bl sub_80B39D0
- adds r0, r4, 0
- bl sub_80B4378
-_080B3EF0:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B3DC8
-
- thumb_func_start sub_80B3EFC
-sub_80B3EFC: @ 80B3EFC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080B3F78 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0xA]
- movs r0, 0
- movs r1, 0xA
- movs r2, 0xD
- movs r3, 0xD
- bl MenuDrawTextWindow
- adds r0, r5, 0
- bl sub_80B37F8
- ldr r6, _080B3F7C @ =gUnknown_03000708
- ldrb r0, [r6, 0xB]
- ldrb r1, [r6, 0x9]
- adds r0, r1
- ldr r1, [r6, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- bl ItemId_GetPrice
- adds r4, r0, 0
- movs r0, 0x1
- bl GetPriceReduction
- ldr r1, _080B3F80 @ =gSaveBlock1
- movs r2, 0x92
- lsls r2, 3
- adds r1, r2
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 24
- lsrs r0, 24
- asrs r4, r0
- ldr r0, [r1]
- adds r1, r4, 0
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x63
- bls _080B3F62
- movs r0, 0x63
-_080B3F62:
- strb r0, [r6, 0xD]
- ldr r0, _080B3F78 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080B3F84 @ =sub_80B3DC8
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3F78: .4byte gTasks
-_080B3F7C: .4byte gUnknown_03000708
-_080B3F80: .4byte gSaveBlock1
-_080B3F84: .4byte sub_80B3DC8
- thumb_func_end sub_80B3EFC
-
- thumb_func_start sub_80B3F88
-sub_80B3F88: @ 80B3F88
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _080B4020 @ =gMenuWindow
- mov r8, r0
- ldr r1, [r0, 0x28]
- ldr r3, _080B4024 @ =0x000003de
- adds r1, r3
- adds r2, r1, 0
- adds r2, 0x80
- ldr r7, [r0, 0x24]
- mov r10, r7
- ldr r0, _080B4028 @ =0x000003ff
- mov r9, r0
- movs r6, 0xD
-_080B3FAC:
- adds r3, r2, 0
- subs r3, 0x40
- str r3, [sp]
- movs r7, 0x40
- negs r7, r7
- adds r7, r1
- mov r12, r7
- adds r3, r2, 0
- adds r4, r1, 0
- movs r5, 0xE
-_080B3FC0:
- ldrh r2, [r4]
- mov r1, r9
- ands r1, r2
- mov r7, r8
- ldrh r0, [r7, 0x1A]
- adds r0, 0x1
- cmp r1, r0
- ble _080B3FD4
- adds r0, r2, 0
- adds r0, 0x3C
-_080B3FD4:
- strh r0, [r3]
- adds r3, 0x2
- adds r4, 0x2
- subs r5, 0x1
- cmp r5, 0
- bge _080B3FC0
- ldr r2, [sp]
- mov r1, r12
- subs r6, 0x1
- cmp r6, 0
- bge _080B3FAC
- ldr r1, _080B402C @ =0x00003a20
- add r1, r10
- movs r0, 0xF0
- lsls r0, 3
- adds r2, r1, r0
- ldr r3, _080B4030 @ =0x040000d4
- ldr r5, _080B4034 @ =0x800000f0
- ldr r4, _080B4038 @ =0xfffffc40
- movs r6, 0xD
-_080B3FFC:
- str r1, [r3]
- str r2, [r3, 0x4]
- str r5, [r3, 0x8]
- ldr r0, [r3, 0x8]
- adds r2, r4
- adds r1, r4
- subs r6, 0x1
- cmp r6, 0
- bge _080B3FFC
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4020: .4byte gMenuWindow
-_080B4024: .4byte 0x000003de
-_080B4028: .4byte 0x000003ff
-_080B402C: .4byte 0x00003a20
-_080B4030: .4byte 0x040000d4
-_080B4034: .4byte 0x800000f0
-_080B4038: .4byte 0xfffffc40
- thumb_func_end sub_80B3F88
-
- thumb_func_start sub_80B403C
-sub_80B403C: @ 80B403C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _080B40D8 @ =gMenuWindow
- mov r8, r0
- ldr r2, [r0, 0x28]
- adds r1, r2, 0
- adds r1, 0x9E
- adds r2, r1, 0
- adds r1, 0x80
- ldr r3, [r0, 0x24]
- mov r10, r3
- ldr r7, _080B40DC @ =0x000003ff
- mov r9, r7
- movs r6, 0xD
-_080B4060:
- adds r0, r2, 0
- adds r0, 0x40
- str r0, [sp]
- movs r3, 0x40
- adds r3, r1
- mov r12, r3
- adds r3, r2, 0
- adds r4, r1, 0
- movs r5, 0xE
-_080B4072:
- ldrh r2, [r4]
- mov r1, r9
- ands r1, r2
- mov r7, r8
- ldrh r0, [r7, 0x1A]
- adds r0, 0x1
- cmp r1, r0
- ble _080B4086
- adds r0, r2, 0
- subs r0, 0x3C
-_080B4086:
- strh r0, [r3]
- adds r3, 0x2
- adds r4, 0x2
- subs r5, 0x1
- cmp r5, 0
- bge _080B4072
- ldr r2, [sp]
- mov r1, r12
- subs r6, 0x1
- cmp r6, 0
- bge _080B4060
- movs r1, 0x96
- lsls r1, 4
- add r1, r10
- adds r2, r1, 0
- movs r0, 0xF0
- lsls r0, 3
- adds r1, r0
- ldr r3, _080B40E0 @ =0x040000d4
- ldr r5, _080B40E4 @ =0x800000f0
- movs r4, 0xF0
- lsls r4, 2
- movs r6, 0xD
-_080B40B4:
- str r1, [r3]
- str r2, [r3, 0x4]
- str r5, [r3, 0x8]
- ldr r0, [r3, 0x8]
- adds r2, r4
- adds r1, r4
- subs r6, 0x1
- cmp r6, 0
- bge _080B40B4
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B40D8: .4byte gMenuWindow
-_080B40DC: .4byte 0x000003ff
-_080B40E0: .4byte 0x040000d4
-_080B40E4: .4byte 0x800000f0
- thumb_func_end sub_80B403C
-
- thumb_func_start sub_80B40E8
-sub_80B40E8: @ 80B40E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- mov r8, r7
- ldr r0, _080B4134 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080B4102
- b _080B436C
-_080B4102:
- ldr r2, _080B4138 @ =gMain
- ldrh r0, [r2, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _080B414C
- ldr r4, _080B413C @ =gUnknown_03000708
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- bne _080B4140
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- bne _080B411E
- b _080B436C
-_080B411E:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4, 0xB]
- subs r0, 0x1
- strb r0, [r4, 0xB]
- bl sub_80B3F88
- movs r0, 0
- movs r1, 0
- b _080B417A
- .align 2, 0
-_080B4134: .4byte gPaletteFade
-_080B4138: .4byte gMain
-_080B413C: .4byte gUnknown_03000708
-_080B4140:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _080B41A0
-_080B414C:
- cmp r1, 0x80
- bne _080B41AC
- ldr r4, _080B418C @ =gUnknown_03000708
- ldrb r0, [r4, 0x9]
- cmp r0, 0x7
- bne _080B4190
- ldrb r0, [r4, 0xB]
- ldrb r1, [r4, 0x9]
- adds r0, r1
- ldrb r1, [r4, 0x8]
- cmp r0, r1
- bne _080B4166
- b _080B436C
-_080B4166:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4, 0xB]
- adds r0, 0x1
- strb r0, [r4, 0xB]
- bl sub_80B403C
- movs r0, 0x7
- movs r1, 0x7
-_080B417A:
- movs r2, 0
- bl sub_80B39D0
- bl sub_80B3A70
- bl sub_80B32A4
- b _080B436C
- .align 2, 0
-_080B418C: .4byte gUnknown_03000708
-_080B4190:
- ldrb r2, [r4, 0x8]
- cmp r0, r2
- bne _080B4198
- b _080B436C
-_080B4198:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_080B41A0:
- bl MoveMenuCursor
- strb r0, [r4, 0x9]
- bl sub_80B3A70
- b _080B436C
-_080B41AC:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080B41B8
- b _080B4358
-_080B41B8:
- movs r0, 0x5
- bl PlaySE
- ldr r6, _080B426C @ =gUnknown_03000708
- ldrb r0, [r6, 0xB]
- ldrb r1, [r6, 0x9]
- adds r0, r1
- ldrb r1, [r6, 0x8]
- cmp r0, r1
- bne _080B41CE
- b _080B4350
-_080B41CE:
- movs r0, 0
- bl PauseVerticalScrollIndicator
- movs r0, 0x1
- bl PauseVerticalScrollIndicator
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
- ldrb r1, [r6, 0x9]
- adds r0, r1, 0
- movs r2, 0x1
- bl sub_80B39D0
- bl HandleDestroyMenuCursors
- movs r0, 0
- movs r1, 0xC
- movs r2, 0xD
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldrb r0, [r6, 0xC]
- cmp r0, 0
- bne _080B428C
- ldr r5, _080B4270 @ =gUnknown_020386A0
- ldrb r0, [r6, 0xB]
- ldrb r1, [r6, 0x9]
- adds r0, r1
- ldr r1, [r6, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- bl ItemId_GetPrice
- adds r4, r0, 0
- movs r0, 0x1
- bl GetPriceReduction
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 24
- lsrs r0, 24
- asrs r4, r0
- str r4, [r5]
- ldr r0, _080B4274 @ =gSaveBlock1
- movs r2, 0x92
- lsls r2, 3
- adds r0, r2
- ldr r0, [r0]
- adds r1, r4, 0
- bl IsEnoughMoney
- lsls r0, 24
- cmp r0, 0
- beq _080B42BA
- ldrb r0, [r6, 0xB]
- ldrb r1, [r6, 0x9]
- adds r0, r1
- ldr r1, [r6, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, _080B4278 @ =gStringVar1
- bl CopyItemName
- ldr r4, _080B427C @ =gStringVar4
- ldr r1, _080B4280 @ =gOtherText_HowManyYouWant
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080B4284 @ =sub_80B3EFC
- ldr r3, _080B4288 @ =0x0000c3e1
- adds r0, r7, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
- b _080B436C
- .align 2, 0
-_080B426C: .4byte gUnknown_03000708
-_080B4270: .4byte gUnknown_020386A0
-_080B4274: .4byte gSaveBlock1
-_080B4278: .4byte gStringVar1
-_080B427C: .4byte gStringVar4
-_080B4280: .4byte gOtherText_HowManyYouWant
-_080B4284: .4byte sub_80B3EFC
-_080B4288: .4byte 0x0000c3e1
-_080B428C:
- ldr r5, _080B42C8 @ =gUnknown_020386A0
- ldr r4, _080B42CC @ =gDecorations
- ldrb r0, [r6, 0xB]
- ldrb r1, [r6, 0x9]
- adds r0, r1
- ldr r1, [r6, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 5
- adds r0, r4
- ldrh r1, [r0, 0x14]
- str r1, [r5]
- ldr r0, _080B42D0 @ =gSaveBlock1
- movs r2, 0x92
- lsls r2, 3
- adds r0, r2
- ldr r0, [r0]
- bl IsEnoughMoney
- lsls r0, 24
- cmp r0, 0
- bne _080B42E0
-_080B42BA:
- ldr r1, _080B42D4 @ =gOtherText_NotEnoughMoney
- ldr r2, _080B42D8 @ =sub_80B3BD0
- ldr r3, _080B42DC @ =0x0000c3e1
- adds r0, r7, 0
- bl DisplayItemMessageOnField
- b _080B436C
- .align 2, 0
-_080B42C8: .4byte gUnknown_020386A0
-_080B42CC: .4byte gDecorations
-_080B42D0: .4byte gSaveBlock1
-_080B42D4: .4byte gOtherText_NotEnoughMoney
-_080B42D8: .4byte sub_80B3BD0
-_080B42DC: .4byte 0x0000c3e1
-_080B42E0:
- ldr r0, _080B4318 @ =gStringVar1
- ldrb r1, [r6, 0xB]
- ldrb r2, [r6, 0x9]
- adds r1, r2
- ldr r2, [r6, 0x4]
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- lsls r1, 5
- adds r2, r4, 0x1
- adds r1, r2
- bl StringCopy
- ldr r0, _080B431C @ =gStringVar2
- ldr r1, [r5]
- movs r2, 0
- movs r3, 0x8
- bl ConvertIntToDecimalStringN
- ldrb r0, [r6, 0xC]
- cmp r0, 0x1
- bne _080B4328
- ldr r0, _080B4320 @ =gStringVar4
- ldr r1, _080B4324 @ =gOtherText_ThatWillBe2
- bl StringExpandPlaceholders
- b _080B4330
- .align 2, 0
-_080B4318: .4byte gStringVar1
-_080B431C: .4byte gStringVar2
-_080B4320: .4byte gStringVar4
-_080B4324: .4byte gOtherText_ThatWillBe2
-_080B4328:
- ldr r0, _080B4340 @ =gStringVar4
- ldr r1, _080B4344 @ =gOtherText_ThatWillBe3
- bl StringExpandPlaceholders
-_080B4330:
- ldr r1, _080B4340 @ =gStringVar4
- ldr r2, _080B4348 @ =sub_80B3D38
- ldr r3, _080B434C @ =0x0000c3e1
- mov r0, r8
- bl DisplayItemMessageOnField
- b _080B436C
- .align 2, 0
-_080B4340: .4byte gStringVar4
-_080B4344: .4byte gOtherText_ThatWillBe3
-_080B4348: .4byte sub_80B3D38
-_080B434C: .4byte 0x0000c3e1
-_080B4350:
- adds r0, r7, 0
- bl sub_80B43F0
- b _080B436C
-_080B4358:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080B436C
- movs r0, 0x5
- bl PlaySE
- mov r0, r8
- bl sub_80B43F0
-_080B436C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B40E8
-
- thumb_func_start sub_80B4378
-sub_80B4378: @ 80B4378
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xA
- movs r2, 0xD
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _080B43E4 @ =gBGTilemapBuffers + 0x800
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0xB
- movs r3, 0xC
- bl sub_80A3FA0
- bl sub_80B3420
- movs r0, 0x6
- movs r1, 0x7
- bl sub_80B3764
- bl sub_80B37EC
- movs r0, 0
- bl StartVerticalScrollIndicators
- movs r0, 0x1
- bl StartVerticalScrollIndicators
- bl sub_80B32A4
- ldr r1, _080B43E8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080B43EC @ =sub_80B40E8
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B43E4: .4byte gBGTilemapBuffers + 0x800
-_080B43E8: .4byte gTasks
-_080B43EC: .4byte sub_80B40E8
- thumb_func_end sub_80B4378
-
- thumb_func_start sub_80B43F0
-sub_80B43F0: @ 80B43F0
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080B4428 @ =gFieldCallback
- ldr r0, _080B442C @ =sub_80B3050
- str r0, [r1]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080B4430 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080B4434 @ =Task_ExitBuyMenu
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4428: .4byte gFieldCallback
-_080B442C: .4byte sub_80B3050
-_080B4430: .4byte gTasks
-_080B4434: .4byte Task_ExitBuyMenu
- thumb_func_end sub_80B43F0
-
- thumb_func_start Task_ExitBuyMenu
-Task_ExitBuyMenu: @ 80B4438
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080B4468 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B4462
- movs r0, 0
- movs r1, 0
- bl RemoveMoneyLabelObject
- bl BuyMenuFreeMemory
- ldr r0, _080B446C @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_080B4462:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4468: .4byte gPaletteFade
-_080B446C: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end Task_ExitBuyMenu
-
- thumb_func_start sub_80B4470
-sub_80B4470: @ 80B4470
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r2, 0
- ldr r0, _080B44C8 @ =gUnknown_02038724
- mov r12, r0
- ldr r6, _080B44CC @ =gUnknown_03000708
- mov r8, r12
- adds r4, r6, 0
- ldr r1, _080B44D0 @ =gTasks
- mov r9, r1
- lsls r0, r5, 2
- adds r0, r5
- lsls r7, r0, 3
-_080B4492:
- lsls r0, r2, 2
- mov r1, r8
- adds r3, r0, r1
- ldrb r0, [r4, 0xB]
- ldrb r1, [r4, 0x9]
- adds r0, r1
- ldr r1, [r4, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r3]
- ldrh r0, [r0]
- cmp r1, r0
- bne _080B44DC
- ldrh r0, [r3, 0x2]
- cmp r0, 0
- beq _080B44DC
- adds r2, r0, 0
- mov r4, r9
- adds r1, r7, r4
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- adds r0, r2, r0
- cmp r0, 0xFF
- ble _080B44D4
- movs r0, 0xFF
- strh r0, [r3, 0x2]
- b _080B451E
- .align 2, 0
-_080B44C8: .4byte gUnknown_02038724
-_080B44CC: .4byte gUnknown_03000708
-_080B44D0: .4byte gTasks
-_080B44D4:
- ldrh r0, [r1, 0xA]
- adds r0, r2, r0
- strh r0, [r3, 0x2]
- b _080B451E
-_080B44DC:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x2
- bls _080B4492
- ldr r3, _080B452C @ =gUnknown_02038730
- ldrb r0, [r3]
- cmp r0, 0x2
- bhi _080B451E
- adds r2, r0, 0
- lsls r2, 2
- add r2, r12
- ldrb r0, [r6, 0xB]
- ldrb r1, [r6, 0x9]
- adds r0, r1
- ldr r1, [r6, 0x4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- ldrb r1, [r3]
- lsls r1, 2
- add r1, r12
- ldr r2, _080B4530 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0xA]
- strh r0, [r1, 0x2]
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
-_080B451E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B452C: .4byte gUnknown_02038730
-_080B4530: .4byte gTasks
- thumb_func_end sub_80B4470
-
- thumb_func_start ClearItemPurchases
-ClearItemPurchases: @ 80B4534
- push {lr}
- ldr r0, _080B4548 @ =gUnknown_02038730
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080B454C @ =gUnknown_02038724
- movs r1, 0x3
- bl ClearItemSlots
- pop {r0}
- bx r0
- .align 2, 0
-_080B4548: .4byte gUnknown_02038730
-_080B454C: .4byte gUnknown_02038724
- thumb_func_end ClearItemPurchases
-
- thumb_func_start CreatePokemartMenu
-CreatePokemartMenu: @ 80B4550
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- bl CreateShopMenu
- adds r0, r4, 0
- bl SetShopItemsForSale
- bl ClearItemPurchases
- ldr r0, _080B4570 @ =EnableBothScriptContexts
- bl SetShopMenuCallback
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4570: .4byte EnableBothScriptContexts
- thumb_func_end CreatePokemartMenu
-
- thumb_func_start CreateDecorationShop1Menu
-CreateDecorationShop1Menu: @ 80B4574
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- bl CreateShopMenu
- adds r0, r4, 0
- bl SetShopItemsForSale
- ldr r0, _080B4590 @ =EnableBothScriptContexts
- bl SetShopMenuCallback
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B4590: .4byte EnableBothScriptContexts
- thumb_func_end CreateDecorationShop1Menu
-
- thumb_func_start CreateDecorationShop2Menu
-CreateDecorationShop2Menu: @ 80B4594
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2
- bl CreateShopMenu
- adds r0, r4, 0
- bl SetShopItemsForSale
- ldr r0, _080B45B0 @ =EnableBothScriptContexts
- bl SetShopMenuCallback
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B45B0: .4byte EnableBothScriptContexts
- thumb_func_end CreateDecorationShop2Menu
-
- thumb_func_start sub_80B45B4
-sub_80B45B4: @ 80B45B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- mov r9, r1
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- ldr r2, _080B4648 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r1, 0x10]
- subs r0, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r1, 0x12]
- subs r0, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r4, [r1, 0xA]
- movs r2, 0xC
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080B4678
- movs r2, 0
- lsls r5, 16
- str r5, [sp, 0xC]
- lsls r0, r3, 16
- lsls r1, r4, 16
- asrs r0, 16
- str r0, [sp]
- asrs r1, 16
- str r1, [sp, 0x4]
- lsls r0, r1, 1
- mov r1, r9
- adds r7, r0, r1
-_080B4608:
- movs r4, 0
- lsls r2, 16
- mov r8, r2
- asrs r0, r2, 16
- ldr r2, [sp]
- adds r6, r2, r0
-_080B4614:
- ldr r0, [sp, 0xC]
- asrs r1, r0, 16
- lsls r4, 16
- asrs r0, r4, 16
- adds r5, r1, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridGetMetatileIdAt
- movs r2, 0
- ldrsh r1, [r7, r2]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- bne _080B465C
- ldr r0, [sp, 0x4]
- cmp r0, 0x2
- beq _080B464C
- ldrh r0, [r7, 0x2]
- mov r2, r10
- orrs r2, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridSetMetatileIdAt
- b _080B465C
- .align 2, 0
-_080B4648: .4byte gTasks
-_080B464C:
- mov r1, r9
- ldrh r0, [r1]
- mov r2, r10
- orrs r2, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridSetMetatileIdAt
-_080B465C:
- movs r2, 0x80
- lsls r2, 9
- adds r0, r4, r2
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080B4614
- adds r0, r2, 0
- add r0, r8
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080B4608
- b _080B4700
-_080B4678:
- movs r2, 0
- lsls r5, 16
- str r5, [sp, 0xC]
- lsls r0, r3, 16
- lsls r1, r4, 16
- asrs r0, 16
- str r0, [sp, 0x8]
- asrs r7, r1, 16
-_080B4688:
- movs r4, 0
- lsls r2, 16
- mov r8, r2
- asrs r0, r2, 16
- ldr r1, [sp, 0x8]
- adds r6, r1, r0
-_080B4694:
- ldr r2, [sp, 0xC]
- asrs r1, r2, 16
- lsls r4, 16
- asrs r0, r4, 16
- adds r5, r1, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridGetMetatileIdAt
- movs r1, 0x2
- subs r1, r7
- lsls r1, 1
- add r1, r9
- movs r2, 0
- ldrsh r1, [r1, r2]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- bne _080B46E6
- cmp r7, 0x2
- beq _080B46D6
- movs r0, 0x1
- subs r0, r7
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- mov r2, r10
- orrs r2, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridSetMetatileIdAt
- b _080B46E6
-_080B46D6:
- mov r1, r9
- ldrh r0, [r1, 0x4]
- mov r2, r10
- orrs r2, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridSetMetatileIdAt
-_080B46E6:
- movs r2, 0x80
- lsls r2, 9
- adds r0, r4, r2
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080B4694
- adds r0, r2, 0
- add r0, r8
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080B4688
-_080B4700:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B45B4
-
- thumb_func_start sub_80B4710
-sub_80B4710: @ 80B4710
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080B4738 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r0, 0x1
- strh r0, [r4, 0x6]
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bhi _080B47AA
- lsls r0, 2
- ldr r1, _080B473C @ =_080B4740
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B4738: .4byte gTasks + 0x8
-_080B473C: .4byte _080B4740
- .align 2, 0
-_080B4740:
- .4byte _080B475C
- .4byte _080B4764
- .4byte _080B476C
- .4byte _080B4774
- .4byte _080B477C
- .4byte _080B4790
- .4byte _080B47A0
-_080B475C:
- ldr r1, _080B4760 @ =gUnknown_083CC714
- b _080B4792
- .align 2, 0
-_080B4760: .4byte gUnknown_083CC714
-_080B4764:
- ldr r1, _080B4768 @ =gUnknown_083CC71A
- b _080B4792
- .align 2, 0
-_080B4768: .4byte gUnknown_083CC71A
-_080B476C:
- ldr r1, _080B4770 @ =gUnknown_083CC720
- b _080B477E
- .align 2, 0
-_080B4770: .4byte gUnknown_083CC720
-_080B4774:
- ldr r1, _080B4778 @ =gUnknown_083CC726
- b _080B4792
- .align 2, 0
-_080B4778: .4byte gUnknown_083CC726
-_080B477C:
- ldr r1, _080B478C @ =gUnknown_083CC72C
-_080B477E:
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r3, 0
- bl sub_80B45B4
- b _080B47AA
- .align 2, 0
-_080B478C: .4byte gUnknown_083CC72C
-_080B4790:
- ldr r1, _080B479C @ =gUnknown_083CC732
-_080B4792:
- adds r0, r3, 0
- movs r2, 0
- bl sub_80B45B4
- b _080B47AA
- .align 2, 0
-_080B479C: .4byte gUnknown_083CC732
-_080B47A0:
- ldr r1, _080B47D4 @ =gUnknown_083CC738
- adds r0, r3, 0
- movs r2, 0
- bl sub_80B45B4
-_080B47AA:
- ldrh r0, [r4]
- adds r0, 0x1
- movs r1, 0x7
- ands r0, r1
- strh r0, [r4]
- adds r5, r0, 0
- cmp r5, 0
- bne _080B47CE
- bl DrawWholeMapView
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- adds r0, 0x1
- movs r1, 0x3
- bl __modsi3
- strh r0, [r4, 0x2]
- strh r5, [r4, 0x6]
-_080B47CE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B47D4: .4byte gUnknown_083CC738
- thumb_func_end sub_80B4710
-
- thumb_func_start sub_80B47D8
-sub_80B47D8: @ 80B47D8
- push {r4-r7,lr}
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- ldr r6, _080B481C @ =sub_80B4710
- adds r0, r6, 0
- movs r1, 0
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080B4820 @ =gTasks + 0x8
- adds r7, r0, r1
- adds r0, r7, 0
- adds r0, 0x8
- adds r1, r7, 0
- adds r1, 0xA
- bl PlayerGetDestCoords
- movs r0, 0
- strh r0, [r7]
- strh r0, [r7, 0x2]
- strh r5, [r7, 0x4]
- adds r0, r4, 0
- bl _call_via_r6
- adds r0, r4, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080B481C: .4byte sub_80B4710
-_080B4820: .4byte gTasks + 0x8
- thumb_func_end sub_80B47D8
-
- thumb_func_start sub_80B4824
-sub_80B4824: @ 80B4824
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80B47D8
- ldr r1, _080B4838 @ =gUnknown_02038731
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080B4838: .4byte gUnknown_02038731
- thumb_func_end sub_80B4824
-
- thumb_func_start sub_80B483C
-sub_80B483C: @ 80B483C
- push {lr}
- ldr r0, _080B484C @ =gUnknown_02038731
- ldrb r0, [r0]
- bl DestroyTask
- pop {r0}
- bx r0
- .align 2, 0
-_080B484C: .4byte gUnknown_02038731
- thumb_func_end sub_80B483C
-
- thumb_func_start sub_80B4850
-sub_80B4850: @ 80B4850
- push {lr}
- ldr r2, _080B4874 @ =gTasks
- ldr r0, _080B4878 @ =gUnknown_02038731
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r2
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080B487C
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0x2
- bne _080B487C
- movs r0, 0
- b _080B487E
- .align 2, 0
-_080B4874: .4byte gTasks
-_080B4878: .4byte gUnknown_02038731
-_080B487C:
- movs r0, 0x1
-_080B487E:
- pop {r1}
- bx r1
- thumb_func_end sub_80B4850
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index 46af5bc0f..bebe3633e 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -10098,13 +10098,13 @@ sub_81063C0: @ 81063C0
ldr r0, _081063F0 @ =gSlotMachineReelTimeLights_Gfx
ldr r4, _081063F4 @ =0x02010000
adds r1, r4, 0
- bl sub_800D238
+ bl LZDecompressWram
ldr r0, _081063F8 @ =gUnknown_083EDE8C
movs r1, 0xC8
lsls r1, 6
adds r4, r1
adds r1, r4, 0
- bl sub_800D238
+ bl LZDecompressWram
ldr r0, _081063FC @ =gUnknown_083EDC2C
bl LoadSpriteSheets
ldr r0, _08106400 @ =gSlotMachineSpritePalettes
diff --git a/asm/trade.s b/asm/trade.s
deleted file mode 100644
index 223f62474..000000000
--- a/asm/trade.s
+++ /dev/null
@@ -1,12050 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
-.ifdef ENGLISH
- .set sub_804A96C_alt, sub_804A96C
-.endif
-
- thumb_func_start sub_8047CD8
-sub_8047CD8: @ 8047CD8
- push {lr}
- ldr r0, _08047CE4 @ =sub_8047EC0
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08047CE4: .4byte sub_8047EC0
- thumb_func_end sub_8047CD8
-
- thumb_func_start sub_8047CE8
-sub_8047CE8: @ 8047CE8
- push {r4-r6,lr}
- ldr r6, _08047D44 @ =gWindowConfig_81E725C
- ldr r5, _08047D48 @ =gUnknown_020296CC
- ldr r1, [r5]
- ldr r2, _08047D4C @ =gSaveBlock2
- adds r0, r6, 0
- movs r3, 0xC
- bl sub_804AFB8
- bl GetMultiplayerId
- lsls r0, 24
- ldr r1, [r5, 0xC]
- movs r3, 0x80
- lsls r3, 17
- eors r3, r0
- lsrs r3, 24
- lsls r2, r3, 3
- subs r2, r3
- lsls r2, 2
- ldr r0, _08047D50 @ =gLinkPlayers + 0x8
- adds r2, r0
- adds r0, r6, 0
- movs r3, 0xC
- bl sub_804AFB8
- ldr r1, [r5, 0x18]
- ldr r4, _08047D54 @ =gUnknown_0820C14C
- ldr r2, [r4]
- adds r0, r6, 0
- movs r3, 0x8
- bl sub_804AFB8
- ldr r0, [r4, 0x4]
- ldr r1, [r5, 0x20]
- movs r2, 0x14
- bl sub_804ACD8
- movs r0, 0x3
- movs r1, 0
- bl nullsub_5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08047D44: .4byte gWindowConfig_81E725C
-_08047D48: .4byte gUnknown_020296CC
-_08047D4C: .4byte gSaveBlock2
-_08047D50: .4byte gLinkPlayers + 0x8
-_08047D54: .4byte gUnknown_0820C14C
- thumb_func_end sub_8047CE8
-
- thumb_func_start sub_8047D58
-sub_8047D58: @ 8047D58
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x18
- ldr r0, _08047E30 @ =gSaveBlock2
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- cmp r0, 0x5
- bls _08047D72
- movs r1, 0x1
-_08047D72:
- movs r5, 0
- lsls r2, r1, 2
- mov r6, sp
- ldr r0, _08047E34 @ =gTradeUnknownSpriteCoords
- adds r1, r0, 0x1
- adds r1, r2
- mov r8, r1
- adds r0, r2, r0
- ldrb r0, [r0]
- lsls r4, r0, 16
-_08047D86:
- mov r1, sp
- ldr r0, _08047E38 @ =gSpriteTemplate_820C0EC
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldrh r0, [r6]
- adds r0, r5
- strh r0, [r6]
- asrs r1, r4, 16
- mov r0, sp
- mov r3, r8
- ldrb r2, [r3]
- movs r3, 0x1
- bl CreateSprite
- movs r7, 0x80
- lsls r7, 14
- adds r4, r7
- adds r5, 0x1
- cmp r5, 0x2
- ble _08047D86
- bl GetMultiplayerId
- lsls r0, 24
- movs r1, 0x80
- lsls r1, 17
- eors r1, r0
- lsrs r1, 24
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _08047E3C @ =gLinkPlayers + 0x8
- adds r0, r1
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- cmp r0, 0x5
- bls _08047DDA
- movs r1, 0x1
-_08047DDA:
- movs r5, 0
- lsls r2, r1, 2
- mov r6, sp
- ldr r0, _08047E40 @ =gTradeUnknownSpriteCoords + 0x3
- adds r1, r2, r0
- mov r8, r1
- subs r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- lsls r4, r0, 16
-_08047DEE:
- mov r1, sp
- ldr r0, _08047E38 @ =gSpriteTemplate_820C0EC
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- adds r0, r5, 0x3
- ldrh r1, [r6]
- adds r0, r1
- strh r0, [r6]
- asrs r1, r4, 16
- mov r0, sp
- mov r3, r8
- ldrb r2, [r3]
- movs r3, 0x1
- bl CreateSprite
- movs r7, 0x80
- lsls r7, 14
- adds r4, r7
- adds r5, 0x1
- cmp r5, 0x2
- ble _08047DEE
- movs r0, 0x5
- movs r1, 0
- bl nullsub_5
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08047E30: .4byte gSaveBlock2
-_08047E34: .4byte gTradeUnknownSpriteCoords
-_08047E38: .4byte gSpriteTemplate_820C0EC
-_08047E3C: .4byte gLinkPlayers + 0x8
-_08047E40: .4byte gTradeUnknownSpriteCoords + 0x3
- thumb_func_end sub_8047D58
-
- thumb_func_start sub_8047E44
-sub_8047E44: @ 8047E44
- push {r4-r7,lr}
- sub sp, 0x18
- movs r4, 0
- mov r5, sp
- movs r6, 0xD6
- lsls r6, 16
-_08047E50:
- mov r1, sp
- ldr r0, _08047EBC @ =gSpriteTemplate_820C0EC
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- adds r0, r4, 0x6
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r5]
- asrs r1, r6, 16
- mov r0, sp
- movs r2, 0x98
- movs r3, 0x1
- bl CreateSprite
- movs r2, 0x80
- lsls r2, 14
- adds r6, r2
- adds r4, 0x1
- cmp r4, 0x1
- ble _08047E50
- movs r4, 0
- mov r5, sp
- movs r6, 0xC0
- lsls r6, 13
-_08047E84:
- mov r1, sp
- ldr r0, _08047EBC @ =gSpriteTemplate_820C0EC
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- adds r0, r4, 0
- adds r0, 0x8
- ldrh r3, [r5]
- adds r0, r3
- strh r0, [r5]
- asrs r1, r6, 16
- mov r0, sp
- movs r2, 0x96
- movs r3, 0x1
- bl CreateSprite
- movs r7, 0x80
- lsls r7, 14
- adds r6, r7
- adds r4, 0x1
- cmp r4, 0x4
- ble _08047E84
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08047EBC: .4byte gSpriteTemplate_820C0EC
- thumb_func_end sub_8047E44
-
- thumb_func_start sub_8047EC0
-sub_8047EC0: @ 8047EC0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- ldr r1, _08047EE4 @ =gMain
- ldr r2, _08047EE8 @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x15
- bls _08047ED8
- b _080484C6
-_08047ED8:
- lsls r0, 2
- ldr r1, _08047EEC @ =_08047EF0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08047EE4: .4byte gMain
-_08047EE8: .4byte 0x0000043c
-_08047EEC: .4byte _08047EF0
- .align 2, 0
-_08047EF0:
- .4byte _08047F48
- .4byte _08048048
- .4byte _080480B4
- .4byte _080480E0
- .4byte _08048130
- .4byte _08048160
- .4byte _08048172
- .4byte _080482B4
- .4byte _080482DC
- .4byte _08048300
- .4byte _08048328
- .4byte _0804834C
- .4byte _08048360
- .4byte _080483B8
- .4byte _08048400
- .4byte _08048418
- .4byte _08048430
- .4byte _08048448
- .4byte _0804845A
- .4byte _08048470
- .4byte _08048488
- .4byte _080484A8
-_08047F48:
- ldr r5, _08048018 @ =gUnknown_03004824
- ldr r6, _0804801C @ =0x02017000
- str r6, [r5]
- bl sub_804AA88
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r0, [r5]
- adds r0, 0xC8
- ldr r1, _08048020 @ =0x06002800
- bl sub_804A964
- ldr r0, _08048024 @ =sub_80489F4
- bl SetVBlankCallback
- ldr r0, _08048028 @ =gWindowConfig_81E6CE4
- bl InitMenuWindow
- ldr r4, _0804802C @ =gWindowConfig_81E6F84
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r0, [r5]
- adds r0, 0x4
- adds r1, r4, 0
- bl InitWindowFromConfig
- movs r0, 0x14
- bl SetTextWindowBaseTileNum
- ldr r1, [r5]
- adds r1, 0x7A
- movs r4, 0
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0x4
- bl LoadTextWindowGraphics
- bl MenuZeroFillScreen
- bl sub_809D51C
- ldr r0, [r5]
- adds r0, 0x75
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x7B
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x7C
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x80
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x81
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x86
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x87
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0xB4
- strb r4, [r0]
- ldr r0, _08048030 @ =gUnknown_03000508
- strb r4, [r0]
- ldr r1, _08048034 @ =gMain
- ldr r3, _08048038 @ =0x0000043c
- adds r1, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
- bl sub_804AA0C
- add r0, sp, 0x10
- strh r4, [r0]
- movs r0, 0xC0
- lsls r0, 7
- adds r1, r6, r0
- ldr r2, _0804803C @ =0x01000680
- add r0, sp, 0x10
- bl CpuSet
- ldr r1, _08048040 @ =gUnknown_020296CC
- movs r2, 0xD8
- lsls r2, 7
- adds r6, r2
- adds r0, r1, 0
- adds r0, 0x30
- ldr r2, _08048044 @ =0xffffff00
-_0804800A:
- str r6, [r0]
- adds r6, r2
- subs r0, 0x4
- cmp r0, r1
- bge _0804800A
- b _080484C6
- .align 2, 0
-_08048018: .4byte gUnknown_03004824
-_0804801C: .4byte 0x02017000
-_08048020: .4byte 0x06002800
-_08048024: .4byte sub_80489F4
-_08048028: .4byte gWindowConfig_81E6CE4
-_0804802C: .4byte gWindowConfig_81E6F84
-_08048030: .4byte gUnknown_03000508
-_08048034: .4byte gMain
-_08048038: .4byte 0x0000043c
-_0804803C: .4byte 0x01000680
-_08048040: .4byte gUnknown_020296CC
-_08048044: .4byte 0xffffff00
-_08048048:
- ldr r1, _08048098 @ =gLinkType
- ldr r3, _0804809C @ =0x00001122
- adds r0, r3, 0
- strh r0, [r1]
- bl OpenLink
- movs r6, 0
- movs r4, 0
-_08048058:
- movs r0, 0x64
- muls r0, r6
- ldr r1, _080480A0 @ =gEnemyParty
- adds r0, r1
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r1, 0
- movs r2, 0
- movs r3, 0x20
- bl CreateMon
- adds r6, 0x1
- cmp r6, 0x5
- ble _08048058
- ldr r1, _080480A4 @ =gMain
- ldr r0, _080480A8 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, _080480AC @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0xB4
- strb r2, [r0]
- ldr r0, _080480B0 @ =sub_8083C50
- movs r1, 0x1
- bl CreateTask
- b _080484C6
- .align 2, 0
-_08048098: .4byte gLinkType
-_0804809C: .4byte 0x00001122
-_080480A0: .4byte gEnemyParty
-_080480A4: .4byte gMain
-_080480A8: .4byte 0x0000043c
-_080480AC: .4byte gUnknown_03004824
-_080480B0: .4byte sub_8083C50
-_080480B4:
- ldr r2, _080480D8 @ =gUnknown_03004824
- ldr r1, [r2]
- adds r1, 0xB4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r2]
- adds r1, r0, 0
- adds r1, 0xB4
- ldrb r0, [r1]
- cmp r0, 0xB
- bhi _080480CE
- b _080484C6
-_080480CE:
- movs r0, 0
- strb r0, [r1]
- ldr r2, _080480DC @ =0x0000043c
- adds r1, r3, r2
- b _08048498
- .align 2, 0
-_080480D8: .4byte gUnknown_03004824
-_080480DC: .4byte 0x0000043c
-_080480E0:
- bl GetLinkPlayerCount_2
- adds r4, r0, 0
- bl sub_800820C
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bcs _080480F4
- b _080484C6
-_080480F4:
- bl IsLinkMaster
- lsls r0, 24
- cmp r0, 0
- beq _08048120
- ldr r0, _0804811C @ =gUnknown_03004824
- ldr r1, [r0]
- adds r1, 0xB4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1E
- bhi _08048114
- b _080484C6
-_08048114:
- bl sub_8007F4C
- b _08048492
- .align 2, 0
-_0804811C: .4byte gUnknown_03004824
-_08048120:
- ldr r1, _08048128 @ =gMain
- ldr r0, _0804812C @ =0x0000043c
- adds r1, r0
- b _08048498
- .align 2, 0
-_08048128: .4byte gMain
-_0804812C: .4byte 0x0000043c
-_08048130:
- ldr r0, _08048154 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0804813A
- b _080484C6
-_0804813A:
- bl IsLinkPlayerDataExchangeComplete
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08048148
- b _080484C6
-_08048148:
- bl CalculatePlayerPartyCount
- ldr r1, _08048158 @ =gMain
- ldr r2, _0804815C @ =0x0000043c
- adds r1, r2
- b _08048498
- .align 2, 0
-_08048154: .4byte gReceivedRemoteLinkPlayers
-_08048158: .4byte gMain
-_0804815C: .4byte 0x0000043c
-_08048160:
- bl sub_8048D44
- lsls r0, 24
- cmp r0, 0
- bne _0804816C
- b _080484C6
-_0804816C:
- bl sub_804AF84
- b _08048492
-_08048172:
- bl CalculateEnemyPartyCount
- ldr r4, _08048294 @ =gUnknown_03004824
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0x1D
- str r1, [sp]
- movs r1, 0x13
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillWindowRect_DefaultPalette
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- ldr r0, [r4]
- ldr r1, _08048298 @ =gPlayerPartyCount
- ldrb r1, [r1]
- adds r0, 0x42
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, _0804829C @ =gEnemyPartyCount
- ldrb r1, [r1]
- adds r0, 0x43
- strb r1, [r0]
- movs r6, 0
- ldr r0, [r4]
- adds r0, 0x42
- ldrb r0, [r0]
- cmp r6, r0
- bge _08048216
- mov r8, r4
- ldr r7, _080482A0 @ =gTradeMonSpriteCoords
-_080481BA:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _080482A4 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- ldrb r2, [r7]
- lsls r2, 19
- movs r1, 0xE0
- lsls r1, 12
- adds r2, r1
- asrs r2, 16
- ldrb r3, [r7, 0x1]
- lsls r3, 19
- ldr r1, _080482A8 @ =0xfff40000
- adds r3, r1
- asrs r3, 16
- movs r1, 0x1
- str r1, [sp]
- str r0, [sp, 0x4]
- adds r0, r5, 0
- ldr r1, _080482AC @ =sub_809D62C
- bl CreateMonIcon
- mov r2, r8
- ldr r1, [r2]
- adds r1, 0x34
- adds r1, r6
- strb r0, [r1]
- adds r7, 0x2
- adds r6, 0x1
- ldr r0, [r2]
- adds r0, 0x42
- ldrb r0, [r0]
- cmp r6, r0
- blt _080481BA
-_08048216:
- movs r6, 0
- ldr r1, _08048294 @ =gUnknown_03004824
- ldr r0, [r1]
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r6, r0
- bge _0804828A
- ldr r0, _080482A0 @ =gTradeMonSpriteCoords
- mov r8, r1
- adds r7, r0, 0
- adds r7, 0xC
-_0804822C:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _080482B0 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- ldrb r2, [r7]
- lsls r2, 19
- movs r3, 0xE0
- lsls r3, 12
- adds r2, r3
- asrs r2, 16
- ldrb r3, [r7, 0x1]
- lsls r3, 19
- ldr r1, _080482A8 @ =0xfff40000
- adds r3, r1
- asrs r3, 16
- movs r1, 0x1
- str r1, [sp]
- str r0, [sp, 0x4]
- adds r0, r5, 0
- ldr r1, _080482AC @ =sub_809D62C
- bl CreateMonIcon
- mov r2, r8
- ldr r1, [r2]
- adds r1, 0x3A
- adds r1, r6
- strb r0, [r1]
- adds r7, 0x2
- adds r6, 0x1
- ldr r0, [r2]
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r6, r0
- blt _0804822C
-_0804828A:
- movs r0, 0x2
- movs r1, 0
- bl nullsub_5
- b _08048492
- .align 2, 0
-_08048294: .4byte gUnknown_03004824
-_08048298: .4byte gPlayerPartyCount
-_0804829C: .4byte gEnemyPartyCount
-_080482A0: .4byte gTradeMonSpriteCoords
-_080482A4: .4byte gPlayerParty
-_080482A8: .4byte 0xfff40000
-_080482AC: .4byte sub_809D62C
-_080482B0: .4byte gEnemyParty
-_080482B4:
- bl LoadHeldItemIconGraphics
- ldr r0, _080482D0 @ =gUnknown_03004824
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x42
- adds r1, 0x34
- movs r2, 0
- bl CreateHeldItemIcons
- ldr r1, _080482D4 @ =gMain
- ldr r0, _080482D8 @ =0x0000043c
- adds r1, r0
- b _08048498
- .align 2, 0
-_080482D0: .4byte gUnknown_03004824
-_080482D4: .4byte gMain
-_080482D8: .4byte 0x0000043c
-_080482DC:
- ldr r0, _080482F4 @ =gUnknown_03004824
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x42
- adds r1, 0x34
- movs r2, 0x1
- bl CreateHeldItemIcons
- ldr r1, _080482F8 @ =gMain
- ldr r2, _080482FC @ =0x0000043c
- adds r1, r2
- b _08048498
- .align 2, 0
-_080482F4: .4byte gUnknown_03004824
-_080482F8: .4byte gMain
-_080482FC: .4byte 0x0000043c
-_08048300:
- bl sub_8047CE8
- ldr r1, _0804831C @ =gMain
- ldr r3, _08048320 @ =0x0000043c
- adds r1, r3
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, _08048324 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0xB4
- strb r2, [r0]
- b _080484C6
- .align 2, 0
-_0804831C: .4byte gMain
-_08048320: .4byte 0x0000043c
-_08048324: .4byte gUnknown_03004824
-_08048328:
- movs r0, 0x4
- movs r1, 0
- bl nullsub_5
- bl sub_804ABF8
- lsls r0, 24
- cmp r0, 0
- bne _0804833C
- b _080484C6
-_0804833C:
- ldr r1, _08048344 @ =gMain
- ldr r0, _08048348 @ =0x0000043c
- adds r1, r0
- b _08048498
- .align 2, 0
-_08048344: .4byte gMain
-_08048348: .4byte 0x0000043c
-_0804834C:
- bl sub_8047D58
- ldr r1, _08048358 @ =gMain
- ldr r2, _0804835C @ =0x0000043c
- adds r1, r2
- b _08048498
- .align 2, 0
-_08048358: .4byte gMain
-_0804835C: .4byte 0x0000043c
-_08048360:
- bl sub_8047E44
- ldr r0, _080483A4 @ =gSpriteTemplate_820C134
- ldr r2, _080483A8 @ =gTradeMonSpriteCoords
- ldrb r1, [r2]
- lsls r1, 19
- movs r3, 0x80
- lsls r3, 14
- adds r1, r3
- asrs r1, 16
- ldrb r2, [r2, 0x1]
- lsls r2, 3
- movs r3, 0x2
- bl CreateSprite
- ldr r2, _080483AC @ =gUnknown_03004824
- ldr r1, [r2]
- adds r1, 0x40
- movs r3, 0
- strb r0, [r1]
- ldr r0, [r2]
- adds r0, 0x41
- strb r3, [r0]
- ldr r1, _080483B0 @ =gMain
- ldr r0, _080483B4 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0x6
- movs r1, 0
- bl nullsub_5
- b _080484C6
- .align 2, 0
-_080483A4: .4byte gSpriteTemplate_820C134
-_080483A8: .4byte gTradeMonSpriteCoords
-_080483AC: .4byte gUnknown_03004824
-_080483B0: .4byte gMain
-_080483B4: .4byte 0x0000043c
-_080483B8:
- movs r0, 0
- bl sub_804ACF4
- movs r0, 0
- bl sub_804A41C
- ldr r2, _080483F0 @ =gUnknown_03004824
- ldr r0, [r2]
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0, 0x1]
- bl sub_8048C70
- ldr r1, _080483F4 @ =gMain
- ldr r2, _080483F8 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0x7
- movs r1, 0
- bl nullsub_5
- ldr r0, _080483FC @ =0x000001b3
- bl PlayBGM
- b _080484C6
- .align 2, 0
-_080483F0: .4byte gUnknown_03004824
-_080483F4: .4byte gMain
-_080483F8: .4byte 0x0000043c
-_080483FC: .4byte 0x000001b3
-_08048400:
- movs r0, 0x1
- bl sub_804ACF4
- movs r0, 0x1
- bl sub_804A41C
- ldr r1, _08048428 @ =gMain
- ldr r3, _0804842C @ =0x0000043c
- adds r1, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08048418:
- movs r0, 0
- bl sub_8048B0C
- ldr r1, _08048428 @ =gMain
- ldr r0, _0804842C @ =0x0000043c
- adds r1, r0
- b _08048498
- .align 2, 0
-_08048428: .4byte gMain
-_0804842C: .4byte 0x0000043c
-_08048430:
- movs r0, 0x1
- bl sub_8048B0C
- ldr r1, _08048440 @ =gMain
- ldr r2, _08048444 @ =0x0000043c
- adds r1, r2
- b _08048498
- .align 2, 0
-_08048440: .4byte gMain
-_08048444: .4byte 0x0000043c
-_08048448:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08048492
-_0804845A:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0804846C @ =0x0000043c
- adds r1, r3, r0
- b _08048498
- .align 2, 0
-_0804846C: .4byte 0x0000043c
-_08048470:
- movs r0, 0
- bl sub_804AE3C
- ldr r1, _08048480 @ =gMain
- ldr r2, _08048484 @ =0x0000043c
- adds r1, r2
- b _08048498
- .align 2, 0
-_08048480: .4byte gMain
-_08048484: .4byte 0x0000043c
-_08048488:
- movs r0, 0x1
- bl sub_804AE3C
- bl sub_804AF10
-_08048492:
- ldr r1, _080484A0 @ =gMain
- ldr r3, _080484A4 @ =0x0000043c
- adds r1, r3
-_08048498:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080484C6
- .align 2, 0
-_080484A0: .4byte gMain
-_080484A4: .4byte 0x0000043c
-_080484A8:
- ldr r0, _080484E4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080484C6
- ldr r0, _080484E8 @ =sub_80494D8
- str r0, [r3]
- ldr r0, _080484EC @ =sub_8048AB4
- bl SetMainCallback2
- ldr r0, _080484F0 @ =gUnknown_03000508
- strb r4, [r0]
-_080484C6:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080484E4: .4byte gPaletteFade
-_080484E8: .4byte sub_80494D8
-_080484EC: .4byte sub_8048AB4
-_080484F0: .4byte gUnknown_03000508
- thumb_func_end sub_8047EC0
-
- thumb_func_start sub_80484F4
-sub_80484F4: @ 80484F4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- ldr r1, _08048518 @ =gMain
- ldr r2, _0804851C @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x15
- bls _0804850C
- b _080489CA
-_0804850C:
- lsls r0, 2
- ldr r1, _08048520 @ =_08048524
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08048518: .4byte gMain
-_0804851C: .4byte 0x0000043c
-_08048520: .4byte _08048524
- .align 2, 0
-_08048524:
- .4byte _0804857C
- .4byte _0804865C
- .4byte _08048668
- .4byte _08048674
- .4byte _08048680
- .4byte _08048694
- .4byte _080486A0
- .4byte _080487E8
- .4byte _08048810
- .4byte _08048834
- .4byte _0804885C
- .4byte _08048880
- .4byte _08048894
- .4byte _080489CA
- .4byte _080489CA
- .4byte _08048914
- .4byte _0804891C
- .4byte _08048950
- .4byte _08048970
- .4byte _08048988
- .4byte _08048994
- .4byte _080489B0
-_0804857C:
- ldr r5, _08048630 @ =gUnknown_03004824
- ldr r6, _08048634 @ =0x02017000
- str r6, [r5]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r0, [r5]
- adds r0, 0xC8
- ldr r1, _08048638 @ =0x06002800
- bl sub_804A964
- ldr r0, _0804863C @ =sub_80489F4
- bl SetVBlankCallback
- ldr r0, _08048640 @ =gWindowConfig_81E6CE4
- bl InitMenuWindow
- ldr r4, _08048644 @ =gWindowConfig_81E6F84
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r0, [r5]
- adds r0, 0x4
- adds r1, r4, 0
- bl InitWindowFromConfig
- movs r0, 0x14
- bl SetTextWindowBaseTileNum
- ldr r1, [r5]
- adds r1, 0x7A
- movs r4, 0
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0x4
- bl LoadTextWindowGraphics
- bl MenuZeroFillScreen
- bl sub_809D51C
- ldr r0, [r5]
- adds r0, 0x75
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x7B
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x7C
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x80
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x81
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x86
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x87
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0xB4
- strb r4, [r0]
- ldr r0, _08048648 @ =gUnknown_03000508
- strb r4, [r0]
- ldr r1, _0804864C @ =gMain
- ldr r3, _08048650 @ =0x0000043c
- adds r1, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _08048654 @ =gUnknown_020296CC
- movs r5, 0xD8
- lsls r5, 7
- adds r6, r5
- adds r0, r1, 0
- adds r0, 0x30
- ldr r2, _08048658 @ =0xffffff00
-_08048622:
- str r6, [r0]
- adds r6, r2
- subs r0, 0x4
- cmp r0, r1
- bge _08048622
- b _080489CA
- .align 2, 0
-_08048630: .4byte gUnknown_03004824
-_08048634: .4byte 0x02017000
-_08048638: .4byte 0x06002800
-_0804863C: .4byte sub_80489F4
-_08048640: .4byte gWindowConfig_81E6CE4
-_08048644: .4byte gWindowConfig_81E6F84
-_08048648: .4byte gUnknown_03000508
-_0804864C: .4byte gMain
-_08048650: .4byte 0x0000043c
-_08048654: .4byte gUnknown_020296CC
-_08048658: .4byte 0xffffff00
-_0804865C:
- ldr r0, _08048664 @ =0x0000043c
- adds r1, r2, r0
- b _0804883E
- .align 2, 0
-_08048664: .4byte 0x0000043c
-_08048668:
- ldr r3, _08048670 @ =0x0000043c
- adds r1, r2, r3
- b _0804899E
- .align 2, 0
-_08048670: .4byte 0x0000043c
-_08048674:
- ldr r5, _0804867C @ =0x0000043c
- adds r1, r2, r5
- b _0804899E
- .align 2, 0
-_0804867C: .4byte 0x0000043c
-_08048680:
- bl CalculatePlayerPartyCount
- ldr r1, _0804868C @ =gMain
- ldr r0, _08048690 @ =0x0000043c
- adds r1, r0
- b _0804899E
- .align 2, 0
-_0804868C: .4byte gMain
-_08048690: .4byte 0x0000043c
-_08048694:
- ldr r3, _0804869C @ =0x0000043c
- adds r1, r2, r3
- b _0804899E
- .align 2, 0
-_0804869C: .4byte 0x0000043c
-_080486A0:
- bl CalculateEnemyPartyCount
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- ldr r4, _080487C0 @ =gUnknown_03004824
- ldr r0, [r4]
- ldr r1, _080487C4 @ =gPlayerPartyCount
- ldrb r1, [r1]
- adds r0, 0x42
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, _080487C8 @ =gEnemyPartyCount
- ldrb r1, [r1]
- adds r0, 0x43
- strb r1, [r0]
- movs r0, 0
- bl sub_804A41C
- movs r0, 0x1
- bl sub_804A41C
- movs r6, 0
- ldr r0, [r4]
- adds r0, 0x42
- ldrb r0, [r0]
- cmp r6, r0
- bge _0804873C
- mov r8, r4
- ldr r7, _080487CC @ =gTradeMonSpriteCoords
-_080486DE:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _080487D0 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- ldrb r2, [r7]
- lsls r2, 19
- movs r1, 0xE0
- lsls r1, 12
- adds r2, r1
- asrs r2, 16
- ldrb r3, [r7, 0x1]
- lsls r3, 19
- ldr r1, _080487D4 @ =0xfff40000
- adds r3, r1
- asrs r3, 16
- movs r1, 0x1
- str r1, [sp]
- str r0, [sp, 0x4]
- adds r0, r5, 0
- ldr r1, _080487D8 @ =sub_809D62C
- bl CreateMonIcon
- mov r2, r8
- ldr r1, [r2]
- adds r1, 0x34
- adds r1, r6
- strb r0, [r1]
- adds r7, 0x2
- adds r6, 0x1
- ldr r0, [r2]
- adds r0, 0x42
- ldrb r0, [r0]
- cmp r6, r0
- blt _080486DE
-_0804873C:
- movs r6, 0
- ldr r1, _080487C0 @ =gUnknown_03004824
- ldr r0, [r1]
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r6, r0
- bge _080487B0
- ldr r0, _080487CC @ =gTradeMonSpriteCoords
- mov r8, r1
- adds r7, r0, 0
- adds r7, 0xC
-_08048752:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _080487DC @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- ldrb r2, [r7]
- lsls r2, 19
- movs r3, 0xE0
- lsls r3, 12
- adds r2, r3
- asrs r2, 16
- ldrb r3, [r7, 0x1]
- lsls r3, 19
- ldr r1, _080487D4 @ =0xfff40000
- adds r3, r1
- asrs r3, 16
- movs r1, 0x1
- str r1, [sp]
- str r0, [sp, 0x4]
- adds r0, r5, 0
- ldr r1, _080487D8 @ =sub_809D62C
- bl CreateMonIcon
- mov r2, r8
- ldr r1, [r2]
- adds r1, 0x3A
- adds r1, r6
- strb r0, [r1]
- adds r7, 0x2
- adds r6, 0x1
- ldr r0, [r2]
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r6, r0
- blt _08048752
-_080487B0:
- movs r0, 0x2
- movs r1, 0
- bl nullsub_5
- ldr r1, _080487E0 @ =gMain
- ldr r3, _080487E4 @ =0x0000043c
- adds r1, r3
- b _0804899E
- .align 2, 0
-_080487C0: .4byte gUnknown_03004824
-_080487C4: .4byte gPlayerPartyCount
-_080487C8: .4byte gEnemyPartyCount
-_080487CC: .4byte gTradeMonSpriteCoords
-_080487D0: .4byte gPlayerParty
-_080487D4: .4byte 0xfff40000
-_080487D8: .4byte sub_809D62C
-_080487DC: .4byte gEnemyParty
-_080487E0: .4byte gMain
-_080487E4: .4byte 0x0000043c
-_080487E8:
- bl LoadHeldItemIconGraphics
- ldr r0, _08048804 @ =gUnknown_03004824
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x42
- adds r1, 0x34
- movs r2, 0
- bl CreateHeldItemIcons
- ldr r1, _08048808 @ =gMain
- ldr r5, _0804880C @ =0x0000043c
- adds r1, r5
- b _0804899E
- .align 2, 0
-_08048804: .4byte gUnknown_03004824
-_08048808: .4byte gMain
-_0804880C: .4byte 0x0000043c
-_08048810:
- ldr r0, _08048828 @ =gUnknown_03004824
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x42
- adds r1, 0x34
- movs r2, 0x1
- bl CreateHeldItemIcons
- ldr r1, _0804882C @ =gMain
- ldr r0, _08048830 @ =0x0000043c
- adds r1, r0
- b _0804899E
- .align 2, 0
-_08048828: .4byte gUnknown_03004824
-_0804882C: .4byte gMain
-_08048830: .4byte 0x0000043c
-_08048834:
- bl sub_8047CE8
- ldr r1, _08048850 @ =gMain
- ldr r2, _08048854 @ =0x0000043c
- adds r1, r2
-_0804883E:
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, _08048858 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0xB4
- strb r2, [r0]
- b _080489CA
- .align 2, 0
-_08048850: .4byte gMain
-_08048854: .4byte 0x0000043c
-_08048858: .4byte gUnknown_03004824
-_0804885C:
- movs r0, 0x4
- movs r1, 0
- bl nullsub_5
- bl sub_804ABF8
- lsls r0, 24
- cmp r0, 0
- bne _08048870
- b _080489CA
-_08048870:
- ldr r1, _08048878 @ =gMain
- ldr r3, _0804887C @ =0x0000043c
- adds r1, r3
- b _0804899E
- .align 2, 0
-_08048878: .4byte gMain
-_0804887C: .4byte 0x0000043c
-_08048880:
- bl sub_8047D58
- ldr r1, _0804888C @ =gMain
- ldr r5, _08048890 @ =0x0000043c
- adds r1, r5
- b _0804899E
- .align 2, 0
-_0804888C: .4byte gMain
-_08048890: .4byte 0x0000043c
-_08048894:
- bl sub_8047E44
- ldr r2, _080488AC @ =0x02018000
- ldr r0, _080488B0 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0x41
- ldrb r0, [r1]
- cmp r0, 0x5
- bhi _080488B4
- ldrb r0, [r2, 0x9]
- b _080488B8
- .align 2, 0
-_080488AC: .4byte 0x02018000
-_080488B0: .4byte gUnknown_03004824
-_080488B4:
- ldrb r0, [r2, 0x9]
- adds r0, 0x6
-_080488B8:
- strb r0, [r1]
- ldr r0, _08048900 @ =gSpriteTemplate_820C134
- ldr r3, _08048904 @ =gTradeMonSpriteCoords
- ldr r4, _08048908 @ =gUnknown_03004824
- ldr r1, [r4]
- adds r1, 0x41
- ldrb r2, [r1]
- lsls r2, 1
- adds r1, r2, r3
- ldrb r1, [r1]
- lsls r1, 19
- movs r5, 0x80
- lsls r5, 14
- adds r1, r5
- asrs r1, 16
- adds r3, 0x1
- adds r2, r3
- ldrb r2, [r2]
- lsls r2, 3
- movs r3, 0x2
- bl CreateSprite
- ldr r1, [r4]
- adds r1, 0x40
- strb r0, [r1]
- ldr r0, _0804890C @ =gMain
- ldr r1, _08048910 @ =0x0000043c
- adds r0, r1
- movs r1, 0xF
- strb r1, [r0]
- movs r0, 0x6
- movs r1, 0
- bl nullsub_5
- b _080489CA
- .align 2, 0
-_08048900: .4byte gSpriteTemplate_820C134
-_08048904: .4byte gTradeMonSpriteCoords
-_08048908: .4byte gUnknown_03004824
-_0804890C: .4byte gMain
-_08048910: .4byte 0x0000043c
-_08048914:
- movs r0, 0
- bl sub_8048B0C
- b _08048998
-_0804891C:
- movs r0, 0x1
- bl sub_8048B0C
- ldr r2, _08048944 @ =gUnknown_03004824
- ldr r0, [r2]
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0, 0x1]
- bl sub_8048C70
- movs r0, 0x7
- movs r1, 0
- bl nullsub_5
- ldr r1, _08048948 @ =gMain
- ldr r3, _0804894C @ =0x0000043c
- adds r1, r3
- b _0804899E
- .align 2, 0
-_08048944: .4byte gUnknown_03004824
-_08048948: .4byte gMain
-_0804894C: .4byte 0x0000043c
-_08048950:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _08048968 @ =gMain
- ldr r5, _0804896C @ =0x0000043c
- adds r1, r5
- b _0804899E
- .align 2, 0
-_08048968: .4byte gMain
-_0804896C: .4byte 0x0000043c
-_08048970:
- movs r1, 0x80
- lsls r1, 19
- movs r3, 0xFA
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- ldr r5, _08048984 @ =0x0000043c
- adds r1, r2, r5
- b _0804899E
- .align 2, 0
-_08048984: .4byte 0x0000043c
-_08048988:
- ldr r0, _08048990 @ =0x0000043c
- adds r1, r2, r0
- b _0804899E
- .align 2, 0
-_08048990: .4byte 0x0000043c
-_08048994:
- bl sub_804AF10
-_08048998:
- ldr r1, _080489A8 @ =gMain
- ldr r2, _080489AC @ =0x0000043c
- adds r1, r2
-_0804899E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080489CA
- .align 2, 0
-_080489A8: .4byte gMain
-_080489AC: .4byte 0x0000043c
-_080489B0:
- ldr r0, _080489E8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080489CA
- ldr r0, _080489EC @ =sub_8048AB4
- bl SetMainCallback2
- ldr r0, _080489F0 @ =gUnknown_03000508
- strb r4, [r0]
-_080489CA:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080489E8: .4byte gPaletteFade
-_080489EC: .4byte sub_8048AB4
-_080489F0: .4byte gUnknown_03000508
- thumb_func_end sub_80484F4
-
- thumb_func_start sub_80489F4
-sub_80489F4: @ 80489F4
- push {lr}
- ldr r0, _08048A10 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0xC8
- bl sub_804A940
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_08048A10: .4byte gUnknown_03004824
- thumb_func_end sub_80489F4
-
- thumb_func_start sub_8048A14
-sub_8048A14: @ 8048A14
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08048A4C @ =gUnknown_03004824
- ldr r1, [r4]
- adds r1, 0xB4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xF
- bls _08048A44
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0xA
- strb r1, [r0]
-_08048A44:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08048A4C: .4byte gUnknown_03004824
- thumb_func_end sub_8048A14
-
- thumb_func_start sub_8048A50
-sub_8048A50: @ 8048A50
- push {r4,lr}
- ldr r0, _08048A84 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08048A7E
- ldr r2, _08048A88 @ =gUnknown_020297D8
- ldr r4, _08048A8C @ =gUnknown_03004824
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x41
- ldrb r1, [r1]
- strb r1, [r2]
- adds r0, 0x8A
- ldrb r0, [r0]
- strb r0, [r2, 0x1]
- bl sub_800832C
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0xD
- strb r1, [r0]
-_08048A7E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08048A84: .4byte gPaletteFade
-_08048A88: .4byte gUnknown_020297D8
-_08048A8C: .4byte gUnknown_03004824
- thumb_func_end sub_8048A50
-
- thumb_func_start sub_8048A90
-sub_8048A90: @ 8048A90
- push {lr}
- ldr r0, _08048AA8 @ =gReceivedRemoteLinkPlayers
- ldrb r1, [r0]
- cmp r1, 0
- bne _08048AA4
- ldr r0, _08048AAC @ =gMain
- str r1, [r0]
- ldr r0, _08048AB0 @ =sub_804B41C
- bl SetMainCallback2
-_08048AA4:
- pop {r0}
- bx r0
- .align 2, 0
-_08048AA8: .4byte gReceivedRemoteLinkPlayers
-_08048AAC: .4byte gMain
-_08048AB0: .4byte sub_804B41C
- thumb_func_end sub_8048A90
-
- thumb_func_start sub_8048AB4
-sub_8048AB4: @ 8048AB4
- push {r4,lr}
- bl sub_8049DE0
- bl sub_804AB30
- movs r0, 0
- bl sub_8049ED4
- movs r0, 0x1
- bl sub_8049ED4
- ldr r4, _08048B04 @ =REG_BG2HOFS
- ldr r3, _08048B08 @ =gUnknown_03004824
- ldr r2, [r3]
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- adds r4, 0x4
- ldr r2, [r3]
- ldrb r0, [r2, 0x1]
- adds r1, r0, 0
- adds r1, 0xFF
- strb r1, [r2, 0x1]
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08048B04: .4byte REG_BG2HOFS
-_08048B08: .4byte gUnknown_03004824
- thumb_func_end sub_8048AB4
-
- thumb_func_start sub_8048B0C
-sub_8048B0C: @ 8048B0C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08048B1C
- cmp r0, 0x1
- beq _08048BD0
- b _08048C3A
-_08048B1C:
- ldr r5, _08048BA0 @ =gUnknown_08EA0348
- ldr r0, _08048BA4 @ =gTradeStripesBG2Tilemap
- mov r12, r0
- ldr r1, _08048BA8 @ =gUnknown_08EA02C8
- ldr r4, _08048BAC @ =gPlttBufferFaded
- ldr r3, _08048BB0 @ =gPlttBufferUnfaded
- movs r2, 0x2F
-_08048B2A:
- ldrh r0, [r1]
- strh r0, [r3]
- ldrh r0, [r1]
- strh r0, [r4]
- adds r1, 0x2
- adds r4, 0x2
- adds r3, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08048B2A
- adds r3, r5, 0
- movs r4, 0xC0
- lsls r4, 19
- movs r5, 0x94
- lsls r5, 5
- ldr r1, _08048BB4 @ =0x040000d4
- ldr r6, _08048BB8 @ =0x80000800
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_08048B54:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _08048B54
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0
- ldr r5, _08048BBC @ =0x000003ff
- ldr r4, _08048BC0 @ =gUnknown_03004824
- ldr r3, _08048BC4 @ =gUnknown_08EA15C8
-_08048B7A:
- ldr r0, [r4]
- lsls r1, r2, 1
- adds r0, 0xDA
- adds r0, r1
- ldrh r1, [r3]
- strh r1, [r0]
- adds r3, 0x2
- adds r2, 0x1
- cmp r2, r5
- ble _08048B7A
- ldr r1, _08048BC8 @ =0x06003000
- ldr r0, _08048BB4 @ =0x040000d4
- mov r2, r12
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _08048BCC @ =0x80000400
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _08048C3A
- .align 2, 0
-_08048BA0: .4byte gUnknown_08EA0348
-_08048BA4: .4byte gTradeStripesBG2Tilemap
-_08048BA8: .4byte gUnknown_08EA02C8
-_08048BAC: .4byte gPlttBufferFaded
-_08048BB0: .4byte gPlttBufferUnfaded
-_08048BB4: .4byte 0x040000d4
-_08048BB8: .4byte 0x80000800
-_08048BBC: .4byte 0x000003ff
-_08048BC0: .4byte gUnknown_03004824
-_08048BC4: .4byte gUnknown_08EA15C8
-_08048BC8: .4byte 0x06003000
-_08048BCC: .4byte 0x80000400
-_08048BD0:
- ldr r1, _08048C40 @ =gTradeStripesBG3Tilemap
- ldr r2, _08048C44 @ =0x06003800
- ldr r0, _08048C48 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _08048C4C @ =0x80000400
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- movs r0, 0
- bl sub_804A6DC
- movs r0, 0x1
- bl sub_804A6DC
- ldr r0, _08048C50 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0xC8
- bl sub_804A938
- ldr r2, _08048C54 @ =REG_BG0CNT
- ldrh r1, [r2]
- ldr r0, _08048C58 @ =0x0000fffc
- ands r0, r1
- strh r0, [r2]
- ldr r1, _08048C5C @ =REG_BG1CNT
- ldr r2, _08048C60 @ =0x00000501
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _08048C64 @ =0x00000602
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _08048C68 @ =0x00000703
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08048C6C @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- subs r0, 0xA
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
-_08048C3A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08048C40: .4byte gTradeStripesBG3Tilemap
-_08048C44: .4byte 0x06003800
-_08048C48: .4byte 0x040000d4
-_08048C4C: .4byte 0x80000400
-_08048C50: .4byte gUnknown_03004824
-_08048C54: .4byte REG_BG0CNT
-_08048C58: .4byte 0x0000fffc
-_08048C5C: .4byte REG_BG1CNT
-_08048C60: .4byte 0x00000501
-_08048C64: .4byte 0x00000602
-_08048C68: .4byte 0x00000703
-_08048C6C: .4byte REG_BG0HOFS
- thumb_func_end sub_8048B0C
-
- thumb_func_start sub_8048C70
-sub_8048C70: @ 8048C70
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r3, 0
- ldr r5, _08048CC0 @ =gUnknown_03004824
- mov r8, r5
- ldr r0, _08048CC4 @ =gSprites
- mov r12, r0
- movs r1, 0x5
- negs r1, r1
- mov r9, r1
- movs r4, 0x6
- movs r7, 0x1
- movs r6, 0
-_08048C8E:
- mov r1, r8
- ldr r0, [r1]
- adds r1, r0, 0
- adds r1, 0x42
- ldrb r1, [r1]
- cmp r3, r1
- bge _08048CC8
- adds r0, 0x34
- adds r0, r3
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r12
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r9
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0x44
- adds r0, r3
- strb r7, [r0]
- b _08048CCE
- .align 2, 0
-_08048CC0: .4byte gUnknown_03004824
-_08048CC4: .4byte gSprites
-_08048CC8:
- adds r0, 0x44
- adds r0, r3
- strb r6, [r0]
-_08048CCE:
- mov r1, r8
- ldr r0, [r1]
- adds r1, r0, 0
- adds r1, 0x43
- ldrb r1, [r1]
- cmp r3, r1
- bge _08048CFE
- adds r0, 0x3A
- adds r0, r3
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r12
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r9
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0x44
- adds r0, r4
- strb r7, [r0]
- b _08048D04
-_08048CFE:
- adds r0, 0x44
- adds r0, r4
- strb r6, [r0]
-_08048D04:
- adds r4, 0x1
- adds r3, 0x1
- cmp r3, 0x5
- ble _08048C8E
- ldr r0, [r5]
- adds r0, 0x50
- movs r1, 0x1
- strb r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8048C70
-
- thumb_func_start nullsub_5
-nullsub_5: @ 8048D20
- bx lr
- thumb_func_end nullsub_5
-
- thumb_func_start sub_8048D24
-sub_8048D24: @ 8048D24
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r3, 0
- cmp r3, r2
- bcs _08048D3E
-_08048D30:
- adds r0, r5, r3
- adds r1, r4, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, r2
- bcc _08048D30
-_08048D3E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8048D24
-
- thumb_func_start sub_8048D44
-sub_8048D44: @ 8048D44
- push {r4-r7,lr}
- sub sp, 0xC
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r6, _08048D90 @ =gUnknown_03004824
- ldr r0, [r6]
- adds r0, 0x75
- ldrb r5, [r0]
- adds r0, r5, 0
- movs r1, 0x64
- bl __udivsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x64
- bl __umodsi3
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl SetLinkDebugValues
- ldr r0, [r6]
- adds r0, 0x75
- ldrb r0, [r0]
- cmp r0, 0x10
- bls _08048D86
- b _0804907C
-_08048D86:
- lsls r0, 2
- ldr r1, _08048D94 @ =_08048D98
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08048D90: .4byte gUnknown_03004824
-_08048D94: .4byte _08048D98
- .align 2, 0
-_08048D98:
- .4byte _08048DDC
- .4byte _08048DF8
- .4byte _08048E28
- .4byte _08048E3C
- .4byte _08048E74
- .4byte _08048E90
- .4byte _08048EA4
- .4byte _08048EDC
- .4byte _08048EF8
- .4byte _08048F0C
- .4byte _08048F44
- .4byte _08048F60
- .4byte _08048F74
- .4byte _08048FAC
- .4byte _08048FC8
- .4byte _08048FDC
- .4byte _08049018
-_08048DDC:
- ldr r0, _08048DEC @ =gBlockSendBuffer
- ldr r1, _08048DF0 @ =gPlayerParty
- movs r2, 0xC8
- bl sub_8048D24
- ldr r0, _08048DF4 @ =gUnknown_03004824
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048DEC: .4byte gBlockSendBuffer
-_08048DF0: .4byte gPlayerParty
-_08048DF4: .4byte gUnknown_03004824
-_08048DF8:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _08048E04
- b _0804907C
-_08048E04:
- bl GetBlockReceivedStatus
- lsls r0, 24
- cmp r0, 0
- bne _08048E18
- ldr r0, _08048E14 @ =gUnknown_03004824
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048E14: .4byte gUnknown_03004824
-_08048E18:
- bl ResetBlockReceivedFlags
- ldr r0, _08048E24 @ =gUnknown_03004824
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048E24: .4byte gUnknown_03004824
-_08048E28:
- cmp r7, 0
- bne _08048E32
- movs r0, 0x1
- bl sub_8007E9C
-_08048E32:
- ldr r0, _08048E38 @ =gUnknown_03004824
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048E38: .4byte gUnknown_03004824
-_08048E3C:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08048E4A
- b _0804907C
-_08048E4A:
- ldr r0, _08048E68 @ =gEnemyParty
- movs r2, 0x1
- adds r1, r7, 0
- eors r1, r2
- lsls r1, 8
- ldr r2, _08048E6C @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xC8
- bl sub_8048D24
- bl ResetBlockReceivedFlags
- ldr r0, _08048E70 @ =gUnknown_03004824
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048E68: .4byte gEnemyParty
-_08048E6C: .4byte gBlockRecvBuffer
-_08048E70: .4byte gUnknown_03004824
-_08048E74:
- ldr r0, _08048E84 @ =gBlockSendBuffer
- ldr r1, _08048E88 @ =gPlayerParty + 2 * 0x64
- movs r2, 0xC8
- bl sub_8048D24
- ldr r0, _08048E8C @ =gUnknown_03004824
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048E84: .4byte gBlockSendBuffer
-_08048E88: .4byte gPlayerParty + 2 * 0x64
-_08048E8C: .4byte gUnknown_03004824
-_08048E90:
- cmp r7, 0
- bne _08048E9A
- movs r0, 0x1
- bl sub_8007E9C
-_08048E9A:
- ldr r0, _08048EA0 @ =gUnknown_03004824
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048EA0: .4byte gUnknown_03004824
-_08048EA4:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08048EB2
- b _0804907C
-_08048EB2:
- ldr r0, _08048ED0 @ =gEnemyParty + 2 * 0x64
- movs r2, 0x1
- adds r1, r7, 0
- eors r1, r2
- lsls r1, 8
- ldr r2, _08048ED4 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xC8
- bl sub_8048D24
- bl ResetBlockReceivedFlags
- ldr r0, _08048ED8 @ =gUnknown_03004824
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048ED0: .4byte gEnemyParty + 2 * 0x64
-_08048ED4: .4byte gBlockRecvBuffer
-_08048ED8: .4byte gUnknown_03004824
-_08048EDC:
- ldr r0, _08048EEC @ =gBlockSendBuffer
- ldr r1, _08048EF0 @ =gPlayerParty + 4 * 0x64
- movs r2, 0xC8
- bl sub_8048D24
- ldr r0, _08048EF4 @ =gUnknown_03004824
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048EEC: .4byte gBlockSendBuffer
-_08048EF0: .4byte gPlayerParty + 4 * 0x64
-_08048EF4: .4byte gUnknown_03004824
-_08048EF8:
- cmp r7, 0
- bne _08048F02
- movs r0, 0x1
- bl sub_8007E9C
-_08048F02:
- ldr r0, _08048F08 @ =gUnknown_03004824
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048F08: .4byte gUnknown_03004824
-_08048F0C:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08048F1A
- b _0804907C
-_08048F1A:
- ldr r0, _08048F38 @ =gEnemyParty + 4 * 0x64
- movs r2, 0x1
- adds r1, r7, 0
- eors r1, r2
- lsls r1, 8
- ldr r2, _08048F3C @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xC8
- bl sub_8048D24
- bl ResetBlockReceivedFlags
- ldr r0, _08048F40 @ =gUnknown_03004824
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048F38: .4byte gEnemyParty + 4 * 0x64
-_08048F3C: .4byte gBlockRecvBuffer
-_08048F40: .4byte gUnknown_03004824
-_08048F44:
- ldr r0, _08048F54 @ =gBlockSendBuffer
- ldr r1, _08048F58 @ =gSaveBlock1 + 0x2B4C
- movs r2, 0xDC
- bl sub_8048D24
- ldr r0, _08048F5C @ =gUnknown_03004824
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048F54: .4byte gBlockSendBuffer
-_08048F58: .4byte gSaveBlock1 + 0x2B4C
-_08048F5C: .4byte gUnknown_03004824
-_08048F60:
- cmp r7, 0
- bne _08048F6A
- movs r0, 0x3
- bl sub_8007E9C
-_08048F6A:
- ldr r0, _08048F70 @ =gUnknown_03004824
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048F70: .4byte gUnknown_03004824
-_08048F74:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08048F82
- b _0804907C
-_08048F82:
- ldr r0, _08048FA0 @ =gUnknown_02029700
- movs r2, 0x1
- adds r1, r7, 0
- eors r1, r2
- lsls r1, 8
- ldr r2, _08048FA4 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xD8
- bl sub_8048D24
- bl ResetBlockReceivedFlags
- ldr r0, _08048FA8 @ =gUnknown_03004824
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048FA0: .4byte gUnknown_02029700
-_08048FA4: .4byte gBlockRecvBuffer
-_08048FA8: .4byte gUnknown_03004824
-_08048FAC:
- ldr r0, _08048FBC @ =gBlockSendBuffer
- ldr r1, _08048FC0 @ =gSaveBlock1 + 0x3110
- movs r2, 0xB
- bl sub_8048D24
- ldr r0, _08048FC4 @ =gUnknown_03004824
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048FBC: .4byte gBlockSendBuffer
-_08048FC0: .4byte gSaveBlock1 + 0x3110
-_08048FC4: .4byte gUnknown_03004824
-_08048FC8:
- cmp r7, 0
- bne _08048FD2
- movs r0, 0x4
- bl sub_8007E9C
-_08048FD2:
- ldr r0, _08048FD8 @ =gUnknown_03004824
- ldr r1, [r0]
- b _08049006
- .align 2, 0
-_08048FD8: .4byte gUnknown_03004824
-_08048FDC:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0804907C
- ldr r4, _08049010 @ =gUnknown_03004824
- ldr r0, [r4]
- adds r0, 0xB5
- movs r2, 0x1
- adds r1, r7, 0
- eors r1, r2
- lsls r1, 8
- ldr r2, _08049014 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xB
- bl sub_8048D24
- bl ResetBlockReceivedFlags
- ldr r1, [r4]
-_08049006:
- adds r1, 0x75
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0804907C
- .align 2, 0
-_08049010: .4byte gUnknown_03004824
-_08049014: .4byte gBlockRecvBuffer
-_08049018:
- ldr r4, _0804906C @ =gEnemyParty
- ldr r6, _08049070 @ =0x0000012f
- movs r5, 0x5
-_0804901E:
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _0804905E
- cmp r0, r6
- bne _0804905E
- adds r0, r4, 0
- movs r1, 0x3
- bl GetMonData
- cmp r0, 0x1
- beq _0804905E
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- mov r0, sp
- ldr r1, _08049074 @ =gUnknown_0820C3B0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _0804905E
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, _08049078 @ =gSpeciesNames + 0xD05
- bl SetMonData
-_0804905E:
- adds r4, 0x64
- subs r5, 0x1
- cmp r5, 0
- bge _0804901E
- movs r0, 0x1
- b _0804907E
- .align 2, 0
-_0804906C: .4byte gEnemyParty
-_08049070: .4byte 0x0000012f
-_08049074: .4byte gUnknown_0820C3B0
-_08049078: .4byte gSpeciesNames + 0xD05
-_0804907C:
- movs r0, 0
-_0804907E:
- add sp, 0xC
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8048D44
-
- thumb_func_start sub_8049088
-sub_8049088: @ 8049088
- push {lr}
- sub sp, 0x1C
- ldr r1, _080490B0 @ =gTradeText_TradeOkayPrompt
- mov r0, sp
- bl StringCopy
- ldr r0, _080490B4 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x7E
- ldrh r1, [r0]
- lsls r1, 5
- ldr r0, _080490B8 @ =0x06010000
- adds r1, r0
- mov r0, sp
- movs r2, 0x14
- bl sub_804ACD8
- add sp, 0x1C
- pop {r0}
- bx r0
- .align 2, 0
-_080490B0: .4byte gTradeText_TradeOkayPrompt
-_080490B4: .4byte gUnknown_03004824
-_080490B8: .4byte 0x06010000
- thumb_func_end sub_8049088
-
- thumb_func_start sub_80490BC
-sub_80490BC: @ 80490BC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- movs r3, 0x1
- adds r0, r4, 0
- ands r0, r3
- cmp r0, 0
- beq _08049148
- ldr r1, _080490EC @ =gBlockRecvBuffer
- lsls r0, r2, 8
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _080490F0 @ =0x0000bbbb
- cmp r1, r0
- beq _08049128
- cmp r1, r0
- bgt _080490F8
- ldr r0, _080490F4 @ =0x0000aabb
- cmp r1, r0
- beq _08049118
- b _08049142
- .align 2, 0
-_080490EC: .4byte gBlockRecvBuffer
-_080490F0: .4byte 0x0000bbbb
-_080490F4: .4byte 0x0000aabb
-_080490F8:
- ldr r0, _0804910C @ =0x0000bbcc
- cmp r1, r0
- beq _08049138
- ldr r0, _08049110 @ =0x0000eeaa
- cmp r1, r0
- bne _08049142
- ldr r0, _08049114 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x84
- b _0804913E
- .align 2, 0
-_0804910C: .4byte 0x0000bbcc
-_08049110: .4byte 0x0000eeaa
-_08049114: .4byte gUnknown_03004824
-_08049118:
- ldr r0, _08049124 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x84
- strb r3, [r0]
- b _08049142
- .align 2, 0
-_08049124: .4byte gUnknown_03004824
-_08049128:
- ldr r0, _08049134 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x86
- strb r3, [r0]
- b _08049142
- .align 2, 0
-_08049134: .4byte gUnknown_03004824
-_08049138:
- ldr r0, _08049170 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x86
-_0804913E:
- movs r1, 0x2
- strb r1, [r0]
-_08049142:
- movs r0, 0
- bl ResetBlockReceivedFlag
-_08049148:
- movs r2, 0x2
- adds r0, r4, 0
- ands r0, r2
- cmp r0, 0
- beq _080491DA
- ldr r3, _08049174 @ =gBlockRecvBuffer
- movs r1, 0x80
- lsls r1, 1
- adds r0, r3, r1
- ldrh r1, [r0]
- ldr r0, _08049178 @ =0x0000bbbb
- cmp r1, r0
- beq _080491BC
- cmp r1, r0
- bgt _08049180
- ldr r0, _0804917C @ =0x0000aabb
- cmp r1, r0
- beq _080491A0
- b _080491D4
- .align 2, 0
-_08049170: .4byte gUnknown_03004824
-_08049174: .4byte gBlockRecvBuffer
-_08049178: .4byte 0x0000bbbb
-_0804917C: .4byte 0x0000aabb
-_08049180:
- ldr r0, _08049194 @ =0x0000bbcc
- cmp r1, r0
- beq _080491CC
- ldr r0, _08049198 @ =0x0000eeaa
- cmp r1, r0
- bne _080491D4
- ldr r0, _0804919C @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x85
- b _080491D2
- .align 2, 0
-_08049194: .4byte 0x0000bbcc
-_08049198: .4byte 0x0000eeaa
-_0804919C: .4byte gUnknown_03004824
-_080491A0:
- ldr r2, _080491B8 @ =gUnknown_03004824
- ldr r1, [r2]
- movs r4, 0x81
- lsls r4, 1
- adds r0, r3, r4
- ldrb r0, [r0]
- adds r0, 0x6
- adds r1, 0x8A
- strb r0, [r1]
- ldr r0, [r2]
- adds r0, 0x85
- b _080491C2
- .align 2, 0
-_080491B8: .4byte gUnknown_03004824
-_080491BC:
- ldr r0, _080491C8 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x87
-_080491C2:
- movs r1, 0x1
- strb r1, [r0]
- b _080491D4
- .align 2, 0
-_080491C8: .4byte gUnknown_03004824
-_080491CC:
- ldr r0, _080491E0 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x87
-_080491D2:
- strb r2, [r0]
-_080491D4:
- movs r0, 0x1
- bl ResetBlockReceivedFlag
-_080491DA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080491E0: .4byte gUnknown_03004824
- thumb_func_end sub_80490BC
-
- thumb_func_start sub_80491E4
-sub_80491E4: @ 80491E4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r1, 24
- lsrs r5, r1, 24
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- beq _080492BE
- ldr r2, _08049210 @ =gBlockRecvBuffer
- ldrh r1, [r2]
- ldr r0, _08049214 @ =0x0000ddee
- cmp r1, r0
- beq _080492A8
- cmp r1, r0
- bgt _08049220
- ldr r0, _08049218 @ =0x0000ccdd
- cmp r1, r0
- beq _08049288
- ldr r0, _0804921C @ =0x0000dddd
- cmp r1, r0
- beq _0804925C
- b _080492B8
- .align 2, 0
-_08049210: .4byte gBlockRecvBuffer
-_08049214: .4byte 0x0000ddee
-_08049218: .4byte 0x0000ccdd
-_0804921C: .4byte 0x0000dddd
-_08049220:
- ldr r0, _08049230 @ =0x0000eebb
- cmp r1, r0
- beq _08049234
- adds r0, 0x11
- cmp r1, r0
- beq _08049258
- b _080492B8
- .align 2, 0
-_08049230: .4byte 0x0000eebb
-_08049234:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x4
- bl sub_804AA0C
- ldr r0, _08049254 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x7B
- movs r1, 0xB
- b _080492B6
- .align 2, 0
-_08049254: .4byte gUnknown_03004824
-_08049258:
- movs r0, 0x5
- b _080492AA
-_0804925C:
- ldr r4, _08049284 @ =gUnknown_03004824
- ldr r1, [r4]
- ldrb r0, [r2, 0x2]
- adds r0, 0x6
- adds r1, 0x8A
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x41
- ldrb r0, [r0]
- bl sub_8049E9C
- ldr r0, [r4]
- adds r0, 0x8A
- ldrb r0, [r0]
- bl sub_8049E9C
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0x7
- b _080492B6
- .align 2, 0
-_08049284: .4byte gUnknown_03004824
-_08049288:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _080492A4 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x7B
- movs r1, 0xA
- b _080492B6
- .align 2, 0
-_080492A4: .4byte gUnknown_03004824
-_080492A8:
- movs r0, 0x1
-_080492AA:
- bl sub_804AA0C
- ldr r0, _080492D4 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x7B
- movs r1, 0x8
-_080492B6:
- strb r1, [r0]
-_080492B8:
- movs r0, 0
- bl ResetBlockReceivedFlag
-_080492BE:
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- beq _080492CC
- movs r0, 0x1
- bl ResetBlockReceivedFlag
-_080492CC:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080492D4: .4byte gUnknown_03004824
- thumb_func_end sub_80491E4
-
- thumb_func_start sub_80492D8
-sub_80492D8: @ 80492D8
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _08049334 @ =gUnknown_03004824
- ldr r2, [r6]
- adds r1, r2, 0
- adds r1, 0x84
- ldrb r0, [r1]
- cmp r0, 0
- bne _080492EC
- b _08049420
-_080492EC:
- adds r0, r2, 0
- adds r0, 0x85
- ldrb r0, [r0]
- cmp r0, 0
- bne _080492F8
- b _08049420
-_080492F8:
- ldrh r1, [r1]
- ldr r0, _08049338 @ =0x00000101
- cmp r1, r0
- bne _08049340
- adds r1, r2, 0
- adds r1, 0x7B
- movs r0, 0x6
- strb r0, [r1]
- ldr r2, [r6]
- adds r1, r2, 0
- adds r1, 0x8C
- movs r4, 0
- ldr r0, _0804933C @ =0x0000dddd
- strh r0, [r1]
- adds r0, r2, 0
- adds r0, 0x41
- ldrb r1, [r0]
- adds r0, 0x4D
- strh r1, [r0]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- ldr r0, [r6]
- adds r2, r0, 0
- adds r2, 0x85
- strb r4, [r2]
- adds r0, 0x84
- strb r4, [r0]
- b _08049420
- .align 2, 0
-_08049334: .4byte gUnknown_03004824
-_08049338: .4byte 0x00000101
-_0804933C: .4byte 0x0000dddd
-_08049340:
- ldr r0, _08049388 @ =0x00000201
- cmp r1, r0
- bne _08049390
- movs r0, 0x1
- bl sub_804AA0C
- ldr r1, [r6]
- adds r2, r1, 0
- adds r2, 0x8C
- movs r4, 0
- movs r3, 0
- ldr r0, _0804938C @ =0x0000eecc
- strh r0, [r2]
- adds r1, 0x8E
- strh r3, [r1]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x87
- strb r4, [r1]
- adds r0, 0x86
- strb r4, [r0]
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x85
- strb r4, [r1]
- adds r0, 0x84
- strb r4, [r0]
- ldr r0, [r6]
- adds r0, 0x7B
- movs r1, 0x8
- b _0804941E
- .align 2, 0
-_08049388: .4byte 0x00000201
-_0804938C: .4byte 0x0000eecc
-_08049390:
- movs r0, 0x81
- lsls r0, 1
- cmp r1, r0
- bne _080493DC
- movs r0, 0x5
- bl sub_804AA0C
- ldr r1, [r6]
- adds r2, r1, 0
- adds r2, 0x8C
- movs r4, 0
- movs r3, 0
- ldr r0, _080493D8 @ =0x0000ddee
- strh r0, [r2]
- adds r1, 0x8E
- strh r3, [r1]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x87
- strb r4, [r1]
- adds r0, 0x86
- strb r4, [r0]
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x85
- strb r4, [r1]
- adds r0, 0x84
- strb r4, [r0]
- ldr r0, [r6]
- adds r0, 0x7B
- movs r1, 0x8
- b _0804941E
- .align 2, 0
-_080493D8: .4byte 0x0000ddee
-_080493DC:
- ldr r0, _080494C0 @ =0x00000202
- cmp r1, r0
- bne _08049420
- adds r1, r2, 0
- adds r1, 0x8C
- movs r5, 0
- movs r4, 0
- ldr r0, _080494C4 @ =0x0000eebb
- strh r0, [r1]
- adds r0, r2, 0
- adds r0, 0x8E
- strh r4, [r0]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x85
- strb r5, [r1]
- adds r0, 0x84
- strb r5, [r0]
- ldr r0, [r6]
- adds r0, 0x7B
- movs r1, 0xB
-_0804941E:
- strb r1, [r0]
-_08049420:
- ldr r5, _080494C8 @ =gUnknown_03004824
- ldr r3, [r5]
- adds r1, r3, 0
- adds r1, 0x86
- ldrb r0, [r1]
- cmp r0, 0
- beq _080494B8
- adds r0, r3, 0
- adds r0, 0x87
- ldrb r0, [r0]
- cmp r0, 0
- beq _080494B8
- ldrh r1, [r1]
- ldr r0, _080494CC @ =0x00000101
- cmp r1, r0
- bne _0804946E
- adds r1, r3, 0
- adds r1, 0x8C
- movs r4, 0
- movs r2, 0
- ldr r0, _080494D0 @ =0x0000ccdd
- strh r0, [r1]
- adds r0, r3, 0
- adds r0, 0x8E
- strh r2, [r0]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- ldr r0, [r5]
- adds r0, 0x86
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x87
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x7B
- movs r1, 0x9
- strb r1, [r0]
-_0804946E:
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x86
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08049484
- adds r0, r1, 0
- adds r0, 0x87
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080494B8
-_08049484:
- movs r0, 0x1
- bl sub_804AA0C
- ldr r1, [r5]
- adds r2, r1, 0
- adds r2, 0x8C
- movs r4, 0
- movs r3, 0
- ldr r0, _080494D4 @ =0x0000ddee
- strh r0, [r2]
- adds r1, 0x8E
- strh r3, [r1]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- ldr r0, [r5]
- adds r0, 0x86
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x87
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x7B
- movs r1, 0x8
- strb r1, [r0]
-_080494B8:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080494C0: .4byte 0x00000202
-_080494C4: .4byte 0x0000eebb
-_080494C8: .4byte gUnknown_03004824
-_080494CC: .4byte 0x00000101
-_080494D0: .4byte 0x0000ccdd
-_080494D4: .4byte 0x0000ddee
- thumb_func_end sub_80492D8
-
- thumb_func_start sub_80494D8
-sub_80494D8: @ 80494D8
- push {r4,lr}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r4, r0, 24
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08049504
- cmp r4, 0
- bne _080494FA
- movs r0, 0
- bl sub_80490BC
- b _08049500
-_080494FA:
- adds r0, r4, 0
- bl sub_80491E4
-_08049500:
- bl ResetBlockReceivedFlags
-_08049504:
- cmp r4, 0
- bne _0804950C
- bl sub_80492D8
-_0804950C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80494D8
-
- thumb_func_start sub_8049514
-sub_8049514: @ 8049514
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r6, 0
- movs r5, 0
- ldr r2, _08049548 @ =gUnknown_03004824
- ldr r3, [r2]
- ldr r4, _0804954C @ =gTradeNextSelectedMonTable
- lsls r2, r1, 1
- adds r2, r1
- lsls r2, 1
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r3, 0x44
- adds r2, r1
- adds r2, r4
-_0804953A:
- ldrb r1, [r2]
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08049550
- adds r6, r1, 0
- b _08049558
- .align 2, 0
-_08049548: .4byte gUnknown_03004824
-_0804954C: .4byte gTradeNextSelectedMonTable
-_08049550:
- adds r2, 0x1
- adds r5, 0x1
- cmp r5, 0x5
- ble _0804953A
-_08049558:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8049514
-
- thumb_func_start sub_8049560
-sub_8049560: @ 8049560
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r7]
- bl sub_8049514
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xC
- bne _080495B8
- ldr r5, _080495B0 @ =gUnknown_03004824
- ldr r0, [r5]
- adds r0, 0x40
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080495B4 @ =gSprites
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r2, [r5]
- adds r2, 0x40
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xE0
- strh r1, [r0, 0x20]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xA0
- strh r1, [r0, 0x22]
- b _08049600
- .align 2, 0
-_080495B0: .4byte gUnknown_03004824
-_080495B4: .4byte gSprites
-_080495B8:
- ldr r4, _08049614 @ =gUnknown_03004824
- ldr r0, [r4]
- adds r0, 0x40
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08049618 @ =gSprites
- adds r0, r5
- movs r1, 0
- bl StartSpriteAnim
- ldr r4, [r4]
- adds r4, 0x40
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldr r2, _0804961C @ =gTradeMonSpriteCoords
- lsls r3, r6, 1
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, 0x20
- strh r0, [r1, 0x20]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r2, 0x1
- adds r3, r2
- ldrb r0, [r3]
- lsls r0, 3
- strh r0, [r1, 0x22]
-_08049600:
- ldrb r0, [r7]
- cmp r0, r6
- beq _0804960C
- movs r0, 0x5
- bl PlaySE
-_0804960C:
- strb r6, [r7]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08049614: .4byte gUnknown_03004824
-_08049618: .4byte gSprites
-_0804961C: .4byte gTradeMonSpriteCoords
- thumb_func_end sub_8049560
-
- thumb_func_start sub_8049620
-sub_8049620: @ 8049620
- push {r4,lr}
- movs r0, 0
- bl sub_804AA0C
- ldr r4, _08049668 @ =gUnknown_03004824
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0x5
- strb r1, [r0]
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08049670
- ldr r2, [r4]
- adds r1, r2, 0
- adds r1, 0x8C
- ldr r0, _0804966C @ =0x0000aabb
- strh r0, [r1]
- adds r0, r2, 0
- adds r0, 0x41
- ldrb r1, [r0]
- adds r0, 0x4D
- strh r1, [r0]
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, 0x8C
- movs r2, 0x14
- bl SendBlock
- b _08049678
- .align 2, 0
-_08049668: .4byte gUnknown_03004824
-_0804966C: .4byte 0x0000aabb
-_08049670:
- ldr r0, [r4]
- adds r0, 0x84
- movs r1, 0x1
- strb r1, [r0]
-_08049678:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8049620
-
- thumb_func_start sub_8049680
-sub_8049680: @ 8049680
- push {r4,lr}
- sub sp, 0x8
- ldr r0, _080496A0 @ =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080496A8
- ldr r0, _080496A4 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x41
- movs r1, 0
- bl sub_8049560
- b _080496F4
- .align 2, 0
-_080496A0: .4byte gMain
-_080496A4: .4byte gUnknown_03004824
-_080496A8:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080496C4
- ldr r0, _080496C0 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x41
- movs r1, 0x1
- bl sub_8049560
- b _080496F4
- .align 2, 0
-_080496C0: .4byte gUnknown_03004824
-_080496C4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080496E0
- ldr r0, _080496DC @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x41
- movs r1, 0x2
- bl sub_8049560
- b _080496F4
- .align 2, 0
-_080496DC: .4byte gUnknown_03004824
-_080496E0:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080496F4
- ldr r0, _08049750 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x41
- movs r1, 0x3
- bl sub_8049560
-_080496F4:
- ldr r0, _08049754 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080497B6
- movs r0, 0x5
- bl PlaySE
- ldr r4, _08049750 @ =gUnknown_03004824
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x41
- ldrb r1, [r1]
- cmp r1, 0x5
- bhi _0804975C
- adds r0, 0x4
- movs r1, 0x13
- str r1, [sp]
- movs r1, 0x12
- movs r2, 0xE
- movs r3, 0x1C
- bl DrawTextWindow
- ldr r3, _08049758 @ =gUnknown_0820C320
- movs r0, 0x13
- movs r1, 0xF
- movs r2, 0x2
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x13
- movs r2, 0xF
- movs r3, 0x2
- bl InitMenu
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0x1
- strb r1, [r0]
- b _080497B6
- .align 2, 0
-_08049750: .4byte gUnknown_03004824
-_08049754: .4byte gMain
-_08049758: .4byte gUnknown_0820C320
-_0804975C:
- cmp r1, 0xB
- bhi _0804977A
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0x2
- strb r1, [r0]
- b _080497B6
-_0804977A:
- cmp r1, 0xC
- bne _080497B6
- adds r0, 0x4
- movs r1, 0x13
- str r1, [sp]
- movs r1, 0x18
- movs r2, 0xE
- movs r3, 0x1D
- bl DrawTextWindow
- movs r0, 0x18
- movs r1, 0xE
- movs r2, 0x4
- bl InitYesNoMenu
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0x4
- strb r1, [r0]
- ldr r0, _080497F4 @ =gUnknown_0820C14C
- ldr r0, [r0, 0x10]
- ldr r1, [r4]
- adds r1, 0x7E
- ldrh r1, [r1]
- lsls r1, 5
- ldr r2, _080497F8 @ =0x06010000
- adds r1, r2
- movs r2, 0x14
- bl sub_804ACD8
-_080497B6:
- ldr r0, _080497FC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080497EC
- movs r2, 0
- ldr r3, _08049800 @ =gUnknown_03004824
-_080497C8:
- ldr r0, [r3]
- lsls r1, r2, 1
- adds r0, 0x8C
- adds r0, r1
- strh r2, [r0]
- adds r2, 0x1
- cmp r2, 0x9
- ble _080497C8
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08049800 @ =gUnknown_03004824
- ldr r1, [r1]
- adds r1, 0x8C
- movs r2, 0x14
- bl SendBlock
-_080497EC:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080497F4: .4byte gUnknown_0820C14C
-_080497F8: .4byte 0x06010000
-_080497FC: .4byte gMain
-_08049800: .4byte gUnknown_03004824
- thumb_func_end sub_8049680
-
- thumb_func_start sub_8049804
-sub_8049804: @ 8049804
- push {lr}
- bl HandleDestroyMenuCursors
- bl sub_804A80C
- ldr r3, _08049850 @ =gUnknown_03004824
- ldr r0, [r3]
- adds r0, 0x7B
- movs r1, 0
- strb r1, [r0]
- ldr r2, _08049854 @ =gSprites
- ldr r0, [r3]
- adds r0, 0x40
- 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]
- ldr r0, _08049858 @ =gUnknown_0820C14C
- ldr r0, [r0, 0x4]
- ldr r1, [r3]
- adds r1, 0x7E
- ldrh r1, [r1]
- lsls r1, 5
- ldr r2, _0804985C @ =0x06010000
- adds r1, r2
- movs r2, 0x14
- bl sub_804ACD8
- pop {r0}
- bx r0
- .align 2, 0
-_08049850: .4byte gUnknown_03004824
-_08049854: .4byte gSprites
-_08049858: .4byte gUnknown_0820C14C
-_0804985C: .4byte 0x06010000
- thumb_func_end sub_8049804
-
- thumb_func_start sub_8049860
-sub_8049860: @ 8049860
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0804987C @ =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08049880
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _08049890
- .align 2, 0
-_0804987C: .4byte gMain
-_08049880:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804989C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_08049890:
- bl MoveMenuCursor
- ldr r1, _080498D8 @ =gUnknown_03004824
- ldr r1, [r1]
- adds r1, 0x7C
- strb r0, [r1]
-_0804989C:
- ldr r0, _080498DC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08049938
- movs r0, 0x5
- bl PlaySE
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080498E0
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _080498D8 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x7B
- movs r1, 0x2
- strb r1, [r0]
- b _0804994A
- .align 2, 0
-_080498D8: .4byte gUnknown_03004824
-_080498DC: .4byte gMain
-_080498E0:
- ldr r4, _08049910 @ =gUnknown_03004824
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x51
- adds r1, r2, 0
- adds r1, 0x42
- ldrb r1, [r1]
- adds r2, 0x41
- ldrb r2, [r2]
- bl sub_80499F0
- lsls r0, 24
- cmp r0, 0
- bne _08049914
- movs r0, 0x3
- movs r1, 0x2
- bl sub_804AADC
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0x8
- strb r1, [r0]
- b _0804994A
- .align 2, 0
-_08049910: .4byte gUnknown_03004824
-_08049914:
- bl sub_8049620
- ldr r2, _08049934 @ =gSprites
- ldr r0, [r4]
- adds r0, 0x40
- 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]
- b _0804994A
- .align 2, 0
-_08049934: .4byte gSprites
-_08049938:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0804994A
- movs r0, 0x5
- bl PlaySE
- bl sub_8049804
-_0804994A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8049860
-
- thumb_func_start sub_8049954
-sub_8049954: @ 8049954
- push {lr}
- ldr r0, _08049978 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0804996A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08049974
-_0804996A:
- movs r0, 0x5
- bl PlaySE
- bl sub_8049804
-_08049974:
- pop {r0}
- bx r0
- .align 2, 0
-_08049978: .4byte gMain
- thumb_func_end sub_8049954
-
- thumb_func_start sub_804997C
-sub_804997C: @ 804997C
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080499B4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080499E0
- ldr r0, _080499B8 @ =gUnknown_03004824
- ldr r2, [r0]
- adds r3, r2, 0
- adds r3, 0x41
- ldrb r1, [r3]
- cmp r1, 0x5
- bhi _080499C4
- ldr r0, _080499BC @ =gPlayerParty
- ldrb r1, [r3]
- adds r2, 0x42
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _080499C0 @ =sub_80484F4
- movs r4, 0x4
- str r4, [sp]
- bl ShowPokemonSummaryScreen
- b _080499E0
- .align 2, 0
-_080499B4: .4byte gPaletteFade
-_080499B8: .4byte gUnknown_03004824
-_080499BC: .4byte gPlayerParty
-_080499C0: .4byte sub_80484F4
-_080499C4:
- ldr r0, _080499E8 @ =gEnemyParty
- subs r1, 0x6
- lsls r1, 24
- lsrs r1, 24
- adds r2, 0x43
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _080499EC @ =sub_80484F4
- movs r4, 0x4
- str r4, [sp]
- bl ShowPokemonSummaryScreen
-_080499E0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080499E8: .4byte gEnemyParty
-_080499EC: .4byte sub_80484F4
- thumb_func_end sub_804997C
-
- thumb_func_start sub_80499F0
-sub_80499F0: @ 80499F0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0
- movs r3, 0
- cmp r1, r4
- bge _08049A18
-_08049A04:
- cmp r2, r3
- beq _08049A12
- adds r0, r5, r3
- ldrb r0, [r0]
- adds r0, r1, r0
- lsls r0, 24
- lsrs r1, r0, 24
-_08049A12:
- adds r3, 0x1
- cmp r3, r4
- blt _08049A04
-_08049A18:
- adds r0, r1, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80499F0
-
- thumb_func_start sub_8049A20
-sub_8049A20: @ 8049A20
- push {r4,r5,lr}
- sub sp, 0xC
- movs r2, 0
- ldr r0, _08049A80 @ =gUnknown_03004824
- ldr r1, [r0]
- adds r3, r1, 0
- adds r3, 0x42
- adds r5, r0, 0
- ldrb r0, [r3]
- cmp r2, r0
- bge _08049A4C
- adds r4, r1, 0
- adds r4, 0x51
-_08049A3A:
- mov r1, sp
- adds r0, r1, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- ldrb r0, [r3]
- cmp r2, r0
- blt _08049A3A
-_08049A4C:
- adds r4, r5, 0
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x42
- ldrb r1, [r1]
- adds r0, 0x41
- ldrb r2, [r0]
- mov r0, sp
- bl sub_80499F0
- lsls r0, 24
- cmp r0, 0
- bne _08049A88
- movs r0, 0x3
- movs r1, 0x2
- bl sub_804AADC
- ldr r0, [r4]
- adds r0, 0x8C
- ldr r1, _08049A84 @ =0x0000bbcc
- strh r1, [r0]
- movs r0, 0xB4
- movs r1, 0
- bl sub_804AADC
- b _08049AB4
- .align 2, 0
-_08049A80: .4byte gUnknown_03004824
-_08049A84: .4byte 0x0000bbcc
-_08049A88:
- movs r0, 0x3
- movs r1, 0x1
- bl sub_804AADC
- ldr r0, [r5]
- adds r0, 0x8C
- ldr r1, _08049ABC @ =0x0000bbbb
- strh r1, [r0]
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _08049AB4
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r5]
- adds r1, 0x8C
- movs r2, 0x14
- bl SendBlock
-_08049AB4:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08049ABC: .4byte 0x0000bbbb
- thumb_func_end sub_8049A20
-
- thumb_func_start sub_8049AC0
-sub_8049AC0: @ 8049AC0
- push {r4,lr}
- ldr r0, _08049ADC @ =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08049AE0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _08049AF0
- .align 2, 0
-_08049ADC: .4byte gMain
-_08049AE0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08049AFC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_08049AF0:
- bl MoveMenuCursor
- ldr r1, _08049B20 @ =gUnknown_03004824
- ldr r1, [r1]
- adds r1, 0x7C
- strb r0, [r1]
-_08049AFC:
- ldr r0, _08049B24 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08049B64
- movs r0, 0x5
- bl PlaySE
- bl GetMenuCursorPos
- lsls r0, 24
- cmp r0, 0
- bne _08049B28
- bl sub_8049A20
- b _08049B56
- .align 2, 0
-_08049B20: .4byte gUnknown_03004824
-_08049B24: .4byte gMain
-_08049B28:
- movs r0, 0x3
- movs r1, 0x1
- bl sub_804AADC
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _08049B56
- ldr r4, _08049B5C @ =gUnknown_03004824
- ldr r0, [r4]
- adds r0, 0x8C
- ldr r1, _08049B60 @ =0x0000bbcc
- strh r1, [r0]
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, 0x8C
- movs r2, 0x14
- bl SendBlock
-_08049B56:
- ldr r0, _08049B5C @ =gUnknown_03004824
- ldr r0, [r0]
- b _08049BAA
- .align 2, 0
-_08049B5C: .4byte gUnknown_03004824
-_08049B60: .4byte 0x0000bbcc
-_08049B64:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08049BB0
- movs r0, 0x3
- movs r1, 0x1
- bl sub_804AADC
- bl GetMenuCursorPos
- lsls r0, 24
- cmp r0, 0
- bne _08049B8C
- movs r0, 0x1
- bl MoveMenuCursor
- ldr r1, _08049BB8 @ =gUnknown_03004824
- ldr r1, [r1]
- adds r1, 0x7C
- strb r0, [r1]
-_08049B8C:
- ldr r4, _08049BB8 @ =gUnknown_03004824
- ldr r0, [r4]
- adds r0, 0x8C
- ldr r1, _08049BBC @ =0x0000bbcc
- strh r1, [r0]
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, 0x8C
- movs r2, 0x14
- bl SendBlock
- ldr r0, [r4]
-_08049BAA:
- adds r0, 0x7B
- movs r1, 0x64
- strb r1, [r0]
-_08049BB0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08049BB8: .4byte gUnknown_03004824
-_08049BBC: .4byte 0x0000bbcc
- thumb_func_end sub_8049AC0
-
- thumb_func_start sub_8049BC0
-sub_8049BC0: @ 8049BC0
- push {r4,r5,lr}
- ldr r0, _08049BDC @ =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08049BE0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _08049BF0
- .align 2, 0
-_08049BDC: .4byte gMain
-_08049BE0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08049BFC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_08049BF0:
- bl MoveMenuCursor
- ldr r1, _08049C5C @ =gUnknown_03004824
- ldr r1, [r1]
- adds r1, 0x7C
- strb r0, [r1]
-_08049BFC:
- ldr r0, _08049C60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08049C72
- movs r0, 0x5
- bl PlaySE
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08049C6C
- movs r0, 0x4
- bl sub_804AA0C
- ldr r4, _08049C5C @ =gUnknown_03004824
- ldr r0, [r4]
- adds r2, r0, 0
- adds r2, 0x8C
- ldr r1, _08049C64 @ =0x0000eeaa
- strh r1, [r2]
- adds r0, 0x8E
- strh r5, [r0]
- movs r0, 0x5
- movs r1, 0
- bl sub_804AADC
- ldr r2, _08049C68 @ =gSprites
- ldr r0, [r4]
- adds r0, 0x40
- 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]
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0x64
- strb r1, [r0]
- b _08049C84
- .align 2, 0
-_08049C5C: .4byte gUnknown_03004824
-_08049C60: .4byte gMain
-_08049C64: .4byte 0x0000eeaa
-_08049C68: .4byte gSprites
-_08049C6C:
- bl sub_8049804
- b _08049C84
-_08049C72:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08049C84
- movs r0, 0x5
- bl PlaySE
- bl sub_8049804
-_08049C84:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8049BC0
-
- thumb_func_start sub_8049C8C
-sub_8049C8C: @ 8049C8C
- push {r4,lr}
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _08049CAE
- ldr r4, _08049CC0 @ =gUnknown_03004824
- ldr r0, [r4]
- adds r0, 0x41
- ldrb r0, [r0]
- bl sub_8049E9C
- ldr r0, [r4]
- adds r0, 0x8A
- ldrb r0, [r0]
- bl sub_8049E9C
-_08049CAE:
- ldr r0, _08049CC0 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x7B
- movs r1, 0x7
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08049CC0: .4byte gUnknown_03004824
- thumb_func_end sub_8049C8C
-
- thumb_func_start sub_8049CC4
-sub_8049CC4: @ 8049CC4
- push {r4,lr}
- ldr r4, _08049CE8 @ =gUnknown_03004824
- ldr r0, [r4]
- adds r0, 0x80
- ldrh r1, [r0]
- ldr r0, _08049CEC @ =0x00000505
- cmp r1, r0
- bne _08049CE0
- bl sub_8049088
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0xE
- strb r1, [r0]
-_08049CE0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08049CE8: .4byte gUnknown_03004824
-_08049CEC: .4byte 0x00000505
- thumb_func_end sub_8049CC4
-
- thumb_func_start DisplayMessageAndContinueTask
-DisplayMessageAndContinueTask: @ 8049CF0
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08049D40 @ =gUnknown_03004824
- ldr r1, [r4]
- adds r1, 0xB4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0xB4
- ldrb r0, [r0]
- cmp r0, 0x78
- bls _08049D36
- adds r0, r1, 0x4
- movs r1, 0x13
- str r1, [sp]
- movs r1, 0x18
- movs r2, 0xE
- movs r3, 0x1D
- bl DrawTextWindow
- movs r0, 0x18
- movs r1, 0xE
- movs r2, 0x4
- bl InitYesNoMenu
- ldr r0, [r4]
- adds r0, 0xB4
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x7B
- movs r1, 0x3
- strb r1, [r0]
-_08049D36:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08049D40: .4byte gUnknown_03004824
- thumb_func_end DisplayMessageAndContinueTask
-
- thumb_func_start sub_8049D44
-sub_8049D44: @ 8049D44
- push {lr}
- ldr r0, _08049D90 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08049D8A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_804A840
- movs r0, 0x1
- bl sub_804A840
- ldr r2, _08049D94 @ =gUnknown_03004824
- ldr r0, [r2]
- adds r0, 0x7B
- movs r1, 0
- strb r1, [r0]
- ldr r3, _08049D98 @ =gSprites
- ldr r0, [r2]
- adds r0, 0x40
- 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]
-_08049D8A:
- pop {r0}
- bx r0
- .align 2, 0
-_08049D90: .4byte gMain
-_08049D94: .4byte gUnknown_03004824
-_08049D98: .4byte gSprites
- thumb_func_end sub_8049D44
-
- thumb_func_start sub_8049D9C
-sub_8049D9C: @ 8049D9C
- push {lr}
- ldr r0, _08049DBC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08049DB8
- bl sub_800832C
- ldr r0, _08049DC0 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x7B
- movs r1, 0xC
- strb r1, [r0]
-_08049DB8:
- pop {r0}
- bx r0
- .align 2, 0
-_08049DBC: .4byte gPaletteFade
-_08049DC0: .4byte gUnknown_03004824
- thumb_func_end sub_8049D9C
-
- thumb_func_start sub_8049DC4
-sub_8049DC4: @ 8049DC4
- push {lr}
- ldr r0, _08049DD8 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08049DD4
- ldr r0, _08049DDC @ =sub_805465C
- bl SetMainCallback2
-_08049DD4:
- pop {r0}
- bx r0
- .align 2, 0
-_08049DD8: .4byte gReceivedRemoteLinkPlayers
-_08049DDC: .4byte sub_805465C
- thumb_func_end sub_8049DC4
-
- thumb_func_start sub_8049DE0
-sub_8049DE0: @ 8049DE0
- push {lr}
- ldr r0, _08049DF8 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0xF
- bhi _08049E98
- lsls r0, 2
- ldr r1, _08049DFC @ =_08049E00
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08049DF8: .4byte gUnknown_03004824
-_08049DFC: .4byte _08049E00
- .align 2, 0
-_08049E00:
- .4byte _08049E40
- .4byte _08049E46
- .4byte _08049E4C
- .4byte _08049E52
- .4byte _08049E58
- .4byte _08049E98
- .4byte _08049E5E
- .4byte _08049E64
- .4byte _08049E6A
- .4byte _08049E70
- .4byte _08049E76
- .4byte _08049E7C
- .4byte _08049E82
- .4byte _08049E88
- .4byte _08049E8E
- .4byte _08049E94
-_08049E40:
- bl sub_8049680
- b _08049E98
-_08049E46:
- bl sub_8049860
- b _08049E98
-_08049E4C:
- bl sub_804997C
- b _08049E98
-_08049E52:
- bl sub_8049AC0
- b _08049E98
-_08049E58:
- bl sub_8049BC0
- b _08049E98
-_08049E5E:
- bl sub_8049C8C
- b _08049E98
-_08049E64:
- bl sub_8049CC4
- b _08049E98
-_08049E6A:
- bl sub_8049D44
- b _08049E98
-_08049E70:
- bl sub_8048A14
- b _08049E98
-_08049E76:
- bl sub_8048A50
- b _08049E98
-_08049E7C:
- bl sub_8049D9C
- b _08049E98
-_08049E82:
- bl sub_8049DC4
- b _08049E98
-_08049E88:
- bl sub_8048A90
- b _08049E98
-_08049E8E:
- bl DisplayMessageAndContinueTask
- b _08049E98
-_08049E94:
- bl sub_8049954
-_08049E98:
- pop {r0}
- bx r0
- thumb_func_end sub_8049DE0
-
- thumb_func_start sub_8049E9C
-sub_8049E9C: @ 8049E9C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- movs r1, 0x6
- bl __udivsi3
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r3, _08049ED0 @ =gUnknown_03004824
- ldr r0, [r3]
- adds r0, 0x80
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _08049EC8
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x82
- adds r0, r2
- strb r4, [r0]
-_08049EC8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08049ED0: .4byte gUnknown_03004824
- thumb_func_end sub_8049E9C
-
- thumb_func_start sub_8049ED4
-sub_8049ED4: @ 8049ED4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x74
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _08049F24 @ =gUnknown_03004824
- ldr r5, [r0]
- adds r0, r5, 0
- adds r0, 0x82
- add r0, r10
- ldrb r0, [r0]
- movs r1, 0x1
- str r1, [sp, 0x6C]
- cmp r0, 0x5
- bhi _08049EFE
- movs r2, 0
- str r2, [sp, 0x6C]
-_08049EFE:
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r5, 0
- adds r0, 0x80
- mov r1, r10
- adds r3, r0, r1
- ldrb r0, [r3]
- cmp r0, 0x2
- bne _08049F1A
- b _0804A0AC
-_08049F1A:
- cmp r0, 0x2
- bgt _08049F28
- cmp r0, 0x1
- beq _08049F36
- b _0804A294
- .align 2, 0
-_08049F24: .4byte gUnknown_03004824
-_08049F28:
- cmp r0, 0x3
- bne _08049F2E
- b _0804A0E4
-_08049F2E:
- cmp r0, 0x4
- bne _08049F34
- b _0804A244
-_08049F34:
- b _0804A294
-_08049F36:
- movs r4, 0
- adds r0, r5, 0
- adds r0, 0x42
- add r0, r10
- ldr r7, _0804A094 @ =gSprites
- ldr r2, [sp, 0x6C]
- lsls r2, 1
- mov r9, r2
- ldr r3, _0804A098 @ =gTradeMonSpriteCoords
- mov r12, r3
- mov r5, r10
- lsls r5, 4
- str r5, [sp, 0x70]
- ldrb r0, [r0]
- cmp r4, r0
- bcs _08049F8E
- adds r6, r7, 0
- ldr r2, _0804A09C @ =gUnknown_03004824
- ldr r0, [sp, 0x6C]
- add r0, r9
- lsls r3, r0, 1
- movs r5, 0x4
-_08049F62:
- ldr r0, [r2]
- adds r1, r4, r3
- adds r0, 0x34
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r5
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, [r2]
- adds r0, 0x42
- add r0, r10
- ldrb r0, [r0]
- cmp r4, r0
- bcc _08049F62
-_08049F8E:
- ldr r1, _0804A09C @ =gUnknown_03004824
- ldr r0, [r1]
- ldr r5, [sp, 0x6C]
- add r5, r9
- lsls r3, r5, 1
- mov r2, r8
- adds r6, r2, r3
- adds r0, 0x34
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldr r0, _0804A09C @ =gUnknown_03004824
- ldr r4, [r0]
- adds r4, 0x34
- adds r4, r6
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- movs r1, 0x14
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- lsls r5, 2
- mov r1, r12
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r3, 0x1
- lsls r3, 1
- add r3, r12
- ldrb r1, [r3]
- adds r0, r1
- asrs r0, 1
- lsls r0, 3
- adds r0, 0xE
- strh r0, [r2, 0x32]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- mov r0, r12
- adds r0, 0x1
- adds r5, r0
- ldrb r0, [r5]
- lsls r0, 3
- subs r0, 0xC
- strh r0, [r1, 0x36]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, _0804A0A0 @ =sub_809D62C
- bl oamt_set_x3A_32
- ldr r2, _0804A09C @ =gUnknown_03004824
- ldr r1, [r2]
- adds r1, 0x80
- add r1, r10
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r2]
- adds r0, 0x34
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- bl sub_8078A34
- bl HandleDestroyMenuCursors
- ldr r3, _0804A09C @ =gUnknown_03004824
- ldr r0, [r3]
- adds r0, 0x4
- ldr r1, _0804A0A4 @ =gUnknown_0820C330
- mov r5, r9
- adds r2, r5, r1
- ldrb r2, [r2]
- adds r1, 0x1
- add r1, r9
- ldrb r1, [r1]
- str r1, [sp]
- movs r1, 0x13
- str r1, [sp, 0x4]
- movs r1, 0
- movs r3, 0
- bl FillWindowRect_DefaultPalette
- ldr r1, _0804A09C @ =gUnknown_03004824
- ldr r0, [r1]
- adds r0, 0xC8
- ldr r2, [sp, 0x70]
- mov r3, r10
- subs r1, r2, r3
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0804A0A8 @ =gTradePartyBoxTilemap
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x11
- str r2, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- movs r2, 0
- bl sub_804A96C_alt
- ldr r0, [sp, 0x6C]
- cmp r0, 0
- beq _0804A08C
- b _0804A294
-_0804A08C:
- bl sub_804A80C
- b _0804A294
- .align 2, 0
-_0804A094: .4byte gSprites
-_0804A098: .4byte gTradeMonSpriteCoords
-_0804A09C: .4byte gUnknown_03004824
-_0804A0A0: .4byte sub_809D62C
-_0804A0A4: .4byte gUnknown_0820C330
-_0804A0A8: .4byte gTradePartyBoxTilemap
-_0804A0AC:
- ldr r2, _0804A0DC @ =gSprites
- ldr r1, [sp, 0x6C]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- add r0, r8
- adds r1, r5, 0
- adds r1, 0x34
- adds r1, r0
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0804A0E0 @ =sub_809D62C
- cmp r1, r0
- beq _0804A0D4
- b _0804A294
-_0804A0D4:
- movs r0, 0x3
- strb r0, [r3]
- b _0804A294
- .align 2, 0
-_0804A0DC: .4byte gSprites
-_0804A0E0: .4byte sub_809D62C
-_0804A0E4:
- adds r0, r5, 0
- adds r0, 0xC8
- ldr r2, [sp, 0x6C]
- lsls r1, r2, 4
- subs r1, r2
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0804A228 @ =gTradeMovesBoxTilemap
- movs r2, 0xF
- str r2, [sp]
- movs r7, 0x11
- str r7, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- movs r2, 0
- bl sub_804A96C_alt
- ldr r0, _0804A22C @ =gUnknown_03004824
- ldr r3, [r0]
- ldr r1, [sp, 0x6C]
- lsls r6, r1, 1
- adds r1, r6
- mov r9, r1
- lsls r1, 1
- mov r2, r8
- adds r0, r2, r1
- adds r3, 0x34
- adds r3, r0
- ldrb r0, [r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r5, _0804A230 @ =gSprites
- adds r2, r5
- ldr r4, _0804A234 @ =gTradeMonSpriteCoords
- mov r0, r9
- lsls r5, r0, 2
- adds r0, r5, r4
- ldrb r0, [r0]
- adds r1, 0x1
- lsls r1, 1
- adds r1, r4
- ldrb r1, [r1]
- adds r0, r1
- asrs r0, 1
- lsls r0, 3
- adds r0, 0xE
- strh r0, [r2, 0x20]
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r2, _0804A230 @ =gSprites
- adds r1, r2
- adds r4, 0x1
- adds r5, r4
- ldrb r0, [r5]
- lsls r0, 3
- subs r0, 0xC
- strh r0, [r1, 0x22]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r5, 0
- strh r5, [r0, 0x24]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x26]
- mov r0, sp
- adds r0, 0x12
- ldr r1, [sp, 0x6C]
- mov r2, r8
- bl sub_804A2B4
- add r1, sp, 0xC
- movs r3, 0xFC
- strb r3, [r1]
- adds r2, r1, 0
- movs r1, 0x6
- strb r1, [r2, 0x1]
- movs r1, 0x4
- strb r1, [r2, 0x2]
- adds r1, r2, 0
- strb r3, [r1, 0x3]
- strb r7, [r1, 0x4]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x40
- subs r1, r0
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- strb r1, [r2, 0x5]
- ldr r0, _0804A22C @ =gUnknown_03004824
- ldr r1, [r0]
- adds r0, r1, 0x4
- adds r1, 0x7A
- ldrb r2, [r1]
- mov r1, r9
- lsls r1, 6
- mov r9, r1
- add r2, r9
- ldr r4, _0804A238 @ =gUnknown_0820C334
- ldr r3, [sp, 0x6C]
- lsls r1, r3, 2
- adds r3, r1, r4
- ldrb r3, [r3]
- ldr r5, _0804A23C @ =gUnknown_0820C334 + 0x1
- adds r1, r5
- ldrb r1, [r1]
- str r1, [sp]
- add r1, sp, 0xC
- bl sub_8003460
- add r7, sp, 0x34
- adds r0, r7, 0
- ldr r1, [sp, 0x6C]
- mov r2, r8
- bl sub_804A33C
- ldr r0, _0804A22C @ =gUnknown_03004824
- ldr r2, [r0]
- adds r0, r2, 0x4
- ldr r1, _0804A240 @ =gOtherText_Terminator2
- adds r2, 0x7A
- ldrb r2, [r2]
- add r2, r9
- adds r2, 0x20
- adds r6, 0x1
- lsls r6, 1
- adds r4, r6, r4
- ldrb r5, [r4]
- ldr r3, _0804A23C @ =gUnknown_0820C334 + 0x1
- adds r6, r3
- ldrb r4, [r6]
- adds r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp]
- adds r3, r5, 0
- bl sub_8003460
- ldr r0, _0804A22C @ =gUnknown_03004824
- ldr r1, [r0]
- adds r0, r1, 0x4
- adds r1, 0x7A
- ldrb r2, [r1]
- add r2, r9
- adds r2, 0x26
- str r4, [sp]
- adds r1, r7, 0
- adds r3, r5, 0
- bl sub_8003460
- ldr r2, _0804A22C @ =gUnknown_03004824
- ldr r1, [r2]
- b _0804A28A
- .align 2, 0
-_0804A228: .4byte gTradeMovesBoxTilemap
-_0804A22C: .4byte gUnknown_03004824
-_0804A230: .4byte gSprites
-_0804A234: .4byte gTradeMonSpriteCoords
-_0804A238: .4byte gUnknown_0820C334
-_0804A23C: .4byte gUnknown_0820C334 + 0x1
-_0804A240: .4byte gOtherText_Terminator2
-_0804A244:
- ldr r0, _0804A2A4 @ =gUnknown_0820C14C
- ldr r0, [r0, 0x14]
- adds r1, r5, 0
- adds r1, 0x7E
- ldrh r1, [r1]
- lsls r1, 5
- ldr r3, _0804A2A8 @ =0x06010000
- adds r1, r3
- movs r2, 0x14
- bl sub_804ACD8
- ldr r0, _0804A2AC @ =gUnknown_0820C3D1
- mov r5, r10
- lsls r1, r5, 1
- adds r4, r1, r0
- ldrb r2, [r4]
- adds r2, 0x4
- lsls r2, 24
- lsrs r2, 24
- adds r0, 0x1
- adds r1, r0
- ldrb r3, [r1]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r4]
- str r0, [sp]
- ldrb r0, [r1]
- str r0, [sp, 0x4]
- mov r0, r10
- mov r1, r8
- bl sub_804A51C
- ldr r0, _0804A2B0 @ =gUnknown_03004824
- ldr r1, [r0]
-_0804A28A:
- adds r1, 0x80
- add r1, r10
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0804A294:
- add sp, 0x74
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804A2A4: .4byte gUnknown_0820C14C
-_0804A2A8: .4byte 0x06010000
-_0804A2AC: .4byte gUnknown_0820C3D1
-_0804A2B0: .4byte gUnknown_03004824
- thumb_func_end sub_8049ED4
-
- thumb_func_start sub_804A2B4
-sub_804A2B4: @ 804A2B4
- push {r4,r5,lr}
- sub sp, 0xC
- adds r5, r0, 0
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- cmp r1, 0
- bne _0804A2F4
- movs r0, 0x64
- adds r4, r2, 0
- muls r4, r0
- ldr r0, _0804A2F0 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- adds r0, r5, 0
- mov r1, sp
- bl StringCopy10
- adds r0, r4, 0
- bl GetMonGender
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- b _0804A31E
- .align 2, 0
-_0804A2F0: .4byte gPlayerParty
-_0804A2F4:
- movs r0, 0x64
- adds r4, r2, 0
- muls r4, r0
- ldr r0, _0804A334 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- adds r0, r5, 0
- mov r1, sp
- bl StringCopy10
- adds r0, r4, 0
- bl GetMonGender
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
-_0804A31E:
- ldr r0, _0804A338 @ =gWindowConfig_81E7294
- adds r1, r5, 0
- bl GetStringWidthGivenWindowConfig
- lsls r0, 24
- lsrs r0, 24
- add sp, 0xC
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0804A334: .4byte gEnemyParty
-_0804A338: .4byte gWindowConfig_81E7294
- thumb_func_end sub_804A2B4
-
- thumb_func_start sub_804A33C
-sub_804A33C: @ 804A33C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _0804A384 @ =gUnknown_03004824
- ldr r1, [r0]
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 1
- adds r0, r2, r0
- adds r1, 0x5D
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _0804A3F4
- movs r4, 0
- movs r0, 0x64
- adds r5, r2, 0
- muls r5, r0
- ldr r0, _0804A388 @ =gPlayerParty
- mov r9, r0
- ldr r2, _0804A38C @ =gEnemyParty
- mov r8, r2
-_0804A376:
- cmp r7, 0
- bne _0804A390
- adds r1, r4, 0
- adds r1, 0xD
- mov r2, r9
- b _0804A396
- .align 2, 0
-_0804A384: .4byte gUnknown_03004824
-_0804A388: .4byte gPlayerParty
-_0804A38C: .4byte gEnemyParty
-_0804A390:
- adds r1, r4, 0
- adds r1, 0xD
- mov r2, r8
-_0804A396:
- adds r0, r5, r2
- movs r2, 0
- bl GetMonData
- lsls r1, r4, 1
- add r1, sp
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _0804A376
- ldr r1, _0804A3E8 @ =gOtherText_Terminator
- adds r0, r6, 0
- bl StringCopy
- movs r4, 0
-_0804A3B8:
- lsls r0, r4, 1
- mov r2, sp
- adds r1, r2, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _0804A3D4
- adds r1, r0, 0
- movs r0, 0xD
- muls r1, r0
- ldr r0, _0804A3EC @ =gMoveNames
- adds r1, r0
- adds r0, r6, 0
- bl StringAppend
-_0804A3D4:
- adds r0, r6, 0
- ldr r1, _0804A3F0 @ =gOtherText_ControlAndMiscText
- bl StringAppend
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _0804A3B8
- b _0804A404
- .align 2, 0
-_0804A3E8: .4byte gOtherText_Terminator
-_0804A3EC: .4byte gMoveNames
-_0804A3F0: .4byte gOtherText_ControlAndMiscText
-_0804A3F4:
- ldr r1, _0804A414 @ =gOtherText_Terminator
- adds r0, r6, 0
- bl StringCopy
- ldr r1, _0804A418 @ =gOtherText_FourQuestions
- adds r0, r6, 0
- bl StringAppend
-_0804A404:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804A414: .4byte gOtherText_Terminator
-_0804A418: .4byte gOtherText_FourQuestions
- thumb_func_end sub_804A33C
-
- thumb_func_start sub_804A41C
-sub_804A41C: @ 804A41C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x44
- lsls r0, 24
- lsrs r5, r0, 24
- add r3, sp, 0x1C
- movs r2, 0
- movs r1, 0xFC
- strb r1, [r3]
- movs r0, 0x6
- strb r0, [r3, 0x1]
- movs r0, 0x4
- strb r0, [r3, 0x2]
- strb r1, [r3, 0x3]
- movs r0, 0x11
- strb r0, [r3, 0x4]
- strb r2, [r3, 0x5]
- movs r6, 0
- ldr r1, _0804A470 @ =gUnknown_03004824
- ldr r0, [r1]
- adds r0, 0x42
- adds r0, r5
- ldrb r0, [r0]
- cmp r6, r0
- bcs _0804A504
- mov r8, r3
- adds r7, r1, 0
- ldr r0, _0804A474 @ =gTradeMonSpriteCoords
- mov r9, r0
- movs r4, 0x1
- add r4, r9
- mov r10, r4
-_0804A462:
- cmp r5, 0
- bne _0804A47C
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _0804A478 @ =gPlayerParty
- b _0804A484
- .align 2, 0
-_0804A470: .4byte gUnknown_03004824
-_0804A474: .4byte gTradeMonSpriteCoords
-_0804A478: .4byte gPlayerParty
-_0804A47C:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _0804A514 @ =gEnemyParty
-_0804A484:
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x2
- add r2, sp, 0x4
- bl GetMonData
- mov r0, sp
- adds r0, 0x22
- add r1, sp, 0x4
- bl StringCopy10
- adds r0, r4, 0
- bl GetMonGender
- mov r1, sp
- adds r1, 0x22
- ldr r0, _0804A518 @ =gWindowConfig_81E7294
- bl GetStringWidthGivenWindowConfig
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x32
- subs r1, r0
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- mov r0, r8
- strb r1, [r0, 0x5]
- ldr r1, [r7]
- adds r0, r1, 0x4
- adds r1, 0x7A
- lsls r2, r5, 5
- adds r2, r5
- lsls r2, 2
- ldrb r1, [r1]
- adds r2, r1
- movs r1, 0x16
- muls r1, r6
- adds r2, r1
- lsls r2, 16
- lsrs r2, 16
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 1
- adds r1, r6, r1
- lsls r1, 1
- mov r4, r9
- adds r3, r1, r4
- ldrb r3, [r3]
- add r1, r10
- ldrb r1, [r1]
- str r1, [sp]
- mov r1, r8
- bl sub_8003460
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [r7]
- adds r0, 0x42
- adds r0, r5
- ldrb r0, [r0]
- cmp r6, r0
- bcc _0804A462
-_0804A504:
- add sp, 0x44
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804A514: .4byte gEnemyParty
-_0804A518: .4byte gWindowConfig_81E7294
- thumb_func_end sub_804A41C
-
- thumb_func_start sub_804A51C
-sub_804A51C: @ 804A51C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- ldr r4, [sp, 0x48]
- ldr r5, [sp, 0x4C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x24]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0804A59C @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0xC8
- ldr r3, _0804A5A0 @ =gTradeMonBoxTilemap
- movs r1, 0x6
- str r1, [sp]
- movs r1, 0x3
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_804A96C
- mov r0, r8
- cmp r0, 0
- bne _0804A5A8
- movs r0, 0x64
- mov r4, r9
- muls r4, r0
- ldr r0, _0804A5A4 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- bl GetMonGender
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- movs r1, 0x2
- add r2, sp, 0xC
- bl GetMonData
- b _0804A5D4
- .align 2, 0
-_0804A59C: .4byte gUnknown_03004824
-_0804A5A0: .4byte gTradeMonBoxTilemap
-_0804A5A4: .4byte gPlayerParty
-_0804A5A8:
- movs r0, 0x64
- mov r4, r9
- muls r4, r0
- ldr r0, _0804A65C @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- bl GetMonGender
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- movs r1, 0x2
- add r2, sp, 0xC
- bl GetMonData
-_0804A5D4:
- ldr r1, _0804A660 @ =gUnknown_03004824
- ldr r5, [r1]
- mov r3, r8
- lsls r0, r3, 1
- add r0, r8
- lsls r0, 1
- add r0, r9
- adds r1, r5, 0
- adds r1, 0x5D
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _0804A690
- adds r0, r6, 0
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, [sp, 0x24]
- lsls r2, r0, 5
- cmp r4, 0
- beq _0804A614
- mov r1, r10
- adds r0, r1, r2
- lsls r0, 1
- adds r1, r5, 0
- adds r1, 0xDA
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x60
- strh r0, [r1]
-_0804A614:
- ldr r3, _0804A660 @ =gUnknown_03004824
- ldr r4, [r3]
- mov r0, r10
- adds r5, r0, r2
- adds r0, r5, 0x1
- lsls r0, 1
- adds r4, 0xDA
- adds r4, r0
- adds r0, r6, 0
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x70
- strh r0, [r4]
- cmp r7, 0
- bne _0804A664
- add r0, sp, 0xC
- movs r1, 0
- bl NameHasGenderSymbol
- lsls r0, 24
- cmp r0, 0
- bne _0804A6CC
- ldr r3, _0804A660 @ =gUnknown_03004824
- ldr r1, [r3]
- adds r0, r5, 0
- subs r0, 0x1F
- lsls r0, 1
- adds r1, 0xDA
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- b _0804A6CA
- .align 2, 0
-_0804A65C: .4byte gEnemyParty
-_0804A660: .4byte gUnknown_03004824
-_0804A664:
- cmp r7, 0xFE
- bne _0804A6CC
- add r0, sp, 0xC
- movs r1, 0xFE
- bl NameHasGenderSymbol
- lsls r0, 24
- cmp r0, 0
- bne _0804A6CC
- ldr r0, _0804A68C @ =gUnknown_03004824
- ldr r1, [r0]
- adds r0, r5, 0
- subs r0, 0x1F
- lsls r0, 1
- adds r1, 0xDA
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x2
- b _0804A6CA
- .align 2, 0
-_0804A68C: .4byte gUnknown_03004824
-_0804A690:
- ldr r1, [sp, 0x24]
- lsls r0, r1, 5
- mov r1, r10
- adds r3, r1, r0
- adds r1, r3, 0
- subs r1, 0x20
- lsls r1, 1
- adds r2, r5, 0
- adds r2, 0xDA
- adds r1, r2, r1
- adds r0, r3, 0
- subs r0, 0x21
- lsls r0, 1
- adds r0, r2, r0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, r3, 0
- subs r1, 0x1F
- lsls r1, 1
- adds r1, r2, r1
- adds r0, r3, 0
- subs r0, 0x24
- lsls r0, 1
- adds r2, r0
- ldrh r2, [r2]
- movs r3, 0x80
- lsls r3, 3
- adds r0, r3, 0
- orrs r0, r2
-_0804A6CA:
- strh r0, [r1]
-_0804A6CC:
-.ifdef GERMAN
- ldr r0, _0804A6E8 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0xD8
- movs r1, 0x1
- strb r1, [r0]
-.endif
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
-.ifdef GERMAN
- .align 2, 0
-_0804A6E8: .4byte gUnknown_03004824
-.endif
- thumb_func_end sub_804A51C
-
- thumb_func_start sub_804A6DC
-sub_804A6DC: @ 804A6DC
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- movs r7, 0
- ldr r0, _0804A734 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x42
- adds r0, r6
- ldrb r0, [r0]
- cmp r7, r0
- bge _0804A72C
- lsls r0, r6, 1
- adds r0, r6
- ldr r1, _0804A738 @ =gTradeLevelDisplayCoords
- lsls r0, 2
- adds r5, r0, r1
- ldr r1, _0804A73C @ =gTradeMonBoxCoords
- adds r4, r0, r1
-_0804A702:
- lsls r1, r7, 24
- lsrs r1, 24
- ldrb r2, [r5]
- ldrb r3, [r5, 0x1]
- ldrb r0, [r4]
- str r0, [sp]
- ldrb r0, [r4, 0x1]
- str r0, [sp, 0x4]
- adds r0, r6, 0
- bl sub_804A51C
- adds r5, 0x2
- adds r4, 0x2
- adds r7, 0x1
- ldr r0, _0804A734 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x42
- adds r0, r6
- ldrb r0, [r0]
- cmp r7, r0
- blt _0804A702
-_0804A72C:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804A734: .4byte gUnknown_03004824
-_0804A738: .4byte gTradeLevelDisplayCoords
-_0804A73C: .4byte gTradeMonBoxCoords
- thumb_func_end sub_804A6DC
-
- thumb_func_start sub_804A740
-sub_804A740: @ 804A740
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- movs r7, 0
- ldr r3, _0804A800 @ =gUnknown_03004824
- ldr r0, [r3]
- adds r0, 0x42
- add r0, r12
- ldrb r0, [r0]
- cmp r7, r0
- bge _0804A7F2
- ldr r6, _0804A804 @ =gSprites
- mov r9, r3
- mov r1, r12
- lsls r0, r1, 1
- add r0, r12
- lsls r2, r0, 1
- mov r10, r2
- ldr r1, _0804A808 @ =gTradeMonSpriteCoords
- movs r2, 0
- mov r8, r2
- lsls r0, 2
- adds r5, r0, r1
-_0804A778:
- mov r1, r9
- ldr r0, [r1]
- mov r2, r10
- adds r4, r7, r2
- adds r0, 0x34
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- mov r0, r9
- ldr r3, [r0]
- adds r2, r3, 0
- adds r2, 0x34
- adds r2, r4
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r5]
- lsls r0, 3
- adds r0, 0xE
- strh r0, [r1, 0x20]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r5, 0x1]
- lsls r0, 3
- subs r0, 0xC
- strh r0, [r1, 0x22]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r8
- strh r1, [r0, 0x24]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r2, r8
- strh r2, [r0, 0x26]
- adds r5, 0x2
- adds r7, 0x1
- adds r3, 0x42
- add r3, r12
- ldrb r3, [r3]
- cmp r7, r3
- blt _0804A778
-_0804A7F2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804A800: .4byte gUnknown_03004824
-_0804A804: .4byte gSprites
-_0804A808: .4byte gTradeMonSpriteCoords
- thumb_func_end sub_804A740
-
- thumb_func_start sub_804A80C
-sub_804A80C: @ 804A80C
- push {lr}
- sub sp, 0x8
- ldr r0, _0804A838 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0x4
- ldr r1, _0804A83C @ =gUnknown_0820C330
- ldrb r2, [r1, 0x2]
- ldrb r1, [r1, 0x3]
- str r1, [sp]
- movs r1, 0x13
- str r1, [sp, 0x4]
- movs r1, 0
- movs r3, 0
- bl FillWindowRect_DefaultPalette
- movs r0, 0x1
- bl sub_804A41C
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0804A838: .4byte gUnknown_03004824
-_0804A83C: .4byte gUnknown_0820C330
- thumb_func_end sub_804A80C
-
- thumb_func_start sub_804A840
-sub_804A840: @ 804A840
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0804A8A8
- ldr r4, _0804A89C @ =gUnknown_03004824
- ldr r0, [r4]
- adds r0, 0x4
- ldr r1, _0804A8A0 @ =gUnknown_0820C330
- ldrb r2, [r1]
- ldrb r1, [r1, 0x1]
- str r1, [sp]
- movs r1, 0x13
- str r1, [sp, 0x4]
- movs r1, 0
- movs r3, 0
- bl FillWindowRect_DefaultPalette
- ldr r0, [r4]
- adds r0, 0xC8
- ldr r3, _0804A8A4 @ =gTradePartyBoxTilemap
- movs r1, 0xF
- str r1, [sp]
- movs r1, 0x11
- str r1, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0
- movs r2, 0
- bl sub_804A96C_alt
- movs r0, 0
- bl sub_804A6DC
- movs r0, 0
- bl sub_804A41C
- movs r0, 0
- bl sub_804A740
- ldr r0, [r4]
- adds r0, 0xC8
- bl sub_804A938
- b _0804A8FA
- .align 2, 0
-_0804A89C: .4byte gUnknown_03004824
-_0804A8A0: .4byte gUnknown_0820C330
-_0804A8A4: .4byte gTradePartyBoxTilemap
-_0804A8A8:
- bl HandleDestroyMenuCursors
- ldr r4, _0804A924 @ =gUnknown_03004824
- ldr r0, [r4]
- adds r0, 0x4
- ldr r1, _0804A928 @ =gUnknown_0820C330
- ldrb r2, [r1, 0x2]
- ldrb r1, [r1, 0x3]
- str r1, [sp]
- movs r1, 0x13
- str r1, [sp, 0x4]
- movs r1, 0
- movs r3, 0
- bl FillWindowRect_DefaultPalette
- ldr r0, [r4]
- adds r0, 0xC8
- ldr r3, _0804A92C @ =gTradePartyBoxTilemap
- movs r1, 0xF
- str r1, [sp]
- movs r1, 0x11
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0xF
- movs r2, 0
- bl sub_804A96C_alt
- movs r0, 0x1
- bl sub_804A6DC
- movs r0, 0x1
- bl sub_804A41C
- movs r0, 0x1
- bl sub_804A740
- ldr r0, [r4]
- adds r0, 0xC8
- bl sub_804A938
-_0804A8FA:
- ldr r0, _0804A930 @ =gUnknown_0820C14C
- ldr r0, [r0, 0x4]
- ldr r4, _0804A924 @ =gUnknown_03004824
- ldr r1, [r4]
- adds r1, 0x7E
- ldrh r1, [r1]
- lsls r1, 5
- ldr r2, _0804A934 @ =0x06010000
- adds r1, r2
- movs r2, 0x14
- bl sub_804ACD8
- ldr r0, [r4]
- adds r0, 0x80
- adds r0, r5
- movs r1, 0
- strb r1, [r0]
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804A924: .4byte gUnknown_03004824
-_0804A928: .4byte gUnknown_0820C330
-_0804A92C: .4byte gTradePartyBoxTilemap
-_0804A930: .4byte gUnknown_0820C14C
-_0804A934: .4byte 0x06010000
- thumb_func_end sub_804A840
-
- thumb_func_start sub_804A938
-sub_804A938: @ 804A938
- movs r1, 0x1
- strb r1, [r0, 0x10]
- bx lr
- thumb_func_end sub_804A938
-
- thumb_func_start sub_804A940
-sub_804A940: @ 804A940
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x10]
- cmp r0, 0
- beq _0804A95C
- adds r0, r4, 0
- adds r0, 0x12
- ldr r1, [r4, 0x8]
- movs r2, 0x80
- lsls r2, 3
- bl CpuSet
- movs r0, 0
- strb r0, [r4, 0x10]
-_0804A95C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_804A940
-
- thumb_func_start sub_804A964
-sub_804A964: @ 804A964
- movs r2, 0
- strb r2, [r0, 0x10]
- str r1, [r0, 0x8]
- bx lr
- thumb_func_end sub_804A964
-
-.section .text.sub_804A9F4
-
- thumb_func_start sub_804A9F4
-sub_804A9F4: @ 804A9F4
- push {lr}
- bl MenuZeroFillScreen
- pop {r0}
- bx r0
- thumb_func_end sub_804A9F4
-
- thumb_func_start sub_804AA00
-sub_804AA00: @ 804AA00
- push {lr}
- bl MenuZeroFillScreen
- pop {r0}
- bx r0
- thumb_func_end sub_804AA00
-
- thumb_func_start sub_804AA0C
-sub_804AA0C: @ 804AA0C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- ldr r0, _0804AA7C @ =gUnknown_03004824
- mov r8, r0
- ldr r0, [r0]
- adds r0, 0x4
- ldr r2, _0804AA80 @ =gTradeMessageWindowRects
- lsrs r4, 22
- adds r1, r4, r2
- ldrb r6, [r1]
- adds r1, r2, 0x1
- adds r1, r4, r1
- ldrb r5, [r1]
- adds r1, r2, 0x2
- adds r1, r4, r1
- ldrb r3, [r1]
- adds r2, 0x3
- adds r2, r4, r2
- ldrb r1, [r2]
- str r1, [sp]
- adds r1, r6, 0
- adds r2, r5, 0
- bl DrawTextWindow
- mov r1, r8
- ldr r3, [r1]
- adds r0, r3, 0x4
- ldr r1, _0804AA84 @ =gUnknown_0820C2F0
- adds r4, r1
- ldr r1, [r4]
- adds r3, 0x7A
- movs r4, 0xC0
- lsls r4, 1
- adds r2, r4, 0
- ldrb r3, [r3]
- adds r2, r3
- adds r6, 0x1
- lsls r6, 24
- lsrs r6, 24
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- str r5, [sp]
- adds r3, r6, 0
- bl sub_8003460
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804AA7C: .4byte gUnknown_03004824
-_0804AA80: .4byte gTradeMessageWindowRects
-_0804AA84: .4byte gUnknown_0820C2F0
- thumb_func_end sub_804AA0C
-
- thumb_func_start sub_804AA88
-sub_804AA88: @ 804AA88
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r3, 0
- ldr r5, _0804AAD0 @ =gUnknown_03004824
- ldr r0, _0804AAD4 @ =0x000008dc
- mov r8, r0
- movs r4, 0
- ldr r2, _0804AAD8 @ =0x000008de
- mov r12, r2
- movs r7, 0x8E
- lsls r7, 4
- movs r6, 0xFF
-_0804AAA2:
- ldr r0, [r5]
- lsls r2, r3, 3
- adds r0, r2
- add r0, r8
- strb r4, [r0]
- ldr r1, [r5]
- adds r1, r2
- mov r2, r12
- adds r0, r1, r2
- strh r4, [r0]
- adds r1, r7
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- adds r3, 0x1
- cmp r3, 0x3
- ble _0804AAA2
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804AAD0: .4byte gUnknown_03004824
-_0804AAD4: .4byte 0x000008dc
-_0804AAD8: .4byte 0x000008de
- thumb_func_end sub_804AA88
-
- thumb_func_start sub_804AADC
-sub_804AADC: @ 804AADC
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- movs r3, 0
- ldr r4, _0804AB18 @ =gUnknown_03004824
- mov r12, r4
- ldr r7, _0804AB1C @ =0x000008dc
-_0804AAEE:
- mov r1, r12
- ldr r0, [r1]
- lsls r1, r3, 3
- adds r2, r0, r1
- adds r0, r2, r7
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804AB24
- ldr r3, _0804AB20 @ =0x000008de
- adds r0, r2, r3
- strh r5, [r0]
- adds r3, 0x2
- adds r0, r2, r3
- strb r6, [r0]
- ldr r0, [r4]
- adds r0, r1
- ldr r1, _0804AB1C @ =0x000008dc
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- b _0804AB2A
- .align 2, 0
-_0804AB18: .4byte gUnknown_03004824
-_0804AB1C: .4byte 0x000008dc
-_0804AB20: .4byte 0x000008de
-_0804AB24:
- adds r3, 0x1
- cmp r3, 0x3
- ble _0804AAEE
-_0804AB2A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804AADC
-
- thumb_func_start sub_804AB30
-sub_804AB30: @ 804AB30
- push {r4,r5,lr}
- movs r4, 0
- ldr r3, _0804AB58 @ =gUnknown_03004824
-_0804AB36:
- ldr r0, [r3]
- lsls r1, r4, 3
- adds r2, r0, r1
- ldr r5, _0804AB5C @ =0x000008dc
- adds r0, r2, r5
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0
- beq _0804ABE2
- ldr r0, _0804AB60 @ =0x000008de
- adds r1, r2, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _0804AB64
- subs r0, 0x1
- strh r0, [r1]
- b _0804ABE2
- .align 2, 0
-_0804AB58: .4byte gUnknown_03004824
-_0804AB5C: .4byte 0x000008dc
-_0804AB60: .4byte 0x000008de
-_0804AB64:
- movs r1, 0x8E
- lsls r1, 4
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _0804ABD2
- lsls r0, 2
- ldr r1, _0804AB7C @ =_0804AB80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804AB7C: .4byte _0804AB80
- .align 2, 0
-_0804AB80:
- .4byte _0804AB98
- .4byte _0804ABB4
- .4byte _0804ABBC
- .4byte _0804ABC4
- .4byte _0804ABC4
- .4byte _0804ABCC
-_0804AB98:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0804ABB0 @ =gUnknown_03004824
- ldr r1, [r1]
- adds r1, 0x8C
- movs r2, 0x14
- bl SendBlock
- b _0804ABD2
- .align 2, 0
-_0804ABB0: .4byte gUnknown_03004824
-_0804ABB4:
- movs r0, 0
- bl sub_804AA0C
- b _0804ABD2
-_0804ABBC:
- movs r0, 0x2
- bl sub_804AA0C
- b _0804ABD2
-_0804ABC4:
- movs r0, 0x3
- bl sub_804AA0C
- b _0804ABD2
-_0804ABCC:
- movs r0, 0x3
- bl sub_804AA0C
-_0804ABD2:
- ldr r0, _0804ABF0 @ =gUnknown_03004824
- ldr r1, [r0]
- adds r1, r5
- ldr r2, _0804ABF4 @ =0x000008dc
- adds r1, r2
- movs r2, 0
- strb r2, [r1]
- adds r3, r0, 0
-_0804ABE2:
- adds r4, 0x1
- cmp r4, 0x3
- ble _0804AB36
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804ABF0: .4byte gUnknown_03004824
-_0804ABF4: .4byte 0x000008dc
- thumb_func_end sub_804AB30
-
- thumb_func_start sub_804ABF8
-sub_804ABF8: @ 804ABF8
- push {r4,lr}
- ldr r0, _0804AC14 @ =gUnknown_03004824
- ldr r1, [r0]
- adds r1, 0xB4
- ldrb r1, [r1]
- subs r1, 0x8
- adds r4, r0, 0
- cmp r1, 0x8
- bhi _0804ACB0
- lsls r0, r1, 2
- ldr r1, _0804AC18 @ =_0804AC1C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804AC14: .4byte gUnknown_03004824
-_0804AC18: .4byte _0804AC1C
- .align 2, 0
-_0804AC1C:
- .4byte _0804AC40
- .4byte _0804ACB0
- .4byte _0804ACB0
- .4byte _0804ACB0
- .4byte _0804ACB0
- .4byte _0804AC60
- .4byte _0804AC74
- .4byte _0804AC88
- .4byte _0804AC9A
-_0804AC40:
- ldr r0, [r4]
- adds r0, 0xB4
- ldrb r0, [r0]
- lsls r0, 3
- ldr r1, _0804AC5C @ =gUnknown_0820C07C
- adds r0, r1
- bl LoadSpriteSheet
- ldr r1, [r4]
- adds r2, r1, 0
- adds r2, 0x7E
- strh r0, [r2]
- b _0804ACC2
- .align 2, 0
-_0804AC5C: .4byte gUnknown_0820C07C
-_0804AC60:
- ldr r0, _0804AC6C @ =gSpritePalette_TradeScreenText
- bl LoadSpritePalette
- ldr r0, _0804AC70 @ =gUnknown_03004824
- ldr r1, [r0]
- b _0804ACC2
- .align 2, 0
-_0804AC6C: .4byte gSpritePalette_TradeScreenText
-_0804AC70: .4byte gUnknown_03004824
-_0804AC74:
- ldr r0, _0804AC80 @ =gUnknown_0820C12C
- bl LoadSpritePalette
- ldr r0, _0804AC84 @ =gUnknown_03004824
- ldr r1, [r0]
- b _0804ACC2
- .align 2, 0
-_0804AC80: .4byte gUnknown_0820C12C
-_0804AC84: .4byte gUnknown_03004824
-_0804AC88:
- ldr r0, _0804ACA8 @ =gUnknown_0820C124
- bl LoadSpriteSheet
- ldr r0, _0804ACAC @ =gUnknown_03004824
- ldr r1, [r0]
- adds r1, 0xB4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0804AC9A:
- ldr r0, _0804ACAC @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0xB4
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _0804ACCC
- .align 2, 0
-_0804ACA8: .4byte gUnknown_0820C124
-_0804ACAC: .4byte gUnknown_03004824
-_0804ACB0:
- ldr r0, [r4]
- adds r0, 0xB4
- ldrb r0, [r0]
- lsls r0, 3
- ldr r1, _0804ACD4 @ =gUnknown_0820C07C
- adds r0, r1
- bl LoadSpriteSheet
- ldr r1, [r4]
-_0804ACC2:
- adds r1, 0xB4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
-_0804ACCC:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0804ACD4: .4byte gUnknown_0820C07C
- thumb_func_end sub_804ABF8
-
- thumb_func_start sub_804ACD8
-sub_804ACD8: @ 804ACD8
- push {r4,lr}
- adds r4, r0, 0
- lsls r3, r2, 24
- lsrs r3, 24
- ldr r0, _0804ACF0 @ =gWindowConfig_81E725C
- adds r2, r4, 0
- bl sub_804AFB8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804ACF0: .4byte gWindowConfig_81E725C
- thumb_func_end sub_804ACD8
-
- thumb_func_start sub_804ACF4
-sub_804ACF4: @ 804ACF4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0
- beq _0804AD0C
- cmp r0, 0x1
- beq _0804ADA0
- b _0804AE2C
-_0804AD0C:
- movs r7, 0
- ldr r1, _0804AD4C @ =gUnknown_03004824
- ldr r0, [r1]
- adds r0, 0x42
- ldrb r0, [r0]
- cmp r7, r0
- blt _0804AD1C
- b _0804AE2C
-_0804AD1C:
- adds r6, r1, 0
- movs r5, 0
- mov r9, r5
-_0804AD22:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _0804AD50 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- adds r1, r0, 0
- cmp r1, 0x1
- bne _0804AD54
- ldr r0, [r6]
- adds r0, 0x51
- adds r0, r5
- mov r2, r9
- strb r2, [r0]
- ldr r0, [r6]
- adds r0, 0x5D
- adds r0, r5
- b _0804AD84
- .align 2, 0
-_0804AD4C: .4byte gUnknown_03004824
-_0804AD50: .4byte gPlayerParty
-_0804AD54:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- adds r1, r0, 0
- cmp r1, 0
- bne _0804AD72
- ldr r0, [r6]
- adds r0, 0x51
- adds r0, r5
- strb r1, [r0]
- ldr r0, [r6]
- adds r0, 0x5D
- adds r0, r5
- b _0804AD84
-_0804AD72:
- ldr r0, [r6]
- adds r0, 0x51
- adds r0, r5
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r6]
- adds r0, 0x5D
- adds r0, r5
- mov r1, r9
-_0804AD84:
- strb r1, [r0]
- ldr r0, _0804AD9C @ =gUnknown_03004824
- adds r5, 0x1
- adds r7, 0x1
- ldr r0, [r0]
- adds r0, 0x42
- add r0, r8
- ldrb r0, [r0]
- cmp r7, r0
- blt _0804AD22
- b _0804AE2C
- .align 2, 0
-_0804AD9C: .4byte gUnknown_03004824
-_0804ADA0:
- movs r7, 0
- ldr r1, _0804ADE0 @ =gUnknown_03004824
- ldr r0, [r1]
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r7, r0
- bge _0804AE2C
- adds r6, r1, 0
- movs r5, 0x6
- movs r2, 0
- mov r9, r2
-_0804ADB6:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _0804ADE4 @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- adds r1, r0, 0
- cmp r1, 0x1
- bne _0804ADE8
- ldr r0, [r6]
- adds r0, 0x51
- adds r0, r5
- mov r2, r9
- strb r2, [r0]
- ldr r0, [r6]
- adds r0, 0x5D
- adds r0, r5
- b _0804AE18
- .align 2, 0
-_0804ADE0: .4byte gUnknown_03004824
-_0804ADE4: .4byte gEnemyParty
-_0804ADE8:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- adds r1, r0, 0
- cmp r1, 0
- bne _0804AE06
- ldr r0, [r6]
- adds r0, 0x51
- adds r0, r5
- strb r1, [r0]
- ldr r0, [r6]
- adds r0, 0x5D
- adds r0, r5
- b _0804AE18
-_0804AE06:
- ldr r0, [r6]
- adds r0, 0x51
- adds r0, r5
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r6]
- adds r0, 0x5D
- adds r0, r5
- mov r1, r9
-_0804AE18:
- strb r1, [r0]
- ldr r0, _0804AE38 @ =gUnknown_03004824
- adds r5, 0x1
- adds r7, 0x1
- ldr r0, [r0]
- adds r0, 0x42
- add r0, r8
- ldrb r0, [r0]
- cmp r7, r0
- blt _0804ADB6
-_0804AE2C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804AE38: .4byte gUnknown_03004824
- thumb_func_end sub_804ACF4
-
- thumb_func_start sub_804AE3C
-sub_804AE3C: @ 804AE3C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0804AE4C
- cmp r0, 0x1
- beq _0804AEAC
- b _0804AF00
-_0804AE4C:
- movs r6, 0
- ldr r1, _0804AEA4 @ =gUnknown_03004824
- ldr r0, [r1]
- adds r0, 0x42
- ldrb r0, [r0]
- cmp r6, r0
- bcs _0804AF00
- adds r7, r1, 0
-_0804AE5C:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _0804AEA8 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- lsls r0, r5, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl GetHPBarLevel
- ldr r1, [r7]
- adds r1, 0x69
- adds r1, r6
- strb r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, [r7]
- adds r0, 0x42
- ldrb r0, [r0]
- cmp r6, r0
- bcc _0804AE5C
- b _0804AF00
- .align 2, 0
-_0804AEA4: .4byte gUnknown_03004824
-_0804AEA8: .4byte gPlayerParty
-_0804AEAC:
- movs r6, 0
- ldr r1, _0804AF08 @ =gUnknown_03004824
- ldr r0, [r1]
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r6, r0
- bcs _0804AF00
- adds r7, r1, 0
-_0804AEBC:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _0804AF0C @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- lsls r0, r5, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl GetHPBarLevel
- ldr r1, [r7]
- adds r1, 0x6F
- adds r1, r6
- strb r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, [r7]
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r6, r0
- bcc _0804AEBC
-_0804AF00:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804AF08: .4byte gUnknown_03004824
-_0804AF0C: .4byte gEnemyParty
- thumb_func_end sub_804AE3C
-
- thumb_func_start sub_804AF10
-sub_804AF10: @ 804AF10
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
-_0804AF18:
- movs r4, 0
- ldr r2, _0804AF7C @ =gUnknown_03004824
- ldr r0, [r2]
- adds r0, 0x42
- adds r0, r5
- adds r1, r5, 0x1
- mov r8, r1
- ldrb r0, [r0]
- cmp r4, r0
- bge _0804AF6A
- adds r6, r2, 0
- lsls r0, r5, 1
- adds r0, r5
- lsls r7, r0, 1
-_0804AF34:
- ldr r2, [r6]
- adds r3, r4, r7
- adds r0, r2, 0
- adds r0, 0x34
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0804AF80 @ =gSprites
- adds r0, r1
- adds r2, 0x69
- adds r2, r3
- ldrb r2, [r2]
- movs r1, 0x4
- subs r1, r2
- lsls r1, 24
- lsrs r1, 24
- bl sub_809D824
- adds r4, 0x1
- ldr r0, [r6]
- adds r0, 0x42
- adds r0, r5
- ldrb r0, [r0]
- cmp r4, r0
- blt _0804AF34
-_0804AF6A:
- mov r5, r8
- cmp r5, 0x1
- ble _0804AF18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804AF7C: .4byte gUnknown_03004824
-_0804AF80: .4byte gSprites
- thumb_func_end sub_804AF10
-
- thumb_func_start sub_804AF84
-sub_804AF84: @ 804AF84
- push {r4,lr}
- movs r2, 0
- ldr r4, _0804AFB0 @ =gSaveBlock1 + 0x3110
- ldr r3, _0804AFB4 @ =gUnknown_03004824
-_0804AF8C:
- adds r1, r2, r4
- ldrb r0, [r1]
- cmp r0, 0
- bne _0804AFA2
- ldr r0, [r3]
- adds r0, 0xB5
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804AFA2
- strb r0, [r1]
-_0804AFA2:
- adds r2, 0x1
- cmp r2, 0xA
- ble _0804AF8C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804AFB0: .4byte gSaveBlock1 + 0x3110
-_0804AFB4: .4byte gUnknown_03004824
- thumb_func_end sub_804AF84
-
- thumb_func_start sub_804AFB8
-sub_804AFB8: @ 804AFB8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r9, r0
- mov r8, r1
- mov r10, r2
- lsls r3, 24
- lsrs r6, r3, 24
- adds r0, r6, 0x3
- lsrs r6, r0, 2
- ldr r7, _0804B054 @ =gTileBuffer
- mov r0, sp
- movs r5, 0
- strh r5, [r0]
- lsls r4, r6, 6
- movs r0, 0x80
- lsls r0, 17
- orrs r4, r0
- mov r0, sp
- adds r1, r7, 0
- adds r2, r4, 0
- bl CpuSet
- mov r0, sp
- adds r0, 0x2
- strh r5, [r0]
- mov r2, r9
- ldrb r1, [r2, 0xD]
- lsls r1, 5
- adds r1, r7
- adds r2, r4, 0
- bl CpuSet
- mov r0, r9
- adds r1, r7, 0
- mov r2, r10
- bl sub_8004E3C
- movs r4, 0
- cmp r4, r6
- bcs _0804B042
-_0804B010:
- lsls r0, r4, 7
- adds r0, r7, r0
- lsls r1, r4, 8
- add r1, r8
- movs r2, 0x40
- bl CpuSet
- lsls r0, r4, 2
- mov r1, r9
- ldrb r1, [r1, 0xD]
- adds r0, r1
- lsls r0, 5
- adds r0, r7, r0
- lsls r1, r4, 3
- adds r1, 0x4
- lsls r1, 5
- add r1, r8
- movs r2, 0x40
- bl CpuSet
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bcc _0804B010
-_0804B042:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804B054: .4byte gTileBuffer
- thumb_func_end sub_804AFB8
-
- thumb_func_start sub_804B058
-sub_804B058: @ 804B058
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _0804B074
- movs r0, 0x17
- bl PlaySE
- movs r0, 0
- strh r0, [r4, 0x2E]
-_0804B074:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_804B058
-
- thumb_func_start sub_804B07C
-sub_804B07C: @ 804B07C
- push {lr}
- adds r2, r0, 0
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- cmp r1, 0
- bne _0804B0B2
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _0804B098
- strh r1, [r2, 0x2E]
-_0804B098:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- lsls r0, 1
- ldr r1, _0804B0B8 @ =gTradeGlow2PaletteAnimTable
- adds r0, r1
- ldrb r1, [r2, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- lsls r1, 4
- adds r1, 0x4
- movs r2, 0x2
- bl LoadPalette
-_0804B0B2:
- pop {r0}
- bx r0
- .align 2, 0
-_0804B0B8: .4byte gTradeGlow2PaletteAnimTable
- thumb_func_end sub_804B07C
-
- thumb_func_start sub_804B0BC
-sub_804B0BC: @ 804B0BC
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x2E]
- adds r1, 0x1
- strh r1, [r2, 0x2E]
- ldrh r0, [r2, 0x26]
- adds r0, 0x1
- strh r0, [r2, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0xA
- bne _0804B0DA
- adds r0, r2, 0
- bl DestroySprite
-_0804B0DA:
- pop {r0}
- bx r0
- thumb_func_end sub_804B0BC
-
- thumb_func_start sub_804B0E0
-sub_804B0E0: @ 804B0E0
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x2E]
- adds r1, 0x1
- strh r1, [r2, 0x2E]
- ldrh r0, [r2, 0x26]
- subs r0, 0x1
- strh r0, [r2, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0xA
- bne _0804B0FE
- adds r0, r2, 0
- bl DestroySprite
-_0804B0FE:
- pop {r0}
- bx r0
- thumb_func_end sub_804B0E0
-
- thumb_func_start sub_804B104
-sub_804B104: @ 804B104
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bne _0804B120
- movs r0, 0xCC
- bl PlaySE
- movs r0, 0
- strh r0, [r4, 0x2E]
-_0804B120:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_804B104
-
- thumb_func_start sub_804B128
-sub_804B128: @ 804B128
- push {r4,r5,lr}
- sub sp, 0x20
- ldr r0, _0804B1B4 @ =gUnknown_03004828
- ldr r0, [r0]
- mov r12, r0
- movs r0, 0x82
- lsls r0, 1
- add r0, r12
- ldrh r1, [r0]
- lsls r1, 8
- movs r0, 0x83
- lsls r0, 1
- add r0, r12
- ldrh r2, [r0]
- lsls r2, 8
- movs r0, 0x86
- lsls r0, 1
- add r0, r12
- movs r4, 0
- ldrsh r3, [r0, r4]
- movs r0, 0x87
- lsls r0, 1
- add r0, r12
- movs r5, 0
- ldrsh r0, [r0, r5]
- str r0, [sp]
- movs r4, 0x8C
- lsls r4, 1
- add r4, r12
- movs r5, 0
- ldrsh r0, [r4, r5]
- str r0, [sp, 0x4]
- movs r5, 0
- ldrsh r0, [r4, r5]
- str r0, [sp, 0x8]
- movs r0, 0x8E
- lsls r0, 1
- add r0, r12
- ldrh r0, [r0]
- str r0, [sp, 0xC]
- add r0, sp, 0x10
- bl DoBgAffineSet
- ldr r1, _0804B1B8 @ =REG_BG2PA
- add r0, sp, 0x10
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- add r0, sp, 0x10
- ldrh r0, [r0, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- add r0, sp, 0x10
- ldrh r0, [r0, 0x4]
- strh r0, [r1]
- adds r1, 0x2
- add r0, sp, 0x10
- ldrh r0, [r0, 0x6]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, [sp, 0x18]
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [sp, 0x1C]
- str r0, [r1]
- add sp, 0x20
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804B1B4: .4byte gUnknown_03004828
-_0804B1B8: .4byte REG_BG2PA
- thumb_func_end sub_804B128
-
- thumb_func_start sub_804B1BC
-sub_804B1BC: @ 804B1BC
- push {lr}
- ldr r1, _0804B1FC @ =REG_BG1VOFS
- ldr r0, _0804B200 @ =gUnknown_03004828
- ldr r2, [r0]
- movs r3, 0x88
- lsls r3, 1
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- subs r1, 0x2
- adds r3, 0x2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- movs r0, 0x80
- lsls r0, 19
- ldrh r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0804B208
- ldr r1, _0804B204 @ =REG_BG2VOFS
- adds r3, 0x2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- subs r1, 0x2
- adds r3, 0x2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- b _0804B20C
- .align 2, 0
-_0804B1FC: .4byte REG_BG1VOFS
-_0804B200: .4byte gUnknown_03004828
-_0804B204: .4byte REG_BG2VOFS
-_0804B208:
- bl sub_804B128
-_0804B20C:
- pop {r0}
- bx r0
- thumb_func_end sub_804B1BC
-
- thumb_func_start sub_804B210
-sub_804B210: @ 804B210
- push {lr}
- bl sub_804B1BC
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_804B210
-
- thumb_func_start sub_804B228
-sub_804B228: @ 804B228
- push {r4,lr}
- ldr r4, _0804B248 @ =gUnknown_03004828
- ldr r1, [r4]
- adds r2, r1, 0
- adds r2, 0xB4
- movs r3, 0
- movs r0, 0
- strh r0, [r2]
- adds r1, 0xB2
- strb r3, [r1]
- ldr r0, [r4]
- adds r0, 0xB3
- strb r3, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804B248: .4byte gUnknown_03004828
- thumb_func_end sub_804B228
-
- thumb_func_start sub_804B24C
-sub_804B24C: @ 804B24C
- push {r4,r5,lr}
- ldr r1, _0804B270 @ =gUnknown_03004828
- ldr r2, [r1]
- adds r0, r2, 0
- adds r0, 0xB2
- adds r3, r2, 0
- adds r3, 0xB3
- ldrb r0, [r0]
- adds r5, r1, 0
- ldrb r3, [r3]
- cmp r0, r3
- bne _0804B274
- adds r1, r2, 0
- adds r1, 0xB4
- ldrh r0, [r1]
- adds r0, 0x1
- b _0804B27A
- .align 2, 0
-_0804B270: .4byte gUnknown_03004828
-_0804B274:
- adds r1, r2, 0
- adds r1, 0xB4
- movs r0, 0
-_0804B27A:
- strh r0, [r1]
- adds r4, r5, 0
- ldr r3, [r4]
- adds r2, r3, 0
- adds r2, 0xB4
- ldrh r0, [r2]
- cmp r0, 0xB4
- bls _0804B29C
- movs r1, 0
- movs r0, 0
- strh r0, [r2]
- adds r0, r3, 0
- adds r0, 0xB3
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xB2
- strb r1, [r0]
-_0804B29C:
- ldr r0, [r5]
- adds r1, r0, 0
- adds r1, 0xB2
- ldrb r1, [r1]
- adds r0, 0xB3
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_804B24C
-
- thumb_func_start sub_804B2B0
-sub_804B2B0: @ 804B2B0
- push {lr}
- ldr r0, _0804B2C0 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804B2C4
- movs r0, 0
- b _0804B2CC
- .align 2, 0
-_0804B2C0: .4byte gReceivedRemoteLinkPlayers
-_0804B2C4:
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
-_0804B2CC:
- pop {r1}
- bx r1
- thumb_func_end sub_804B2B0
-
- thumb_func_start sub_804B2D0
-sub_804B2D0: @ 804B2D0
- 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
- lsls r1, 24
- lsrs r5, r1, 24
- movs r4, 0
- mov r10, r4
- cmp r7, 0
- bne _0804B2FC
- ldr r0, _0804B324 @ =gUnknown_020297D8
- ldrb r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0804B328 @ =gPlayerParty
- adds r1, r0
- mov r10, r1
- movs r4, 0x1
-_0804B2FC:
- cmp r7, 0x1
- bne _0804B31A
- ldr r0, _0804B324 @ =gUnknown_020297D8
- ldrb r0, [r0, 0x1]
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, _0804B32C @ =gEnemyParty
- adds r1, r0
- mov r10, r1
- movs r4, 0x3
-_0804B31A:
- cmp r5, 0
- beq _0804B330
- cmp r5, 0x1
- beq _0804B3A4
- b _0804B3FA
- .align 2, 0
-_0804B324: .4byte gUnknown_020297D8
-_0804B328: .4byte gPlayerParty
-_0804B32C: .4byte gEnemyParty
-_0804B330:
- mov r0, r10
- movs r1, 0x41
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r0, r10
- movs r1, 0
- bl GetMonData
- mov r9, r0
- lsls r0, r5, 3
- ldr r1, _0804B390 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _0804B394 @ =gMonFrontPicCoords
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- ldr r3, _0804B398 @ =0x02000000
- ldr r6, _0804B39C @ =gUnknown_081FAF4C
- lsls r7, 1
- mov r8, r7
- mov r4, r8
- adds r4, 0x1
- lsls r4, 2
- adds r4, r6
- ldr r4, [r4]
- str r4, [sp]
- str r5, [sp, 0x4]
- mov r4, r9
- str r4, [sp, 0x8]
- bl HandleLoadSpecialPokePic
- mov r0, r10
- bl sub_8040990
- bl LoadCompressedObjectPalette
- ldr r0, _0804B3A0 @ =gUnknown_03004828
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 1
- adds r0, r1
- add r0, r8
- strh r5, [r0]
- b _0804B3FA
- .align 2, 0
-_0804B390: .4byte gMonFrontPicTable
-_0804B394: .4byte gMonFrontPicCoords
-_0804B398: .4byte 0x02000000
-_0804B39C: .4byte gUnknown_081FAF4C
-_0804B3A0: .4byte gUnknown_03004828
-_0804B3A4:
- mov r0, r10
- bl sub_8040990
- ldrh r0, [r0, 0x4]
- adds r1, r4, 0
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _0804B40C @ =gUnknown_02024E8C
- movs r1, 0x78
- movs r2, 0x3C
- movs r3, 0x6
- bl CreateSprite
- ldr r4, _0804B410 @ =gUnknown_03004828
- ldr r1, [r4]
- adds r1, 0xB8
- adds r1, r7
- strb r0, [r1]
- ldr r3, _0804B414 @ =gSprites
- ldr r0, [r4]
- adds r0, 0xB8
- adds r0, r7
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xB8
- adds r0, r7
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, 0x1C
- adds r0, r3
- ldr r1, _0804B418 @ =SpriteCallbackDummy
- str r1, [r0]
-_0804B3FA:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804B40C: .4byte gUnknown_02024E8C
-_0804B410: .4byte gUnknown_03004828
-_0804B414: .4byte gSprites
-_0804B418: .4byte SpriteCallbackDummy
- thumb_func_end sub_804B2D0
-
- thumb_func_start sub_804B41C
-sub_804B41C: @ 804B41C
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r1, _0804B43C @ =gMain
- ldr r2, _0804B440 @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xC
- bls _0804B430
- b _0804B76E
-_0804B430:
- lsls r0, 2
- ldr r1, _0804B444 @ =_0804B448
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804B43C: .4byte gMain
-_0804B440: .4byte 0x0000043c
-_0804B444: .4byte _0804B448
- .align 2, 0
-_0804B448:
- .4byte _0804B47C
- .4byte _0804B5AC
- .4byte _0804B5D4
- .4byte _0804B5FC
- .4byte _0804B648
- .4byte _0804B678
- .4byte _0804B6A8
- .4byte _0804B6B2
- .4byte _0804B6CC
- .4byte _0804B6E4
- .4byte _0804B71C
- .4byte _0804B726
- .4byte _0804B75C
-_0804B47C:
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- bl ResetTasks
- bl CloseLink
- ldr r6, _0804B570 @ =gUnknown_03004828
- ldr r5, _0804B574 @ =0x0201f000
- str r5, [r6]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, _0804B578 @ =sub_804B210
- bl SetVBlankCallback
- bl sub_804B228
- ldr r4, _0804B57C @ =gWindowConfig_81E6F84
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r0, [r6]
- adds r0, 0x4
- adds r1, r4, 0
- bl InitWindowFromConfig
- movs r0, 0x2
- bl SetTextWindowBaseTileNum
- ldr r1, [r6]
- adds r1, 0x34
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x4
- bl LoadTextWindowGraphics
- bl MenuZeroFillScreen
- ldr r1, _0804B580 @ =gLinkType
- ldr r4, _0804B584 @ =0x00001144
- adds r0, r4, 0
- strh r0, [r1]
- ldr r1, _0804B588 @ =gMain
- ldr r0, _0804B58C @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _0804B590 @ =gUnknown_08D00000
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- ldr r0, _0804B594 @ =gUnknown_08D00524
- ldr r1, _0804B598 @ =0xfffe1000
- adds r5, r1
- movs r2, 0x80
- lsls r2, 4
- adds r1, r5, 0
- bl CpuSet
- ldr r1, _0804B59C @ =0x06002800
- ldr r0, _0804B5A0 @ =0x040000d4
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0804B5A4 @ =0x80000280
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _0804B5A8 @ =gUnknown_08D004E0
- movs r1, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, [r6]
- adds r0, r1, 0
- adds r0, 0xB6
- movs r2, 0
- strh r2, [r0]
- adds r0, 0xE
- strh r2, [r0]
- movs r4, 0x8F
- lsls r4, 1
- adds r1, r4
- movs r0, 0x1
- strb r0, [r1]
- ldr r3, [r6]
- movs r1, 0x82
- lsls r1, 1
- adds r0, r3, r1
- movs r1, 0x40
- strh r1, [r0]
- subs r4, 0x18
- adds r0, r3, r4
- strh r1, [r0]
- adds r1, 0xC8
- adds r0, r3, r1
- strh r2, [r0]
- adds r4, 0x4
- adds r0, r3, r4
- strh r2, [r0]
- movs r0, 0x86
- lsls r0, 1
- adds r1, r3, r0
- movs r0, 0x78
- strh r0, [r1]
- adds r4, 0x4
- adds r1, r3, r4
- movs r0, 0x50
- strh r0, [r1]
- adds r0, 0xC8
- adds r1, r3, r0
- subs r0, 0x18
- strh r0, [r1]
- movs r1, 0x8E
- lsls r1, 1
- adds r0, r3, r1
- strh r2, [r0]
- b _0804B76E
- .align 2, 0
-_0804B570: .4byte gUnknown_03004828
-_0804B574: .4byte 0x0201f000
-_0804B578: .4byte sub_804B210
-_0804B57C: .4byte gWindowConfig_81E6F84
-_0804B580: .4byte gLinkType
-_0804B584: .4byte 0x00001144
-_0804B588: .4byte gMain
-_0804B58C: .4byte 0x0000043c
-_0804B590: .4byte gUnknown_08D00000
-_0804B594: .4byte gUnknown_08D00524
-_0804B598: .4byte 0xfffe1000
-_0804B59C: .4byte 0x06002800
-_0804B5A0: .4byte 0x040000d4
-_0804B5A4: .4byte 0x80000280
-_0804B5A8: .4byte gUnknown_08D004E0
-_0804B5AC:
- bl OpenLink
- ldr r1, _0804B5C8 @ =gMain
- ldr r2, _0804B5CC @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, _0804B5D0 @ =gUnknown_03004828
- ldr r0, [r0]
- adds r0, 0xC0
- str r2, [r0]
- b _0804B76E
- .align 2, 0
-_0804B5C8: .4byte gMain
-_0804B5CC: .4byte 0x0000043c
-_0804B5D0: .4byte gUnknown_03004828
-_0804B5D4:
- ldr r0, _0804B5F4 @ =gUnknown_03004828
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x3C
- bhi _0804B5E8
- b _0804B76E
-_0804B5E8:
- movs r0, 0
- str r0, [r1]
- ldr r4, _0804B5F8 @ =0x0000043c
- adds r1, r2, r4
- b _0804B74C
- .align 2, 0
-_0804B5F4: .4byte gUnknown_03004828
-_0804B5F8: .4byte 0x0000043c
-_0804B5FC:
- bl IsLinkMaster
- lsls r0, 24
- cmp r0, 0
- bne _0804B608
- b _0804B746
-_0804B608:
- bl GetLinkPlayerCount_2
- adds r4, r0, 0
- bl sub_800820C
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bcs _0804B61C
- b _0804B76E
-_0804B61C:
- ldr r0, _0804B63C @ =gUnknown_03004828
- ldr r1, [r0]
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x1E
- bhi _0804B62E
- b _0804B76E
-_0804B62E:
- bl sub_8007F4C
- ldr r1, _0804B640 @ =gMain
- ldr r0, _0804B644 @ =0x0000043c
- adds r1, r0
- b _0804B74C
- .align 2, 0
-_0804B63C: .4byte gUnknown_03004828
-_0804B640: .4byte gMain
-_0804B644: .4byte 0x0000043c
-_0804B648:
- bl sub_804B24C
- ldr r0, _0804B66C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0804B656
- b _0804B76E
-_0804B656:
- bl IsLinkPlayerDataExchangeComplete
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0804B664
- b _0804B76E
-_0804B664:
- ldr r1, _0804B670 @ =gMain
- ldr r4, _0804B674 @ =0x0000043c
- adds r1, r4
- b _0804B74C
- .align 2, 0
-_0804B66C: .4byte gReceivedRemoteLinkPlayers
-_0804B670: .4byte gMain
-_0804B674: .4byte 0x0000043c
-_0804B678:
- ldr r2, _0804B69C @ =gUnknown_03004828
- ldr r0, [r2]
- adds r0, 0x9C
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0x9D
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xBD
- strb r1, [r0]
- movs r0, 0
- bl sub_804B2D0
- ldr r1, _0804B6A0 @ =gMain
- ldr r0, _0804B6A4 @ =0x0000043c
- adds r1, r0
- b _0804B74C
- .align 2, 0
-_0804B69C: .4byte gUnknown_03004828
-_0804B6A0: .4byte gMain
-_0804B6A4: .4byte 0x0000043c
-_0804B6A8:
- movs r0, 0
- movs r1, 0x1
- bl sub_804B2D0
- b _0804B746
-_0804B6B2:
- movs r0, 0x1
- movs r1, 0
- bl sub_804B2D0
- ldr r1, _0804B6C4 @ =gMain
- ldr r4, _0804B6C8 @ =0x0000043c
- adds r1, r4
- b _0804B74C
- .align 2, 0
-_0804B6C4: .4byte gMain
-_0804B6C8: .4byte 0x0000043c
-_0804B6CC:
- movs r0, 0x1
- movs r1, 0x1
- bl sub_804B2D0
- ldr r1, _0804B6DC @ =gMain
- ldr r0, _0804B6E0 @ =0x0000043c
- adds r1, r0
- b _0804B74C
- .align 2, 0
-_0804B6DC: .4byte gMain
-_0804B6E0: .4byte 0x0000043c
-_0804B6E4:
- bl sub_804C164
- ldr r0, _0804B704 @ =gUnknown_0821594C
- bl LoadSpriteSheet
- ldr r0, _0804B708 @ =gUnknown_08215954
- bl LoadSpritePalette
- ldr r1, _0804B70C @ =REG_BG1CNT
- ldr r2, _0804B710 @ =0x00000502
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0804B714 @ =gMain
- ldr r4, _0804B718 @ =0x0000043c
- adds r1, r4
- b _0804B74C
- .align 2, 0
-_0804B704: .4byte gUnknown_0821594C
-_0804B708: .4byte gUnknown_08215954
-_0804B70C: .4byte REG_BG1CNT
-_0804B710: .4byte 0x00000502
-_0804B714: .4byte gMain
-_0804B718: .4byte 0x0000043c
-_0804B71C:
- ldr r0, _0804B754 @ =0x0000043c
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0804B726:
- movs r0, 0x5
- bl sub_804BBE8
- movs r0, 0
- bl sub_804BBE8
- bl sub_804C1A8
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_0804B746:
- ldr r1, _0804B758 @ =gMain
- ldr r2, _0804B754 @ =0x0000043c
- adds r1, r2
-_0804B74C:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0804B76E
- .align 2, 0
-_0804B754: .4byte 0x0000043c
-_0804B758: .4byte gMain
-_0804B75C:
- ldr r0, _0804B788 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804B76E
- ldr r0, _0804B78C @ =sub_804DB84
- bl SetMainCallback2
-_0804B76E:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804B788: .4byte gPaletteFade
-_0804B78C: .4byte sub_804DB84
- thumb_func_end sub_804B41C
-
- thumb_func_start sub_804B790
-sub_804B790: @ 804B790
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x10
- ldr r1, _0804B7B4 @ =gMain
- ldr r2, _0804B7B8 @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xC
- bls _0804B7A8
- b _0804B9F2
-_0804B7A8:
- lsls r0, 2
- ldr r1, _0804B7BC @ =_0804B7C0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804B7B4: .4byte gMain
-_0804B7B8: .4byte 0x0000043c
-_0804B7BC: .4byte _0804B7C0
- .align 2, 0
-_0804B7C0:
- .4byte _0804B7F4
- .4byte _0804B9F2
- .4byte _0804B9F2
- .4byte _0804B9F2
- .4byte _0804B9F2
- .4byte _0804B914
- .4byte _0804B92C
- .4byte _0804B944
- .4byte _0804B94E
- .4byte _0804B968
- .4byte _0804B9A0
- .4byte _0804B9AA
- .4byte _0804B9E0
-_0804B7F4:
- ldr r1, _0804B8E0 @ =gUnknown_020297D8
- ldr r0, _0804B8E4 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- movs r6, 0
- strb r0, [r1]
- movs r0, 0x6
- strb r0, [r1, 0x1]
- ldr r4, _0804B8E8 @ =gLinkPlayers + 0x8
- ldr r1, _0804B8EC @ =gSaveBlock2
- adds r0, r4, 0
- bl StringCopy
- ldr r0, _0804B8F0 @ =gEnemyParty
- movs r1, 0x7
- add r2, sp, 0x4
- bl GetMonData
- adds r4, 0x1C
- adds r0, r4, 0
- add r1, sp, 0x4
- bl StringCopy
- movs r0, 0x80
- lsls r0, 19
- movs r3, 0
- mov r8, r3
- strh r6, [r0]
- bl ResetTasks
- ldr r5, _0804B8F4 @ =gUnknown_03004828
- ldr r0, _0804B8F8 @ =0x0201f000
- str r0, [r5]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, _0804B8FC @ =sub_804B210
- bl SetVBlankCallback
- bl sub_804B228
- ldr r4, _0804B900 @ =gWindowConfig_81E717C
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r0, [r5]
- adds r0, 0x4
- adds r1, r4, 0
- bl InitWindowFromConfig
- movs r0, 0x2
- bl SetTextWindowBaseTileNum
- ldr r1, [r5]
- adds r1, 0x34
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0x4
- bl LoadTextWindowGraphics
- bl MenuZeroFillScreen
- ldr r1, _0804B904 @ =gLinkType
- ldr r2, _0804B908 @ =0x00001144
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, [r5]
- movs r3, 0x8F
- lsls r3, 1
- adds r0, r3
- mov r1, r8
- strb r1, [r0]
- ldr r2, [r5]
- adds r0, r2, 0
- adds r0, 0xB6
- strh r6, [r0]
- adds r0, 0xE
- strh r6, [r0]
- subs r3, 0x1A
- adds r0, r2, r3
- movs r1, 0x40
- strh r1, [r0]
- adds r3, 0x2
- adds r0, r2, r3
- strh r1, [r0]
- adds r1, 0xC8
- adds r0, r2, r1
- strh r6, [r0]
- adds r3, 0x4
- adds r0, r2, r3
- strh r6, [r0]
- movs r0, 0x86
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0x78
- strh r0, [r1]
- adds r3, 0x4
- adds r1, r2, r3
- movs r0, 0x50
- strh r0, [r1]
- adds r0, 0xC8
- adds r1, r2, r0
- subs r0, 0x18
- strh r0, [r1]
- movs r1, 0x8E
- lsls r1, 1
- adds r0, r2, r1
- strh r6, [r0]
- adds r0, r2, 0
- adds r0, 0xC0
- str r6, [r0]
- ldr r0, _0804B90C @ =gMain
- ldr r2, _0804B910 @ =0x0000043c
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0]
- b _0804B9F2
- .align 2, 0
-_0804B8E0: .4byte gUnknown_020297D8
-_0804B8E4: .4byte gSpecialVar_0x8005
-_0804B8E8: .4byte gLinkPlayers + 0x8
-_0804B8EC: .4byte gSaveBlock2
-_0804B8F0: .4byte gEnemyParty
-_0804B8F4: .4byte gUnknown_03004828
-_0804B8F8: .4byte 0x0201f000
-_0804B8FC: .4byte sub_804B210
-_0804B900: .4byte gWindowConfig_81E717C
-_0804B904: .4byte gLinkType
-_0804B908: .4byte 0x00001144
-_0804B90C: .4byte gMain
-_0804B910: .4byte 0x0000043c
-_0804B914:
- movs r0, 0
- movs r1, 0
- bl sub_804B2D0
- ldr r1, _0804B924 @ =gMain
- ldr r3, _0804B928 @ =0x0000043c
- adds r1, r3
- b _0804B9D0
- .align 2, 0
-_0804B924: .4byte gMain
-_0804B928: .4byte 0x0000043c
-_0804B92C:
- movs r0, 0
- movs r1, 0x1
- bl sub_804B2D0
- ldr r1, _0804B93C @ =gMain
- ldr r0, _0804B940 @ =0x0000043c
- adds r1, r0
- b _0804B9D0
- .align 2, 0
-_0804B93C: .4byte gMain
-_0804B940: .4byte 0x0000043c
-_0804B944:
- movs r0, 0x1
- movs r1, 0
- bl sub_804B2D0
- b _0804B9CA
-_0804B94E:
- movs r0, 0x1
- movs r1, 0x1
- bl sub_804B2D0
- ldr r1, _0804B960 @ =gMain
- ldr r3, _0804B964 @ =0x0000043c
- adds r1, r3
- b _0804B9D0
- .align 2, 0
-_0804B960: .4byte gMain
-_0804B964: .4byte 0x0000043c
-_0804B968:
- bl sub_804C164
- ldr r0, _0804B988 @ =gUnknown_0821594C
- bl LoadSpriteSheet
- ldr r0, _0804B98C @ =gUnknown_08215954
- bl LoadSpritePalette
- ldr r1, _0804B990 @ =REG_BG1CNT
- ldr r2, _0804B994 @ =0x00000502
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0804B998 @ =gMain
- ldr r3, _0804B99C @ =0x0000043c
- adds r1, r3
- b _0804B9D0
- .align 2, 0
-_0804B988: .4byte gUnknown_0821594C
-_0804B98C: .4byte gUnknown_08215954
-_0804B990: .4byte REG_BG1CNT
-_0804B994: .4byte 0x00000502
-_0804B998: .4byte gMain
-_0804B99C: .4byte 0x0000043c
-_0804B9A0:
- ldr r0, _0804B9D8 @ =0x0000043c
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0804B9AA:
- movs r0, 0x5
- bl sub_804BBE8
- movs r0, 0
- bl sub_804BBE8
- bl sub_804C1A8
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_0804B9CA:
- ldr r1, _0804B9DC @ =gMain
- ldr r2, _0804B9D8 @ =0x0000043c
- adds r1, r2
-_0804B9D0:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0804B9F2
- .align 2, 0
-_0804B9D8: .4byte 0x0000043c
-_0804B9DC: .4byte gMain
-_0804B9E0:
- ldr r0, _0804BA10 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804B9F2
- ldr r0, _0804BA14 @ =sub_804BBCC
- bl SetMainCallback2
-_0804B9F2:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804BA10: .4byte gPaletteFade
-_0804BA14: .4byte sub_804BBCC
- thumb_func_end sub_804B790
-
- thumb_func_start sub_804BA18
-sub_804BA18: @ 804BA18
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, _0804BA60 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0804BA5A
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl SpeciesToNationalPokedexNum
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0x2
- bl GetNationalPokedexFlag
- adds r0, r4, 0
- movs r1, 0x3
- bl GetNationalPokedexFlag
-_0804BA5A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804BA60: .4byte gPlayerParty
- thumb_func_end sub_804BA18
-
- thumb_func_start sub_804BA64
-sub_804BA64: @ 804BA64
- push {lr}
- bl GetMultiplayerId
- lsls r0, 24
- ldr r2, _0804BA90 @ =gLinkPlayers
- movs r1, 0x80
- lsls r1, 17
- eors r1, r0
- lsrs r1, 24
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2]
- movs r0, 0x80
- lsls r0, 8
- cmp r1, r0
- bne _0804BA8C
- bl EnableNationalPokedex
-_0804BA8C:
- pop {r0}
- bx r0
- .align 2, 0
-_0804BA90: .4byte gLinkPlayers
- thumb_func_end sub_804BA64
-
- thumb_func_start sub_804BA94
-sub_804BA94: @ 804BA94
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r4, 24
- lsrs r4, 24
- movs r5, 0x64
- mov r1, r9
- muls r1, r5
- ldr r0, _0804BB60 @ =gPlayerParty
- adds r7, r1, r0
- adds r0, r7, 0
- movs r1, 0x40
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r1, r4, 0
- muls r1, r5
- ldr r0, _0804BB64 @ =gEnemyParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x40
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r6, 0xFF
- beq _0804BAE8
- lsls r0, r6, 3
- adds r0, r6
- lsls r0, 2
- ldr r1, _0804BB68 @ =gSaveBlock1 + 0x2B4C
- adds r0, r1
- bl ClearMailStruct
-_0804BAE8:
- ldr r4, _0804BB6C @ =gUnknown_03004828
- ldr r0, [r4]
- adds r0, 0x38
- adds r1, r7, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r7, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- ldr r1, [r4]
- adds r1, 0x38
- adds r0, r5, 0
- movs r2, 0x64
- bl memcpy
- movs r1, 0x46
- mov r0, sp
- strb r1, [r0]
- adds r0, r7, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0804BB28
- adds r0, r7, 0
- movs r1, 0x20
- mov r2, sp
- bl SetMonData
-_0804BB28:
- mov r0, r8
- cmp r0, 0xFF
- beq _0804BB3E
- lsls r1, r0, 3
- add r1, r8
- lsls r1, 2
- ldr r0, _0804BB70 @ =gUnknown_02029700
- adds r1, r0
- adds r0, r7, 0
- bl GiveMailToMon2
-_0804BB3E:
- mov r0, r9
- bl sub_804BA18
- ldr r0, _0804BB74 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804BB50
- bl sub_804BA64
-_0804BB50:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804BB60: .4byte gPlayerParty
-_0804BB64: .4byte gEnemyParty
-_0804BB68: .4byte gSaveBlock1 + 0x2B4C
-_0804BB6C: .4byte gUnknown_03004828
-_0804BB70: .4byte gUnknown_02029700
-_0804BB74: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end sub_804BA94
-
- thumb_func_start sub_804BB78
-sub_804BB78: @ 804BB78
- push {r4,lr}
- ldr r4, _0804BB8C @ =gUnknown_03004828
- ldr r0, [r4]
- adds r0, 0xBD
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0804BB90
- cmp r0, 0x2
- beq _0804BBB6
- b _0804BBC0
- .align 2, 0
-_0804BB8C: .4byte gUnknown_03004828
-_0804BB90:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _0804BBB6
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, 0x9E
- movs r2, 0x14
- bl SendBlock
- ldr r1, [r4]
- adds r1, 0xBD
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0804BBB6:
- ldr r0, _0804BBC8 @ =gUnknown_03004828
- ldr r0, [r0]
- adds r0, 0xBD
- movs r1, 0
- strb r1, [r0]
-_0804BBC0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804BBC8: .4byte gUnknown_03004828
- thumb_func_end sub_804BB78
-
- thumb_func_start sub_804BBCC
-sub_804BBCC: @ 804BBCC
- push {lr}
- bl sub_804C29C
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_804BBCC
-
- thumb_func_start sub_804BBE8
-sub_804BBE8: @ 804BBE8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x7
- bls _0804BBF4
- b _0804C0CA
-_0804BBF4:
- lsls r0, 2
- ldr r1, _0804BC00 @ =_0804BC04
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804BC00: .4byte _0804BC04
- .align 2, 0
-_0804BC04:
- .4byte _0804BC24
- .4byte _0804BCC4
- .4byte _0804BD5C
- .4byte _0804BDA4
- .4byte _0804BE48
- .4byte _0804BEF8
- .4byte _0804BFA0
- .4byte _0804C060
-_0804BC24:
- ldr r0, _0804BCA0 @ =gUnknown_0820C9F8
- movs r1, 0x10
- movs r2, 0xA0
- bl LoadPalette
- ldr r3, _0804BCA4 @ =gUnknown_0820CA98
- ldr r4, _0804BCA8 @ =0x06004000
- movs r5, 0x98
- lsls r5, 5
- ldr r1, _0804BCAC @ =0x040000d4
- ldr r6, _0804BCB0 @ =0x80000800
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_0804BC42:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _0804BC42
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _0804BCB4 @ =gUnknown_0820F798
- ldr r2, _0804BCB8 @ =0x06009000
- ldr r0, _0804BCAC @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0804BCB0 @ =0x80000800
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _0804BCBC @ =gUnknown_03004828
- ldr r2, [r0]
- movs r0, 0x8A
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0
- strh r0, [r1]
- movs r3, 0x8B
- lsls r3, 1
- adds r1, r2, r3
- movs r0, 0xB4
- strh r0, [r1]
- movs r1, 0x80
- lsls r1, 19
- movs r4, 0xBA
- lsls r4, 5
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0xC
- ldr r2, _0804BCC0 @ =0x00005206
- adds r0, r2, 0
- strh r0, [r1]
- b _0804C0CA
- .align 2, 0
-_0804BCA0: .4byte gUnknown_0820C9F8
-_0804BCA4: .4byte gUnknown_0820CA98
-_0804BCA8: .4byte 0x06004000
-_0804BCAC: .4byte 0x040000d4
-_0804BCB0: .4byte 0x80000800
-_0804BCB4: .4byte gUnknown_0820F798
-_0804BCB8: .4byte 0x06009000
-_0804BCBC: .4byte gUnknown_03004828
-_0804BCC0: .4byte 0x00005206
-_0804BCC4:
- ldr r0, _0804BD3C @ =gUnknown_03004828
- ldr r2, [r0]
- movs r3, 0x89
- lsls r3, 1
- adds r1, r2, r3
- movs r0, 0
- strh r0, [r1]
- movs r4, 0x88
- lsls r4, 1
- adds r0, r2, r4
- movs r1, 0xAE
- lsls r1, 1
- strh r1, [r0]
- ldr r0, _0804BD40 @ =REG_BG1VOFS
- strh r1, [r0]
- ldr r1, _0804BD44 @ =REG_BG1CNT
- ldr r2, _0804BD48 @ =0x00008502
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0804BD4C @ =gUnknown_08210798
- ldr r2, _0804BD50 @ =0x06002800
- movs r3, 0x80
- lsls r3, 5
- adds r1, 0xCA
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r4, [r1, 0x8]
- ldr r4, _0804BD54 @ =gUnknown_0820CA98
- movs r5, 0xC0
- lsls r5, 19
- movs r6, 0x98
- lsls r6, 5
- adds r7, r0, 0
-_0804BD10:
- str r4, [r1]
- str r5, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r4, r3
- adds r5, r3
- subs r6, r3
- cmp r6, r3
- bhi _0804BD10
- str r4, [r1]
- str r5, [r1, 0x4]
- lsrs r0, r6, 1
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r1, 0x80
- lsls r1, 19
- ldr r3, _0804BD58 @ =0x00001241
- adds r0, r3, 0
- strh r0, [r1]
- b _0804C0CA
- .align 2, 0
-_0804BD3C: .4byte gUnknown_03004828
-_0804BD40: .4byte REG_BG1VOFS
-_0804BD44: .4byte REG_BG1CNT
-_0804BD48: .4byte 0x00008502
-_0804BD4C: .4byte gUnknown_08210798
-_0804BD50: .4byte 0x06002800
-_0804BD54: .4byte gUnknown_0820CA98
-_0804BD58: .4byte 0x00001241
-_0804BD5C:
- ldr r0, _0804BD8C @ =gUnknown_03004828
- ldr r2, [r0]
- movs r4, 0x88
- lsls r4, 1
- adds r0, r2, r4
- movs r1, 0
- strh r1, [r0]
- movs r3, 0x89
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- movs r1, 0x80
- lsls r1, 19
- ldr r4, _0804BD90 @ =0x00001241
- adds r0, r4, 0
- strh r0, [r1]
- ldr r1, _0804BD94 @ =gUnknown_08211798
- ldr r2, _0804BD98 @ =0x06002800
- ldr r0, _0804BD9C @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0804BDA0 @ =0x80000400
- b _0804C0C6
- .align 2, 0
-_0804BD8C: .4byte gUnknown_03004828
-_0804BD90: .4byte 0x00001241
-_0804BD94: .4byte gUnknown_08211798
-_0804BD98: .4byte 0x06002800
-_0804BD9C: .4byte 0x040000d4
-_0804BDA0: .4byte 0x80000400
-_0804BDA4:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x92
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0804BE24 @ =gUnknown_03004828
- ldr r3, [r0]
- movs r4, 0x82
- lsls r4, 1
- adds r1, r3, r4
- movs r2, 0
- movs r0, 0x40
- strh r0, [r1]
- adds r4, 0x2
- adds r1, r3, r4
- strh r0, [r1]
- adds r0, 0xCC
- adds r1, r3, r0
- movs r0, 0x78
- strh r0, [r1]
- adds r4, 0x8
- adds r1, r3, r4
- ldr r0, _0804BE28 @ =0x0000ffba
- strh r0, [r1]
- movs r1, 0x8E
- lsls r1, 1
- adds r0, r3, r1
- strh r2, [r0]
- ldr r3, _0804BE2C @ =gUnknown_0820DD98
- ldr r4, _0804BE30 @ =0x06004000
- movs r5, 0xD0
- lsls r5, 5
- ldr r2, _0804BE34 @ =gUnknown_08211F98
- mov r12, r2
- ldr r1, _0804BE38 @ =0x040000d4
- ldr r6, _0804BE3C @ =0x80000800
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_0804BDF6:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _0804BDF6
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _0804BE40 @ =0x06009000
- ldr r0, _0804BE38 @ =0x040000d4
- mov r3, r12
- str r3, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0804BE44 @ =0x80000080
- b _0804C0C6
- .align 2, 0
-_0804BE24: .4byte gUnknown_03004828
-_0804BE28: .4byte 0x0000ffba
-_0804BE2C: .4byte gUnknown_0820DD98
-_0804BE30: .4byte 0x06004000
-_0804BE34: .4byte gUnknown_08211F98
-_0804BE38: .4byte 0x040000d4
-_0804BE3C: .4byte 0x80000800
-_0804BE40: .4byte 0x06009000
-_0804BE44: .4byte 0x80000080
-_0804BE48:
- movs r1, 0x80
- lsls r1, 19
- ldr r4, _0804BED0 @ =0x00001441
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0xC
- ldr r2, _0804BED4 @ =0x00001287
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0804BED8 @ =gUnknown_03004828
- ldr r3, [r0]
- movs r4, 0x82
- lsls r4, 1
- adds r1, r3, r4
- movs r2, 0
- movs r0, 0x40
- strh r0, [r1]
- adds r0, 0xC6
- adds r1, r3, r0
- movs r0, 0x5C
- strh r0, [r1]
- adds r4, 0x14
- adds r1, r3, r4
- movs r0, 0x20
- strh r0, [r1]
- adds r0, 0xFA
- adds r1, r3, r0
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r1]
- movs r1, 0x8E
- lsls r1, 1
- adds r0, r3, r1
- strh r2, [r0]
- ldr r3, _0804BEDC @ =gUnknown_08213738
- ldr r4, _0804BEE0 @ =0x06004000
- movs r5, 0x81
- lsls r5, 6
- ldr r2, _0804BEE4 @ =gUnknown_08215778
- mov r12, r2
- ldr r1, _0804BEE8 @ =0x040000d4
- ldr r6, _0804BEEC @ =0x80000800
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_0804BEA4:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _0804BEA4
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _0804BEF0 @ =0x06009000
- ldr r0, _0804BEE8 @ =0x040000d4
- mov r3, r12
- str r3, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0804BEF4 @ =0x80000080
- b _0804C0C6
- .align 2, 0
-_0804BED0: .4byte 0x00001441
-_0804BED4: .4byte 0x00001287
-_0804BED8: .4byte gUnknown_03004828
-_0804BEDC: .4byte gUnknown_08213738
-_0804BEE0: .4byte 0x06004000
-_0804BEE4: .4byte gUnknown_08215778
-_0804BEE8: .4byte 0x040000d4
-_0804BEEC: .4byte 0x80000800
-_0804BEF0: .4byte 0x06009000
-_0804BEF4: .4byte 0x80000080
-_0804BEF8:
- ldr r0, _0804BF78 @ =gUnknown_03004828
- ldr r2, [r0]
- movs r4, 0x88
- lsls r4, 1
- adds r0, r2, r4
- movs r1, 0
- strh r1, [r0]
- movs r3, 0x89
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- ldr r1, _0804BF7C @ =REG_BG1CNT
- ldr r4, _0804BF80 @ =0x00000502
- adds r0, r4, 0
- strh r0, [r1]
- ldr r0, _0804BF84 @ =gUnknown_08D00000
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- ldr r0, _0804BF88 @ =gUnknown_08D00524
- ldr r4, _0804BF8C @ =0x02000000
- movs r2, 0x80
- lsls r2, 4
- adds r1, r4, 0
- bl CpuSet
- ldr r0, _0804BF90 @ =gUnknown_08D004E0
- movs r1, 0x70
- movs r2, 0x20
- bl LoadCompressedPalette
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- movs r0, 0xE0
- lsls r0, 7
- adds r2, r0, 0
- movs r1, 0xA0
- lsls r1, 2
-_0804BF4C:
- ldrh r0, [r4]
- orrs r0, r2
- strh r0, [r4]
- adds r4, 0x2
- subs r1, 0x1
- cmp r1, 0
- bne _0804BF4C
- ldr r1, _0804BF8C @ =0x02000000
- ldr r2, _0804BF94 @ =0x06002800
- ldr r0, _0804BF98 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0804BF9C @ =0x80000280
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- b _0804C0CA
- .align 2, 0
-_0804BF78: .4byte gUnknown_03004828
-_0804BF7C: .4byte REG_BG1CNT
-_0804BF80: .4byte 0x00000502
-_0804BF84: .4byte gUnknown_08D00000
-_0804BF88: .4byte gUnknown_08D00524
-_0804BF8C: .4byte 0x02000000
-_0804BF90: .4byte gUnknown_08D004E0
-_0804BF94: .4byte 0x06002800
-_0804BF98: .4byte 0x040000d4
-_0804BF9C: .4byte 0x80000280
-_0804BFA0:
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _0804C038 @ =0x00001441
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0xC
- ldr r3, _0804C03C @ =0x00001287
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0804C040 @ =gUnknown_03004828
- ldr r3, [r0]
- movs r4, 0x82
- lsls r4, 1
- adds r1, r3, r4
- movs r2, 0
- movs r0, 0x40
- strh r0, [r1]
- adds r0, 0xC6
- adds r1, r3, r0
- movs r0, 0x5C
- strh r0, [r1]
- adds r4, 0x14
- adds r1, r3, r4
- adds r0, 0xA4
- strh r0, [r1]
- adds r0, 0x1A
- adds r1, r3, r0
- movs r0, 0x80
- strh r0, [r1]
- subs r4, 0xC
- adds r1, r3, r4
- movs r0, 0x78
- strh r0, [r1]
- adds r0, 0x96
- adds r1, r3, r0
- movs r0, 0x50
- strh r0, [r1]
- movs r1, 0x8E
- lsls r1, 1
- adds r0, r3, r1
- strh r2, [r0]
- ldr r3, _0804C044 @ =gUnknown_08213738
- ldr r4, _0804C048 @ =0x06004000
- movs r5, 0x81
- lsls r5, 6
- ldr r2, _0804C04C @ =gUnknown_08215778
- mov r12, r2
- ldr r1, _0804C050 @ =0x040000d4
- ldr r6, _0804C054 @ =0x80000800
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_0804C00A:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _0804C00A
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _0804C058 @ =0x06009000
- ldr r0, _0804C050 @ =0x040000d4
- mov r3, r12
- str r3, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0804C05C @ =0x80000080
- b _0804C0C6
- .align 2, 0
-_0804C038: .4byte 0x00001441
-_0804C03C: .4byte 0x00001287
-_0804C040: .4byte gUnknown_03004828
-_0804C044: .4byte gUnknown_08213738
-_0804C048: .4byte 0x06004000
-_0804C04C: .4byte gUnknown_08215778
-_0804C050: .4byte 0x040000d4
-_0804C054: .4byte 0x80000800
-_0804C058: .4byte 0x06009000
-_0804C05C: .4byte 0x80000080
-_0804C060:
- ldr r0, _0804C0D0 @ =gUnknown_03004828
- ldr r2, [r0]
- movs r4, 0x8A
- lsls r4, 1
- adds r0, r2, r4
- movs r1, 0
- strh r1, [r0]
- movs r3, 0x8B
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- ldr r1, _0804C0D4 @ =REG_BG2CNT
- ldr r4, _0804C0D8 @ =0x00005206
- adds r0, r4, 0
- strh r0, [r1]
- ldr r0, _0804C0DC @ =gUnknown_0820C9F8
- movs r1, 0x10
- movs r2, 0xA0
- bl LoadPalette
- ldr r3, _0804C0E0 @ =gUnknown_0820CA98
- ldr r4, _0804C0E4 @ =0x06004000
- movs r5, 0x98
- lsls r5, 5
- ldr r1, _0804C0E8 @ =0x040000d4
- ldr r6, _0804C0EC @ =0x80000800
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_0804C09C:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _0804C09C
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _0804C0F0 @ =gUnknown_0820F798
- ldr r2, _0804C0F4 @ =0x06009000
- ldr r0, _0804C0E8 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0804C0EC @ =0x80000800
-_0804C0C6:
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
-_0804C0CA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804C0D0: .4byte gUnknown_03004828
-_0804C0D4: .4byte REG_BG2CNT
-_0804C0D8: .4byte 0x00005206
-_0804C0DC: .4byte gUnknown_0820C9F8
-_0804C0E0: .4byte gUnknown_0820CA98
-_0804C0E4: .4byte 0x06004000
-_0804C0E8: .4byte 0x040000d4
-_0804C0EC: .4byte 0x80000800
-_0804C0F0: .4byte gUnknown_0820F798
-_0804C0F4: .4byte 0x06009000
- thumb_func_end sub_804BBE8
-
- thumb_func_start sub_804C0F8
-sub_804C0F8: @ 804C0F8
- push {lr}
- lsls r0, 24
- cmp r0, 0
- bne _0804C130
- ldr r0, _0804C128 @ =gUnknown_03004828
- ldr r2, [r0]
- movs r1, 0x88
- lsls r1, 1
- adds r0, r2, r1
- movs r3, 0
- ldrsh r1, [r0, r3]
- ldr r0, _0804C12C @ =0x00000109
- cmp r1, r0
- bgt _0804C15A
- adds r0, 0x5
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r3, 0x8E
- lsls r3, 1
- adds r1, r2, r3
- b _0804C154
- .align 2, 0
-_0804C128: .4byte gUnknown_03004828
-_0804C12C: .4byte 0x00000109
-_0804C130:
- ldr r0, _0804C160 @ =gUnknown_03004828
- ldr r0, [r0]
- mov r12, r0
- movs r2, 0x87
- lsls r2, 1
- add r2, r12
- ldrh r3, [r2]
- movs r0, 0
- ldrsh r1, [r2, r0]
- movs r0, 0x40
- negs r0, r0
- cmp r1, r0
- ble _0804C15A
- subs r0, r3, 0x1
- strh r0, [r2]
- movs r1, 0x8E
- lsls r1, 1
- add r1, r12
-_0804C154:
- ldrh r0, [r1]
- adds r0, 0x40
- strh r0, [r1]
-_0804C15A:
- pop {r0}
- bx r0
- .align 2, 0
-_0804C160: .4byte gUnknown_03004828
- thumb_func_end sub_804C0F8
-
- thumb_func_start sub_804C164
-sub_804C164: @ 804C164
- push {lr}
- ldr r0, _0804C190 @ =gUnknown_082159A4
- bl LoadSpriteSheet
- ldr r0, _0804C194 @ =gUnknown_082159F4
- bl LoadSpriteSheet
- ldr r0, _0804C198 @ =gUnknown_08215A28
- bl LoadSpriteSheet
- ldr r0, _0804C19C @ =gUnknown_08215A78
- bl LoadSpriteSheet
- ldr r0, _0804C1A0 @ =gUnknown_082159AC
- bl LoadSpritePalette
- ldr r0, _0804C1A4 @ =gUnknown_082159B4
- bl LoadSpritePalette
- pop {r0}
- bx r0
- .align 2, 0
-_0804C190: .4byte gUnknown_082159A4
-_0804C194: .4byte gUnknown_082159F4
-_0804C198: .4byte gUnknown_08215A28
-_0804C19C: .4byte gUnknown_08215A78
-_0804C1A0: .4byte gUnknown_082159AC
-_0804C1A4: .4byte gUnknown_082159B4
- thumb_func_end sub_804C164
-
- thumb_func_start sub_804C1A8
-sub_804C1A8: @ 804C1A8
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r0, _0804C21C @ =gUnknown_03004828
- ldr r0, [r0]
- movs r1, 0x8F
- lsls r1, 1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804C23C
- bl GetMultiplayerId
- lsls r0, 24
- ldr r3, _0804C220 @ =gStringVar1
- movs r2, 0x80
- lsls r2, 17
- eors r2, r0
- lsrs r2, 24
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- ldr r0, _0804C224 @ =gLinkPlayers + 0x8
- adds r1, r0
- adds r0, r3, 0
- bl StringCopy
- ldr r5, _0804C228 @ =gUnknown_020297D8
- ldrb r0, [r5, 0x1]
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0x64
- muls r0, r4
- ldr r1, _0804C22C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- ldr r0, _0804C230 @ =gStringVar3
- mov r1, sp
- bl StringCopy10
- ldrb r0, [r5]
- muls r0, r4
- ldr r1, _0804C234 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- ldr r0, _0804C238 @ =gStringVar2
- mov r1, sp
- bl StringCopy10
- b _0804C278
- .align 2, 0
-_0804C21C: .4byte gUnknown_03004828
-_0804C220: .4byte gStringVar1
-_0804C224: .4byte gLinkPlayers + 0x8
-_0804C228: .4byte gUnknown_020297D8
-_0804C22C: .4byte gEnemyParty
-_0804C230: .4byte gStringVar3
-_0804C234: .4byte gPlayerParty
-_0804C238: .4byte gStringVar2
-_0804C23C:
- ldr r0, _0804C280 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r4, r0, 4
- subs r4, r0
- lsls r4, 2
- ldr r0, _0804C284 @ =gIngameTrades
- adds r4, r0
- ldr r0, _0804C288 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x2B
- bl StringCopy
- ldr r0, _0804C28C @ =gStringVar3
- adds r1, r4, 0
- bl StringCopy10
- ldr r0, _0804C290 @ =gSpecialVar_0x8005
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0804C294 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- ldr r0, _0804C298 @ =gStringVar2
- mov r1, sp
- bl StringCopy10
-_0804C278:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804C280: .4byte gSpecialVar_0x8004
-_0804C284: .4byte gIngameTrades
-_0804C288: .4byte gStringVar1
-_0804C28C: .4byte gStringVar3
-_0804C290: .4byte gSpecialVar_0x8005
-_0804C294: .4byte gPlayerParty
-_0804C298: .4byte gStringVar2
- thumb_func_end sub_804C1A8
-
- thumb_func_start sub_804C29C
-sub_804C29C: @ 804C29C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r1, _0804C2C0 @ =gUnknown_03004828
- ldr r0, [r1]
- adds r0, 0xC4
- ldrh r0, [r0]
- adds r6, r1, 0
- cmp r0, 0xC8
- bls _0804C2B6
- bl _0804D570
-_0804C2B6:
- lsls r0, 2
- ldr r1, _0804C2C4 @ =_0804C2C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804C2C0: .4byte gUnknown_03004828
-_0804C2C4: .4byte _0804C2C8
- .align 2, 0
-_0804C2C8:
- .4byte _0804C5EC
- .4byte _0804C66C
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804C6C8
- .4byte _0804C704
- .4byte _0804C79C
- .4byte _0804D570
- .4byte _0804C824
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804C848
- .4byte _0804C868
- .4byte _0804C87A
- .4byte _0804C89C
- .4byte _0804C8F4
- .4byte _0804C92C
- .4byte _0804C978
- .4byte _0804C9C8
- .4byte _0804CA1C
- .4byte _0804CAB4
- .4byte _0804CAD8
- .4byte _0804CB24
- .4byte _0804CB70
- .4byte _0804CBCC
- .4byte _0804CC2C
- .4byte _0804CC40
- .4byte _0804CC54
- .4byte _0804CC68
- .4byte _0804CD94
- .4byte _0804CE64
- .4byte _0804CEEC
- .4byte _0804CF68
- .4byte _0804CF78
- .4byte _0804CFA0
- .4byte _0804CFFC
- .4byte _0804D028
- .4byte _0804D054
- .4byte _0804D06A
- .4byte _0804D0D4
- .4byte _0804D570
- .4byte _0804D0FC
- .4byte _0804D13C
- .4byte _0804D182
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D1A4
- .4byte _0804D1C4
- .4byte _0804D1D2
- .4byte _0804D1F4
- .4byte _0804D2A8
- .4byte _0804D2E4
- .4byte _0804D314
- .4byte _0804D3C4
- .4byte _0804D41C
- .4byte _0804D48C
- .4byte _0804D4A0
- .4byte _0804D4A6
- .4byte _0804D4CC
- .4byte _0804D528
- .4byte _0804D54C
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804D570
- .4byte _0804CA54
-_0804C5EC:
- ldr r3, _0804C65C @ =gSprites
- ldr r0, [r6]
- adds r0, 0xB8
- 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]
- ldr r4, [r6]
- adds r2, r4, 0
- adds r2, 0xB8
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, _0804C660 @ =0x0000ff4c
- strh r1, [r0, 0x24]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldr r2, _0804C664 @ =gMonFrontPicCoords
- movs r3, 0x90
- lsls r3, 1
- adds r0, r4, r3
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- strh r0, [r1, 0x26]
- adds r1, r4, 0
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- bl GetCurrentMapMusic
- ldr r1, [r6]
- movs r7, 0x92
- lsls r7, 1
- adds r1, r7
- strh r0, [r1]
- ldr r0, _0804C668 @ =0x00000179
- bl PlayBGM
- bl _0804D570
- .align 2, 0
-_0804C65C: .4byte gSprites
-_0804C660: .4byte 0x0000ff4c
-_0804C664: .4byte gMonFrontPicCoords
-_0804C668: .4byte 0x00000179
-_0804C66C:
- ldr r4, [r6]
- movs r0, 0x8B
- lsls r0, 1
- adds r5, r4, r0
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- ble _0804C6A0
- ldr r2, _0804C69C @ =gSprites
- adds r0, r4, 0
- adds r0, 0xB8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- adds r1, 0x3
- strh r1, [r0, 0x24]
- ldrh r0, [r5]
- subs r0, 0x3
- strh r0, [r5]
- bl _0804D570
- .align 2, 0
-_0804C69C: .4byte gSprites
-_0804C6A0:
- ldr r2, _0804C6C4 @ =gSprites
- adds r0, r4, 0
- adds r0, 0xB8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x24]
- strh r1, [r5]
- adds r1, r4, 0
- adds r1, 0xC4
- movs r0, 0xA
- strh r0, [r1]
- bl _0804D570
- .align 2, 0
-_0804C6C4: .4byte gSprites
-_0804C6C8:
- ldr r5, _0804C6F8 @ =gStringVar4
- ldr r1, _0804C6FC @ =gTradeText_WillBeSent
- adds r0, r5, 0
- bl StringExpandPlaceholders
- ldr r4, _0804C700 @ =gUnknown_03004828
- ldr r1, [r4]
- adds r0, r1, 0x4
- adds r1, 0x34
- ldrb r2, [r1]
- movs r1, 0xF
- str r1, [sp]
- adds r1, r5, 0
- movs r3, 0x2
- bl sub_8003460
- ldr r1, [r4]
- adds r2, r1, 0
- adds r2, 0xC4
- movs r3, 0
- movs r0, 0xB
- bl _0804D40C
- .align 2, 0
-_0804C6F8: .4byte gStringVar4
-_0804C6FC: .4byte gTradeText_WillBeSent
-_0804C700: .4byte gUnknown_03004828
-_0804C704:
- ldr r2, [r6]
- adds r1, r2, 0
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x50
- beq _0804C718
- bl _0804D570
-_0804C718:
- adds r0, r2, 0
- adds r0, 0xB8
- ldrb r0, [r0]
- ldr r2, _0804C78C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- movs r2, 0x2
- str r2, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r2, 0x14
- str r2, [sp, 0x8]
- ldr r2, _0804C790 @ =0x000fffff
- str r2, [sp, 0xC]
- movs r2, 0x78
- movs r3, 0x20
- bl sub_8047580
- ldr r1, [r6]
- movs r2, 0x81
- lsls r2, 1
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r6]
- adds r2, r0, 0
- adds r2, 0xC4
- ldrh r1, [r2]
- adds r1, 0x1
- strh r1, [r2]
- adds r0, 0x4
- movs r1, 0x13
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x1D
- bl ZeroFillWindowRect
- ldr r4, _0804C794 @ =gStringVar4
- ldr r1, _0804C798 @ =gTradeText_ByeBye
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r1, [r6]
- adds r0, r1, 0x4
- adds r1, 0x34
- ldrb r2, [r1]
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x2
- bl sub_8003460
- bl _0804D570
- .align 2, 0
-_0804C78C: .4byte gSprites
-_0804C790: .4byte 0x000fffff
-_0804C794: .4byte gStringVar4
-_0804C798: .4byte gTradeText_ByeBye
-_0804C79C:
- ldr r7, _0804C810 @ =gSprites
- ldr r2, [r6]
- movs r5, 0x81
- lsls r5, 1
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r7, 0
- adds r4, 0x1C
- adds r0, r4
- ldr r1, [r0]
- ldr r0, _0804C814 @ =SpriteCallbackDummy
- cmp r1, r0
- beq _0804C7C0
- bl _0804D570
-_0804C7C0:
- adds r0, r2, 0x4
- bl sub_80035AC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0804C7D2
- bl _0804D570
-_0804C7D2:
- ldr r0, _0804C818 @ =gSpriteTemplate_821595C
- movs r1, 0x78
- movs r2, 0x20
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- ldr r2, _0804C81C @ =0x00000103
- adds r1, r2
- strb r0, [r1]
- ldr r3, [r6]
- adds r2, r3, r2
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0804C820 @ =sub_804D738
- str r1, [r0]
- adds r3, r5
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- bl DestroySprite
- ldr r1, [r6]
- bl _0804D53C
- .align 2, 0
-_0804C810: .4byte gSprites
-_0804C814: .4byte SpriteCallbackDummy
-_0804C818: .4byte gSpriteTemplate_821595C
-_0804C81C: .4byte 0x00000103
-_0804C820: .4byte sub_804D738
-_0804C824:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0804C844 @ =gUnknown_03004828
- ldr r0, [r0]
- adds r0, 0xC4
- movs r1, 0x14
- strh r1, [r0]
- bl _0804D570
- .align 2, 0
-_0804C844: .4byte gUnknown_03004828
-_0804C848:
- ldr r0, _0804C864 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804C858
- bl _0804D570
-_0804C858:
- movs r0, 0x4
- bl sub_804BBE8
- bl _0804D538
- .align 2, 0
-_0804C864: .4byte gPaletteFade
-_0804C868:
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0x10
- movs r3, 0
- bl _0804D534
-_0804C87A:
- ldr r0, _0804C898 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804C88A
- bl _0804D570
-_0804C88A:
- ldr r0, [r6]
- adds r0, 0xC4
- movs r1, 0x17
- strh r1, [r0]
- bl _0804D570
- .align 2, 0
-_0804C898: .4byte gPaletteFade
-_0804C89C:
- ldr r4, _0804C8B8 @ =gUnknown_03004828
- ldr r0, [r4]
- movs r3, 0x8D
- lsls r3, 1
- adds r2, r0, r3
- ldrh r1, [r2]
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- bls _0804C8BC
- adds r0, r1, 0
- subs r0, 0x34
- strh r0, [r2]
- b _0804C8E0
- .align 2, 0
-_0804C8B8: .4byte gUnknown_03004828
-_0804C8BC:
- movs r0, 0x1
- bl sub_804BBE8
- ldr r3, [r4]
- movs r7, 0x8D
- lsls r7, 1
- adds r1, r3, r7
- movs r2, 0
- movs r0, 0x80
- strh r0, [r1]
- adds r1, r3, 0
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- adds r0, r3, 0
- adds r0, 0xC0
- str r2, [r0]
-_0804C8E0:
- ldr r0, _0804C8F0 @ =gUnknown_03004828
- ldr r4, [r0]
- movs r1, 0x8D
- lsls r1, 1
- adds r0, r4, r1
- bl _0804D16E
- .align 2, 0
-_0804C8F0: .4byte gUnknown_03004828
-_0804C8F4:
- ldr r1, [r6]
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x14
- bhi _0804C906
- bl _0804D570
-_0804C906:
- movs r0, 0x3
- bl sub_804BBE8
- bl sub_804B128
- ldr r0, _0804C928 @ =gSpriteTemplate_8215A80
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- adds r1, 0xBB
- strb r0, [r1]
- ldr r1, [r6]
- bl _0804D53C
- .align 2, 0
-_0804C928: .4byte gSpriteTemplate_8215A80
-_0804C92C:
- ldr r2, _0804C96C @ =gSprites
- ldr r0, [r6]
- adds r0, 0xBB
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- cmp r0, 0
- blt _0804C94C
- bl _0804D570
-_0804C94C:
- adds r0, r1, 0
- bl DestroySprite
- ldr r1, _0804C970 @ =REG_BLDCNT
- movs r3, 0xC8
- lsls r3, 3
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r7, _0804C974 @ =0x0000040c
- adds r0, r7, 0
- strh r0, [r1]
- ldr r1, [r6]
- bl _0804D53C
- .align 2, 0
-_0804C96C: .4byte gSprites
-_0804C970: .4byte REG_BLDCNT
-_0804C974: .4byte 0x0000040c
-_0804C978:
- ldr r2, [r6]
- movs r3, 0x88
- lsls r3, 1
- adds r0, r2, r3
- ldrh r1, [r0]
- subs r1, 0x1
- strh r1, [r0]
- lsls r1, 16
- movs r0, 0x9E
- lsls r0, 17
- cmp r1, r0
- bne _0804C99A
- adds r1, r2, 0
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_0804C99A:
- ldr r0, [r6]
- adds r0, r3
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0xA4
- lsls r0, 1
- cmp r1, r0
- beq _0804C9AE
- bl _0804D570
-_0804C9AE:
- ldr r0, _0804C9C4 @ =gSpriteTemplate_8215A30
- movs r1, 0x80
- movs r2, 0x41
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- adds r1, 0xBC
- strb r0, [r1]
- bl _0804D570
- .align 2, 0
-_0804C9C4: .4byte gSpriteTemplate_8215A30
-_0804C9C8:
- ldr r0, _0804CA0C @ =gSpriteTemplate_82159BC
- movs r1, 0x80
- movs r2, 0x50
- movs r3, 0x3
- bl CreateSprite
- ldr r4, _0804CA10 @ =gUnknown_03004828
- ldr r1, [r4]
- adds r1, 0xBA
- strb r0, [r1]
- ldr r0, _0804CA14 @ =gSpriteTemplate_82159FC
- movs r1, 0x80
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- adds r1, 0xBB
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0xBB
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0804CA18 @ =gSprites
- adds r0, r1
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r1, [r4]
- bl _0804D53C
- .align 2, 0
-_0804CA0C: .4byte gSpriteTemplate_82159BC
-_0804CA10: .4byte gUnknown_03004828
-_0804CA14: .4byte gSpriteTemplate_82159FC
-_0804CA18: .4byte gSprites
-_0804CA1C:
- ldr r2, [r6]
- movs r3, 0x88
- lsls r3, 1
- adds r1, r2, r3
- ldrh r0, [r1]
- subs r0, 0x2
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA6
- bne _0804CA3A
- adds r1, r2, 0
- adds r1, 0xC4
- movs r0, 0xC8
- strh r0, [r1]
-_0804CA3A:
- movs r0, 0
- bl sub_804C0F8
- movs r1, 0x80
- lsls r1, 19
- ldr r7, _0804CA50 @ =0x00001641
- adds r0, r7, 0
- strh r0, [r1]
- bl _0804D570
- .align 2, 0
-_0804CA50: .4byte 0x00001641
-_0804CA54:
- ldr r4, _0804CAB0 @ =gSprites
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0xBA
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x22]
- subs r1, 0x2
- strh r1, [r0, 0x22]
- adds r2, 0xBB
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x22]
- subs r1, 0x2
- strh r1, [r0, 0x22]
- movs r0, 0
- bl sub_804C0F8
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0xBA
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r3, 0x22
- ldrsh r1, [r0, r3]
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _0804CAA4
- bl _0804D570
-_0804CAA4:
- adds r1, r2, 0
- adds r1, 0xC4
- movs r0, 0x1D
- strh r0, [r1]
- bl _0804D570
- .align 2, 0
-_0804CAB0: .4byte gSprites
-_0804CAB4:
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0804CAD4 @ =gUnknown_03004828
- ldr r0, [r0]
- adds r0, 0xC4
- movs r1, 0x1E
- strh r1, [r0]
- bl _0804D570
- .align 2, 0
-_0804CAD4: .4byte gUnknown_03004828
-_0804CAD8:
- ldr r0, _0804CB1C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804CAE8
- bl _0804D570
-_0804CAE8:
- ldr r0, [r6]
- adds r0, 0xBA
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0804CB20 @ =gSprites
- adds r0, r4
- bl DestroySprite
- ldr r0, [r6]
- adds r0, 0xBB
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- movs r0, 0x2
- bl sub_804BBE8
- ldr r1, [r6]
- bl _0804D53C
- .align 2, 0
-_0804CB1C: .4byte gPaletteFade
-_0804CB20: .4byte gSprites
-_0804CB24:
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r5, _0804CB68 @ =gSpriteTemplate_82159FC
- adds r0, r5, 0
- movs r1, 0x6F
- movs r2, 0xAA
- movs r3, 0
- bl CreateSprite
- ldr r4, _0804CB6C @ =gUnknown_03004828
- ldr r1, [r4]
- adds r1, 0xBA
- strb r0, [r1]
- movs r2, 0xA
- negs r2, r2
- adds r0, r5, 0
- movs r1, 0x81
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- adds r1, 0xBB
- strb r0, [r1]
- ldr r1, [r4]
- bl _0804D53C
- .align 2, 0
-_0804CB68: .4byte gSpriteTemplate_82159FC
-_0804CB6C: .4byte gUnknown_03004828
-_0804CB70:
- ldr r0, _0804CBC0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804CB8E
- movs r0, 0x2E
- bl PlaySE
- ldr r0, _0804CBC4 @ =gUnknown_03004828
- ldr r1, [r0]
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_0804CB8E:
- ldr r3, _0804CBC8 @ =gSprites
- ldr r0, _0804CBC4 @ =gUnknown_03004828
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0xBA
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
- strh r1, [r0, 0x26]
- adds r2, 0xBB
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- strh r1, [r0, 0x26]
- bl _0804D570
- .align 2, 0
-_0804CBC0: .4byte gPaletteFade
-_0804CBC4: .4byte gUnknown_03004828
-_0804CBC8: .4byte gSprites
-_0804CBCC:
- ldr r5, _0804CC28 @ =gSprites
- ldr r4, [r6]
- adds r2, r4, 0
- adds r2, 0xBA
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
- strh r1, [r0, 0x26]
- adds r6, r4, 0
- adds r6, 0xBB
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- strh r1, [r0, 0x26]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r5
- movs r7, 0x26
- ldrsh r1, [r3, r7]
- movs r0, 0x5A
- negs r0, r0
- cmp r1, r0
- ble _0804CC12
- bl _0804D570
-_0804CC12:
- movs r2, 0x1
- strh r2, [r3, 0x30]
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x30]
- adds r1, r4, 0
- bl _0804D53C
- .align 2, 0
-_0804CC28: .4byte gSprites
-_0804CC2C:
- ldr r2, _0804CC3C @ =0x0000ffff
- movs r0, 0x1
- movs r1, 0x10
- bl BlendPalettes
- bl _0804D538
- .align 2, 0
-_0804CC3C: .4byte 0x0000ffff
-_0804CC40:
- ldr r2, _0804CC50 @ =0x0000ffff
- movs r0, 0x1
- movs r1, 0
- bl BlendPalettes
- bl _0804D538
- .align 2, 0
-_0804CC50: .4byte 0x0000ffff
-_0804CC54:
- ldr r2, _0804CC64 @ =0x0000ffff
- movs r0, 0x1
- movs r1, 0x10
- bl BlendPalettes
- bl _0804D538
- .align 2, 0
-_0804CC64: .4byte 0x0000ffff
-_0804CC68:
- ldr r5, _0804CCD8 @ =gUnknown_03004828
- ldr r0, [r5]
- movs r1, 0x90
- lsls r1, 1
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8040A3C
- lsls r0, 24
- cmp r0, 0
- bne _0804CCE4
- ldr r4, _0804CCDC @ =gSprites
- ldr r2, [r5]
- adds r2, 0xB8
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, _0804CCE0 @ =gSpriteAffineAnimTable_8215AC0
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x1]
- movs r2, 0x3
- orrs r1, r2
- strb r1, [r0, 0x1]
- ldr r0, [r5]
- adds r0, 0xB8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- ldr r0, [r5]
- adds r0, 0xB8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0
- bl StartSpriteAffineAnim
- b _0804CCFA
- .align 2, 0
-_0804CCD8: .4byte gUnknown_03004828
-_0804CCDC: .4byte gSprites
-_0804CCE0: .4byte gSpriteAffineAnimTable_8215AC0
-_0804CCE4:
- ldr r0, [r5]
- adds r0, 0xB8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0804CD88 @ =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAffineAnim
-_0804CCFA:
- ldr r5, _0804CD8C @ =gUnknown_03004828
- ldr r0, [r5]
- adds r0, 0xB9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0804CD88 @ =gSprites
- adds r0, r4
- movs r1, 0
- bl StartSpriteAffineAnim
- ldr r2, [r5]
- adds r3, r2, 0
- adds r3, 0xB8
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x3C
- strh r1, [r0, 0x20]
- adds r2, 0xB9
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xB4
- strh r1, [r0, 0x20]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xC0
- strh r1, [r0, 0x22]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0804CD90 @ =0x0000ffe0
- strh r1, [r0, 0x22]
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0xB9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- ldr r1, [r5]
- bl _0804D53C
- .align 2, 0
-_0804CD88: .4byte gSprites
-_0804CD8C: .4byte gUnknown_03004828
-_0804CD90: .4byte 0x0000ffe0
-_0804CD94:
- ldr r4, _0804CE5C @ =gSprites
- ldr r2, [r6]
- adds r3, r2, 0
- adds r3, 0xB8
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
- movs r5, 0
- strh r1, [r0, 0x26]
- adds r2, 0xB9
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- strh r1, [r0, 0x26]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x26]
- adds r0, 0xA3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bhi _0804CDDC
- movs r0, 0x2D
- bl PlaySE
-_0804CDDC:
- ldr r2, [r6]
- adds r3, r2, 0
- adds r3, 0xB8
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r7, 0x26
- ldrsh r1, [r0, r7]
- movs r0, 0xDE
- negs r0, r0
- cmp r1, r0
- blt _0804CDFA
- b _0804D570
-_0804CDFA:
- adds r0, r2, 0
- adds r0, 0xBA
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r5, [r0, 0x30]
- adds r0, r2, 0
- adds r0, 0xBB
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r5, [r0, 0x30]
- adds r1, r2, 0
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r6]
- adds r0, 0xB9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- ldr r2, _0804CE60 @ =0x0000ffff
- movs r0, 0x1
- movs r1, 0
- bl BlendPalettes
- b _0804D570
- .align 2, 0
-_0804CE5C: .4byte gSprites
-_0804CE60: .4byte 0x0000ffff
-_0804CE64:
- ldr r4, _0804CEE8 @ =gSprites
- ldr r2, [r6]
- adds r3, r2, 0
- adds r3, 0xBA
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
- strh r1, [r0, 0x26]
- adds r2, 0xBB
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- strh r1, [r0, 0x26]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r2, 0x26
- ldrsh r1, [r0, r2]
- movs r0, 0xDE
- negs r0, r0
- cmp r1, r0
- ble _0804CEA6
- b _0804D570
-_0804CEA6:
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, [r6]
- adds r2, r1, 0
- adds r2, 0xC4
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- adds r1, 0xBA
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r0, [r6]
- adds r0, 0xBB
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- b _0804D570
- .align 2, 0
-_0804CEE8: .4byte gSprites
-_0804CEEC:
- ldr r0, _0804CF58 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804CEFA
- b _0804D570
-_0804CEFA:
- ldr r1, [r6]
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
- bl sub_804BBE8
- ldr r0, [r6]
- movs r3, 0x88
- lsls r3, 1
- adds r0, r3
- movs r1, 0xA6
- strh r1, [r0]
- ldr r0, _0804CF5C @ =gSpriteTemplate_82159BC
- movs r4, 0x14
- negs r4, r4
- movs r1, 0x80
- adds r2, r4, 0
- movs r3, 0x3
- bl CreateSprite
- ldr r1, [r6]
- adds r1, 0xBA
- strb r0, [r1]
- ldr r0, _0804CF60 @ =gSpriteTemplate_82159FC
- movs r1, 0x80
- adds r2, r4, 0
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- adds r1, 0xBB
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0xBB
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0804CF64 @ =gSprites
- adds r0, r1
- movs r1, 0x1
- bl StartSpriteAnim
- b _0804D570
- .align 2, 0
-_0804CF58: .4byte gPaletteFade
-_0804CF5C: .4byte gSpriteTemplate_82159BC
-_0804CF60: .4byte gSpriteTemplate_82159FC
-_0804CF64: .4byte gSprites
-_0804CF68:
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- str r0, [sp]
- adds r0, r1, 0
- movs r2, 0x10
- movs r3, 0
- b _0804D534
-_0804CF78:
- movs r1, 0x80
- lsls r1, 19
- ldr r7, _0804CF98 @ =0x00001641
- adds r0, r7, 0
- strh r0, [r1]
- movs r0, 0x1
- bl sub_804C0F8
- ldr r0, _0804CF9C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804CF96
- b _0804D570
-_0804CF96:
- b _0804D538
- .align 2, 0
-_0804CF98: .4byte 0x00001641
-_0804CF9C: .4byte gPaletteFade
-_0804CFA0:
- movs r0, 0x1
- bl sub_804C0F8
- ldr r2, _0804CFF4 @ =gSprites
- ldr r0, _0804CFF8 @ =gUnknown_03004828
- ldr r3, [r0]
- adds r4, r3, 0
- adds r4, 0xBA
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- strh r1, [r0, 0x26]
- adds r0, r3, 0
- adds r0, 0xBB
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- strh r1, [r0, 0x26]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r2, 0x26
- ldrsh r1, [r0, r2]
- movs r7, 0x22
- ldrsh r0, [r0, r7]
- adds r1, r0
- cmp r1, 0x40
- beq _0804CFEE
- b _0804D570
-_0804CFEE:
- adds r1, r3, 0
- b _0804D53C
- .align 2, 0
-_0804CFF4: .4byte gSprites
-_0804CFF8: .4byte gUnknown_03004828
-_0804CFFC:
- movs r0, 0x1
- bl sub_804C0F8
- ldr r0, _0804D024 @ =gUnknown_03004828
- ldr r1, [r0]
- movs r0, 0x88
- lsls r0, 1
- adds r2, r1, r0
- ldrh r0, [r2]
- adds r0, 0x2
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x9E
- lsls r3, 1
- cmp r0, r3
- bgt _0804D020
- b _0804D570
-_0804D020:
- strh r3, [r2]
- b _0804D53C
- .align 2, 0
-_0804D024: .4byte gUnknown_03004828
-_0804D028:
- ldr r0, [r6]
- adds r0, 0xBA
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0804D050 @ =gSprites
- adds r0, r4
- bl DestroySprite
- ldr r0, [r6]
- adds r0, 0xBB
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- b _0804D400
- .align 2, 0
-_0804D050: .4byte gSprites
-_0804D054:
- ldr r2, [r6]
- adds r1, r2, 0
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0xA
- beq _0804D066
- b _0804D570
-_0804D066:
- adds r1, 0x4
- b _0804D53E
-_0804D06A:
- ldr r1, [r6]
- movs r4, 0x88
- lsls r4, 1
- adds r2, r1, r4
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0xAE
- lsls r3, 1
- cmp r0, r3
- ble _0804D08E
- strh r3, [r2]
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_0804D08E:
- ldr r0, [r6]
- adds r0, r4
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0xA4
- lsls r0, 1
- cmp r1, r0
- bne _0804D0B0
- ldr r0, _0804D0C8 @ =gSpriteTemplate_8215A30
- movs r1, 0x80
- movs r2, 0x41
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- adds r1, 0xBC
- strb r0, [r1]
-_0804D0B0:
- ldr r2, _0804D0CC @ =gSprites
- ldr r0, [r6]
- adds r0, 0xBC
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0804D0D0 @ =sub_804B0E0
- str r1, [r0]
- b _0804D570
- .align 2, 0
-_0804D0C8: .4byte gSpriteTemplate_8215A30
-_0804D0CC: .4byte gSprites
-_0804D0D0: .4byte sub_804B0E0
-_0804D0D4:
- ldr r0, _0804D0F4 @ =gSpriteTemplate_8215A80
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- ldr r2, _0804D0F8 @ =gUnknown_03004828
- ldr r1, [r2]
- adds r1, 0xBB
- strb r0, [r1]
- ldr r0, [r2]
- adds r0, 0xC4
- movs r1, 0x32
- strh r1, [r0]
- b _0804D570
- .align 2, 0
-_0804D0F4: .4byte gSpriteTemplate_8215A80
-_0804D0F8: .4byte gUnknown_03004828
-_0804D0FC:
- ldr r2, _0804D138 @ =gSprites
- ldr r0, [r6]
- adds r0, 0xBB
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- cmp r0, 0
- blt _0804D11A
- b _0804D570
-_0804D11A:
- adds r0, r1, 0
- bl DestroySprite
- movs r0, 0x6
- bl sub_804BBE8
- ldr r1, [r6]
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x9F
- bl PlaySE
- b _0804D570
- .align 2, 0
-_0804D138: .4byte gSprites
-_0804D13C:
- ldr r1, [r6]
- movs r3, 0x8D
- lsls r3, 1
- adds r2, r1, r3
- ldrh r3, [r2]
- ldr r0, _0804D154 @ =0x000003ff
- cmp r3, r0
- bhi _0804D158
- adds r0, r3, 0
- adds r0, 0x34
- strh r0, [r2]
- b _0804D166
- .align 2, 0
-_0804D154: .4byte 0x000003ff
-_0804D158:
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r2]
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_0804D166:
- ldr r4, [r6]
- movs r7, 0x8D
- lsls r7, 1
- adds r0, r4, r7
-_0804D16E:
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 8
- bl __divsi3
- movs r2, 0x8C
- lsls r2, 1
- adds r1, r4, r2
- strh r0, [r1]
- b _0804D570
-_0804D182:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0804D1A0 @ =gUnknown_03004828
- ldr r0, [r0]
- adds r0, 0xC4
- movs r1, 0x3C
- strh r1, [r0]
- b _0804D570
- .align 2, 0
-_0804D1A0: .4byte gUnknown_03004828
-_0804D1A4:
- ldr r0, _0804D1C0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804D1B2
- b _0804D570
-_0804D1B2:
- movs r0, 0x5
- bl sub_804BBE8
- movs r0, 0x7
- bl sub_804BBE8
- b _0804D538
- .align 2, 0
-_0804D1C0: .4byte gPaletteFade
-_0804D1C4:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- b _0804D534
-_0804D1D2:
- movs r1, 0x80
- lsls r1, 19
- movs r3, 0xA2
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0804D1F0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804D1EC
- b _0804D570
-_0804D1EC:
- ldr r1, [r6]
- b _0804D53C
- .align 2, 0
-_0804D1F0: .4byte gPaletteFade
-_0804D1F4:
- ldr r0, _0804D290 @ =gSpriteTemplate_821595C
- movs r2, 0x8
- negs r2, r2
- movs r1, 0x78
- movs r3, 0
- bl CreateSprite
- ldr r6, _0804D294 @ =gUnknown_03004828
- ldr r1, [r6]
- ldr r5, _0804D298 @ =0x00000103
- adds r1, r5
- movs r7, 0
- mov r8, r7
- strb r0, [r1]
- ldr r4, _0804D29C @ =gSprites
- ldr r2, [r6]
- adds r2, r5
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x4A
- strh r1, [r0, 0x34]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0804D2A0 @ =sub_804D80C
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- ldr r2, _0804D2A4 @ =0x0000ffff
- movs r1, 0x10
- bl BlendPalettes
- ldr r1, [r6]
- adds r2, r1, 0
- adds r2, 0xC4
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- adds r1, 0xC0
- mov r0, r8
- str r0, [r1]
- b _0804D570
- .align 2, 0
-_0804D290: .4byte gSpriteTemplate_821595C
-_0804D294: .4byte gUnknown_03004828
-_0804D298: .4byte 0x00000103
-_0804D29C: .4byte gSprites
-_0804D2A0: .4byte sub_804D80C
-_0804D2A4: .4byte 0x0000ffff
-_0804D2A8:
- ldr r2, _0804D2D8 @ =gSprites
- ldr r0, [r6]
- ldr r1, _0804D2DC @ =0x00000103
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- ldr r1, _0804D2E0 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, [r6]
- b _0804D53C
- .align 2, 0
-_0804D2D8: .4byte gSprites
-_0804D2DC: .4byte 0x00000103
-_0804D2E0: .4byte 0x0000ffff
-_0804D2E4:
- ldr r2, _0804D308 @ =gSprites
- ldr r3, [r6]
- ldr r7, _0804D30C @ =0x00000103
- adds r0, r3, r7
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0804D310 @ =SpriteCallbackDummy
- cmp r1, r0
- beq _0804D302
- b _0804D570
-_0804D302:
- adds r1, r3, 0
- b _0804D53C
- .align 2, 0
-_0804D308: .4byte gSprites
-_0804D30C: .4byte 0x00000103
-_0804D310: .4byte SpriteCallbackDummy
-_0804D314:
- ldr r4, _0804D3B4 @ =gSprites
- ldr r0, [r6]
- mov r8, r0
- mov r5, r8
- adds r5, 0xB9
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r3, 0
- movs r1, 0x78
- strh r1, [r0, 0x20]
- ldrb r0, [r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldr r2, _0804D3B8 @ =gMonFrontPicCoords
- movs r0, 0x91
- lsls r0, 1
- add r0, r8
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- adds r0, 0x3C
- strh r0, [r1, 0x22]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x24]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x26]
- ldrb r0, [r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- movs r2, 0x2
- str r2, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r2, 0x14
- str r2, [sp, 0x8]
- ldr r2, _0804D3BC @ =0x000fffff
- str r2, [sp, 0xC]
- movs r2, 0x78
- movs r3, 0x54
- bl CreatePokeballSprite
- ldr r0, [r6]
- ldr r5, _0804D3C0 @ =0x00000103
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldr r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, [r6]
- b _0804D53C
- .align 2, 0
-_0804D3B4: .4byte gSprites
-_0804D3B8: .4byte gMonFrontPicCoords
-_0804D3BC: .4byte 0x000fffff
-_0804D3C0: .4byte 0x00000103
-_0804D3C4:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xBA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, [r6]
- adds r0, 0x4
- movs r1, 0x13
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x1D
- bl ZeroFillWindowRect
- ldr r4, _0804D414 @ =gStringVar4
- ldr r1, _0804D418 @ =gTradeText_SentOverPoke
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r1, [r6]
- adds r0, r1, 0x4
- adds r1, 0x34
- ldrb r2, [r1]
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x2
- bl sub_8003460
-_0804D400:
- ldr r1, [r6]
- adds r2, r1, 0
- adds r2, 0xC4
- ldrh r0, [r2]
- adds r0, 0x1
- movs r3, 0
-_0804D40C:
- strh r0, [r2]
- adds r1, 0xC0
- str r3, [r1]
- b _0804D570
- .align 2, 0
-_0804D414: .4byte gStringVar4
-_0804D418: .4byte gTradeText_SentOverPoke
-_0804D41C:
- ldr r1, [r6]
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x4
- bne _0804D430
- ldr r0, _0804D480 @ =0x00000173
- bl PlayFanfare
-_0804D430:
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0xC0
- ldr r0, [r0]
- cmp r0, 0xF0
- beq _0804D43E
- b _0804D570
-_0804D43E:
- adds r1, r2, 0
- adds r1, 0xC4
- ldrh r0, [r1]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r1]
- adds r0, r2, 0x4
- movs r1, 0x13
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x1D
- bl ZeroFillWindowRect
- ldr r4, _0804D484 @ =gStringVar4
- ldr r1, _0804D488 @ =gTradeText_TakeGoodCare
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r1, [r6]
- adds r0, r1, 0x4
- adds r1, 0x34
- ldrb r2, [r1]
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x2
- bl sub_8003460
- ldr r0, [r6]
- adds r0, 0xC0
- str r5, [r0]
- b _0804D570
- .align 2, 0
-_0804D480: .4byte 0x00000173
-_0804D484: .4byte gStringVar4
-_0804D488: .4byte gTradeText_TakeGoodCare
-_0804D48C:
- ldr r2, [r6]
- adds r1, r2, 0
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x3C
- bne _0804D570
- adds r1, 0x4
- b _0804D53E
-_0804D4A0:
- bl sub_804E1DC
- b _0804D538
-_0804D4A6:
- ldr r2, [r6]
- movs r3, 0x8F
- lsls r3, 1
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804D4B8
- movs r0, 0x1
- b _0804D572
-_0804D4B8:
- ldr r0, _0804D4C8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0804D570
- adds r1, r2, 0
- b _0804D53C
- .align 2, 0
-_0804D4C8: .4byte gMain
-_0804D4CC:
- ldr r0, _0804D510 @ =gSpecialVar_0x8005
- ldrb r0, [r0]
- movs r1, 0
- bl sub_804BA94
- ldr r1, _0804D514 @ =gUnknown_03005E94
- ldr r0, _0804D518 @ =sub_804BBCC
- str r0, [r1]
- ldr r7, _0804D51C @ =gUnknown_020297D8
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0804D520 @ =gPlayerParty
- adds r0, r5
- movs r1, 0x1
- movs r2, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _0804D538
- ldrb r3, [r7]
- adds r0, r3, 0
- muls r0, r6
- adds r0, r5
- ldr r1, _0804D524 @ =gUnknown_03004828
- ldr r1, [r1]
- adds r1, 0xB9
- ldrb r2, [r1]
- adds r1, r4, 0
- bl TradeEvolutionScene
- b _0804D538
- .align 2, 0
-_0804D510: .4byte gSpecialVar_0x8005
-_0804D514: .4byte gUnknown_03005E94
-_0804D518: .4byte sub_804BBCC
-_0804D51C: .4byte gUnknown_020297D8
-_0804D520: .4byte gPlayerParty
-_0804D524: .4byte gUnknown_03004828
-_0804D528:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
-_0804D534:
- bl BeginNormalPaletteFade
-_0804D538:
- ldr r0, _0804D548 @ =gUnknown_03004828
- ldr r1, [r0]
-_0804D53C:
- adds r1, 0xC4
-_0804D53E:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0804D570
- .align 2, 0
-_0804D548: .4byte gUnknown_03004828
-_0804D54C:
- ldr r0, _0804D580 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804D570
- ldr r0, [r6]
- movs r7, 0x92
- lsls r7, 1
- adds r0, r7
- ldrh r0, [r0]
- bl PlayBGM
- ldr r0, _0804D584 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- bl sub_804D8E4
-_0804D570:
- movs r0, 0
-_0804D572:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0804D580: .4byte gPaletteFade
-_0804D584: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_804C29C
-
- thumb_func_start sub_804D588
-sub_804D588: @ 804D588
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0804D5A0 @ =gMain
- ldr r2, _0804D5A4 @ =0x0000043c
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _0804D5A8
- cmp r0, 0x4
- beq _0804D5B8
- b _0804D614
- .align 2, 0
-_0804D5A0: .4byte gMain
-_0804D5A4: .4byte 0x0000043c
-_0804D5A8:
- movs r0, 0x4
- strb r0, [r1]
- ldr r1, _0804D5B4 @ =gSoftResetDisabled
- movs r0, 0x1
- b _0804D612
- .align 2, 0
-_0804D5B4: .4byte gSoftResetDisabled
-_0804D5B8:
- ldr r0, _0804D5F4 @ =gUnknown_03005E94
- ldr r1, _0804D5F8 @ =sub_804DC88
- mov r8, r1
- str r1, [r0]
- ldr r7, _0804D5FC @ =gUnknown_020297D8
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0804D600 @ =gPlayerParty
- adds r0, r5
- movs r1, 0x1
- movs r2, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _0804D608
- ldrb r3, [r7]
- adds r0, r3, 0
- muls r0, r6
- adds r0, r5
- ldr r1, _0804D604 @ =gUnknown_03004828
- ldr r1, [r1]
- adds r1, 0xB9
- ldrb r2, [r1]
- adds r1, r4, 0
- bl TradeEvolutionScene
- b _0804D60E
- .align 2, 0
-_0804D5F4: .4byte gUnknown_03005E94
-_0804D5F8: .4byte sub_804DC88
-_0804D5FC: .4byte gUnknown_020297D8
-_0804D600: .4byte gPlayerParty
-_0804D604: .4byte gUnknown_03004828
-_0804D608:
- mov r0, r8
- bl SetMainCallback2
-_0804D60E:
- ldr r1, _0804D638 @ =gUnknown_020297D8
- movs r0, 0xFF
-_0804D612:
- strb r0, [r1]
-_0804D614:
- bl HasLinkErrorOccurred
- lsls r0, 24
- cmp r0, 0
- bne _0804D622
- bl RunTasks
-_0804D622:
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804D638: .4byte gUnknown_020297D8
- thumb_func_end sub_804D588
-
- thumb_func_start sub_804D63C
-sub_804D63C: @ 804D63C
- push {r4-r6,lr}
- bl sub_804B2B0
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0x1
- adds r0, r5, 0
- ands r0, r6
- cmp r0, 0
- beq _0804D67A
- ldr r4, _0804D6A8 @ =gBlockRecvBuffer
- ldrh r1, [r4]
- ldr r0, _0804D6AC @ =0x0000dcba
- cmp r1, r0
- bne _0804D664
- ldr r0, _0804D6B0 @ =sub_804D588
- bl SetMainCallback2
-_0804D664:
- ldrh r1, [r4]
- ldr r0, _0804D6B4 @ =0x0000abcd
- cmp r1, r0
- bne _0804D674
- ldr r0, _0804D6B8 @ =gUnknown_03004828
- ldr r0, [r0]
- adds r0, 0x9C
- strb r6, [r0]
-_0804D674:
- movs r0, 0
- bl ResetBlockReceivedFlag
-_0804D67A:
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- beq _0804D6A2
- ldr r0, _0804D6A8 @ =gBlockRecvBuffer
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _0804D6B4 @ =0x0000abcd
- cmp r1, r0
- bne _0804D69C
- ldr r0, _0804D6B8 @ =gUnknown_03004828
- ldr r0, [r0]
- adds r0, 0x9D
- movs r1, 0x1
- strb r1, [r0]
-_0804D69C:
- movs r0, 0x1
- bl ResetBlockReceivedFlag
-_0804D6A2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804D6A8: .4byte gBlockRecvBuffer
-_0804D6AC: .4byte 0x0000dcba
-_0804D6B0: .4byte sub_804D588
-_0804D6B4: .4byte 0x0000abcd
-_0804D6B8: .4byte gUnknown_03004828
- thumb_func_end sub_804D63C
-
- thumb_func_start sub_804D6BC
-sub_804D6BC: @ 804D6BC
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- movs r1, 0xA
- bl __divsi3
- ldrh r4, [r5, 0x22]
- adds r4, r0
- strh r4, [r5, 0x22]
- ldrh r0, [r5, 0x30]
- ldrh r2, [r5, 0x38]
- adds r0, r2
- strh r0, [r5, 0x38]
- movs r1, 0x38
- ldrsh r0, [r5, r1]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r5, 0x20]
- lsls r4, 16
- asrs r4, 16
- cmp r4, 0x4C
- ble _0804D70A
- movs r0, 0x4C
- strh r0, [r5, 0x22]
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- muls r0, r1
- negs r0, r0
- movs r1, 0x64
- bl __divsi3
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
-_0804D70A:
- movs r1, 0x20
- ldrsh r0, [r5, r1]
- cmp r0, 0x78
- bne _0804D716
- movs r0, 0
- strh r0, [r5, 0x30]
-_0804D716:
- ldrh r0, [r5, 0x36]
- ldrh r2, [r5, 0x2E]
- adds r0, r2
- strh r0, [r5, 0x2E]
- movs r1, 0x34
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bne _0804D72E
- movs r0, 0x1
- strh r0, [r5, 0x3C]
- ldr r0, _0804D734 @ =SpriteCallbackDummy
- str r0, [r5, 0x1C]
-_0804D72E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804D734: .4byte SpriteCallbackDummy
- thumb_func_end sub_804D6BC
-
- thumb_func_start sub_804D738
-sub_804D738: @ 804D738
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r1, _0804D7A0 @ =gTradeBallVerticalVelocityTable
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0x16
- bne _0804D760
- movs r0, 0x38
- bl PlaySE
-_0804D760:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2C
- bne _0804D796
- movs r0, 0x8C
- bl PlaySE
- ldr r0, _0804D7A4 @ =sub_804D7AC
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- movs r1, 0x1
- negs r1, r1
- ldr r2, _0804D7A8 @ =0x0000ffff
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0804D796:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804D7A0: .4byte gTradeBallVerticalVelocityTable
-_0804D7A4: .4byte sub_804D7AC
-_0804D7A8: .4byte 0x0000ffff
- thumb_func_end sub_804D738
-
- thumb_func_start sub_804D7AC
-sub_804D7AC: @ 804D7AC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x14
- bne _0804D7C0
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_0804D7C0:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _0804D7FE
- ldr r1, _0804D804 @ =gTradeBallVerticalVelocityTable
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrh r0, [r4, 0x26]
- subs r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x17
- bne _0804D7FE
- adds r0, r4, 0
- bl DestroySprite
- ldr r0, _0804D808 @ =gUnknown_03004828
- ldr r0, [r0]
- adds r0, 0xC4
- movs r1, 0xE
- strh r1, [r0]
-_0804D7FE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804D804: .4byte gTradeBallVerticalVelocityTable
-_0804D808: .4byte gUnknown_03004828
- thumb_func_end sub_804D7AC
-
- thumb_func_start sub_804D80C
-sub_804D80C: @ 804D80C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0804D83C
- ldrh r0, [r4, 0x22]
- adds r0, 0x4
- strh r0, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x34
- ldrsh r1, [r4, r3]
- cmp r0, r1
- ble _0804D88C
- adds r0, r2, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0x16
- strh r0, [r4, 0x2E]
- movs r0, 0x38
- bl PlaySE
- b _0804D88C
-_0804D83C:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x42
- bne _0804D84A
- movs r0, 0x39
- bl PlaySE
-_0804D84A:
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0x5C
- bne _0804D858
- movs r0, 0x3A
- bl PlaySE
-_0804D858:
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- cmp r0, 0x6B
- bne _0804D866
- movs r0, 0x3B
- bl PlaySE
-_0804D866:
- ldr r1, _0804D894 @ =gTradeBallVerticalVelocityTable
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r3, [r4, 0x26]
- adds r0, r3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6C
- bne _0804D88C
- ldr r0, _0804D898 @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_0804D88C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804D894: .4byte gTradeBallVerticalVelocityTable
-_0804D898: .4byte SpriteCallbackDummy
- thumb_func_end sub_804D80C
-
- thumb_func_start sub_804D89C
-sub_804D89C: @ 804D89C
- push {r4-r6,lr}
- ldr r0, _0804D8D0 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r4, r0, 4
- subs r4, r0
- lsls r4, 2
- ldr r0, _0804D8D4 @ =gIngameTrades
- adds r4, r0
- ldr r0, _0804D8D8 @ =gStringVar1
- ldrh r1, [r4, 0x38]
- movs r6, 0xB
- muls r1, r6
- ldr r5, _0804D8DC @ =gSpeciesNames
- adds r1, r5
- bl StringCopy
- ldr r0, _0804D8E0 @ =gStringVar2
- ldrh r1, [r4, 0xC]
- muls r1, r6
- adds r1, r5
- bl StringCopy
- ldrh r0, [r4, 0x38]
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0804D8D0: .4byte gSpecialVar_0x8004
-_0804D8D4: .4byte gIngameTrades
-_0804D8D8: .4byte gStringVar1
-_0804D8DC: .4byte gSpeciesNames
-_0804D8E0: .4byte gStringVar2
- thumb_func_end sub_804D89C
-
- thumb_func_start sub_804D8E4
-sub_804D8E4: @ 804D8E4
- push {r4,lr}
- sub sp, 0x20
- ldr r0, _0804D92C @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r4, r0, 4
- subs r4, r0
- lsls r4, 2
- ldr r0, _0804D930 @ =gIngameTrades
- adds r4, r0
- ldr r0, _0804D934 @ =gSpecialVar_0x8005
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0804D938 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- ldr r0, _0804D93C @ =gStringVar1
- mov r1, sp
- bl StringCopy10
- ldr r0, _0804D940 @ =gStringVar2
- ldrh r2, [r4, 0xC]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _0804D944 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- add sp, 0x20
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804D92C: .4byte gSpecialVar_0x8004
-_0804D930: .4byte gIngameTrades
-_0804D934: .4byte gSpecialVar_0x8005
-_0804D938: .4byte gPlayerParty
-_0804D93C: .4byte gStringVar1
-_0804D940: .4byte gStringVar2
-_0804D944: .4byte gSpeciesNames
- thumb_func_end sub_804D8E4
-
- thumb_func_start sub_804D948
-sub_804D948: @ 804D948
- push {r4-r7,lr}
- sub sp, 0x38
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r1, 4
- subs r2, r1
- lsls r2, 2
- ldr r1, _0804DAA4 @ =gIngameTrades
- adds r5, r2, r1
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0804DAA8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- add r4, sp, 0x34
- movs r0, 0xFE
- strb r0, [r4]
- ldr r6, _0804DAAC @ =gEnemyParty
- ldrh r1, [r5, 0xC]
- movs r3, 0x1
- str r3, [sp]
- ldr r0, [r5, 0x24]
- str r0, [sp, 0x4]
- str r3, [sp, 0x8]
- ldr r0, [r5, 0x18]
- str r0, [sp, 0xC]
- adds r0, r6, 0
- movs r3, 0x20
- bl CreateMon
- adds r2, r5, 0
- adds r2, 0xE
- adds r0, r6, 0
- movs r1, 0x27
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0xF
- adds r0, r6, 0
- movs r1, 0x28
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x10
- adds r0, r6, 0
- movs r1, 0x29
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x11
- adds r0, r6, 0
- movs r1, 0x2A
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x12
- adds r0, r6, 0
- movs r1, 0x2B
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x13
- adds r0, r6, 0
- movs r1, 0x2C
- bl SetMonData
- adds r0, r6, 0
- movs r1, 0x2
- adds r2, r5, 0
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x2B
- adds r0, r6, 0
- movs r1, 0x7
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x36
- adds r0, r6, 0
- movs r1, 0x31
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x14
- adds r0, r6, 0
- movs r1, 0x2E
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x1D
- adds r0, r6, 0
- movs r1, 0x17
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x1E
- adds r0, r6, 0
- movs r1, 0x18
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x1C
- adds r0, r6, 0
- movs r1, 0x16
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x1F
- adds r0, r6, 0
- movs r1, 0x21
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x20
- adds r0, r6, 0
- movs r1, 0x2F
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x37
- adds r0, r6, 0
- movs r1, 0x30
- bl SetMonData
- adds r0, r6, 0
- movs r1, 0x23
- adds r2, r4, 0
- bl SetMonData
- mov r4, sp
- adds r4, 0x35
- movs r0, 0
- strb r0, [r4]
- ldrh r0, [r5, 0x28]
- cmp r0, 0
- beq _0804DAC0
- bl ItemIsMail
- lsls r0, 24
- cmp r0, 0
- beq _0804DAB4
- add r0, sp, 0x10
- adds r1, r5, 0
- bl sub_804DAD4
- ldr r0, _0804DAB0 @ =gUnknown_02029700
- add r1, sp, 0x10
- ldm r1!, {r2,r3,r7}
- stm r0!, {r2,r3,r7}
- ldm r1!, {r2,r3,r7}
- stm r0!, {r2,r3,r7}
- ldm r1!, {r2,r3,r7}
- stm r0!, {r2,r3,r7}
- adds r0, r6, 0
- movs r1, 0x40
- adds r2, r4, 0
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x28
- adds r0, r6, 0
- movs r1, 0xC
- bl SetMonData
- b _0804DAC0
- .align 2, 0
-_0804DAA4: .4byte gIngameTrades
-_0804DAA8: .4byte gPlayerParty
-_0804DAAC: .4byte gEnemyParty
-_0804DAB0: .4byte gUnknown_02029700
-_0804DAB4:
- adds r2, r5, 0
- adds r2, 0x28
- adds r0, r6, 0
- movs r1, 0xC
- bl SetMonData
-_0804DAC0:
- ldr r0, _0804DAD0 @ =gEnemyParty
- bl CalculateMonStats
- add sp, 0x38
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804DAD0: .4byte gEnemyParty
- thumb_func_end sub_804D948
-
-.section .text.sub_804DB2C
-
- thumb_func_start sub_804DB2C
-sub_804DB2C: @ 804DB2C
- push {r4-r6,lr}
- ldr r6, _0804DB58 @ =gSpecialVar_0x8005
- ldrh r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _0804DB5C @ =gPlayerParty
- adds r0, r4
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0804DB60
- ldrh r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- b _0804DB62
- .align 2, 0
-_0804DB58: .4byte gSpecialVar_0x8005
-_0804DB5C: .4byte gPlayerParty
-_0804DB60:
- movs r0, 0
-_0804DB62:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_804DB2C
-
- thumb_func_start sub_804DB68
-sub_804DB68: @ 804DB68
- push {lr}
- ldr r0, _0804DB7C @ =gSpecialVar_0x8005
- ldrb r0, [r0]
- ldr r1, _0804DB80 @ =gSpecialVar_0x8004
- ldrb r1, [r1]
- bl sub_804D948
- pop {r0}
- bx r0
- .align 2, 0
-_0804DB7C: .4byte gSpecialVar_0x8005
-_0804DB80: .4byte gSpecialVar_0x8004
- thumb_func_end sub_804DB68
-
- thumb_func_start sub_804DB84
-sub_804DB84: @ 804DB84
- push {r4-r6,lr}
- bl sub_804C29C
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x1
- bne _0804DBE6
- ldr r5, _0804DC04 @ =gUnknown_03004828
- ldr r0, [r5]
- adds r0, 0xB8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0804DC08 @ =gSprites
- adds r0, r4
- bl DestroySprite
- ldr r0, [r5]
- adds r0, 0xB9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldr r0, _0804DC0C @ =gUnknown_020297D8
- ldrb r4, [r0]
- ldrb r0, [r0, 0x1]
- movs r1, 0x6
- bl __umodsi3
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_804BA94
- ldr r0, [r5]
- adds r2, r0, 0
- adds r2, 0x9E
- ldr r1, _0804DC10 @ =0x0000abcd
- strh r1, [r2]
- adds r0, 0xBD
- strb r6, [r0]
- ldr r0, _0804DC14 @ =sub_804DC18
- bl SetMainCallback2
-_0804DBE6:
- bl sub_804BB78
- bl sub_804D63C
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804DC04: .4byte gUnknown_03004828
-_0804DC08: .4byte gSprites
-_0804DC0C: .4byte gUnknown_020297D8
-_0804DC10: .4byte 0x0000abcd
-_0804DC14: .4byte sub_804DC18
- thumb_func_end sub_804DB84
-
- thumb_func_start sub_804DC18
-sub_804DC18: @ 804DC18
- push {r4,lr}
- bl sub_804B2B0
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_804D63C
- cmp r4, 0
- bne _0804DC64
- ldr r4, _0804DC7C @ =gUnknown_03004828
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x9C
- ldrh r1, [r0]
- ldr r0, _0804DC80 @ =0x00000101
- cmp r1, r0
- bne _0804DC64
- adds r1, r2, 0
- adds r1, 0x9E
- ldr r0, _0804DC84 @ =0x0000dcba
- strh r0, [r1]
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, 0x9E
- movs r2, 0x14
- bl SendBlock
- ldr r0, [r4]
- adds r0, 0x9C
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x9D
- strb r1, [r0]
-_0804DC64:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804DC7C: .4byte gUnknown_03004828
-_0804DC80: .4byte 0x00000101
-_0804DC84: .4byte 0x0000dcba
- thumb_func_end sub_804DC18
-
- thumb_func_start sub_804DC88
-sub_804DC88: @ 804DC88
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _0804DCA8 @ =gMain
- ldr r2, _0804DCAC @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x65
- bls _0804DC9C
- b _0804E11A
-_0804DC9C:
- lsls r0, 2
- ldr r1, _0804DCB0 @ =_0804DCB4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804DCA8: .4byte gMain
-_0804DCAC: .4byte 0x0000043c
-_0804DCB0: .4byte _0804DCB4
- .align 2, 0
-_0804DCB4:
- .4byte _0804DE4C
- .4byte _0804DE9C
- .4byte _0804DF14
- .4byte _0804E11A
- .4byte _0804DFE0
- .4byte _0804E078
- .4byte _0804E0A0
- .4byte _0804E0BC
- .4byte _0804E0E4
- .4byte _0804E10C
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E008
- .4byte _0804E034
- .4byte _0804E04C
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804DF54
- .4byte _0804DF7C
- .4byte _0804DF9C
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804E11A
- .4byte _0804DEB4
- .4byte _0804DEF4
-_0804DE4C:
- ldr r5, _0804DE88 @ =gUnknown_03004828
- ldr r0, _0804DE8C @ =0x0201f000
- str r0, [r5]
- ldr r1, _0804DE90 @ =0x0000043c
- adds r2, r1
- ldrb r1, [r2]
- adds r1, 0x1
- strb r1, [r2]
- adds r0, 0x4
- movs r1, 0x13
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x1D
- bl ZeroFillWindowRect
- ldr r4, _0804DE94 @ =gStringVar4
- ldr r1, _0804DE98 @ =gOtherText_LinkStandby2
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r1, [r5]
- adds r0, r1, 0x4
- adds r1, 0x34
- ldrb r2, [r1]
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- b _0804DF3E
- .align 2, 0
-_0804DE88: .4byte gUnknown_03004828
-_0804DE8C: .4byte 0x0201f000
-_0804DE90: .4byte 0x0000043c
-_0804DE94: .4byte gStringVar4
-_0804DE98: .4byte gOtherText_LinkStandby2
-_0804DE9C:
- bl sub_80084A4
- ldr r0, _0804DEAC @ =gMain
- ldr r2, _0804DEB0 @ =0x0000043c
- adds r0, r2
- movs r2, 0
- movs r1, 0x64
- b _0804DFEE
- .align 2, 0
-_0804DEAC: .4byte gMain
-_0804DEB0: .4byte 0x0000043c
-_0804DEB4:
- ldr r0, _0804DEE8 @ =gUnknown_03004828
- ldr r0, [r0]
- adds r3, r0, 0
- adds r3, 0xC0
- ldr r0, [r3]
- adds r0, 0x1
- str r0, [r3]
- cmp r0, 0xB4
- bls _0804DED2
- ldr r1, _0804DEEC @ =0x0000043c
- adds r0, r2, r1
- movs r2, 0
- movs r1, 0x65
- strb r1, [r0]
- str r2, [r3]
-_0804DED2:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0804DEDE
- b _0804E11A
-_0804DEDE:
- ldr r0, _0804DEF0 @ =gMain
- ldr r2, _0804DEEC @ =0x0000043c
- adds r0, r2
- b _0804DF06
- .align 2, 0
-_0804DEE8: .4byte gUnknown_03004828
-_0804DEEC: .4byte 0x0000043c
-_0804DEF0: .4byte gMain
-_0804DEF4:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0804DF00
- b _0804E11A
-_0804DF00:
- ldr r0, _0804DF0C @ =gMain
- ldr r1, _0804DF10 @ =0x0000043c
- adds r0, r1
-_0804DF06:
- movs r1, 0x2
- strb r1, [r0]
- b _0804E11A
- .align 2, 0
-_0804DF0C: .4byte gMain
-_0804DF10: .4byte 0x0000043c
-_0804DF14:
- ldr r0, _0804DF48 @ =0x0000043c
- adds r1, r2, r0
- movs r0, 0x32
- strb r0, [r1]
- ldr r4, _0804DF4C @ =gUnknown_03004828
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0x13
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x1D
- bl ZeroFillWindowRect
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _0804DF50 @ =gSystemText_Saving
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
-_0804DF3E:
- movs r3, 0x2
- bl sub_8003460
- b _0804E11A
- .align 2, 0
-_0804DF48: .4byte 0x0000043c
-_0804DF4C: .4byte gUnknown_03004828
-_0804DF50: .4byte gSystemText_Saving
-_0804DF54:
- bl SetSecretBase2Field_9_AndHideBG
- movs r0, 0x15
- bl IncrementGameStat
- bl sub_8125D80
- ldr r1, _0804DF74 @ =gMain
- ldr r2, _0804DF78 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- b _0804DFF0
- .align 2, 0
-_0804DF74: .4byte gMain
-_0804DF78: .4byte 0x0000043c
-_0804DF7C:
- ldr r0, _0804DF94 @ =gUnknown_03004828
- ldr r1, [r0]
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x5
- beq _0804DF8E
- b _0804E11A
-_0804DF8E:
- ldr r0, _0804DF98 @ =0x0000043c
- adds r1, r2, r0
- b _0804E0FA
- .align 2, 0
-_0804DF94: .4byte gUnknown_03004828
-_0804DF98: .4byte 0x0000043c
-_0804DF9C:
- bl sub_8125DA8
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0804DFC0
- bl ClearSecretBase2Field_9_2
- ldr r0, _0804DFB8 @ =gMain
- ldr r1, _0804DFBC @ =0x0000043c
- adds r0, r1
- movs r1, 0x4
- strb r1, [r0]
- b _0804E11A
- .align 2, 0
-_0804DFB8: .4byte gMain
-_0804DFBC: .4byte 0x0000043c
-_0804DFC0:
- ldr r0, _0804DFD4 @ =gUnknown_03004828
- ldr r0, [r0]
- adds r0, 0xC0
- str r1, [r0]
- ldr r0, _0804DFD8 @ =gMain
- ldr r2, _0804DFDC @ =0x0000043c
- adds r0, r2
- movs r1, 0x33
- strb r1, [r0]
- b _0804E11A
- .align 2, 0
-_0804DFD4: .4byte gUnknown_03004828
-_0804DFD8: .4byte gMain
-_0804DFDC: .4byte 0x0000043c
-_0804DFE0:
- bl sub_8125DDC
- ldr r0, _0804DFFC @ =gMain
- ldr r1, _0804E000 @ =0x0000043c
- adds r0, r1
- movs r2, 0
- movs r1, 0x28
-_0804DFEE:
- strb r1, [r0]
-_0804DFF0:
- ldr r0, _0804E004 @ =gUnknown_03004828
- ldr r0, [r0]
- adds r0, 0xC0
- str r2, [r0]
- b _0804E11A
- .align 2, 0
-_0804DFFC: .4byte gMain
-_0804E000: .4byte 0x0000043c
-_0804E004: .4byte gUnknown_03004828
-_0804E008:
- ldr r0, _0804E02C @ =gUnknown_03004828
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x32
- bhi _0804E01C
- b _0804E11A
-_0804E01C:
- movs r0, 0
- str r0, [r1]
- ldr r0, _0804E030 @ =0x0000043c
- adds r1, r2, r0
- movs r0, 0x29
- strb r0, [r1]
- b _0804E11A
- .align 2, 0
-_0804E02C: .4byte gUnknown_03004828
-_0804E030: .4byte 0x0000043c
-_0804E034:
- bl sub_80084A4
- ldr r0, _0804E044 @ =gMain
- ldr r1, _0804E048 @ =0x0000043c
- adds r0, r1
- movs r1, 0x2A
- strb r1, [r0]
- b _0804E11A
- .align 2, 0
-_0804E044: .4byte gMain
-_0804E048: .4byte 0x0000043c
-_0804E04C:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _0804E11A
- bl sub_8125E04
- ldr r1, _0804E06C @ =gSoftResetDisabled
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0804E070 @ =gMain
- ldr r2, _0804E074 @ =0x0000043c
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0]
- b _0804E11A
- .align 2, 0
-_0804E06C: .4byte gSoftResetDisabled
-_0804E070: .4byte gMain
-_0804E074: .4byte 0x0000043c
-_0804E078:
- ldr r0, _0804E098 @ =gUnknown_03004828
- ldr r1, [r0]
- adds r1, 0xC0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x3C
- bls _0804E11A
- ldr r0, _0804E09C @ =0x0000043c
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl sub_80084A4
- b _0804E11A
- .align 2, 0
-_0804E098: .4byte gUnknown_03004828
-_0804E09C: .4byte 0x0000043c
-_0804E0A0:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _0804E11A
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0804E0F4
-_0804E0BC:
- ldr r0, _0804E0D8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804E11A
- movs r0, 0x3
- bl FadeOutBGM
- ldr r1, _0804E0DC @ =gMain
- ldr r0, _0804E0E0 @ =0x0000043c
- adds r1, r0
- b _0804E0FA
- .align 2, 0
-_0804E0D8: .4byte gPaletteFade
-_0804E0DC: .4byte gMain
-_0804E0E0: .4byte 0x0000043c
-_0804E0E4:
- bl IsBGMStopped
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0804E11A
- bl sub_800832C
-_0804E0F4:
- ldr r1, _0804E104 @ =gMain
- ldr r2, _0804E108 @ =0x0000043c
- adds r1, r2
-_0804E0FA:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0804E11A
- .align 2, 0
-_0804E104: .4byte gMain
-_0804E108: .4byte 0x0000043c
-_0804E10C:
- ldr r0, _0804E13C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804E11A
- ldr r0, _0804E140 @ =sub_804E144
- bl SetMainCallback2
-_0804E11A:
- bl HasLinkErrorOccurred
- lsls r0, 24
- cmp r0, 0
- bne _0804E128
- bl RunTasks
-_0804E128:
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E13C: .4byte gReceivedRemoteLinkPlayers
-_0804E140: .4byte sub_804E144
- thumb_func_end sub_804DC88
-
- thumb_func_start sub_804E144
-sub_804E144: @ 804E144
- push {lr}
- ldr r0, _0804E16C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804E158
- ldr r0, _0804E170 @ =sub_8047CD8
- bl SetMainCallback2
-_0804E158:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- .align 2, 0
-_0804E16C: .4byte gPaletteFade
-_0804E170: .4byte sub_8047CD8
- thumb_func_end sub_804E144
-
- thumb_func_start sub_804E174
-sub_804E174: @ 804E174
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _0804E19C @ =sub_804E1A0
- movs r1, 0xA
- bl CreateTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0804E19C: .4byte sub_804E1A0
- thumb_func_end sub_804E174
-
- thumb_func_start sub_804E1A0
-sub_804E1A0: @ 804E1A0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0804E1CC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804E1C4
- ldr r0, _0804E1D0 @ =sub_804B790
- bl SetMainCallback2
- ldr r1, _0804E1D4 @ =gFieldCallback
- ldr r0, _0804E1D8 @ =sub_8080990
- str r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_0804E1C4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E1CC: .4byte gPaletteFade
-_0804E1D0: .4byte sub_804B790
-_0804E1D4: .4byte gFieldCallback
-_0804E1D8: .4byte sub_8080990
- thumb_func_end sub_804E1A0
-
- thumb_func_start sub_804E1DC
-sub_804E1DC: @ 804E1DC
- push {r4,r5,lr}
- movs r5, 0
- movs r4, 0
-_0804E1E2:
- ldr r0, _0804E220 @ =gUnknown_020297D8
- ldrb r0, [r0, 0x1]
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0804E224 @ =gEnemyParty
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x43
- bl GetMonData
- adds r0, r5, r0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xB
- bls _0804E1E2
- cmp r5, 0
- beq _0804E21A
- ldr r0, _0804E228 @ =0x0000083b
- bl FlagSet
-_0804E21A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E220: .4byte gUnknown_020297D8
-_0804E224: .4byte gEnemyParty
-_0804E228: .4byte 0x0000083b
- thumb_func_end sub_804E1DC
-
- thumb_func_start sub_804E22C
-sub_804E22C: @ 804E22C
- push {r4,lr}
- ldr r0, _0804E26C @ =gUnknown_08D00000
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- ldr r0, _0804E270 @ =gUnknown_08D00524
- ldr r4, _0804E274 @ =0x02000000
- movs r2, 0x80
- lsls r2, 4
- adds r1, r4, 0
- bl CpuSet
- ldr r1, _0804E278 @ =0x06002800
- ldr r0, _0804E27C @ =0x040000d4
- str r4, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0804E280 @ =0x80000280
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _0804E284 @ =gUnknown_08D004E0
- movs r1, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, _0804E288 @ =REG_BG1CNT
- ldr r2, _0804E28C @ =0x00000502
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E26C: .4byte gUnknown_08D00000
-_0804E270: .4byte gUnknown_08D00524
-_0804E274: .4byte 0x02000000
-_0804E278: .4byte 0x06002800
-_0804E27C: .4byte 0x040000d4
-_0804E280: .4byte 0x80000280
-_0804E284: .4byte gUnknown_08D004E0
-_0804E288: .4byte REG_BG1CNT
-_0804E28C: .4byte 0x00000502
- thumb_func_end sub_804E22C
-
- .align 2, 0 @ Don't pad with nop.