X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.h;h=134d6c3ecf476560188ff9b88ed2dc21ab44b2d3;hb=a2c9a458aaa4ac568f07ecd25b19fbca3f766e6b;hp=73ec0f79aae512a66301a2563628baf24bfb7352;hpb=c781e660ed2fe6ad36c9eee0a77d64ee07163030;p=rocksndiamonds.git diff --git a/src/libgame/system.h b/src/libgame/system.h index 73ec0f79..134d6c3e 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -126,6 +126,11 @@ #define ANIM_RANDOM (1 << 4) #define ANIM_REVERSE (1 << 5) +/* values for special (non game element) animation modes */ +#define ANIM_HORIZONTAL (1 << 6) +#define ANIM_VERTICAL (1 << 7) + +#define ANIM_DEFAULT ANIM_LOOP /* values for redraw_mask */ #define REDRAW_NONE (0) @@ -198,6 +203,7 @@ #define RO_BASE_PATH RO_GAME_DIR #define RW_BASE_PATH RW_GAME_DIR +/* directory names */ #define GRAPHICS_DIRECTORY "graphics" #define SOUNDS_DIRECTORY "sounds" #define MUSIC_DIRECTORY "music" @@ -216,6 +222,31 @@ #define MUS_CLASSIC_SUBDIR "mus_orig" #endif +/* file names and filename extensions */ +#if !defined(PLATFORM_MSDOS) +#define LEVELSETUP_DIRECTORY "levelsetup" +#define SETUP_FILENAME "setup.conf" +#define LEVELSETUP_FILENAME "levelsetup.conf" +#define LEVELINFO_FILENAME "levelinfo.conf" +#define GRAPHICSINFO_FILENAME "graphicsinfo.conf" +#define SOUNDSINFO_FILENAME "soundsinfo.conf" +#define MUSICINFO_FILENAME "musicinfo.conf" +#define LEVELFILE_EXTENSION "level" +#define TAPEFILE_EXTENSION "tape" +#define SCOREFILE_EXTENSION "score" +#else +#define LEVELSETUP_DIRECTORY "lvlsetup" +#define SETUP_FILENAME "setup.cnf" +#define LEVELSETUP_FILENAME "lvlsetup.cnf" +#define LEVELINFO_FILENAME "lvlinfo.cnf" +#define GRAPHICSINFO_FILENAME "gfxinfo.cnf" +#define SOUNDSINFO_FILENAME "sndinfo.cnf" +#define MUSICINFO_FILENAME "musinfo.cnf" +#define LEVELFILE_EXTENSION "lvl" +#define TAPEFILE_EXTENSION "tap" +#define SCOREFILE_EXTENSION "sco" +#endif + /* areas in bitmap PIX_DOOR */ /* meaning in PIX_DB_DOOR: (3 PAGEs) @@ -319,6 +350,30 @@ (artwork).snd_current_identifier : \ (artwork).mus_current_identifier) +#define ARTWORKINFO_FILENAME(type) \ + ((type) == ARTWORK_TYPE_GRAPHICS ? \ + GRAPHICSINFO_FILENAME : \ + (type) == ARTWORK_TYPE_SOUNDS ? \ + SOUNDSINFO_FILENAME : \ + (type) == ARTWORK_TYPE_MUSIC ? \ + MUSICINFO_FILENAME : "") + +#define ARTWORK_DIRECTORY(type) \ + ((type) == ARTWORK_TYPE_GRAPHICS ? \ + GRAPHICS_DIRECTORY : \ + (type) == ARTWORK_TYPE_SOUNDS ? \ + SOUNDS_DIRECTORY : \ + (type) == ARTWORK_TYPE_MUSIC ? \ + MUSIC_DIRECTORY : "") + +#define OPTIONS_ARTWORK_DIRECTORY(type) \ + ((type) == ARTWORK_TYPE_GRAPHICS ? \ + options.graphics_directory : \ + (type) == ARTWORK_TYPE_SOUNDS ? \ + options.sounds_directory : \ + (type) == ARTWORK_TYPE_MUSIC ? \ + options.music_directory : "") + /* type definitions */ typedef int (*EventFilter)(const Event *); @@ -573,6 +628,8 @@ struct TreeInfo int last_level; /* last level number (automatically calculated) */ int sort_priority; /* sort levels by 'sort_priority' and then by name */ + boolean latest_engine;/* force level set to use the latest game engine */ + boolean level_group; /* directory contains more level series directories */ boolean parent_link; /* entry links back to parent directory */ boolean user_defined; /* user defined levels are stored in home directory */