summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-09-10 09:48:46 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-09-10 09:48:46 -0400
commitfaeef7d168212aeb99e6dc119c639b96f1f9e1c0 (patch)
tree288e4eaea9bf5c23f3237b0772eda2922ecf2caa
parent89023e84d6137fe425c8621f5ba914304f37ee7b (diff)
sub_8127FD4
-rw-r--r--asm/field_effect_helpers.s30
-rw-r--r--src/field_effect_helpers.c17
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]);
+ }
+}