summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-09-13 20:26:08 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-09-13 20:26:08 -0400
commitc1f5183f4033fa29868fdc1c7aa64a51fd939615 (patch)
tree28d7acdadd85554272bc8d7bdbe88eb9c8b80390
parent6b906d95b986611d148780e8c8fc0be367569ca2 (diff)
Three-direction get-running-past-facing callbacks
-rwxr-xr-xasm/field_map_obj.s132
-rwxr-xr-xsrc/field_map_obj.c48
2 files changed, 48 insertions, 132 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 95347c52d..914a44500 100755
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -5,138 +5,6 @@
.text
- thumb_func_start sub_808F7CC
-sub_808F7CC: @ 808F7CC
- push {r4-r7,lr}
- lsls r0, 16
- asrs r7, r0, 16
- lsls r1, 16
- asrs r6, r1, 16
- lsls r2, 16
- asrs r5, r2, 16
- lsls r3, 16
- asrs r4, r3, 16
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl GetRegularRunningPastFacingDirection
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0808F802
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl GetNorthSouthRunningPastFacingDirection
- lsls r0, 24
- lsrs r0, 24
-_0808F802:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808F7CC
-
- thumb_func_start sub_808F808
-sub_808F808: @ 808F808
- push {r4-r7,lr}
- lsls r0, 16
- asrs r7, r0, 16
- lsls r1, 16
- asrs r6, r1, 16
- lsls r2, 16
- asrs r5, r2, 16
- lsls r3, 16
- asrs r4, r3, 16
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl GetRegularRunningPastFacingDirection
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0808F83E
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl GetNorthSouthRunningPastFacingDirection
- lsls r0, 24
- lsrs r0, 24
-_0808F83E:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808F808
-
- thumb_func_start sub_808F844
-sub_808F844: @ 808F844
- push {r4-r7,lr}
- lsls r0, 16
- asrs r7, r0, 16
- lsls r1, 16
- asrs r6, r1, 16
- lsls r2, 16
- asrs r5, r2, 16
- lsls r3, 16
- asrs r4, r3, 16
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl GetRegularRunningPastFacingDirection
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808F87A
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl GetEastWestRunningPastFacingDirection
- lsls r0, 24
- lsrs r0, 24
-_0808F87A:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808F844
-
- thumb_func_start sub_808F880
-sub_808F880: @ 808F880
- push {r4-r7,lr}
- lsls r0, 16
- asrs r7, r0, 16
- lsls r1, 16
- asrs r6, r1, 16
- lsls r2, 16
- asrs r5, r2, 16
- lsls r3, 16
- asrs r4, r3, 16
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl GetRegularRunningPastFacingDirection
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0808F8B6
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl GetEastWestRunningPastFacingDirection
- lsls r0, 24
- lsrs r0, 24
-_0808F8B6:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808F880
-
thumb_func_start sub_808F8BC
sub_808F8BC: @ 808F8BC
push {r4-r6,lr}
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index 00ccb4493..48b423d85 100755
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -1975,3 +1975,51 @@ u8 GetSouthWestRunningPastFacingDirection(s16 dx1, s16 dy1, s16 dx2, s16 dy2)
}
return direction;
}
+
+u8 GetNonEastRunningPastFacingDirection(s16 dx1, s16 dy1, s16 dx2, s16 dy2)
+{
+ u8 direction;
+
+ direction = GetRegularRunningPastFacingDirection(dx1, dy1, dx2, dy2);
+ if (direction == DIR_EAST)
+ {
+ direction = GetNorthSouthRunningPastFacingDirection(dx1, dy1, dx2, dy2);
+ }
+ return direction;
+}
+
+u8 GetNonWestRunningPastFacingDirection(s16 dx1, s16 dy1, s16 dx2, s16 dy2)
+{
+ u8 direction;
+
+ direction = GetRegularRunningPastFacingDirection(dx1, dy1, dx2, dy2);
+ if (direction == DIR_WEST)
+ {
+ direction = GetNorthSouthRunningPastFacingDirection(dx1, dy1, dx2, dy2);
+ }
+ return direction;
+}
+
+u8 GetNonSouthRunningPastFacingDirection(s16 dx1, s16 dy1, s16 dx2, s16 dy2)
+{
+ u8 direction;
+
+ direction = GetRegularRunningPastFacingDirection(dx1, dy1, dx2, dy2);
+ if (direction == DIR_SOUTH)
+ {
+ direction = GetEastWestRunningPastFacingDirection(dx1, dy1, dx2, dy2);
+ }
+ return direction;
+}
+
+u8 GetNonNorthRunningPastFacingDirection(s16 dx1, s16 dy1, s16 dx2, s16 dy2)
+{
+ u8 direction;
+
+ direction = GetRegularRunningPastFacingDirection(dx1, dy1, dx2, dy2);
+ if (direction == DIR_NORTH)
+ {
+ direction = GetEastWestRunningPastFacingDirection(dx1, dy1, dx2, dy2);
+ }
+ return direction;
+}