diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-09 19:54:34 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-09 19:54:34 -0400 |
commit | 261efc84820de61132aeaaff8901f412f0572d62 (patch) | |
tree | 1ac6ee46996e44367b6020d23a4da500c7b20d66 | |
parent | 61d38ca54027b9d5d69216beadcd8644a9818c1f (diff) |
FldEff_SandFootprints
-rw-r--r-- | asm/field_effect_helpers.s | 57 | ||||
-rw-r--r-- | src/field_effect_helpers.c | 18 |
2 files changed, 18 insertions, 57 deletions
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s index e90d6e8bb..20fafd213 100644 --- a/asm/field_effect_helpers.s +++ b/asm/field_effect_helpers.s @@ -6,63 +6,6 @@ .text - thumb_func_start FldEff_SandFootprints -FldEff_SandFootprints: @ 8127428 - push {r4,lr} - ldr r4, _08127490 @ =gFieldEffectSpawnParams - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8060470 - ldr r0, _08127494 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x2C] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _08127486 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08127498 @ =gSprites - adds r0, r1 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - movs r1, 0x3 - ldrb r2, [r4, 0xC] - ands r2, r1 - lsls r2, 2 - ldrb r3, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, 0x5] - movs r1, 0xD - strh r1, [r0, 0x3C] - ldrb r1, [r4, 0x10] - bl StartSpriteAnim -_08127486: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08127490: .4byte gFieldEffectSpawnParams -_08127494: .4byte gFieldEffectObjectTemplatePointers -_08127498: .4byte gSprites - thumb_func_end FldEff_SandFootprints - thumb_func_start FldEff_DeepSandFootprints FldEff_DeepSandFootprints: @ 812749C push {r4,r5,lr} diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 5fcaf7caf..d9055f262 100644 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -541,3 +541,21 @@ void sub_8127334(struct Sprite *sprite) sub_806487C(sprite, linkedSprite->invisible); } } + +bool8 FldEff_SandFootprints(void) +{ + u8 spriteId; + struct Sprite *sprite; + + sub_8060470((s16 *)&gFieldEffectSpawnParams[0], (s16 *)&gFieldEffectSpawnParams[1], 8, 8); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[11], gFieldEffectSpawnParams[0], gFieldEffectSpawnParams[1], gFieldEffectSpawnParams[2]); + if (spriteId != MAX_SPRITES) + { + sprite = &gSprites[spriteId]; + sprite->coordOffsetEnabled = TRUE; + sprite->oam.priority = gFieldEffectSpawnParams[3]; + sprite->data7 = 13; + StartSpriteAnim(sprite, gFieldEffectSpawnParams[4]); + } + return FALSE; +} |