summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-09-10 11:36:40 -0400
committerscnorton <scnorton@biociphers.org>2017-09-10 11:36:56 -0400
commit25c274e171b6bd9d2de2d1b457329619517e7749 (patch)
tree2b9bd0e12b5846a34207b62e8d4c7cbf2be67a0a /src
parent14c3e4c2cc30d940584c5cf3de976639317ef0fe (diff)
FldEff_SandPile
Diffstat (limited to 'src')
-rw-r--r--src/field_effect_helpers.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c
index 3f372b4ee..3cb89a7dc 100644
--- a/src/field_effect_helpers.c
+++ b/src/field_effect_helpers.c
@@ -1225,3 +1225,31 @@ u8 FldEff_Dust(void)
}
return 0;
}
+
+u8 FldEff_SandPile(void)
+{
+ u8 mapObjectId;
+ struct MapObject *mapObject;
+ u8 spriteId;
+ struct Sprite *sprite;
+ const struct MapObjectGraphicsInfo *graphicsInfo;
+
+ mapObjectId = GetFieldObjectIdByLocalIdAndMap(gFieldEffectSpawnParams[0], gFieldEffectSpawnParams[1], gFieldEffectSpawnParams[2]);
+ mapObject = &gMapObjects[mapObjectId];
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[29], 0, 0, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ graphicsInfo = GetFieldObjectGraphicsInfo(mapObject->graphicsId);
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gSprites[mapObject->spriteId].oam.priority;
+ sprite->data0 = gFieldEffectSpawnParams[0];
+ sprite->data1 = gFieldEffectSpawnParams[1];
+ sprite->data2 = gFieldEffectSpawnParams[2];
+ sprite->data3 = gSprites[mapObject->spriteId].pos1.x;
+ sprite->data4 = gSprites[mapObject->spriteId].pos1.y;
+ sprite->pos2.y = (graphicsInfo->height >> 1) - 2;
+ SeekSpriteAnim(sprite, 2);
+ }
+ return 0;
+}