rnd-20100111-2-src
authorHolger Schemel <info@artsoft.org>
Mon, 11 Jan 2010 00:38:53 +0000 (01:38 +0100)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:58:19 +0000 (10:58 +0200)
ChangeLog
Makefile
src/conftime.h
src/files.c

index 0ba172672e4fa94dd1eb000657799b5e6b17031c..c4ffb8114a6743728548102aa89c6be35f631d36 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,10 +1,11 @@
 2010-01-10
-       * added new element "from_level_template" that is replaced by element
+       * added new element "from_level_template" which is replaced by element
          from level template at same playfield position when loaded (currently
          not accessible from level editor, but only used for special Sokoban
          level conversion when using "special_flags: load_xsb_to_ces")
        * added special behaviour for "special_flags: load_xsb_to_ces": global
          settings of individual level files are overwritten by template level
+         (except playfield size, level name, level author and template flag)
 
 2010-01-07
        * added handling of gravity ports when converting Supaplex style R'n'D
index a7222e6a6bc696dded7496536253c7699a8f5413..c157ab6468e7e118c368e0f220559696df01f26c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -150,6 +150,10 @@ backup_gfx:
 # prerelease:
 #      ./Scripts/make_prerelease.sh
 
+jue:
+       sed -e 's/# SPECIAL_EDITION/SPECIAL_EDITION/' Makefile > Makefile.jue
+       $(MAKE) -f Makefile.jue cross-win32
+
 dist-clean:
        @$(MAKE_CMD) dist-clean
 
index 77c9dec9ab4e34c313603b4203003aa22614c80f..ddc93aa31e87152791bcb37a66ad0718f3254e1c 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "2010-01-11 00:22"
+#define COMPILE_DATE_STRING "2010-01-11 01:33"
index 792d2cddbea28f7bd033fa67061f8d520e26a10a..ab949e18883acad59ac2db75d7f8d8e2e0665952 100644 (file)
@@ -1785,20 +1785,26 @@ static void ActivateLevelTemplate()
 
   if (check_special_flags("load_xsb_to_ces"))
   {
-    short FieldBackup[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+    struct LevelInfo level_backup = level;
 
-    /* backup playfield from individual level */
-    for (x = 0; x < level.fieldx; x++)
-      for (y = 0; y < level.fieldy; y++)
-       FieldBackup[x][y] = level.field[x][y];
-
-    /* set all individual level settings to template level settings */
+    /* overwrite all individual level settings from template level settings */
     level = level_template;
 
-    /* restore playfield from individual level */
+    /* restore playfield size */
+    level.fieldx = level_backup.fieldx;
+    level.fieldy = level_backup.fieldy;
+
+    /* restore playfield content */
     for (x = 0; x < level.fieldx; x++)
       for (y = 0; y < level.fieldy; y++)
-       level.field[x][y] = FieldBackup[x][y];
+       level.field[x][y] = level_backup.field[x][y];
+
+    /* restore name and author from individual level */
+    strcpy(level.name,   level_backup.name);
+    strcpy(level.author, level_backup.author);
+
+    /* restore flag "use_custom_template" */
+    level.use_custom_template = level_backup.use_custom_template;
   }
 }