rnd-20140211-1-src
[rocksndiamonds.git] / src / main.h
index 0c16dce67f1b54d3b4605be793fc2e337a45d96c..17fec5cafee63c58dd67277654cda1d872d2b0fe 100644 (file)
@@ -32,7 +32,7 @@
 
 
 #define NEW_TILESIZE                   1
-#define NEW_SCROLL                     0
+#define NEW_SCROLL                     1
 
 #define IMG_UNDEFINED                  (-1)
 #define IMG_EMPTY                      IMG_EMPTY_SPACE
 #define GFX_SPECIAL_ARG_TITLE          3
 #define GFX_SPECIAL_ARG_MAIN           4
 #define GFX_SPECIAL_ARG_LEVELS         5
-#define GFX_SPECIAL_ARG_SCORES         6
-#define GFX_SPECIAL_ARG_EDITOR         7
-#define GFX_SPECIAL_ARG_INFO           8
-#define GFX_SPECIAL_ARG_SETUP          9
-#define GFX_SPECIAL_ARG_PLAYING                10
-#define GFX_SPECIAL_ARG_DOOR           11
-#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           16
+#define GFX_SPECIAL_ARG_LEVELNR                6
+#define GFX_SPECIAL_ARG_SCORES         7
+#define GFX_SPECIAL_ARG_EDITOR         8
+#define GFX_SPECIAL_ARG_INFO           9
+#define GFX_SPECIAL_ARG_SETUP          10
+#define GFX_SPECIAL_ARG_PLAYING                11
+#define GFX_SPECIAL_ARG_DOOR           12
+#define GFX_SPECIAL_ARG_TAPE           13
+#define GFX_SPECIAL_ARG_PANEL          14
+#define GFX_SPECIAL_ARG_PREVIEW                15
+#define GFX_SPECIAL_ARG_CRUMBLED       16
+
+#define NUM_SPECIAL_GFX_ARGS           17
 
 /* these additional definitions are currently only used for draw offsets */
 #define GFX_SPECIAL_ARG_INFO_MAIN      0
 #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_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_SHORTCUTS_5      12
+#define GFX_SPECIAL_ARG_SETUP_CHOOSE_ARTWORK   13
+#define GFX_SPECIAL_ARG_SETUP_CHOOSE_OTHER     14
 
-#define NUM_SPECIAL_GFX_SETUP_ARGS             14
+#define NUM_SPECIAL_GFX_SETUP_ARGS             15
 
 
 /* values for image 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
 #define GAME_MODE_TITLE                        3
 #define GAME_MODE_MAIN                 4
 #define GAME_MODE_LEVELS               5
-#define GAME_MODE_SCORES               6
-#define GAME_MODE_EDITOR               7
-#define GAME_MODE_INFO                 8
-#define GAME_MODE_SETUP                        9
-#define GAME_MODE_PLAYING              10
-#define GAME_MODE_PSEUDO_DOOR          11
-#define GAME_MODE_PSEUDO_TAPE          12
-#define GAME_MODE_PSEUDO_PANEL         13
-#define GAME_MODE_PSEUDO_PREVIEW       14
-#define GAME_MODE_PSEUDO_CRUMBLED      15
+#define GAME_MODE_LEVELNR              6
+#define GAME_MODE_SCORES               7
+#define GAME_MODE_EDITOR               8
+#define GAME_MODE_INFO                 9
+#define GAME_MODE_SETUP                        10
+#define GAME_MODE_PLAYING              11
+#define GAME_MODE_PSEUDO_DOOR          12
+#define GAME_MODE_PSEUDO_TAPE          13
+#define GAME_MODE_PSEUDO_PANEL         14
+#define GAME_MODE_PSEUDO_PREVIEW       15
+#define GAME_MODE_PSEUDO_CRUMBLED      16
 
 /* there are no special config file suffixes for these modes */
-#define GAME_MODE_PSEUDO_TYPENAME      16
-#define GAME_MODE_QUIT                 17
+#define GAME_MODE_PSEUDO_TYPENAME      17
+#define GAME_MODE_QUIT                 18
 
 /* special definitions currently only used for custom artwork configuration */
 #define MUSIC_PREFIX_BACKGROUND                0
 #define NUM_MUSIC_PREFIXES             1
-#define MAX_LEVELS                     1000
 
 /* definitions for demo animation lists */
 #define HELPANIM_LIST_NEXT             -1
 /* program information and versioning definitions */
 #define PROGRAM_VERSION_MAJOR          3
 #define PROGRAM_VERSION_MINOR          3
-#define PROGRAM_VERSION_PATCH          0
-#define PROGRAM_VERSION_BUILD          2
+#define PROGRAM_VERSION_PATCH          1
+#define PROGRAM_VERSION_BUILD          3
 
 #define PROGRAM_TITLE_STRING           "Rocks'n'Diamonds"
 #define PROGRAM_AUTHOR_STRING          "Holger Schemel"
-#define PROGRAM_COPYRIGHT_STRING       "Copyright ©1995-2010 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 X11_ICON_FILENAME              "rocks_icon.xbm"
 #define X11_ICONMASK_FILENAME          "rocks_iconmask.xbm"
-#define SDL_ICON_FILENAME              "rocks_icon_32x32.pcx"
+#define SDL_ICON_FILENAME              "RocksIcon32x32.png"
 #define MSDOS_POINTER_FILENAME         "mouse.pcx"
 
 /* file version numbers for resource files (levels, tapes, score, setup, etc.)
@@ -2168,6 +2173,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;
@@ -2280,11 +2296,25 @@ struct MenuInfo
 
 struct DoorInfo
 {
-  int width;
-  int height;
+  int width, height;
+  int step_offset;
+  int step_delay;
+  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
@@ -2617,7 +2647,7 @@ struct ElementInfo
 
   /* ---------- special element property values ---------- */
 
-  unsigned long properties[NUM_EP_BITFIELDS];  /* element base properties */
+  unsigned int properties[NUM_EP_BITFIELDS];   /* element base properties */
 
   boolean use_gfx_element;     /* use custom graphic element */
   int gfx_element_initial;     /* initial optional custom graphic element */
@@ -2966,6 +2996,7 @@ 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 ElementInfo      element_info[];
 extern struct ElementNameInfo  element_name_info[];