X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_sp%2FGlobals.c;h=35bf4d8a9b26385384ec9d95ad628e64e5714300;hb=c60227514289cd7d512539785bb2fe47d30db51a;hp=e34d19624341f42236c2ee46c5c67343ca8d900b;hpb=e51177796149f37de339bda83558c3c49758be93;p=rocksndiamonds.git diff --git a/src/game_sp/Globals.c b/src/game_sp/Globals.c index e34d1962..35bf4d8a 100644 --- a/src/game_sp/Globals.c +++ b/src/game_sp/Globals.c @@ -14,11 +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[SP_MAX_PLAYFIELD_SIZE + SP_HEADER_SIZE]; -byte PlayField8[SP_MAX_PLAYFIELD_SIZE + SP_HEADER_SIZE]; +int *PlayField16; +byte *PlayField8; +// int PlayField16[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; @@ -164,6 +168,8 @@ boolean isSnappingSequence(int sequence) void InitGlobals() { + InitPrecedingPlayfieldMemory(); + AutoScrollFlag = True; FreezeZonks = 0; LevelLoaded = False; @@ -175,6 +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);