diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-10 09:48:46 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-10 09:48:46 -0400 |
commit | faeef7d168212aeb99e6dc119c639b96f1f9e1c0 (patch) | |
tree | 288e4eaea9bf5c23f3237b0772eda2922ecf2caa | |
parent | 89023e84d6137fe425c8621f5ba914304f37ee7b (diff) |
sub_8127FD4
-rw-r--r-- | asm/field_effect_helpers.s | 30 | ||||
-rw-r--r-- | src/field_effect_helpers.c | 17 |
2 files changed, 14 insertions, 33 deletions
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s index 5095eb79c..f97345c05 100644 --- a/asm/field_effect_helpers.s +++ b/asm/field_effect_helpers.s @@ -6,36 +6,6 @@ .text - thumb_func_start sub_8127FD4 -sub_8127FD4: @ 8127FD4 - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - adds r4, r1, 0 - ldr r1, _08128008 @ =gUnknown_08401E54 - mov r0, sp - movs r2, 0x5 - bl memcpy - adds r0, r4, 0 - bl sub_8127F64 - lsls r0, 24 - cmp r0, 0 - bne _08128000 - ldrb r0, [r5, 0x18] - lsrs r0, 4 - add r0, sp - ldrb r1, [r0] - adds r0, r4, 0 - bl StartSpriteAnimIfDifferent -_08128000: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08128008: .4byte gUnknown_08401E54 - thumb_func_end sub_8127FD4 - thumb_func_start sub_812800C sub_812800C: @ 812800C push {r4-r7,lr} diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 474acf939..b764c9f57 100644 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -34,7 +34,7 @@ static void sub_8127DD0(struct Sprite *); static void sub_8127E30(struct Sprite *); /*static*/ void sub_812882C(struct Sprite *, u8, u8); static void sub_81278D8(struct Sprite *); -/*static*/ void sub_8127FD4(struct MapObject *, struct Sprite *); +static void sub_8127FD4(struct MapObject *, struct Sprite *); /*static*/ void sub_812800C(struct MapObject *, struct Sprite *); /*static*/ void sub_81280A0(struct MapObject *, struct Sprite *, struct Sprite *); @@ -120,7 +120,7 @@ s16 sub_81268D0(struct MapObject *mapObject) static void npc_pal_op(struct MapObject *mapObject, struct Sprite *sprite) { u8 whichElement; - u16 unk_8041e2c[3]; + u16 unk_8041e2c[ARRAY_COUNT(gUnknown_08401E2C)]; memcpy(unk_8041e2c, gUnknown_08401E2C, sizeof gUnknown_08401E2C); sprite->data2 = 0; @@ -1006,7 +1006,7 @@ void sub_8127F28(u8 spriteId, u8 value, s16 data1) return sprite->data0 & 0xF; } -/*static*/ u8 sub_8127F64(struct Sprite *sprite) +static u8 sub_8127F64(struct Sprite *sprite) { return (sprite->data0 & 0xF0) >> 4; } @@ -1028,3 +1028,14 @@ void sub_8127F7C(struct Sprite *sprite) sub_81280A0(mapObject, linkedSprite, sprite); sprite->oam.priority = linkedSprite->oam.priority; } + +static void sub_8127FD4(struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 unk_8041E54[ARRAY_COUNT(gUnknown_08401E54)]; + + memcpy(unk_8041E54, gUnknown_08401E54, sizeof gUnknown_08401E54); + if (sub_8127F64(sprite) == 0) + { + StartSpriteAnimIfDifferent(sprite, unk_8041E54[mapObject->placeholder18]); + } +} |