removed unneeded 'extern' keyword for function declarations in header files
[rocksndiamonds.git] / src / game_sp / export.h
index 8abe983b6864621a7df930019b24b338eeb8bc5a..1956c3a0a551145a099c4a49f4cff1103f84f85c 100644 (file)
                                         SP_MAX_PLAYFIELD_HEIGHT)
 #define SP_STD_LEVEL_SIZE              (SP_HEADER_SIZE + SP_STD_PLAYFIELD_SIZE)
 
-#if 0
-#define SP_SCREEN_BUFFER_XSIZE         (SCR_FIELDX + 2)
-#define SP_SCREEN_BUFFER_YSIZE         (SCR_FIELDY + 2)
-#endif
-
 #define SP_FRAMES_PER_SECOND           35
+
+// use a much higher value to be able to load ultra-long MPX demo files
+// (like for level collection 78, level 88 ("WAITING FOR GODOT AGAIN"))
+// #define SP_MAX_TAPE_LEN                     500000
 #define SP_MAX_TAPE_LEN                        64010   /* (see "spfix63.doc") */
 
 
+/* sound actions */
+
+#define actActive                      0
+#define actImpact                      1
+#define actExploding                   2
+#define actDigging                     3
+#define actSnapping                    4
+#define actCollecting                  5
+#define actPassing                     6
+#define actPushing                     7
+#define actDropping                    8
+
+
 /* ------------------------------------------------------------------------- */
 /* data structure definitions                                                */
 /* ------------------------------------------------------------------------- */
 #ifndef HAS_SpecialPortType
 typedef struct
 {
-#if 1
   short PortLocation; // = 2*(x+(y*60))                /* big endian format */
-#else
-  int PortLocation; // = 2*(x+(y*60))
-#endif
   byte Gravity; // 1 = turn on, anything else (0) = turn off
   byte FreezeZonks; // 2 = turn on, anything else (0) = turn off  (1=off!)
   byte FreezeEnemies; // 1 = turn on, anything else (0) = turn off
@@ -72,11 +80,7 @@ typedef struct
   SpecialPortType SpecialPort[10];
   byte SpeedByte; // = Speed XOR Highbyte(RandomSeed)
   byte CheckSumByte; // = CheckSum XOR SpeedByte
-#if 1
   short DemoRandomSeed;                                /* little endian format */
-#else
-  int DemoRandomSeed;
-#endif
 } LevelInfoType;
 #define HAS_LevelInfoType
 #endif
@@ -97,7 +101,10 @@ struct GameInfo_SP
   int score;
 
   /* needed for engine snapshots */
+  char **preceding_buffer;
   int preceding_buffer_size;
+
+  int scroll_xoffset, scroll_yoffset;
 };
 
 struct DemoInfo_SP
@@ -168,27 +175,34 @@ extern struct GraphicInfo_SP graphic_info_sp_object[TILE_MAX][8];
 extern struct GraphicInfo_SP graphic_info_sp_player[MAX_PLAYERS][SPR_MAX][8];
 extern struct EngineSnapshotInfo_SP engine_snapshot_sp;
 
-extern void sp_open_all();
-extern void sp_close_all();
+void sp_open_all(void);
+void sp_close_all(void);
+
+void InitPrecedingPlayfieldMemory(void);
+void InitGfxBuffers_SP(void);
+
+void InitGameEngine_SP(void);
+void GameActions_SP(byte *, boolean);
+
+unsigned int InitEngineRandom_SP(int);
 
-extern void InitGameEngine_SP();
-extern void GameActions_SP(byte *, boolean);
+void setLevelInfoToDefaults_SP(void);
+void copyInternalEngineVars_SP(void);
+boolean LoadNativeLevel_SP(char *, int, boolean);
+void SaveNativeLevel_SP(char *);
 
-extern unsigned int InitEngineRandom_SP(long);
+int getFieldbufferOffsetX_SP(void);
+int getFieldbufferOffsetY_SP(void);
 
-extern void setLevelInfoToDefaults_SP();
-extern void copyInternalEngineVars_SP();
-extern boolean LoadNativeLevel_SP(char *, int);
+void BlitScreenToBitmap_SP(Bitmap *);
+void RedrawPlayfield_SP(boolean);
 
-extern void BackToFront_SP(void);
-extern void BlitScreenToBitmap_SP(Bitmap *);
-extern void RedrawPlayfield_SP(boolean);
-extern void DrawGameDoorValues_SP();
+void LoadEngineSnapshotValues_SP(void);
+void SaveEngineSnapshotValues_SP(ListNode **);
 
-extern void LoadEngineSnapshotValues_SP();
-extern void SaveEngineSnapshotValues_SP();
+int map_key_RND_to_SP(int);
+int map_key_SP_to_RND(int);
 
-extern int map_key_RND_to_SP(int);
-extern int map_key_SP_to_RND(int);
+int getRedDiskReleaseFlag_SP(void);
 
 #endif /* GAME_SP_EXPORT_H */