rnd-20100624-2-src
[rocksndiamonds.git] / src / game_sp / Globals.c
index 91c715172ee6c8c5981e8b4d5b5149b36ca07031..35bf4d8a9b26385384ec9d95ad628e64e5714300 100644 (file)
@@ -14,12 +14,15 @@ int FieldWidth;             // standard size = 60
 int FieldHeight;       // standard size = 24
 int HeaderSize;                // standard size = 96
 int FieldMax, LevelMax;
+#if 0
 long FileMax;
+#endif
 
 #if 1
 int *PlayField16;
+byte *PlayField8;
 // int PlayField16[SP_MAX_PLAYFIELD_SIZE + SP_HEADER_SIZE];
-byte PlayField8[SP_MAX_PLAYFIELD_SIZE + SP_HEADER_SIZE];
+// byte PlayField8[SP_MAX_PLAYFIELD_SIZE + SP_HEADER_SIZE];
 byte DisPlayField[SP_MAX_PLAYFIELD_SIZE + SP_HEADER_SIZE];
 #else
 int *PlayField16;
@@ -178,11 +181,18 @@ void InitGlobals()
   bPlaying = False;
   menBorder = False;
 
+  /* add preceding playfield buffer (as large as preceding memory area) */
   PlayField16 = checked_calloc((game_sp.preceding_buffer_size +
                                SP_MAX_PLAYFIELD_SIZE +
                                SP_HEADER_SIZE) * sizeof(int));
   PlayField16 = &PlayField16[game_sp.preceding_buffer_size];
 
+  /* add preceding playfield buffer (as large as one playfield row) */
+  PlayField8 = checked_calloc((SP_MAX_PLAYFIELD_WIDTH +
+                              SP_MAX_PLAYFIELD_SIZE +
+                              SP_HEADER_SIZE) * sizeof(byte));
+  PlayField8 = &PlayField8[SP_MAX_PLAYFIELD_WIDTH];
+
 #if 0
   /* these defaults will be changed after reading a Supaplex level file */
   PlayField8 = REDIM_1D(sizeof(byte), 0, FieldMax);