Rigs of Rods 2023.09
Soft-body Physics Simulation
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches
CVar.cpp
Go to the documentation of this file.
1/*
2 This source file is part of Rigs of Rods
3 Copyright 2005-2012 Pierre-Michel Ricordel
4 Copyright 2007-2012 Thomas Fischer
5 Copyright 2013-2020 Petr Ohlidal
6
7 For more information, see http://www.rigsofrods.org/
8
9 Rigs of Rods is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License version 3, as
11 published by the Free Software Foundation.
12
13 Rigs of Rods is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with Rigs of Rods. If not, see <http://www.gnu.org/licenses/>.
20*/
21
22#include "Application.h"
23#include "Console.h"
24
25#include <Ogre.h>
26
27using namespace RoR;
28
30{
31 App::app_state = this->cVarCreate("app_state", "", CVAR_TYPE_INT, "0"/*(int)AppState::BOOTSTRAP*/);
32 App::app_language = this->cVarCreate("app_language", "Language", CVAR_ARCHIVE, "en");
33 App::app_country = this->cVarCreate("app_country", "Country", CVAR_ARCHIVE, "us");
34 App::app_skip_main_menu = this->cVarCreate("app_skip_main_menu", "SkipMainMenu", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
35 App::app_async_physics = this->cVarCreate("app_async_physics", "AsyncPhysics", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
36 App::app_num_workers = this->cVarCreate("app_num_workers", "NumWorkerThreads", CVAR_ARCHIVE | CVAR_TYPE_INT);
37 App::app_screenshot_format = this->cVarCreate("app_screenshot_format", "Screenshot Format", CVAR_ARCHIVE, "png");
38 App::app_rendersys_override = this->cVarCreate("app_rendersys_override", "Render system", CVAR_ARCHIVE);
39 App::app_extra_mod_path = this->cVarCreate("app_extra_mod_path", "Extra mod path", CVAR_ARCHIVE);
40 App::app_force_cache_purge = this->cVarCreate("app_force_cache_purge", "", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
41 App::app_force_cache_update = this->cVarCreate("app_force_cache_update", "", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
42 App::app_disable_online_api = this->cVarCreate("app_disable_online_api", "Disable Online API", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
43 App::app_config_long_names = this->cVarCreate("app_config_long_names", "Config uses long names", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
44 App::app_custom_scripts = this->cVarCreate("app_custom_scripts", "", CVAR_ARCHIVE, "");
45 App::app_recent_scripts = this->cVarCreate("app_recent_scripts", "", CVAR_ARCHIVE, "");
46
47 App::sim_state = this->cVarCreate("sim_state", "", CVAR_TYPE_INT, "0"/*(int)SimState::OFF*/);
48 App::sim_terrain_name = this->cVarCreate("sim_terrain_name", "", 0);
49 App::sim_terrain_gui_name = this->cVarCreate("sim_terrain_gui_name", "", 0);
50 App::sim_spawn_running = this->cVarCreate("sim_spawn_running", "Engines spawn running", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
51 App::sim_replay_enabled = this->cVarCreate("sim_replay_enabled", "Replay mode", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
52 App::sim_replay_length = this->cVarCreate("sim_replay_length", "Replay length", CVAR_ARCHIVE | CVAR_TYPE_INT, "200");
53 App::sim_replay_stepping = this->cVarCreate("sim_replay_stepping", "Replay Steps per second", CVAR_ARCHIVE | CVAR_TYPE_INT, "1000");
54 App::sim_realistic_commands = this->cVarCreate("sim_realistic_commands", "Realistic forward commands", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
55 App::sim_races_enabled = this->cVarCreate("sim_races_enabled", "Races", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
56 App::sim_no_collisions = this->cVarCreate("sim_no_collisions", "DisableCollisions", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
57 App::sim_no_self_collisions = this->cVarCreate("sim_no_self_collisions", "DisableSelfCollisions", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
58 App::sim_gearbox_mode = this->cVarCreate("sim_gearbox_mode", "GearboxMode", CVAR_ARCHIVE | CVAR_TYPE_INT);
59 App::sim_soft_reset_mode = this->cVarCreate("sim_soft_reset_mode", "", CVAR_TYPE_BOOL, "false");
60 App::sim_quickload_dialog = this->cVarCreate("sim_quickload_dialog", "", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
61 App::sim_live_repair_interval = this->cVarCreate("sim_live_repair_interval", "", CVAR_ARCHIVE | CVAR_TYPE_FLOAT, "2.f");
62 App::sim_tuning_enabled = this->cVarCreate("sim_tuning_enabled", "", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
63
64 App::mp_state = this->cVarCreate("mp_state", "", CVAR_TYPE_INT, "0"/*(int)MpState::DISABLED*/);
65 App::mp_join_on_startup = this->cVarCreate("mp_join_on_startup", "Auto connect", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
66 App::mp_chat_auto_hide = this->cVarCreate("mp_chat_auto_hide", "Auto hide chat", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
67 App::mp_hide_net_labels = this->cVarCreate("mp_hide_net_labels", "Hide net labels", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
68 App::mp_hide_own_net_label = this->cVarCreate("mp_hide_own_net_label", "Hide own net label", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
69 App::mp_pseudo_collisions = this->cVarCreate("mp_pseudo_collisions", "Multiplayer collisions", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
70 App::mp_server_host = this->cVarCreate("mp_server_host", "Server name", CVAR_ARCHIVE);
71 App::mp_server_port = this->cVarCreate("mp_server_port", "Server port", CVAR_ARCHIVE | CVAR_TYPE_INT);
72 App::mp_server_password = this->cVarCreate("mp_server_password", "Server password", CVAR_ARCHIVE | CVAR_NO_LOG);
73 App::mp_player_name = this->cVarCreate("mp_player_name", "Nickname", CVAR_ARCHIVE, "Player");
74 App::mp_player_token = this->cVarCreate("mp_player_token", "User Token", CVAR_ARCHIVE | CVAR_NO_LOG);
75 App::mp_api_url = this->cVarCreate("mp_api_url", "Online API URL", CVAR_ARCHIVE, "http://api.rigsofrods.org");
76 App::mp_cyclethru_net_actors = this->cVarCreate("mp_cyclethru_net_actors", "", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
77
78 App::remote_query_url = this->cVarCreate("remote_query_url", "", CVAR_ARCHIVE, "https://v2.api.rigsofrods.org");
79
80 App::diag_auto_spawner_report= this->cVarCreate("diag_auto_spawner_report","AutoActorSpawnerReport", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
81 App::diag_camera = this->cVarCreate("diag_camera", "Camera Debug", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
82 App::diag_rig_log_node_import= this->cVarCreate("diag_rig_log_node_import","RigImporter_LogAllNodes", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
83 App::diag_rig_log_node_stats = this->cVarCreate("diag_rig_log_node_stats", "RigImporter_LogNodeStats", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
84 App::diag_truck_mass = this->cVarCreate("diag_truck_mass", "Debug Truck Mass", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
85 App::diag_envmap = this->cVarCreate("diag_envmap", "EnvMapDebug", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
86 App::diag_videocameras = this->cVarCreate("diag_videocameras", "VideoCameraDebug", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
87 App::diag_preset_terrain = this->cVarCreate("diag_preset_terrain", "Preselected Terrain", CVAR_ARCHIVE);
88 App::diag_preset_spawn_pos = this->cVarCreate("diag_spawn_position", "", CVAR_ARCHIVE);
89 App::diag_preset_spawn_rot = this->cVarCreate("diag_spawn_rotation", "", CVAR_ARCHIVE);
90 App::diag_preset_vehicle = this->cVarCreate("diag_preset_vehicle", "Preselected Truck", CVAR_ARCHIVE);
91 App::diag_preset_veh_config = this->cVarCreate("diag_preset_veh_config", "Preselected TruckConfig", CVAR_ARCHIVE);
92 App::diag_preset_veh_enter = this->cVarCreate("diag_preset_veh_enter", "Enter Preselected Truck", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
93 App::diag_log_console_echo = this->cVarCreate("diag_log_console_echo", "Enable Ingame Console", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
94 App::diag_log_beam_break = this->cVarCreate("diag_log_beam_break", "Beam Break Debug", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
95 App::diag_log_beam_deform = this->cVarCreate("diag_log_beam_deform", "Beam Deform Debug", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
96 App::diag_log_beam_trigger = this->cVarCreate("diag_log_beam_trigger", "Trigger Debug", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
97 App::diag_simple_materials = this->cVarCreate("diag_simple_materials", "SimpleMaterials", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
98 App::diag_warning_texture = this->cVarCreate("diag_warning_texture", "Warning texture", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
99 App::diag_hide_broken_beams = this->cVarCreate("diag_hide_broken_beams", "Hide broken beams", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
100 App::diag_hide_beam_stress = this->cVarCreate("diag_hide_beam_stress", "Hide beam stress", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
101 App::diag_hide_wheel_info = this->cVarCreate("diag_hide_wheel_info", "Hide wheel info", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
102 App::diag_hide_wheels = this->cVarCreate("diag_hide_wheels", "Hide wheels", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
103 App::diag_hide_nodes = this->cVarCreate("diag_hide_nodes", "Hide nodes", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
104 App::diag_terrn_log_roads = this->cVarCreate("diag_terrn_log_roads", "", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
105 App::diag_actor_dump = this->cVarCreate("diag_actor_dump", "", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
106 App::diag_allow_window_resize= this->cVarCreate("diag_allow_window_resize","", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
107 App::diag_use_mygui_logfile = this->cVarCreate("diag_use_mygui_logfile", "", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
108
109 App::sys_process_dir = this->cVarCreate("sys_process_dir", "", 0);
110 App::sys_user_dir = this->cVarCreate("sys_user_dir", "", 0);
111 App::sys_config_dir = this->cVarCreate("sys_config_dir", "Config Root", 0);
112 App::sys_cache_dir = this->cVarCreate("sys_cache_dir", "Cache Path", 0);
113 App::sys_thumbnails_dir = this->cVarCreate("sys_thumbnails_dir", "Thumbnails Path", 0);
114 App::sys_logs_dir = this->cVarCreate("sys_logs_dir", "Log Path", 0);
115 App::sys_resources_dir = this->cVarCreate("sys_resources_dir", "Resources Path", 0);
116 App::sys_profiler_dir = this->cVarCreate("sys_profiler_dir", "Profiler output dir", 0);
117 App::sys_savegames_dir = this->cVarCreate("sys_savegames_dir", "", 0);
118 App::sys_screenshot_dir = this->cVarCreate("sys_screenshot_dir", "", 0);
119 App::sys_scripts_dir = this->cVarCreate("sys_scripts_dir", "", 0);
120 App::sys_projects_dir = this->cVarCreate("sys_projects_dir", "", 0);
121 App::sys_repo_attachments_dir= this->cVarCreate("sys_repo_attachments_dir","", 0);
122
123 App::cli_server_host = this->cVarCreate("cli_server_host", "", 0);
124 App::cli_server_port = this->cVarCreate("cli_server_port", "", CVAR_TYPE_INT, "0");
125 App::cli_preset_vehicle = this->cVarCreate("cli_preset_vehicle", "", 0);
126 App::cli_preset_veh_config = this->cVarCreate("cli_preset_veh_config", "", 0);
127 App::cli_preset_terrain = this->cVarCreate("cli_preset_terrain", "", 0);
128 App::cli_preset_spawn_pos = this->cVarCreate("cli_preset_spawn_pos", "", 0);
129 App::cli_preset_spawn_rot = this->cVarCreate("cli_preset_spawn_rot", "", 0);
130 App::cli_preset_veh_enter = this->cVarCreate("cli_preset_veh_enter", "", CVAR_TYPE_BOOL, "false");
131 App::cli_force_cache_update = this->cVarCreate("cli_force_cache_update", "", CVAR_TYPE_BOOL, "false");
132 App::cli_resume_autosave = this->cVarCreate("cli_resume_autosave", "", CVAR_TYPE_BOOL, "false");
133 App::cli_custom_scripts = this->cVarCreate("cli_custom_scripts", "", 0, "");
134
135 App::io_analog_smoothing = this->cVarCreate("io_analog_smoothing", "Analog Input Smoothing", CVAR_ARCHIVE | CVAR_TYPE_FLOAT, "1.0");
136 App::io_analog_sensitivity = this->cVarCreate("io_analog_sensitivity", "Analog Input Sensitivity", CVAR_ARCHIVE | CVAR_TYPE_FLOAT, "1.0");
137 App::io_blink_lock_range = this->cVarCreate("io_blink_lock_range", "Blinker Lock Range", CVAR_ARCHIVE | CVAR_TYPE_FLOAT, "0.1");
138 App::io_ffb_enabled = this->cVarCreate("io_ffb_enabled", "Force Feedback", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
139 App::io_ffb_camera_gain = this->cVarCreate("io_ffb_camera_gain", "Force Feedback Camera", CVAR_ARCHIVE | CVAR_TYPE_FLOAT);
140 App::io_ffb_center_gain = this->cVarCreate("io_ffb_center_gain", "Force Feedback Centering", CVAR_ARCHIVE | CVAR_TYPE_FLOAT);
141 App::io_ffb_master_gain = this->cVarCreate("io_ffb_master_gain", "Force Feedback Gain", CVAR_ARCHIVE | CVAR_TYPE_FLOAT);
142 App::io_ffb_stress_gain = this->cVarCreate("io_ffb_stress_gain", "Force Feedback Stress", CVAR_ARCHIVE | CVAR_TYPE_FLOAT);
143 App::io_input_grab_mode = this->cVarCreate("io_input_grab_mode", "Input Grab", CVAR_ARCHIVE | CVAR_TYPE_INT, "1"/*(int)IoInputGrabMode::ALL*/);
144 App::io_arcade_controls = this->cVarCreate("io_arcade_controls", "ArcadeControls", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
145 App::io_hydro_coupling = this->cVarCreate("io_hydro_coupling", "Keyboard Steering Speed Coupling",CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
146 App::io_outgauge_mode = this->cVarCreate("io_outgauge_mode", "OutGauge Mode", CVAR_ARCHIVE | CVAR_TYPE_INT); // 0 = disabled, 1 = enabled
147 App::io_outgauge_ip = this->cVarCreate("io_outgauge_ip", "OutGauge IP", CVAR_ARCHIVE, "192.168.1.100");
148 App::io_outgauge_port = this->cVarCreate("io_outgauge_port", "OutGauge Port", CVAR_ARCHIVE | CVAR_TYPE_INT, "1337");
149 App::io_outgauge_delay = this->cVarCreate("io_outgauge_delay", "OutGauge Delay", CVAR_ARCHIVE | CVAR_TYPE_FLOAT, "10.0");
150 App::io_outgauge_id = this->cVarCreate("io_outgauge_id", "OutGauge ID", CVAR_ARCHIVE | CVAR_TYPE_INT);
151 App::io_discord_rpc = this->cVarCreate("io_discord_rpc", "Discord Rich Presence", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
152 App::io_invert_orbitcam = this->cVarCreate("io_invert_orbitcam", "Invert orbit camera", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
153
154 App::audio_master_volume = this->cVarCreate("audio_master_volume", "Sound Volume", CVAR_ARCHIVE | CVAR_TYPE_FLOAT, "1.0");
155 App::audio_enable_creak = this->cVarCreate("audio_enable_creak", "Creak Sound", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
156 App::audio_enable_obstruction = this->cVarCreate("audio_enable_obstruction", "Obstruction of sounds", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
157 App::audio_enable_occlusion = this->cVarCreate("audio_enable_occlusion", "Occlusion of sounds", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
158 App::audio_enable_directed_sounds = this->cVarCreate("audio_enable_directed_sounds", "Directed sounds", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
159 App::audio_enable_reflection_panning = this->cVarCreate("audio_enable_reflection_panning", "Pan reflections", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
160 App::audio_device_name = this->cVarCreate("audio_device_name", "AudioDevice", CVAR_ARCHIVE);
161 App::audio_doppler_factor = this->cVarCreate("audio_doppler_factor", "Doppler Factor", CVAR_ARCHIVE | CVAR_TYPE_FLOAT, "1.0");
162 App::audio_menu_music = this->cVarCreate("audio_menu_music", "MainMenuMusic", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
163 App::audio_enable_efx = this->cVarCreate("audio_enable_efx", "Enable OpenAL EFX", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
164 App::audio_engine_controls_environmental_audio = this->cVarCreate("audio_engine_controls_environmental_audio", "Engine-controlled environm. audio", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
165 App::audio_efx_reverb_engine = this->cVarCreate("audio_efx_reverb_engine", "OpenAL EFX Reverb Engine", CVAR_ARCHIVE | CVAR_TYPE_INT, "2"/*(int)EfxReverbEngine::EAXREVERB*/);
166 App::audio_default_efx_preset = this->cVarCreate("audio_default_efx_preset", "OpenAL default EFX preset", CVAR_ARCHIVE);
167 App::audio_force_listener_efx_preset = this->cVarCreate("audio_force_listener_efx_preset", "OpenAL forced listener EFX preset", CVAR_ARCHIVE);
168 App::audio_force_obstruction_inside_vehicles = this->cVarCreate("audio_force_obstruction_inside_vehicles", "Force obstruction inside vehicles", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
169 App::audio_sim_pause_disables_doppler_effect = this->cVarCreate("audio_sim_pause_disables_doppler_effect", "Disable Doppler effect on sim pause", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
170
171 App::gfx_flares_mode = this->cVarCreate("gfx_flares_mode", "Lights", CVAR_ARCHIVE | CVAR_TYPE_INT, "4"/*(int)GfxFlaresMode::ALL_VEHICLES_ALL_LIGHTS*/);
172 App::gfx_polygon_mode = this->cVarCreate("gfx_polygon_mode", "Polygon mode", CVAR_TYPE_INT, "1"/*(int)Ogre::PM_SOLID*/);
173 App::gfx_shadow_type = this->cVarCreate("gfx_shadow_type", "Shadow technique", CVAR_ARCHIVE | CVAR_TYPE_INT, "1"/*(int)GfxShadowType::PSSM*/);
174 App::gfx_extcam_mode = this->cVarCreate("gfx_extcam_mode", "External Camera Mode", CVAR_ARCHIVE | CVAR_TYPE_INT, "2"/*(int)GfxExtCamMode::PITCHING*/);
175 App::gfx_sky_mode = this->cVarCreate("gfx_sky_mode", "Sky effects", CVAR_ARCHIVE | CVAR_TYPE_INT, "1"/*(int)GfxSkyMode::CAELUM*/);
176 App::gfx_texture_filter = this->cVarCreate("gfx_texture_filter", "Texture Filtering", CVAR_ARCHIVE | CVAR_TYPE_INT, "3"/*(int)GfxTexFilter::ANISOTROPIC*/);
177 App::gfx_vegetation_mode = this->cVarCreate("gfx_vegetation_mode", "Vegetation", CVAR_ARCHIVE | CVAR_TYPE_INT, "3"/*(int)GfxVegetation::FULL*/);
178 App::gfx_sky_time_cycle = this->cVarCreate("gfx_sky_time_cycle", "", CVAR_TYPE_BOOL, "false");
179 App::gfx_sky_time_speed = this->cVarCreate("gfx_sky_time_speed", "", CVAR_TYPE_INT, "300");
180 App::gfx_water_mode = this->cVarCreate("gfx_water_mode", "Water effects", CVAR_ARCHIVE | CVAR_TYPE_INT, "3"/*(int)GfxWaterMode::FULL_FAST*/);
181 App::gfx_anisotropy = this->cVarCreate("gfx_anisotropy", "Anisotropy", CVAR_ARCHIVE | CVAR_TYPE_INT, "4");
182 App::gfx_water_waves = this->cVarCreate("gfx_water_waves", "Waves", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
183 App::gfx_particles_mode = this->cVarCreate("gfx_particles_mode", "Particles", CVAR_ARCHIVE | CVAR_TYPE_INT);
184 App::gfx_enable_videocams = this->cVarCreate("gfx_enable_videocams", "gfx_enable_videocams", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
185 App::gfx_window_videocams = this->cVarCreate("gfx_window_videocams", "UseVideocameraWindows", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
186 App::gfx_surveymap_icons = this->cVarCreate("gfx_surveymap_icons", "Overview map icons", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
187 App::gfx_declutter_map = this->cVarCreate("gfx_declutter_map", "Declutter overview map", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
188 App::gfx_envmap_enabled = this->cVarCreate("gfx_envmap_enabled", "Reflections", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
189 App::gfx_envmap_rate = this->cVarCreate("gfx_envmap_rate", "ReflectionUpdateRate", CVAR_ARCHIVE | CVAR_TYPE_INT, "1");
190 App::gfx_shadow_quality = this->cVarCreate("gfx_shadow_quality", "Shadows Quality", CVAR_ARCHIVE | CVAR_TYPE_INT, "2");
191 App::gfx_skidmarks_mode = this->cVarCreate("gfx_skidmarks_mode", "Skidmarks", CVAR_ARCHIVE | CVAR_TYPE_INT, "0");
192 App::gfx_sight_range = this->cVarCreate("gfx_sight_range", "SightRange", CVAR_ARCHIVE | CVAR_TYPE_INT, "5000");
193 App::gfx_camera_height = this->cVarCreate("gfx_camera_height", "Static camera height", CVAR_ARCHIVE | CVAR_TYPE_INT, "5");
194 App::gfx_fov_external = this->cVarCreate("gfx_fov_external", "", CVAR_TYPE_INT, "60");
195 App::gfx_fov_external_default= this->cVarCreate("gfx_fov_external_default","FOV External", CVAR_ARCHIVE | CVAR_TYPE_INT, "60");
196 App::gfx_fov_internal = this->cVarCreate("gfx_fov_internal", "", CVAR_TYPE_INT, "75");
197 App::gfx_fov_internal_default= this->cVarCreate("gfx_fov_internal_default","FOV Internal", CVAR_ARCHIVE | CVAR_TYPE_INT, "75");
198 App::gfx_static_cam_fov_exp = this->cVarCreate("gfx_static_cam_fov_exp", "", CVAR_ARCHIVE | CVAR_TYPE_FLOAT, "1.0");
199 App::gfx_fixed_cam_tracking = this->cVarCreate("gfx_fixed_cam_tracking", "", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
200 App::gfx_fps_limit = this->cVarCreate("gfx_fps_limit", "FPS-Limiter", CVAR_ARCHIVE | CVAR_TYPE_INT, "0");
201 App::gfx_speedo_imperial = this->cVarCreate("gfx_speedo_imperial", "gfx_speedo_imperial", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
202 App::gfx_flexbody_cache = this->cVarCreate("gfx_flexbody_cache", "Flexbody_UseCache", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
203 App::gfx_reduce_shadows = this->cVarCreate("gfx_reduce_shadows", "Shadow optimizations", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
204 App::gfx_enable_rtshaders = this->cVarCreate("gfx_enable_rtshaders", "Use RTShader System", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
205 App::gfx_alt_actor_materials = this->cVarCreate("gfx_alt_actor_materials", "Use alternate vehicle materials", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
206 App::gfx_auto_lod = this->cVarCreate("gfx_auto_lod", "Use OGREs Automatic Mesh LOD Generator", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
207
208 App::flexbody_defrag_enabled = this->cVarCreate("flexbody_defrag_enabled", "", CVAR_TYPE_BOOL);
209 App::flexbody_defrag_const_penalty = this->cVarCreate("flexbody_defrag_const_penalty", "", CVAR_TYPE_INT, "7");
210 App::flexbody_defrag_prog_up_penalty = this->cVarCreate("flexbody_defrag_prog_up_penalty", "", CVAR_TYPE_INT, "3");
211 App::flexbody_defrag_prog_down_penalty = this->cVarCreate("flexbody_defrag_prog_down_penalty", "", CVAR_TYPE_INT, "1");
212 App::flexbody_defrag_reorder_indices = this->cVarCreate("flexbody_defrag_reorder_indices", "", CVAR_TYPE_BOOL, "true");
213 App::flexbody_defrag_reorder_texcoords = this->cVarCreate("flexbody_defrag_reorder_texcoords", "", CVAR_TYPE_BOOL, "true");
214 App::flexbody_defrag_invert_lookup = this->cVarCreate("flexbody_defrag_invert_lookup", "", CVAR_TYPE_BOOL, "true");
215
216 App::ui_show_live_repair_controls = this->cVarCreate("ui_show_live_repair_controls", "", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
217 App::ui_show_vehicle_buttons = this->cVarCreate("ui_show_vehicle_buttons", "Show vehicle buttons menu", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "true");
218 App::ui_preset = this->cVarCreate("ui_preset", "", CVAR_ARCHIVE | CVAR_TYPE_INT, "0"/*(int)UiPreset::NOVICE*/);
219 App::ui_hide_gui = this->cVarCreate("ui_hide_gui", "", CVAR_TYPE_BOOL, "false");
220 App::ui_default_truck_dash = this->cVarCreate("ui_default_truck_dash", "", CVAR_ARCHIVE, "default_truck_digital.dashboard");
221 App::ui_default_boat_dash = this->cVarCreate("ui_default_boat_dash", "", CVAR_ARCHIVE, "default_boat.dashboard");
222 App::ui_always_show_fullsize = this->cVarCreate("ui_always_show_fullsize", "", CVAR_ARCHIVE | CVAR_TYPE_BOOL, "false");
223}
224
225CVar* Console::cVarCreate(std::string const& name, std::string const& long_name,
226 int flags, std::string const& val/* = std::string()*/)
227{
228 CVar* cvar = nullptr;
229 if (long_name == "")
230 {
231 cvar = new CVar(name, name, flags);
232 }
233 else
234 {
235 cvar = new CVar(name, long_name, flags);
236 }
237
238 if (!val.empty())
239 {
240 this->cVarAssign(cvar, val);
241 }
242
243 m_cvars.insert(std::make_pair(name, cvar));
244 m_cvars_longname.insert(std::make_pair(long_name, cvar));
245
246 return cvar;
247}
248
249void Console::cVarAssign(CVar* cvar, std::string const& value)
250{
252 {
253 float val = 0.f;
254 if (cvar->hasFlag(CVAR_TYPE_BOOL)) { val = (float)Ogre::StringConverter::parseBool(value); }
255 else if (cvar->hasFlag(CVAR_TYPE_INT)) { val = (float)Ogre::StringConverter::parseInt(value); }
256 else if (cvar->hasFlag(CVAR_TYPE_FLOAT)) { val = Ogre::StringConverter::parseReal(value); }
257
258
259 cvar->setVal(val);
260 }
261 else
262 {
263 cvar->setStr(value);
264 }
265}
266
267CVar* Console::cVarFind(std::string const& input_name)
268{
269 CVarPtrMap::const_iterator itor = m_cvars.find(input_name);
270 if (itor != m_cvars.end())
271 {
272 return itor->second;
273 }
274
275 itor = m_cvars_longname.find(input_name);
276 if (itor != m_cvars_longname.end())
277 {
278 return itor->second;
279 }
280
281 return nullptr;
282}
283
284CVar* Console::cVarSet(std::string const& input_name, std::string const& input_val)
285{
286 CVar* found = this->cVarFind(input_name);
287 if (found)
288 {
289 this->cVarAssign(found, input_val);
290 }
291
292 return nullptr;
293}
294
295CVar* Console::cVarGet(std::string const& input_name, int flags)
296{
297 CVar* found = this->cVarFind(input_name);
298 if (found)
299 {
300 return found;
301 }
302
303 return this->cVarCreate(input_name, input_name, flags);
304}
305
306void CVar::logUpdate(std::string const& new_val)
307{
308 if (!Ogre::LogManager::getSingletonPtr())
309 return;
310
311 if (this->hasFlag(CVAR_NO_LOG))
312 return;
313
314 LogFormat("[RoR|CVar] %20s: \"%s\" (was: \"%s\")",
315 m_name.c_str(), new_val.c_str(), m_value_str.c_str());
316}
317
318std::string CVar::convertStr(float val)
319{
320 if (this->hasFlag(CVAR_TYPE_BOOL))
321 {
322 return ((bool)val) ? "Yes" : "No";
323 }
324 else if (this->hasFlag(CVAR_TYPE_INT))
325 {
326 return Ogre::StringUtil::format("%d", (int)val);
327 }
328 else if (this->hasFlag(CVAR_TYPE_FLOAT))
329 {
330 return std::to_string((float)val);
331 }
332 else
333 {
334 return std::to_string(val);
335 }
336}
Central state/object manager and communications hub.
Quake-style console variable, defined in RoR.cfg or crated via Console UI and scripts.
Definition CVar.h:53
std::string m_value_str
Definition CVar.h:116
std::string m_name
Definition CVar.h:113
std::string convertStr(float val)
Definition CVar.cpp:318
T getEnum() const
Definition CVar.h:99
void setStr(std::string const &str)
Definition CVar.h:83
void setVal(T val)
Definition CVar.h:72
bool hasFlag(int f) const
Definition CVar.h:105
void logUpdate(std::string const &new_val)
Definition CVar.cpp:306
CVar * cVarSet(std::string const &input_name, std::string const &input_val)
Set existing cvar by short/long name. Return the modified cvar (or NULL if not found)
Definition CVar.cpp:284
void cVarAssign(CVar *cvar, std::string const &value)
Parse value by cvar type.
Definition CVar.cpp:249
CVar * cVarCreate(std::string const &name, std::string const &long_name, int flags, std::string const &val=std::string())
Add CVar and parse default value if specified.
Definition CVar.cpp:225
CVarPtrMap m_cvars
Definition Console.h:160
void cVarSetupBuiltins()
Create builtin vars and set defaults.
Definition CVar.cpp:29
CVar * cVarFind(std::string const &input_name)
Find cvar by short/long name.
Definition CVar.cpp:267
CVarPtrMap m_cvars_longname
Definition Console.h:161
CVar * cVarGet(std::string const &input_name, int flags)
Get cvar by short/long name, or create new one using input as short name.
Definition CVar.cpp:295
@ CVAR_ARCHIVE
Will be written to RoR.cfg.
Definition CVar.h:41
@ CVAR_TYPE_INT
Definition CVar.h:39
@ CVAR_NO_LOG
Will not be written to RoR.log.
Definition CVar.h:42
@ CVAR_TYPE_FLOAT
Definition CVar.h:40
@ CVAR_TYPE_BOOL
Definition CVar.h:38
CVar * cli_server_host
CVar * mp_player_name
CVar * diag_warning_texture
CVar * gfx_sky_mode
CVar * io_ffb_enabled
CVar * mp_server_password
CVar * flexbody_defrag_const_penalty
CVar * gfx_polygon_mode
CVar * mp_api_url
CVar * gfx_static_cam_fov_exp
CVar * audio_force_listener_efx_preset
CVar * flexbody_defrag_prog_up_penalty
CVar * ui_show_live_repair_controls
bool
CVar * audio_efx_reverb_engine
CVar * sys_repo_attachments_dir
CVar * audio_menu_music
CVar * app_screenshot_format
CVar * gfx_sky_time_cycle
CVar * audio_enable_directed_sounds
CVar * mp_hide_own_net_label
CVar * io_outgauge_delay
CVar * gfx_water_mode
CVar * sim_state
CVar * mp_hide_net_labels
CVar * ui_show_vehicle_buttons
CVar * audio_enable_obstruction
CVar * sys_projects_dir
CVar * io_outgauge_mode
CVar * diag_auto_spawner_report
CVar * gfx_extcam_mode
CVar * sim_spawn_running
CVar * diag_actor_dump
CVar * remote_query_url
CVar * io_blink_lock_range
CVar * diag_log_beam_trigger
CVar * cli_resume_autosave
CVar * flexbody_defrag_reorder_texcoords
CVar * cli_custom_scripts
CVar * audio_doppler_factor
CVar * flexbody_defrag_prog_down_penalty
CVar * cli_force_cache_update
CVar * diag_rig_log_node_import
CVar * cli_preset_veh_config
CVar * diag_allow_window_resize
CVar * gfx_envmap_rate
CVar * app_num_workers
CVar * app_language
CVar * sys_logs_dir
CVar * app_skip_main_menu
CVar * cli_preset_veh_enter
CVar * io_invert_orbitcam
CVar * diag_rig_log_node_stats
CVar * ui_preset
enum RoR::UiPreset
CVar * gfx_fov_internal_default
CVar * sim_terrain_name
CVar * sim_replay_length
CVar * gfx_sky_time_speed
CVar * sim_races_enabled
CVar * app_rendersys_override
CVar * io_outgauge_port
CVar * audio_default_efx_preset
CVar * sim_terrain_gui_name
CVar * audio_enable_reflection_panning
CVar * audio_enable_creak
CVar * diag_preset_vehicle
CVar * gfx_sight_range
CVar * audio_sim_pause_disables_doppler_effect
CVar * sys_profiler_dir
CVar * app_country
CVar * audio_force_obstruction_inside_vehicles
CVar * mp_cyclethru_net_actors
Include remote actors when cycling through with CTRL + [ and CTRL + ].
CVar * gfx_anisotropy
CVar * app_recent_scripts
CVar * mp_server_port
CVar * app_force_cache_purge
CVar * gfx_particles_mode
CVar * diag_hide_wheels
CVar * diag_preset_spawn_pos
CVar * diag_truck_mass
CVar * io_ffb_stress_gain
CVar * diag_hide_nodes
CVar * audio_master_volume
CVar * gfx_camera_height
CVar * sys_config_dir
CVar * sim_tuning_enabled
CVar * diag_terrn_log_roads
CVar * sys_savegames_dir
CVar * sim_soft_reset_mode
CVar * io_ffb_center_gain
CVar * ui_hide_gui
bool; The 'hide GUI' hotkey state
CVar * gfx_auto_lod
CVar * app_force_cache_update
CVar * io_analog_sensitivity
CVar * app_state
CVar * gfx_water_waves
CVar * cli_preset_spawn_pos
CVar * mp_chat_auto_hide
CVar * diag_log_beam_deform
CVar * sim_no_collisions
CVar * gfx_fov_external
CVar * mp_state
CVar * audio_device_name
CVar * sim_realistic_commands
CVar * diag_preset_spawn_rot
CVar * gfx_window_videocams
CVar * sim_replay_stepping
CVar * sys_user_dir
CVar * sys_cache_dir
CVar * sim_no_self_collisions
CVar * gfx_fps_limit
CVar * gfx_vegetation_mode
CVar * sim_live_repair_interval
Hold EV_COMMON_REPAIR_TRUCK to enter LiveRepair mode. 0 or negative interval disables.
CVar * diag_envmap
CVar * diag_hide_wheel_info
CVar * cli_preset_terrain
CVar * gfx_declutter_map
CVar * diag_camera
CVar * audio_enable_efx
CVar * app_disable_online_api
CVar * io_outgauge_id
CVar * gfx_flares_mode
CVar * ui_default_boat_dash
string; name of the '.dashboard' file in modcache.
CVar * flexbody_defrag_enabled
CVar * app_config_long_names
CVar * ui_default_truck_dash
string; name of the '.dashboard' file in modcache.
CVar * gfx_fov_internal
CVar * sim_gearbox_mode
CVar * io_ffb_master_gain
CVar * diag_simple_materials
CVar * mp_player_token
CVar * mp_pseudo_collisions
CVar * io_hydro_coupling
CVar * diag_hide_broken_beams
CVar * gfx_alt_actor_materials
CVar * diag_preset_veh_enter
CVar * gfx_speedo_imperial
CVar * app_custom_scripts
CVar * ui_always_show_fullsize
CVar * gfx_enable_rtshaders
CVar * diag_use_mygui_logfile
CVar * sim_quickload_dialog
CVar * gfx_envmap_enabled
CVar * flexbody_defrag_reorder_indices
CVar * diag_preset_terrain
CVar * cli_preset_spawn_rot
CVar * gfx_reduce_shadows
CVar * diag_videocameras
CVar * audio_enable_occlusion
CVar * audio_engine_controls_environmental_audio
CVar * gfx_surveymap_icons
CVar * io_ffb_camera_gain
CVar * io_outgauge_ip
CVar * diag_preset_veh_config
CVar * io_discord_rpc
CVar * gfx_texture_filter
CVar * sys_screenshot_dir
CVar * gfx_flexbody_cache
CVar * gfx_fov_external_default
CVar * sys_resources_dir
CVar * cli_preset_vehicle
CVar * diag_log_beam_break
CVar * io_input_grab_mode
CVar * gfx_enable_videocams
CVar * sim_replay_enabled
CVar * io_arcade_controls
CVar * io_analog_smoothing
CVar * mp_server_host
CVar * gfx_shadow_quality
CVar * sys_scripts_dir
CVar * sys_thumbnails_dir
CVar * flexbody_defrag_invert_lookup
CVar * diag_log_console_echo
CVar * cli_server_port
CVar * gfx_fixed_cam_tracking
CVar * app_extra_mod_path
CVar * gfx_shadow_type
CVar * sys_process_dir
CVar * gfx_skidmarks_mode
CVar * diag_hide_beam_stress
CVar * mp_join_on_startup
CVar * app_async_physics
void LogFormat(const char *format,...)
Improved logging utility. Uses fixed 2Kb buffer.