summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-09-17 08:26:27 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-09-17 08:26:27 -0400
commit501baffc48a505231e650f67576a844f4d0d74c9 (patch)
tree731068dc1e4c800f1ec86e7ec408681209fd3233
parent6439551e1a1effa0282145627aaef934a1b4b797 (diff)
Yet another chunk of highly similar functions
-rwxr-xr-xasm/field_map_obj.s305
-rwxr-xr-xsrc/field_map_obj.c25
2 files changed, 25 insertions, 305 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index c8fb45942..405abb959 100755
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -5,311 +5,6 @@
.text
- thumb_func_start sub_8093DC4
-sub_8093DC4: @ 8093DC4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x7
- movs r3, 0
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093DE4
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093DC4
-
- thumb_func_start sub_8093DE4
-@ bool8 sub_8093DE4(struct npc_state *fieldObject, struct obj *object)
-sub_8093DE4: @ 8093DE4
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08093DF6
- movs r0, 0
- b _08093DFC
-_08093DF6:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093DFC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093DE4
-
- thumb_func_start sub_8093E04
-sub_8093E04: @ 8093E04
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x8
- movs r3, 0
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093E24
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093E04
-
- thumb_func_start sub_8093E24
-sub_8093E24: @ 8093E24
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08093E36
- movs r0, 0
- b _08093E3C
-_08093E36:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093E3C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093E24
-
- thumb_func_start sub_8093E44
-sub_8093E44: @ 8093E44
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x5
- movs r3, 0
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093E64
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093E44
-
- thumb_func_start sub_8093E64
-sub_8093E64: @ 8093E64
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08093E76
- movs r0, 0
- b _08093E7C
-_08093E76:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093E7C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093E64
-
- thumb_func_start sub_8093E84
-sub_8093E84: @ 8093E84
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x6
- movs r3, 0
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093EA4
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093E84
-
- thumb_func_start sub_8093EA4
-sub_8093EA4: @ 8093EA4
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08093EB6
- movs r0, 0
- b _08093EBC
-_08093EB6:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093EBC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093EA4
-
- thumb_func_start sub_8093EC4
-sub_8093EC4: @ 8093EC4
- 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_8093EE4
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093EC4
-
- thumb_func_start sub_8093EE4
-sub_8093EE4: @ 8093EE4
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08093EF6
- movs r0, 0
- b _08093EFC
-_08093EF6:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093EFC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093EE4
-
- thumb_func_start sub_8093F04
-sub_8093F04: @ 8093F04
- 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_8093F24
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093F04
-
- thumb_func_start sub_8093F24
-sub_8093F24: @ 8093F24
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08093F36
- movs r0, 0
- b _08093F3C
-_08093F36:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093F3C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093F24
-
- thumb_func_start sub_8093F44
-sub_8093F44: @ 8093F44
- 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_8093F64
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093F44
-
- thumb_func_start sub_8093F64
-sub_8093F64: @ 8093F64
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08093F76
- movs r0, 0
- b _08093F7C
-_08093F76:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093F7C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093F64
-
- thumb_func_start sub_8093F84
-sub_8093F84: @ 8093F84
- 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_8093FA4
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8093F84
-
- thumb_func_start sub_8093FA4
-sub_8093FA4: @ 8093FA4
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08093FB6
- movs r0, 0
- b _08093FBC
-_08093FB6:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08093FBC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093FA4
-
thumb_func_start sub_8093FC4
sub_8093FC4: @ 8093FC4
push {r4-r7,lr}
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index bffce24ac..648f6bd46 100755
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -4246,6 +4246,23 @@ static bool8 name##_2(struct MapObject *mapObject, struct Sprite *sprite)\
return FALSE;\
}
+#define npc_obj_ministep_stop_on_arrival_macro(name, dirn, speed) \
+static bool8 name##_2(struct MapObject *, struct Sprite *);\
+bool8 name(struct MapObject *mapObject, struct Sprite *sprite)\
+{\
+ do_go_anim(mapObject, sprite, dirn, speed);\
+ return name##_2(mapObject, sprite);\
+}\
+static bool8 name##_2(struct MapObject *mapObject, struct Sprite *sprite)\
+{\
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))\
+ {\
+ sprite->data2 = 2;\
+ return TRUE;\
+ }\
+ return FALSE;\
+}
+
an_walk_any_2_macro(sub_8093BC4, 7)
an_walk_any_2_macro(sub_8093C04, 8)
an_walk_any_2_macro(sub_8093C44, 5)
@@ -4254,4 +4271,12 @@ an_walk_any_2_macro(sub_8093CC4, 1)
an_walk_any_2_macro(sub_8093D04, 2)
an_walk_any_2_macro(sub_8093D44, 3)
an_walk_any_2_macro(sub_8093D84, 4)
+npc_obj_ministep_stop_on_arrival_macro(sub_8093DC4, 7, 0)
+npc_obj_ministep_stop_on_arrival_macro(sub_8093E04, 8, 0)
+npc_obj_ministep_stop_on_arrival_macro(sub_8093E44, 5, 0)
+npc_obj_ministep_stop_on_arrival_macro(sub_8093E84, 6, 0)
+npc_obj_ministep_stop_on_arrival_macro(sub_8093EC4, 1, 0)
+npc_obj_ministep_stop_on_arrival_macro(sub_8093F04, 2, 0)
+npc_obj_ministep_stop_on_arrival_macro(sub_8093F44, 3, 0)
+npc_obj_ministep_stop_on_arrival_macro(sub_8093F84, 4, 0)