summaryrefslogtreecommitdiff
path: root/src/field_map_obj.c
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-05-21 10:01:47 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-05-21 10:01:47 -0400
commita584c604145189a31496d9f7303d8af7f22ee1ec (patch)
treed3965b61a91fd5320395b4a320de6b301ac3ac06 /src/field_map_obj.c
parent2e1932110b25757906c6a7c4124e1bf95c82aab8 (diff)
A few more functions for calculating map object facing directions
Diffstat (limited to 'src/field_map_obj.c')
-rw-r--r--src/field_map_obj.c133
1 files changed, 131 insertions, 2 deletions
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index e5a50362a..f042b4af1 100644
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -1665,7 +1665,7 @@ u8 sub_805CAAC(s16 a0, s16 a1, s16 a2, s16 a3)
return dirn;
}
-u8 sub_805CADC(s16 a0, s16 a1)
+u8 sub_805CADC(s16 a0, s16 a1, s16 a2, s16 a3)
{
u8 dirn;
dirn = DIR_SOUTH;
@@ -1676,7 +1676,7 @@ u8 sub_805CADC(s16 a0, s16 a1)
return dirn;
}
-u8 sub_805CAEC(s16 a0, s16 a1)
+u8 sub_805CAEC(s16 a0, s16 a1, s16 a2, s16 a3)
{
u8 dirn;
dirn = DIR_EAST;
@@ -1686,3 +1686,132 @@ u8 sub_805CAEC(s16 a0, s16 a1)
}
return dirn;
}
+
+u8 sub_805CB00(s16 a0, s16 a1, s16 a2, s16 a3) {
+ u8 dirn;
+ dirn = sub_805CAAC(a0, a1, a2, a3);
+ if (dirn == DIR_SOUTH)
+ {
+ dirn = sub_805CAEC(a0, a1, a2, a3);
+ if (dirn == DIR_EAST)
+ {
+ dirn = DIR_NORTH;
+ }
+ }
+ else if (dirn == DIR_EAST)
+ {
+ dirn = sub_805CADC(a0, a1, a2, a3);
+ if (dirn == DIR_SOUTH)
+ {
+ dirn = DIR_NORTH;
+ }
+ }
+ return dirn;
+}
+
+u8 sub_805CB5C(s16 a0, s16 a1, s16 a2, s16 a3) {
+ u8 dirn;
+ dirn = sub_805CAAC(a0, a1, a2, a3);
+ if (dirn == DIR_SOUTH)
+ {
+ dirn = sub_805CAEC(a0, a1, a2, a3);
+ if (dirn == DIR_WEST)
+ {
+ dirn = DIR_NORTH;
+ }
+ }
+ else if (dirn == DIR_WEST)
+ {
+ dirn = sub_805CADC(a0, a1, a2, a3);
+ if (dirn == DIR_SOUTH)
+ {
+ dirn = DIR_NORTH;
+ }
+ }
+ return dirn;
+}
+
+u8 sub_805CBB8(s16 a0, s16 a1, s16 a2, s16 a3) {
+ u8 dirn;
+ dirn = sub_805CAAC(a0, a1, a2, a3);
+ if (dirn == DIR_NORTH)
+ {
+ dirn = sub_805CAEC(a0, a1, a2, a3);
+ if (dirn == DIR_EAST)
+ {
+ dirn = DIR_SOUTH;
+ }
+ }
+ else if (dirn == DIR_EAST)
+ {
+ dirn = sub_805CADC(a0, a1, a2, a3);
+ if (dirn == DIR_NORTH)
+ {
+ dirn = DIR_SOUTH;
+ }
+ }
+ return dirn;
+}
+
+u8 sub_805CC14(s16 a0, s16 a1, s16 a2, s16 a3) {
+ u8 dirn;
+ dirn = sub_805CAAC(a0, a1, a2, a3);
+ if (dirn == DIR_NORTH)
+ {
+ dirn = sub_805CAEC(a0, a1, a2, a3);
+ if (dirn == DIR_WEST)
+ {
+ dirn = DIR_SOUTH;
+ }
+ }
+ else if (dirn == DIR_WEST)
+ {
+ dirn = sub_805CADC(a0, a1, a2, a3);
+ if (dirn == DIR_NORTH)
+ {
+ dirn = DIR_SOUTH;
+ }
+ }
+ return dirn;
+}
+
+u8 sub_805CC70(s16 a0, s16 a1, s16 a2, s16 a3) {
+ u8 dirn;
+ dirn = sub_805CAAC(a0, a1, a2, a3);
+ if (dirn == DIR_EAST)
+ {
+ dirn = sub_805CADC(a0, a1, a2, a3);
+ }
+ return dirn;
+}
+
+u8 sub_805CCAC(s16 a0, s16 a1, s16 a2, s16 a3) {
+ u8 dirn;
+ dirn = sub_805CAAC(a0, a1, a2, a3);
+ if (dirn == DIR_WEST)
+ {
+ dirn = sub_805CADC(a0, a1, a2, a3);
+ }
+ return dirn;
+}
+
+u8 sub_805CCE8(s16 a0, s16 a1, s16 a2, s16 a3) {
+ u8 dirn;
+ dirn = sub_805CAAC(a0, a1, a2, a3);
+ if (dirn == DIR_SOUTH)
+ {
+ dirn = sub_805CAEC(a0, a1, a2, a3);
+ }
+ return dirn;
+}
+
+u8 sub_805CD24(s16 a0, s16 a1, s16 a2, s16 a3) {
+ u8 dirn;
+ dirn = sub_805CAAC(a0, a1, a2, a3);
+ if (dirn == DIR_NORTH)
+ {
+ dirn = sub_805CAEC(a0, a1, a2, a3);
+ }
+ return dirn;
+}
+