rnd-19990214-2
authorHolger Schemel <info@artsoft.org>
Sun, 14 Feb 1999 02:09:02 +0000 (03:09 +0100)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:33:38 +0000 (10:33 +0200)
src/files.c
src/game.c
src/main.h

index 71d01e945fd9f35c3d38ee7736d2e38e2f1d44a0..2ef526ddc5a4c943ebe62e668f83c08ce43c3ec6 100644 (file)
@@ -26,7 +26,7 @@
 #define MAX_LINE_LEN           1000    /* maximal input line length */
 #define CHUNK_ID_LEN           4       /* IFF style chunk id length */
 #define LEVEL_HEADER_SIZE      80      /* size of level file header */
-#define LEVEL_HEADER_UNUSED    17      /* unused level header bytes */
+#define LEVEL_HEADER_UNUSED    16      /* unused level header bytes */
 #define TAPE_HEADER_SIZE       20      /* size of tape file header */
 #define TAPE_HEADER_UNUSED     7       /* unused tape header bytes */
 #define FILE_VERSION_1_0       10      /* old 1.0 file version */
@@ -314,6 +314,7 @@ static void setLevelInfoToDefaults()
   level.dauer_ablenk = 10;
   level.amoebe_inhalt = EL_DIAMANT;
   level.double_speed = FALSE;
+  level.gravity = FALSE;
 
   for(i=0; i<MAX_LEVEL_NAME_LEN; i++)
     level.name[i] = '\0';
@@ -447,6 +448,7 @@ void LoadLevel(int level_nr)
   level.dauer_ablenk   = fgetc(file);
   level.amoebe_inhalt  = fgetc(file);
   level.double_speed   = (fgetc(file) == 1 ? TRUE : FALSE);
+  level.gravity                = (fgetc(file) == 1 ? TRUE : FALSE);
 
   for(i=0; i<LEVEL_HEADER_UNUSED; i++) /* skip unused header bytes */
     fgetc(file);
@@ -550,6 +552,7 @@ void SaveLevel(int level_nr)
   fputc(level.dauer_ablenk, file);
   fputc(level.amoebe_inhalt, file);
   fputc((level.double_speed ? 1 : 0), file);
+  fputc((level.gravity ? 1 : 0), file);
 
   for(i=0; i<LEVEL_HEADER_UNUSED; i++) /* set unused header bytes to zero */
     fputc(0, file);
index e70afad3b73a8ce6cdd64c2721c366cb664cf6c9..ea493de1b25dfc3c5044cd775e500fd8fda2da15 100644 (file)
@@ -4132,6 +4132,16 @@ void ScrollFigure(struct PlayerInfo *player, int mode)
   if (Feld[last_jx][last_jy] == EL_PLAYER_IS_LEAVING)
     Feld[last_jx][last_jy] = EL_LEERRAUM;
 
+
+  /*
+  if (!player->MovPos && level.gravity)
+  {
+    if (player->action == MV_NO_MOVING)
+      player->programmed_action = MV_DOWN;
+  }
+  */
+
+
   DrawPlayer(player);
 
   if (!player->MovPos)
index ec429bfbffdc15bd954b50b79b1aa09aec8ac4ee..10e7161a46778b56d245c85ee7741044413ae189 100644 (file)
@@ -357,6 +357,7 @@ struct LevelInfo
   int dauer_ablenk;
   int amoebe_inhalt;
   boolean double_speed;
+  boolean gravity;
 };
 
 struct LevelDirInfo