X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fmain.h;h=a8d7cf0758f1df8c02063b499dc70dcdb32e9797;hp=75d882b494a7d7b182e91be422ab59706a31934c;hb=abe44529b439ad39b4d8dbf19cbd67c9b9844279;hpb=61c3da024802ecc0268bab42d7499fc0346e4fd3 diff --git a/src/main.h b/src/main.h index 75d882b4..a8d7cf07 100644 --- a/src/main.h +++ b/src/main.h @@ -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 @@ -1008,12 +1007,16 @@ #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) @@ -1885,6 +1888,8 @@ #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 @@ -1892,15 +1897,17 @@ #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 */ @@ -1942,22 +1949,23 @@ #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 */ @@ -1997,23 +2005,24 @@ #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 @@ -2063,14 +2072,14 @@ /* program information and versioning definitions */ -#define PROGRAM_VERSION_MAJOR 3 -#define PROGRAM_VERSION_MINOR 3 +#define PROGRAM_VERSION_MAJOR 4 +#define PROGRAM_VERSION_MINOR 0 #define PROGRAM_VERSION_PATCH 0 -#define PROGRAM_VERSION_BUILD 2 +#define PROGRAM_VERSION_BUILD 0 #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" @@ -2085,12 +2094,11 @@ #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 @@ -2099,13 +2107,10 @@ #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[];