X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Ftape.h;h=23773684aeb794702b18ed56d3d4c1c6dc0b5536;hp=eb0231b15b61a0becea078a19e34661e20e6e702;hb=38212569c2f58866417f26e9c813ed8b23c5b2c4;hpb=6460301d715f72f7247b3070a5d98c0b56cfdb67 diff --git a/src/tape.h b/src/tape.h index eb0231b1..23773684 100644 --- a/src/tape.h +++ b/src/tape.h @@ -4,7 +4,7 @@ // (c) 1995-2014 by Artsoft Entertainment // Holger Schemel // info@artsoft.org -// http://www.artsoft.org/ +// https://www.artsoft.org/ // ---------------------------------------------------------------------------- // tape.h // ============================================================================ @@ -21,20 +21,23 @@ // values for tape properties #define MAX_TAPE_LEN (1000 * FRAMES_PER_SECOND) // max.time x fps -// 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 +// values for tape action array positions +#define TAPE_ACTION_LX (MAX_PLAYERS + 0) +#define TAPE_ACTION_LY (MAX_PLAYERS + 1) +#define TAPE_ACTION_BUTTON (MAX_PLAYERS + 2) -#define MAX_TAPE_ACTIONS 4 +#define MAX_TAPE_ACTIONS (MAX_PLAYERS + 3) -// values for tape action events stored in tape file -#define TAPE_EVENTS_KEYS_ONLY 0 -#define TAPE_EVENTS_MOUSE_ONLY 1 -#define TAPE_EVENTS_KEYS_AND_MOUSE 2 +// values for tape actions stored in tape file +#define TAPE_USE_KEY_ACTIONS_ONLY 0 +#define TAPE_USE_MOUSE_ACTIONS_ONLY 1 +#define TAPE_USE_KEY_AND_MOUSE_ACTIONS 2 -#define TAPE_EVENTS_DEFAULT TAPE_EVENTS_KEYS_ONLY +#define TAPE_ACTIONS_DEFAULT TAPE_USE_KEY_ACTIONS_ONLY + +// values for tape properties stored in tape file +#define TAPE_PROPERTY_NONE 0 +#define TAPE_PROPERTY_EM_RANDOM_BUG (1 << 0) // some positions in the video tape control window #define VIDEO_DISPLAY1_XPOS 5 @@ -191,6 +194,8 @@ struct TapeInfo boolean deactivate_display; boolean auto_play; boolean auto_play_level_solved; + boolean auto_play_level_fixed; + boolean auto_play_level_not_fixable; boolean quick_resume; boolean single_step; boolean changed; @@ -199,7 +204,12 @@ struct TapeInfo int centered_player_nr_next; boolean set_centered_player; - int event_mask; // game action events stored in tape actions + // flags to indicate which game actions are stored in this tape + boolean use_key_actions; + boolean use_mouse_actions; + + // bits to indicate which tape properties are stored in this tape + byte property_bits; struct { @@ -247,7 +257,11 @@ boolean hasSolutionTape(void); boolean InsertSolutionTape(void); boolean PlaySolutionTape(void); -void AutoPlayTape(void); +void UndoTape(void); +void FixTape_ForceSinglePlayer(void); + +void AutoPlayTapes(void); +void PatchTapes(void); void CreateTapeButtons(void); void FreeTapeButtons(void);