diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-05-21 12:10:42 -0400 |
---|---|---|
committer | scnorton <scnorton@biociphers.org> | 2017-05-24 16:14:47 -0400 |
commit | ea609c2b3791c8bd23e3d8109093090c5d619e9d (patch) | |
tree | 2dd15fd17f9e1773903363271a5f75755d9ca576 | |
parent | 2501d0b6d391e2d424c238990be233c88502bb55 (diff) |
sub_805D230 and helpers
-rw-r--r-- | asm/field_map_obj.s | 93 | ||||
-rw-r--r-- | src/field_map_obj.c | 36 |
2 files changed, 36 insertions, 93 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s index bbd6a4c36..4cb35a56c 100644 --- a/asm/field_map_obj.s +++ b/asm/field_map_obj.s @@ -6,99 +6,6 @@ .text - thumb_func_start sub_805D230 -sub_805D230: @ 805D230 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - ldr r2, _0805D24C @ =gMapObjects - adds r0, r2 - ldr r2, _0805D250 @ =sub_805D254 - bl meta_step - pop {r0} - bx r0 - .align 2, 0 -_0805D24C: .4byte gMapObjects -_0805D250: .4byte sub_805D254 - thumb_func_end sub_805D230 - - thumb_func_start sub_805D254 -sub_805D254: @ 805D254 - push {r4,lr} - ldr r3, _0805D270 @ =gUnknown_083752C4 - movs r4, 0x30 - ldrsh r2, [r1, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0805D270: .4byte gUnknown_083752C4 - thumb_func_end sub_805D254 - - thumb_func_start sub_805D274 -sub_805D274: @ 805D274 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl npc_reset - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldObjectSetRegularAnim - movs r0, 0x1 - strh r0, [r5, 0x30] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_805D274 - - thumb_func_start sub_805D2A0 -sub_805D2A0: @ 805D2A0 - push {r4,lr} - adds r4, r1, 0 - bl FieldObjectExecRegularAnim - lsls r0, 24 - cmp r0, 0 - bne _0805D2B2 - movs r0, 0 - b _0805D2B8 -_0805D2B2: - movs r0, 0x2 - strh r0, [r4, 0x30] - movs r0, 0x1 -_0805D2B8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_805D2A0 - - thumb_func_start sub_805D2C0 -sub_805D2C0: @ 805D2C0 - ldrb r2, [r0] - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - movs r0, 0 - bx lr - thumb_func_end sub_805D2C0 - thumb_func_start FieldObjectCB_BerryTree FieldObjectCB_BerryTree: @ 805D2D0 push {r4,r5,lr} diff --git a/src/field_map_obj.c b/src/field_map_obj.c index 4de55e0af..c31db8a4b 100644 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -38,6 +38,7 @@ extern u8 (*const gUnknown_08375244[])(s16 a0, s16 a1, s16 a2, s16 a3); extern u8 (*const gUnknown_08375270[])(struct MapObject *mapObject, struct Sprite *sprite); extern u8 (*const gUnknown_08375284[])(struct MapObject *mapObject, struct Sprite *sprite); extern u8 (*const gUnknown_083752A4[])(struct MapObject *mapObject, struct Sprite *sprite); +extern u8 (*const gUnknown_083752C4[])(struct MapObject *mapObject, struct Sprite *sprite); struct PairedPalettes { @@ -2076,3 +2077,38 @@ u8 sub_805D208(struct MapObject *mapObject, struct Sprite *sprite) return 0; } +u8 sub_805D254(struct MapObject *mapObject, struct Sprite *sprite); + +void sub_805D230(struct Sprite *sprite) +{ + meta_step(&gMapObjects[sprite->data0], sprite, sub_805D254); +} + +u8 sub_805D254(struct MapObject *mapObject, struct Sprite *sprite) +{ + return gUnknown_083752C4[sprite->data1](mapObject, sprite); +} + +u8 sub_805D274(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 1; + return 1; +} + +u8 sub_805D2A0(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite) != 0) + { + sprite->data1 = 2; + return 1; + } + return 0; +} + +u8 sub_805D2C0(struct MapObject *mapObject, struct Sprite *sprite) +{ + mapObject->mapobj_bit_1 = 0; + return 0; +} |