X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.c;h=0e221548949504e1a3f65254638f08432cdd70aa;hb=b201bc433fb5ad1a9f0b7780ac6a73a3617f6dd6;hp=497f7e0b26741e90efd50e7b90996960a0804757;hpb=a1bc27d0855dc6fa72c4c361fc1671b2dcc6547b;p=rocksndiamonds.git diff --git a/src/libgame/system.c b/src/libgame/system.c index 497f7e0b..0e221548 100644 --- a/src/libgame/system.c +++ b/src/libgame/system.c @@ -40,8 +40,8 @@ struct ArtworkInfo artwork; struct JoystickInfo joystick; struct SetupInfo setup; -struct LevelDirInfo *leveldir_first = NULL; -struct LevelDirInfo *leveldir_current = NULL; +LevelDirTree *leveldir_first = NULL; +LevelDirTree *leveldir_current = NULL; int level_nr; Display *display = NULL; @@ -215,6 +215,7 @@ inline void CloseVideoDisplay(void) #if defined(TARGET_SDL) SDL_QuitSubSystem(SDL_INIT_VIDEO); #else + if (display) XCloseDisplay(display); #endif @@ -639,13 +640,16 @@ Bitmap *LoadImage(char *filename) Bitmap *LoadCustomImage(char *basename) { - char *filename = getStringCopy(getCustomImageFilename(basename)); + char *filename = getCustomImageFilename(basename); Bitmap *new_bitmap; + if (filename == NULL) + Error(ERR_EXIT, "LoadCustomImage(): cannot find file '%s'", basename); + if ((new_bitmap = LoadImage(filename)) == NULL) Error(ERR_EXIT, "LoadImage() failed: %s", GetError()); - new_bitmap->source_filename = filename; + new_bitmap->source_filename = getStringCopy(filename); return new_bitmap; }