Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_SettingsManagerVideoModule.c
Go to the documentation of this file.
2{
3 protected const int COMBO_OPTION_QUALITY = 0;
4 protected const int COMBO_OPTION_PERFORMANCE = 1;
5
6 //------------------------------------------------------------------------------------------------
7 void SetConsolePreset(int presetIndex)
8 {
9 // TODO: marian: split into methods and use switch
10 ArmaReforgerScripted game = GetGame();
11 UserSettings engineUserSettings = game.GetEngineUserSettings();
12 BaseContainer displayUserSettings = engineUserSettings.GetModule("DisplayUserSettings");
13 UserSettings videoUserSettings = engineUserSettings.GetModule("VideoUserSettings");
14 BaseContainer videoSettings = game.GetGameUserSettings().GetModule("SCR_VideoSettings");
15
16 if (!displayUserSettings || !videoUserSettings || !videoSettings)
17 return;
18
19 if (presetIndex == EVideoQualityPreset.SERIES_S_PRESET_QUALITY)
20 {
21 displayUserSettings.Set("OverallQuality", EVideoQualityPreset.SERIES_S_PRESET_QUALITY);
22 videoUserSettings.Set("ResolutionScale", 0.7);
23 videoUserSettings.Set("Fsaa", 2);
24 videoSettings.Set("m_bNearDofEffect", false);
25 videoSettings.Set("m_iDofType", DepthOfFieldTypes.SIMPLE);
26 videoUserSettings.Set("MaxFps", 30);
27 videoUserSettings.Set("Vsync", true);
28 videoSettings.Set("m_iLastUsedPreset", EVideoQualityPreset.SERIES_S_PRESET_QUALITY);
29 }
30 else if (presetIndex == EVideoQualityPreset.SERIES_S_PRESET_PERFORMANCE)
31 {
32 displayUserSettings.Set("OverallQuality", EVideoQualityPreset.SERIES_S_PRESET_PERFORMANCE);
33 videoUserSettings.Set("ResolutionScale", 0.60);
34 videoUserSettings.Set("Fsaa", 0);
35 videoSettings.Set("m_bNearDofEffect", false);
36 videoSettings.Set("m_iDofType", DepthOfFieldTypes.SIMPLE);
37 videoUserSettings.Set("MaxFps", 60);
38 videoUserSettings.Set("Vsync", true);
39 videoSettings.Set("m_iLastUsedPreset", EVideoQualityPreset.SERIES_S_PRESET_PERFORMANCE);
40 }
41 else if (presetIndex == EVideoQualityPreset.SERIES_X_PRESET_QUALITY)
42 {
43 displayUserSettings.Set("OverallQuality", EVideoQualityPreset.SERIES_X_PRESET_QUALITY);
44 videoUserSettings.Set("ResolutionScale", 0.75);
45 videoUserSettings.Set("Fsaa", 2);
46 videoSettings.Set("m_bNearDofEffect", false);
47 videoSettings.Set("m_iDofType", DepthOfFieldTypes.SIMPLE );
48 videoUserSettings.Set("MaxFps", 30);
49 videoUserSettings.Set("Vsync", true);
50 videoSettings.Set("m_iLastUsedPreset", EVideoQualityPreset.SERIES_X_PRESET_QUALITY);
51 }
52 else if (presetIndex == EVideoQualityPreset.SERIES_X_PRESET_PERFORMANCE)
53 {
54 displayUserSettings.Set("OverallQuality", EVideoQualityPreset.SERIES_X_PRESET_PERFORMANCE);
55 videoUserSettings.Set("ResolutionScale", 0.50);
56 videoUserSettings.Set("Fsaa", 2);
57 videoSettings.Set("m_bNearDofEffect", false);
58 videoSettings.Set("m_iDofType", DepthOfFieldTypes.SIMPLE);
59 videoUserSettings.Set("MaxFps", 60);
60 videoUserSettings.Set("Vsync", true);
61 videoSettings.Set("m_iLastUsedPreset", EVideoQualityPreset.SERIES_X_PRESET_PERFORMANCE);
62 }
63 else if (presetIndex == EVideoQualityPreset.PS5_QUALITY)
64 {
65 displayUserSettings.Set("OverallQuality", EVideoQualityPreset.PS5_QUALITY);
66 SetConsoleResolution(EVideoQualityPreset.PS5_QUALITY);
67 videoUserSettings.Set("Fsaa", 2);
68 videoSettings.Set("m_bNearDofEffect", false);
69 videoSettings.Set("m_iDofType", DepthOfFieldTypes.SIMPLE);
70 videoUserSettings.Set("MaxFps", 30);
71 videoUserSettings.Set("Vsync", true);
72 videoSettings.Set("m_iLastUsedPreset", EVideoQualityPreset.PS5_QUALITY);
73 }
74 else if (presetIndex == EVideoQualityPreset.PS5_PERFORMANCE)
75 {
76 displayUserSettings.Set("OverallQuality", EVideoQualityPreset.PS5_PERFORMANCE);
77 SetConsoleResolution(EVideoQualityPreset.PS5_PERFORMANCE);
78 videoUserSettings.Set("Fsaa", 2);
79 videoSettings.Set("m_bNearDofEffect", false);
80 videoSettings.Set("m_iDofType", DepthOfFieldTypes.SIMPLE);
81 videoUserSettings.Set("MaxFps", 60);
82 videoUserSettings.Set("Vsync", true);
83 videoSettings.Set("m_iLastUsedPreset", EVideoQualityPreset.PS5_PERFORMANCE);
84 }
85 else if (presetIndex == EVideoQualityPreset.PS5_PRO_QUALITY)
86 {
87 displayUserSettings.Set("OverallQuality", EVideoQualityPreset.PS5_PRO_QUALITY);
88 SetConsoleResolution(EVideoQualityPreset.PS5_PRO_QUALITY);
89 videoUserSettings.Set("Fsaa", 2);
90 videoSettings.Set("m_bNearDofEffect", false);
91 videoSettings.Set("m_iDofType", DepthOfFieldTypes.SIMPLE);
92 videoUserSettings.Set("MaxFps", 30);
93 videoUserSettings.Set("Vsync", true);
94 videoSettings.Set("m_iLastUsedPreset", EVideoQualityPreset.PS5_PRO_QUALITY);
95 }
96 else if (presetIndex == EVideoQualityPreset.PS5_PRO_PERFORMANCE)
97 {
98 displayUserSettings.Set("OverallQuality", EVideoQualityPreset.PS5_PRO_PERFORMANCE);
99 SetConsoleResolution(EVideoQualityPreset.PS5_PRO_PERFORMANCE);
100 videoUserSettings.Set("Fsaa", 2);
101 videoSettings.Set("m_bNearDofEffect", false);
102 videoSettings.Set("m_iDofType", DepthOfFieldTypes.SIMPLE);
103 videoUserSettings.Set("MaxFps", 60);
104 videoUserSettings.Set("Vsync", true);
105 videoSettings.Set("m_iLastUsedPreset", EVideoQualityPreset.PS5_PRO_PERFORMANCE);
106 }
107
108 GetGame().ApplySettingsPreset();
109 GetGame().UserSettingsChanged();
110 }
111
112 //------------------------------------------------------------------------------------------------
114 {
115 SetModuleType(ESettingManagerModuleType.SETTINGS_MANAGER_VIDEO);
116 }
117
118 //------------------------------------------------------------------------------------------------
119 void SetConsoleResolution(EVideoQualityPreset preset)
120 {
121 ArmaReforgerScripted game = GetGame();
122 UserSettings engineUserSettings = game.GetEngineUserSettings();
123 if (!engineUserSettings)
124 return;
125
126 UserSettings videoUserSettings = engineUserSettings.GetModule("VideoUserSettings");
127 if (!videoUserSettings)
128 return;
129
130 float resolutionScale;
131 int width, height;
132
133 System.GetNativeResolution(width, height);
134 SCR_EResolutionName resolution = SCR_SystemHelper.GetResolutionName(width, height);
135
136 if (resolution == SCR_EResolutionName.E1080p || (resolution == SCR_EResolutionName.E1440p && preset != EVideoQualityPreset.PS5_PERFORMANCE))
137 {
138 videoUserSettings.Set("ResolutionScale", 1);
139 return;
140 }
141 else if (resolution == SCR_EResolutionName.E1440p && preset == EVideoQualityPreset.PS5_PERFORMANCE)
142 {
143 videoUserSettings.Set("ResolutionScale", 0.75);
144 return;
145 }
146
147 switch (preset)
148 {
149 case EVideoQualityPreset.PS5_PERFORMANCE:
150 resolutionScale = 0.5;
151 break;
152 case EVideoQualityPreset.PS5_QUALITY:
153 resolutionScale = 0.75;
154 break;
155 case EVideoQualityPreset.PS5_PRO_PERFORMANCE:
156 resolutionScale = 0.6666;
157 break;
158 case EVideoQualityPreset.PS5_PRO_QUALITY:
159 resolutionScale = 0.9;
160 break;
161 }
162
163 videoUserSettings.Set("ResolutionScale",resolutionScale);
164 }
165}
166
167enum EVideoQualityPreset
168{
176 PS5_PRO_PERFORMANCE = 11
177}
ref DSGameConfig game
Definition DSConfig.c:81
ArmaReforgerScripted GetGame()
Definition game.c:1398
void SetModuleType(ESettingManagerModuleType managerType)
void SCR_SettingsManagerModuleBase()
ESettingManagerModuleType
SCR_SettingsManagerVideoModule SERIES_S_PRESET_QUALITY
SCR_SettingsManagerVideoModule PS5_PRO_QUALITY
SCR_SettingsManagerVideoModule PS5_QUALITY
SCR_SettingsManagerVideoModule PS5_PERFORMANCE
SCR_SettingsManagerVideoModule SERIES_X_PRESET_QUALITY
SCR_SettingsManagerVideoModule SERIES_S_PRESET_PERFORMANCE
SCR_SettingsManagerVideoModule SERIES_X_PRESET_PERFORMANCE
void SetConsoleResolution(EVideoQualityPreset preset)