win32.c
changeset 223 0e5cc5a65df6
parent 222 b88456001397
child 287 ca9584af45a0
equal deleted inserted replaced
222:b88456001397 223:0e5cc5a65df6
  1773 	char *path = str_buffr;
  1773 	char *path = str_buffr;
  1774 	FiosMakeSavegameName(path, name);
  1774 	FiosMakeSavegameName(path, name);
  1775 	DeleteFile(path);
  1775 	DeleteFile(path);
  1776 }
  1776 }
  1777 
  1777 
       
  1778 #define Windows_2000		5
       
  1779 #define Windows_NT3_51	4
       
  1780 
       
  1781 /* flags show the minimum required OS to use a given feature. Currently
       
  1782 	 only dwMajorVersion is used
       
  1783 														MajorVersion	MinorVersion
       
  1784 		Windows Server 2003					5							 2
       
  1785 		Windows XP									5							 1
       
  1786 		Windows 2000								5							 0
       
  1787 		Windows NT 4.0							4							 0
       
  1788 		Windows Me									4							90
       
  1789 		Windows 98									4							10
       
  1790 		Windows 95									4							 0
       
  1791 		Windows NT 3.51							3							51
       
  1792 */
       
  1793 
  1778 const DriverDesc _video_driver_descs[] = {
  1794 const DriverDesc _video_driver_descs[] = {
  1779 	{"null", "Null Video Driver",				&_null_video_driver,	0},
  1795 	{"null", "Null Video Driver",				&_null_video_driver,		0},
  1780 #if defined(WITH_SDL)
  1796 #if defined(WITH_SDL)
  1781 	{"sdl", "SDL Video Driver",					&_sdl_video_driver,	1},
  1797 	{"sdl", "SDL Video Driver",					&_sdl_video_driver,			1},
  1782 #endif
  1798 #endif
  1783 	{"win32", "Win32 GDI Video Driver",	&_win32_video_driver,	2},
  1799 	{"win32", "Win32 GDI Video Driver",	&_win32_video_driver,		Windows_NT3_51},
  1784 	{NULL}
  1800 	{NULL}
  1785 };
  1801 };
  1786 
  1802 
  1787 const DriverDesc _sound_driver_descs[] = {
  1803 const DriverDesc _sound_driver_descs[] = {
  1788 	{"null", "Null Sound Driver",			&_null_sound_driver,	0},
  1804 	{"null", "Null Sound Driver",			&_null_sound_driver,	0},
  1789 #if defined(WITH_SDL)
  1805 #if defined(WITH_SDL)
  1790 	{"sdl", "SDL Sound Driver",				&_sdl_sound_driver,	1},
  1806 	{"sdl", "SDL Sound Driver",				&_sdl_sound_driver,		1},
  1791 #endif
  1807 #endif
  1792 	{"win32", "Win32 WaveOut Driver",	&_win32_sound_driver,	2},
  1808 	{"win32", "Win32 WaveOut Driver",	&_win32_sound_driver,	Windows_NT3_51},
  1793 	{NULL}
  1809 	{NULL}
  1794 };
  1810 };
  1795 
  1811 
  1796 const DriverDesc _music_driver_descs[] = {
  1812 const DriverDesc _music_driver_descs[] = {
  1797 	{"null", "Null Music Driver",		&_null_music_driver,	0},
  1813 	{"null", "Null Music Driver",		&_null_music_driver,				0},
  1798 #ifdef WIN32_ENABLE_DIRECTMUSIC_SUPPORT
  1814 #ifdef WIN32_ENABLE_DIRECTMUSIC_SUPPORT
  1799 	{"dmusic", "DirectMusic MIDI Driver",	&_dmusic_midi_driver,	1},
  1815 	{"dmusic", "DirectMusic MIDI Driver",	&_dmusic_midi_driver,	Windows_2000},
  1800 #endif
  1816 #endif
  1801 	{"win32", "Win32 MIDI Driver",	&_win32_music_driver,	2},
  1817 	// Win32 MIDI driver has higher priority then DMusic, so this one is chosen
       
  1818 	{"win32", "Win32 MIDI Driver",	&_win32_music_driver,				Windows_NT3_51},
  1802 	{NULL}
  1819 	{NULL}
  1803 };
  1820 };
       
  1821 
       
  1822 byte GetOSVersion()
       
  1823 {
       
  1824 	OSVERSIONINFO osvi;
       
  1825 
       
  1826 	ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
       
  1827 	osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
       
  1828 
       
  1829 	if (GetVersionEx(&osvi)) {
       
  1830 		DEBUG(misc, 2) ("Windows Version is %d", osvi.dwMajorVersion);
       
  1831 		return (byte)osvi.dwMajorVersion;
       
  1832 	}
       
  1833 
       
  1834 	// GetVersionEx failed, but we can safely assume at least Win95/WinNT3.51 is used
       
  1835 	DEBUG(misc, 0) ("Windows version retrieval failed, defaulting to level 4");
       
  1836 	return Windows_NT3_51;
       
  1837 }
  1804 
  1838 
  1805 bool FileExists(const char *filename)
  1839 bool FileExists(const char *filename)
  1806 {
  1840 {
  1807 	HANDLE hand = CreateFile(filename, 0, 0, NULL, OPEN_EXISTING, 0, NULL);
  1841 	HANDLE hand = CreateFile(filename, 0, 0, NULL, OPEN_EXISTING, 0, NULL);
  1808 	if (hand == INVALID_HANDLE_VALUE) return false;
  1842 	if (hand == INVALID_HANDLE_VALUE) return false;