tron@2186: /* $Id$ */ tron@2186: truelight@0: #ifndef HAL_H truelight@0: #define HAL_H truelight@0: truelight@0: typedef struct { tron@1301: const char *(*start)(const char * const *parm); tron@1093: void (*stop)(void); truelight@0: } HalCommonDriver; truelight@0: truelight@0: typedef struct { tron@1301: const char *(*start)(const char * const *parm); tron@1093: void (*stop)(void); truelight@0: void (*make_dirty)(int left, int top, int width, int height); tron@2228: void (*main_loop)(void); truelight@0: bool (*change_resolution)(int w, int h); Darkvater@1829: void (*toggle_fullscreen)(bool fullscreen); truelight@0: } HalVideoDriver; truelight@0: truelight@0: typedef struct { tron@1301: const char *(*start)(const char * const *parm); tron@1093: void (*stop)(void); truelight@0: } HalSoundDriver; truelight@0: truelight@0: typedef struct { tron@1301: const char *(*start)(const char * const *parm); tron@1093: void (*stop)(void); truelight@0: truelight@0: void (*play_song)(const char *filename); tron@1093: void (*stop_song)(void); tron@1093: bool (*is_song_playing)(void); truelight@0: void (*set_volume)(byte vol); truelight@0: } HalMusicDriver; truelight@0: truelight@0: VARDEF HalMusicDriver *_music_driver; truelight@0: VARDEF HalSoundDriver *_sound_driver; truelight@0: VARDEF HalVideoDriver *_video_driver; truelight@0: truelight@0: enum DriverType { truelight@0: VIDEO_DRIVER = 0, truelight@0: SOUND_DRIVER = 1, truelight@0: MUSIC_DRIVER = 2, truelight@0: }; truelight@0: tron@1093: extern void GameLoop(void); truelight@0: extern bool _dbg_screen_rect; truelight@0: truelight@0: truelight@0: // Deals with finding savegames truelight@0: typedef struct { truelight@0: byte type; truelight@0: uint64 mtime; truelight@0: char title[64]; truelight@0: char name[256-12-64]; truelight@0: } FiosItem; truelight@0: truelight@0: enum { truelight@0: FIOS_TYPE_DRIVE = 0, truelight@0: FIOS_TYPE_PARENT = 1, truelight@0: FIOS_TYPE_DIR = 2, truelight@0: FIOS_TYPE_FILE = 3, truelight@0: FIOS_TYPE_OLDFILE = 4, truelight@0: FIOS_TYPE_SCENARIO = 5, truelight@0: FIOS_TYPE_OLD_SCENARIO = 6, truelight@0: }; truelight@0: truelight@543: truelight@543: // Variables to display file lists truelight@543: FiosItem *_fios_list; truelight@543: int _fios_num; truelight@543: int _saveload_mode; truelight@543: truelight@0: // get the name of an oldstyle savegame truelight@0: void GetOldSaveGameName(char *title, const char *file); truelight@0: // get the name of an oldstyle scenario truelight@0: void GetOldScenarioGameName(char *title, const char *file); truelight@0: truelight@0: // Get a list of savegames truelight@0: FiosItem *FiosGetSavegameList(int *num, int mode); truelight@0: // Get a list of scenarios truelight@0: FiosItem *FiosGetScenarioList(int *num, int mode); truelight@0: // Free the list of savegames tron@1093: void FiosFreeSavegameList(void); truelight@0: // Browse to. Returns a filename w/path if we reached a file. truelight@0: char *FiosBrowseTo(const FiosItem *item); darkvater@1596: // Return path, free space and stringID darkvater@1596: StringID FiosGetDescText(const char **path, uint32 *tot); truelight@0: // Delete a name tron@2255: bool FiosDelete(const char *name); truelight@0: // Make a filename from a name truelight@0: void FiosMakeSavegameName(char *buf, const char *name); truelight@0: tron@1594: int CDECL compare_FiosItems(const void *a, const void *b); tron@1594: tron@1093: void CreateConsole(void); truelight@0: truelight@0: #endif /* HAL_H */