summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-05-24 17:26:58 -0400
committerscnorton <scnorton@biociphers.org>2017-05-24 17:26:58 -0400
commit82ad1f63c4b0516e2c8e0975c8bfd750480b9e3d (patch)
treea9d6dfb4751093eba859384539b4edbabd7bcca9
parent0cb48e9bb08b4efd157748d7e2446c12450b9b46 (diff)
FMO under 6k lines
-rw-r--r--asm/field_map_obj.s265
-rwxr-xr-xsrc/field_map_obj.c101
2 files changed, 101 insertions, 265 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 73b0ec9dd..b5a30d4e5 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -1353,271 +1353,6 @@ sub_805FD08: @ 805FD08
.section .text_805fd18
- thumb_func_start sub_8061400
-sub_8061400: @ 8061400
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806142C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061400
-
- thumb_func_start sub_806142C
-sub_806142C: @ 806142C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08061440
- movs r0, 0
- b _08061450
-_08061440:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08061450:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806142C
-
- thumb_func_start sub_8061458
-sub_8061458: @ 8061458
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0x2
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061484
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061458
-
- thumb_func_start sub_8061484
-sub_8061484: @ 8061484
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08061498
- movs r0, 0
- b _080614A8
-_08061498:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080614A8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061484
-
- thumb_func_start sub_80614B0
-sub_80614B0: @ 80614B0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0x2
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80614DC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80614B0
-
- thumb_func_start sub_80614DC
-sub_80614DC: @ 80614DC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _080614F0
- movs r0, 0
- b _08061500
-_080614F0:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08061500:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80614DC
-
- thumb_func_start sub_8061508
-sub_8061508: @ 8061508
- movs r2, 0x1
- strh r2, [r0, 0x32]
- strh r1, [r0, 0x34]
- bx lr
- thumb_func_end sub_8061508
-
- thumb_func_start sub_8061510
-sub_8061510: @ 8061510
- push {lr}
- ldrh r0, [r1, 0x34]
- subs r0, 0x1
- strh r0, [r1, 0x34]
- lsls r0, 16
- cmp r0, 0
- beq _08061522
- movs r0, 0
- b _08061528
-_08061522:
- movs r0, 0x2
- strh r0, [r1, 0x32]
- movs r0, 0x1
-_08061528:
- pop {r1}
- bx r1
- thumb_func_end sub_8061510
-
- thumb_func_start sub_806152C
-sub_806152C: @ 806152C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8061508
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8061510
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806152C
-
- thumb_func_start sub_806154C
-sub_806154C: @ 806154C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8061508
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8061510
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806154C
-
- thumb_func_start sub_806156C
-sub_806156C: @ 806156C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x4
- bl sub_8061508
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8061510
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806156C
-
- thumb_func_start sub_806158C
-sub_806158C: @ 806158C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x8
- bl sub_8061508
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8061510
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806158C
-
- thumb_func_start sub_80615AC
-sub_80615AC: @ 80615AC
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x10
- bl sub_8061508
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8061510
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80615AC
-
thumb_func_start sub_80615CC
sub_80615CC: @ 80615CC
push {r4,r5,lr}
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index eedb74033..ddf76fef6 100755
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -4517,6 +4517,9 @@ bool8 sub_8061358(struct MapObject *mapObject, struct Sprite *sprite)
}
bool8 sub_80613D4(struct MapObject *, struct Sprite *);
+bool8 sub_806142C(struct MapObject *, struct Sprite *);
+bool8 sub_8061484(struct MapObject *, struct Sprite *);
+bool8 sub_80614DC(struct MapObject *, struct Sprite *);
bool8 sub_80613A8(struct MapObject *mapObject, struct Sprite *sprite)
{
@@ -4534,3 +4537,101 @@ bool8 sub_80613D4(struct MapObject *mapObject, struct Sprite *sprite)
}
return FALSE;
}
+
+bool8 sub_8061400(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ maybe_shadow_1(mapObject, sprite, DIR_NORTH, 2, 0);
+ return sub_806142C(mapObject, sprite);
+}
+
+bool8 sub_806142C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8061458(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ maybe_shadow_1(mapObject, sprite, DIR_WEST, 2, 0);
+ return sub_8061484(mapObject, sprite);
+}
+
+bool8 sub_8061484(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80614B0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ maybe_shadow_1(mapObject, sprite, DIR_EAST, 2, 0);
+ return sub_80614DC(mapObject, sprite);
+}
+
+bool8 sub_80614DC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_8061508(struct Sprite *sprite, u16 duration)
+{
+ sprite->data2 = 1;
+ sprite->data3 = duration;
+}
+
+bool8 sub_8061510(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sprite->data3--;
+ if (!sprite->data3)
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_806152C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8061508(sprite, 1);
+ return sub_8061510(mapObject, sprite);
+}
+
+bool8 sub_806154C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8061508(sprite, 2);
+ return sub_8061510(mapObject, sprite);
+}
+
+bool8 sub_806156C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8061508(sprite, 4);
+ return sub_8061510(mapObject, sprite);
+}
+
+bool8 sub_806158C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8061508(sprite, 8);
+ return sub_8061510(mapObject, sprite);
+}
+
+bool8 sub_80615AC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8061508(sprite, 16);
+ return sub_8061510(mapObject, sprite);
+}