updated contact info in source file headers
[rocksndiamonds.git] / src / main.h
index 17fec5cafee63c58dd67277654cda1d872d2b0fe..a8d7cf0758f1df8c02063b499dc70dcdb32e9797 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                   *
-*----------------------------------------------------------*
-* main.h                                                   *
-***********************************************************/
+// ============================================================================
+// Rocks'n'Diamonds - McDuffin Strikes Back!
+// ----------------------------------------------------------------------------
+// (c) 1995-2014 by Artsoft Entertainment
+//                         Holger Schemel
+//                 info@artsoft.org
+//                 http://www.artsoft.org/
+// ----------------------------------------------------------------------------
+// main.h
+// ============================================================================
 
 #ifndef MAIN_H
 #define MAIN_H
@@ -31,6 +29,7 @@
 #include "conf_mus.h"  /* include auto-generated data structure definitions */
 
 
+#define NEW_GAME_TILESIZE              1
 #define NEW_TILESIZE                   1
 #define NEW_SCROLL                     1
 
 #define FYSIZE                 ((SCR_FIELDY + 2) * TILEY)
 #endif
 #endif
+
+#if 0
 #define DXSIZE                 100
 #define DYSIZE                 280
 #define VXSIZE                 DXSIZE
 #define VYSIZE                 100
 #define EXSIZE                 DXSIZE
 #define EYSIZE                 (VYSIZE + 44)
+#endif
+
 #if 0
 #define FULL_SXSIZE            (2 + SXSIZE + 2)
 #define FULL_SYSIZE            (2 + SYSIZE + 2)
 #define GFX_SPECIAL_ARG_SETUP_SOUND            4
 #define GFX_SPECIAL_ARG_SETUP_ARTWORK          5
 #define GFX_SPECIAL_ARG_SETUP_INPUT            6
-#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS                7
-#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS_1      8
-#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS_2      9
-#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS_3      10
-#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS_4      11
-#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS_5      12
-#define GFX_SPECIAL_ARG_SETUP_CHOOSE_ARTWORK   13
-#define GFX_SPECIAL_ARG_SETUP_CHOOSE_OTHER     14
+#define GFX_SPECIAL_ARG_SETUP_TOUCH            7
+#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS                8
+#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS_1      9
+#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS_2      10
+#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS_3      11
+#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS_4      12
+#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS_5      13
+#define GFX_SPECIAL_ARG_SETUP_CHOOSE_ARTWORK   14
+#define GFX_SPECIAL_ARG_SETUP_CHOOSE_OTHER     15
 
-#define NUM_SPECIAL_GFX_SETUP_ARGS             15
+#define NUM_SPECIAL_GFX_SETUP_ARGS             16
 
 
 /* values for image configuration suffixes */
 #define GFX_ARG_POST_DELAY_RANDOM      35
 #define GFX_ARG_NAME                   36
 #define GFX_ARG_SCALE_UP_FACTOR                37
-#define GFX_ARG_CLONE_FROM             38
-#define GFX_ARG_FADE_MODE              39
-#define GFX_ARG_FADE_DELAY             40
-#define GFX_ARG_POST_DELAY             41
-#define GFX_ARG_AUTO_DELAY             42
-#define GFX_ARG_ALIGN                  43
-#define GFX_ARG_VALIGN                 44
-#define GFX_ARG_SORT_PRIORITY          45
-#define GFX_ARG_CLASS                  46
-#define GFX_ARG_STYLE                  47
-#define GFX_ARG_ACTIVE_XOFFSET         48
-#define GFX_ARG_ACTIVE_YOFFSET         49
-#define GFX_ARG_PRESSED_XOFFSET                50
-#define GFX_ARG_PRESSED_YOFFSET                51
-
-#define NUM_GFX_ARGS                   52
+#define GFX_ARG_TILE_SIZE              38
+#define GFX_ARG_CLONE_FROM             39
+#define GFX_ARG_FADE_MODE              40
+#define GFX_ARG_FADE_DELAY             41
+#define GFX_ARG_POST_DELAY             42
+#define GFX_ARG_AUTO_DELAY             43
+#define GFX_ARG_ALIGN                  44
+#define GFX_ARG_VALIGN                 45
+#define GFX_ARG_SORT_PRIORITY          46
+#define GFX_ARG_CLASS                  47
+#define GFX_ARG_STYLE                  48
+#define GFX_ARG_ACTIVE_XOFFSET         49
+#define GFX_ARG_ACTIVE_YOFFSET         50
+#define GFX_ARG_PRESSED_XOFFSET                51
+#define GFX_ARG_PRESSED_YOFFSET                52
+
+#define NUM_GFX_ARGS                   53
 
 
 /* values for sound configuration suffixes */
 
 
 /* program information and versioning definitions */
-#define PROGRAM_VERSION_MAJOR          3
-#define PROGRAM_VERSION_MINOR          3
-#define PROGRAM_VERSION_PATCH          1
-#define PROGRAM_VERSION_BUILD          3
+#define PROGRAM_VERSION_MAJOR          4
+#define PROGRAM_VERSION_MINOR          0
+#define PROGRAM_VERSION_PATCH          0
+#define PROGRAM_VERSION_BUILD          0
 
 #define PROGRAM_TITLE_STRING           "Rocks'n'Diamonds"
 #define PROGRAM_AUTHOR_STRING          "Holger Schemel"
 
 #define ICON_TITLE_STRING              PROGRAM_TITLE_STRING
 #define COOKIE_PREFIX                  "ROCKSNDIAMONDS"
