diff options
author | scnorton <scnorton@biociphers.org> | 2017-09-06 18:12:44 -0400 |
---|---|---|
committer | scnorton <scnorton@biociphers.org> | 2017-09-06 18:12:44 -0400 |
commit | 398186d7c42b009218ff1fea17f7b474e1c6389e (patch) | |
tree | 6bf1c581c4609a4e6afb1f025afe36240128214e /src | |
parent | 942400ddbf15ca8ac9d56279e971dd6f4e1c800d (diff) |
RemoveFieldObjectInternal
Diffstat (limited to 'src')
-rw-r--r-- | src/field_map_obj.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/field_map_obj.c b/src/field_map_obj.c index 7420895ab..52f798f9b 100644 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -21,6 +21,8 @@ static u8 GetFieldObjectIdByLocalIdAndMapInternal(u8, u8, u8); static bool8 GetAvailableFieldObjectSlot(u16, u8, u8, u8 *); /*static*/ void FieldObjectHandleDynamicGraphicsId(struct MapObject *); /*static*/ void RemoveFieldObjectInternal (struct MapObject *); +/*static*/ u16 GetFieldObjectFlagIdByFieldObjectId(u8); +/*static*/ struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8); // ROM data @@ -422,3 +424,21 @@ void RemoveFieldObject(struct MapObject *mapObject) mapObject->active = FALSE; RemoveFieldObjectInternal(mapObject); } + +void RemoveFieldObjectByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup) +{ + u8 index; + if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &index)) + { + FlagSet(GetFieldObjectFlagIdByFieldObjectId(index)); + RemoveFieldObject(&gMapObjects[index]); + } +} + +void RemoveFieldObjectInternal(struct MapObject *mapObject) +{ + struct SpriteFrameImage image; + image.size = GetFieldObjectGraphicsInfo(mapObject->graphicsId)->size; + gSprites[mapObject->spriteId].images = ℑ + DestroySprite(&gSprites[mapObject->spriteId]); +} |