#define SP_STD_LEVEL_SIZE (SP_HEADER_SIZE + SP_STD_PLAYFIELD_SIZE)
#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") */
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);
-extern void InitPrecedingPlayfieldMemory();
-extern void InitGfxBuffers_SP();
+void InitGameEngine_SP(void);
+void GameActions_SP(byte *, boolean);
-extern void InitGameEngine_SP();
-extern void GameActions_SP(byte *, boolean);
+unsigned int InitEngineRandom_SP(int);
-extern unsigned int InitEngineRandom_SP(int);
+void setLevelInfoToDefaults_SP(void);
+void copyInternalEngineVars_SP(void);
+boolean LoadNativeLevel_SP(char *, int, boolean);
+void SaveNativeLevel_SP(char *);
-extern void setLevelInfoToDefaults_SP();
-extern void copyInternalEngineVars_SP();
-extern boolean LoadNativeLevel_SP(char *, int, boolean);
-extern void SaveNativeLevel_SP(char *);
+int getFieldbufferOffsetX_SP(void);
+int getFieldbufferOffsetY_SP(void);
-extern void BlitScreenToBitmap_SP(Bitmap *);
-extern void RedrawPlayfield_SP(boolean);
+void BlitScreenToBitmap_SP(Bitmap *);
+void RedrawPlayfield_SP(boolean);
-extern void LoadEngineSnapshotValues_SP();
-extern void SaveEngineSnapshotValues_SP(ListNode **);
+void LoadEngineSnapshotValues_SP(void);
+void SaveEngineSnapshotValues_SP(ListNode **);
-extern int map_key_RND_to_SP(int);
-extern int map_key_SP_to_RND(int);
+int map_key_RND_to_SP(int);
+int map_key_SP_to_RND(int);
-extern int getRedDiskReleaseFlag_SP();
+int getRedDiskReleaseFlag_SP(void);
#endif /* GAME_SP_EXPORT_H */