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 */
 |