570 lines
16 KiB
ObjectPascal
570 lines
16 KiB
ObjectPascal
unit mainu;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
StdCtrls, Buttons, IniFiles, ComCtrls, ExtCtrls;
|
|
|
|
type
|
|
TForm1 = class(TForm)
|
|
BitBtn1: TBitBtn;
|
|
BitBtn2: TBitBtn;
|
|
ComboBox2: TComboBox;
|
|
Label3: TLabel;
|
|
Button1: TButton;
|
|
Button2: TButton;
|
|
PageControl1: TPageControl;
|
|
TabSheet1: TTabSheet;
|
|
TabSheet2: TTabSheet;
|
|
TabSheet3: TTabSheet;
|
|
TabSheet4: TTabSheet;
|
|
GroupBox1: TGroupBox;
|
|
RadioButton1: TRadioButton;
|
|
RadioButton2: TRadioButton;
|
|
RadioButton3: TRadioButton;
|
|
CheckBox1: TCheckBox;
|
|
GroupBox5: TGroupBox;
|
|
CheckBox6: TCheckBox;
|
|
Resolution: TGroupBox;
|
|
GroupBox4: TGroupBox;
|
|
Edit2: TEdit;
|
|
GroupBox3: TGroupBox;
|
|
Label1: TLabel;
|
|
Edit1: TEdit;
|
|
Memo1: TMemo;
|
|
GroupBox2: TGroupBox;
|
|
RadioButton5: TRadioButton;
|
|
RadioButton6: TRadioButton;
|
|
RadioButton4: TRadioButton;
|
|
Other: TGroupBox;
|
|
CheckBox3: TCheckBox;
|
|
CheckBox2: TCheckBox;
|
|
ComboBox1: TComboBox;
|
|
TabSheet5: TTabSheet;
|
|
PaintBox1: TPaintBox;
|
|
Image1: TImage;
|
|
Panel1: TPanel;
|
|
ComboBox4: TComboBox;
|
|
ComboBox3: TComboBox;
|
|
Label2: TLabel;
|
|
Label4: TLabel;
|
|
ChkCaustics: TCheckBox;
|
|
ChkWaterShader: TCheckBox;
|
|
Button3: TButton;
|
|
ChkTLerp: TCheckBox;
|
|
ChkViewModel: TCheckBox;
|
|
GrbShadows: TGroupBox;
|
|
ChkPlayerShadow: TCheckBox;
|
|
ChkEntityShadows: TCheckBox;
|
|
ChkWorldShadows: TCheckBox;
|
|
CmbAniso: TComboBox;
|
|
Label5: TLabel;
|
|
GroupBox6: TGroupBox;
|
|
CheckBox5: TCheckBox;
|
|
ChkBump: TCheckBox;
|
|
ChkGloss: TCheckBox;
|
|
ChkSound: TCheckBox;
|
|
ChkCDAudio: TCheckBox;
|
|
ChkBumpmaps: TCheckBox;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure BitBtn2Click(Sender: TObject);
|
|
procedure BitBtn1Click(Sender: TObject);
|
|
procedure BitBtn3Click(Sender: TObject);
|
|
procedure Button1Click(Sender: TObject);
|
|
procedure ComboBox2Change(Sender: TObject);
|
|
procedure Button2Click(Sender: TObject);
|
|
procedure PaintBox1Paint(Sender: TObject);
|
|
procedure Button3Click(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
CurrentConfig : String;
|
|
CreditsList : TStringList;
|
|
|
|
Procedure CreateModeList;
|
|
Function AssembleParamString : string;
|
|
Function GetMirIndex : integer;
|
|
Function GetTexIndex : integer;
|
|
Function GetFilter : string;
|
|
Function GetForceWaterIndex : integer;
|
|
Function GetCompressionIndex : integer;
|
|
Function GetSampleRate : integer;
|
|
Function GetSampleBits : integer;
|
|
Procedure LoadConfig(Ident : String);
|
|
Procedure SaveConfig(Ident : String);
|
|
Function FindConfigs : integer;
|
|
Function GetAnisotropy : integer;
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
uses cred;
|
|
|
|
{$R *.DFM}
|
|
|
|
var
|
|
modes : array[0..255] of tdevMode;
|
|
|
|
function DisplayModeInfo(index : integer) : string;
|
|
var
|
|
amode : ^tdevMode;
|
|
i : integer;
|
|
begin
|
|
if index >= 255 then
|
|
begin
|
|
Result := 'STOP';
|
|
exit;
|
|
end;
|
|
|
|
if not EnumDisplaySettings(nil,index,modes[index]) then
|
|
begin
|
|
Result := 'STOP';
|
|
exit;
|
|
end;
|
|
|
|
amode := @modes[index];
|
|
//force 16 or 32 bit modes
|
|
if amode.dmBitsPerPel <> 32 then
|
|
begin
|
|
result := '';
|
|
end else
|
|
begin
|
|
//search if you already have the specified resolution in the list...
|
|
|
|
for i := 0 to index-1 do
|
|
begin
|
|
if (modes[index].dmPelsWidth = modes[i].dmPelsWidth)
|
|
and (modes[index].dmPelsHeight = modes[i].dmPelsHeight)
|
|
and (modes[i].dmBitsPerPel = 32) then
|
|
begin
|
|
//yes? then just skip it
|
|
result := '';
|
|
exit;
|
|
end;
|
|
end;
|
|
|
|
result := inttostr(amode.dmPelsWidth)+' x '+
|
|
inttostr(amode.dmPelsHeight)+' x '+
|
|
inttostr(amode.dmBitsPerPel);
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.CreateModeList;
|
|
var
|
|
s : string;
|
|
i : integer;
|
|
begin
|
|
i := 0;
|
|
s := DisplayModeInfo(i);
|
|
while s <> 'STOP' do
|
|
begin
|
|
if s <> '' then ComboBox1.Items.AddObject(s,Pointer(i));
|
|
inc(i);
|
|
s := DisplayModeInfo(i);
|
|
end;
|
|
if ComboBox1.Items.Count = 0 then
|
|
begin
|
|
ComboBox1.Items.Add('No 32 bit modes found');
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.FormCreate(Sender: TObject);
|
|
begin
|
|
Application.Title := 'Tenebrae Config';
|
|
CreateModeList;
|
|
ComboBox1.ItemIndex := 0;
|
|
|
|
if FindConfigs = 0 then
|
|
begin
|
|
SaveConfig('Standard');
|
|
FindConfigs;
|
|
end;
|
|
ComboBox2.ItemIndex := 0;
|
|
CurrentConfig := ComboBox2.Items.Strings[ComboBox2.ItemIndex];
|
|
LoadConfig(CurrentConfig);
|
|
|
|
CreditsList := TStringList.Create;
|
|
CreditsList.LoadFromFile('credits.txt');
|
|
|
|
PageControl1.ActivePage := TabSheet5;
|
|
end;
|
|
|
|
function TForm1.GetMirIndex : integer;
|
|
begin
|
|
//cleaner code and shutsup compiler warnings -AdamJ
|
|
if RadioButton2.Checked then
|
|
begin
|
|
result := 1;
|
|
exit;
|
|
end
|
|
else if RadioButton3.Checked then
|
|
begin
|
|
result := 2;
|
|
exit;
|
|
end
|
|
else
|
|
result := 0;
|
|
end;
|
|
|
|
function TForm1.GetTexIndex : integer;
|
|
begin
|
|
//cleaner code and shutsup compiler warnings -AdamJ
|
|
if RadioButton5.Checked then
|
|
begin
|
|
result := 1;
|
|
exit;
|
|
end
|
|
else if RadioButton6.Checked then
|
|
begin
|
|
result := 2;
|
|
exit;
|
|
end
|
|
else
|
|
result := 0;
|
|
end;
|
|
|
|
function TForm1.GetForceWaterIndex : integer;
|
|
begin
|
|
if CheckBox1.Checked then
|
|
begin
|
|
result := 1;
|
|
exit;
|
|
end;
|
|
result := 0;
|
|
exit;
|
|
end;
|
|
|
|
function TForm1.GetCompressionIndex : integer;
|
|
var lvl:integer;
|
|
begin
|
|
lvl:=0;
|
|
if CheckBox5.Checked then lvl:=lvl+1;
|
|
if ChkBump.Checked then lvl:=lvl+2;
|
|
if ChkGloss.Checked then lvl:=lvl+4;
|
|
GetCompressionIndex:=lvl;
|
|
end;
|
|
|
|
function TForm1.GetFilter : string;
|
|
begin
|
|
if CheckBox3.Checked then
|
|
result := 'GL_LINEAR_MIPMAP_LINEAR'
|
|
else
|
|
result := 'GL_LINEAR_MIPMAP_NEAREST';
|
|
end;
|
|
|
|
function TForm1.GetSampleRate : integer;
|
|
begin
|
|
result := 22050;
|
|
case ComboBox3.ItemIndex of
|
|
0: result := 11025;
|
|
1: result := 22050;
|
|
2: result := 44100;
|
|
end;
|
|
end;
|
|
|
|
function TForm1.GetAnisotropy : integer;
|
|
begin
|
|
result := 1;
|
|
case CmbAniso.ItemIndex of
|
|
0: result := 1;
|
|
1: result := 2;
|
|
2: result := 4;
|
|
3: result := 8;
|
|
end;
|
|
end;
|
|
|
|
function TForm1.GetSampleBits : integer;
|
|
begin
|
|
result := 16;
|
|
case ComboBox4.ItemIndex of
|
|
0: result := 8;
|
|
1: result := 16;
|
|
end;
|
|
end;
|
|
|
|
function TForm1.AssembleParamString : string;
|
|
var
|
|
s : string;
|
|
amode : ^tdevMode;
|
|
begin
|
|
amode := @modes[integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex])];
|
|
|
|
//screen res
|
|
s := ' -width '+IntToStr(amode.dmPelsWidth)+' -height '+IntToStr(amode.dmPelsHeight)+' -bpp 32 ';
|
|
//mirrors
|
|
s := s + '+mir_detail ' + IntToStr(getMirIndex) + ' +mir_forcewater ' + IntToStr(GetForceWaterIndex) + ' ';
|
|
//textures
|
|
s := s + '+gl_picmip ' + IntToStr(getTexIndex) + ' ';
|
|
//lightgen
|
|
s := s + '+sh_radiusscale '+ Edit1.Text;
|
|
//windowed
|
|
if CheckBox2.Checked then
|
|
s := s+' -window';
|
|
//texture filtering
|
|
s := s+' +gl_texturemode '+GetFilter+' ';
|
|
s := s+' -anisotropy '+inttostr(GetAnisotropy)+' ';
|
|
|
|
if ChkSound.checked=false then s := s+' -nosound ';
|
|
if ChkCDAudio.checked=false then s := s+' -nocdaudio ';
|
|
if ChkBumpmaps.checked=false then s := s+' -nobumpmaps ';
|
|
|
|
{You need to do this so when the option is unchecked it is
|
|
properly disabled instead of using default or .cfg setting -Adam}
|
|
s := s+ ' +gl_compress_textures '+inttostr(GetCompressionIndex)+' ';
|
|
s := s+' +sh_glares '+booltostr(CheckBox6.Checked)+' ';
|
|
s := s+' +gl_caustics '+booltostr(ChkCaustics.Checked)+' ';
|
|
s := s+' +gl_watershader '+booltostr(ChkWaterShader.Checked)+' ';
|
|
s := s+' +r_drawviewmodel '+booltostr(ChkViewModel.Checked)+' ';
|
|
s := s+' +gl_transformlerp '+booltostr(ChkTLerp.Checked)+' ';
|
|
s := s+' +sh_playershadow '+booltostr(ChkPlayerShadow.Checked)+' ';
|
|
s := s+' +sh_entityshadows '+booltostr(ChkEntityShadows.Checked)+' ';
|
|
s := s+' +sh_worldshadows '+booltostr(ChkWorldShadows.Checked)+' ';
|
|
|
|
s := s+'-sndspeed '+IntToStr(getSampleRate)+' ';
|
|
s := s+'-sndbits '+IntToStr(getSampleBits)+' ';
|
|
|
|
//aditional params
|
|
s := s+' '+edit2.text;
|
|
|
|
result := s;
|
|
end;
|
|
|
|
procedure TForm1.LoadConfig(Ident : String);
|
|
var
|
|
IniFile : TIniFile;
|
|
begin
|
|
IniFile := TIniFile.Create(ExtractFileDir(ParamStr(0))+'\'+ident+'.tcfg');
|
|
RadioButton1.Checked := IniFile.ReadBool('MIRROR','Disabled',false);
|
|
RadioButton2.Checked := IniFile.ReadBool('MIRROR','World',true);
|
|
RadioButton3.Checked := IniFile.ReadBool('MIRROR','Full',false);
|
|
CheckBox1.Checked := IniFile.ReadBool('MIRROR','ForceWater',false);
|
|
|
|
RadioButton4.Checked := IniFile.ReadBool('TEXTURE','Full',true);
|
|
RadioButton5.Checked := IniFile.ReadBool('TEXTURE','HalfSize',false);
|
|
RadioButton6.Checked := IniFile.ReadBool('TEXTURE','QuadSize',true);
|
|
CheckBox3.Checked := IniFile.ReadBool('TEXTURE','TriLinear',false);
|
|
CmbAniso.ItemIndex := IniFile.ReadInteger('TEXTURE','Anisotropy',0);
|
|
CheckBox5.Checked := IniFile.ReadBool('TEXTURE','Compression',false);
|
|
ChkBump.Checked := IniFile.ReadBool('TEXTURE','CompressBump',false);
|
|
ChkGloss.Checked := IniFile.ReadBool('TEXTURE','CompressGloss',false);
|
|
ChkCaustics.Checked := IniFile.ReadBool('TEXTURE','Caustics',true);
|
|
ChkWaterShader.Checked := IniFile.ReadBool('TEXTURE','WaterShader',true);
|
|
ChkBumpmaps.Checked := IniFile.ReadBool('TEXTURE','Bumpmaps',true);
|
|
|
|
ComboBox1.ItemIndex := IniFile.ReadInteger('RESOLUTION','Mode',0);
|
|
CheckBox2.Checked := IniFile.ReadBool('RESOLUTION','Windowed',false);
|
|
|
|
Edit1.Text := IniFile.ReadString('LIGHTS','Radiusscale','0.5');
|
|
CheckBox6.Checked := IniFile.ReadBool('LIGHTS','Glares',false);
|
|
|
|
ChkPlayerShadow.Checked := IniFile.ReadBool('SHADOWS','Player',true);
|
|
ChkEntityShadows.Checked := IniFile.ReadBool('SHADOWS','Entity',true);
|
|
ChkWorldShadows.Checked := IniFile.ReadBool('SHADOWS','World',true);
|
|
|
|
ChkViewModel.Checked := IniFile.ReadBool('MISC','DrawViewModel',true);
|
|
ChkTLerp.Checked := IniFile.ReadBool('MISC','TransformInterpolation',false);
|
|
Edit2.Text := IniFile.ReadString('MISC','Extra','');
|
|
|
|
ComboBox3.ItemIndex := IniFile.ReadInteger('SOUND','Hz',1);
|
|
ComboBox4.ItemIndex := IniFile.ReadInteger('SOUND','Bits',1);
|
|
ChkSound.Checked := IniFile.ReadBool('SOUND','SoundEnabled',true);
|
|
ChkCDAudio.Checked := IniFile.ReadBool('SOUND','CDAudio',true);
|
|
|
|
IniFile.Free;
|
|
end;
|
|
|
|
procedure TForm1.SaveConfig(Ident : String);
|
|
var
|
|
IniFile : TIniFile;
|
|
begin
|
|
IniFile := TIniFile.Create(ExtractFileDir(ParamStr(0))+'\'+ident+'.tcfg');
|
|
IniFile.WriteBool('MIRROR','Disabled',RadioButton1.Checked);
|
|
IniFile.WriteBool('MIRROR','World',RadioButton2.Checked);
|
|
IniFile.WriteBool('MIRROR','Full',RadioButton3.Checked);
|
|
IniFile.WriteBool('MIRROR','ForceWater',CheckBox1.Checked);
|
|
|
|
IniFile.WriteBool('TEXTURE','Full',RadioButton4.Checked);
|
|
IniFile.WriteBool('TEXTURE','HalfSize',RadioButton5.Checked);
|
|
IniFile.WriteBool('TEXTURE','QuadSize',RadioButton6.Checked);
|
|
IniFile.WriteBool('TEXTURE','TriLinear',CheckBox3.Checked);
|
|
IniFile.WriteInteger('TEXTURE','Anisotropy',CmbAniso.ItemIndex);
|
|
IniFile.WriteBool('TEXTURE','Compression',CheckBox5.Checked);
|
|
IniFile.WriteBool('TEXTURE','CompressBump',ChkBump.Checked);
|
|
IniFile.WriteBool('TEXTURE','CompressGloss',ChkGloss.Checked);
|
|
IniFile.WriteBool('TEXTURE','Caustics',ChkCaustics.Checked);
|
|
IniFile.WriteBool('TEXTURE','WaterShader',ChkWaterShader.Checked);
|
|
IniFile.WriteBool('TEXTURE','Bumpmaps',ChkBumpmaps.Checked);
|
|
|
|
IniFile.WriteInteger('RESOLUTION','Mode',ComboBox1.ItemIndex);
|
|
IniFile.WriteBool('RESOLUTION','Windowed',CheckBox2.Checked);
|
|
|
|
IniFile.WriteString('LIGHTS','Radiusscale',Edit1.Text);
|
|
IniFile.WriteBool('LIGHTS','Glares',CheckBox6.Checked);
|
|
|
|
IniFile.WriteBool('SHADOWS','Player',ChkPlayerShadow.Checked);
|
|
IniFile.WriteBool('SHADOWS','Entity',ChkEntityShadows.Checked);
|
|
IniFile.WriteBool('SHADOWS','World',ChkWorldShadows.Checked);
|
|
|
|
IniFile.WriteBool('MISC','DrawViewModel',ChkViewModel.Checked);
|
|
IniFile.WriteBool('MISC','TransformInterpolation',ChkTLerp.Checked);
|
|
IniFile.WriteString('MISC','Extra',Edit2.Text);
|
|
|
|
IniFile.WriteInteger('SOUND','Hz',ComboBox3.ItemIndex);
|
|
IniFile.WriteInteger('SOUND','Bits',ComboBox4.ItemIndex);
|
|
IniFile.WriteBool('SOUND','SoundEnabled',ChkSound.Checked);
|
|
IniFile.WriteBool('SOUND','CDAudio',ChkCDAudio.Checked);
|
|
|
|
Inifile.Free;
|
|
end;
|
|
|
|
Function ExtractFileBase(v : String) : String;
|
|
begin
|
|
//hack assume extension is 5 chars (.tcfg)
|
|
result := Copy(v,0,length(v)-5);
|
|
end;
|
|
|
|
Function TForm1.FindConfigs : integer;
|
|
var
|
|
F : TSearchRec;
|
|
Res, Count : Integer;
|
|
begin
|
|
Res := FindFirst(ExtractFileDir(ParamStr(0))+'\*.tcfg',0,F);
|
|
Count := 0;
|
|
ComboBox2.Items.Clear;
|
|
while (Res = 0) do
|
|
begin
|
|
ComboBox2.Items.Add(ExtractFileBase(F.Name));
|
|
Inc(Count);
|
|
Res := FindNext(F);
|
|
end;
|
|
FindClose(F);
|
|
|
|
result := Count;
|
|
end;
|
|
|
|
procedure TForm1.BitBtn2Click(Sender: TObject);
|
|
var
|
|
winbestand : array [0..1024] of char;
|
|
toexec : String;
|
|
begin
|
|
toexec := 'tenebrae.exe' + AssembleParamString;
|
|
if winexec(StrPCopy(winbestand, toexec),sw_show) < 31 then messagedlg('Windows'+
|
|
' could not launch Tenebrae'+chr(13)+ToExec,mterror,[mbok],0);
|
|
SaveConfig(CurrentConfig);
|
|
application.terminate;
|
|
end;
|
|
|
|
procedure TForm1.BitBtn1Click(Sender: TObject);
|
|
begin
|
|
SaveConfig(CurrentConfig);
|
|
Application.Terminate;
|
|
end;
|
|
|
|
procedure TForm1.BitBtn3Click(Sender: TObject);
|
|
begin
|
|
Form2.ShowModal;
|
|
end;
|
|
|
|
procedure TForm1.Button1Click(Sender: TObject);
|
|
var
|
|
newname : string;
|
|
begin
|
|
NewName := 'NewProfile'+IntToStr(ComboBox2.Items.Count);
|
|
if not InputQuery('Enter profile name','Enter a name for the new profile',newname) then
|
|
exit;
|
|
SaveConfig(CurrentConfig);
|
|
if newname = '' then
|
|
begin
|
|
newname := 'Necrophilia!';
|
|
//Edit2.Text := 'The pale skin, memory''s off the...';
|
|
//Edit1.Text := '... moonlight';
|
|
end;
|
|
SaveConfig(newname);
|
|
CurrentConfig := newname;
|
|
//FindConfigs;
|
|
ComboBox2.Items.Add(newname);
|
|
ComboBox2.ItemIndex := ComboBox2.Items.Count-1;
|
|
end;
|
|
|
|
procedure TForm1.ComboBox2Change(Sender: TObject);
|
|
begin
|
|
SaveConfig(CurrentConfig);
|
|
CurrentConfig := ComboBox2.Items.Strings[ComboBox2.ItemIndex];
|
|
LoadConfig(CurrentConfig);
|
|
end;
|
|
|
|
procedure TForm1.Button2Click(Sender: TObject);
|
|
begin
|
|
If ComboBox2.Items.Count < 2 then
|
|
begin
|
|
messagedlg('You need at least one profile',mterror,[mbok],0);
|
|
exit;
|
|
end;
|
|
CurrentConfig := ComboBox2.Items.Strings[ComboBox2.ItemIndex];
|
|
DeleteFile(ExtractFileDir(ParamStr(0))+'\'+CurrentConfig+'.tcfg');
|
|
FindConfigs;
|
|
ComboBox2.ItemIndex := 0;
|
|
CurrentConfig := ComboBox2.Items.Strings[ComboBox2.ItemIndex];
|
|
LoadConfig(CurrentConfig);
|
|
end;
|
|
|
|
procedure TForm1.PaintBox1Paint(Sender: TObject);
|
|
var
|
|
rect: TRect;
|
|
begin
|
|
Paintbox1.Canvas.Brush.Style := bsClear;
|
|
|
|
//simple drop shadow
|
|
rect.Left := 2;
|
|
rect.Right := Paintbox1.Width+2;
|
|
rect.Top := 1;
|
|
rect.Bottom := Paintbox1.Height+1;
|
|
Paintbox1.Canvas.Font.Color := clBlack;
|
|
DrawText(Paintbox1.Canvas.Handle,PChar(CreditsList.text),length(CreditsList.text),rect,DT_CENTER);
|
|
|
|
rect.Left := 0;
|
|
rect.Right := Paintbox1.Width;
|
|
rect.Top := 0;
|
|
rect.Bottom := Paintbox1.Height;
|
|
Paintbox1.Canvas.Font.Color := clWhite;
|
|
DrawText(Paintbox1.Canvas.Handle,PChar(CreditsList.text),length(CreditsList.text),rect,DT_CENTER);
|
|
end;
|
|
|
|
procedure TForm1.Button3Click(Sender: TObject);
|
|
begin
|
|
//For those to lazy to do it manaually :P -AdamJ
|
|
if MessageBox(0,PChar('Warning: This will reset all your current settings.'+chr(13)+'Continue?'),PChar('Warning'), +mb_YesNo +mb_ICONWARNING) <> 6 then
|
|
Exit;
|
|
Edit1.Text:='0.4';
|
|
Edit2.Text:='';
|
|
CheckBox1.Checked:=false;
|
|
CheckBox2.Checked:=false;
|
|
CheckBox3.Checked:=false;
|
|
CmbAniso.ItemIndex:=0;
|
|
CheckBox5.Checked:=false;
|
|
CheckBox6.Checked:=false;
|
|
ChkCaustics.Checked:=true;
|
|
ChkWaterShader.Checked:=true;
|
|
ChkViewModel.Checked:=true;
|
|
ChkTLerp.Checked:=false;
|
|
ChkPlayerShadow.Checked:=true;
|
|
ChkEntityShadows.Checked:=true;
|
|
ChkWorldShadows.Checked:=true;
|
|
RadioButton2.Checked:=true;
|
|
RadioButton4.Checked:=true;
|
|
ComboBox3.ItemIndex:=0;
|
|
ComboBox4.ItemIndex:=1;
|
|
if ComboBox1.Items[6]='800 x 600 x 32' then ComboBox1.ItemIndex:=6;
|
|
ChkBump.Checked:=false;
|
|
ChkGloss.Checked:=false;
|
|
ChkSound.Checked:=true;
|
|
ChkCDAudio.Checked:=true;
|
|
ChkBumpmaps.Checked:=true;
|
|
end;
|
|
|
|
end.
|