idTech4.idSystem.Sys_Init C# (CSharp) Method

Sys_Init() private method

private Sys_Init ( ) : void
return void
		private void Sys_Init()
		{
			// TODO
			/*cmdSystem->AddCommand( "in_restart", Sys_In_Restart_f, CMD_FL_SYSTEM, "restarts the input system" );
#ifdef DEBUG
			cmdSystem->AddCommand( "createResourceIDs", CreateResourceIDs_f, CMD_FL_TOOL, "assigns resource IDs in _resouce.h files" );
#endif
#if 0
			cmdSystem->AddCommand( "setAsyncSound", Sys_SetAsyncSound_f, CMD_FL_SYSTEM, "set the async sound option" );
#endif*/

			// not bothering with fetching the windows username.
			idE.CvarSystem.SetString("win_username", Environment.UserName);

			//
			// Windows version
			//
			OperatingSystem osInfo = Environment.OSVersion;

			if((osInfo.Version.Major < 4)
				|| (osInfo.Platform == PlatformID.Win32S)
				|| (osInfo.Platform == PlatformID.Win32Windows))
			{
				idConsole.Error("{0} requires Windows XP or above", idE.GameName);
			}
			else if(osInfo.Platform == PlatformID.Win32NT)
			{
				if(osInfo.Version.Major <= 4)
				{
					idE.CvarSystem.SetString("sys_arch", "WinNT (NT)");
				}
				else if((osInfo.Version.Major == 5) && (osInfo.Version.Minor == 0))
				{
					idE.CvarSystem.SetString("sys_arch", "Win2K (NT)");
				}
				else if((osInfo.Version.Major == 5) && (osInfo.Version.Minor == 1))
				{
					idE.CvarSystem.SetString("sys_arch", "WinXP (NT)");
				}
				else if((osInfo.Version.Major == 6) && (osInfo.Version.Minor == 0))
				{
					idE.CvarSystem.SetString("sys_arch", "Vista");
				}
				else if((osInfo.Version.Major == 6) && (osInfo.Version.Minor == 1))
				{
					idE.CvarSystem.SetString("sys_arch", "Windows 7");
				}
				else
				{
					idE.CvarSystem.SetString("sys_arch", "Unknown NT variant");
				}
			}

			//
			// CPU type
			//			
			if(Environment.OSVersion.Version.Major >= 6)
			{
				idConsole.WriteLine("{0} MHz, {1} cores, {2} threads", idE.Platform.ClockSpeed, idE.Platform.CoreCount, idE.Platform.ThreadCount);
			}
			else
			{
				idConsole.WriteLine("{0} MHz", idE.Platform.ClockSpeed);
			}

			CpuCapabilities caps = idE.Platform.GetCpuCapabilities();

			string capabilities = string.Empty;

			if((caps & CpuCapabilities.AMD) == CpuCapabilities.AMD)
			{
				capabilities += "AMD CPU";
			}
			else if((caps & CpuCapabilities.Intel) == CpuCapabilities.Intel)
			{
				capabilities += "Intel CPU";
			}
			else if((caps & CpuCapabilities.Unsupported) == CpuCapabilities.Unsupported)
			{
				capabilities += "unsupported CPU";
			}
			else
			{
				capabilities += "generic CPU";
			}

			// TODO: can't make use of any of these features but nice to identify them anyway.
			/*string += " with ";
			if ( win32.cpuid & CPUID_MMX ) {
				string += "MMX & ";
			}
			if ( win32.cpuid & CPUID_3DNOW ) {
				string += "3DNow! & ";
			}
			if ( win32.cpuid & CPUID_SSE ) {
				string += "SSE & ";
			}
			if ( win32.cpuid & CPUID_SSE2 ) {
				string += "SSE2 & ";
			}
			if ( win32.cpuid & CPUID_SSE3 ) {
				string += "SSE3 & ";
			}
			if ( win32.cpuid & CPUID_HTT ) {
				string += "HTT & ";
			}
			string.StripTrailing( " & " );
			string.StripTrailing( " with " );*/

			idE.CvarSystem.SetString("sys_cpustring", capabilities);

			idConsole.WriteLine(capabilities);
			idConsole.WriteLine("{0} MB system memory", idE.Platform.TotalPhysicalMemory);
			idConsole.WriteLine("{0} MB video memory", idE.Platform.TotalVideoMemory);
		}