diff options
-rw-r--r-- | asm/field_map_obj.s | 152 | ||||
-rwxr-xr-x | src/field_map_obj.c | 72 |
2 files changed, 72 insertions, 152 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s index 2eff32e9e..6051dc6e6 100644 --- a/asm/field_map_obj.s +++ b/asm/field_map_obj.s @@ -1353,158 +1353,6 @@ sub_805FD08: @ 805FD08 .section .text_805fd18 - thumb_func_start sub_806103C -sub_806103C: @ 806103C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - movs r3, 0 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806105C - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806103C - - thumb_func_start sub_806105C -sub_806105C: @ 806105C - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _0806106E - movs r0, 0 - b _08061074 -_0806106E: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061074: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806105C - - thumb_func_start sub_806107C -sub_806107C: @ 806107C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x2 - movs r3, 0 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806109C - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806107C - - thumb_func_start sub_806109C -sub_806109C: @ 806109C - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _080610AE - movs r0, 0 - b _080610B4 -_080610AE: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080610B4: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806109C - - thumb_func_start sub_80610BC -sub_80610BC: @ 80610BC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x3 - movs r3, 0 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80610DC - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80610BC - - thumb_func_start sub_80610DC -sub_80610DC: @ 80610DC - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _080610EE - movs r0, 0 - b _080610F4 -_080610EE: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_080610F4: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80610DC - - thumb_func_start sub_80610FC -sub_80610FC: @ 80610FC - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - movs r3, 0 - bl do_go_anim - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806111C - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80610FC - - thumb_func_start sub_806111C -sub_806111C: @ 806111C - push {r4,lr} - adds r4, r1, 0 - bl npc_obj_ministep_stop_on_arrival - lsls r0, 24 - cmp r0, 0 - bne _0806112E - movs r0, 0 - b _08061134 -_0806112E: - movs r0, 0x2 - strh r0, [r4, 0x32] - movs r0, 0x1 -_08061134: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_806111C - thumb_func_start sub_806113C sub_806113C: @ 806113C push {r4-r7,lr} diff --git a/src/field_map_obj.c b/src/field_map_obj.c index cb68b0140..21dcb90bc 100755 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -4344,3 +4344,75 @@ bool8 sub_806101C(struct MapObject *mapObject, struct Sprite *sprite) return FALSE; } +bool8 sub_806105C(struct MapObject *, struct Sprite *); + +bool8 sub_806103C(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_SOUTH, 0); + return sub_806105C(mapObject, sprite); +} + +bool8 sub_806105C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_806109C(struct MapObject *, struct Sprite *); + +bool8 sub_806107C(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_NORTH, 0); + return sub_806109C(mapObject, sprite); +} + +bool8 sub_806109C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_80610DC(struct MapObject *, struct Sprite *); + +bool8 sub_80610BC(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_WEST, 0); + return sub_80610DC(mapObject, sprite); +} + +bool8 sub_80610DC(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + +bool8 sub_806111C(struct MapObject *, struct Sprite *); + +bool8 sub_80610FC(struct MapObject *mapObject, struct Sprite *sprite) +{ + do_go_anim(mapObject, sprite, DIR_EAST, 0); + return sub_806111C(mapObject, sprite); +} + +bool8 sub_806111C(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (npc_obj_ministep_stop_on_arrival(mapObject, sprite)) + { + sprite->data2 = 2; + return TRUE; + } + return FALSE; +} + |