summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xasm/field_map_obj.s1856
-rw-r--r--ld_script.txt1
-rwxr-xr-xsrc/field_map_obj.c835
3 files changed, 828 insertions, 1864 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 84ea043d1..c8c402217 100755
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -626,1859 +626,3 @@ _0805F8C0:
.align 2, 0
_0805F8DC: .4byte gUnknown_0836DC09
thumb_func_end oac_hopping
-
- .section .text_805fd18
-
- thumb_func_start sub_80628FC
-sub_80628FC: @ 80628FC
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8060ED8
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnimIfDifferent
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8062930
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80628FC
-
- thumb_func_start sub_8062930
-sub_8062930: @ 8062930
- push {r4,lr}
- adds r4, r1, 0
- bl an_walk_any_2
- lsls r0, 24
- cmp r0, 0
- bne _08062942
- movs r0, 0
- b _08062954
-_08062942:
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08062954:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8062930
-
- thumb_func_start sub_806295C
-sub_806295C: @ 806295C
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- lsls r4, r2, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl FieldObjectSetDirection
- adds r0, r5, 0
- bl npc_coords_shift_still
- adds r0, r4, 0
- bl sub_805FDD8
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_805FE64
- adds r2, r6, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r6, 0x32]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806295C
-
- thumb_func_start sub_806299C
-sub_806299C: @ 806299C
- push {lr}
- movs r2, 0x1
- bl sub_806295C
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_806299C
-
- thumb_func_start sub_80629AC
-sub_80629AC: @ 80629AC
- push {lr}
- movs r2, 0x2
- bl sub_806295C
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_80629AC
-
- thumb_func_start sub_80629BC
-sub_80629BC: @ 80629BC
- push {lr}
- movs r2, 0x3
- bl sub_806295C
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_80629BC
-
- thumb_func_start sub_80629CC
-sub_80629CC: @ 80629CC
- push {lr}
- movs r2, 0x4
- bl sub_806295C
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_80629CC
-
- thumb_func_start sub_80629DC
-sub_80629DC: @ 80629DC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl sub_805FD98
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80629DC
-
- thumb_func_start sub_8062A00
-sub_8062A00: @ 8062A00
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl sub_805FD98
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062A00
-
- thumb_func_start sub_8062A24
-sub_8062A24: @ 8062A24
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl sub_805FD98
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062A24
-
- thumb_func_start sub_8062A48
-sub_8062A48: @ 8062A48
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl sub_805FD98
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062A48
-
- thumb_func_start sub_8062A6C
-sub_8062A6C: @ 8062A6C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl sub_805FDB8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062A6C
-
- thumb_func_start sub_8062A90
-sub_8062A90: @ 8062A90
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl sub_805FDB8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062A90
-
- thumb_func_start sub_8062AB4
-sub_8062AB4: @ 8062AB4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl sub_805FDB8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062AB4
-
- thumb_func_start sub_8062AD8
-sub_8062AD8: @ 8062AD8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl sub_805FDB8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062AD8
-
- thumb_func_start sub_8062AFC
-sub_8062AFC: @ 8062AFC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl sub_805FDC8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062AFC
-
- thumb_func_start sub_8062B20
-sub_8062B20: @ 8062B20
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl sub_805FDC8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062B20
-
- thumb_func_start sub_8062B44
-sub_8062B44: @ 8062B44
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl sub_805FDC8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062B44
-
- thumb_func_start sub_8062B68
-sub_8062B68: @ 8062B68
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl sub_805FDC8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062B68
-
- thumb_func_start sub_8062B8C
-sub_8062B8C: @ 8062B8C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x14]
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_806113C
- adds r0, r4, 0
- bl sub_805FD98
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnimIfDifferent
- adds r0, r6, 0
- bl DoShadowFieldEffect
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8062B8C
-
- thumb_func_start sub_8062BD0
-sub_8062BD0: @ 8062BD0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062BFC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062BD0
-
- thumb_func_start sub_8062BFC
-sub_8062BFC: @ 8062BFC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062C10
- movs r0, 0
- b _08062C20
-_08062C10:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062C20:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062BFC
-
- thumb_func_start sub_8062C28
-sub_8062C28: @ 8062C28
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062C54
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062C28
-
- thumb_func_start sub_8062C54
-sub_8062C54: @ 8062C54
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062C68
- movs r0, 0
- b _08062C78
-_08062C68:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062C78:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062C54
-
- thumb_func_start sub_8062C80
-sub_8062C80: @ 8062C80
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062CAC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062C80
-
- thumb_func_start sub_8062CAC
-sub_8062CAC: @ 8062CAC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062CC0
- movs r0, 0
- b _08062CD0
-_08062CC0:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062CD0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062CAC
-
- thumb_func_start sub_8062CD8
-sub_8062CD8: @ 8062CD8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062D04
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062CD8
-
- thumb_func_start sub_8062D04
-sub_8062D04: @ 8062D04
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062D18
- movs r0, 0
- b _08062D28
-_08062D18:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062D28:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062D04
-
- thumb_func_start sub_8062D30
-sub_8062D30: @ 8062D30
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062D5C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062D30
-
- thumb_func_start sub_8062D5C
-sub_8062D5C: @ 8062D5C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062D70
- movs r0, 0
- b _08062D80
-_08062D70:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062D80:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062D5C
-
- thumb_func_start sub_8062D88
-sub_8062D88: @ 8062D88
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062DB4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062D88
-
- thumb_func_start sub_8062DB4
-sub_8062DB4: @ 8062DB4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062DC8
- movs r0, 0
- b _08062DD8
-_08062DC8:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062DD8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062DB4
-
- thumb_func_start sub_8062DE0
-sub_8062DE0: @ 8062DE0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062E0C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062DE0
-
- thumb_func_start sub_8062E0C
-sub_8062E0C: @ 8062E0C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062E20
- movs r0, 0
- b _08062E30
-_08062E20:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062E30:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062E0C
-
- thumb_func_start sub_8062E38
-sub_8062E38: @ 8062E38
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0x1
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062E64
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062E38
-
- thumb_func_start sub_8062E64
-sub_8062E64: @ 8062E64
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062E78
- movs r0, 0
- b _08062E88
-_08062E78:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062E88:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062E64
-
- thumb_func_start sub_8062E90
-sub_8062E90: @ 8062E90
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x2
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062EBC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062E90
-
- thumb_func_start sub_8062EBC
-sub_8062EBC: @ 8062EBC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062ED0
- movs r0, 0
- b _08062EE0
-_08062ED0:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062EE0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062EBC
-
- thumb_func_start sub_8062EE8
-sub_8062EE8: @ 8062EE8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062F14
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062EE8
-
- thumb_func_start sub_8062F14
-sub_8062F14: @ 8062F14
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062F28
- movs r0, 0
- b _08062F38
-_08062F28:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062F38:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062F14
-
- thumb_func_start sub_8062F40
-sub_8062F40: @ 8062F40
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062F6C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062F40
-
- thumb_func_start sub_8062F6C
-sub_8062F6C: @ 8062F6C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062F80
- movs r0, 0
- b _08062F90
-_08062F80:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062F90:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062F6C
-
- thumb_func_start sub_8062F98
-sub_8062F98: @ 8062F98
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0x2
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062FC4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062F98
-
- thumb_func_start sub_8062FC4
-sub_8062FC4: @ 8062FC4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062FD8
- movs r0, 0
- b _08062FE8
-_08062FD8:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062FE8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062FC4
-
- thumb_func_start sub_8062FF0
-sub_8062FF0: @ 8062FF0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl sub_805FDD8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062FF0
-
- thumb_func_start sub_8063028
-sub_8063028: @ 8063028
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl sub_805FDD8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063028
-
- thumb_func_start sub_8063060
-sub_8063060: @ 8063060
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl sub_805FDD8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063060
-
- thumb_func_start sub_8063098
-sub_8063098: @ 8063098
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl sub_805FDD8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063098
-
- thumb_func_start sub_80630D0
-sub_80630D0: @ 80630D0
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- bl sub_8060D20
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_805FD98
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- movs r1, 0
- bl SeekSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80630D0
-
- thumb_func_start sub_8063108
-sub_8063108: @ 8063108
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_80630D0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063128
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063108
-
- thumb_func_start sub_8063128
-sub_8063128: @ 8063128
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0806313A
- movs r0, 0
- b _08063140
-_0806313A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063140:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063128
-
- thumb_func_start sub_8063148
-sub_8063148: @ 8063148
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_80630D0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063168
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063148
-
- thumb_func_start sub_8063168
-sub_8063168: @ 8063168
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0806317A
- movs r0, 0
- b _08063180
-_0806317A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063180:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063168
-
- thumb_func_start sub_8063188
-sub_8063188: @ 8063188
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_80630D0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80631A8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063188
-
- thumb_func_start sub_80631A8
-sub_80631A8: @ 80631A8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080631BA
- movs r0, 0
- b _080631C0
-_080631BA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080631C0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80631A8
-
- thumb_func_start sub_80631C8
-sub_80631C8: @ 80631C8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x1
- bl sub_80630D0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80631E8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80631C8
-
- thumb_func_start sub_80631E8
-sub_80631E8: @ 80631E8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080631FA
- movs r0, 0
- b _08063200
-_080631FA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063200:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80631E8
-
- thumb_func_start sub_8063208
-sub_8063208: @ 8063208
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- bl sub_8060D20
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_805FDD8
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_805FE28
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8063208
-
- thumb_func_start sub_8063238
-sub_8063238: @ 8063238
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8063208
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063258
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063238
-
- thumb_func_start sub_8063258
-sub_8063258: @ 8063258
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0806326A
- movs r0, 0
- b _08063270
-_0806326A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063270:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063258
-
- thumb_func_start sub_8063278
-sub_8063278: @ 8063278
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_8063208
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063298
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063278
-
- thumb_func_start sub_8063298
-sub_8063298: @ 8063298
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080632AA
- movs r0, 0
- b _080632B0
-_080632AA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080632B0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063298
-
- thumb_func_start sub_80632B8
-sub_80632B8: @ 80632B8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_8063208
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80632D8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80632B8
-
- thumb_func_start sub_80632D8
-sub_80632D8: @ 80632D8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080632EA
- movs r0, 0
- b _080632F0
-_080632EA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080632F0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80632D8
-
- thumb_func_start sub_80632F8
-sub_80632F8: @ 80632F8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x1
- bl sub_8063208
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063318
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80632F8
-
- thumb_func_start sub_8063318
-sub_8063318: @ 8063318
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0806332A
- movs r0, 0
- b _08063330
-_0806332A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063330:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063318
-
- thumb_func_start sub_8063338
-sub_8063338: @ 8063338
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- bl sub_8060D20
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_805FDB8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- movs r1, 0
- bl SeekSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8063338
-
- thumb_func_start sub_8063370
-sub_8063370: @ 8063370
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8063338
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063390
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063370
-
- thumb_func_start sub_8063390
-sub_8063390: @ 8063390
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080633A2
- movs r0, 0
- b _080633A8
-_080633A2:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080633A8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063390
-
- thumb_func_start sub_80633B0
-sub_80633B0: @ 80633B0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_8063338
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80633D0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80633B0
-
- thumb_func_start sub_80633D0
-sub_80633D0: @ 80633D0
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080633E2
- movs r0, 0
- b _080633E8
-_080633E2:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080633E8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80633D0
-
- thumb_func_start sub_80633F0
-sub_80633F0: @ 80633F0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_8063338
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063410
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80633F0
-
- thumb_func_start sub_8063410
-sub_8063410: @ 8063410
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08063422
- movs r0, 0
- b _08063428
-_08063422:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063428:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063410
-
- thumb_func_start sub_8063430
-sub_8063430: @ 8063430
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x1
- bl sub_8063338
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063450
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063430
-
- thumb_func_start sub_8063450
-sub_8063450: @ 8063450
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08063462
- movs r0, 0
- b _08063468
-_08063462:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063468:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063450
-
- thumb_func_start sub_8063470
-sub_8063470: @ 8063470
- movs r0, 0x1
- bx lr
- thumb_func_end sub_8063470
-
- thumb_func_start sub_8063474
-sub_8063474: @ 8063474
- adds r1, 0x2C
- ldrb r0, [r1]
- movs r2, 0x40
- orrs r0, r2
- strb r0, [r1]
- movs r0, 0x1
- bx lr
- thumb_func_end sub_8063474
-
- thumb_func_start npc_obj_transfer_image_anim_pause_flag
-npc_obj_transfer_image_anim_pause_flag: @ 8063484
- push {lr}
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- cmp r0, 0
- bge _0806349A
- adds r0, r1, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
-_0806349A:
- pop {r0}
- bx r0
- thumb_func_end npc_obj_transfer_image_anim_pause_flag
-
- thumb_func_start sub_80634A0
-sub_80634A0: @ 80634A0
- push {r4,lr}
- adds r4, r0, 0
- ldrb r3, [r4, 0x1]
- lsls r0, r3, 28
- cmp r0, 0
- bge _080634C8
- adds r2, r1, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- movs r1, 0x9
- negs r1, r1
- ands r0, r1
- strb r0, [r4, 0x1]
-_080634C8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80634A0
-
- thumb_func_start sub_80634D0
-sub_80634D0: @ 80634D0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80634E8
- adds r0, r4, 0
- adds r1, r5, 0
- bl npc_update_obj_anim_flag
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80634D0
-
- thumb_func_start sub_80634E8
-sub_80634E8: @ 80634E8
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldrb r1, [r5, 0x1]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x1]
- ldrb r0, [r5, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r6, r0, 0
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0806354C
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldr r2, _08063544 @ =gSpriteCoordOffsetX
- adds r0, r1
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r1, [r4, 0x26]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldr r2, _08063548 @ =gSpriteCoordOffsetY
- adds r0, r1
- ldrh r2, [r2]
- adds r0, r2
- b _08063574
- .align 2, 0
-_08063544: .4byte gSpriteCoordOffsetX
-_08063548: .4byte gSpriteCoordOffsetY
-_0806354C:
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r1, [r4, 0x26]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
-_08063574:
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r6, 0x8]
- adds r0, r3
- lsls r0, 16
- lsrs r1, r0, 16
- ldrh r0, [r6, 0xA]
- adds r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0xFF
- bgt _0806359C
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _080635A4
-_0806359C:
- ldrb r0, [r5, 0x1]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r5, 0x1]
-_080635A4:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0xAF
- bgt _080635B8
- lsls r0, r4, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _080635C0
-_080635B8:
- ldrb r0, [r5, 0x1]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r5, 0x1]
-_080635C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80634E8
-
- thumb_func_start npc_update_obj_anim_flag
-npc_update_obj_anim_flag: @ 80635C8
- push {lr}
- adds r2, r1, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r3, 0x5
- negs r3, r3
- ands r3, r1
- strb r3, [r2]
- ldrb r1, [r0, 0x1]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _080635EA
- movs r1, 0x4
- adds r0, r3, 0
- orrs r0, r1
- strb r0, [r2]
-_080635EA:
- pop {r0}
- bx r0
- thumb_func_end npc_update_obj_anim_flag
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index 8557d521c..b67fdfc73 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -93,7 +93,6 @@ SECTIONS {
src/field_map_obj.o(.text);
asm/field_map_obj.o(.text);
src/field_map_obj.o(.text_fmocb2_c);
- asm/field_map_obj.o(.text_805fd18);
src/field_ground_effect.o(.text);
asm/field_ground_effect.o(.text);
src/field_map_obj_helpers.o(.text);
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index d12e4cfe1..eaad98cb0 100755
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -26,7 +26,7 @@ extern void ClearPlayerAvatarInfo(void);
extern void npc_load_two_palettes__no_record(u16, u8);
extern void npc_load_two_palettes__and_record(u16, u8);
extern void sub_8060388(s16, s16, s16 *, s16 *);
-extern void sub_80634D0(struct MapObject *, struct Sprite *);
+void sub_80634D0(struct MapObject *, struct Sprite *);
extern void pal_patch_for_npc(u16, u16);
extern void CameraObjectReset1(void);
@@ -3886,7 +3886,7 @@ u8 FieldObjectGetSpecialAnim(struct MapObject *mapObject)
extern void DoGroundEffects_OnSpawn(struct MapObject *mapObject, struct Sprite *sprite);
extern void DoGroundEffects_OnBeginStep(struct MapObject *mapObject, struct Sprite *sprite);
extern void DoGroundEffects_OnFinishStep(struct MapObject *mapObject, struct Sprite *sprite);
-extern void npc_obj_transfer_image_anim_pause_flag(struct MapObject *mapObject, struct Sprite *sprite);
+void npc_obj_transfer_image_anim_pause_flag(struct MapObject *mapObject, struct Sprite *sprite);
void sub_80634A0(struct MapObject *mapObject, struct Sprite *sprite);
void FieldObjectExecSpecialAnim(struct MapObject *mapObject, struct Sprite *sprite);
void FieldObjectUpdateSubpriority(struct MapObject *mapObject, struct Sprite *sprite);
@@ -4398,7 +4398,7 @@ u8 sub_8060D10(struct MapObject *mapObject, struct Sprite *sprite)
return 1;
}
-void sub_8060D20(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a2)
+void sub_8060D20(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a3)
{
s16 x;
s16 y;
@@ -4407,7 +4407,7 @@ void sub_8060D20(struct MapObject *mapObject, struct Sprite *sprite, u8 directio
FieldObjectSetDirection(mapObject, direction);
MoveCoords(direction, &x, &y);
npc_coords_shift(mapObject, x, y);
- oamt_npc_ministep_reset(sprite, direction, a2);
+ oamt_npc_ministep_reset(sprite, direction, a3);
sprite->animPaused = 0;
mapObject->mapobj_bit_2 = 1;
sprite->data2 = 1;
@@ -4415,12 +4415,12 @@ void sub_8060D20(struct MapObject *mapObject, struct Sprite *sprite, u8 directio
extern u8 (*const gUnknown_083759C0[5])(u8);
-void do_go_anim(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a2)
+void do_go_anim(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a3)
{
u8 (*functions[5])(u8);
memcpy(functions, gUnknown_083759C0, sizeof(gUnknown_083759C0));
- sub_8060D20(mapObject, sprite, direction, a2);
- sub_805FE28(mapObject, sprite, functions[a2](mapObject->mapobj_unk_18));
+ sub_8060D20(mapObject, sprite, direction, a3);
+ sub_805FE28(mapObject, sprite, functions[a3](mapObject->mapobj_unk_18));
}
void do_run_anim(struct MapObject *mapObject, struct Sprite *sprite, u8 direction)
@@ -5915,3 +5915,824 @@ bool8 sub_80628D0(struct MapObject *mapObject, struct Sprite *sprite)
}
return FALSE;
}
+
+bool8 sub_8062930(struct MapObject *, struct Sprite *);
+
+bool8 sub_80628FC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8060ED8(mapObject, sprite, DIR_SOUTH);
+ sprite->affineAnimPaused = 0;
+ ChangeSpriteAffineAnimIfDifferent(sprite, 1);
+ return sub_8062930(mapObject, sprite);
+}
+
+bool8 sub_8062930(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (an_walk_any_2(mapObject, sprite))
+ {
+ sprite->affineAnimPaused = 1;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_806295C(struct MapObject *mapObject, struct Sprite *sprite, u8 direction)
+{
+ FieldObjectSetDirection(mapObject, direction);
+ npc_coords_shift_still(mapObject);
+ sub_805FE64(mapObject, sprite, sub_805FDD8(direction));
+ sprite->animPaused = 1;
+ sprite->data2 = 1;
+}
+
+bool8 sub_806299C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_806295C(mapObject, sprite, DIR_SOUTH);
+ return TRUE;
+}
+
+bool8 sub_80629AC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_806295C(mapObject, sprite, DIR_NORTH);
+ return TRUE;
+}
+
+bool8 sub_80629BC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_806295C(mapObject, sprite, DIR_WEST);
+ return TRUE;
+}
+
+bool8 sub_80629CC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_806295C(mapObject, sprite, DIR_EAST);
+ return TRUE;
+}
+
+bool8 sub_80629DC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_SOUTH, sub_805FD98(DIR_SOUTH));
+ return FALSE;
+}
+
+bool8 sub_8062A00(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_NORTH, sub_805FD98(DIR_NORTH));
+ return FALSE;
+}
+
+bool8 sub_8062A24(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_WEST, sub_805FD98(DIR_WEST));
+ return FALSE;
+}
+
+bool8 sub_8062A48(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_EAST, sub_805FD98(DIR_EAST));
+ return FALSE;
+}
+
+bool8 sub_8062A6C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_SOUTH, sub_805FDB8(DIR_SOUTH));
+ return FALSE;
+}
+
+bool8 sub_8062A90(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_NORTH, sub_805FDB8(DIR_NORTH));
+ return FALSE;
+}
+
+bool8 sub_8062AB4(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_WEST, sub_805FDB8(DIR_WEST));
+ return FALSE;
+}
+
+bool8 sub_8062AD8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_EAST, sub_805FDB8(DIR_EAST));
+ return FALSE;
+}
+
+bool8 sub_8062AFC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_SOUTH, sub_805FDC8(DIR_SOUTH));
+ return FALSE;
+}
+
+bool8 sub_8062B20(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_NORTH, sub_805FDC8(DIR_NORTH));
+ return FALSE;
+}
+
+bool8 sub_8062B44(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_WEST, sub_805FDC8(DIR_WEST));
+ return FALSE;
+}
+
+bool8 sub_8062B68(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_EAST, sub_805FDC8(DIR_EAST));
+ return FALSE;
+}
+
+void sub_8062B8C(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a3, u8 a4)
+{
+ sub_806113C(mapObject, sprite, direction, a3, a4);
+ StartSpriteAnimIfDifferent(sprite, sub_805FD98(direction));
+ DoShadowFieldEffect(mapObject);
+}
+
+bool8 sub_8062BFC(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062BD0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_SOUTH, 0, 1);
+ return sub_8062BFC(mapObject, sprite);
+}
+
+bool8 sub_8062BFC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062C54(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062C28(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_NORTH, 0, 1);
+ return sub_8062C54(mapObject, sprite);
+}
+
+bool8 sub_8062C54(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062CAC(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062C80(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_WEST, 0, 1);
+ return sub_8062CAC(mapObject, sprite);
+}
+
+bool8 sub_8062CAC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062D04(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062CD8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_EAST, 0, 1);
+ return sub_8062D04(mapObject, sprite);
+}
+
+bool8 sub_8062D04(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062D5C(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062D30(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_SOUTH, 1, 1);
+ return sub_8062D5C(mapObject, sprite);
+}
+
+bool8 sub_8062D5C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062DB4(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062D88(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_NORTH, 1, 1);
+ return sub_8062DB4(mapObject, sprite);
+}
+
+bool8 sub_8062DB4(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062E0C(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062DE0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_WEST, 1, 1);
+ return sub_8062E0C(mapObject, sprite);
+}
+
+bool8 sub_8062E0C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062E64(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062E38(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_EAST, 1, 1);
+ return sub_8062E64(mapObject, sprite);
+}
+
+bool8 sub_8062E64(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062EBC(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062E90(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_SOUTH, 2, 0);
+ return sub_8062EBC(mapObject, sprite);
+}
+
+bool8 sub_8062EBC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062F14(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062EE8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_NORTH, 2, 0);
+ return sub_8062F14(mapObject, sprite);
+}
+
+bool8 sub_8062F14(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062F6C(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062F40(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_WEST, 2, 0);
+ return sub_8062F6C(mapObject, sprite);
+}
+
+bool8 sub_8062F6C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062FC4(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062F98(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_EAST, 2, 0);
+ return sub_8062FC4(mapObject, sprite);
+}
+
+bool8 sub_8062FC4(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062FF0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_SOUTH, sub_805FDD8(DIR_SOUTH), 8);
+ return sub_8061714(mapObject, sprite);
+}
+
+bool8 sub_8063028(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_NORTH, sub_805FDD8(DIR_NORTH), 8);
+ return sub_8061714(mapObject, sprite);
+}
+
+bool8 sub_8063060(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_WEST, sub_805FDD8(DIR_WEST), 8);
+ return sub_8061714(mapObject, sprite);
+}
+
+bool8 sub_8063098(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_EAST, sub_805FDD8(DIR_EAST), 8);
+ return sub_8061714(mapObject, sprite);
+}
+
+void sub_80630D0(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a3)
+{
+ sub_8060D20(mapObject, sprite, direction, a3);
+ StartSpriteAnim(sprite, sub_805FD98(mapObject->mapobj_unk_18));
+ SeekSpriteAnim(sprite, 0);
+}
+
+bool8 sub_8063128(struct MapObject *, struct Sprite *);
+
+bool8 sub_8063108(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80630D0(mapObject, sprite, DIR_SOUTH, 1);
+ return sub_8063128(mapObject, sprite);
+}
+
+bool8 sub_8063128(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8063168(struct MapObject *, struct Sprite *);
+
+bool8 sub_8063148(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80630D0(mapObject, sprite, DIR_NORTH, 1);
+ return sub_8063168(mapObject, sprite);
+}
+
+bool8 sub_8063168(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80631A8(struct MapObject *, struct Sprite *);
+
+bool8 sub_8063188(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80630D0(mapObject, sprite, DIR_WEST, 1);
+ return sub_80631A8(mapObject, sprite);
+}
+
+bool8 sub_80631A8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80631E8(struct MapObject *, struct Sprite *);
+
+bool8 sub_80631C8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80630D0(mapObject, sprite, DIR_EAST, 1);
+ return sub_80631E8(mapObject, sprite);
+}
+
+bool8 sub_80631E8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_8063208(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a3)
+{
+ sub_8060D20(mapObject, sprite, direction, a3);
+ sub_805FE28(mapObject, sprite, sub_805FDD8(mapObject->mapobj_unk_18));
+}
+
+bool8 sub_8063258(struct MapObject *, struct Sprite *);
+
+bool8 sub_8063238(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8063208(mapObject, sprite, DIR_SOUTH, 1);
+ return sub_8063258(mapObject, sprite);
+}
+
+bool8 sub_8063258(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8063298(struct MapObject *, struct Sprite *);
+
+bool8 sub_8063278(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8063208(mapObject, sprite, DIR_NORTH, 1);
+ return sub_8063298(mapObject, sprite);
+}
+
+bool8 sub_8063298(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80632D8(struct MapObject *, struct Sprite *);
+
+bool8 sub_80632B8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8063208(mapObject, sprite, DIR_WEST, 1);
+ return sub_80632D8(mapObject, sprite);
+}
+
+bool8 sub_80632D8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8063318(struct MapObject *, struct Sprite *);
+
+bool8 sub_80632F8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8063208(mapObject, sprite, DIR_EAST, 1);
+ return sub_8063318(mapObject, sprite);
+}
+
+bool8 sub_8063318(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_8063338(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a3)
+{
+ sub_8060D20(mapObject, sprite, direction, a3);
+ StartSpriteAnim(sprite, sub_805FDB8(mapObject->mapobj_unk_18));
+ SeekSpriteAnim(sprite, 0);
+}
+
+bool8 sub_8063390(struct MapObject *, struct Sprite *);
+
+bool8 sub_8063370(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8063338(mapObject, sprite, DIR_SOUTH, 1);
+ return sub_8063390(mapObject, sprite);
+}
+
+bool8 sub_8063390(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80633D0(struct MapObject *, struct Sprite *);
+
+bool8 sub_80633B0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8063338(mapObject, sprite, DIR_NORTH, 1);
+ return sub_80633D0(mapObject, sprite);
+}
+
+bool8 sub_80633D0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8063410(struct MapObject *, struct Sprite *);
+
+bool8 sub_80633F0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8063338(mapObject, sprite, DIR_WEST, 1);
+ return sub_8063410(mapObject, sprite);
+}
+
+bool8 sub_8063410(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8063450(struct MapObject *, struct Sprite *);
+
+bool8 sub_8063430(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8063338(mapObject, sprite, DIR_EAST, 1);
+ return sub_8063450(mapObject, sprite);
+}
+
+bool8 sub_8063450(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8063470(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ return TRUE;
+}
+
+bool8 sub_8063474(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sprite->animPaused = 1;
+ return TRUE;
+}
+
+void npc_obj_transfer_image_anim_pause_flag(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (mapObject->mapobj_bit_10)
+ {
+ sprite->animPaused = 1;
+ }
+}
+
+void sub_80634A0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (mapObject->mapobj_bit_11)
+ {
+ sprite->animPaused = 0;
+ mapObject->mapobj_bit_10 = 0;
+ mapObject->mapobj_bit_11 = 0;
+ }
+}
+
+void sub_80634E8(struct MapObject *, struct Sprite *);
+void npc_update_obj_anim_flag(struct MapObject *, struct Sprite *);
+
+void sub_80634D0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80634E8(mapObject, sprite);
+ npc_update_obj_anim_flag(mapObject, sprite);
+}
+
+#ifdef NONMATCHING
+void sub_80634E8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ u16 x;
+ u16 y;
+ s16 x2;
+ s16 y2;
+ const struct MapObjectGraphicsInfo *graphicsInfo;
+ mapObject->mapobj_bit_14 = 0;
+ graphicsInfo = GetFieldObjectGraphicsInfo(mapObject->graphicsId);
+ if (sprite->coordOffsetEnabled)
+ {
+ x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX;
+ y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY;
+ } else
+ {
+ x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX;
+ y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY;
+ }
+ x2 = graphicsInfo->width + x; // offending line
+ y2 = graphicsInfo->height + y; // similarly offending line
+ if ((s16)x >= 0x100 || x2 < -0x10)
+ {
+ mapObject->mapobj_bit_14 = 1;
+ }
+ if ((s16)y >= 0xB0 || y2 < -0x10)
+ {
+ mapObject->mapobj_bit_14 = 1;
+ }
+}
+#else
+__attribute__((naked))
+void sub_80634E8(struct MapObject *mapObject, struct Sprite *sprite) {
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ adds r5, r0, 0\n\
+ adds r4, r1, 0\n\
+ ldrb r1, [r5, 0x1]\n\
+ movs r0, 0x41\n\
+ negs r0, r0\n\
+ ands r0, r1\n\
+ strb r0, [r5, 0x1]\n\
+ ldrb r0, [r5, 0x5]\n\
+ bl GetFieldObjectGraphicsInfo\n\
+ adds r6, r0, 0\n\
+ adds r0, r4, 0\n\
+ adds r0, 0x3E\n\
+ ldrb r1, [r0]\n\
+ movs r0, 0x2\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0806354C\n\
+ ldrh r1, [r4, 0x24]\n\
+ ldrh r0, [r4, 0x20]\n\
+ adds r1, r0\n\
+ adds r0, r4, 0\n\
+ adds r0, 0x28\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 24\n\
+ asrs r0, 24\n\
+ ldr r2, _08063544 @ =gSpriteCoordOffsetX\n\
+ adds r0, r1\n\
+ ldrh r2, [r2]\n\
+ adds r0, r2\n\
+ lsls r0, 16\n\
+ lsrs r3, r0, 16\n\
+ ldrh r1, [r4, 0x26]\n\
+ ldrh r0, [r4, 0x22]\n\
+ adds r1, r0\n\
+ adds r0, r4, 0\n\
+ adds r0, 0x29\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 24\n\
+ asrs r0, 24\n\
+ ldr r2, _08063548 @ =gSpriteCoordOffsetY\n\
+ adds r0, r1\n\
+ ldrh r2, [r2]\n\
+ adds r0, r2\n\
+ b _08063574\n\
+ .align 2, 0\n\
+_08063544: .4byte gSpriteCoordOffsetX\n\
+_08063548: .4byte gSpriteCoordOffsetY\n\
+_0806354C:\n\
+ ldrh r1, [r4, 0x24]\n\
+ ldrh r0, [r4, 0x20]\n\
+ adds r1, r0\n\
+ adds r0, r4, 0\n\
+ adds r0, 0x28\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 24\n\
+ asrs r0, 24\n\
+ adds r0, r1\n\
+ lsls r0, 16\n\
+ lsrs r3, r0, 16\n\
+ ldrh r1, [r4, 0x26]\n\
+ ldrh r0, [r4, 0x22]\n\
+ adds r1, r0\n\
+ adds r0, r4, 0\n\
+ adds r0, 0x29\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 24\n\
+ asrs r0, 24\n\
+ adds r0, r1\n\
+_08063574:\n\
+ lsls r0, 16\n\
+ lsrs r2, r0, 16\n\
+ ldrh r0, [r6, 0x8]\n\
+ adds r0, r3\n\
+ lsls r0, 16\n\
+ lsrs r1, r0, 16\n\
+ ldrh r0, [r6, 0xA]\n\
+ adds r0, r2\n\
+ lsls r0, 16\n\
+ lsrs r4, r0, 16\n\
+ lsls r0, r3, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0xFF\n\
+ bgt _0806359C\n\
+ lsls r0, r1, 16\n\
+ asrs r0, 16\n\
+ movs r1, 0x10\n\
+ negs r1, r1\n\
+ cmp r0, r1\n\
+ bge _080635A4\n\
+_0806359C:\n\
+ ldrb r0, [r5, 0x1]\n\
+ movs r1, 0x40\n\
+ orrs r0, r1\n\
+ strb r0, [r5, 0x1]\n\
+_080635A4:\n\
+ lsls r0, r2, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0xAF\n\
+ bgt _080635B8\n\
+ lsls r0, r4, 16\n\
+ asrs r0, 16\n\
+ movs r1, 0x10\n\
+ negs r1, r1\n\
+ cmp r0, r1\n\
+ bge _080635C0\n\
+_080635B8:\n\
+ ldrb r0, [r5, 0x1]\n\
+ movs r1, 0x40\n\
+ orrs r0, r1\n\
+ strb r0, [r5, 0x1]\n\
+_080635C0:\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+.syntax divided\n");
+}
+#endif
+
+void npc_update_obj_anim_flag(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sprite->invisible = 0;
+ if (mapObject->mapobj_bit_13 || mapObject->mapobj_bit_14)
+ {
+ sprite->invisible = 1;
+ }
+}