diff options
author | scnorton <scnorton@biociphers.org> | 2017-09-10 11:29:02 -0400 |
---|---|---|
committer | scnorton <scnorton@biociphers.org> | 2017-09-10 11:29:02 -0400 |
commit | dd3edfd0c259f0c6edf481b13b1280cd566bfd31 (patch) | |
tree | 413ded8fd7937929f3f5ad4acc631509f767b0eb | |
parent | 64dc157df603a6d3c1b59a60ad9f286ebd66fce5 (diff) |
sub_8128174
-rw-r--r-- | asm/field_effect_helpers.s | 38 | ||||
-rw-r--r-- | src/field_effect_helpers.c | 17 |
2 files changed, 16 insertions, 39 deletions
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s index 337eaa4c8..f6834e04a 100644 --- a/asm/field_effect_helpers.s +++ b/asm/field_effect_helpers.s @@ -6,44 +6,6 @@ .text - thumb_func_start sub_8128174 -sub_8128174: @ 8128174 - push {lr} - adds r2, r0, 0 - movs r0, 0x2E - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081281B0 @ =gSprites - adds r3, r0, r1 - ldrh r1, [r2, 0x32] - adds r0, r1, 0x1 - strh r0, [r2, 0x32] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0812819C - ldrh r0, [r2, 0x30] - ldrh r1, [r3, 0x26] - adds r0, r1 - strh r0, [r3, 0x26] -_0812819C: - ldrh r1, [r2, 0x32] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _081281AC - ldrh r0, [r2, 0x30] - negs r0, r0 - strh r0, [r2, 0x30] -_081281AC: - pop {r0} - bx r0 - .align 2, 0 -_081281B0: .4byte gSprites - thumb_func_end sub_8128174 - thumb_func_start FldEff_Dust FldEff_Dust: @ 81281B4 push {r4,lr} diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index e58fb9b31..95d7ff0b1 100644 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -37,7 +37,7 @@ static void sub_81278D8(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 *); -/*static*/ void sub_8128174(struct Sprite *); +static void sub_8128174(struct Sprite *); // .rodata @@ -1192,3 +1192,18 @@ u8 sub_8128124(u8 oldSpriteId) sprite->data1 = 1; return spriteId; } + +static void sub_8128174(struct Sprite *sprite) +{ + struct Sprite *oldSprite; + + oldSprite = &gSprites[sprite->data0]; + if (((sprite->data2++) & 0x03) == 0) + { + oldSprite->pos2.y += sprite->data1; + } + if ((sprite->data2 & 0x0F) == 0) + { + sprite->data1 = -sprite->data1; + } +} |