/* values for special image configuration suffixes (must match game mode) */
#define GFX_SPECIAL_ARG_DEFAULT 0
-#define GFX_SPECIAL_ARG_TITLE_INITIAL 1
-#define GFX_SPECIAL_ARG_TITLE 2
-#define GFX_SPECIAL_ARG_MAIN 3
-#define GFX_SPECIAL_ARG_LEVELS 4
-#define GFX_SPECIAL_ARG_SCORES 5
-#define GFX_SPECIAL_ARG_EDITOR 6
-#define GFX_SPECIAL_ARG_INFO 7
-#define GFX_SPECIAL_ARG_SETUP 8
-#define GFX_SPECIAL_ARG_PLAYING 9
-#define GFX_SPECIAL_ARG_DOOR 10
-#define GFX_SPECIAL_ARG_PANEL 11
-#define GFX_SPECIAL_ARG_PREVIEW 12
-#define GFX_SPECIAL_ARG_CRUMBLED 13
-
-#define NUM_SPECIAL_GFX_ARGS 14
+#define GFX_SPECIAL_ARG_LOADING 1
+#define GFX_SPECIAL_ARG_TITLE_INITIAL 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_PANEL 12
+#define GFX_SPECIAL_ARG_PREVIEW 13
+#define GFX_SPECIAL_ARG_CRUMBLED 14
+
+#define NUM_SPECIAL_GFX_ARGS 15
/* these additional definitions are currently only used for draw offsets */
#define GFX_SPECIAL_ARG_INFO_MAIN 0
/* values for game_status (must match special image configuration suffixes) */
#define GAME_MODE_DEFAULT 0
-#define GAME_MODE_TITLE_INITIAL 1
-#define GAME_MODE_TITLE 2
-#define GAME_MODE_MAIN 3
-#define GAME_MODE_LEVELS 4
-#define GAME_MODE_SCORES 5
-#define GAME_MODE_EDITOR 6
-#define GAME_MODE_INFO 7
-#define GAME_MODE_SETUP 8
-#define GAME_MODE_PLAYING 9
-#define GAME_MODE_PSEUDO_DOOR 10
-#define GAME_MODE_PSEUDO_PANEL 11
-#define GAME_MODE_PSEUDO_PREVIEW 12
-#define GAME_MODE_PSEUDO_CRUMBLED 13
+#define GAME_MODE_LOADING 1
+#define GAME_MODE_TITLE_INITIAL 2
+#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_PANEL 12
+#define GAME_MODE_PSEUDO_PREVIEW 13
+#define GAME_MODE_PSEUDO_CRUMBLED 14
/* there are no special config file suffixes for these modes */
-#define GAME_MODE_PSEUDO_TYPENAME 14
-#define GAME_MODE_QUIT 15
+#define GAME_MODE_PSEUDO_TYPENAME 15
+#define GAME_MODE_QUIT 16
/* special definitions currently only used for custom artwork configuration */
#define MUSIC_PREFIX_BACKGROUND 0
/* program information and versioning definitions */
#define PROGRAM_VERSION_MAJOR 3
#define PROGRAM_VERSION_MINOR 2
-#define PROGRAM_VERSION_PATCH 4
-#define PROGRAM_VERSION_BUILD 2
+#define PROGRAM_VERSION_PATCH 5
+#define PROGRAM_VERSION_BUILD 0
#define PROGRAM_TITLE_STRING "Rocks'n'Diamonds"
#define PROGRAM_AUTHOR_STRING "Holger Schemel"
-#define PROGRAM_COPYRIGHT_STRING "Copyright ©1995-2006 by Holger Schemel"
+#define PROGRAM_COPYRIGHT_STRING "Copyright ©1995-2007 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 PROGRAM_UNIX_DATADIR_STRING ".rocksndiamonds"
+
+#if defined(CREATE_SPECIAL_EDITION_RND_JUE)
+#undef PROGRAM_TITLE_STRING
+#define PROGRAM_TITLE_STRING "R'n'D jue"
+#undef PROGRAM_UNIX_DATADIR_STRING
+#define PROGRAM_UNIX_DATADIR_STRING ".rnd_jue"
+#endif
#define ICON_TITLE_STRING PROGRAM_TITLE_STRING
#define COOKIE_PREFIX "ROCKSNDIAMONDS"
#define USERDATA_DIRECTORY_WIN32 PROGRAM_TITLE_STRING
#define USERDATA_DIRECTORY_MACOSX PROGRAM_TITLE_STRING
-#define USERDATA_DIRECTORY_UNIX ".rocksndiamonds"
+#define USERDATA_DIRECTORY_UNIX PROGRAM_UNIX_DATADIR_STRING
#define USERDATA_DIRECTORY_DOS "userdata"
#if defined(PLATFORM_WIN32)
int auto_delay;
};
+struct InitInfo
+{
+ struct MenuPosInfo busy;
+};
+
struct MenuInfo
{
int draw_xoffset[NUM_SPECIAL_GFX_ARGS];
struct TitleFadingInfo leave_menu;
struct TitleFadingInfo enter_screen[NUM_SPECIAL_GFX_ARGS];
struct TitleFadingInfo leave_screen[NUM_SPECIAL_GFX_ARGS];
+ struct TitleFadingInfo next_screen;
int sound[NUM_SPECIAL_GFX_ARGS];
int music[NUM_SPECIAL_GFX_ARGS];
short actual_trigger_element; /* element that actually triggered change */
int actual_trigger_side; /* element side that triggered the change */
int actual_trigger_player; /* player which actually triggered change */
+ int actual_trigger_player_bits; /* player bits of triggering players */
int actual_trigger_ce_value; /* CE value of element that triggered change */
int actual_trigger_ce_score; /* CE score of element that triggered change */
extern Bitmap *bitmap_db_field;
extern Bitmap *bitmap_db_panel;
extern Bitmap *bitmap_db_door;
+extern Bitmap *bitmap_db_toons;
extern Pixmap tile_clipmask[];
extern DrawBuffer *fieldbuffer;
extern DrawBuffer *drawto_field;
extern struct TitleMessageInfo titlemessage_default;
extern struct TitleMessageInfo titlemessage[];
extern struct TitleMessageInfo readme;
+extern struct InitInfo init;
extern struct MenuInfo menu;
extern struct DoorInfo door_1, door_2;
extern struct PreviewInfo preview;
extern struct MusicFileInfo *music_file_info;
extern struct HelpAnimInfo *helpanim_info;
extern SetupFileHash *helptext_info;
+extern SetupFileHash *image_config_hash;
+extern SetupFileHash *element_token_hash;
+extern SetupFileHash *graphic_token_hash;
+extern SetupFileHash *font_token_hash;
extern struct ConfigTypeInfo image_config_suffix[];
extern struct ConfigTypeInfo sound_config_suffix[];
extern struct ConfigTypeInfo music_config_suffix[];