diff options
author | scnorton <scnorton@biociphers.org> | 2017-05-24 17:26:58 -0400 |
---|---|---|
committer | scnorton <scnorton@biociphers.org> | 2017-05-24 17:26:58 -0400 |
commit | 82ad1f63c4b0516e2c8e0975c8bfd750480b9e3d (patch) | |
tree | a9d6dfb4751093eba859384539b4edbabd7bcca9 | |
parent | 0cb48e9bb08b4efd157748d7e2446c12450b9b46 (diff) |
FMO under 6k lines
-rw-r--r-- | asm/field_map_obj.s | 265 | ||||
-rwxr-xr-x | src/field_map_obj.c | 101 |
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); +} |