fixed name of element 'beamer' to 'teleporter'
[rocksndiamonds.git] / src / game_sp / file.c
index a38c80667cff3390b9426f37c07fd7d2771f9832..9fa3908a8dc8df1e50b6636a5a26e9b8a52ac467 100644 (file)
@@ -254,13 +254,13 @@ static void LoadNativeLevelFromFileStream_SP(File *file, int width, int height,
       native_sp_level.demo.data[i] = getFile8Bit(file);
 
       if (native_sp_level.demo.data[i] == 0xff)        /* "end of demo" byte */
-      {
-       i++;
-
        break;
-      }
     }
 
+    if (i >= SP_MAX_TAPE_LEN)
+      Error(ERR_WARN, "SP demo truncated: size exceeds maximum SP demo size %d",
+           SP_MAX_TAPE_LEN);
+
     native_sp_level.demo.length = i;
     native_sp_level.demo.is_available = (native_sp_level.demo.length > 0);
   }
@@ -574,6 +574,8 @@ void SaveNativeLevel_SP(char *filename)
 
     for (i = 0; i < native_sp_level.demo.length; i++)
       putFile8Bit(file, native_sp_level.demo.data[i]);
+
+    putFile8Bit(file, 0xff);   /* "end of demo" byte */
   }
 
   fclose(file);