rnd-20050117-1-src
[rocksndiamonds.git] / src / files.c
index f1c17f8e63af7eee082ea04cdbb067d6cc5af975..2ff37bc51a81ab51708c025a1dfd4c23eaa412b7 100644 (file)
@@ -2104,7 +2104,7 @@ void CopyNativeLevel_EM_to_RND(struct LevelInfo *level)
   level->field[ply2->x_initial - 1][ply2->y_initial - 1] = EL_PLAYER_2;
   level->field[ply1->x_initial - 1][ply1->y_initial - 1] = EL_PLAYER_1;
 
-#if 1
+#if 0
   printf("::: native Emerald Mine file version: %d\n", level_em->file_version);
 #endif
 }
@@ -2501,10 +2501,17 @@ void LoadLevelFromFileInfo(struct LevelInfo *level,
       break;
   }
 
+  /* if level file is invalid, restore level structure to default values */
+  if (level->no_valid_file)
+    setLevelInfoToDefaults(level);
+
   if (level->game_engine_type == GAME_ENGINE_TYPE_UNKNOWN)
     level->game_engine_type = GAME_ENGINE_TYPE_RND;
 
-  CopyNativeLevel_Native_to_RND(level);
+  if (level_file_info->type == LEVEL_FILE_TYPE_RND)
+    CopyNativeLevel_RND_to_Native(level);
+  else
+    CopyNativeLevel_Native_to_RND(level);
 }
 
 void LoadLevelFromFilename(struct LevelInfo *level, char *filename)