summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-05-21 00:48:56 -0400
committerscnorton <scnorton@biociphers.org>2017-05-24 16:14:46 -0400
commitf578c81cfdfb54e1101c5f5785cb685bd63c3b5a (patch)
tree379ec542f780452a7fb1599871475e6d992440ef
parent83ddca476069c52e0ea550b335539c0371d164c3 (diff)
More functions governing npc trainer facing directions
-rw-r--r--asm/field_map_obj.s57
-rw-r--r--src/field_map_obj.c44
2 files changed, 44 insertions, 57 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index fb19ddbb2..23cbb1ac1 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -6,63 +6,6 @@
.text
- thumb_func_start sub_805CAAC
-sub_805CAAC: @ 805CAAC
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r0, r1, 16
- lsls r2, 16
- lsls r3, 16
- cmp r2, r3
- ble _0805CACA
- movs r2, 0x4
- lsls r0, r4, 16
- cmp r0, 0
- bge _0805CAD4
- movs r2, 0x3
- b _0805CAD4
-_0805CACA:
- movs r2, 0x1
- lsls r0, 16
- cmp r0, 0
- bge _0805CAD4
- movs r2, 0x2
-_0805CAD4:
- adds r0, r2, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805CAAC
-
- thumb_func_start sub_805CADC
-sub_805CADC: @ 805CADC
- push {lr}
- movs r0, 0x1
- lsls r1, 16
- cmp r1, 0
- bge _0805CAE8
- movs r0, 0x2
-_0805CAE8:
- pop {r1}
- bx r1
- thumb_func_end sub_805CADC
-
- thumb_func_start sub_805CAEC
-sub_805CAEC: @ 805CAEC
- push {lr}
- movs r1, 0x4
- lsls r0, 16
- cmp r0, 0
- bge _0805CAF8
- movs r1, 0x3
-_0805CAF8:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end sub_805CAEC
-
thumb_func_start sub_805CB00
sub_805CB00: @ 805CB00
push {r4-r7,lr}
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index 61ec26365..e5a50362a 100644
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -1642,3 +1642,47 @@ u8 FieldObjectIsTrainerAndCloseToPlayer(struct MapObject *mapObject)
}
return 1;
}
+
+u8 sub_805CAAC(s16 a0, s16 a1, s16 a2, s16 a3)
+{
+ u8 dirn;
+ if (a2 > a3)
+ {
+ dirn = DIR_EAST;
+ if (a0 < 0)
+ {
+ dirn = DIR_WEST;
+ }
+ }
+ else
+ {
+ dirn = DIR_SOUTH;
+ if (a1 < 0)
+ {
+ dirn = DIR_NORTH;
+ }
+ }
+ return dirn;
+}
+
+u8 sub_805CADC(s16 a0, s16 a1)
+{
+ u8 dirn;
+ dirn = DIR_SOUTH;
+ if (a1 < 0)
+ {
+ dirn = DIR_NORTH;
+ }
+ return dirn;
+}
+
+u8 sub_805CAEC(s16 a0, s16 a1)
+{
+ u8 dirn;
+ dirn = DIR_EAST;
+ if (a0 < 0)
+ {
+ dirn = DIR_WEST;
+ }
+ return dirn;
+}