updated contact info in source file headers
[rocksndiamonds.git] / src / main.h
index a35337cf185d04b1d05ee347b26a99938e36c461..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 NUM_SPECIAL_GFX_INFO_ARGS      8
 
 /* these additional definitions are currently only used for draw offsets */
+/* (must match SETUP_MODE_* values as defined in src/screens.c) */
+/* (should also match corresponding entries in src/conf_gfx.c) */
 #define GFX_SPECIAL_ARG_SETUP_MAIN             0
 #define GFX_SPECIAL_ARG_SETUP_GAME             1
 #define GFX_SPECIAL_ARG_SETUP_EDITOR           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_CHOOSE_ARTWORK   12
-#define GFX_SPECIAL_ARG_SETUP_CHOOSE_OTHER     13
+#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             14
+#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 */
 #define FONT_ENVELOPE_2                        19
 #define FONT_ENVELOPE_3                        20
 #define FONT_ENVELOPE_4                        21
-#define FONT_INPUT_1_ACTIVE            22
-#define FONT_INPUT_2_ACTIVE            23
-#define FONT_INPUT_1                   24
-#define FONT_INPUT_2                   25
-#define FONT_OPTION_OFF                        26
-#define FONT_OPTION_ON                 27
-#define FONT_VALUE_1                   28
-#define FONT_VALUE_2                   29
-#define FONT_VALUE_OLD                 30
-#define FONT_LEVEL_NUMBER_ACTIVE       31
-#define FONT_LEVEL_NUMBER              32
-#define FONT_TAPE_RECORDER             33
-#define FONT_GAME_INFO                 34
-#define FONT_INFO_ELEMENTS             35
-#define FONT_INFO_LEVELSET             36
-
-#define NUM_FONTS                      37
+#define FONT_REQUEST                   22
+#define FONT_INPUT_1_ACTIVE            23
+#define FONT_INPUT_2_ACTIVE            24
+#define FONT_INPUT_1                   25
+#define FONT_INPUT_2                   26
+#define FONT_OPTION_OFF                        27
+#define FONT_OPTION_ON                 28
+#define FONT_VALUE_1                   29
+#define FONT_VALUE_2                   30
+#define FONT_VALUE_OLD                 31
+#define FONT_LEVEL_NUMBER_ACTIVE       32
+#define FONT_LEVEL_NUMBER              33
+#define FONT_TAPE_RECORDER             34
+#define FONT_GAME_INFO                 35
+#define FONT_INFO_ELEMENTS             36
+#define FONT_INFO_LEVELSET             37
+
+#define NUM_FONTS                      38
 #define NUM_INITIAL_FONTS              4
 
 #if 0
 
 
 /* program information and versioning definitions */
-#define PROGRAM_VERSION_MAJOR          3
-#define PROGRAM_VERSION_MINOR          3
-#define PROGRAM_VERSION_PATCH          1
-#define PROGRAM_VERSION_BUILD          2
+#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 PROGRAM_COPYRIGHT_STRING       "Copyright ©1995-2013 by Holger Schemel"
+#define PROGRAM_COPYRIGHT_STRING       "Copyright ©1995-2014 by Holger Schemel"
 #define PROGRAM_EMAIL_STRING           "info@artsoft.org"
 #define PROGRAM_WEBSITE_STRING         "http://www.artsoft.org/"
 #define PROGRAM_GAME_BY_STRING         "A Game by Artsoft Entertainment"
 
 #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              "rocks_icon_32x32.pcx"
-#define MSDOS_POINTER_FILENAME         "mouse.pcx"
+#define SDL_ICON_FILENAME              "RocksIcon32x32.png"
 
 /* file version numbers for resource files (levels, tapes, score, setup, etc.)
 ** currently supported/known file version numbers:
@@ -2169,6 +2174,17 @@ struct BorderInfo
   boolean draw_masked_when_fading;
 };
 
+struct RequestButtonInfo
+{
+  struct TextPosInfo yes;
+  struct TextPosInfo no;
+  struct TextPosInfo confirm;
+  struct TextPosInfo player_1;
+  struct TextPosInfo player_2;
+  struct TextPosInfo player_3;
+  struct TextPosInfo player_4;
+};
+
 struct MenuMainButtonInfo
 {
   struct MenuPosInfo name;
@@ -2281,6 +2297,17 @@ struct MenuInfo
 
 struct DoorInfo
 {
+  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;
@@ -2288,6 +2315,21 @@ struct DoorInfo
   int anim_mode;
 };
 
+struct RequestInfo
+{
+  struct RequestButtonInfo button;
+  int x, y;
+  int width, height;
+  int border_size;
+  int line_spacing;
+  int step_offset;
+  int step_delay;
+  int anim_mode;
+  boolean autowrap;
+  boolean centered;
+  boolean wrap_single_words;
+};
+
 struct PreviewInfo
 {
   int x, y;
@@ -2300,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;
@@ -2735,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 */
 
@@ -2767,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
@@ -2846,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;
@@ -2918,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;
@@ -2967,7 +3027,9 @@ extern struct TitleMessageInfo    readme;
 extern struct InitInfo         init, init_last;
 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[];