summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-06-26 08:37:30 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-06-26 08:37:30 -0400
commit155007d14989b2a798a15c6be8a00bb926d2c9b7 (patch)
tree8985029a2c55e6c5b83998c4c517c434f42755c0
parentd7ab13d3a9b969b0267786e566595689338ae7c4 (diff)
sub_80697C8
-rwxr-xr-xasm/field_tasks.s82
-rwxr-xr-xsrc/field_tasks.c34
2 files changed, 34 insertions, 82 deletions
diff --git a/asm/field_tasks.s b/asm/field_tasks.s
index dcc3858ee..6a7176104 100755
--- a/asm/field_tasks.s
+++ b/asm/field_tasks.s
@@ -6,88 +6,6 @@
.text
- thumb_func_start sub_80697C8
-sub_80697C8: @ 80697C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- mov r10, r8
- lsls r3, 16
- lsrs r7, r3, 16
- mov r9, r7
- lsls r0, 16
- asrs r6, r0, 16
- lsls r1, 16
- asrs r5, r1, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80576A0
- lsls r0, 24
- cmp r0, 0
- beq _0806980C
- lsls r0, r7, 16
- asrs r0, 16
- cmp r5, r0
- bge _08069852
-_08069808:
- movs r0, 0
- b _08069854
-_0806980C:
- adds r0, r4, 0
- bl sub_80576B4
- lsls r0, 24
- cmp r0, 0
- beq _08069824
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- cmp r5, r0
- ble _08069852
- b _08069808
-_08069824:
- adds r0, r4, 0
- bl sub_80576C8
- lsls r0, 24
- cmp r0, 0
- beq _0806983C
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- cmp r6, r0
- bge _08069852
- b _08069808
-_0806983C:
- adds r0, r4, 0
- bl sub_80576DC
- lsls r0, 24
- cmp r0, 0
- beq _08069852
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- cmp r6, r0
- bgt _08069808
-_08069852:
- movs r0, 0x1
-_08069854:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80697C8
-
thumb_func_start PerStepCallback_8069864
PerStepCallback_8069864: @ 8069864
push {r4-r7,lr}
diff --git a/src/field_tasks.c b/src/field_tasks.c
index 6682d01c3..34cbc9796 100755
--- a/src/field_tasks.c
+++ b/src/field_tasks.c
@@ -317,3 +317,37 @@ bool8 sub_806972C(s16 x1, s16 y1, s16 x2, s16 y2)
}
return TRUE;
}
+
+bool8 sub_80697C8(s16 x1, s16 y1, s16 x2, s16 y2)
+{
+ s8 metatileBehavior = MapGridGetMetatileBehaviorAt(x1, y1);
+ if (sub_80576A0(metatileBehavior))
+ {
+ if (y1 < y2)
+ {
+ return FALSE;
+ }
+ }
+ else if (sub_80576B4(metatileBehavior))
+ {
+ if (y1 > y2)
+ {
+ return FALSE;
+ }
+ }
+ else if (sub_80576C8(metatileBehavior))
+ {
+ if (x1 < x2)
+ {
+ return FALSE;
+ }
+ }
+ else if (sub_80576DC(metatileBehavior))
+ {
+ if (x1 > x2)
+ {
+ return FALSE;
+ }
+ }
+ return TRUE;
+}