version 4.0.0.0 released
[rocksndiamonds.git] / src / main.h
index f61c4edc85d58372aedbd126a0f8584a8b3ed6f0..83fbd7caeb97b57299a483f3f7d8bd9f5dbe5b70 100644 (file)
 #define PROGRAM_VERSION_MINOR          0
 #define PROGRAM_VERSION_PATCH          0
 #define PROGRAM_VERSION_BUILD          0
-#define PROGRAM_VERSION_EXTRA          " RC1"
+#define PROGRAM_VERSION_EXTRA          ""
 
 #define PROGRAM_TITLE_STRING           "Rocks'n'Diamonds"
 #define PROGRAM_AUTHOR_STRING          "Holger Schemel"
 #define NUM_ENGINE_TYPES               4
 
 /* values for automatically playing tapes */
-#define AUTOPLAY_TEST                  0
-#define AUTOPLAY_PLAY                  1
-#define AUTOPLAY_FFWD                  2
+#define AUTOPLAY_NONE                  0
+#define AUTOPLAY_PLAY                  (1 << 0)
+#define AUTOPLAY_FFWD                  (1 << 1)
+#define AUTOPLAY_WARP                  (1 << 2)
+#define AUTOPLAY_TEST                  (1 << 3)
+#define AUTOPLAY_WARP_NO_DISPLAY       AUTOPLAY_TEST
+
+#define AUTOPLAY_MODE_NONE             0
+#define AUTOPLAY_MODE_PLAY             (AUTOPLAY_MODE_NONE | AUTOPLAY_PLAY)
+#define AUTOPLAY_MODE_FFWD             (AUTOPLAY_MODE_PLAY | AUTOPLAY_FFWD)
+#define AUTOPLAY_MODE_WARP             (AUTOPLAY_MODE_FFWD | AUTOPLAY_WARP)
+#define AUTOPLAY_MODE_TEST             (AUTOPLAY_MODE_WARP | AUTOPLAY_TEST)
+#define AUTOPLAY_MODE_WARP_NO_DISPLAY  AUTOPLAY_MODE_TEST
 
 
 struct BorderInfo
@@ -2339,40 +2349,44 @@ struct EditorGadgetInfo
 
 struct EditorButtonInfo
 {
-  struct XY prev_level;
-  struct XY next_level;
-
-  struct XY properties;
-
-  struct XY draw_single;
-  struct XY draw_connected;
-  struct XY draw_line;
-  struct XY draw_arc;
-  struct XY draw_rectangle;
-  struct XY draw_filled_box;
-  struct XY rotate_up;
-  struct XY draw_text;
-  struct XY flood_fill;
-  struct XY rotate_left;
-  struct XY zoom_level;
-  struct XY rotate_right;
-  struct XY draw_random;
-  struct XY grab_brush;
-  struct XY rotate_down;
-  struct XY pick_element;
-
-  struct XY ce_copy_from;
-  struct XY ce_copy_to;
-  struct XY ce_swap;
-  struct XY ce_copy;
-  struct XY ce_paste;
-
-  struct XY undo;
-  struct XY conf;
-  struct XY save;
-  struct XY clear;
-  struct XY test;
-  struct XY exit;
+  struct XYTileSize prev_level;
+  struct XYTileSize next_level;
+
+  struct XYTileSize properties;
+  struct XYTileSize element_left;
+  struct XYTileSize element_middle;
+  struct XYTileSize element_right;
+  struct XYTileSize palette;
+
+  struct XYTileSize draw_single;
+  struct XYTileSize draw_connected;
+  struct XYTileSize draw_line;
+  struct XYTileSize draw_arc;
+  struct XYTileSize draw_rectangle;
+  struct XYTileSize draw_filled_box;
+  struct XYTileSize rotate_up;
+  struct XYTileSize draw_text;
+  struct XYTileSize flood_fill;
+  struct XYTileSize rotate_left;
+  struct XYTileSize zoom_level;
+  struct XYTileSize rotate_right;
+  struct XYTileSize draw_random;
+  struct XYTileSize grab_brush;
+  struct XYTileSize rotate_down;
+  struct XYTileSize pick_element;
+
+  struct XYTileSize ce_copy_from;
+  struct XYTileSize ce_copy_to;
+  struct XYTileSize ce_swap;
+  struct XYTileSize ce_copy;
+  struct XYTileSize ce_paste;
+
+  struct XYTileSize undo;
+  struct XYTileSize conf;
+  struct XYTileSize save;
+  struct XYTileSize clear;
+  struct XYTileSize test;
+  struct XYTileSize exit;
 };
 
 struct EditorInputInfo
