#include "conf_gfx.h" /* include auto-generated data structure definitions */
#include "conf_snd.h" /* include auto-generated data structure definitions */
+#include "conf_mus.h" /* include auto-generated data structure definitions */
#define IMG_UNDEFINED (-1)
#define IMG_EMPTY IMG_EMPTY_SPACE
#define IMG_CUSTOM_START IMG_CUSTOM_1
#define SND_UNDEFINED (-1)
+#define MUS_UNDEFINED (-1)
#define WIN_XSIZE 672
#define WIN_YSIZE 560
#define ACTION_EMPTYING 22
#define ACTION_CHANGING 23
#define ACTION_EXPLODING 24
-#define ACTION_DYING 25
-#define ACTION_OTHER 26
-
-#define NUM_ACTIONS 27
+#define ACTION_BORING 25
+#define ACTION_SLEEPING 26
+#define ACTION_DYING 27
+#define ACTION_TURNING 28
+#define ACTION_TURNING_FROM_LEFT 29
+#define ACTION_TURNING_FROM_RIGHT 30
+#define ACTION_TURNING_FROM_UP 31
+#define ACTION_TURNING_FROM_DOWN 32
+#define ACTION_OTHER 33
+
+#define NUM_ACTIONS 34
/* values for special image configuration suffixes (must match game mode) */
#define GFX_SPECIAL_ARG_MAIN 0
#define NUM_SND_ARGS 1
-/* values for font configuration */
+/* values for music configuration suffixes */
+#define MUS_ARG_MODE_LOOP 0
+
+#define NUM_MUS_ARGS 1
+
+/* values for font configuration */
#define FONT_INITIAL_1 0
#define FONT_INITIAL_2 1
#define FONT_INITIAL_3 2
#define GAME_MODE_PSEUDO_TYPENAME 10
#define GAME_MODE_QUIT 11
+/* special definitions currently only used for custom artwork configuration */
+#define NUM_MUSIC_PREFIXES 1
+#define MAX_LEVELS 1000
+
+
#define PROGRAM_VERSION_MAJOR 3
#define PROGRAM_VERSION_MINOR 0
-#define PROGRAM_VERSION_PATCH 7
-#define PROGRAM_VERSION_RELEASE 0
-#define PROGRAM_VERSION_STRING "3.0.7"
+#define PROGRAM_VERSION_PATCH 8
+#define PROGRAM_VERSION_BUILD 0
#define PROGRAM_TITLE_STRING "Rocks'n'Diamonds"
#define PROGRAM_AUTHOR_STRING "Holger Schemel"
-#define PROGRAM_RIGHTS_STRING "Copyright ©1995-2003 by"
+#define PROGRAM_COPYRIGHT_STRING "Copyright ©1995-2003 by Holger Schemel"
+
+#if 0
#define PROGRAM_DOS_PORT_STRING "DOS port done by Guido Schulz"
#define PROGRAM_IDENT_STRING PROGRAM_VERSION_STRING " " TARGET_STRING
#define WINDOW_TITLE_STRING PROGRAM_TITLE_STRING " " PROGRAM_IDENT_STRING
-#define WINDOW_SUBTITLE_STRING PROGRAM_RIGHTS_STRING " " PROGRAM_AUTHOR_STRING
+#endif
+
#define ICON_TITLE_STRING PROGRAM_TITLE_STRING
#define COOKIE_PREFIX "ROCKSNDIAMONDS"
#define FILENAME_PREFIX "Rocks"
** 1.4 (still in use)
** 2.0 (actual)
*/
-#define FILE_VERSION_1_0 VERSION_IDENT(1,0,0)
-#define FILE_VERSION_1_2 VERSION_IDENT(1,2,0)
-#define FILE_VERSION_1_4 VERSION_IDENT(1,4,0)
-#define FILE_VERSION_2_0 VERSION_IDENT(2,0,0)
+#define FILE_VERSION_1_0 VERSION_IDENT(1,0,0,0)
+#define FILE_VERSION_1_2 VERSION_IDENT(1,2,0,0)
+#define FILE_VERSION_1_4 VERSION_IDENT(1,4,0,0)
+#define FILE_VERSION_2_0 VERSION_IDENT(2,0,0,0)
/* file version does not change for every program version, but is changed
when new features are introduced that are incompatible with older file
#define GAME_VERSION_1_4 FILE_VERSION_1_4
#define GAME_VERSION_2_0 FILE_VERSION_2_0
-#define GAME_VERSION_ACTUAL RELEASE_IDENT(PROGRAM_VERSION_MAJOR, \
+#define GAME_VERSION_ACTUAL VERSION_IDENT(PROGRAM_VERSION_MAJOR, \
PROGRAM_VERSION_MINOR, \
PROGRAM_VERSION_PATCH, \
- PROGRAM_VERSION_RELEASE)
+ PROGRAM_VERSION_BUILD)
/* values for game_emulation */
#define EMU_NONE 0
int inventory_size;
};
+struct LevelSetInfo
+{
+ int music[NUM_SPECIAL_GFX_ARGS][MAX_LEVELS];
+};
+
struct LevelInfo
{
int file_version; /* file format version the level is stored with */
struct GameInfo
{
+ /* values for engine initialization */
+ int default_push_delay_fixed;
+ int default_push_delay_random;
+
/* constant within running game */
int engine_version;
int emulation;
int initial_move_delay;
int initial_move_delay_value;
+ int initial_push_delay_value;
/* variable within running game */
int yamyam_content_nr;
boolean loop;
};
+struct MusicInfo
+{
+ boolean loop;
+};
+
+struct MusicPrefixInfo
+{
+ char *prefix;
+ boolean is_loop_music;
+};
+
struct ElementActionInfo
{
char *suffix;
extern unsigned long Properties[MAX_NUM_ELEMENTS][NUM_EP_BITFIELDS];
extern int GfxFrame[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern int GfxRandom[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern int GfxElement[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern int GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern int GfxDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern int lev_fieldx, lev_fieldy;
extern int scroll_x, scroll_y;
extern int graphics_action_mapping[];
+extern struct LevelSetInfo levelset;
extern struct LevelInfo level, level_template;
extern struct PlayerInfo stored_player[], *local_player;
extern struct HiScore highscore[];
extern struct SpecialSuffixInfo special_suffix_info[];
extern struct TokenIntPtrInfo image_config_vars[];
extern struct FontInfo font_info[];
+extern struct MusicPrefixInfo music_prefix_info[];
extern struct GraphicInfo *graphic_info;
extern struct SoundInfo *sound_info;
-extern struct ConfigInfo image_config[], sound_config[];
-extern struct ConfigInfo image_config_suffix[], sound_config_suffix[];
+extern struct MusicInfo *music_info;
+extern struct ConfigInfo image_config[];
+extern struct ConfigInfo sound_config[];
+extern struct ConfigInfo music_config[];
+extern struct ConfigInfo image_config_suffix[];
+extern struct ConfigInfo sound_config_suffix[];
+extern struct ConfigInfo music_config_suffix[];
#endif /* MAIN_H */