X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fgame_sp%2FGlobals.c;h=0ca6500049f0c3cb1e07bed3428eea1ddd7a4cd9;hp=9ddbf2b0d3cc1787f9253ace9d4866a9e89f0602;hb=04a2a29c9811ca80be2123aaab0e56e569a6e3cc;hpb=61c3da024802ecc0268bab42d7499fc0346e4fd3 diff --git a/src/game_sp/Globals.c b/src/game_sp/Globals.c index 9ddbf2b0..0ca65000 100644 --- a/src/game_sp/Globals.c +++ b/src/game_sp/Globals.c @@ -5,6 +5,9 @@ #include "Globals.h" +static int *PlayField16Mem; +static byte *PlayField8Mem; + boolean LevelLoaded; boolean DemoAvailable; @@ -14,28 +17,13 @@ int FieldWidth; // standard size = 60 int FieldHeight; // standard size = 24 int HeaderSize; // standard size = 96 int FieldMax, LevelMax; -#if 0 -int 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 DisPlayField[SP_MAX_PLAYFIELD_SIZE + SP_HEADER_SIZE]; -#else -int *PlayField16; -byte *PlayField8; -byte *DisPlayField; -#endif int TimerVar; -#if 1 short RandomSeed; -#else -int RandomSeed; -#endif int FreezeZonks; @@ -166,7 +154,7 @@ boolean isSnappingSequence(int sequence) } } -void InitGlobals() +void InitGlobals(void) { InitPrecedingPlayfieldMemory(); @@ -181,28 +169,23 @@ 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); - DisPlayField = REDIM_1D(sizeof(byte), 0, FieldMax); - PlayField16 = REDIM_1D(sizeof(int), 0, FieldMax); - - AnimationPosTable = REDIM_1D(sizeof(int), 0, LevelMax); - AnimationSubTable = REDIM_1D(sizeof(byte), 0, LevelMax); - TerminalState = REDIM_1D(sizeof(byte), 0, FieldMax); -#endif + // add preceding playfield buffer (as large as preceding memory area) + PlayField16Mem = checked_calloc((game_sp.preceding_buffer_size + + SP_MAX_PLAYFIELD_SIZE + + SP_HEADER_SIZE) * sizeof(int)); + PlayField16 = &PlayField16Mem[game_sp.preceding_buffer_size]; + + // add preceding playfield buffer (as large as one playfield row) + PlayField8Mem = checked_calloc((SP_MAX_PLAYFIELD_WIDTH + + SP_MAX_PLAYFIELD_SIZE + + SP_HEADER_SIZE) * sizeof(byte)); + PlayField8 = &PlayField8Mem[SP_MAX_PLAYFIELD_WIDTH]; +} + +void FreeGlobals(void) +{ + checked_free(PlayField16Mem); + checked_free(PlayField8Mem); } int GetSI(int X, int Y) @@ -230,30 +213,16 @@ int GetStretchY(int si) return StretchWidth * (si / FieldWidth); } -void PrepareLevel() +void PrepareLevel(void) { copyInternalEngineVars_SP(); -#if 1 SetDisplayRegion(); SetScrollEdges(); -#endif LevelLoaded = True; } -#if 0 -void Trace(char *Source, char *Message) -{ - printf("::: Trace: Source == '%s', Message == '%s'\n", Source, Message); -} - -void ReportError(char *Source, char *Message) -{ - printf("::: ReportError: Source == '%s', Message == '%s'\n", Source, Message); -} -#endif - int Min(int A, int B) { return (A < B ? A : B);