summaryrefslogtreecommitdiff
path: root/src/field_effect_helpers.c
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-09-10 11:42:24 -0400
committerscnorton <scnorton@biociphers.org>2017-09-10 11:42:24 -0400
commit477be592a40837c532723be07a5d792e5a6ad703 (patch)
treec0baede8560cdb2a38082b6eae56fa66fb176e7e /src/field_effect_helpers.c
parent25c274e171b6bd9d2de2d1b457329619517e7749 (diff)
sub_81282E0
Diffstat (limited to 'src/field_effect_helpers.c')
-rw-r--r--src/field_effect_helpers.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c
index 3cb89a7dc..367d08cc0 100644
--- a/src/field_effect_helpers.c
+++ b/src/field_effect_helpers.c
@@ -1253,3 +1253,33 @@ u8 FldEff_SandPile(void)
}
return 0;
}
+
+void sub_81282E0(struct Sprite *sprite)
+{
+ u8 mapObjectId;
+ s16 x;
+ s16 y;
+
+ if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data0, sprite->data1, sprite->data2, &mapObjectId) || !gMapObjects[mapObjectId].mapobj_bit_20)
+ {
+ FieldEffectStop(sprite, FLDEFF_SAND_PILE);
+ }
+ else
+ {
+ y = gSprites[gMapObjects[mapObjectId].spriteId].pos1.y;
+ x = gSprites[gMapObjects[mapObjectId].spriteId].pos1.x;
+ if (x != sprite->data3 || y != sprite->data4)
+ {
+ sprite->data3 = x;
+ sprite->data4 = y;
+ if (sprite->animEnded)
+ {
+ StartSpriteAnim(sprite, 0);
+ }
+ }
+ sprite->pos1.x = x;
+ sprite->pos1.y = y;
+ sprite->subpriority = gSprites[gMapObjects[mapObjectId].spriteId].subpriority;
+ sub_806487C(sprite, FALSE);
+ }
+}