-#define FILENAME_PREFIX                        "Rocks"
 
 #define USERDATA_DIRECTORY_WIN32       PROGRAM_TITLE_STRING
 #define USERDATA_DIRECTORY_MACOSX      PROGRAM_TITLE_STRING
 #define USERDATA_DIRECTORY_UNIX                PROGRAM_UNIX_DATADIR_STRING
-#define USERDATA_DIRECTORY_DOS         "userdata"
+#define USERDATA_DIRECTORY_OTHER       "userdata"
 
 #if defined(PLATFORM_WIN32)
 #define USERDATA_DIRECTORY             USERDATA_DIRECTORY_WIN32
 #elif defined(PLATFORM_UNIX)
 #define USERDATA_DIRECTORY             USERDATA_DIRECTORY_UNIX
 #else
-#define USERDATA_DIRECTORY             USERDATA_DIRECTORY_DOS
+#define USERDATA_DIRECTORY             USERDATA_DIRECTORY_OTHER
 #endif
 
-#define X11_ICON_FILENAME              "rocks_icon.xbm"
-#define X11_ICONMASK_FILENAME          "rocks_iconmask.xbm"
 #define SDL_ICON_FILENAME              "RocksIcon32x32.png"
-#define MSDOS_POINTER_FILENAME         "mouse.pcx"
 
 /* file version numbers for resource files (levels, tapes, score, setup, etc.)
 ** currently supported/known file version numbers:
@@ -2296,7 +2297,19 @@ struct MenuInfo
 
 struct DoorInfo
 {
-  int width, height;
+  struct DoorPartPosInfo part_1;
+  struct DoorPartPosInfo part_2;
+  struct DoorPartPosInfo part_3;
+  struct DoorPartPosInfo part_4;
+  struct DoorPartPosInfo part_5;
+  struct DoorPartPosInfo part_6;
+  struct DoorPartPosInfo part_7;
+  struct DoorPartPosInfo part_8;
+
+  struct DoorPartPosInfo panel;
+
+  int width;
+  int height;
   int step_offset;
   int step_delay;
   int anim_mode;
@@ -2329,6 +2342,21 @@ struct PreviewInfo
   int anim_mode;
 };
 
+struct EditorPaletteInfo
+{
+  int x, y;
+  int cols, rows;
+
+  struct XY element_left;
+  struct XY element_middle;
+  struct XY element_right;
+};
+
+struct EditorInfo
+{
+  struct EditorPaletteInfo palette;
+};
+
 struct ViewportInfo
 {
   struct RectWithBorder window;
@@ -2764,6 +2792,7 @@ struct GraphicInfo
   int border_size;             /* border size for "crumbled" graphics */
 
   int scale_up_factor;         /* optional factor for scaling image up */
+  int tile_size;               /* optional explicitly defined tile size */
 
   int clone_from;              /* graphic for cloning *all* settings */
 
@@ -2796,11 +2825,6 @@ struct GraphicInfo
   int pressed_yoffset;
 
   boolean use_image_size;      /* use image size as default width and height */
-
-#if defined(TARGET_X11_NATIVE_PERFORMANCE_WORKAROUND)
-  Pixmap clip_mask;            /* single-graphic-only clip mask for X11 */
-  GC clip_gc;                  /* single-graphic-only clip gc for X11 */
-#endif
 };
 
 struct SoundInfo
@@ -2875,7 +2899,11 @@ extern Bitmap                   *bitmap_db_store;
 extern Bitmap                 *bitmap_db_cross;
 extern Bitmap                 *bitmap_db_field;
 extern Bitmap                 *bitmap_db_panel;
+#if 0
 extern Bitmap                 *bitmap_db_door;
+#endif
+extern Bitmap                 *bitmap_db_door_1;
+extern Bitmap                 *bitmap_db_door_2;
 extern Bitmap                 *bitmap_db_toons;
 extern Pixmap                  tile_clipmask[];
 extern DrawBuffer             *fieldbuffer;
@@ -2947,14 +2975,17 @@ extern int                      scroll_x, scroll_y;
 
 extern int                     WIN_XSIZE, WIN_YSIZE;
 extern int                     SCR_FIELDX, SCR_FIELDY;
-extern int                     SX, SY;
 extern int                     REAL_SX, REAL_SY;
+extern int                     SX, SY;
 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                     SXSIZE, SYSIZE;
+extern int                     DXSIZE, DYSIZE;
+extern int                     VXSIZE, VYSIZE;
+extern int                     EXSIZE, EYSIZE;
 extern int                     TILESIZE_VAR;
 
 extern int                     FX, FY;
@@ -2998,6 +3029,7 @@ extern struct MenuInfo            menu;
 extern struct DoorInfo         door_1, door_2;
 extern struct RequestInfo      request;
 extern struct PreviewInfo      preview;
+extern struct EditorInfo       editor;
 extern struct ElementInfo      element_info[];
 extern struct ElementNameInfo  element_name_info[];
 extern struct ElementActionInfo        element_action_info[];