summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-09-17 12:19:35 -0400
committerscnorton <scnorton@biociphers.org>2017-09-17 12:19:35 -0400
commit20152fb0aff7e4e7de34be319f6ce120ae09aaa1 (patch)
treea9d874999817c6758cc5d0226151ec9d013127be
parent3356a4fb923d73bba9422b564bc1c0ef7e62f47c (diff)
Yet Another Macro Cluster TM
-rwxr-xr-xasm/field_map_obj.s194
-rwxr-xr-xsrc/field_map_obj.c29
2 files changed, 29 insertions, 194 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 958e66bd6..cd3f7022a 100755
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -5,200 +5,6 @@
.text
- thumb_func_start sub_8094DE4
-sub_8094DE4: @ 8094DE4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r1, 0
- lsls r4, r2, 24
- lsrs r4, 24
- movs r1, 0
- str r1, [sp]
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_8093FC4
- adds r0, r4, 0
- bl sub_80929AC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8094DE4
-
- thumb_func_start sub_8094E18
-sub_8094E18: @ 8094E18
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8094DE4
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094E38
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094E18
-
- thumb_func_start sub_8094E38
-sub_8094E38: @ 8094E38
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941C8
- lsls r0, 24
- cmp r0, 0
- bne _08094E4C
- movs r0, 0
- b _08094E5A
-_08094E4C:
- movs r0, 0x2
- strh r0, [r5, 0x32]
- ldrb r1, [r4]
- subs r0, 0x23
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x1
-_08094E5A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094E38
-
- thumb_func_start sub_8094E60
-sub_8094E60: @ 8094E60
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- bl sub_8094DE4
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094E80
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094E60
-
- thumb_func_start sub_8094E80
-sub_8094E80: @ 8094E80
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941C8
- lsls r0, 24
- cmp r0, 0
- bne _08094E94
- movs r0, 0
- b _08094EA2
-_08094E94:
- movs r0, 0x2
- strh r0, [r5, 0x32]
- ldrb r1, [r4]
- subs r0, 0x23
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x1
-_08094EA2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094E80
-
- thumb_func_start sub_8094EA8
-sub_8094EA8: @ 8094EA8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- bl sub_8094DE4
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094EC8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094EA8
-
- thumb_func_start sub_8094EC8
-sub_8094EC8: @ 8094EC8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941C8
- lsls r0, 24
- cmp r0, 0
- bne _08094EDC
- movs r0, 0
- b _08094EEA
-_08094EDC:
- movs r0, 0x2
- strh r0, [r5, 0x32]
- ldrb r1, [r4]
- subs r0, 0x23
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x1
-_08094EEA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094EC8
-
- thumb_func_start sub_8094EF0
-sub_8094EF0: @ 8094EF0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- bl sub_8094DE4
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094F10
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094EF0
-
- thumb_func_start sub_8094F10
-sub_8094F10: @ 8094F10
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80941C8
- lsls r0, 24
- cmp r0, 0
- bne _08094F24
- movs r0, 0
- b _08094F32
-_08094F24:
- movs r0, 0x2
- strh r0, [r5, 0x32]
- ldrb r1, [r4]
- subs r0, 0x23
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x1
-_08094F32:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094F10
-
thumb_func_start sub_8094F38
sub_8094F38: @ 8094F38
push {r4-r6,lr}
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index 9f01e87df..1d91184ec 100755
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -4512,3 +4512,32 @@ bool8 sub_8094DC4(struct MapObject *mapObject, struct Sprite *sprite)
}
return FALSE;
}
+
+void sub_8094DE4(struct MapObject *mapObject, struct Sprite *sprite, u8 direction)
+{
+ sub_8093FC4(mapObject, sprite, direction, 1, 0);
+ StartSpriteAnim(sprite, sub_80929AC(direction));
+}
+
+#define unk_macro_8094E18(name, direction)\
+static bool8 name##_2(struct MapObject *, struct Sprite *);\
+bool8 name(struct MapObject *mapObject, struct Sprite *sprite)\
+{\
+ sub_8094DE4(mapObject, sprite, direction);\
+ return name##_2(mapObject, sprite);\
+}\
+static bool8 name##_2(struct MapObject *mapObject, struct Sprite *sprite)\
+{\
+ if (sub_80941C8(mapObject, sprite))\
+ {\
+ sprite->data2 = 2;\
+ mapObject->mapobj_bit_5 = FALSE;\
+ return TRUE;\
+ }\
+ return FALSE;\
+}
+
+unk_macro_8094E18(sub_8094E18, DIR_SOUTH)
+unk_macro_8094E18(sub_8094E60, DIR_NORTH)
+unk_macro_8094E18(sub_8094EB8, DIR_WEST)
+unk_macro_8094E18(sub_8094710, DIR_EAST)