X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fimage.c;h=699093b7b7ebb718e6a6d74144ba3c5b81caada8;hp=2275bc73544b657313149d1cc9652c4a40484b0f;hb=0d214d4e314f6f42df24be140bb433e980319767;hpb=d77d7ac6d22b63ff3e10608e54c7ac919915fae9 diff --git a/src/libgame/image.c b/src/libgame/image.c index 2275bc73..699093b7 100644 --- a/src/libgame/image.c +++ b/src/libgame/image.c @@ -140,6 +140,13 @@ char *getTokenFromImageID(int graphic) return (file_list != NULL ? file_list->token : NULL); } +char *getFilenameFromImageID(int graphic) +{ + struct FileInfo *file_list = getImageListEntryFromImageID(graphic); + + return (file_list != NULL ? file_list->filename : NULL); +} + int getImageIDFromToken(char *token) { struct FileInfo *file_list = image_info->file_list; @@ -363,6 +370,27 @@ void CreateImageTextures(int pos) img_info->contains_textures = TRUE; } +void FreeImageTextures(int pos) +{ + ImageInfo *img_info = getImageInfoEntryFromImageID(pos); + + if (img_info == NULL || !img_info->contains_textures) + return; + + FreeBitmapTextures(img_info->bitmaps); + + img_info->contains_textures = FALSE; +} + +void FreeAllImageTextures() +{ + int num_images = getImageListSize(); + int i; + + for (i = 0; i < num_images; i++) + FreeImageTextures(i); +} + void ScaleImage(int pos, int zoom_factor) { ImageInfo *img_info = getImageInfoEntryFromImageID(pos);