fixed some memory allocations to prevent valgrind warnings
[rocksndiamonds.git] / src / game_sp / Globals.h
index 194f1b9dced8c95969514e4c55a9d5e88556bd2e..bcb8dad3da471be2662543bc8f8923821a9a2599 100644 (file)
 #define True                           (!False)
 #endif
 
-#define ScrollDelta                    ((long)1)
+#define ScrollDelta                    ((int)1)
 
 #define ZoomFactor                     (2)
-#define BaseWidth                      (ZoomFactor * 16)
+
 #define StretchWidth                   (ZoomFactor * 16)
 #define TwoPixels                      (ZoomFactor * 2)
 
 #define fiRAMTop                       (38)
 #define fiRAMBottom                    (39)
 #define fiWallSpace                    (40)
-#define fiHWTrash1                     (41)
-#define fiHWTrash2                     (42)
-#define fiHWMurphy                     (43)
 
 #define fiExplosion                    (0x1F)
 
+#define fiFirst                                (0)
+#define fiLast                         (40)
+
 
 // ----------------------------------------------------------------------------
 // graphics and animations (used at runtime to display the elements)
 #define aniMurphyYawn                  IMG_SP_MURPHY_BORING_1
 #define aniPushLeft                    IMG_SP_MURPHY_PUSHING_LEFT
 #define aniPushRight                   IMG_SP_MURPHY_PUSHING_RIGHT
-#define aniPushUpDown                  IMG_SP_MURPHY_PUSHING_RIGHT
 
 #define aniBugActivating               IMG_SP_BUGGY_BASE_ACTIVATING
 #define aniBugDeactivating             IMG_SP_BUGGY_BASE_ACTIVATING
 #define imgFrameVertical               IMG_SP_FRAME_VERTICAL
 
 
-extern int aniFramesBug[], aniFramesZonkRollRight[], aniFramesZonkRollLeft[];
-extern int aniFramesEatInfotronLeft[], aniFramesEatInfotronRight[];
-extern int aniFramesInfotronRollRight[], aniFramesInfotronRollLeft[];
-extern int aniFramesMurphyEatLeft[], aniFramesMurphyEatRight[];
-extern int aniFramesMurphyEatUpLeft[], aniFramesMurphyEatUpRight[], aniFramesSplitUpDown[];
-extern int aniFramesMurphyExit[];
-extern int aniFramesSnikSnak[], aniFramesElectron[], aniFramesExplosion[];
-extern int aniFramesTouchBase[], aniFramesTouchInfotron[], aniFramesTouchRedDisk[];
-extern int aniFramesYellowDisk[], aniFramesOrangeDisk[], aniFramesRedDisk[];
-
-
 // ----------------------------------------------------------------------------
 // input keys
 // ----------------------------------------------------------------------------
@@ -236,8 +224,8 @@ typedef struct
 {
   int Width;
   int Height;
-  long OffSet;
-  long Size;
+  int OffSet;
+  int Size;
 } LevelDescriptor;
 #define HAS_LevelDescriptor
 #endif
@@ -277,23 +265,21 @@ typedef struct
 #endif
 
 
-extern int GetSI(int X, int Y);
-extern int GetStretchX(int si);
-extern int GetStretchY(int si);
-extern int GetX(int si);
-extern int GetY(int si);
-extern void InitGlobals();
-
-extern void ReadLevel();
+int GetSI(int X, int Y);
+int GetStretchX(int si);
+int GetStretchY(int si);
+int GetX(int si);
+int GetY(int si);
+void InitGlobals(void);
+void FreeGlobals(void);
 
-extern int getSequenceLength(int sequence);
-extern boolean isSnappingSequence(int sequence);
+void PrepareLevel(void);
 
-extern void Trace(char *Source, char *Message);
-extern void ReportError(char *Source, char *Message);
+int getSequenceLength(int sequence);
+boolean isSnappingSequence(int sequence);
 
-extern int Min(int A, int B);
-extern int Max(int A, int B);
+int Min(int A, int B);
+int Max(int A, int B);
 
 extern int fiGraphic[];
 extern int aniSnikSnakTurningLeft[];
@@ -306,22 +292,36 @@ extern boolean menBorder;
 
 extern int *PlayField16;
 extern byte *PlayField8;
-extern byte *DisPlayField;
+extern byte DisPlayField[SP_MAX_PLAYFIELD_SIZE + SP_HEADER_SIZE];
 
 extern int FieldHeight;
 extern int FieldMax, LevelMax;
 extern int FieldWidth;
 extern int FreezeZonks;
 extern int HeaderSize;
-extern int LevelNumber;
 extern int TimerVar;
 extern short RandomSeed;
 
-extern long FileMax;
-
 extern LevelInfoType LInfo;
-extern float Stretch;
 extern int ScrollMinX, ScrollMaxX, ScrollMinY, ScrollMaxY;
 extern int ScrollX, ScrollY;
 
-#endif /* GLOBALS_H */
+extern int AllowRedDiskCheat, AllowEatRightRedDiskBug;
+extern int Data_SubRest, Data_SubRstFlg;
+extern int DemoKeyCode;
+extern int GameBusyFlag;
+extern int InfotronsNeeded, TotalInfotronsNeeded;
+extern int KillMurphyFlag, MurphyMoveCounter;
+extern int MurphyExplodePos, SplitMoveFlag, RedDiskReleaseMurphyPos;
+extern int MurphyPosIndex, MurphyXPos, MurphyYPos;
+extern int MurphyScreenXPos, MurphyScreenYPos;
+extern int MurphyVarFaceLeft;
+extern int RedDiskCount;
+extern int RedDiskReleaseFlag, MovingPictureSequencePhase;
+extern int RedDiskReleasePhase;
+extern int ScratchGravity, GravityFlag;
+extern int SnikSnaksElectronsFrozen;
+extern int YellowDisksExploded;
+extern int YawnSleepCounter;
+
+#endif // GLOBALS_H