RigsofRods
Soft-body Physics Simulation
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
GUI_GameSettings.cpp
Go to the documentation of this file.
1 /*
2  This source file is part of Rigs of Rods
3  Copyright 2016-2020 Petr Ohlidal
4 
5  For more information, see http://www.rigsofrods.org/
6 
7  Rigs of Rods is free software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License version 3, as
9  published by the Free Software Foundation.
10 
11  Rigs of Rods is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with Rigs of Rods. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 #include "GUI_GameSettings.h"
21 
22 #include "AppContext.h"
23 #include "CacheSystem.h"
24 #include "GameContext.h"
25 #include "GUIManager.h"
26 #include "GUIUtils.h"
27 #include "Language.h"
28 #include "SoundManager.h"
29 
30 #ifdef USE_OPENAL
31 # include <alc.h>
32 #endif
33 
34 using namespace RoR;
35 using namespace GUI;
36 
38 {
39  const int flags = ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollbar;
40  ImGui::SetNextWindowSize(ImVec2(670.f, 400.f), ImGuiCond_FirstUseEver);
41  if (m_bump_height != 0)
42  {
43  ImGui::SetNextWindowSize(m_window_size + ImVec2(0, m_bump_height));
44  m_bump_height = 0.f;
45  }
46  ImGui::SetNextWindowPosCenter(ImGuiCond_Appearing);
47  bool keep_open = true;
48  ImGui::Begin(_LC("GameSettings", "Game settings"), &keep_open, flags);
49 
50  ImGui::BeginTabBar("GameSettingsTabs");
51 
52  const float child_height = ImGui::GetWindowHeight()
53  - ((2.f * ImGui::GetStyle().WindowPadding.y) + (3.f * ImGui::GetItemsLineHeightWithSpacing())
54  + ImGui::GetStyle().ItemSpacing.y);
55 
56  if (ImGui::BeginTabItem(_LC("GameSettings", "Render System")))
57  {
58  ImGui::BeginChild("Settings-Render-scroll", ImVec2(0.f, child_height), false);
60  ImGui::EndChild();
61  ImGui::EndTabItem();
62  }
63  if (ImGui::BeginTabItem(_LC("GameSettings", "General")))
64  {
65  ImGui::BeginChild("Settings-General-scroll", ImVec2(0.f, child_height), false);
66  this->DrawGeneralSettings();
67  ImGui::EndChild();
68  ImGui::EndTabItem();
69  }
70  if (ImGui::BeginTabItem(_LC("GameSettings", "Gameplay")))
71  {
72  ImGui::BeginChild("Settings-Gameplay-scroll", ImVec2(0.f, child_height), false);
73  this->DrawGameplaySettings();
74  ImGui::EndChild();
75  ImGui::EndTabItem();
76  }
77  if (ImGui::BeginTabItem(_LC("GameSettings", "UI")))
78  {
79  ImGui::BeginChild("Settings-UI-scroll", ImVec2(0.f, child_height), false);
80  this->DrawUiSettings();
81  ImGui::EndChild();
82  ImGui::EndTabItem();
83  }
84  if (ImGui::BeginTabItem(_LC("GameSettings", "Graphics")))
85  {
86  ImGui::BeginChild("Settings-Graphics-scroll", ImVec2(0.f, child_height), false);
87  this->DrawGraphicsSettings();
88  ImGui::EndChild();
89  ImGui::EndTabItem();
90  }
91  if (ImGui::BeginTabItem(_LC("GameSettings", "Audio")))
92  {
93  ImGui::BeginChild("Settings-Audio-scroll", ImVec2(0.f, child_height), false);
94  this->DrawAudioSettings();
95  ImGui::EndChild();
96  ImGui::EndTabItem();
97  }
98  if (ImGui::BeginTabItem(_LC("GameSettings", "Controls")))
99  {
100  ImGui::BeginChild("Settings-Controls-scroll", ImVec2(0.f, child_height), false);
101  this->DrawControlSettings();
102  ImGui::EndChild();
103  ImGui::EndTabItem();
104  }
105  if (ImGui::BeginTabItem(_LC("GameSettings", "Diagnostic")))
106  {
107  ImGui::BeginChild("Settings-Diag-scroll", ImVec2(0.f, child_height), false);
108  this->DrawDiagSettings();
109  ImGui::EndChild();
110  ImGui::EndTabItem();
111  }
112 
113  ImGui::EndTabBar();
114 
115  ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 4.f);
116  m_window_size = ImGui::GetWindowSize();
117 
118  ImGui::End();
119  if (!keep_open)
120  {
121  this->SetVisible(false);
122  }
123 }
124 
126 {
127  ImGui::TextDisabled("%s", _LC("GameSettings", "Render system (changes require a restart)"));
128 
130  {
131  std::string text = _LC("GameSettings", "You must restart the game to make changes effective.");
132  ImVec2 box_size = ImGui::CalcTextSize(text.c_str()) + ImGui::GetStyle().FramePadding * 2;
133  ImVec2 box_pos = ImGui::GetCursorPos() + ImVec2(ImGui::GetWindowContentRegionWidth() * 0.5f - box_size.x * 0.5f, 0.f);
134  ImGui::SetCursorPos(box_pos);
135  ImGui::PushStyleColor(ImGuiCol_FrameBg, ImVec4(0.8f, 0.7f, 0.1f, 1.f));
136  ImGui::BeginChildFrame(ImGuiID(123), box_size);
137  ImGui::TextColored(ImVec4(0.1f, 0.1f, 0.1f, 1.f), text.c_str());
138  ImGui::EndChildFrame();
139  ImGui::PopStyleColor(); // FrameBg
140  }
141 
142  const auto ogre_root = App::GetAppContext()->GetOgreRoot();
143  const auto render_systems = ogre_root->getAvailableRenderers();
144  std::string render_system_names;
145  for (auto rs : render_systems)
146  {
147  render_system_names += rs->getName() + '\0';
148  }
149  const auto ro = ogre_root->getRenderSystemByName(App::app_rendersys_override->getStr());
150  const auto rs = ro ? ro : ogre_root->getRenderSystem();
151  const auto it = std::find(render_systems.begin(), render_systems.end(), rs);
152  int render_id = it != render_systems.end() ? std::distance(render_systems.begin(), it) : 0;
153  /* Combobox for selecting the Render System*/
154  if (ImGui::Combo(_LC ("GameSettings", "Render System"), &render_id, render_system_names.c_str()))
155  {
156  App::app_rendersys_override->setStr(render_systems[render_id]->getName());
157  }
158 
159  const auto config_options = ogre_root->getRenderSystem()->getConfigOptions();
160  std::set<std::string> filter = {"Allow NVPerfHUD", "Colour Depth", "Fixed Pipeline Enabled",
161  "Floating-point mode", "Resource Creation Policy", "VSync Interval", "sRGB Gamma Conversion"};
162  for (auto opt : config_options)
163  {
164  auto co = opt.second;
165  if (co.immutable)
166  continue;
167  if (co.possibleValues.empty())
168  continue;
169  if (filter.find(co.name) != filter.end())
170  continue;
171  std::sort(co.possibleValues.rbegin(), co.possibleValues.rend());
172  std::string option_values;
173  for (auto value : co.possibleValues)
174  {
175  option_values += value + '\0';
176  }
177  const auto it = std::find(co.possibleValues.begin(), co.possibleValues.end(), opt.second.currentValue);
178  int option_id = it != co.possibleValues.end() ? std::distance(co.possibleValues.begin(), it) : 0;
179  if (ImGui::Combo(co.name.c_str(), &option_id, option_values.c_str()))
180  {
181  // Check the new value is different from the current one
182  if (co.currentValue != co.possibleValues[option_id])
183  {
184  // Set the new value to the render system
185  rs->setConfigOption(co.name, co.possibleValues[option_id]);
186  if (rs->validateConfigOptions().empty())
187  {
188  ogre_root->saveConfig();
189 
190  // Show the "Must restart game..." box, make the window bigger to accomodate it
192  {
193  m_render_must_restart = true;
194  m_bump_height = ImGui::GetTextLineHeightWithSpacing() + ImGui::GetStyle().FramePadding.y * 2;
195  }
196  }
197  }
198  }
199  }
200 }
201 
203 {
204  ImGui::TextDisabled("%s", _LC("GameSettings", "Application settings"));
205 
206 #ifndef NOLANG
207  std::vector<std::pair<std::string, std::string>> languages = App::GetLanguageEngine()->getLanguages();
208  std::string lang_values;
209  for (auto value : languages)
210  {
211  lang_values += value.first + '\0';
212  }
213  const auto it = std::find_if(languages.begin(), languages.end(),
214  [](const std::pair<std::string, std::string>& l) { return l.second == App::app_language->getStr(); });
215  int lang_selection = it != languages.end() ? std::distance(languages.begin(), it) : 0;
216  if (ImGui::Combo(_LC("GameSettings", "Language"), &lang_selection, lang_values.c_str()))
217  {
218  App::app_language->setStr(languages[lang_selection].second);
220  }
221 #endif
222 
223  // Country selection
224  static Ogre::FileInfoListPtr fl = Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo("FlagsRG", "*");
225  if (!fl->empty())
226  {
227  static std::vector<std::string> countries;
228  if (countries.empty())
229  {
230  for (auto& file : *fl)
231  {
232  std::string country = Ogre::StringUtil::replaceAll(file.filename, ".png", "");
233  if (country.size() == 2) // RoR protocol limitation
234  {
235  countries.push_back(country);
236  }
237  }
238  std::sort(countries.begin(), countries.end());
239  }
240  std::string country_values;
241  for (auto value : countries)
242  {
243  country_values += value + '\0';
244  }
245  const auto it = std::find(countries.begin(), countries.end(), App::app_country->getStr());
246  int country_selection = it != countries.end() ? std::distance(countries.begin(), it) : 0;
247  if (ImGui::Combo(_LC("GameSettings", "Country"), &country_selection, country_values.c_str()))
248  {
249  App::app_country->setStr(countries[country_selection].c_str());
250  }
251  }
252 
253  int sshot_select = (App::app_screenshot_format->getStr() == "jpg") ? 1 : 0; // Hardcoded; TODO: list available formats.
254 
255  /* Screenshot format: Can be png or jpg*/
256  if (ImGui::Combo(_LC("GameSettings", "Screenshot format"), &sshot_select, "png\0jpg\0\0"))
257  {
258  std::string str = (sshot_select == 1) ? "jpg" : "png";
260  }
261 
262  DrawGTextEdit(App::app_extra_mod_path, _LC("GameSettings", "Extra mod path"), m_buf_app_extra_mod_dir);
263 
264  DrawGCheckbox(App::app_skip_main_menu, _LC("GameSettings", "Skip main menu"));
265  DrawGCheckbox(App::app_async_physics, _LC("GameSettings", "Async physics"));
266  DrawGCheckbox(App::app_disable_online_api, _LC("GameSettings", "Disable online api"));
267 
268  if (ImGui::Button(_LC("GameSettings", "Update cache")))
269  {
273  }
274 }
275 
277 {
278  ImGui::TextDisabled("%s", _LC("GameSettings", "Simulation settings"));
279 
280  DrawGCombo(App::sim_gearbox_mode, _LC("GameSettings", "Gearbox mode"),
282 
283  //DrawGCheckbox(App::gfx_flexbody_cache, "Enable flexbody cache");
284 
285  DrawGCheckbox(App::sim_spawn_running, _LC("GameSettings", "Engines spawn running"));
286 
287  DrawGCheckbox(App::sim_replay_enabled, _LC("GameSettings", "Replay mode"));
288  if (App::sim_replay_enabled->getBool())
289  {
290  DrawGIntBox(App::sim_replay_length, _LC("GameSettings", "Replay length"));
291  DrawGIntBox(App::sim_replay_stepping, _LC("GameSettings", "Replay stepping"));
292  }
293 
294  DrawGCheckbox(App::sim_realistic_commands, _LC("GameSettings", "Realistic forward commands"));
295 
296  DrawGCheckbox(App::sim_races_enabled, _LC("GameSettings", "Enable races"));
297 
298  DrawGCheckbox(App::sim_no_self_collisions, _LC("GameSettings", "No intra truck collisions"));
299  DrawGCheckbox(App::sim_no_collisions, _LC("GameSettings", "No inter truck collisions"));
300 
301  DrawGCheckbox(App::io_discord_rpc, _LC("GameSettings", "Discord Rich Presence"));
302 
303  DrawGCheckbox(App::sim_quickload_dialog, _LC("GameSettings", "Show confirm. UI dialog for quickload"));
304 
305  DrawGCheckbox(App::sim_tuning_enabled, _LC("GameSettings", "Enable vehicle tuning"));
306 }
307 
309 {
310 #ifdef USE_OPENAL
311  ImGui::TextDisabled("%s", _LC("GameSettings", "Audio settings"));
312 
313  static const ALCchar *devices = alcGetString(NULL, ALC_ALL_DEVICES_SPECIFIER);
314  const ALCchar *device = devices, *next = devices + 1;
315  std::vector<std::string> audio_devices;
316 
317  while (device && *device != '\0' && next && *next != '\0')
318  {
319  audio_devices.push_back(device);
320  size_t len = strlen(device);
321  device += (len + 1);
322  next += (len + 2);
323  }
324 
325  const auto it = std::find(audio_devices.begin(), audio_devices.end(), App::audio_device_name->getStr());
326  int device_id = it != audio_devices.end() ? std::distance(audio_devices.begin(), it) : 0;
327  if (ImGui::Combo(_LC("GameSettings", "Audio device"), &device_id, devices))
328  {
329  App::audio_device_name->setStr(audio_devices[device_id]);
330  }
331 
332  DrawGCheckbox(App::audio_enable_creak, _LC("GameSettings", "Creak sound"));
333  DrawGCheckbox(App::audio_enable_efx, _LC("GameSettings", "Enable advanced sound effects via OpenAL EFX"));
334 
335  if (App::audio_enable_efx->getBool())
336  {
337  DrawGCombo(App::audio_efx_reverb_engine, _LC("GameSettings", "OpenAL Reverb engine"), m_combo_items_efx_reverb_engine.c_str());
338  DrawGCheckbox(App::audio_enable_obstruction, _LC("GameSettings", "Sound obstruction"));
339  if (App::audio_enable_obstruction->getBool())
340  {
341  DrawGCheckbox(App::audio_force_obstruction_inside_vehicles, _LC("GameSettings", "Force obstruction inside vehicles"));
342  }
343  DrawGCheckbox(App::audio_enable_occlusion, _LC("GameSettings", "Sound occlusion"));
344  DrawGCheckbox(App::audio_enable_directed_sounds, _LC("GameSettings", "Directed sounds (exhausts etc.)"));
345  if (App::audio_efx_reverb_engine->getEnum<EfxReverbEngine>() == EfxReverbEngine::EAXREVERB)
346  {
347  DrawGCheckbox(App::audio_enable_reflection_panning, _LC("GameSettings", "Early reflections panning (experimental)"));
348  }
349 
350  DrawGCheckbox(App::audio_engine_controls_environmental_audio, _LC("GameSettings", "Engine exerts automatic control over environmental audio"));
351 
353  {
354  DrawGTextEdit(App::audio_default_efx_preset, _LC("GameSettings", "Default EFX Reverb Preset"), m_buf_audio_default_efx_preset);
356  }
357  }
358 
359  DrawGCheckbox(App::audio_menu_music, _LC("GameSettings", "Main menu music"));
360  DrawGFloatSlider(App::audio_master_volume, _LC("GameSettings", "Master volume"), 0, 1);
361  DrawGFloatSlider(App::audio_doppler_factor, _LC("GameSettings", "Doppler factor"), 0, 10);
362 #endif // USE_OPENAL
363 }
364 
366 {
367  ImGui::TextDisabled("%s", _LC("GameSettings", "UI settings"));
368 
369  this->DrawUiPresetCombo();
370 
371  this->DrawUiDefaultDashboard(m_ui_known_dash_truck, App::ui_default_truck_dash, CID_DashboardsTruck, _LC("GameSettings", "Default truck dashboard"));
372  this->DrawUiDefaultDashboard(m_ui_known_dash_boat, App::ui_default_boat_dash, CID_DashboardsBoat, _LC("GameSettings", "Default boat dashboard"));
373 
374  DrawGCheckbox(App::gfx_speedo_imperial, _LC("GameSettings", "Imperial units"));
375 
376  DrawGCheckbox(App::ui_show_live_repair_controls, _LC("GameSettings", "Show controls in live repair box"));
377 
378  DrawGCheckbox(App::ui_show_vehicle_buttons, _LC("GameSettings", "Show vehicle buttons menu"));
379 
380 
381  DrawGCheckbox(App::gfx_surveymap_icons, _LC("GameSettings", "Overview map icons"));
382  if (App::gfx_surveymap_icons->getBool())
383  {
384  DrawGCheckbox(App::gfx_declutter_map, _LC("GameSettings", "Declutter overview map"));
385  }
386 
387 }
388 
390 {
391  ImGui::TextDisabled("%s", _LC("GameSettings", "Video settings"));
392 
393  DrawGCombo(App::gfx_flares_mode, _LC("GameSettings", "Light sources"),
395 
396  DrawGCombo(App::gfx_shadow_type, _LC("GameSettings", "Shadow type (requires restart)"),
397  m_combo_items_shadow_type.c_str());
398 
399  if (App::gfx_shadow_type->getEnum<GfxShadowType>() != GfxShadowType::NONE)
400  {
401  DrawGCheckbox(App::gfx_reduce_shadows, _LC("GameSettings", "Shadow optimizations"));
402  if (App::gfx_shadow_type->getEnum<GfxShadowType>() == GfxShadowType::PSSM)
403  {
404  DrawGIntSlider(App::gfx_shadow_quality, _LC("GameSettings", "Shadow quality"), 0, 3);
405  }
406  }
407 
408  DrawGCombo(App::gfx_sky_mode, _LC("GameSettings", "Sky gfx"),
409  m_combo_items_sky_mode.c_str());
410 
411  if (App::gfx_sky_mode->getEnum<GfxSkyMode>() != GfxSkyMode::SKYX)
412  {
413  DrawGIntSlider(App::gfx_sight_range, _LC("GameSettings", "Sight range (meters)"), 100, 5000);
414  }
415 
416  DrawGCombo(App::gfx_texture_filter , _LC("GameSettings", "Texture filtering"),
417  m_combo_items_tex_filter.c_str());
418 
419  if (App::gfx_texture_filter->getEnum<GfxTexFilter>() == GfxTexFilter::ANISOTROPIC)
420  {
421  int anisotropy = Ogre::Math::Clamp(App::gfx_anisotropy->getInt(), 1, 16);
422  int selection = std::log2(anisotropy);
423  if (ImGui::Combo(_LC("GameSettings", "Anisotropy"), &selection, "1\0""2\0""4\0""8\0""16\0\0"))
424  {
425  App::gfx_anisotropy->setVal(std::pow(2, selection));
426  }
427  }
428 
429  DrawGCombo(App::gfx_vegetation_mode, _LC("GameSettings", "Vegetation density"),
430  m_combo_items_vegetation.c_str());
431 
432  DrawGCombo(App::gfx_water_mode, _LC("GameSettings", "Water gfx"),
433  m_combo_items_water_mode.c_str());
434 
435  DrawGIntSlider(App::gfx_fps_limit, _LC("GameSettings", "FPS limit"), 0, 240);
436 
437  DrawGIntCheck(App::gfx_particles_mode, _LC("GameSettings", "Enable particle gfx"));
438  DrawGIntCheck(App::gfx_skidmarks_mode, _LC("GameSettings", "Enable skidmarks"));
439 
440  DrawGCheckbox(App::gfx_auto_lod, _LC("GameSettings", "Enable automatic mesh LOD generator (Increases loading times)"));
441 
442  DrawGCheckbox(App::gfx_envmap_enabled, _LC("GameSettings", "Realtime reflections"));
443  if (App::gfx_envmap_enabled->getBool())
444  {
445  ImGui::PushItemWidth(125.f); // Width includes [+/-] buttons
446  DrawGIntSlider(App::gfx_envmap_rate, _LC("GameSettings", "Realtime refl. update rate"), 0, 6);
447  ImGui::PopItemWidth();
448  }
449 
450  DrawGCheckbox(App::gfx_enable_videocams, _LC("GameSettings", "Render video cameras"));
451  DrawGCheckbox(App::gfx_water_waves, _LC("GameSettings", "Waves on water"));
452  DrawGCheckbox(App::gfx_alt_actor_materials, _LC("GameSettings", "Use alternate vehicle materials"));
453 
454  DrawGCombo(App::gfx_extcam_mode, "Exterior camera mode",
455  m_combo_items_extcam_mode.c_str());
456 
457  DrawGIntSlider(App::gfx_camera_height, _LC("GameSettings", "Static camera height (meters)"), 1, 50);
458  DrawGIntSlider(App::gfx_fov_external_default, _LC("GameSettings", "Exterior field of view"), 10, 120);
459  DrawGIntSlider(App::gfx_fov_internal_default, _LC("GameSettings", "Interior field of view"), 10, 120);
460 }
461 
463 {
464  ImGui::TextDisabled("%s", _LC("GameSettings", "Diagnostic options"));
465  ImGui::TextColored(ImVec4(0.89f,0.15f,0.21f,1.0f), "%s", _LC("GameSettings", "These settings are for advanced users only, you should only change these if you know what you're doing"));
466 
467  DrawGTextEdit(App::diag_preset_terrain, _LC("GameSettings", "Preselected terrain"), m_buf_diag_preset_terrain);
468  DrawGTextEdit(App::diag_preset_vehicle, _LC("GameSettings", "Preselected vehicle"), m_buf_diag_preset_vehicle);
469  DrawGTextEdit(App::diag_preset_veh_config, _LC("GameSettings", "Presel. veh. config"), m_buf_diag_preset_veh_config);
470  DrawGCheckbox(App::diag_preset_veh_enter, _LC("GameSettings", "Enter preselected vehicle"));
471  DrawGCheckbox(App::diag_auto_spawner_report, _LC("GameSettings", "Auto actor spawner report"));
472  DrawGCheckbox(App::diag_rig_log_node_import, _LC("GameSettings", "Log node import (spawn)"));
473  DrawGCheckbox(App::diag_rig_log_node_stats, _LC("GameSettings", "Log node stats (spawn)"));
474  DrawGCheckbox(App::diag_camera, _LC("GameSettings", "Debug camera (rails)"));
475  DrawGCheckbox(App::diag_truck_mass, _LC("GameSettings", "Debug actor mass"));
476  DrawGCheckbox(App::diag_envmap, _LC("GameSettings", "Debug realtime reflections"));
477  DrawGCheckbox(App::diag_videocameras, _LC("GameSettings", "Debug videocameras"));
478  DrawGCheckbox(App::diag_warning_texture, _LC("GameSettings", "Debug textures"));
479  DrawGCheckbox(App::diag_hide_broken_beams, _LC("GameSettings", "Hide broken beams"));
480  DrawGCheckbox(App::diag_hide_wheel_info, _LC("GameSettings", "Hide wheel info"));
481  DrawGCheckbox(App::diag_hide_wheels, _LC("GameSettings", "Hide wheels"));
482  DrawGCheckbox(App::diag_hide_nodes, _LC("GameSettings", "Hide nodes"));
483  DrawGCheckbox(App::diag_log_console_echo, _LC("GameSettings", "Echo log to console"));
484  DrawGCheckbox(App::diag_log_beam_break, _LC("GameSettings", "Log beam breaking"));
485  DrawGCheckbox(App::diag_log_beam_deform, _LC("GameSettings", "Log beam deforming"));
486  DrawGCheckbox(App::diag_log_beam_trigger, _LC("GameSettings", "Log beam triggers"));
487  DrawGCheckbox(App::diag_allow_window_resize, _LC("GameSettings", "Allow game window resizing"));
488  if (ImGui::Button(_LC("GameSettings", "Rebuild cache")))
489  {
493  }
494 }
495 
497 {
498  ImGui::TextDisabled("%s", _LC("GameSettings", "Controller options"));
499 
500  IoInputGrabMode io_input_grab_mode_old = App::io_input_grab_mode->getEnum<IoInputGrabMode>();
501  DrawGCombo(App::io_input_grab_mode, _LC("GameSettings", "Input grab mode"), m_combo_items_input_grab.c_str());
502  if (io_input_grab_mode_old != App::io_input_grab_mode->getEnum<IoInputGrabMode>())
503  {
505  // This may take a second - display a 'please wait' box
508  _LC("GameSettings", "Restarting input subsystem, please wait..."), /*render_frame:*/false);
509  }
510 
511  DrawGFloatSlider(App::io_analog_smoothing, _LC("GameSettings", "Analog Input Smoothing"), 0.5f, 2.0f);
512  DrawGFloatSlider(App::io_analog_sensitivity, _LC("GameSettings", "Analog Input Sensitivity"), 0.5f, 2.0f);
513  DrawGFloatSlider(App::io_blink_lock_range, _LC("GameSettings", "Blinker Lock Range"), 0.1f, 1.0f);
514 
515  DrawGCheckbox(App::io_arcade_controls, _LC("GameSettings", "Use arcade controls"));
516  DrawGCheckbox(App::io_invert_orbitcam, _LC("GameSettings", "Invert orbit camera"));
517 
518  DrawGCheckbox(App::io_ffb_enabled, _LC("GameSettings", "Enable ForceFeedback"));
519  if (App::io_ffb_enabled->getBool())
520  {
521  ImGui::PushItemWidth(125.f);
522  DrawGFloatBox(App::io_ffb_camera_gain, _LC("GameSettings", "FFB camera gain"));
523  DrawGFloatBox(App::io_ffb_center_gain, _LC("GameSettings", "FFB center gain"));
524  DrawGFloatBox(App::io_ffb_master_gain, _LC("GameSettings", "FFB master gain"));
525  DrawGFloatBox(App::io_ffb_stress_gain, _LC("GameSettings", "FFB stress gain"));
526  ImGui::PopItemWidth();
527  }
528 
529  DrawGIntCheck(App::io_outgauge_mode, _LC("GameSettings", "Enable OutGauge protocol"));
530  if (App::io_outgauge_mode->getBool())
531  {
532  DrawGTextEdit(App::io_outgauge_ip, _LC("GameSettings", "OutGauge IP"), m_buf_io_outgauge_ip);
533  ImGui::PushItemWidth(125.f);
534  DrawGIntBox(App::io_outgauge_port, _LC("GameSettings", "OutGauge port"));
535  DrawGIntBox(App::io_outgauge_id, _LC("GameSettings", "OutGauge ID"));
536  DrawGFloatBox(App::io_outgauge_delay, _LC("GameSettings", "OutGauge delay"));
537  ImGui::PopItemWidth();
538  }
539 }
540 
542 {
543  m_is_visible = v;
544  if (!v && App::app_state->getEnum<AppState>() == RoR::AppState::MAIN_MENU)
545  {
547  }
548 
549  // Pre-format combobox strings.
550  if (m_combo_items_gearbox_mode == "")
551  {
558  }
559 
560  if (m_combo_items_light_sources == "")
561  {
568  }
569 
570  if (m_combo_items_shadow_type == "")
571  {
575  }
576 
577  if (m_combo_items_sky_mode == "")
578  {
583  }
584 
585  if (m_combo_items_tex_filter == "")
586  {
592  }
593 
594  if (m_combo_items_vegetation == "")
595  {
601  }
602 
603  if (m_combo_items_water_mode == "")
604  {
612  }
613 
614  if (m_combo_items_extcam_mode == "")
615  {
620  }
621 
622  if (m_combo_items_input_grab == "")
623  {
628  }
629 
631  {
636  }
637 
639  {
645  }
646 }
647 
649 {
650  ImGui::PushID("uiPreset");
651 
652  ImGui::SetNextItemWidth(UI_SELECTOR_WIDTH);
653  if (DrawGCombo(App::ui_preset, _LC("TopMenubar", "UI Preset"), m_cached_uipreset_combo_string.c_str()))
654  {
656  }
657 
658  if (ImGui::IsItemHovered())
659  {
660  ImGui::BeginTooltip();
661  const float COLLUMNWIDTH_NAME = 175.f;
662  const float COLLUMNWIDTH_VALUE = 60.f;
663  // Hack to make space for the table (doesn't autoresize)
664  ImGui::Dummy(ImVec2(COLLUMNWIDTH_NAME + COLLUMNWIDTH_VALUE*((int)UiPreset::Count), 1.f));
665 
666  // UiPresets table
667  ImGui::Columns((int)UiPreset::Count + 1);
668  ImGui::SetColumnWidth(0, COLLUMNWIDTH_NAME);
669  for (int i = 0; i < (int)UiPreset::Count; i++)
670  {
671  ImGui::SetColumnWidth(i+1, COLLUMNWIDTH_VALUE);
672  }
673 
674  // table header
675  ImGui::TextDisabled("%s", "Setting");
676  ImGui::NextColumn();
677  for (int i = 0; i < (int)UiPreset::Count; i++)
678  {
679  ImGui::TextDisabled("%s", ToLocalizedString((UiPreset)i).c_str());
680  ImGui::NextColumn();
681  }
682 
683  // table body
684  ImGui::Separator();
685 
686  int presetId = 0;
687  while (UiPresets[presetId].uip_cvar != nullptr)
688  {
689  ImGui::Text("%s", UiPresets[presetId].uip_cvar);
690  ImGui::NextColumn();
691  for (int i = 0; i < (int)UiPreset::Count; i++)
692  {
693  ImGui::Text("%s", UiPresets[presetId].uip_values[i].c_str());
694  ImGui::NextColumn();
695  }
696 
697  presetId++;
698  }
699 
700  // end table
701  ImGui::Columns(1);
702  ImGui::EndTooltip();
703  }
704 
705  ImGui::PopID(); //"uiPreset"
706 }
707 
708 void GameSettings::DrawUiDefaultDashboard(CacheEntryPtr& entry, CVar* cvar, CacheCategoryId category_id, const std::string& label)
709 {
710  if (!entry || entry->fname != cvar->getStr())
711  {
712  entry = App::GetCacheSystem()->FindEntryByFilename(LT_DashBoard, /* partial: */false, cvar->getStr());
713  }
714 
715  ImGui::AlignTextToFramePadding();
716  std::string caption = fmt::format("{}##truck_dash", entry ? entry->dname : cvar->getStr());
717  if (ImGui::Button(caption.c_str(), ImVec2(UI_SELECTOR_WIDTH, 0.f)))
718  {
719  default_dash_being_selected = category_id;
722  }
723  ImGui::SameLine();
724  ImGui::Text("%s", label.c_str());
725 }
GameContext.h
Game state manager and message-queue provider.
RoR::App::diag_truck_mass
CVar * diag_truck_mass
Definition: Application.cpp:137
RoR::App::io_invert_orbitcam
CVar * io_invert_orbitcam
Definition: Application.cpp:206
RoR::App::gfx_envmap_rate
CVar * gfx_envmap_rate
Definition: Application.cpp:245
RoR::App::diag_rig_log_node_import
CVar * diag_rig_log_node_import
Definition: Application.cpp:135
RoR::GfxSkyMode::SANDSTORM
@ SANDSTORM
Sandstorm (fastest)
RoR::App::sim_quickload_dialog
CVar * sim_quickload_dialog
Definition: Application.cpp:110
RoR::App::audio_doppler_factor
CVar * audio_doppler_factor
Definition: Application.cpp:222
RoR::GUI::GameSettings::DrawControlSettings
void DrawControlSettings()
Definition: GUI_GameSettings.cpp:496
RoR::App::sim_replay_stepping
CVar * sim_replay_stepping
Definition: Application.cpp:103
RoR::App::diag_warning_texture
CVar * diag_warning_texture
Definition: Application.cpp:151
RoR::CacheEntry::dname
Ogre::String dname
name parsed from the file
Definition: CacheSystem.h:70
RoR::GUI::GameSettings::m_buf_audio_force_listener_efx_preset
Str< 1000 > m_buf_audio_force_listener_efx_preset
Definition: GUI_GameSettings.h:66
RoR::App::GetLanguageEngine
LanguageEngine * GetLanguageEngine()
Definition: Application.cpp:294
RoR::App::gfx_speedo_imperial
CVar * gfx_speedo_imperial
Definition: Application.cpp:257
RoR::GUI::GameSettings::m_combo_items_extcam_mode
std::string m_combo_items_extcam_mode
Definition: GUI_GameSettings.h:76
RoR::ImAddItemToComboboxString
void ImAddItemToComboboxString(std::string &target, std::string const &item)
Definition: GUIUtils.cpp:376
RoR::GUI::GameSettings::SetVisible
void SetVisible(bool v)
Definition: GUI_GameSettings.cpp:541
RoR::App::diag_preset_vehicle
CVar * diag_preset_vehicle
Definition: Application.cpp:143
RoR::DrawGFloatSlider
void DrawGFloatSlider(CVar *cvar, const char *label, float v_min, float v_max)
Definition: GUIUtils.cpp:300
RoR::GUI::GameSettings::m_window_size
ImVec2 m_window_size
Definition: GUI_GameSettings.h:57
RoR::MSG_APP_REINIT_INPUT_REQUESTED
@ MSG_APP_REINIT_INPUT_REQUESTED
Definition: Application.h:95
RoR::GfxShadowType::NONE
@ NONE
RoR::CID_DashboardsTruck
@ CID_DashboardsTruck
Definition: Application.h:482
RoR::App::audio_enable_occlusion
CVar * audio_enable_occlusion
Definition: Application.cpp:212
RoR::App::io_discord_rpc
CVar * io_discord_rpc
Definition: Application.cpp:205
RoR::App::audio_default_efx_preset
CVar * audio_default_efx_preset
Definition: Application.cpp:218
RoR::App::app_skip_main_menu
CVar * app_skip_main_menu
Definition: Application.cpp:82
RoR::App::GetGuiManager
GUIManager * GetGuiManager()
Definition: Application.cpp:285
RoR::DrawGTextEdit
void DrawGTextEdit(CVar *cvar, const char *label, Str< 1000 > &buf)
Definition: GUIUtils.cpp:319
RoR::App::diag_hide_broken_beams
CVar * diag_hide_broken_beams
Definition: Application.cpp:152
RoR::UiPreset
UiPreset
See UiPresets[] list in GUIManager.cpp (declared extern in GUIManager.h)
Definition: Application.h:438
RoR::GUI::GameSettings::m_cached_uipreset_combo_string
std::string m_cached_uipreset_combo_string
Definition: GUI_GameSettings.h:79
RoR::App::audio_engine_controls_environmental_audio
CVar * audio_engine_controls_environmental_audio
Definition: Application.cpp:216
RoR::GfxExtCamMode::PITCHING
@ PITCHING
file
This is a raw Ogre binding for Imgui No project cmake file
Definition: README-OgreImGui.txt:3
RoR::DrawGIntBox
void DrawGIntBox(CVar *cvar, const char *label)
Definition: GUIUtils.cpp:281
RoR::GfxTexFilter::ANISOTROPIC
@ ANISOTROPIC
RoR::AppState::MAIN_MENU
@ MAIN_MENU
RoR::App::gfx_skidmarks_mode
CVar * gfx_skidmarks_mode
Definition: Application.cpp:247
RoR::App::GetAppContext
AppContext * GetAppContext()
Definition: Application.cpp:282
RoR::GUI::GameSettings::default_dash_being_selected
CacheCategoryId default_dash_being_selected
Definition: GUI_GameSettings.h:36
format
Truck file format(technical spec)
RoR::App::app_language
CVar * app_language
Definition: Application.cpp:80
RoR::GUI::GameSettings::DrawUiDefaultDashboard
void DrawUiDefaultDashboard(CacheEntryPtr &entry, CVar *cvar, CacheCategoryId category_id, const std::string &label)
Definition: GUI_GameSettings.cpp:708
GUIUtils.h
RoR::App::gfx_shadow_type
CVar * gfx_shadow_type
Definition: Application.cpp:229
SoundManager.h
RoR::App::gfx_particles_mode
CVar * gfx_particles_mode
Definition: Application.cpp:239
RoR::App::gfx_extcam_mode
CVar * gfx_extcam_mode
Definition: Application.cpp:230
RoR::App::gfx_enable_videocams
CVar * gfx_enable_videocams
Definition: Application.cpp:240
RoR::DrawGFloatBox
void DrawGFloatBox(CVar *cvar, const char *label)
Definition: GUIUtils.cpp:310
RoR::App::io_analog_sensitivity
CVar * io_analog_sensitivity
Definition: Application.cpp:190
RoR::App::sim_replay_length
CVar * sim_replay_length
Definition: Application.cpp:102
RoR::App::io_outgauge_port
CVar * io_outgauge_port
Definition: Application.cpp:202
RoR::App::app_rendersys_override
CVar * app_rendersys_override
Definition: Application.cpp:86
RoR::App::ui_default_boat_dash
CVar * ui_default_boat_dash
string; name of the '.dashboard' file in modcache.
Definition: Application.cpp:279
AppContext.h
System integration layer; inspired by OgreBites::ApplicationContext.
RoR::DrawGCombo
bool DrawGCombo(CVar *cvar, const char *label, const char *values)
Definition: GUIUtils.cpp:335
RoR::GfxWaterMode::NONE
@ NONE
None.
RoR::App::gfx_fov_external_default
CVar * gfx_fov_external_default
Definition: Application.cpp:251
RoR::App::sim_no_self_collisions
CVar * sim_no_self_collisions
Definition: Application.cpp:107
RoR::DrawGIntSlider
void DrawGIntSlider(CVar *cvar, const char *label, int v_min, int v_max)
Definition: GUIUtils.cpp:290
RoR::App::ui_preset
CVar * ui_preset
enum RoR::UiPreset
Definition: Application.cpp:276
RoR::App::io_ffb_enabled
CVar * io_ffb_enabled
Definition: Application.cpp:192
RoR::GUIManager::GameSettings
GUI::GameSettings GameSettings
Definition: GUIManager.h:119
RoR::GUI::GameSettings::m_buf_diag_preset_vehicle
Str< 1000 > m_buf_diag_preset_vehicle
Definition: GUI_GameSettings.h:61
RoR::App::app_country
CVar * app_country
Definition: Application.cpp:81
RoR::GUI::GameSettings::DrawAudioSettings
void DrawAudioSettings()
Definition: GUI_GameSettings.cpp:308
RoR::GUI::GameSettings::Draw
void Draw()
Definition: GUI_GameSettings.cpp:37
RoR::App::app_disable_online_api
CVar * app_disable_online_api
Definition: Application.cpp:90
RoR::App::audio_enable_reflection_panning
CVar * audio_enable_reflection_panning
Definition: Application.cpp:214
RoR::App::gfx_texture_filter
CVar * gfx_texture_filter
Definition: Application.cpp:234
Language.h
RoR::App::app_extra_mod_path
CVar * app_extra_mod_path
Definition: Application.cpp:87
RoR::App::io_ffb_master_gain
CVar * io_ffb_master_gain
Definition: Application.cpp:195
RefCountingObjectPtr< CacheEntry >
GUIManager.h
RoR::GfxWaterMode::FULL_HQ
@ FULL_HQ
Reflection + refraction (quality optimized)
RoR::GUI::GameSettings::m_combo_items_water_mode
std::string m_combo_items_water_mode
Definition: GUI_GameSettings.h:75
RoR::GUI::GameSettings::m_combo_items_vegetation
std::string m_combo_items_vegetation
Definition: GUI_GameSettings.h:74
RoR::App::diag_hide_wheel_info
CVar * diag_hide_wheel_info
Definition: Application.cpp:154
RoR::GUIManager::LoadingWindow
GUI::LoadingWindow LoadingWindow
Definition: GUIManager.h:132
RoR::GfxFlaresMode::ALL_VEHICLES_HEAD_ONLY
@ ALL_VEHICLES_HEAD_ONLY
All vehicles, main lights.
RoR::App::audio_enable_creak
CVar * audio_enable_creak
Definition: Application.cpp:210
RoR::UiPreset::MINIMALLIST
@ MINIMALLIST
RoR::SimGearboxMode::AUTO
@ AUTO
Automatic shift.
RoR::GfxExtCamMode::STATIC
@ STATIC
RoR::GUI::GameSettings::UI_SELECTOR_WIDTH
const float UI_SELECTOR_WIDTH
Definition: GUI_GameSettings.h:49
RoR::App::sim_tuning_enabled
CVar * sim_tuning_enabled
Definition: Application.cpp:112
RoR::EfxReverbEngine::EAXREVERB
@ EAXREVERB
RoR::GUI::GameSettings::m_combo_items_efx_reverb_engine
std::string m_combo_items_efx_reverb_engine
Definition: GUI_GameSettings.h:78
RoR::App::sim_gearbox_mode
CVar * sim_gearbox_mode
Definition: Application.cpp:108
RoR::SimGearboxMode::MANUAL_STICK
@ MANUAL_STICK
Fully manual: stick shift.
RoR::App::gfx_camera_height
CVar * gfx_camera_height
Definition: Application.cpp:249
RoR::GUI::GameSettings::m_bump_height
float m_bump_height
Definition: GUI_GameSettings.h:83
RoR::App::audio_master_volume
CVar * audio_master_volume
Definition: Application.cpp:209
RoR::ToLocalizedString
std::string ToLocalizedString(SimGearboxMode e)
Definition: Application.cpp:456
RoR::App::gfx_alt_actor_materials
CVar * gfx_alt_actor_materials
Definition: Application.cpp:261
RoR::App::io_ffb_camera_gain
CVar * io_ffb_camera_gain
Definition: Application.cpp:193
RoR::GUI::LoadingWindow
Definition: GUI_LoadingWindow.h:31
RoR::App::audio_force_listener_efx_preset
CVar * audio_force_listener_efx_preset
Definition: Application.cpp:219
RoR::GfxSkyMode::CAELUM
@ CAELUM
Caelum (best looking, slower)
RoR::CVar::getStr
std::string const & getStr() const
Definition: CVar.h:95
RoR::App::ui_default_truck_dash
CVar * ui_default_truck_dash
string; name of the '.dashboard' file in modcache.
Definition: Application.cpp:278
RoR::App::diag_log_beam_break
CVar * diag_log_beam_break
Definition: Application.cpp:147
RoR::CacheSystem::FindEntryByFilename
CacheEntryPtr FindEntryByFilename(RoR::LoaderType type, bool partial, const std::string &_filename_maybe_bundlequalified)
Returns NULL if none found; "Bundle-qualified" format also specifies the ZIP/directory in modcache,...
Definition: CacheSystem.cpp:186
RoR::GUI::GameSettings::DrawDiagSettings
void DrawDiagSettings()
Definition: GUI_GameSettings.cpp:462
RoR::App::io_outgauge_mode
CVar * io_outgauge_mode
Definition: Application.cpp:200
RoR::GfxFlaresMode::ALL_VEHICLES_ALL_LIGHTS
@ ALL_VEHICLES_ALL_LIGHTS
All vehicles, all lights.
CacheSystem.h
A database of user-installed content alias 'mods' (vehicles, terrains...)
RoR::App::gfx_fps_limit
CVar * gfx_fps_limit
Definition: Application.cpp:256
RoR::MSG_APP_MODCACHE_PURGE_REQUESTED
@ MSG_APP_MODCACHE_PURGE_REQUESTED
Definition: Application.h:91
RoR::GUI::GameSettings::DrawGameplaySettings
void DrawGameplaySettings()
Definition: GUI_GameSettings.cpp:276
RoR::App::io_arcade_controls
CVar * io_arcade_controls
Definition: Application.cpp:198
RoR::GUI::GameSettings::m_buf_app_extra_mod_dir
Str< 1000 > m_buf_app_extra_mod_dir
Definition: GUI_GameSettings.h:63
RoR::GfxWaterMode::BASIC
@ BASIC
Basic (fastest)
RoR::App::diag_hide_wheels
CVar * diag_hide_wheels
Definition: Application.cpp:155
RoR::GfxVegetation::NONE
@ NONE
RoR::LanguageEngine::getLanguages
std::vector< std::pair< std::string, std::string > > getLanguages()
Definition: Language.h:50
RoR::GfxShadowType::PSSM
@ PSSM
RoR::App::diag_log_beam_trigger
CVar * diag_log_beam_trigger
Definition: Application.cpp:149
RoR::GameContext::PushMessage
void PushMessage(Message m)
Doesn't guarantee order! Use ChainMessage() if order matters.
Definition: GameContext.cpp:66
RoR::App::app_state
CVar * app_state
Definition: Application.cpp:79
RoR::GUI::GameSettings::m_buf_diag_preset_terrain
Str< 1000 > m_buf_diag_preset_terrain
Definition: GUI_GameSettings.h:60
RoR::IoInputGrabMode::DYNAMIC
@ DYNAMIC
RoR::App::io_ffb_center_gain
CVar * io_ffb_center_gain
Definition: Application.cpp:194
RoR::GfxWaterMode::FULL_FAST
@ FULL_FAST
Reflection + refraction (speed optimized)
RoR::GUI::GameSettings::m_combo_items_sky_mode
std::string m_combo_items_sky_mode
Definition: GUI_GameSettings.h:72
RoR::EfxReverbEngine::NONE
@ NONE
RoR::GfxTexFilter::BILINEAR
@ BILINEAR
RoR::GUI::LoadingWindow::SetProgress
void SetProgress(int _percent, const std::string &_text="", bool render_frame=true)
Definition: GUI_LoadingWindow.cpp:33
RoR::App::gfx_declutter_map
CVar * gfx_declutter_map
Definition: Application.cpp:243
RoR::GUI::GameSettings::DrawRenderSystemSettings
void DrawRenderSystemSettings()
Definition: GUI_GameSettings.cpp:125
RoR::App::ui_show_live_repair_controls
CVar * ui_show_live_repair_controls
bool
Definition: Application.cpp:274
RoR::MSG_GUI_OPEN_SELECTOR_REQUESTED
@ MSG_GUI_OPEN_SELECTOR_REQUESTED
Payload = LoaderType* (owner), Description = GUID | empty.
Definition: Application.h:139
RoR::App::diag_log_beam_deform
CVar * diag_log_beam_deform
Definition: Application.cpp:148
RoR::CacheCategoryId
CacheCategoryId
Definition: Application.h:477
RoR::UiPreset::REGULAR
@ REGULAR
RoR::LoaderType
LoaderType
< Search mode for ModCache::Query() & Operation mode for GUI::MainSelector
Definition: Application.h:455
RoR::App::sim_races_enabled
CVar * sim_races_enabled
Definition: Application.cpp:105
RoR::UiPreset::EXPERT
@ EXPERT
RoR::GUI::GameSettings::DrawUiSettings
void DrawUiSettings()
Definition: GUI_GameSettings.cpp:365
RoR::GfxVegetation::FULL
@ FULL
RoR::LT_DashBoard
@ LT_DashBoard
Definition: Application.h:473
RoR::SimGearboxMode::SEMI_AUTO
@ SEMI_AUTO
Manual shift with auto clutch.
RoR::GfxFlaresMode::CURR_VEHICLE_HEAD_ONLY
@ CURR_VEHICLE_HEAD_ONLY
Only current vehicle, main lights.
RoR::GUI::GameSettings::m_combo_items_tex_filter
std::string m_combo_items_tex_filter
Definition: GUI_GameSettings.h:73
RoR::UiPreset::Count
@ Count
RoR::App::GetGameContext
GameContext * GetGameContext()
Definition: Application.cpp:296
RoR::CVar::getEnum
T getEnum() const
Definition: CVar.h:99
RoR::App::io_outgauge_delay
CVar * io_outgauge_delay
Definition: Application.cpp:203
RoR::EfxReverbEngine::REVERB
@ REVERB
RoR::App::audio_enable_directed_sounds
CVar * audio_enable_directed_sounds
Definition: Application.cpp:213
RoR::App::gfx_fov_internal_default
CVar * gfx_fov_internal_default
Definition: Application.cpp:253
RoR::GUIManager::ApplyUiPreset
void ApplyUiPreset()
reads cvar 'ui_preset'
Definition: GUIManager.cpp:141
RoR::App::gfx_envmap_enabled
CVar * gfx_envmap_enabled
Definition: Application.cpp:244
RoR::App::diag_videocameras
CVar * diag_videocameras
Definition: Application.cpp:139
RoR::App::io_ffb_stress_gain
CVar * io_ffb_stress_gain
Definition: Application.cpp:196
RoR::App::gfx_water_mode
CVar * gfx_water_mode
Definition: Application.cpp:236
RoR::GUI::GameSettings::m_buf_diag_preset_veh_config
Str< 1000 > m_buf_diag_preset_veh_config
Definition: GUI_GameSettings.h:62
RoR::GUI::GameMainMenu::SetVisible
void SetVisible(bool v)
Definition: GUI_GameMainMenu.h:43
RoR::App::gfx_flares_mode
CVar * gfx_flares_mode
Definition: Application.cpp:227
RoR::App::audio_enable_efx
CVar * audio_enable_efx
Definition: Application.cpp:215
RoR::App::gfx_sky_mode
CVar * gfx_sky_mode
Definition: Application.cpp:231
RoR::GUI::GameSettings::m_ui_known_dash_boat
CacheEntryPtr m_ui_known_dash_boat
Definition: GUI_GameSettings.h:53
RoR::GUI::LoadingWindow::PERC_HIDE_PROGRESSBAR
const int PERC_HIDE_PROGRESSBAR
Definition: GUI_LoadingWindow.h:34
_LC
#define _LC(ctx, str)
Definition: Language.h:38
RoR::CVar
Quake-style console variable, defined in RoR.cfg or crated via Console UI and scripts.
Definition: CVar.h:52
RoR::DrawGIntCheck
void DrawGIntCheck(CVar *cvar, const char *label)
Definition: GUIUtils.cpp:272
RoR::App::gfx_sight_range
CVar * gfx_sight_range
Definition: Application.cpp:248
RoR::App::diag_log_console_echo
CVar * diag_log_console_echo
Definition: Application.cpp:146
RoR::SimGearboxMode::MANUAL
@ MANUAL
Fully manual: sequential shift.
GUI_GameSettings.h
RoR::App::gfx_shadow_quality
CVar * gfx_shadow_quality
Definition: Application.cpp:246
RoR::App::gfx_water_waves
CVar * gfx_water_waves
Definition: Application.cpp:238
RoR::App::io_input_grab_mode
CVar * io_input_grab_mode
Definition: Application.cpp:197
RoR::GUI::GameSettings::m_is_visible
bool m_is_visible
Definition: GUI_GameSettings.h:56
RoR::App::sim_realistic_commands
CVar * sim_realistic_commands
Definition: Application.cpp:104
RoR::App::io_blink_lock_range
CVar * io_blink_lock_range
Definition: Application.cpp:191
RoR::App::GetCacheSystem
CacheSystem * GetCacheSystem()
Definition: Application.cpp:288
RoR::GfxSkyMode::SKYX
@ SKYX
SkyX (best looking, slower)
RoR::CID_DashboardsBoat
@ CID_DashboardsBoat
Definition: Application.h:483
RoR::App::ui_show_vehicle_buttons
CVar * ui_show_vehicle_buttons
Definition: Application.cpp:275
RoR::App::audio_menu_music
CVar * audio_menu_music
Definition: Application.cpp:223
RoR::App::app_screenshot_format
CVar * app_screenshot_format
Definition: Application.cpp:85
RoR::GUI::GameSettings::m_combo_items_shadow_type
std::string m_combo_items_shadow_type
Definition: GUI_GameSettings.h:71
RoR::App::diag_preset_veh_config
CVar * diag_preset_veh_config
Definition: Application.cpp:144
RoR::GUI::GameSettings::DrawGeneralSettings
void DrawGeneralSettings()
Definition: GUI_GameSettings.cpp:202
RoR::GfxTexFilter::TRILINEAR
@ TRILINEAR
RoR::App::sim_no_collisions
CVar * sim_no_collisions
Definition: Application.cpp:106
RoR::App::audio_force_obstruction_inside_vehicles
CVar * audio_force_obstruction_inside_vehicles
Definition: Application.cpp:220
RoR::Message
Unified game event system - all requests and state changes are reported using a message.
Definition: GameContext.h:51
RoR::App::audio_efx_reverb_engine
CVar * audio_efx_reverb_engine
Definition: Application.cpp:217
RoR::CVar::setVal
void setVal(T val)
Definition: CVar.h:72
RoR::App::gfx_auto_lod
CVar * gfx_auto_lod
Definition: Application.cpp:262
RoR::MSG_GUI_OPEN_MENU_REQUESTED
@ MSG_GUI_OPEN_MENU_REQUESTED
Definition: Application.h:137
RoR::App::diag_auto_spawner_report
CVar * diag_auto_spawner_report
Definition: Application.cpp:133
RoR::App::diag_camera
CVar * diag_camera
Definition: Application.cpp:134
RoR::GUI::GameSettings::m_combo_items_light_sources
std::string m_combo_items_light_sources
Definition: GUI_GameSettings.h:70
RoR::App::io_analog_smoothing
CVar * io_analog_smoothing
Definition: Application.cpp:189
RoR::App::diag_rig_log_node_stats
CVar * diag_rig_log_node_stats
Definition: Application.cpp:136
RoR::GUI::GameSettings::m_combo_items_gearbox_mode
std::string m_combo_items_gearbox_mode
Definition: GUI_GameSettings.h:69
RoR::GfxFlaresMode::NONE
@ NONE
None (fastest)
AngelOgre::getName
class AngelOgre::OverlayManager & getName
RoR::GUI::GameSettings::DrawGraphicsSettings
void DrawGraphicsSettings()
Definition: GUI_GameSettings.cpp:389
RoR::MSG_APP_MODCACHE_UPDATE_REQUESTED
@ MSG_APP_MODCACHE_UPDATE_REQUESTED
Definition: Application.h:90
RoR::IoInputGrabMode
IoInputGrabMode
Definition: Application.h:421
RoR::IoInputGrabMode::ALL
@ ALL
RoR::App::diag_allow_window_resize
CVar * diag_allow_window_resize
Definition: Application.cpp:159
RoR::App::io_outgauge_id
CVar * io_outgauge_id
Definition: Application.cpp:204
RoR::ImTerminateComboboxString
void ImTerminateComboboxString(std::string &target)
Definition: GUIUtils.cpp:398
RoR::App::diag_hide_nodes
CVar * diag_hide_nodes
Definition: Application.cpp:156
RoR::AppContext::GetOgreRoot
Ogre::Root * GetOgreRoot()
Definition: AppContext.h:65
RoR::SimGearboxMode::MANUAL_RANGES
@ MANUAL_RANGES
Fully manual: stick shift with ranges.
RoR::GUI::GameSettings::m_combo_items_input_grab
std::string m_combo_items_input_grab
Definition: GUI_GameSettings.h:77
RoR::DrawGCheckbox
bool DrawGCheckbox(CVar *cvar, const char *label)
Definition: GUIUtils.cpp:261
RoR::App::diag_envmap
CVar * diag_envmap
Definition: Application.cpp:138
RoR::App::app_async_physics
CVar * app_async_physics
Definition: Application.cpp:83
RoR::App::diag_preset_veh_enter
CVar * diag_preset_veh_enter
Definition: Application.cpp:145
RoR::GUI::GameSettings::m_buf_audio_default_efx_preset
Str< 1000 > m_buf_audio_default_efx_preset
Definition: GUI_GameSettings.h:65
RoR::App::diag_preset_terrain
CVar * diag_preset_terrain
Definition: Application.cpp:140
RoR::GUI::GameSettings::m_render_must_restart
bool m_render_must_restart
Definition: GUI_GameSettings.h:82
RoR::App::gfx_vegetation_mode
CVar * gfx_vegetation_mode
Definition: Application.cpp:235
RoR::GUI::GameSettings::DrawUiPresetCombo
void DrawUiPresetCombo()
Definition: GUI_GameSettings.cpp:648
RoR::IoInputGrabMode::NONE
@ NONE
RoR::GUI::GameSettings::m_ui_known_dash_truck
CacheEntryPtr m_ui_known_dash_truck
Definition: GUI_GameSettings.h:52
RoR::App::audio_enable_obstruction
CVar * audio_enable_obstruction
Definition: Application.cpp:211
RoR::App::audio_device_name
CVar * audio_device_name
Definition: Application.cpp:221
RoR::App::gfx_anisotropy
CVar * gfx_anisotropy
Definition: Application.cpp:237
RoR::GfxWaterMode::REFLECT
@ REFLECT
Reflection.
RoR
Definition: AppContext.h:36
RoR::UiPresets
UiPresetEntry UiPresets[]
Global list of UI Presets, selectable via Settings menu in TopMenubar.
Definition: GUIManager.cpp:53
RoR::App::sim_spawn_running
CVar * sim_spawn_running
Definition: Application.cpp:100
RoR::GfxFlaresMode::NO_LIGHTSOURCES
@ NO_LIGHTSOURCES
No light sources.
RoR::UiPreset::NOVICE
@ NOVICE
RoR::App::gfx_reduce_shadows
CVar * gfx_reduce_shadows
Definition: Application.cpp:259
RoR::CVar::setStr
void setStr(std::string const &str)
Definition: CVar.h:83
RoR::GUIManager::GameMainMenu
GUI::GameMainMenu GameMainMenu
Definition: GUIManager.h:117
RoR::GUI::GameSettings::m_buf_io_outgauge_ip
Str< 1000 > m_buf_io_outgauge_ip
Definition: GUI_GameSettings.h:64
RoR::GfxExtCamMode::NONE
@ NONE
RoR::GfxVegetation::x20PERC
@ x20PERC
RoR::App::gfx_surveymap_icons
CVar * gfx_surveymap_icons
Definition: Application.cpp:242
RoR::App::io_outgauge_ip
CVar * io_outgauge_ip
Definition: Application.cpp:201
RoR::GfxVegetation::x50PERC
@ x50PERC
RoR::App::sim_replay_enabled
CVar * sim_replay_enabled
Definition: Application.cpp:101
RoR::LanguageEngine::setup
void setup()
Definition: Language.cpp:48
RoR::CacheEntry::fname
Ogre::String fname
filename
Definition: CacheSystem.h:67
RoR::GfxTexFilter::NONE
@ NONE
RoR::GfxWaterMode::HYDRAX
@ HYDRAX
HydraX.