summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-05-21 10:01:47 -0400
committerscnorton <scnorton@biociphers.org>2017-05-24 16:14:46 -0400
commit9997127c347abfbc245270077a762348162831b8 (patch)
tree6b3f202f5fb0e81c765e82f346405f2296ecd931 /src
parentf578c81cfdfb54e1101c5f5785cb685bd63c3b5a (diff)
A few more functions for calculating map object facing directions
Diffstat (limited to 'src')
-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;
+}
+