X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.h;h=46d304bb1aecd57d33b237c7a661a05434cd2662;hb=884db54d739f5838243315f390d28634cb99a7d9;hp=701df603adf356532173c5854f4a573268956ad8;hpb=bcb3453f710b95ec98b188b95574bea9ab336e96;p=rocksndiamonds.git diff --git a/src/libgame/system.h b/src/libgame/system.h index 701df603..46d304bb 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -51,13 +51,19 @@ /* default shortcut keys */ #define DEFAULT_KEY_SAVE_GAME KSYM_F1 #define DEFAULT_KEY_LOAD_GAME KSYM_F2 +#define DEFAULT_KEY_TOGGLE_PAUSE KSYM_space -/* values for move directions */ +/* values for move directions and special "button" keys */ #define MV_NO_MOVING 0 #define MV_LEFT (1 << 0) #define MV_RIGHT (1 << 1) #define MV_UP (1 << 2) #define MV_DOWN (1 << 3) +#define KEY_BUTTON_1 (1 << 4) +#define KEY_BUTTON_2 (1 << 5) +#define KEY_MOTION (MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN) +#define KEY_BUTTON (KEY_BUTTON_1 | KEY_BUTTON_2) +#define KEY_ACTION (KEY_MOTION | KEY_BUTTON) /* values for button status */ #define MB_NOT_PRESSED FALSE @@ -125,12 +131,22 @@ #define RW_BASE_PATH RW_GAME_DIR #define GRAPHICS_DIRECTORY "graphics" -#define MUSIC_DIRECTORY "music" #define SOUNDS_DIRECTORY "sounds" +#define MUSIC_DIRECTORY "music" #define LEVELS_DIRECTORY "levels" #define TAPES_DIRECTORY "tapes" #define SCORES_DIRECTORY "scores" +#if !defined(PLATFORM_MSDOS) +#define GRAPHICS_SUBDIR "gfx_classic" +#define SOUNDS_SUBDIR "snd_classic" +#define MUSIC_SUBDIR "mus_classic" +#else +#define GRAPHICS_SUBDIR "gfx_orig" +#define SOUNDS_SUBDIR "snd_orig" +#define MUSIC_SUBDIR "mus_orig" +#endif + /* areas in bitmap PIX_DOOR */ /* meaning in PIX_DB_DOOR: (3 PAGEs) PAGEX1: 1. buffer for DOOR_1 @@ -214,10 +230,11 @@ struct VideoSystemInfo struct AudioSystemInfo { boolean sound_available; - boolean music_available; boolean loops_available; - boolean mods_available; + boolean music_available; + boolean sound_enabled; + boolean sound_deactivated; /* for temporarily disabling sound */ int soundserver_pipe[2]; int soundserver_pid; @@ -226,7 +243,6 @@ struct AudioSystemInfo int channels; int music_channel; - int music_nr; }; struct GfxInfo @@ -283,6 +299,7 @@ struct SetupShortcutInfo { Key save_game; Key load_game; + Key toggle_pause; }; struct SetupInfo @@ -305,6 +322,11 @@ struct SetupInfo boolean handicap; boolean time_limit; boolean fullscreen; + boolean ask_on_escape; + + char *graphics_set; + char *sounds_set; + char *music_set; struct SetupShortcutInfo shortcut; struct SetupInputInfo input[MAX_PLAYERS]; @@ -318,6 +340,7 @@ struct SetupInfo struct TreeInfo { + struct TreeInfo **node_top; /* topmost node in tree */ struct TreeInfo *node_parent; /* parent level directory info */ struct TreeInfo *node_group; /* level group sub-directory info */ struct TreeInfo *next; /* next level series structure node */ @@ -364,6 +387,10 @@ struct ArtworkInfo SoundsDirTree *snd_current; MusicDirTree *mus_first; MusicDirTree *mus_current; + + char *graphics_set_current; + char *sounds_set_current; + char *music_set_current; }; @@ -445,10 +472,15 @@ inline boolean ChangeVideoModeIfNeeded(boolean); Bitmap *LoadImage(char *); Bitmap *LoadCustomImage(char *); +void ReloadCustomImage(Bitmap *, char *); inline void OpenAudio(void); inline void CloseAudio(void); inline void SetAudioMode(boolean); +#if 0 +inline void SetAudioReloadFunctions(void (*func_reload_sounds)(void), + void (*func_reload_music)(void)); +#endif inline void InitEventFilter(EventFilter); inline boolean PendingEvent(void);