-
Notifications
You must be signed in to change notification settings - Fork 4
/
silent_options.iss
234 lines (186 loc) · 9.1 KB
/
silent_options.iss
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
[Code]
// Returns the value of the default parameter. If the parameter is not set, DefaultValue will be returned
function GetParamInt(Name: string; DefaultValue: Integer) : Integer;
begin
Result := StrToIntDef(ExpandConstant('{param:' + Name + '|' + IntToStr(DefaultValue) + '}'), DefaultValue);
end;
// The same as above but returns a string instead of an Integer
function GetParamStr(Name: string; DefaultValue: string) : string;
begin
Result := ExpandConstant('{param:' + Name + '|' + DefaultValue + '}');
end;
function CmdLineParamExists(const Value: string): Boolean;
var
I: Integer;
begin
Result := False;
for I := 1 to ParamCount do
if CompareText(ParamStr(I), Value) = 0 then
begin
Result := True;
Exit;
end;
end;
// These options are mostly for debugging
procedure SetDebugOptions();
begin
if CmdLineParamExists('/ForceWineOff') then
IsWine := false;
if CmdLineParamExists('/ForceWineOn') then
IsWine := true;
if CmdLineParamExists('/ForceNoLightingBug') then
HasLightingBug := false;
if CmdLineParamExists('/ForceHasLightingBug') then
HasLightingBug := true;
if CmdLineParamExists('/ForceNVIDIA') then
GpuManufacturer := NVIDIAOrOther;
if CmdLineParamExists('/ForceAMD') then
GpuManufacturer := AMD;
if CmdLineParamExists('/NoMsvcRedist') then
NoMsvcRedist := True;
if CmdLineParamExists('/LegacyDirCpy') then
LegacyDirCpy := True;
end;
// Parses all selected options from the command line arguments and sets them directly in the UI elements
procedure SetSilentOptions();
var
DefaultIcons, SelectedIcons: Integer;
DefaultGraphicsApi, SelectedGraphicsApi: Integer;
DefaultReflections, SelectedReflections: Integer;
DefaultJumpTunnel, SelectedJumpTunnel: Integer;
begin
// Installation type
if CmdLineParamExists('/NoOptions') then
BasicInstall.Checked := True;
// Select Freelancer installation
DataDirPage.Values[0] := GetParamStr('VanillaFlDir', DataDirPage.Values[0]);
// Single Player ID Code
CallSign.SelectedValueIndex := GetParamInt('CallSign', CallSign.SelectedValueIndex);
// More NPC voices
PitchVariations.Checked := GetParamInt('PitchVariations', Integer(PitchVariations.Checked)) = 1;
// Regeneratable NPC shields
RegeneratableShields.Checked := GetParamInt('RegeneratableShields', Integer(RegeneratableShields.Checked)) = 1;
// No Countermeasure activation on right-click
NoCountermeasureRightClick.Checked := GetParamInt('NoCountermeasureRightClick', Integer(NoCountermeasureRightClick.Checked)) = 1;
// Advanced audio options
AdvancedAudioOptions.Checked := GetParamInt('AdvancedAudioOptions', Integer(AdvancedAudioOptions.Checked)) = 1;
// Localization
EnglishImprovements.Checked := GetParamInt('EnglishImprovements', Integer(EnglishImprovements.Checked)) = 1;
RussianFonts.Checked := GetParamInt('RussianFonts', Integer(RussianFonts.Checked)) = 1;
// Single Player options
StoryMode.ItemIndex := GetParamInt('StoryMode', Integer(StoryMode.ItemIndex));
LevelRequirements.Checked := GetParamInt('LevelRequirements', Integer(LevelRequirements.Checked)) = 1;
NewSaveFolder.Checked := GetParamInt('NewSaveFolder', Integer(NewSaveFolder.Checked)) = 1;
// Startup Screen Resolution
StartupRes.SelectedValueIndex := GetParamInt('StartupRes', StartupRes.SelectedValueIndex);
// Freelancer Logo Resolution
LogoRes.SelectedValueIndex := GetParamInt('LogoRes', LogoRes.SelectedValueIndex);
// Small text on larger resolutions
SmallText.SelectedValueIndex := GetParamInt('SmallText', SmallText.SelectedValueIndex);
// Advanced Widescreen HUD
WidescreenHud.Checked := GetParamInt('WidescreenHud', Integer(WidescreenHud.Checked)) = 1;
WeaponGroups.Checked := GetParamInt('WeaponGroups', Integer(WeaponGroups.Checked)) = 1;
// Custom HUD, Icons and NavMap
DarkHud.Checked := GetParamInt('DarkHud', Integer(DarkHud.Checked)) = 1;
if VanillaIcons.Checked then
DefaultIcons := 0
else if AlternativeIcons.Checked then
DefaultIcons := 1
else if FlatIcons.Checked then
DefaultIcons := 2;
SelectedIcons := GetParamInt('Icons', DefaultIcons);
if SelectedIcons = 0 then
VanillaIcons.Checked := True
else if SelectedIcons = 1 then
AlternativeIcons.Checked := True
else if SelectedIcons = 2 then
FlatIcons.Checked := True;
CustomNavMap.Checked := GetParamInt('CustomNavMap', Integer(CustomNavMap.Checked)) = 1;
// Fix clipping with 16:9 resolution planetspaces
PlanetScape.Checked := GetParamInt('PlanetScape', Integer(PlanetScape.Checked)) = 1;
// Graphics API
if DgVoodooGraphicsApi.Checked then
DefaultGraphicsApi := 0
else if DxWrapperGraphicsApi.Checked then
DefaultGraphicsApi := 1
else if VanillaGraphicsApi.Checked then
DefaultGraphicsApi := 2
else if HasLightingBug and LightingFixGraphicsApi.Checked then
DefaultGraphicsApi := 3;
SelectedGraphicsApi := GetParamInt('GraphicsApi', DefaultGraphicsApi);
if SelectedGraphicsApi = 0 then
DgVoodooGraphicsApi.Checked := True
else if SelectedGraphicsApi = 1 then
DxWrapperGraphicsApi.Checked := True
else if SelectedGraphicsApi = 2 then
VanillaGraphicsApi.Checked := True
else if (SelectedGraphicsApi = 3) and HasLightingBug then
LightingFixGraphicsApi.Checked := True;
// dgVoodoo options
DgVoodooAa.ItemIndex := GetParamInt('DgVoodooAa', Integer(DgVoodooAa.ItemIndex));
DgVoodooAf.ItemIndex := GetParamInt('DgVoodooAf', Integer(DgVoodooAf.ItemIndex));
if GpuManufacturer = AMD then
DgVoodooRefreshRate.Text := IntToStr(GetParamInt('DgVoodooRefreshRate', StrToIntDef(DgVoodooRefreshRate.Text, RefreshRate)));
// dgVoodoo options #2
DgVoodooReShade.Checked := GetParamInt('DgVoodooReShade', Integer(DgVoodooReShade.Checked)) = 1;
DgVoodooSaturation.Checked := GetParamInt('DgVoodooSaturation', Integer(DgVoodooSaturation.Checked)) = 1;
DgVoodooSharpening.Checked := GetParamInt('DgVoodooSharpening', Integer(DgVoodooSharpening.Checked)) = 1;
DgVoodooHdr.Checked := GetParamInt('DgVoodooHdr', Integer(DgVoodooHdr.Checked)) = 1;
DgVoodooBloom.Checked := GetParamInt('DgVoodooBloom', Integer(DgVoodooBloom.Checked)) = 1;
// DxWrapper options
DxWrapperAa.ItemIndex := GetParamInt('DxWrapperAa', Integer(DxWrapperAa.ItemIndex));
DxWrapperAf.ItemIndex := GetParamInt('DxWrapperAf', Integer(DxWrapperAf.ItemIndex));
// DxWrapper options #2
DxWrapperReShade.Checked := GetParamInt('DxWrapperReShade', Integer(DxWrapperReShade.Checked)) = 1;
DxWrapperSaturation.Checked := GetParamInt('DxWrapperSaturation', Integer(DxWrapperSaturation.Checked)) = 1;
DxWrapperSharpening.Checked := GetParamInt('DxWrapperSharpening', Integer(DxWrapperSharpening.Checked)) = 1;
DxWrapperHdr.Checked := GetParamInt('DxWrapperHdr', Integer(DxWrapperHdr.Checked)) = 1;
DxWrapperBloom.Checked := GetParamInt('DxWrapperBloom', Integer(DxWrapperBloom.Checked)) = 1;
// Vanilla graphics options
VanillaAf.ItemIndex := GetParamInt('VanillaAf', Integer(VanillaAf.ItemIndex));
// Add custom effects
if VanillaReflections.Checked then
DefaultReflections := 0
else if ShinyReflections.Checked then
DefaultReflections := 1
else if ShiniestReflections.Checked then
DefaultReflections := 2;
SelectedReflections := GetParamInt('Reflections', DefaultReflections);
if SelectedReflections = 0 then
VanillaReflections.Checked := True
else if SelectedReflections = 1 then
ShinyReflections.Checked := True
else if SelectedReflections = 2 then
ShiniestReflections.Checked := True;
ExplosionEffects.Checked := GetParamInt('ExplosionEffects', Integer(ExplosionEffects.Checked)) = 1;
MissileEffects.Checked := GetParamInt('MissileEffects', Integer(MissileEffects.Checked)) = 1;
EngineTrails.Checked := GetParamInt('EngineTrails', Integer(EngineTrails.Checked)) = 1;
// Set draw distances
PageDrawDistances.SelectedValueIndex := GetParamInt('DrawDistances', PageDrawDistances.SelectedValueIndex);
// Skippable options
SkipIntros.Checked := GetParamInt('SkipIntros', Integer(SkipIntros.Checked)) = 1;
SkippableCutscenes.Checked := GetParamInt('SkippableCutscenes', Integer(SkippableCutscenes.Checked)) = 1;
if JumpTunnel10Sec.Checked then
DefaultJumpTunnel := 0
else if JumpTunnel5Sec.Checked then
DefaultJumpTunnel := 1
else if JumpTunnel2Sec.Checked then
DefaultJumpTunnel := 2
else if JumpTunnelSkip.Checked then
DefaultJumpTunnel := 3;
SelectedJumpTunnel := GetParamInt('JumpTunnel', DefaultJumpTunnel);
if SelectedJumpTunnel = 0 then
JumpTunnel10Sec.Checked := True
else if SelectedJumpTunnel = 1 then
JumpTunnel5Sec.Checked := True
else if SelectedJumpTunnel = 2 then
JumpTunnel2Sec.Checked := True
else if SelectedJumpTunnel = 3 then
JumpTunnelSkip.Checked := True;
// Misc options
SinglePlayer.Checked := GetParamInt('SinglePlayerConsole', Integer(SinglePlayer.Checked)) = 1;
BestOptions.Checked := GetParamInt('BestOptions', Integer(BestOptions.Checked)) = 1;
DisplayMode.ItemIndex := GetParamInt('DisplayMode', Integer(DisplayMode.ItemIndex));
DoNotPauseOnAltTab.Checked := GetParamInt('DoNotPauseOnAltTab', Integer(DoNotPauseOnAltTab.Checked)) = 1;
MusicInBackground := GetParamInt('MusicInBackground', Integer(NewSaveFolder.Checked)) = 1;
end;