@@ -2380,21 +2394,17 @@ struct EditorInputInfo
   struct XY level_number;
 };
 
-struct EditorPaletteElementInfo
-{
-  int x, y;
-  int tile_size;
-};
-
 struct EditorPaletteInfo
 {
   int x, y;
   int cols, rows;
   int tile_size;
+  boolean show_as_separate_screen;
+  boolean show_on_element_buttons;
 
-  struct EditorPaletteElementInfo element_left;
-  struct EditorPaletteElementInfo element_middle;
-  struct EditorPaletteElementInfo element_right;
+  struct XYTileSize element_left;
+  struct XYTileSize element_middle;
+  struct XYTileSize element_right;
 };
 
 struct EditorDrawingAreaInfo
@@ -2825,8 +2835,9 @@ struct GlobalAnimInfo
   /* global animation graphic and control definitions */
   int graphic[NUM_GLOBAL_ANIM_PARTS_ALL][NUM_SPECIAL_GFX_ARGS];
 
-  /* global animation sound definitions */
+  /* global animation sound and music definitions */
   int sound[NUM_GLOBAL_ANIM_PARTS_ALL][NUM_SPECIAL_GFX_ARGS];
+  int music[NUM_GLOBAL_ANIM_PARTS_ALL][NUM_SPECIAL_GFX_ARGS];
 };
 
 struct GraphicInfo
@@ -2972,13 +2983,12 @@ struct HelpAnimInfo
 };
 
 
-extern Bitmap                 *bitmap_db_store;
-extern Bitmap                 *bitmap_db_cross;
 extern Bitmap                 *bitmap_db_field;
 extern Bitmap                 *bitmap_db_panel;
 extern Bitmap                 *bitmap_db_door_1;
 extern Bitmap                 *bitmap_db_door_2;
-extern Bitmap                 *bitmap_db_toons;
+extern Bitmap                 *bitmap_db_store_1;
+extern Bitmap                 *bitmap_db_store_2;
 extern DrawBuffer             *fieldbuffer;
 extern DrawBuffer             *drawto_field;
 
@@ -3058,6 +3068,7 @@ extern int                        FX, FY;
 extern int                     ScrollStepSize;
 extern int                     ScreenMovDir, ScreenMovPos, ScreenGfxPos;
 extern int                     BorderElement;
+extern int                     MenuFrameDelay;
 extern int                     GameFrameDelay;
 extern int                     FfwdFrameDelay;
 extern int                     BX1, BY1;
@@ -3083,19 +3094,25 @@ extern struct BorderInfo        border;
 extern struct ViewportInfo     viewport;
 extern struct TitleFadingInfo  fading;
 extern struct TitleFadingInfo  fading_none;
+extern struct TitleFadingInfo  title_initial_first_default;
 extern struct TitleFadingInfo  title_initial_default;
+extern struct TitleFadingInfo  title_first_default;
 extern struct TitleFadingInfo  title_default;
-extern struct TitleMessageInfo titlescreen_initial_default;
+extern struct TitleMessageInfo titlescreen_initial_first_default;
 extern struct TitleMessageInfo titlescreen_initial_first[];
+extern struct TitleMessageInfo titlescreen_initial_default;
 extern struct TitleMessageInfo titlescreen_initial[];
-extern struct TitleMessageInfo titlescreen_default;
+extern struct TitleMessageInfo titlescreen_first_default;
 extern struct TitleMessageInfo titlescreen_first[];
+extern struct TitleMessageInfo titlescreen_default;
 extern struct TitleMessageInfo titlescreen[];
-extern struct TitleMessageInfo titlemessage_initial_default;
+extern struct TitleMessageInfo titlemessage_initial_first_default;
 extern struct TitleMessageInfo titlemessage_initial_first[];
+extern struct TitleMessageInfo titlemessage_initial_default;
 extern struct TitleMessageInfo titlemessage_initial[];
-extern struct TitleMessageInfo titlemessage_default;
+extern struct TitleMessageInfo titlemessage_first_default;
 extern struct TitleMessageInfo titlemessage_first[];
+extern struct TitleMessageInfo titlemessage_default;
 extern struct TitleMessageInfo titlemessage[];
 extern struct TitleMessageInfo readme;
 extern struct InitInfo         init, init_last;