#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_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.)
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;
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;
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;
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;
/* ---------- 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 */
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;
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;
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[];