X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Ftape.h;h=40ddd0949e39dbd36f8ef830c834802b998983e1;hp=03849d0a45ab049011ecd3ef27808992fe0555fa;hb=8bf628c4f976b617d840a64a6e7c2edb5f1d7719;hpb=5dfaa039ed3cb9de43f565346ee4b18b03ec2961 diff --git a/src/tape.h b/src/tape.h index 03849d0a..40ddd094 100644 --- a/src/tape.h +++ b/src/tape.h @@ -13,14 +13,21 @@ #define TAPE_H -/* values for TapeTogglePause() */ -#define TAPE_TOGGLE_MANUAL TRUE -#define TAPE_TOGGLE_AUTOMATIC FALSE +// values for TapeTogglePause() +#define TAPE_TOGGLE_AUTOMATIC 0 +#define TAPE_TOGGLE_MANUAL (1 << 0) +#define TAPE_TOGGLE_PLAY_PAUSE (1 << 1) -/* values for tape properties */ -#define MAX_TAPE_LEN (1000 * FRAMES_PER_SECOND) /* max.time x fps */ +// values for tape properties +#define MAX_TAPE_LEN (1000 * FRAMES_PER_SECOND) // max.time x fps -/* some positions in the video tape control window */ +// values for tape mouse actions +#define TAPE_ACTION_LX 0 +#define TAPE_ACTION_LY 1 +#define TAPE_ACTION_BUTTON 2 +#define TAPE_ACTION_UNUSED 3 + +// some positions in the video tape control window #define VIDEO_DISPLAY1_XPOS 5 #define VIDEO_DISPLAY1_YPOS 5 #define VIDEO_DISPLAY2_XPOS 5 @@ -34,7 +41,7 @@ #define VIDEO_CONTROL_XSIZE VIDEO_DISPLAY_XSIZE #define VIDEO_CONTROL_YSIZE VIDEO_BUTTON_YSIZE -/* values for video tape control */ +// values for video tape control #define VIDEO_STATE_PLAY_OFF (1 << 0) #define VIDEO_STATE_PLAY_ON (1 << 1) #define VIDEO_STATE_REC_OFF (1 << 2) @@ -87,9 +94,9 @@ #define VIDEO_PRESS_STOP(x) ((x) ? VIDEO_PRESS_STOP_ON : VIDEO_PRESS_STOP_OFF) #define VIDEO_PRESS_EJECT(x) ((x) ? VIDEO_PRESS_EJECT_ON: VIDEO_PRESS_EJECT_OFF) -/* tags to draw video display labels or symbols only */ -/* (negative values to prevent misinterpretation in DrawVideoDisplay(), where - the variable "value" is also used for tape length -- better fix this) */ +// tags to draw video display labels or symbols only +// (negative values to prevent misinterpretation in DrawVideoDisplay(), where +// the variable "value" is also used for tape length -- better fix this) #define VIDEO_DISPLAY_DEFAULT 0 #define VIDEO_DISPLAY_LABEL_ONLY -1 #define VIDEO_DISPLAY_SYMBOL_ONLY -2 @@ -102,6 +109,8 @@ struct TapeButtonInfo struct XY pause; struct XY record; struct XY play; + struct XY insert_solution; + struct XY play_solution; }; struct TapeSymbolInfo @@ -153,9 +162,9 @@ struct TapeTextInfo struct TapeInfo { - int file_version; /* file format version the tape is stored with */ - int game_version; /* game release version the tape was created with */ - int engine_version; /* game engine version the tape was recorded with */ + int file_version; // file format version the tape is stored with + int game_version; // game release version the tape was created with + int engine_version; // game engine version the tape was recorded with char *level_identifier; int level_nr; @@ -181,6 +190,8 @@ struct TapeInfo int centered_player_nr_next; boolean set_centered_player; + boolean use_mouse; + struct { byte action[MAX_PLAYERS]; @@ -192,24 +203,25 @@ struct TapeInfo struct TapeLabelInfo label; struct TapeTextInfo text; - boolean show_game_buttons; /* show game buttons in tape viewport */ + boolean show_game_buttons; // show game buttons in tape viewport - boolean no_valid_file; /* set when tape file missing or invalid */ + boolean no_valid_file; // set when tape file missing or invalid }; void DrawVideoDisplay(unsigned int, unsigned int); void DrawCompleteVideoDisplay(void); -void TapeDeactivateDisplayOn(); +void TapeDeactivateDisplayOn(void); void TapeDeactivateDisplayOff(boolean); void TapeSetDateFromEpochSeconds(time_t); -void TapeSetDateFromNow(); +void TapeSetDateFromNow(void); void TapeStartRecording(int); void TapeHaltRecording(void); void TapeStopRecording(void); +boolean TapeAddAction(byte *); void TapeRecordAction(byte *); void TapeTogglePause(boolean); void TapeStartPlaying(void); @@ -221,16 +233,21 @@ unsigned int GetTapeLengthFrames(void); unsigned int GetTapeLengthSeconds(void); void TapeQuickSave(void); void TapeQuickLoad(void); -void InsertSolutionTape(void); + +boolean hasSolutionTape(void); +boolean InsertSolutionTape(void); +boolean PlaySolutionTape(void); void AutoPlayTape(void); -void CreateTapeButtons(); -void FreeTapeButtons(); -void MapTapeEjectButton(); -void MapTapeWarpButton(); -void MapTapeButtons(); -void UnmapTapeButtons(); +void CreateTapeButtons(void); +void FreeTapeButtons(void); +void MapTapeEjectButton(void); +void MapTapeWarpButton(void); +void MapTapeButtons(void); +void UnmapTapeButtons(void); +void RedrawTapeButtons(void); +void RedrawOrRemapTapeButtons(void); void HandleTapeButtonKeys(Key);