updated contact info in source file headers
[rocksndiamonds.git] / src / tape.h
index 5243f26845d1f7671b9419c61a1d53ce1eb3f24c..0e6d11d880404fb244a792bc8c1bd6a98c7153d5 100644 (file)
@@ -1,15 +1,13 @@
-/***********************************************************
-* Rocks'n'Diamonds -- McDuffin Strikes Back!               *
-*----------------------------------------------------------*
-* (c) 1995-2006 Artsoft Entertainment                      *
-*               Holger Schemel                             *
-*               Detmolder Strasse 189                      *
-*               33604 Bielefeld                            *
-*               Germany                                    *
-*               e-mail: info@artsoft.org                   *
-*----------------------------------------------------------*
-* tape.h                                                   *
-***********************************************************/
+// ============================================================================
+// Rocks'n'Diamonds - McDuffin Strikes Back!
+// ----------------------------------------------------------------------------
+// (c) 1995-2014 by Artsoft Entertainment
+//                         Holger Schemel
+//                 info@artsoft.org
+//                 http://www.artsoft.org/
+// ----------------------------------------------------------------------------
+// tape.h
+// ============================================================================
 
 #ifndef TAPE_H
 #define TAPE_H
 #define VIDEO_DISPLAY_SYMBOL_ONLY      -2
 
 
+struct TapeButtonInfo
+{
+  struct Rect eject;
+  struct Rect stop;
+  struct Rect pause;
+  struct Rect record;
+  struct Rect play;
+};
+
+struct TapeSymbolInfo
+{
+  struct Rect eject;
+  struct Rect stop;
+  struct Rect pause;
+  struct Rect record;
+  struct Rect play;
+  struct Rect fast_forward;
+  struct Rect warp_forward;
+  struct Rect warp_forward_blind;
+  struct Rect pause_before_end;
+  struct Rect single_step;
+};
+
+struct TapeLabelInfo
+{
+  struct Rect eject;
+  struct Rect stop;
+  struct Rect pause;
+  struct Rect record;
+  struct Rect play;
+  struct Rect fast_forward;
+  struct Rect warp_forward;
+  struct Rect warp_forward_blind;
+  struct Rect pause_before_end;
+  struct Rect single_step;
+  struct Rect date;
+  struct Rect time;
+};
+
+struct TapeTextInfo
+{
+  struct TextPosInfo date;
+  struct TextPosInfo time;
+};
+
 struct TapeInfo
 {
   int file_version;    /* file format version the tape is stored with    */
@@ -101,11 +144,11 @@ struct TapeInfo
 
   char *level_identifier;
   int level_nr;
-  unsigned long random_seed;
-  unsigned long date;
-  unsigned long counter;
-  unsigned long length;
-  unsigned long length_seconds;
+  unsigned int random_seed;
+  unsigned int date;
+  unsigned int counter;
+  unsigned int length;
+  unsigned int length_seconds;
   unsigned int delay_played;
   boolean pause_before_death;
   boolean recording, playing, pausing;
@@ -128,11 +171,18 @@ struct TapeInfo
     byte delay;
   } pos[MAX_TAPE_LEN];
 
+  struct TapeButtonInfo button;
+  struct TapeSymbolInfo symbol;
+  struct TapeLabelInfo label;
+  struct TapeTextInfo text;
+
+  boolean show_game_buttons;   /* show game buttons in tape viewport */
+
   boolean no_valid_file;       /* set when tape file missing or invalid */
 };
 
 
-void DrawVideoDisplay(unsigned long, unsigned long);
+void DrawVideoDisplay(unsigned int, unsigned int);
 void DrawCompleteVideoDisplay(void);
 
 void TapeDeactivateDisplayOn();
@@ -141,7 +191,7 @@ void TapeDeactivateDisplayOff(boolean);
 void TapeSetDateFromEpochSeconds(time_t);
 void TapeSetDateFromNow();
 
-void TapeStartRecording(long);
+void TapeStartRecording(int);
 void TapeHaltRecording(void);
 void TapeStopRecording(void);
 void TapeRecordAction(byte *);
@@ -165,4 +215,6 @@ void MapTapeWarpButton();
 void MapTapeButtons();
 void UnmapTapeButtons();
 
+void HandleTapeButtonKeys(Key);
+
 #endif