projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed bug with alpha blending when configuring game controllers
[rocksndiamonds.git]
/
src
/
game_sp
/
file.c
diff --git
a/src/game_sp/file.c
b/src/game_sp/file.c
index a38c80667cff3390b9426f37c07fd7d2771f9832..9fa3908a8dc8df1e50b6636a5a26e9b8a52ac467 100644
(file)
--- a/
src/game_sp/file.c
+++ b/
src/game_sp/file.c
@@
-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 */
native_sp_level.demo.data[i] = getFile8Bit(file);
if (native_sp_level.demo.data[i] == 0xff) /* "end of demo" byte */
- {
- i++;
-
break;
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);
}
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]);
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);
}
fclose(file);