fixed bug causing crash when trying to draw undefined optional graphics
authorHolger Schemel <info@artsoft.org>
Wed, 13 Jun 2018 19:21:49 +0000 (21:21 +0200)
committerHolger Schemel <info@artsoft.org>
Wed, 13 Jun 2018 19:30:54 +0000 (21:30 +0200)
Before, the program crashed (segmentation fault) if optional graphics
(like "menu.button_level_number", which are defined to be off-screen
by default) are defined to a valid screen position (by setting the
corresponding screen position values like "main.button.level_number.x/y"
to positions on the screen), but no image was defined to be used for
that graphic.

This bug was fixed by using fallback graphics when attempting to draw
those undefined optional graphics.

src/tools.c

index 76b40a291272a7c899ca1fba7c003f69ccfcf72b..6d3a0aeb00f5866603f28f4a720b0b05bd17d3b5 100644 (file)
@@ -1574,6 +1574,10 @@ void getSizedGraphicSourceExt(int graphic, int frame, int tilesize,
 {
   struct GraphicInfo *g = &graphic_info[graphic];
 
+  // if no graphics defined at all, use fallback graphics
+  if (g->bitmaps == NULL)
+    *g = graphic_info[IMG_CHAR_EXCLAM];
+
   // if no in-game graphics defined, always use standard graphic size
   if (g->bitmaps[IMG_BITMAP_GAME] == NULL)
     tilesize = TILESIZE;