projects
/
rocksndiamonds.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
76334a7
)
added saving incorrect solution tape to temporary file before uploading
author
Holger Schemel
<info@artsoft.org>
Sun, 12 Sep 2021 22:56:26 +0000
(
00:56
+0200)
committer
Holger Schemel
<info@artsoft.org>
Sun, 12 Sep 2021 22:56:26 +0000
(
00:56
+0200)
src/tape.c
patch
|
blob
|
history
diff --git
a/src/tape.c
b/src/tape.c
index e7a87852f7fa15411d40631513cfeb60f99c4666..a22fc9a54741013239ad7c63bf3a487c14237440 100644
(file)
--- a/
src/tape.c
+++ b/
src/tape.c
@@
-1529,6
+1529,7
@@
static int AutoPlayTapesExt(boolean initialize)
// save score tape to upload to server; may be required for some reasons:
// * level set identifier in solution tapes may differ from level set
// save score tape to upload to server; may be required for some reasons:
// * level set identifier in solution tapes may differ from level set
+ // * level set identifier is missing (old-style tape without INFO chunk)
// * solution tape may have native format (like Supaplex solution files)
SaveScoreTape(level_nr);
// * solution tape may have native format (like Supaplex solution files)
SaveScoreTape(level_nr);
@@
-1789,9
+1790,21
@@
static int AutoPlayTapesExt(boolean initialize)
autoplay.tape_filename = (options.mytapes ? getTapeFilename(level_nr) :
getDefaultSolutionTapeFilename(level_nr));
autoplay.tape_filename = (options.mytapes ? getTapeFilename(level_nr) :
getDefaultSolutionTapeFilename(level_nr));
- if (!fileExists(autoplay.tape_filename))
+ boolean correct_info_chunk =
+ (strEqual(leveldir_current->identifier, tape.level_identifier) &&
+ level_nr == tape.level_nr);
+
+ if (!correct_info_chunk)
+ {
+ strncpy(tape.level_identifier, leveldir_current->identifier,
+ MAX_FILENAME_LEN);
+ tape.level_identifier[MAX_FILENAME_LEN] = '\0';
+ tape.level_nr = level_nr;
+ }
+
+ if (!fileExists(autoplay.tape_filename) || !correct_info_chunk)
{
{
- // non-standard solution tape -- save to temporary file
+ // non-standard
or incorrect
solution tape -- save to temporary file
autoplay.tape_filename = getTemporaryTapeFilename();
SaveTapeToFilename(autoplay.tape_filename);
autoplay.tape_filename = getTemporaryTapeFilename();
SaveTapeToFilename(autoplay.tape_filename);