summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-12-18 12:02:42 -0800
committerYamaArashi <shadow962@live.com>2016-12-18 12:02:42 -0800
commite57861e2bf71ab77f12cab160e7268cf027c5c45 (patch)
treee4119a30ca830861ec39e334d1b444d2abf44f97
parentb8d3542b46621299bc2056b53209fc22646bef2f (diff)
split out fldeff_cut.s
-rw-r--r--asm/fldeff_cut.s797
-rw-r--r--asm/rom_8094928.s1592
-rw-r--r--asm/rom_80A2B18.s813
-rw-r--r--ld_script.txt2
4 files changed, 1612 insertions, 1592 deletions
diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s
new file mode 100644
index 000000000..530e8034f
--- /dev/null
+++ b/asm/fldeff_cut.s
@@ -0,0 +1,797 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start SetUpFieldMove_Cut
+SetUpFieldMove_Cut: @ 80A2504
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0x52
+ bl npc_before_player_of_type
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A2534
+ ldr r1, _080A2524 @ =gUnknown_0300485C
+ ldr r0, _080A2528 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _080A252C @ =gUnknown_03005CE4
+ ldr r0, _080A2530 @ =sub_80A2634
+ b _080A25A8
+ .align 2, 0
+_080A2524: .4byte gUnknown_0300485C
+_080A2528: .4byte sub_808AB90
+_080A252C: .4byte gUnknown_03005CE4
+_080A2530: .4byte sub_80A2634
+_080A2534:
+ ldr r4, _080A25B0 @ =gUnknown_0203923C
+ adds r1, r4, 0x2
+ adds r0, r4, 0
+ bl PlayerGetDestCoords
+ movs r7, 0
+ mov r8, r4
+_080A2542:
+ ldr r1, _080A25B4 @ =0x0000ffff
+ adds r0, r7, r1
+ mov r2, r8
+ ldrh r2, [r2, 0x2]
+ adds r0, r2
+ movs r6, 0
+ lsls r0, 16
+ asrs r5, r0, 16
+_080A2552:
+ ldr r1, _080A25B4 @ =0x0000ffff
+ adds r0, r6, r1
+ mov r2, r8
+ ldrh r2, [r2]
+ adds r0, r2
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetZCoordAt
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r8
+ movs r1, 0x4
+ ldrsb r1, [r2, r1]
+ cmp r0, r1
+ bne _080A25C8
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8056E14
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A259E
+ adds r0, r4, 0
+ bl MetatileBehavior_IsAsh
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A25C8
+_080A259E:
+ ldr r1, _080A25B8 @ =gUnknown_0300485C
+ ldr r0, _080A25BC @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _080A25C0 @ =gUnknown_03005CE4
+ ldr r0, _080A25C4 @ =sub_80A25E8
+_080A25A8:
+ str r0, [r1]
+ movs r0, 0x1
+ b _080A25DE
+ .align 2, 0
+_080A25B0: .4byte gUnknown_0203923C
+_080A25B4: .4byte 0x0000ffff
+_080A25B8: .4byte gUnknown_0300485C
+_080A25BC: .4byte sub_808AB90
+_080A25C0: .4byte gUnknown_03005CE4
+_080A25C4: .4byte sub_80A25E8
+_080A25C8:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x2
+ bls _080A2552
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bls _080A2542
+ movs r0, 0
+_080A25DE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end SetUpFieldMove_Cut
+
+ thumb_func_start sub_80A25E8
+sub_80A25E8: @ 80A25E8
+ push {lr}
+ movs r0, 0x1
+ bl FieldEffectStart
+ ldr r0, _080A25FC @ =gUnknown_0202FF84
+ ldr r1, _080A2600 @ =gUnknown_03005CE0
+ ldrb r1, [r1]
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A25FC: .4byte gUnknown_0202FF84
+_080A2600: .4byte gUnknown_03005CE0
+ thumb_func_end sub_80A25E8
+
+ thumb_func_start FldEff_UseCutOnGrass
+FldEff_UseCutOnGrass: @ 80A2604
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A262C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080A2630 @ =sub_80A2684
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0x12
+ bl sav12_xor_increment
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A262C: .4byte gTasks
+_080A2630: .4byte sub_80A2684
+ thumb_func_end FldEff_UseCutOnGrass
+
+ thumb_func_start sub_80A2634
+sub_80A2634: @ 80A2634
+ push {lr}
+ ldr r1, _080A2648 @ =gUnknown_0202FF84
+ ldr r0, _080A264C @ =gUnknown_03005CE0
+ ldrb r0, [r0]
+ str r0, [r1]
+ ldr r0, _080A2650 @ =UseCutScript
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2648: .4byte gUnknown_0202FF84
+_080A264C: .4byte gUnknown_03005CE0
+_080A2650: .4byte UseCutScript
+ thumb_func_end sub_80A2634
+
+ thumb_func_start FldEff_UseCutOnTree
+FldEff_UseCutOnTree: @ 80A2654
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A267C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080A2680 @ =sub_80A2B00
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0x12
+ bl sav12_xor_increment
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A267C: .4byte gTasks
+_080A2680: .4byte sub_80A2B00
+ thumb_func_end FldEff_UseCutOnTree
+
+ thumb_func_start sub_80A2684
+sub_80A2684: @ 80A2684
+ push {lr}
+ movs r0, 0x1
+ bl FieldEffectActiveListRemove
+ movs r0, 0x3A
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2684
+
+ thumb_func_start FldEff_CutGrass
+FldEff_CutGrass: @ 80A2698
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r7, 0
+ movs r0, 0x80
+ bl PlaySE
+ ldr r4, _080A2790 @ =gUnknown_0203923C
+ adds r1, r4, 0x2
+ adds r0, r4, 0
+ bl PlayerGetDestCoords
+ mov r8, r4
+_080A26B2:
+ ldr r1, _080A2794 @ =0x0000ffff
+ adds r0, r7, r1
+ mov r2, r8
+ ldrh r2, [r2, 0x2]
+ adds r0, r2
+ movs r6, 0
+ lsls r0, 16
+ asrs r5, r0, 16
+_080A26C2:
+ ldr r1, _080A2794 @ =0x0000ffff
+ adds r0, r6, r1
+ mov r2, r8
+ ldrh r2, [r2]
+ adds r0, r2
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetZCoordAt
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r8
+ movs r1, 0x4
+ ldrsb r1, [r2, r1]
+ cmp r0, r1
+ bne _080A270E
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80578F8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A270E
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A27A8
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_805BCC0
+_080A270E:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x2
+ bls _080A26C2
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bls _080A26B2
+ ldr r1, _080A2790 @ =gUnknown_0203923C
+ ldrh r0, [r1]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r1, 0x2]
+ subs r1, 0x2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80A28F4
+ bl DrawWholeMapView
+ movs r7, 0
+ ldr r4, _080A2798 @ =gSprites
+_080A2740:
+ ldr r0, _080A279C @ =gPlayerAvatar
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ movs r2, 0x80
+ lsls r2, 12
+ adds r1, r2
+ asrs r1, 16
+ ldrb r2, [r0]
+ adds r2, 0x14
+ ldr r0, _080A27A0 @ =gSpriteTemplate_CutGrass
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, _080A27A4 @ =0x0201fff0
+ adds r1, r7, r1
+ strb r0, [r1]
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ lsls r1, r7, 5
+ strh r1, [r0, 0x32]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x7
+ bls _080A2740
+ movs r0, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A2790: .4byte gUnknown_0203923C
+_080A2794: .4byte 0x0000ffff
+_080A2798: .4byte gSprites
+_080A279C: .4byte gPlayerAvatar
+_080A27A0: .4byte gSpriteTemplate_CutGrass
+_080A27A4: .4byte 0x0201fff0
+ thumb_func_end FldEff_CutGrass
+
+ thumb_func_start sub_80A27A8
+sub_80A27A8: @ 80A27A8
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r6, r0, 16
+ asrs r4, r0, 16
+ lsrs r7, r1, 16
+ asrs r5, r1, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileIdAt
+ adds r1, r0, 0
+ ldr r0, _080A27E0 @ =0x00000207
+ cmp r1, r0
+ bgt _080A27F4
+ subs r0, 0x1
+ cmp r1, r0
+ bge _080A286C
+ cmp r1, 0x25
+ beq _080A288E
+ cmp r1, 0x25
+ bgt _080A27E4
+ cmp r1, 0xD
+ beq _080A2834
+ cmp r1, 0x15
+ beq _080A2834
+ b _080A2898
+ .align 2, 0
+_080A27E0: .4byte 0x00000207
+_080A27E4:
+ movs r0, 0xE3
+ lsls r0, 1
+ cmp r1, r0
+ beq _080A2844
+ adds r0, 0x1
+ cmp r1, r0
+ beq _080A284A
+ b _080A2898
+_080A27F4:
+ ldr r0, _080A280C @ =0x00000212
+ cmp r1, r0
+ beq _080A287C
+ cmp r1, r0
+ bgt _080A2810
+ subs r0, 0xA
+ cmp r1, r0
+ beq _080A2834
+ adds r0, 0x2
+ cmp r1, r0
+ beq _080A287C
+ b _080A2898
+ .align 2, 0
+_080A280C: .4byte 0x00000212
+_080A2810:
+ ldr r0, _080A2824 @ =0x00000282
+ cmp r1, r0
+ beq _080A285C
+ cmp r1, r0
+ bgt _080A2828
+ subs r0, 0x1
+ cmp r1, r0
+ beq _080A2854
+ b _080A2898
+ .align 2, 0
+_080A2824: .4byte 0x00000282
+_080A2828:
+ ldr r0, _080A2830 @ =0x00000283
+ cmp r1, r0
+ beq _080A2864
+ b _080A2898
+ .align 2, 0
+_080A2830: .4byte 0x00000283
+_080A2834:
+ lsls r0, r6, 16
+ asrs r0, 16
+ lsls r1, r7, 16
+ asrs r1, 16
+ movs r2, 0x1
+ bl MapGridSetMetatileIdAt
+ b _080A2898
+_080A2844:
+ movs r2, 0xE7
+ lsls r2, 1
+ b _080A286E
+_080A284A:
+ ldr r2, _080A2850 @ =0x000001cf
+ b _080A286E
+ .align 2, 0
+_080A2850: .4byte 0x000001cf
+_080A2854:
+ ldr r2, _080A2858 @ =0x00000279
+ b _080A286E
+ .align 2, 0
+_080A2858: .4byte 0x00000279
+_080A285C:
+ ldr r2, _080A2860 @ =0x0000027a
+ b _080A286E
+ .align 2, 0
+_080A2860: .4byte 0x0000027a
+_080A2864:
+ ldr r2, _080A2868 @ =0x0000027b
+ b _080A286E
+ .align 2, 0
+_080A2868: .4byte 0x0000027b
+_080A286C:
+ ldr r2, _080A2878 @ =0x00000271
+_080A286E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+ b _080A2898
+ .align 2, 0
+_080A2878: .4byte 0x00000271
+_080A287C:
+ lsls r0, r6, 16
+ asrs r0, 16
+ lsls r1, r7, 16
+ asrs r1, 16
+ movs r2, 0x86
+ lsls r2, 2
+ bl MapGridSetMetatileIdAt
+ b _080A2898
+_080A288E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xE
+ bl MapGridSetMetatileIdAt
+_080A2898:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A27A8
+
+ thumb_func_start sub_80A28A0
+sub_80A28A0: @ 80A28A0
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ bl MapGridGetMetatileIdAt
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, r1, 0
+ cmp r1, 0x1
+ bne _080A28BC
+ movs r0, 0x1
+ b _080A28EE
+_080A28BC:
+ ldr r0, _080A28C8 @ =0x00000279
+ cmp r1, r0
+ bne _080A28CC
+ movs r0, 0x2
+ b _080A28EE
+ .align 2, 0
+_080A28C8: .4byte 0x00000279
+_080A28CC:
+ ldr r0, _080A28D8 @ =0x0000027a
+ cmp r1, r0
+ bne _080A28DC
+ movs r0, 0x3
+ b _080A28EE
+ .align 2, 0
+_080A28D8: .4byte 0x0000027a
+_080A28DC:
+ ldr r0, _080A28E8 @ =0x0000027b
+ cmp r2, r0
+ beq _080A28EC
+ movs r0, 0
+ b _080A28EE
+ .align 2, 0
+_080A28E8: .4byte 0x0000027b
+_080A28EC:
+ movs r0, 0x4
+_080A28EE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A28A0
+
+ thumb_func_start sub_80A28F4
+sub_80A28F4: @ 80A28F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ lsls r1, 16
+ movs r2, 0xC0
+ lsls r2, 10
+ adds r0, r1, r2
+ lsrs r0, 16
+ mov r9, r0
+ movs r4, 0
+ asrs r7, r1, 16
+_080A2914:
+ mov r1, r10
+ lsls r0, r1, 16
+ asrs r0, 16
+ lsls r4, 16
+ asrs r1, r4, 16
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ asrs r5, r0, 16
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl MapGridGetMetatileIdAt
+ mov r8, r4
+ cmp r0, 0x15
+ bne _080A2996
+ adds r4, r7, 0x1
+ lsls r1, r4, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ bl sub_80A28A0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _080A296A
+ cmp r0, 0x2
+ bgt _080A2952
+ cmp r0, 0x1
+ beq _080A295C
+ b _080A2996
+_080A2952:
+ cmp r0, 0x3
+ beq _080A297C
+ cmp r0, 0x4
+ beq _080A298C
+ b _080A2996
+_080A295C:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x82
+ lsls r2, 2
+ bl MapGridSetMetatileIdAt
+ b _080A2996
+_080A296A:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2978 @ =0x00000281
+ bl MapGridSetMetatileIdAt
+ b _080A2996
+ .align 2, 0
+_080A2978: .4byte 0x00000281
+_080A297C:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2988 @ =0x00000282
+ bl MapGridSetMetatileIdAt
+ b _080A2996
+ .align 2, 0
+_080A2988: .4byte 0x00000282
+_080A298C:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2A30 @ =0x00000283
+ bl MapGridSetMetatileIdAt
+_080A2996:
+ lsls r0, r6, 16
+ asrs r5, r0, 16
+ mov r2, r9
+ lsls r0, r2, 16
+ asrs r4, r0, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ cmp r0, 0x1
+ bne _080A2A10
+ adds r4, 0x1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ movs r1, 0x82
+ lsls r1, 2
+ cmp r0, r1
+ bne _080A29C8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl MapGridSetMetatileIdAt
+_080A29C8:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, _080A2A34 @ =0x00000281
+ cmp r0, r1
+ bne _080A29E0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2A38 @ =0x00000279
+ bl MapGridSetMetatileIdAt
+_080A29E0:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, _080A2A3C @ =0x00000282
+ cmp r0, r1
+ bne _080A29F8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2A40 @ =0x0000027a
+ bl MapGridSetMetatileIdAt
+_080A29F8:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, _080A2A30 @ =0x00000283
+ cmp r0, r1
+ bne _080A2A10
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2A44 @ =0x0000027b
+ bl MapGridSetMetatileIdAt
+_080A2A10:
+ movs r0, 0x80
+ lsls r0, 9
+ add r0, r8
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bgt _080A2A20
+ b _080A2914
+_080A2A20:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2A30: .4byte 0x00000283
+_080A2A34: .4byte 0x00000281
+_080A2A38: .4byte 0x00000279
+_080A2A3C: .4byte 0x00000282
+_080A2A40: .4byte 0x0000027a
+_080A2A44: .4byte 0x0000027b
+ thumb_func_end sub_80A28F4
+
+ thumb_func_start sub_80A2A48
+sub_80A2A48: @ 80A2A48
+ movs r2, 0
+ movs r1, 0x8
+ strh r1, [r0, 0x2E]
+ strh r2, [r0, 0x30]
+ strh r2, [r0, 0x34]
+ ldr r1, _080A2A58 @ =objc_8097BBC
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080A2A58: .4byte objc_8097BBC
+ thumb_func_end sub_80A2A48
+
+ thumb_func_start objc_8097BBC
+objc_8097BBC: @ 80A2A5C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x2E]
+ adds r1, 0x1
+ ldrh r2, [r4, 0x34]
+ lsls r0, r2, 16
+ asrs r0, 18
+ adds r1, r0
+ strh r1, [r4, 0x2E]
+ adds r2, 0x1
+ strh r2, [r4, 0x34]
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1C
+ beq _080A2AA8
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ b _080A2AAC
+_080A2AA8:
+ ldr r0, _080A2AB4 @ =sub_80A2AB8
+ str r0, [r4, 0x1C]
+_080A2AAC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2AB4: .4byte sub_80A2AB8
+ thumb_func_end objc_8097BBC
+
+ thumb_func_start sub_80A2AB8
+sub_80A2AB8: @ 80A2AB8
+ push {r4-r6,lr}
+ movs r4, 0x1
+_080A2ABC:
+ ldr r6, _080A2AF8 @ =0x0201fff0
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _080A2AFC @ =gSprites
+ adds r0, r5
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _080A2ABC
+ ldrb r1, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x3A
+ bl FieldEffectStop
+ bl sub_8064E2C
+ bl ScriptContext2_Disable
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2AF8: .4byte 0x0201fff0
+_080A2AFC: .4byte gSprites
+ thumb_func_end sub_80A2AB8
+
+ thumb_func_start sub_80A2B00
+sub_80A2B00: @ 80A2B00
+ push {lr}
+ movs r0, 0x80
+ bl PlaySE
+ movs r0, 0x2
+ bl FieldEffectActiveListRemove
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2B00
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_8094928.s b/asm/rom_8094928.s
index 231f13e9c..4acaddce5 100644
--- a/asm/rom_8094928.s
+++ b/asm/rom_8094928.s
@@ -27864,1596 +27864,4 @@ _080A24FA:
bx r0
thumb_func_end sub_80A2490
- thumb_func_start SetUpFieldMove_Cut
-SetUpFieldMove_Cut: @ 80A2504
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0x52
- bl npc_before_player_of_type
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A2534
- ldr r1, _080A2524 @ =gUnknown_0300485C
- ldr r0, _080A2528 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _080A252C @ =gUnknown_03005CE4
- ldr r0, _080A2530 @ =sub_80A2634
- b _080A25A8
- .align 2, 0
-_080A2524: .4byte gUnknown_0300485C
-_080A2528: .4byte sub_808AB90
-_080A252C: .4byte gUnknown_03005CE4
-_080A2530: .4byte sub_80A2634
-_080A2534:
- ldr r4, _080A25B0 @ =gUnknown_0203923C
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl PlayerGetDestCoords
- movs r7, 0
- mov r8, r4
-_080A2542:
- ldr r1, _080A25B4 @ =0x0000ffff
- adds r0, r7, r1
- mov r2, r8
- ldrh r2, [r2, 0x2]
- adds r0, r2
- movs r6, 0
- lsls r0, 16
- asrs r5, r0, 16
-_080A2552:
- ldr r1, _080A25B4 @ =0x0000ffff
- adds r0, r6, r1
- mov r2, r8
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- cmp r0, r1
- bne _080A25C8
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8056E14
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A259E
- adds r0, r4, 0
- bl MetatileBehavior_IsAsh
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A25C8
-_080A259E:
- ldr r1, _080A25B8 @ =gUnknown_0300485C
- ldr r0, _080A25BC @ =sub_808AB90
- str r0, [r1]
- ldr r1, _080A25C0 @ =gUnknown_03005CE4
- ldr r0, _080A25C4 @ =sub_80A25E8
-_080A25A8:
- str r0, [r1]
- movs r0, 0x1
- b _080A25DE
- .align 2, 0
-_080A25B0: .4byte gUnknown_0203923C
-_080A25B4: .4byte 0x0000ffff
-_080A25B8: .4byte gUnknown_0300485C
-_080A25BC: .4byte sub_808AB90
-_080A25C0: .4byte gUnknown_03005CE4
-_080A25C4: .4byte sub_80A25E8
-_080A25C8:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _080A2552
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _080A2542
- movs r0, 0
-_080A25DE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end SetUpFieldMove_Cut
-
- thumb_func_start sub_80A25E8
-sub_80A25E8: @ 80A25E8
- push {lr}
- movs r0, 0x1
- bl FieldEffectStart
- ldr r0, _080A25FC @ =gUnknown_0202FF84
- ldr r1, _080A2600 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080A25FC: .4byte gUnknown_0202FF84
-_080A2600: .4byte gUnknown_03005CE0
- thumb_func_end sub_80A25E8
-
- thumb_func_start FldEff_UseCutOnGrass
-FldEff_UseCutOnGrass: @ 80A2604
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A262C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080A2630 @ =sub_80A2684
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x12
- bl sav12_xor_increment
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A262C: .4byte gTasks
-_080A2630: .4byte sub_80A2684
- thumb_func_end FldEff_UseCutOnGrass
-
- thumb_func_start sub_80A2634
-sub_80A2634: @ 80A2634
- push {lr}
- ldr r1, _080A2648 @ =gUnknown_0202FF84
- ldr r0, _080A264C @ =gUnknown_03005CE0
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _080A2650 @ =UseCutScript
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080A2648: .4byte gUnknown_0202FF84
-_080A264C: .4byte gUnknown_03005CE0
-_080A2650: .4byte UseCutScript
- thumb_func_end sub_80A2634
-
- thumb_func_start FldEff_UseCutOnTree
-FldEff_UseCutOnTree: @ 80A2654
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A267C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080A2680 @ =sub_80A2B00
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x12
- bl sav12_xor_increment
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A267C: .4byte gTasks
-_080A2680: .4byte sub_80A2B00
- thumb_func_end FldEff_UseCutOnTree
-
- thumb_func_start sub_80A2684
-sub_80A2684: @ 80A2684
- push {lr}
- movs r0, 0x1
- bl FieldEffectActiveListRemove
- movs r0, 0x3A
- bl FieldEffectStart
- pop {r0}
- bx r0
- thumb_func_end sub_80A2684
-
- thumb_func_start FldEff_CutGrass
-FldEff_CutGrass: @ 80A2698
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r7, 0
- movs r0, 0x80
- bl PlaySE
- ldr r4, _080A2790 @ =gUnknown_0203923C
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl PlayerGetDestCoords
- mov r8, r4
-_080A26B2:
- ldr r1, _080A2794 @ =0x0000ffff
- adds r0, r7, r1
- mov r2, r8
- ldrh r2, [r2, 0x2]
- adds r0, r2
- movs r6, 0
- lsls r0, 16
- asrs r5, r0, 16
-_080A26C2:
- ldr r1, _080A2794 @ =0x0000ffff
- adds r0, r6, r1
- mov r2, r8
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- cmp r0, r1
- bne _080A270E
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_80578F8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A270E
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A27A8
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_805BCC0
-_080A270E:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _080A26C2
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _080A26B2
- ldr r1, _080A2790 @ =gUnknown_0203923C
- ldrh r0, [r1]
- subs r0, 0x1
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r1, 0x2]
- subs r1, 0x2
- lsls r1, 16
- asrs r1, 16
- bl sub_80A28F4
- bl DrawWholeMapView
- movs r7, 0
- ldr r4, _080A2798 @ =gSprites
-_080A2740:
- ldr r0, _080A279C @ =gPlayerAvatar
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x2]
- lsls r1, 23
- lsrs r1, 7
- movs r2, 0x80
- lsls r2, 12
- adds r1, r2
- asrs r1, 16
- ldrb r2, [r0]
- adds r2, 0x14
- ldr r0, _080A27A0 @ =gSpriteTemplate_CutGrass
- movs r3, 0
- bl CreateSprite
- ldr r1, _080A27A4 @ =0x0201fff0
- adds r1, r7, r1
- strb r0, [r1]
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- lsls r1, r7, 5
- strh r1, [r0, 0x32]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x7
- bls _080A2740
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080A2790: .4byte gUnknown_0203923C
-_080A2794: .4byte 0x0000ffff
-_080A2798: .4byte gSprites
-_080A279C: .4byte gPlayerAvatar
-_080A27A0: .4byte gSpriteTemplate_CutGrass
-_080A27A4: .4byte 0x0201fff0
- thumb_func_end FldEff_CutGrass
-
- thumb_func_start sub_80A27A8
-sub_80A27A8: @ 80A27A8
- push {r4-r7,lr}
- lsls r0, 16
- lsls r1, 16
- lsrs r6, r0, 16
- asrs r4, r0, 16
- lsrs r7, r1, 16
- asrs r5, r1, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, _080A27E0 @ =0x00000207
- cmp r1, r0
- bgt _080A27F4
- subs r0, 0x1
- cmp r1, r0
- bge _080A286C
- cmp r1, 0x25
- beq _080A288E
- cmp r1, 0x25
- bgt _080A27E4
- cmp r1, 0xD
- beq _080A2834
- cmp r1, 0x15
- beq _080A2834
- b _080A2898
- .align 2, 0
-_080A27E0: .4byte 0x00000207
-_080A27E4:
- movs r0, 0xE3
- lsls r0, 1
- cmp r1, r0
- beq _080A2844
- adds r0, 0x1
- cmp r1, r0
- beq _080A284A
- b _080A2898
-_080A27F4:
- ldr r0, _080A280C @ =0x00000212
- cmp r1, r0
- beq _080A287C
- cmp r1, r0
- bgt _080A2810
- subs r0, 0xA
- cmp r1, r0
- beq _080A2834
- adds r0, 0x2
- cmp r1, r0
- beq _080A287C
- b _080A2898
- .align 2, 0
-_080A280C: .4byte 0x00000212
-_080A2810:
- ldr r0, _080A2824 @ =0x00000282
- cmp r1, r0
- beq _080A285C
- cmp r1, r0
- bgt _080A2828
- subs r0, 0x1
- cmp r1, r0
- beq _080A2854
- b _080A2898
- .align 2, 0
-_080A2824: .4byte 0x00000282
-_080A2828:
- ldr r0, _080A2830 @ =0x00000283
- cmp r1, r0
- beq _080A2864
- b _080A2898
- .align 2, 0
-_080A2830: .4byte 0x00000283
-_080A2834:
- lsls r0, r6, 16
- asrs r0, 16
- lsls r1, r7, 16
- asrs r1, 16
- movs r2, 0x1
- bl MapGridSetMetatileIdAt
- b _080A2898
-_080A2844:
- movs r2, 0xE7
- lsls r2, 1
- b _080A286E
-_080A284A:
- ldr r2, _080A2850 @ =0x000001cf
- b _080A286E
- .align 2, 0
-_080A2850: .4byte 0x000001cf
-_080A2854:
- ldr r2, _080A2858 @ =0x00000279
- b _080A286E
- .align 2, 0
-_080A2858: .4byte 0x00000279
-_080A285C:
- ldr r2, _080A2860 @ =0x0000027a
- b _080A286E
- .align 2, 0
-_080A2860: .4byte 0x0000027a
-_080A2864:
- ldr r2, _080A2868 @ =0x0000027b
- b _080A286E
- .align 2, 0
-_080A2868: .4byte 0x0000027b
-_080A286C:
- ldr r2, _080A2878 @ =0x00000271
-_080A286E:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _080A2898
- .align 2, 0
-_080A2878: .4byte 0x00000271
-_080A287C:
- lsls r0, r6, 16
- asrs r0, 16
- lsls r1, r7, 16
- asrs r1, 16
- movs r2, 0x86
- lsls r2, 2
- bl MapGridSetMetatileIdAt
- b _080A2898
-_080A288E:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0xE
- bl MapGridSetMetatileIdAt
-_080A2898:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A27A8
-
- thumb_func_start sub_80A28A0
-sub_80A28A0: @ 80A28A0
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, r1, 0
- cmp r1, 0x1
- bne _080A28BC
- movs r0, 0x1
- b _080A28EE
-_080A28BC:
- ldr r0, _080A28C8 @ =0x00000279
- cmp r1, r0
- bne _080A28CC
- movs r0, 0x2
- b _080A28EE
- .align 2, 0
-_080A28C8: .4byte 0x00000279
-_080A28CC:
- ldr r0, _080A28D8 @ =0x0000027a
- cmp r1, r0
- bne _080A28DC
- movs r0, 0x3
- b _080A28EE
- .align 2, 0
-_080A28D8: .4byte 0x0000027a
-_080A28DC:
- ldr r0, _080A28E8 @ =0x0000027b
- cmp r2, r0
- beq _080A28EC
- movs r0, 0
- b _080A28EE
- .align 2, 0
-_080A28E8: .4byte 0x0000027b
-_080A28EC:
- movs r0, 0x4
-_080A28EE:
- pop {r1}
- bx r1
- thumb_func_end sub_80A28A0
-
- thumb_func_start sub_80A28F4
-sub_80A28F4: @ 80A28F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsls r1, 16
- movs r2, 0xC0
- lsls r2, 10
- adds r0, r1, r2
- lsrs r0, 16
- mov r9, r0
- movs r4, 0
- asrs r7, r1, 16
-_080A2914:
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- lsls r4, 16
- asrs r1, r4, 16
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- asrs r5, r0, 16
- adds r0, r5, 0
- adds r1, r7, 0
- bl MapGridGetMetatileIdAt
- mov r8, r4
- cmp r0, 0x15
- bne _080A2996
- adds r4, r7, 0x1
- lsls r1, r4, 16
- asrs r1, 16
- adds r0, r5, 0
- bl sub_80A28A0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080A296A
- cmp r0, 0x2
- bgt _080A2952
- cmp r0, 0x1
- beq _080A295C
- b _080A2996
-_080A2952:
- cmp r0, 0x3
- beq _080A297C
- cmp r0, 0x4
- beq _080A298C
- b _080A2996
-_080A295C:
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x82
- lsls r2, 2
- bl MapGridSetMetatileIdAt
- b _080A2996
-_080A296A:
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2978 @ =0x00000281
- bl MapGridSetMetatileIdAt
- b _080A2996
- .align 2, 0
-_080A2978: .4byte 0x00000281
-_080A297C:
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2988 @ =0x00000282
- bl MapGridSetMetatileIdAt
- b _080A2996
- .align 2, 0
-_080A2988: .4byte 0x00000282
-_080A298C:
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A30 @ =0x00000283
- bl MapGridSetMetatileIdAt
-_080A2996:
- lsls r0, r6, 16
- asrs r5, r0, 16
- mov r2, r9
- lsls r0, r2, 16
- asrs r4, r0, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- cmp r0, 0x1
- bne _080A2A10
- adds r4, 0x1
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- movs r1, 0x82
- lsls r1, 2
- cmp r0, r1
- bne _080A29C8
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl MapGridSetMetatileIdAt
-_080A29C8:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _080A2A34 @ =0x00000281
- cmp r0, r1
- bne _080A29E0
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A38 @ =0x00000279
- bl MapGridSetMetatileIdAt
-_080A29E0:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _080A2A3C @ =0x00000282
- cmp r0, r1
- bne _080A29F8
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A40 @ =0x0000027a
- bl MapGridSetMetatileIdAt
-_080A29F8:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _080A2A30 @ =0x00000283
- cmp r0, r1
- bne _080A2A10
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A44 @ =0x0000027b
- bl MapGridSetMetatileIdAt
-_080A2A10:
- movs r0, 0x80
- lsls r0, 9
- add r0, r8
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bgt _080A2A20
- b _080A2914
-_080A2A20:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2A30: .4byte 0x00000283
-_080A2A34: .4byte 0x00000281
-_080A2A38: .4byte 0x00000279
-_080A2A3C: .4byte 0x00000282
-_080A2A40: .4byte 0x0000027a
-_080A2A44: .4byte 0x0000027b
- thumb_func_end sub_80A28F4
-
- thumb_func_start sub_80A2A48
-sub_80A2A48: @ 80A2A48
- movs r2, 0
- movs r1, 0x8
- strh r1, [r0, 0x2E]
- strh r2, [r0, 0x30]
- strh r2, [r0, 0x34]
- ldr r1, _080A2A58 @ =objc_8097BBC
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080A2A58: .4byte objc_8097BBC
- thumb_func_end sub_80A2A48
-
- thumb_func_start objc_8097BBC
-objc_8097BBC: @ 80A2A5C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x2E]
- adds r1, 0x1
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 18
- adds r1, r0
- strh r1, [r4, 0x2E]
- adds r2, 0x1
- strh r2, [r4, 0x34]
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x1C
- beq _080A2AA8
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _080A2AAC
-_080A2AA8:
- ldr r0, _080A2AB4 @ =sub_80A2AB8
- str r0, [r4, 0x1C]
-_080A2AAC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2AB4: .4byte sub_80A2AB8
- thumb_func_end objc_8097BBC
-
- thumb_func_start sub_80A2AB8
-sub_80A2AB8: @ 80A2AB8
- push {r4-r6,lr}
- movs r4, 0x1
-_080A2ABC:
- ldr r6, _080A2AF8 @ =0x0201fff0
- adds r0, r4, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _080A2AFC @ =gSprites
- adds r0, r5
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _080A2ABC
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x3A
- bl FieldEffectStop
- bl sub_8064E2C
- bl ScriptContext2_Disable
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2AF8: .4byte 0x0201fff0
-_080A2AFC: .4byte gSprites
- thumb_func_end sub_80A2AB8
-
- thumb_func_start sub_80A2B00
-sub_80A2B00: @ 80A2B00
- push {lr}
- movs r0, 0x80
- bl PlaySE
- movs r0, 0x2
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80A2B00
-
- thumb_func_start sub_80A2B18
-sub_80A2B18: @ 80A2B18
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _080A2B3C @ =gSaveBlock1 + 0x2B4C
-_080A2B1E:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r0, r5
- bl sub_80A2B40
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _080A2B1E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2B3C: .4byte gSaveBlock1 + 0x2B4C
- thumb_func_end sub_80A2B18
-
- thumb_func_start sub_80A2B40
-sub_80A2B40: @ 80A2B40
- push {r4-r6,lr}
- adds r3, r0, 0
- ldr r0, _080A2B90 @ =0x0000ffff
- adds r4, r0, 0
- adds r1, r3, 0
- movs r2, 0x8
-_080A2B4C:
- ldrh r0, [r1]
- orrs r0, r4
- strh r0, [r1]
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _080A2B4C
- movs r2, 0
- adds r6, r3, 0
- adds r6, 0x1A
- adds r4, r3, 0
- adds r4, 0x12
- movs r5, 0xFF
-_080A2B66:
- adds r1, r4, r2
- ldrb r0, [r1]
- orrs r0, r5
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _080A2B66
- adds r1, r6, 0
- movs r2, 0
- adds r0, r1, 0x3
-_080A2B7A:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _080A2B7A
- movs r1, 0
- movs r0, 0x1
- strh r0, [r3, 0x1E]
- strh r1, [r3, 0x20]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2B90: .4byte 0x0000ffff
- thumb_func_end sub_80A2B40
-
- thumb_func_start sub_80A2B94
-sub_80A2B94: @ 80A2B94
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _080A2BBC
- adds r0, r4, 0
- movs r1, 0x40
- bl GetMonData
- cmp r0, 0xFF
- beq _080A2BBC
- movs r0, 0x1
- b _080A2BBE
-_080A2BBC:
- movs r0, 0
-_080A2BBE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2B94
-
- thumb_func_start sub_80A2BC4
-sub_80A2BC4: @ 80A2BC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r7, r0, 0
- lsls r1, 16
- lsrs r0, r1, 16
- str r0, [sp, 0x8]
- mov r0, sp
- movs r2, 0
- ldrb r3, [r0, 0x8]
- strb r3, [r0]
- lsrs r1, 24
- strb r1, [r0, 0x1]
- add r3, sp, 0x4
- strb r2, [r3]
- mov r10, r3
- ldr r4, _080A2D00 @ =gSaveBlock1
- mov r9, r4
- mov r8, r3
- adds r2, r3, 0
-_080A2BF2:
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldr r5, _080A2D04 @ =0x00002b6c
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, 0
- beq _080A2C08
- b _080A2D24
-_080A2C08:
- movs r3, 0
- ldr r0, _080A2D08 @ =gSaveBlock2
- mov r12, r0
- mov r4, r10
- ldr r6, _080A2D0C @ =gSaveBlock1 + 0x2B4C
- ldr r1, _080A2D10 @ =0x0000ffff
- adds r5, r1, 0
-_080A2C16:
- lsls r2, r3, 1
- ldrb r1, [r4]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- adds r2, r6
- ldrh r0, [r2]
- orrs r0, r5
- strh r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x8
- bls _080A2C16
- movs r3, 0
- mov r2, r10
- ldr r4, _080A2D14 @ =gSaveBlock1 + 0x2B5E
-_080A2C3A:
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3, r0
- adds r0, r4
- mov r5, r12
- adds r1, r3, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x6
- bls _080A2C3A
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3, r0
- ldr r1, _080A2D14 @ =gSaveBlock1 + 0x2B5E
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- mov r2, r8
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r3, _080A2D14 @ =gSaveBlock1 + 0x2B5E
- adds r0, r3
- movs r1, 0
- bl sub_814A518
- movs r3, 0
- mov r2, r10
- ldr r5, _080A2D18 @ =gSaveBlock1 + 0x2B66
- ldr r4, _080A2D1C @ =gSaveBlock2 + 0xA
-_080A2C88:
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3, r0
- adds r0, r5
- adds r1, r3, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _080A2C88
- adds r0, r7, 0
- movs r1, 0xB
- bl GetBoxMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r7, 0
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_80A2D44
- mov r4, r8
- ldrb r2, [r4]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- add r1, r9
- ldr r5, _080A2D20 @ =0x00002b6a
- adds r1, r5
- strh r0, [r1]
- ldrb r1, [r4]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldr r1, _080A2D04 @ =0x00002b6c
- adds r0, r1
- mov r2, sp
- ldrh r2, [r2, 0x8]
- strh r2, [r0]
- adds r0, r7, 0
- movs r1, 0x40
- mov r2, r8
- bl SetMonData
- adds r0, r7, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- ldrb r0, [r4]
- b _080A2D32
- .align 2, 0
-_080A2D00: .4byte gSaveBlock1
-_080A2D04: .4byte 0x00002b6c
-_080A2D08: .4byte gSaveBlock2
-_080A2D0C: .4byte gSaveBlock1 + 0x2B4C
-_080A2D10: .4byte 0x0000ffff
-_080A2D14: .4byte gSaveBlock1 + 0x2B5E
-_080A2D18: .4byte gSaveBlock1 + 0x2B66
-_080A2D1C: .4byte gSaveBlock2 + 0xA
-_080A2D20: .4byte 0x00002b6a
-_080A2D24:
- adds r0, r1, 0x1
- strb r0, [r3]
- ldrb r0, [r2]
- cmp r0, 0x5
- bhi _080A2D30
- b _080A2BF2
-_080A2D30:
- movs r0, 0xFF
-_080A2D32:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2BC4
-
- thumb_func_start sub_80A2D44
-sub_80A2D44: @ 80A2D44
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC9
- bne _080A2D5C
- adds r0, r1, 0
- bl sub_809D474
- lsls r0, 16
- ldr r1, _080A2D60 @ =0x75300000
- adds r0, r1
- lsrs r0, 16
-_080A2D5C:
- pop {r1}
- bx r1
- .align 2, 0
-_080A2D60: .4byte 0x75300000
- thumb_func_end sub_80A2D44
-
- thumb_func_start sub_80A2D64
-sub_80A2D64: @ 80A2D64
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _080A2D7C @ =0xffff8ad0
- adds r2, r3, r0
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r0, 0x1B
- bhi _080A2D80
- movs r0, 0xC9
- strh r2, [r1]
- b _080A2D82
- .align 2, 0
-_080A2D7C: .4byte 0xffff8ad0
-_080A2D80:
- adds r0, r3, 0
-_080A2D82:
- pop {r1}
- bx r1
- thumb_func_end sub_80A2D64
-
- thumb_func_start sub_80A2D88
-sub_80A2D88: @ 80A2D88
- push {r4-r7,lr}
- sub sp, 0x8
- adds r6, r0, 0
- adds r7, r1, 0
- ldrh r5, [r7, 0x20]
- adds r1, r5, 0
- bl sub_80A2BC4
- add r4, sp, 0x4
- strb r0, [r4]
- ldrb r2, [r4]
- cmp r2, 0xFF
- beq _080A2DE8
- ldr r0, _080A2DE0 @ =gSaveBlock1
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r0, _080A2DE4 @ =0x00002b4c
- adds r1, r0
- adds r0, r7, 0
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- adds r0, r6, 0
- movs r1, 0x40
- adds r2, r4, 0
- bl SetMonData
- mov r0, sp
- strb r5, [r0]
- mov r1, sp
- lsrs r0, r5, 8
- strb r0, [r1, 0x1]
- adds r0, r6, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- ldrb r0, [r4]
- b _080A2DEA
- .align 2, 0
-_080A2DE0: .4byte gSaveBlock1
-_080A2DE4: .4byte 0x00002b4c
-_080A2DE8:
- movs r0, 0xFF
-_080A2DEA:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2D88
-
- thumb_func_start unref_sub_80A2DF4
-unref_sub_80A2DF4: @ 80A2DF4
- movs r0, 0
- bx lr
- thumb_func_end unref_sub_80A2DF4
-
- thumb_func_start sub_80A2DF8
-sub_80A2DF8: @ 80A2DF8
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- bl sub_80A2B94
- lsls r0, 24
- cmp r0, 0
- beq _080A2E46
- adds r0, r4, 0
- movs r1, 0x40
- bl GetMonData
- add r2, sp, 0x4
- strb r0, [r2]
- ldr r3, _080A2E50 @ =gSaveBlock1
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, _080A2E54 @ =0x00002b6c
- adds r0, r1
- movs r3, 0
- movs r1, 0
- strh r1, [r0]
- movs r0, 0xFF
- strb r0, [r2]
- mov r0, sp
- strb r3, [r0]
- strb r3, [r0, 0x1]
- adds r0, r4, 0
- movs r1, 0x40
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
-_080A2E46:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2E50: .4byte gSaveBlock1
-_080A2E54: .4byte 0x00002b6c
- thumb_func_end sub_80A2DF8
-
- thumb_func_start unref_sub_80A2E58
-unref_sub_80A2E58: @ 80A2E58
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A2E70 @ =gSaveBlock1
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r0, _080A2E74 @ =0x00002b6c
- adds r1, r0
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080A2E70: .4byte gSaveBlock1
-_080A2E74: .4byte 0x00002b6c
- thumb_func_end unref_sub_80A2E58
-
- thumb_func_start sub_80A2E78
-sub_80A2E78: @ 80A2E78
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- adds r5, r0, 0
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0, 0x1]
- add r1, sp, 0x4
- movs r0, 0xFF
- strb r0, [r1]
- movs r7, 0x6
- mov r9, r1
- ldr r0, _080A2F04 @ =gSaveBlock1
- mov r8, r0
- ldr r2, _080A2F08 @ =0x00002b4c
- add r2, r8
-_080A2E9E:
- lsls r0, r7, 3
- adds r0, r7
- lsls r4, r0, 2
- mov r1, r8
- adds r0, r4, r1
- ldr r3, _080A2F0C @ =0x00002b6c
- adds r0, r3
- ldrh r6, [r0]
- cmp r6, 0
- bne _080A2F10
- adds r4, r2
- adds r0, r5, 0
- movs r1, 0x40
- str r2, [sp, 0x8]
- bl GetMonData
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r2, [sp, 0x8]
- adds r1, r2
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- adds r0, r5, 0
- movs r1, 0x40
- bl GetMonData
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldr r0, _080A2F0C @ =0x00002b6c
- adds r1, r0
- strh r6, [r1]
- adds r0, r5, 0
- movs r1, 0x40
- mov r2, r9
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r0, r7, 0
- b _080A2F1C
- .align 2, 0
-_080A2F04: .4byte gSaveBlock1
-_080A2F08: .4byte 0x00002b4c
-_080A2F0C: .4byte 0x00002b6c
-_080A2F10:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xF
- bls _080A2E9E
- movs r0, 0xFF
-_080A2F1C:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2E78
-
- thumb_func_start itemid_is_mail
-itemid_is_mail: @ 80A2F2C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x84
- bgt _080A2F3E
- cmp r0, 0x79
- blt _080A2F3E
- movs r0, 0x1
- b _080A2F40
-_080A2F3E:
- movs r0, 0
-_080A2F40:
- pop {r1}
- bx r1
- thumb_func_end itemid_is_mail
-
- thumb_func_start unref_sub_80A2F44
-unref_sub_80A2F44: @ 80A2F44
- push {lr}
- bl sub_8071C20
- bl AddMapNamePopUpWindowTask
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80A2F44
-
- thumb_func_start AddMapNamePopUpWindowTask
-AddMapNamePopUpWindowTask: @ 80A2F54
- push {r4,r5,lr}
- movs r0, 0x80
- lsls r0, 7
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A2FE4
- ldr r4, _080A2FAC @ =sub_80A2FF4
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080A2FBC
- adds r0, r4, 0
- movs r1, 0x5A
- bl CreateTask
- ldr r4, _080A2FB0 @ =gUnknown_02038538
- strb r0, [r4]
- ldr r1, _080A2FB4 @ =REG_BG0VOFS
- movs r0, 0x20
- strh r0, [r1]
- bl sub_80A30E0
- ldr r2, _080A2FB8 @ =gTasks
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- strh r5, [r0, 0x8]
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x20
- strh r1, [r0, 0xC]
- b _080A2FE4
- .align 2, 0
-_080A2FAC: .4byte sub_80A2FF4
-_080A2FB0: .4byte gUnknown_02038538
-_080A2FB4: .4byte REG_BG0VOFS
-_080A2FB8: .4byte gTasks
-_080A2FBC:
- ldr r3, _080A2FEC @ =gTasks
- ldr r2, _080A2FF0 @ =gUnknown_02038538
- ldrb r0, [r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- movs r4, 0x8
- ldrsh r0, [r1, r4]
- cmp r0, 0x2
- beq _080A2FD6
- movs r0, 0x2
- strh r0, [r1, 0x8]
-_080A2FD6:
- ldrb r0, [r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- movs r0, 0x1
- strh r0, [r1, 0xE]
-_080A2FE4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2FEC: .4byte gTasks
-_080A2FF0: .4byte gUnknown_02038538
- thumb_func_end AddMapNamePopUpWindowTask
-
- thumb_func_start sub_80A2FF4
-sub_80A2FF4: @ 80A2FF4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r3, _080A3018 @ =gTasks
- adds r4, r1, r3
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0x1
- beq _080A304C
- cmp r2, 0x1
- bgt _080A301C
- cmp r2, 0
- beq _080A3026
- b _080A3092
- .align 2, 0
-_080A3018: .4byte gTasks
-_080A301C:
- cmp r2, 0x2
- beq _080A3064
- cmp r2, 0x4
- beq _080A308C
- b _080A3092
-_080A3026:
- ldrh r0, [r4, 0xC]
- subs r0, 0x2
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bgt _080A3092
- movs r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, _080A3048 @ =gUnknown_02038538
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r2, [r0, 0xA]
- b _080A3092
- .align 2, 0
-_080A3048: .4byte gUnknown_02038538
-_080A304C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x78
- ble _080A3092
- movs r0, 0
- strh r0, [r4, 0xA]
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080A3092
-_080A3064:
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- movs r5, 0
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- ble _080A3092
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A3086
- bl sub_80A30E0
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xE]
- b _080A3092
-_080A3086:
- movs r0, 0x4
- strh r0, [r4, 0x8]
- b _080A3098
-_080A308C:
- bl HideMapNamePopUpWindow
- b _080A3098
-_080A3092:
- ldr r1, _080A30A0 @ =REG_BG0VOFS
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
-_080A3098:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A30A0: .4byte REG_BG0VOFS
- thumb_func_end sub_80A2FF4
-
- thumb_func_start HideMapNamePopUpWindow
-HideMapNamePopUpWindow: @ 80A30A4
- push {lr}
- ldr r0, _080A30D4 @ =sub_80A2FF4
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _080A30D0
- bl MenuLoadTextWindowGraphics
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x3
- bl MenuZeroFillWindowRect
- ldr r1, _080A30D8 @ =REG_BG0VOFS
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080A30DC @ =gUnknown_02038538
- ldrb r0, [r0]
- bl DestroyTask
-_080A30D0:
- pop {r0}
- bx r0
- .align 2, 0
-_080A30D4: .4byte sub_80A2FF4
-_080A30D8: .4byte REG_BG0VOFS
-_080A30DC: .4byte gUnknown_02038538
- thumb_func_end HideMapNamePopUpWindow
-
- thumb_func_start sub_80A30E0
-sub_80A30E0: @ 80A30E0
- push {lr}
- sub sp, 0x14
- movs r0, 0
- bl MenuLoadTextWindowGraphics_OverrideFrameType
- ldr r0, _080A3114 @ =gMapHeader
- ldrb r1, [r0, 0x14]
- mov r0, sp
- movs r2, 0
- bl sub_80FBFB4
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x3
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x60
- bl sub_8072BD8
- add sp, 0x14
- pop {r0}
- bx r0
- .align 2, 0
-_080A3114: .4byte gMapHeader
- thumb_func_end sub_80A30E0
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_80A2B18.s b/asm/rom_80A2B18.s
new file mode 100644
index 000000000..4f4f245ce
--- /dev/null
+++ b/asm/rom_80A2B18.s
@@ -0,0 +1,813 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80A2B18
+sub_80A2B18: @ 80A2B18
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _080A2B3C @ =gSaveBlock1 + 0x2B4C
+_080A2B1E:
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r5
+ bl sub_80A2B40
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bls _080A2B1E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2B3C: .4byte gSaveBlock1 + 0x2B4C
+ thumb_func_end sub_80A2B18
+
+ thumb_func_start sub_80A2B40
+sub_80A2B40: @ 80A2B40
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ ldr r0, _080A2B90 @ =0x0000ffff
+ adds r4, r0, 0
+ adds r1, r3, 0
+ movs r2, 0x8
+_080A2B4C:
+ ldrh r0, [r1]
+ orrs r0, r4
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080A2B4C
+ movs r2, 0
+ adds r6, r3, 0
+ adds r6, 0x1A
+ adds r4, r3, 0
+ adds r4, 0x12
+ movs r5, 0xFF
+_080A2B66:
+ adds r1, r4, r2
+ ldrb r0, [r1]
+ orrs r0, r5
+ strb r0, [r1]
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _080A2B66
+ adds r1, r6, 0
+ movs r2, 0
+ adds r0, r1, 0x3
+_080A2B7A:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _080A2B7A
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r3, 0x1E]
+ strh r1, [r3, 0x20]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2B90: .4byte 0x0000ffff
+ thumb_func_end sub_80A2B40
+
+ thumb_func_start sub_80A2B94
+sub_80A2B94: @ 80A2B94
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2BBC
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl GetMonData
+ cmp r0, 0xFF
+ beq _080A2BBC
+ movs r0, 0x1
+ b _080A2BBE
+_080A2BBC:
+ movs r0, 0
+_080A2BBE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2B94
+
+ thumb_func_start sub_80A2BC4
+sub_80A2BC4: @ 80A2BC4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ adds r7, r0, 0
+ lsls r1, 16
+ lsrs r0, r1, 16
+ str r0, [sp, 0x8]
+ mov r0, sp
+ movs r2, 0
+ ldrb r3, [r0, 0x8]
+ strb r3, [r0]
+ lsrs r1, 24
+ strb r1, [r0, 0x1]
+ add r3, sp, 0x4
+ strb r2, [r3]
+ mov r10, r3
+ ldr r4, _080A2D00 @ =gSaveBlock1
+ mov r9, r4
+ mov r8, r3
+ adds r2, r3, 0
+_080A2BF2:
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldr r5, _080A2D04 @ =0x00002b6c
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080A2C08
+ b _080A2D24
+_080A2C08:
+ movs r3, 0
+ ldr r0, _080A2D08 @ =gSaveBlock2
+ mov r12, r0
+ mov r4, r10
+ ldr r6, _080A2D0C @ =gSaveBlock1 + 0x2B4C
+ ldr r1, _080A2D10 @ =0x0000ffff
+ adds r5, r1, 0
+_080A2C16:
+ lsls r2, r3, 1
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r2]
+ orrs r0, r5
+ strh r0, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x8
+ bls _080A2C16
+ movs r3, 0
+ mov r2, r10
+ ldr r4, _080A2D14 @ =gSaveBlock1 + 0x2B5E
+_080A2C3A:
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3, r0
+ adds r0, r4
+ mov r5, r12
+ adds r1, r3, r5
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x6
+ bls _080A2C3A
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3, r0
+ ldr r1, _080A2D14 @ =gSaveBlock1 + 0x2B5E
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _080A2D14 @ =gSaveBlock1 + 0x2B5E
+ adds r0, r3
+ movs r1, 0
+ bl sub_814A518
+ movs r3, 0
+ mov r2, r10
+ ldr r5, _080A2D18 @ =gSaveBlock1 + 0x2B66
+ ldr r4, _080A2D1C @ =gSaveBlock2 + 0xA
+_080A2C88:
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3, r0
+ adds r0, r5
+ adds r1, r3, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080A2C88
+ adds r0, r7, 0
+ movs r1, 0xB
+ bl GetBoxMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r7, 0
+ movs r1, 0
+ bl GetBoxMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl sub_80A2D44
+ mov r4, r8
+ ldrb r2, [r4]
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ add r1, r9
+ ldr r5, _080A2D20 @ =0x00002b6a
+ adds r1, r5
+ strh r0, [r1]
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldr r1, _080A2D04 @ =0x00002b6c
+ adds r0, r1
+ mov r2, sp
+ ldrh r2, [r2, 0x8]
+ strh r2, [r0]
+ adds r0, r7, 0
+ movs r1, 0x40
+ mov r2, r8
+ bl SetMonData
+ adds r0, r7, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ ldrb r0, [r4]
+ b _080A2D32
+ .align 2, 0
+_080A2D00: .4byte gSaveBlock1
+_080A2D04: .4byte 0x00002b6c
+_080A2D08: .4byte gSaveBlock2
+_080A2D0C: .4byte gSaveBlock1 + 0x2B4C
+_080A2D10: .4byte 0x0000ffff
+_080A2D14: .4byte gSaveBlock1 + 0x2B5E
+_080A2D18: .4byte gSaveBlock1 + 0x2B66
+_080A2D1C: .4byte gSaveBlock2 + 0xA
+_080A2D20: .4byte 0x00002b6a
+_080A2D24:
+ adds r0, r1, 0x1
+ strb r0, [r3]
+ ldrb r0, [r2]
+ cmp r0, 0x5
+ bhi _080A2D30
+ b _080A2BF2
+_080A2D30:
+ movs r0, 0xFF
+_080A2D32:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2BC4
+
+ thumb_func_start sub_80A2D44
+sub_80A2D44: @ 80A2D44
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xC9
+ bne _080A2D5C
+ adds r0, r1, 0
+ bl sub_809D474
+ lsls r0, 16
+ ldr r1, _080A2D60 @ =0x75300000
+ adds r0, r1
+ lsrs r0, 16
+_080A2D5C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A2D60: .4byte 0x75300000
+ thumb_func_end sub_80A2D44
+
+ thumb_func_start sub_80A2D64
+sub_80A2D64: @ 80A2D64
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r0, _080A2D7C @ =0xffff8ad0
+ adds r2, r3, r0
+ lsls r0, r2, 16
+ lsrs r0, 16
+ cmp r0, 0x1B
+ bhi _080A2D80
+ movs r0, 0xC9
+ strh r2, [r1]
+ b _080A2D82
+ .align 2, 0
+_080A2D7C: .4byte 0xffff8ad0
+_080A2D80:
+ adds r0, r3, 0
+_080A2D82:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2D64
+
+ thumb_func_start sub_80A2D88
+sub_80A2D88: @ 80A2D88
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r7, r1, 0
+ ldrh r5, [r7, 0x20]
+ adds r1, r5, 0
+ bl sub_80A2BC4
+ add r4, sp, 0x4
+ strb r0, [r4]
+ ldrb r2, [r4]
+ cmp r2, 0xFF
+ beq _080A2DE8
+ ldr r0, _080A2DE0 @ =gSaveBlock1
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _080A2DE4 @ =0x00002b4c
+ adds r1, r0
+ adds r0, r7, 0
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ adds r0, r6, 0
+ movs r1, 0x40
+ adds r2, r4, 0
+ bl SetMonData
+ mov r0, sp
+ strb r5, [r0]
+ mov r1, sp
+ lsrs r0, r5, 8
+ strb r0, [r1, 0x1]
+ adds r0, r6, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ ldrb r0, [r4]
+ b _080A2DEA
+ .align 2, 0
+_080A2DE0: .4byte gSaveBlock1
+_080A2DE4: .4byte 0x00002b4c
+_080A2DE8:
+ movs r0, 0xFF
+_080A2DEA:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2D88
+
+ thumb_func_start unref_sub_80A2DF4
+unref_sub_80A2DF4: @ 80A2DF4
+ movs r0, 0
+ bx lr
+ thumb_func_end unref_sub_80A2DF4
+
+ thumb_func_start sub_80A2DF8
+sub_80A2DF8: @ 80A2DF8
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ bl sub_80A2B94
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2E46
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl GetMonData
+ add r2, sp, 0x4
+ strb r0, [r2]
+ ldr r3, _080A2E50 @ =gSaveBlock1
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r1, _080A2E54 @ =0x00002b6c
+ adds r0, r1
+ movs r3, 0
+ movs r1, 0
+ strh r1, [r0]
+ movs r0, 0xFF
+ strb r0, [r2]
+ mov r0, sp
+ strb r3, [r0]
+ strb r3, [r0, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+_080A2E46:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2E50: .4byte gSaveBlock1
+_080A2E54: .4byte 0x00002b6c
+ thumb_func_end sub_80A2DF8
+
+ thumb_func_start unref_sub_80A2E58
+unref_sub_80A2E58: @ 80A2E58
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A2E70 @ =gSaveBlock1
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, _080A2E74 @ =0x00002b6c
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080A2E70: .4byte gSaveBlock1
+_080A2E74: .4byte 0x00002b6c
+ thumb_func_end unref_sub_80A2E58
+
+ thumb_func_start sub_80A2E78
+sub_80A2E78: @ 80A2E78
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ adds r5, r0, 0
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0, 0x1]
+ add r1, sp, 0x4
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r7, 0x6
+ mov r9, r1
+ ldr r0, _080A2F04 @ =gSaveBlock1
+ mov r8, r0
+ ldr r2, _080A2F08 @ =0x00002b4c
+ add r2, r8
+_080A2E9E:
+ lsls r0, r7, 3
+ adds r0, r7
+ lsls r4, r0, 2
+ mov r1, r8
+ adds r0, r4, r1
+ ldr r3, _080A2F0C @ =0x00002b6c
+ adds r0, r3
+ ldrh r6, [r0]
+ cmp r6, 0
+ bne _080A2F10
+ adds r4, r2
+ adds r0, r5, 0
+ movs r1, 0x40
+ str r2, [sp, 0x8]
+ bl GetMonData
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, [sp, 0x8]
+ adds r1, r2
+ ldm r1!, {r0,r2,r3}
+ stm r4!, {r0,r2,r3}
+ ldm r1!, {r0,r2,r3}
+ stm r4!, {r0,r2,r3}
+ ldm r1!, {r0,r2,r3}
+ stm r4!, {r0,r2,r3}
+ adds r0, r5, 0
+ movs r1, 0x40
+ bl GetMonData
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ add r1, r8
+ ldr r0, _080A2F0C @ =0x00002b6c
+ adds r1, r0
+ strh r6, [r1]
+ adds r0, r5, 0
+ movs r1, 0x40
+ mov r2, r9
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ adds r0, r7, 0
+ b _080A2F1C
+ .align 2, 0
+_080A2F04: .4byte gSaveBlock1
+_080A2F08: .4byte 0x00002b4c
+_080A2F0C: .4byte 0x00002b6c
+_080A2F10:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0xF
+ bls _080A2E9E
+ movs r0, 0xFF
+_080A2F1C:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2E78
+
+ thumb_func_start itemid_is_mail
+itemid_is_mail: @ 80A2F2C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x84
+ bgt _080A2F3E
+ cmp r0, 0x79
+ blt _080A2F3E
+ movs r0, 0x1
+ b _080A2F40
+_080A2F3E:
+ movs r0, 0
+_080A2F40:
+ pop {r1}
+ bx r1
+ thumb_func_end itemid_is_mail
+
+ thumb_func_start unref_sub_80A2F44
+unref_sub_80A2F44: @ 80A2F44
+ push {lr}
+ bl sub_8071C20
+ bl AddMapNamePopUpWindowTask
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80A2F44
+
+ thumb_func_start AddMapNamePopUpWindowTask
+AddMapNamePopUpWindowTask: @ 80A2F54
+ push {r4,r5,lr}
+ movs r0, 0x80
+ lsls r0, 7
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080A2FE4
+ ldr r4, _080A2FAC @ =sub_80A2FF4
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080A2FBC
+ adds r0, r4, 0
+ movs r1, 0x5A
+ bl CreateTask
+ ldr r4, _080A2FB0 @ =gUnknown_02038538
+ strb r0, [r4]
+ ldr r1, _080A2FB4 @ =REG_BG0VOFS
+ movs r0, 0x20
+ strh r0, [r1]
+ bl sub_80A30E0
+ ldr r2, _080A2FB8 @ =gTasks
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ strh r5, [r0, 0x8]
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x20
+ strh r1, [r0, 0xC]
+ b _080A2FE4
+ .align 2, 0
+_080A2FAC: .4byte sub_80A2FF4
+_080A2FB0: .4byte gUnknown_02038538
+_080A2FB4: .4byte REG_BG0VOFS
+_080A2FB8: .4byte gTasks
+_080A2FBC:
+ ldr r3, _080A2FEC @ =gTasks
+ ldr r2, _080A2FF0 @ =gUnknown_02038538
+ ldrb r0, [r2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ movs r4, 0x8
+ ldrsh r0, [r1, r4]
+ cmp r0, 0x2
+ beq _080A2FD6
+ movs r0, 0x2
+ strh r0, [r1, 0x8]
+_080A2FD6:
+ ldrb r0, [r2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+_080A2FE4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2FEC: .4byte gTasks
+_080A2FF0: .4byte gUnknown_02038538
+ thumb_func_end AddMapNamePopUpWindowTask
+
+ thumb_func_start sub_80A2FF4
+sub_80A2FF4: @ 80A2FF4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r3, _080A3018 @ =gTasks
+ adds r4, r1, r3
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x1
+ beq _080A304C
+ cmp r2, 0x1
+ bgt _080A301C
+ cmp r2, 0
+ beq _080A3026
+ b _080A3092
+ .align 2, 0
+_080A3018: .4byte gTasks
+_080A301C:
+ cmp r2, 0x2
+ beq _080A3064
+ cmp r2, 0x4
+ beq _080A308C
+ b _080A3092
+_080A3026:
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x2
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080A3092
+ movs r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r0, _080A3048 @ =gUnknown_02038538
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ strh r2, [r0, 0xA]
+ b _080A3092
+ .align 2, 0
+_080A3048: .4byte gUnknown_02038538
+_080A304C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x78
+ ble _080A3092
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080A3092
+_080A3064:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x2
+ movs r5, 0
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ ble _080A3092
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080A3086
+ bl sub_80A30E0
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xE]
+ b _080A3092
+_080A3086:
+ movs r0, 0x4
+ strh r0, [r4, 0x8]
+ b _080A3098
+_080A308C:
+ bl HideMapNamePopUpWindow
+ b _080A3098
+_080A3092:
+ ldr r1, _080A30A0 @ =REG_BG0VOFS
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+_080A3098:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A30A0: .4byte REG_BG0VOFS
+ thumb_func_end sub_80A2FF4
+
+ thumb_func_start HideMapNamePopUpWindow
+HideMapNamePopUpWindow: @ 80A30A4
+ push {lr}
+ ldr r0, _080A30D4 @ =sub_80A2FF4
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A30D0
+ bl MenuLoadTextWindowGraphics
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0x3
+ bl MenuZeroFillWindowRect
+ ldr r1, _080A30D8 @ =REG_BG0VOFS
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080A30DC @ =gUnknown_02038538
+ ldrb r0, [r0]
+ bl DestroyTask
+_080A30D0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A30D4: .4byte sub_80A2FF4
+_080A30D8: .4byte REG_BG0VOFS
+_080A30DC: .4byte gUnknown_02038538
+ thumb_func_end HideMapNamePopUpWindow
+
+ thumb_func_start sub_80A30E0
+sub_80A30E0: @ 80A30E0
+ push {lr}
+ sub sp, 0x14
+ movs r0, 0
+ bl MenuLoadTextWindowGraphics_OverrideFrameType
+ ldr r0, _080A3114 @ =gMapHeader
+ ldrb r1, [r0, 0x14]
+ mov r0, sp
+ movs r2, 0
+ bl sub_80FBFB4
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ mov r0, sp
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x60
+ bl sub_8072BD8
+ add sp, 0x14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3114: .4byte gMapHeader
+ thumb_func_end sub_80A30E0
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index 8d25d812f..40a1abe41 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -113,6 +113,8 @@ SECTIONS {
src/trainer_card.o(.text);
src/save_menu_util.o(.text);
asm/rom_8094928.o(.text);
+ asm/fldeff_cut.o(.text);
+ asm/rom_80A2B18.o(.text);
asm/item_menu.o(.text);
asm/battle_anim_80A7E7C.o(.text);
src/item.o(.text);