added some safety checks
authorHolger Schemel <info@artsoft.org>
Tue, 30 Apr 2024 20:32:43 +0000 (22:32 +0200)
committerHolger Schemel <info@artsoft.org>
Tue, 30 Apr 2024 20:32:48 +0000 (22:32 +0200)
src/game_bd/bd_caveset.c
src/tools.c

index d83a1b97780a28b9c2eb7854e00a9f7ff4c81931..0ee9c3b82d9ee59208d0bd0b0d2c2bc8f2f6ee25 100644 (file)
@@ -87,7 +87,8 @@ GdCavesetData *gd_caveset_data_new(void)
 
   gd_struct_set_defaults_from_array(data, gd_caveset_properties, caveset_defaults);
 
-  data->levelset_subdir = getStringCopy(leveldir_current->subdir);
+  if (leveldir_current != NULL)
+    data->levelset_subdir = getStringCopy(leveldir_current->subdir);
 
   return data;
 }
@@ -129,7 +130,9 @@ void gd_caveset_clear(void)
   // always newly create this
   // create pseudo cave containing default values
   gd_caveset_data = gd_caveset_data_new();
-  gd_strcpy(gd_caveset_data->name, leveldir_current->name);
+
+  if (leveldir_current != NULL)
+    gd_strcpy(gd_caveset_data->name, leveldir_current->name);
 }
 
 // return number of caves currently in memory.
index 954e7a63c83ed8adb95db77cbb2d981e77d4ba32..a4cabfdaddd20b15192ed0c13287a84ec14ea1ff 100644 (file)
@@ -10710,6 +10710,9 @@ void InitGraphicInfo_BD(void)
 {
   int i, j;
 
+  if (graphic_info == NULL)            // still at startup phase
+    return;
+
   // always start with reliable default values
   for (i = 0; i < O_MAX_ALL; i++)
   {