X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fgame_sp%2Fexport.h;h=9522fdeef986bf50a2febcc665d3b84ca3e41212;hb=115ce6f2da1914d68b0fe0e5f9082973190dacdd;hp=ca5912b60d58aada1abb3511adda8b241a0f6cd6;hpb=949580a3bafe5c8abd1fac99202411b65900b883;p=rocksndiamonds.git diff --git a/src/game_sp/export.h b/src/game_sp/export.h index ca5912b6..9522fdee 100644 --- a/src/game_sp/export.h +++ b/src/game_sp/export.h @@ -26,12 +26,11 @@ 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") */ @@ -55,11 +54,7 @@ #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 @@ -85,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 @@ -110,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 @@ -181,28 +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(); +extern void sp_open_all(void); +extern void sp_close_all(void); + +extern void InitPrecedingPlayfieldMemory(void); +extern void InitGfxBuffers_SP(void); -extern void InitGameEngine_SP(); +extern void InitGameEngine_SP(void); extern void GameActions_SP(byte *, boolean); -extern unsigned int InitEngineRandom_SP(long); +extern unsigned int InitEngineRandom_SP(int); -extern void setLevelInfoToDefaults_SP(); -extern void copyInternalEngineVars_SP(); -extern boolean LoadNativeLevel_SP(char *, int); +extern void setLevelInfoToDefaults_SP(void); +extern void copyInternalEngineVars_SP(void); +extern boolean LoadNativeLevel_SP(char *, int, boolean); extern void SaveNativeLevel_SP(char *); -extern void BackToFront_SP(void); +extern int getFieldbufferOffsetX_SP(void); +extern int getFieldbufferOffsetY_SP(void); + extern void BlitScreenToBitmap_SP(Bitmap *); extern void RedrawPlayfield_SP(boolean); -extern void DrawGameDoorValues_SP(); -extern void LoadEngineSnapshotValues_SP(); -extern void SaveEngineSnapshotValues_SP(); +extern void LoadEngineSnapshotValues_SP(void); +extern void SaveEngineSnapshotValues_SP(ListNode **); extern int map_key_RND_to_SP(int); extern int map_key_SP_to_RND(int); +extern int getRedDiskReleaseFlag_SP(void); + #endif /* GAME_SP_EXPORT_H */