summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-09-10 11:29:02 -0400
committerscnorton <scnorton@biociphers.org>2017-09-10 11:29:02 -0400
commitdd3edfd0c259f0c6edf481b13b1280cd566bfd31 (patch)
tree413ded8fd7937929f3f5ad4acc631509f767b0eb
parent64dc157df603a6d3c1b59a60ad9f286ebd66fce5 (diff)
sub_8128174
-rw-r--r--asm/field_effect_helpers.s38
-rw-r--r--src/field_effect_helpers.c17
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;
+ }
+}