X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=801fec4b57aaae774b4af7f54e13793b23eb19a0;hb=3607ef8e4000754063935d908053d564de92c0a2;hp=da1f3843360be72085b87d29d8c677136d5f9fe4;hpb=39af00f43cf5c4cea174d0e90633877df08a2f7c;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index da1f3843..801fec4b 100644 --- a/src/main.h +++ b/src/main.h @@ -26,6 +26,7 @@ #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 @@ -35,6 +36,7 @@ #define IMG_CUSTOM_START IMG_CUSTOM_1 #define SND_UNDEFINED (-1) +#define MUS_UNDEFINED (-1) #define WIN_XSIZE 672 #define WIN_YSIZE 560 @@ -914,10 +916,17 @@ #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 @@ -972,8 +981,13 @@ #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 @@ -1026,14 +1040,15 @@ #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_BUILD 1 - -#if 0 -#define PROGRAM_VERSION_STRING "3.0.7" -#endif +#define PROGRAM_VERSION_PATCH 8 +#define PROGRAM_VERSION_BUILD 0 #define PROGRAM_TITLE_STRING "Rocks'n'Diamonds" #define PROGRAM_AUTHOR_STRING "Holger Schemel" @@ -1181,6 +1196,11 @@ struct PlayerInfo 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 */ @@ -1446,6 +1466,17 @@ struct SoundInfo boolean loop; }; +struct MusicInfo +{ + boolean loop; +}; + +struct MusicPrefixInfo +{ + char *prefix; + boolean is_loop_music; +}; + struct ElementActionInfo { char *suffix; @@ -1509,9 +1540,10 @@ extern short ExplodeField[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; 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; @@ -1538,6 +1570,7 @@ extern boolean network_player_action_received; 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[]; @@ -1552,9 +1585,15 @@ extern struct ElementDirectionInfo element_direction_info[]; 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 */