rnd-20100630-1-src
[rocksndiamonds.git] / src / main.h
index 088842a05d8c42bf4154f8ef35e4fac2b5652a08..3fd8c9150f51bb390fff3f7b4ba1bf294d5b965d 100644 (file)
@@ -31,6 +31,9 @@
 #include "conf_mus.h"  /* include auto-generated data structure definitions */
 
 
+#define NEW_TILESIZE                   1
+#define NEW_SCROLL                     1
+
 #define IMG_UNDEFINED                  (-1)
 #define IMG_EMPTY                      IMG_EMPTY_SPACE
 #define IMG_SP_EMPTY                   IMG_EMPTY_SPACE
 #define TILESIZE               32
 #define TILEX                  TILESIZE
 #define TILEY                  TILESIZE
+#define TILEX_VAR              TILESIZE_VAR
+#define TILEY_VAR              TILESIZE_VAR
 #define MINI_TILESIZE          (TILESIZE / 2)
 #define MINI_TILEX             MINI_TILESIZE
 #define MINI_TILEY             MINI_TILESIZE
 #define MICRO_TILEY            MICRO_TILESIZE
 #define MIDPOSX                        (SCR_FIELDX / 2)
 #define MIDPOSY                        (SCR_FIELDY / 2)
+#if NEW_TILESIZE
+#if NEW_SCROLL
+#if 0
+#define SXSIZE                 (SCR_FIELDX * TILEX_VAR)
+#define SYSIZE                 (SCR_FIELDY * TILEY_VAR)
+#endif
+#define FXSIZE                 ((2 + SCR_FIELDX + 2) * TILEX_VAR)
+#define FYSIZE                 ((2 + SCR_FIELDY + 2) * TILEY_VAR)
+#else
+#if 0
+#define SXSIZE                 (SCR_FIELDX * TILEX_VAR)
+#define SYSIZE                 (SCR_FIELDY * TILEY_VAR)
+#endif
+#define FXSIZE                 ((SCR_FIELDX + 2) * TILEX_VAR)
+#define FYSIZE                 ((SCR_FIELDY + 2) * TILEY_VAR)
+#endif
+#else
+#if NEW_SCROLL
+#if 0
+#define SXSIZE                 (SCR_FIELDX * TILEX)
+#define SYSIZE                 (SCR_FIELDY * TILEY)
+#endif
+#define FXSIZE                 ((2 + SCR_FIELDX + 2) * TILEX)
+#define FYSIZE                 ((2 + SCR_FIELDY + 2) * TILEY)
+#else
+#if 0
 #define SXSIZE                 (SCR_FIELDX * TILEX)
 #define SYSIZE                 (SCR_FIELDY * TILEY)
+#endif
 #define FXSIZE                 ((SCR_FIELDX + 2) * TILEX)
 #define FYSIZE                 ((SCR_FIELDY + 2) * TILEY)
+#endif
+#endif
 #define DXSIZE                 100
 #define DYSIZE                 280
 #define VXSIZE                 DXSIZE
 #define VYSIZE                 100
 #define EXSIZE                 DXSIZE
 #define EYSIZE                 (VYSIZE + 44)
+#if 0
 #define FULL_SXSIZE            (2 + SXSIZE + 2)
 #define FULL_SYSIZE            (2 + SYSIZE + 2)
+#endif
 #define MICROLEVEL_XSIZE       ((STD_LEV_FIELDX + 2) * MICRO_TILEX)
 #define MICROLEVEL_YSIZE       ((STD_LEV_FIELDY + 2) * MICRO_TILEY)
 #define MICROLEVEL_XPOS                (SX + (SXSIZE - MICROLEVEL_XSIZE) / 2)
 #define GFX_SPECIAL_ARG_SETUP          9
 #define GFX_SPECIAL_ARG_PLAYING                10
 #define GFX_SPECIAL_ARG_DOOR           11
-#define GFX_SPECIAL_ARG_PANEL          12
-#define GFX_SPECIAL_ARG_PREVIEW                13
-#define GFX_SPECIAL_ARG_CRUMBLED       14
+#define GFX_SPECIAL_ARG_TAPE           12
+#define GFX_SPECIAL_ARG_PANEL          13
+#define GFX_SPECIAL_ARG_PREVIEW                14
+#define GFX_SPECIAL_ARG_CRUMBLED       15
 
-#define NUM_SPECIAL_GFX_ARGS           15
+#define NUM_SPECIAL_GFX_ARGS           16
 
 /* these additional definitions are currently only used for draw offsets */
 #define GFX_SPECIAL_ARG_INFO_MAIN      0
 #define GAME_MODE_SETUP                        9
 #define GAME_MODE_PLAYING              10
 #define GAME_MODE_PSEUDO_DOOR          11
-#define GAME_MODE_PSEUDO_PANEL         12
-#define GAME_MODE_PSEUDO_PREVIEW       13
-#define GAME_MODE_PSEUDO_CRUMBLED      14
+#define GAME_MODE_PSEUDO_TAPE          12
+#define GAME_MODE_PSEUDO_PANEL         13
+#define GAME_MODE_PSEUDO_PREVIEW       14
+#define GAME_MODE_PSEUDO_CRUMBLED      15
 
 /* there are no special config file suffixes for these modes */
-#define GAME_MODE_PSEUDO_TYPENAME      15
-#define GAME_MODE_QUIT                 16
+#define GAME_MODE_PSEUDO_TYPENAME      16
+#define GAME_MODE_QUIT                 17
 
 /* special definitions currently only used for custom artwork configuration */
 #define MUSIC_PREFIX_BACKGROUND                0
@@ -2464,6 +2502,8 @@ struct GlobalInfo
   int fading_status;
   int fading_type;
 #endif
+
+  boolean use_envelope_request;
 };
 
 struct ElementChangeInfo
@@ -2823,7 +2863,11 @@ extern SDL_Thread               *server_thread;
 extern int                     key_joystick_mapping;
 
 #if 1
+#if NEW_SCROLL
+extern boolean                 redraw[2 + MAX_LEV_FIELDX + 2][2 + MAX_LEV_FIELDY + 2];
+#else
 extern boolean                 redraw[MAX_LEV_FIELDX + 2][MAX_LEV_FIELDY + 2];
+#endif
 #else
 extern boolean                 redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE];
 #endif
@@ -2879,6 +2923,9 @@ extern int                        DX, DY;
 extern int                     VX, VY;
 extern int                     EX, EY;
 extern int                     dDX, dDY;
+extern int                     SXSIZE, SYSIZE;
+extern int                     FULL_SXSIZE, FULL_SYSIZE;
+extern int                     TILESIZE_VAR;
 
 extern int                     FX, FY;
 extern int                     ScrollStepSize;