idTech4.idSystem.Cmd_ExecMachineSpec C# (CSharp) Method

Cmd_ExecMachineSpec() private method

private Cmd_ExecMachineSpec ( object sender, CommandEventArgs e ) : void
sender object
e CommandEventArgs
return void
		private void Cmd_ExecMachineSpec(object sender, CommandEventArgs e)
		{
			switch(idE.CvarSystem.GetInteger("com_machineSpec"))
			{
				case 3:
					SetUltraHighQuality();
					break;

				case 2:
					SetHighQuality();
					break;

				case 1:
					SetMediumQuality();
					break;

				default:
					SetLowQuality();
					break;
			}

			if(idE.Platform.TotalVideoMemory < 128)
			{
				idE.CvarSystem.SetBool("image_ignoreHighQuality", true, CvarFlags.Archive);
				idE.CvarSystem.SetInteger("image_downSize", 1, CvarFlags.Archive);
				idE.CvarSystem.SetInteger("image_downSizeLimit", 256, CvarFlags.Archive);
				idE.CvarSystem.SetInteger("image_downSizeSpecular", 1, CvarFlags.Archive);
				idE.CvarSystem.SetInteger("image_downSizeSpecularLimit", 64, CvarFlags.Archive);
				idE.CvarSystem.SetInteger("image_downSizeBump", 1, CvarFlags.Archive);
				idE.CvarSystem.SetInteger("image_downSizeBumpLimit", 256, CvarFlags.Archive);
			}

			if(idE.Platform.TotalVideoMemory < 512)
			{
				idE.CvarSystem.SetBool("image_ignoreHighQuality", true, CvarFlags.Archive);
				idE.CvarSystem.SetInteger("s_maxSoundsPerShader", 1, CvarFlags.Archive);
				idE.CvarSystem.SetInteger("image_downSize", 1, CvarFlags.Archive);
				idE.CvarSystem.SetInteger("image_downSizeLimit", 256, CvarFlags.Archive);
				idE.CvarSystem.SetInteger("image_downSizeSpecular", 1, CvarFlags.Archive);
				idE.CvarSystem.SetInteger("image_downSizeSpecularLimit", 64, CvarFlags.Archive);
				idE.CvarSystem.SetBool("com_purgeAll", true, CvarFlags.Archive);
				idE.CvarSystem.SetBool("r_forceLoadImages", true, CvarFlags.Archive);
			}
			else
			{
				idE.CvarSystem.SetBool("com_purgeAll", false, CvarFlags.Archive);
				idE.CvarSystem.SetBool("r_forceLoadImages", false, CvarFlags.Archive);
			}

			// TODO
			/*bool oldCard = false;
			bool nv10or20 = false;
			renderSystem->GetCardCaps( oldCard, nv10or20 );
			if ( oldCard ) {
				cvarSystem->SetCVarBool( "g_decals", false, CVAR_ARCHIVE );
				cvarSystem->SetCVarBool( "g_projectileLights", false, CVAR_ARCHIVE );
				cvarSystem->SetCVarBool( "g_doubleVision", false, CVAR_ARCHIVE );
				cvarSystem->SetCVarBool( "g_muzzleFlash", false, CVAR_ARCHIVE );
			} else {*/
			idE.CvarSystem.SetBool("g_decals", true, CvarFlags.Archive);
			idE.CvarSystem.SetBool("g_projectileLights", true, CvarFlags.Archive);
			idE.CvarSystem.SetBool("g_doubleVision", true, CvarFlags.Archive);
			idE.CvarSystem.SetBool("g_muzzleFlash", true, CvarFlags.Archive);
			/*}
			if ( nv10or20 ) {*/
			idE.CvarSystem.SetInteger("image_useNormalCompression", 1, CvarFlags.Archive);
			/*}*/

#if MACOS_X
			// TODO MACOS
			// On low settings, G4 systems & 64MB FX5200/NV34 Systems should default shadows off
			bool oldArch;
			int vendorId, deviceId, cpuId;
			OSX_GetVideoCard( vendorId, deviceId );
			OSX_GetCPUIdentification( cpuId, oldArch );
			bool isFX5200 = vendorId == 0x10DE && ( deviceId & 0x0FF0 ) == 0x0320;
			if ( ( oldArch || ( isFX5200 && Sys_GetVideoRam() < 128 ) ) && com_machineSpec.GetInteger() == 0 ) {
				cvarSystem->SetCVarBool( "r_shadows", false, CVAR_ARCHIVE );
			} else {
				cvarSystem->SetCVarBool( "r_shadows", true, CVAR_ARCHIVE );
			}
#endif
		}
		#endregion