added configurability of different window size for title screens
[rocksndiamonds.git] / src / main.h
index 812f09516a44ddb1cdfb97cad08d55577e7a56b9..a8edcee71ea33d8c76b534843b1bb39e487c7aa7 100644 (file)
 #define BUTTON_ACTIVE(b)       (ActiveButton[b])
 #define FONT_ACTIVE(f)         (ActiveFont[f])
 
-
 /* fundamental game speed values */
 #define MICROLEVEL_SCROLL_DELAY        50      /* delay for scrolling micro level */
 #define MICROLEVEL_LABEL_DELAY 250     /* delay for micro level label */
 
 #define NUM_ENGINE_TYPES               4
 
+/* values for automatically playing tapes */
+#define AUTOPLAY_TEST                  0
+#define AUTOPLAY_PLAY                  1
+#define AUTOPLAY_FFWD                  2
+
 
 struct BorderInfo
 {
@@ -2166,6 +2170,7 @@ struct MenuInfo
   int scrollbar_xoffset;
 
   int list_size[NUM_SPECIAL_GFX_ARGS];
+  int list_size_info[NUM_SPECIAL_GFX_INFO_ARGS];
 
   struct TitleFadingInfo enter_menu;
   struct TitleFadingInfo leave_menu;
@@ -2209,6 +2214,8 @@ struct RequestInfo
   int step_offset;
   int step_delay;
   int anim_mode;
+  int align;
+  int valign;
   boolean autowrap;
   boolean centered;
   boolean wrap_single_words;
@@ -2319,6 +2326,11 @@ struct EditorPaletteInfo
   struct EditorPaletteElementInfo element_right;
 };
 
+struct EditorDrawingAreaInfo
+{
+  int tile_size;
+};
+
 struct EditorInfo
 {
   struct EditorSettingsInfo settings;
@@ -2326,11 +2338,12 @@ struct EditorInfo
   struct EditorButtonInfo button;
   struct EditorInputInfo input;
   struct EditorPaletteInfo palette;
+  struct EditorDrawingAreaInfo drawingarea;
 };
 
 struct ViewportInfo
 {
-  struct RectWithBorder window;
+  struct RectWithBorder window[NUM_SPECIAL_GFX_ARGS];
   struct RectWithBorder playfield[NUM_SPECIAL_GFX_ARGS];
   struct RectWithBorder door_1[NUM_SPECIAL_GFX_ARGS];
   struct RectWithBorder door_2[NUM_SPECIAL_GFX_ARGS];
@@ -2484,6 +2497,7 @@ struct LevelInfo
   boolean use_time_orb_bug;    /* for compatibility with old levels */
   boolean instant_relocation;  /* no visual delay when relocating player */
   boolean shifted_relocation;  /* no level centering when relocating player */
+  boolean lazy_relocation;     /* only redraw off-screen player relocation */
   boolean can_pass_to_walkable;        /* player can pass to empty or walkable tile */
   boolean grow_into_diggable;  /* amoeba can grow into anything diggable */
   boolean auto_exit_sokoban;   /* automatically finish solved Sokoban levels */
@@ -2513,6 +2527,7 @@ struct GlobalInfo
   char *autoplay_leveldir;
   int autoplay_level[MAX_TAPES_PER_SET];
   boolean autoplay_all;
+  boolean autoplay_mode;
 
   char *convert_leveldir;
   int convert_level_nr;
@@ -2522,8 +2537,6 @@ struct GlobalInfo
   int num_toons;
 
   float frames_per_second;
-  boolean fps_slowdown;
-  int fps_slowdown_factor;
 
   /* global values for fading screens and masking borders */
   int border_status;
@@ -2875,6 +2888,7 @@ extern DrawBuffer        *fieldbuffer;
 extern DrawBuffer             *drawto_field;
 
 extern int                     game_status;
+extern boolean                 game_status_last_screen;
 extern boolean                 level_editor_test_game;
 extern boolean                 network_playing;
 
@@ -2885,9 +2899,6 @@ extern SDL_Thread        *server_thread;
 
 extern int                     key_joystick_mapping;
 
-extern boolean                 redraw[2 + MAX_LEV_FIELDX + 2][2 + MAX_LEV_FIELDY + 2];
-extern int                     redraw_x1, redraw_y1;
-
 extern short                   Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 extern short                   MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 extern short                   MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
@@ -2945,6 +2956,9 @@ extern int                        VXSIZE, VYSIZE;
 extern int                     EXSIZE, EYSIZE;
 extern int                     TILESIZE_VAR;
 
+extern int                     FADE_SX, FADE_SY;
+extern int                     FADE_SXSIZE, FADE_SYSIZE;
+
 extern int                     FX, FY;
 extern int                     ScrollStepSize;
 extern int                     ScreenMovDir, ScreenMovPos, ScreenGfxPos;