diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-10 09:30:36 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-10 09:30:36 -0400 |
commit | ef751c02b70f1f81adc69775ba76efaa2374b92a (patch) | |
tree | 3d3550425b6ac87e69ed247b1efe9fe1d8e599a6 | |
parent | ceea25425899494415d0dbac2bb5c9358db48683 (diff) |
FldEff_SurfBlob
-rw-r--r-- | asm/field_effect_helpers.s | 59 | ||||
-rw-r--r-- | src/field_effect_helpers.c | 21 |
2 files changed, 21 insertions, 59 deletions
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s index db7893537..b6b033461 100644 --- a/asm/field_effect_helpers.s +++ b/asm/field_effect_helpers.s @@ -6,65 +6,6 @@ .text - thumb_func_start FldEff_SurfBlob -FldEff_SurfBlob: @ 8127E58 - push {r4,r5,lr} - ldr r4, _08127EC0 @ =gFieldEffectSpawnParams - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8060470 - ldr r0, _08127EC4 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x1C] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - movs r3, 0x96 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - cmp r0, 0x40 - beq _08127EB2 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08127EC8 @ =gSprites - adds r1, r0 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r3] - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - strb r0, [r1, 0x5] - ldr r0, [r4, 0x8] - strh r0, [r1, 0x32] - ldr r0, _08127ECC @ =0x0000ffff - strh r0, [r1, 0x34] - movs r0, 0x1 - negs r0, r0 - strh r0, [r1, 0x3A] - strh r0, [r1, 0x3C] -_08127EB2: - movs r0, 0x8 - bl FieldEffectActiveListRemove - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08127EC0: .4byte gFieldEffectSpawnParams -_08127EC4: .4byte gFieldEffectObjectTemplatePointers -_08127EC8: .4byte gSprites -_08127ECC: .4byte 0x0000ffff - thumb_func_end FldEff_SurfBlob - thumb_func_start sub_8127ED0 sub_8127ED0: @ 8127ED0 lsls r0, 24 diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 0e8b6e8d3..29d474fb5 100644 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -960,3 +960,24 @@ static void sub_8127E30(struct Sprite *sprite) FieldEffectStop(sprite, FLDEFF_ASH); } } + +u8 FldEff_SurfBlob(void) +{ + u8 spriteId; + struct Sprite *sprite; + + sub_8060470((s16 *)&gFieldEffectSpawnParams[0], (s16 *)&gFieldEffectSpawnParams[1], 8, 8); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[7], gFieldEffectSpawnParams[0], gFieldEffectSpawnParams[1], 0x96); + if (spriteId !=MAX_SPRITES) + { + sprite = &gSprites[spriteId]; + sprite->coordOffsetEnabled = TRUE; + sprite->oam.paletteNum = 0; + sprite->data2 = gFieldEffectSpawnParams[2]; + sprite->data3 = -1; + sprite->data6 = -1; + sprite->data7 = -1; + } + FieldEffectActiveListRemove(FLDEFF_SURF_BLOB); + return spriteId; +} |