X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fgame.h;h=3e62cf4d983ece67595577c665f65e67347dafe4;hp=3f04c02edfe87c8dba67f54c7b5f173101814469;hb=0e5aef968a447e03002cbcc120df7555df624b85;hpb=f6bcc10ce7b517f04eb5cddf01c9ec29ee729b7e diff --git a/src/game.h b/src/game.h index 3f04c02e..3e62cf4d 100644 --- a/src/game.h +++ b/src/game.h @@ -15,18 +15,29 @@ /* (not included here due to collisions with Emerald Mine engine definitions) */ /* #include "main.h" */ -#define MAX_INVENTORY_SIZE 1000 +#define MAX_INVENTORY_SIZE 1000 -#define STD_NUM_KEYS 4 -#define MAX_NUM_KEYS 8 +#define STD_NUM_KEYS 4 +#define MAX_NUM_KEYS 8 -#define NUM_BELTS 4 -#define NUM_BELT_PARTS 3 +#define NUM_BELTS 4 +#define NUM_BELT_PARTS 3 + +#define NUM_PANEL_INVENTORY 8 +#define NUM_PANEL_GRAPHICS 8 +#define NUM_PANEL_ELEMENTS 8 +#define NUM_PANEL_CE_SCORE 8 + +#define STR_SNAPSHOT_MODE_OFF "off" +#define STR_SNAPSHOT_MODE_EVERY_STEP "every_step" +#define STR_SNAPSHOT_MODE_EVERY_MOVE "every_move" +#define STR_SNAPSHOT_MODE_DEFAULT STR_SNAPSHOT_MODE_EVERY_MOVE + +#define SNAPSHOT_MODE_OFF 0 +#define SNAPSHOT_MODE_EVERY_STEP 1 +#define SNAPSHOT_MODE_EVERY_MOVE 2 +#define SNAPSHOT_MODE_DEFAULT SNAPSHOT_MODE_EVERY_MOVE -#define NUM_PANEL_INVENTORY 8 -#define NUM_PANEL_GRAPHICS 8 -#define NUM_PANEL_ELEMENTS 8 -#define NUM_PANEL_CE_SCORE 8 struct GamePanelInfo { @@ -101,6 +112,14 @@ struct GameButtonInfo struct XY sound_simple; }; +struct GameSnapshotInfo +{ + int mode; + + byte last_action[MAX_PLAYERS]; + boolean changed_action; +}; + struct GameInfo { /* values for control panel */ @@ -175,6 +194,9 @@ struct GameInfo /* values for random number generator initialization after snapshot */ unsigned int num_random_calls; + + /* values for game engine snapshot control */ + struct GameSnapshotInfo snapshot; }; struct PlayerInfo @@ -353,13 +375,15 @@ void FreeEngineSnapshotSingle(); void FreeEngineSnapshotList(); void LoadEngineSnapshotSingle(); void SaveEngineSnapshotSingle(); -void SaveEngineSnapshotToList(); -boolean CheckEngineSnapshot(); +boolean SaveEngineSnapshotToList(); +void SaveEngineSnapshotToListInitial(); +boolean CheckEngineSnapshotSingle(); +boolean CheckEngineSnapshotList(); void CreateGameButtons(); void FreeGameButtons(); -void MapStopPlayButtons(); void MapUndoRedoButtons(); +void UnmapUndoRedoButtons(); void MapGameButtons(); void UnmapGameButtons(); void RedrawGameButtons();