 bf907c8d3c
			
		
	
	bf907c8d3c
	
	
	
		
			
			since it uses UTF16 for file access. To keep os-specific code to a minimum, OpenTTD uses UTF8 internally everywhere, converting to OS-type when needed (save/load/screenshot/etc.)
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* $Id$ */
 | |
| 
 | |
| #ifndef HAL_H
 | |
| #define HAL_H
 | |
| 
 | |
| typedef struct {
 | |
| 	const char *(*start)(const char * const *parm);
 | |
| 	void (*stop)(void);
 | |
| } HalCommonDriver;
 | |
| 
 | |
| typedef struct {
 | |
| 	const char *(*start)(const char * const *parm);
 | |
| 	void (*stop)(void);
 | |
| 	void (*make_dirty)(int left, int top, int width, int height);
 | |
| 	void (*main_loop)(void);
 | |
| 	bool (*change_resolution)(int w, int h);
 | |
| 	void (*toggle_fullscreen)(bool fullscreen);
 | |
| } HalVideoDriver;
 | |
| 
 | |
| typedef struct {
 | |
| 	const char *(*start)(const char * const *parm);
 | |
| 	void (*stop)(void);
 | |
| } HalSoundDriver;
 | |
| 
 | |
| typedef struct {
 | |
| 	const char *(*start)(const char * const *parm);
 | |
| 	void (*stop)(void);
 | |
| 
 | |
| 	void (*play_song)(const char *filename);
 | |
| 	void (*stop_song)(void);
 | |
| 	bool (*is_song_playing)(void);
 | |
| 	void (*set_volume)(byte vol);
 | |
| } HalMusicDriver;
 | |
| 
 | |
| VARDEF HalMusicDriver *_music_driver;
 | |
| VARDEF HalSoundDriver *_sound_driver;
 | |
| VARDEF HalVideoDriver *_video_driver;
 | |
| 
 | |
| enum DriverType {
 | |
| 	VIDEO_DRIVER = 0,
 | |
| 	SOUND_DRIVER = 1,
 | |
| 	MUSIC_DRIVER = 2,
 | |
| };
 | |
| 
 | |
| void GameLoop(void);
 | |
| 
 | |
| void CreateConsole(void);
 | |
| 
 | |
| #endif /* HAL_H */
 |