Rigs of Rods 2026.01
Soft-body Physics Simulation
Loading...
Searching...
No Matches
Application.h
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-2023 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
26
27#pragma once
28
29#include "BitFlags.h"
30#include "CVar.h"
31#include "ForwardDeclarations.h"
32#include "Str.h"
33
34#include <fmt/format.h>
35#include <OgreStringConverter.h>
36
37#include <assert.h>
38#include <string>
39
40#define ROR_ASSERT(_EXPR) assert(_EXPR)
41
42#define CHARACTER_ANIM_NAME_LEN 10 // Restricted for networking
43
44// OGRE resource group names
45#define RGN_TEMP "Temp"
46#define RGN_CACHE "Cache"
47#define RGN_THUMBNAILS "Thumbnails" // Repository UI - mod previews (one per resource)
48#define RGN_REPO_ATTACHMENTS "RepoAttachments" // Repository UI - images in description text (any number per resource)
49#define RGN_CONFIG "Config"
50#define RGN_CONTENT "Content"
51#define RGN_SAVEGAMES "Savegames"
52#define RGN_MANAGED_MATS "ManagedMaterials"
53#define RGN_SCRIPTS "Scripts"
54#define RGN_SERVER_SCRIPTS "ServerScripts"
55#define RGN_LOGS "Logs"
56
57// Legacy macros
58#define TOSTRING(x) Ogre::StringConverter::toString(x)
59#define PARSEINT(x) Ogre::StringConverter::parseInt(x)
60#define PARSEREAL(x) Ogre::StringConverter::parseReal(x)
61#define HydraxLOG(msg) Ogre::LogManager::getSingleton().logMessage("[Hydrax] " + Ogre::String(msg));
62
63namespace RoR {
64
65// ------------------------------------------------------------------------------------------------
66// Global definitions and enumerations
67// ------------------------------------------------------------------------------------------------
68
71
74
77{
78 // CHECKLIST for adding new message types:
79 // * Provide name as string constant - see `MsgTypeToString()` in Application.cpp
80 // * Register it with AngelScript - see `RegisterMessageQueue()` in 'scripting/bindings/MsgQueueAngelscript.cpp'
81 // * Allow/Deny pushing from AngelScript - see `pushMessage()` in 'scripting/GameScript.cpp'
82 // * Document the AngelScript usage - see 'doc/angelscript/Script2Game/globals.h'.
83 // * Make it do something useful in 'main.cpp' ;)
84
86 // Application
99 // Networking
124 // Simulation
145 // GUI
156 // Editing
171};
172
173const char* MsgTypeToString(MsgType type);
174
176
177} // namespace RoR
178
179namespace RigDef
180{
181enum class Keyword
182{
183 // IMPORTANT! If you add a value here, you must also modify `RigDef::Regexes::IDENTIFY_KEYWORD`, it relies on numeric values of this enum.
184
185 INVALID = 0,
186
187 ADD_ANIMATION = 1,
188 AIRBRAKES,
189 ANIMATORS,
192 AUTHOR,
193 AXLES,
194 BACKMESH,
195 BEAMS,
196 BRAKES,
197 CAB,
199 CAMERAS,
200 CINECAM,
202 COMMANDS,
203 COMMANDS2,
204 COMMENT,
213 END,
217 ENGINE,
218 ENGOPTION,
219 ENGTURBO,
220 ENVMAP,
221 EXHAUSTS,
222 EXTCAMERA,
224 FILEINFO,
225 FIXES,
226 FLARES,
227 FLARES2,
228 FLARES3,
233 FORSET,
234 FORVERT,
236 FUSEDRAG,
237 GLOBALS,
238 GUID,
240 HELP,
242 HOOKGROUP, // obsolete, ignored
243 HOOKS,
244 HYDROS,
253 MINIMASS,
254 NODECOLLISION, // obsolete
255 NODES,
256 NODES2,
257 PARTICLES,
260 PROPS,
262 RESCUER,
263 RIGIDIFIERS, // obsolete
264 ROLLON,
265 ROPABLES,
266 ROPES,
267 ROTATORS,
268 ROTATORS2,
270 SCRIPTS,
271 SECTION,
282 SHOCKS,
283 SHOCKS2,
284 SHOCKS3,
291 SUBMESH,
293 TEXCOORDS,
294 TIES,
298 TRIGGERS,
299 TURBOJETS,
304 WHEELS,
305 WHEELS2,
306 WINGS
307};
308
309const char* KeywordToString(Keyword keyword);
310
311} // namespace RigDef
312
313namespace RoR
314{
315
316enum class AppState
317{
318 BOOTSTRAP,
319 MAIN_MENU,
321 SHUTDOWN,
324};
325
326enum class MpState
327{
328 DISABLED,
330 CONNECTED,
332};
333
334enum class SimState
335{
336 OFF,
337 RUNNING,
338 PAUSED,
340};
341
343
346
349
351{
352 AUTO,
353 SEMI_AUTO,
354 MANUAL,
357};
358std::string ToLocalizedString(SimGearboxMode e);
359
362
364{
365 NONE,
366 PSSM
367};
368std::string ToLocalizedString(GfxShadowType e);
369
371{
372 NONE,
373 STATIC,
374 PITCHING,
375};
376std::string ToLocalizedString(GfxExtCamMode e);
377
378enum class GfxTexFilter
379{
380 NONE,
381 BILINEAR,
382 TRILINEAR,
384};
385std::string ToLocalizedString(GfxTexFilter e);
386
388{
389 NONE,
390 x20PERC,
391 x50PERC,
392 FULL,
393};
394std::string ToLocalizedString(GfxVegetation e);
395
404std::string ToLocalizedString(GfxFlaresMode e);
405
406enum class GfxWaterMode
407{
408 NONE,
409 BASIC,
410 REFLECT,
411 FULL_FAST,
412 FULL_HQ,
413 HYDRAX,
414};
415std::string ToLocalizedString(GfxWaterMode e);
416
417enum class GfxSkyMode
418{
419 SANDSTORM,
420 CAELUM,
421 SKYX,
422};
423std::string ToLocalizedString(GfxSkyMode e);
424
426{
427 NONE,
428 REVERB,
429 EAXREVERB,
430};
432
434{
435 NONE,
436 ALL,
437 DYNAMIC,
438};
440
441enum class SimResetMode
442{
443 HARD = 0, // 'sim_soft_reset=false'
444 SOFT = 1 // 'sim_soft_reset=true'
445};
446std::string ToLocalizedString(SimResetMode e);
447
449// Do NOT change numbers - used for indexing `RoR::UiPresetEntry::uip_values`
450enum class UiPreset
451{
452 NOVICE,
453 REGULAR,
454 EXPERT,
456 Count
457};
458std::string ToLocalizedString(UiPreset e);
459
466
468{
470 LT_Terrain, // Invocable from GUI; No script alias, used in main menu
471 LT_Vehicle, // Script "vehicle", ext: truck car
472 LT_Truck, // Script "truck", ext: truck car
473 LT_Car, // Script "car", ext: car
474 LT_Boat, // Script "boat", ext: boat
475 LT_Airplane, // Script "airplane", ext: airplane
476 LT_Trailer, // Script "trailer", ext: trailer
477 LT_Train, // Script "train", ext: train
478 LT_Load, // Script "load", ext: load
479 LT_Extension, // Script "extension", ext: trailer load
480 LT_Skin, // No script alias, invoked automatically
481 LT_AllBeam, // Invocable from GUI; Script "all", ext: truck car boat airplane train load
482 LT_AddonPart, // No script alias, invoked manually, ext: addonpart
483 LT_Tuneup, // No script alias, invoked manually, ext: tuneup
484 LT_AssetPack, // No script alias, invoked manually, ext: assetpack
485 LT_DashBoard, // No script alias, invoked manually, ext: dashboard
486 LT_Gadget, // No script alias, invoked manually, ext: gadget
487};
488
512
513enum class FlareType: char
514{
515 // DO NOT MODIFY LETTERS - de/serialized from/to truck definition file, see 'RigDef_File.h' and 'ActorExport.cpp'
516
517 NONE = 0,
518 // Front lights
519 HEADLIGHT = 'f',
520 HIGH_BEAM = 'h',
521 FOG_LIGHT = 'g',
522 // Rear lighs
523 TAIL_LIGHT = 't',
524 BRAKE_LIGHT = 'b',
525 REVERSE_LIGHT = 'R',
526 // Special lights
527 SIDELIGHT = 's',
528 BLINKER_LEFT = 'l',
529 BLINKER_RIGHT = 'r',
530 USER = 'u',
531 DASHBOARD = 'd'
532};
533
534enum class WheelBraking: int
535{
536 // DO NOT MODIFY NUMBERS - de/serialized from/to truck definition file, see RigDef_File.h, `struct BaseWheel`
537
538 NONE = 0,
539 FOOT_HAND = 1,
542 FOOT_ONLY = 4,
543};
544
545enum class WheelPropulsion: int
546{
547 // DO NOT MODIFY NUMBERS - de/serialized from/to truck definition file, see RigDef_File.h, `struct BaseWheel`
548
549 NONE = 0,
550 FORWARD = 1,
551 BACKWARD = 2,
552};
553
555enum class WheelSide: char
556{
557 // DO NOT MODIFY LETTERS - de/serialized from/to truck definition file, see 'RigDef_File.h' and 'ActorExport.cpp'
558
559 INVALID = 'n',
560 RIGHT = 'r',
561 LEFT = 'l'
562};
563
565{
566 // DO NOT MODIFY NUMBERS - de/serialized from/to truck definition file, see RigDef_File.h and 'ActorExport.cpp'
567
568 INVALID = -1,
569 CLASSIC = 0,
570 CINECAM = 1,
571 NODE = 2,
572};
573
574// Dynamic visibility control (value 0 and higher is cinecam index) - common to 'props' and 'flexbodies'
575// DO NOT MODIFY NUMBERS - de/serialized from/to truck definition file, see RigDef_File.h and 'ActorExport.cpp'
576typedef int CameraMode_t;
580
581static const float UI_SCALE_FACTOR_MIN = 1.f; // For some reason scale <1.f hides mouse pointer.
582static const float UI_SCALE_FACTOR_MAX = 4.f;
583
585{
586 // Exported to AngelScript:
587 NONE,
588 TRUCK,
589 LOAD,
590 MACHINE,
591 BOAT,
592 TRUCK2,
593
594 // Not exported to AngelScript:
595 GRID,
596 // Road types
597 ROAD,
603};
605
607{
608 // DO NOT CHANGE NUMBERS, they match 'videocamera/camera_role' parameter in the .truck file
609
614
615 // Internal types
618
621
623};
624
625// ------------------------------------------------------------------------------------------------
626// Global variables
627// ------------------------------------------------------------------------------------------------
628
629namespace App {
630
631// App
632extern CVar* app_state;
633extern CVar* app_language;
634extern CVar* app_country;
635extern CVar* app_skip_main_menu;
636extern CVar* app_async_physics;
637extern CVar* app_num_workers;
638extern CVar* app_screenshot_format;
639extern CVar* app_rendersys_override;
640extern CVar* app_extra_mod_path;
641extern CVar* app_force_cache_purge;
642extern CVar* app_force_cache_update;
643extern CVar* app_disable_online_api;
644extern CVar* app_config_long_names;
645extern CVar* app_custom_scripts;
646extern CVar* app_recent_scripts;
647
648// Simulation
649extern CVar* sim_state;
650extern CVar* sim_terrain_name;
651extern CVar* sim_terrain_gui_name;
652extern CVar* sim_spawn_running;
653extern CVar* sim_replay_enabled;
654extern CVar* sim_replay_length;
655extern CVar* sim_replay_stepping;
656extern CVar* sim_realistic_commands;
657extern CVar* sim_races_enabled;
658extern CVar* sim_no_collisions;
659extern CVar* sim_no_self_collisions;
660extern CVar* sim_gearbox_mode;
661extern CVar* sim_soft_reset_mode;
662extern CVar* sim_quickload_dialog;
663extern CVar* sim_live_repair_interval;
664extern CVar* sim_tuning_enabled;
665
666// Multiplayer
667extern CVar* mp_state;
668extern CVar* mp_join_on_startup;
669extern CVar* mp_chat_auto_hide;
670extern CVar* mp_hide_net_labels;
671extern CVar* mp_hide_own_net_label;
672extern CVar* mp_pseudo_collisions;
673extern CVar* mp_server_host;
674extern CVar* mp_server_port;
675extern CVar* mp_server_password;
676extern CVar* mp_player_name;
677extern CVar* mp_player_token;
678extern CVar* mp_api_url;
679extern CVar* mp_cyclethru_net_actors;
680
681// New remote API
682extern CVar* remote_query_url;
683
684// Diagnostic
685extern CVar* diag_auto_spawner_report;
686extern CVar* diag_camera;
687extern CVar* diag_trace_globals;
688extern CVar* diag_rig_log_node_import;
689extern CVar* diag_rig_log_node_stats;
690extern CVar* diag_truck_mass;
691extern CVar* diag_envmap;
692extern CVar* diag_videocameras;
693extern CVar* diag_preset_terrain;
694extern CVar* diag_preset_spawn_pos;
695extern CVar* diag_preset_spawn_rot;
696extern CVar* diag_preset_vehicle;
697extern CVar* diag_preset_veh_config;
698extern CVar* diag_preset_veh_enter;
699extern CVar* diag_log_console_echo;
700extern CVar* diag_log_beam_break;
701extern CVar* diag_log_beam_deform;
702extern CVar* diag_log_beam_trigger;
703extern CVar* diag_simple_materials;
704extern CVar* diag_warning_texture;
705extern CVar* diag_hide_broken_beams;
706extern CVar* diag_hide_beam_stress;
707extern CVar* diag_hide_wheel_info;
708extern CVar* diag_hide_wheels;
709extern CVar* diag_hide_nodes;
710extern CVar* diag_terrn_log_roads;
711extern CVar* diag_actor_dump;
712extern CVar* diag_allow_window_resize;
713extern CVar* diag_use_mygui_logfile;
714extern CVar* diag_load_devel_scripts;
715extern CVar* diag_profiler_enabled;
716extern CVar* diag_profiler_rate;
718
719// System
720extern CVar* sys_process_dir;
721extern CVar* sys_user_dir;
722extern CVar* sys_config_dir;
723extern CVar* sys_cache_dir;
724extern CVar* sys_thumbnails_dir;
725extern CVar* sys_logs_dir;
726extern CVar* sys_resources_dir;
727extern CVar* sys_profiler_dir;
728extern CVar* sys_savegames_dir;
729extern CVar* sys_screenshot_dir;
730extern CVar* sys_scripts_dir;
731extern CVar* sys_server_scripts_dir;
732extern CVar* sys_projects_dir;
733extern CVar* sys_repo_attachments_dir;
734
735// OS command line
736extern CVar* cli_server_host;
737extern CVar* cli_server_port;
738extern CVar* cli_preset_vehicle;
739extern CVar* cli_preset_veh_config;
740extern CVar* cli_preset_terrain;
741extern CVar* cli_preset_spawn_pos;
742extern CVar* cli_preset_spawn_rot;
743extern CVar* cli_preset_veh_enter;
744extern CVar* cli_force_cache_update;
745extern CVar* cli_resume_autosave;
746extern CVar* cli_custom_scripts;
747
748// Input - Output
749extern CVar* io_analog_smoothing;
750extern CVar* io_analog_sensitivity;
751extern CVar* io_blink_lock_range;
752extern CVar* io_ffb_enabled;
753extern CVar* io_ffb_camera_gain;
754extern CVar* io_ffb_center_gain;
755extern CVar* io_ffb_master_gain;
756extern CVar* io_ffb_stress_gain;
757extern CVar* io_input_grab_mode;
758extern CVar* io_arcade_controls;
759extern CVar* io_hydro_coupling;
760extern CVar* io_outgauge_mode;
761extern CVar* io_outgauge_ip;
762extern CVar* io_outgauge_port;
763extern CVar* io_outgauge_delay;
764extern CVar* io_outgauge_id;
765extern CVar* io_discord_rpc;
766extern CVar* io_invert_orbitcam;
767
768// Audio
769extern CVar* audio_master_volume;
770extern CVar* audio_enable_creak;
771extern CVar* audio_enable_obstruction;
773extern CVar* audio_enable_occlusion;
776extern CVar* audio_enable_efx;
778extern CVar* audio_efx_reverb_engine;
779extern CVar* audio_default_efx_preset;
781extern CVar* audio_device_name;
782extern CVar* audio_doppler_factor;
783extern CVar* audio_menu_music;
785
786// Graphics
787extern CVar* gfx_flares_mode;
788extern CVar* gfx_polygon_mode;
789extern CVar* gfx_shadow_type;
790extern CVar* gfx_extcam_mode;
791extern CVar* gfx_sky_mode;
792extern CVar* gfx_sky_time_cycle;
793extern CVar* gfx_sky_time_speed;
794extern CVar* gfx_texture_filter;
795extern CVar* gfx_vegetation_mode;
796extern CVar* gfx_water_mode;
797extern CVar* gfx_anisotropy;
798extern CVar* gfx_water_waves;
799extern CVar* gfx_particles_mode;
800extern CVar* gfx_enable_videocams;
801extern CVar* gfx_window_videocams;
802extern CVar* gfx_surveymap_icons;
803extern CVar* gfx_declutter_map;
804extern CVar* gfx_envmap_enabled;
805extern CVar* gfx_envmap_rate;
806extern CVar* gfx_shadow_quality;
807extern CVar* gfx_skidmarks_mode;
808extern CVar* gfx_sight_range;
809extern CVar* gfx_camera_height;
810extern CVar* gfx_fov_external;
811extern CVar* gfx_fov_external_default;
812extern CVar* gfx_fov_internal;
813extern CVar* gfx_fov_internal_default;
814extern CVar* gfx_static_cam_fov_exp;
815extern CVar* gfx_fixed_cam_tracking;
816extern CVar* gfx_fps_limit;
817extern CVar* gfx_speedo_imperial;
818extern CVar* gfx_flexbody_cache;
819extern CVar* gfx_reduce_shadows;
820extern CVar* gfx_enable_rtshaders;
821extern CVar* gfx_alt_actor_materials;
822extern CVar* gfx_auto_lod;
823
824// Flexbodies
825extern CVar* flexbody_defrag_enabled;
832
833// GUI
834extern CVar* ui_show_live_repair_controls;
835extern CVar* ui_show_vehicle_buttons;
836extern CVar* ui_preset;
837extern CVar* ui_hide_gui;
838extern CVar* ui_default_truck_dash;
839extern CVar* ui_legacy_truck_renderdash;
840extern CVar* ui_default_boat_dash;
841extern CVar* ui_always_show_fullsize;
842extern CVar* ui_dashboard_cinecam;
843extern CVar* ui_keep_search;
844extern CVar* ui_scale_factor;
845
846// ------------------------------------------------------------------------------------------------
847// Global objects
848// ------------------------------------------------------------------------------------------------
849
850// Getters
851AppContext* GetAppContext();
852ContentManager* GetContentManager();
853OverlayWrapper* GetOverlayWrapper();
854GUIManager* GetGuiManager();
855Console* GetConsole();
856InputEngine* GetInputEngine();
857CacheSystem* GetCacheSystem();
858MumbleIntegration* GetMumble();
859ThreadPool* GetThreadPool();
860CameraManager* GetCameraManager();
861GfxScene* GetGfxScene();
862SoundScriptManager* GetSoundScriptManager();
863LanguageEngine* GetLanguageEngine();
864ScriptEngine* GetScriptEngine();
865ServerScriptSequencer* GetServerScript();
866Network* GetNetwork();
867GameContext* GetGameContext();
868OutGauge* GetOutGauge();
869DiscordRpc* GetDiscordRpc();
870
871// Factories
873void CreateGuiManager();
874void CreateInputEngine();
875void CreateMumble();
876void CreateThreadPool();
878void CreateGfxScene();
880void CreateScriptEngine();
881void CreateServerScript();
882
883// Cleanups
885void DestroyInputEngine();
886
887} // namespace App
888
889// ------------------------------------------------------------------------------------------------
890// Exception handling
891// ------------------------------------------------------------------------------------------------
892
894{
895 HANDLEGENERICEXCEPTION_LOGFILE = BITMASK(1), // Log to 'RoR.log'; Note OGRE exceptions are logged by OGRE but we still want the 'from' argument.
896 HANDLEGENERICEXCEPTION_SCRIPTEVENT = BITMASK(2), // Forward to script engine as game event `SE_GENERIC_EXCEPTION_CAUGHT`.
897 HANDLEGENERICEXCEPTION_CONSOLE = BITMASK(3), // Print to console, which auto-logs to RoR.log.
898
900};
901
902void HandleGenericException(const std::string& from, BitMask_t flags = HANDLEGENERICEXCEPTION_DEFAULT);
903
905
906// ------------------------------------------------------------------------------------------------
907// Logging
908// ------------------------------------------------------------------------------------------------
909
910void Log(const char* msg);
911void LogFormat(const char* format, ...);
912
913} // namespace RoR
914
915inline void LOG(const char* msg) { RoR::Log(msg); }
916inline void LOG(std::string const & msg) { RoR::Log(msg.c_str()); }
917
quaternion Log() const
void LOG(const char *msg)
Legacy alias - formerly a macro.
Bit operations.
#define BITMASK(OFFSET)
Definition BitFlags.h:10
uint32_t BitMask_t
Definition BitFlags.h:7
Global forward declarations.
const char * KeywordToString(RigDef::Keyword keyword)
@ SET_MANAGEDMATERIALS_OPTIONS
@ DISABLED
Not connected for whatever reason.
@ LOCAL_SCRIPT
Not actually connected to network, but running server script locally.
@ EDITOR_MODE
Hacky, but whatever... added by Ulteq, 2016.
@ BOOTSTRAP
Initial state.
@ MACHINE
its a machine
Definition SimData.h:88
@ TRUCK
its a truck (or other land vehicle)
Definition SimData.h:85
@ BOAT
its a boat
Definition SimData.h:87
const char * MsgTypeToString(MsgType type)
MsgType
Global gameplay message loop, see struct Message in GameContext.h.
Definition Application.h:77
@ MSG_GUI_OPEN_MENU_REQUESTED
@ MSG_APP_MODCACHE_LOAD_REQUESTED
Definition Application.h:91
@ MSG_SIM_TELEPORT_PLAYER_REQUESTED
Payload = Ogre::Vector3* (owner)
@ MSG_NET_CONNECT_STARTED
@ MSG_APP_MODCACHE_PURGE_REQUESTED
Definition Application.h:93
@ MSG_NET_FETCH_AI_PRESETS_SUCCESS
Description = JSON string.
@ MSG_SIM_UNMUTE_NET_ACTOR_REQUESTED
Payload = ActorPtr* (owner)
@ MSG_NET_DOWNLOAD_REPOFILE_REQUESTED
Payload = RoR::RepoFileInstallRequest* (owner)
@ MSG_GUI_CLOSE_MENU_REQUESTED
@ MSG_NET_RECV_ERROR
@ MSG_EDI_ADD_FREEBEAMGFX_REQUESTED
Payload = RoR::FreeBeamGfxRequest* (owner)
@ MSG_NET_REMOVE_PEEROPTIONS_REQUESTED
Payload = RoR::PeerOptionsRequest* (owner)
@ MSG_SIM_PAUSE_REQUESTED
@ MSG_NET_DOWNLOAD_REPOFILE_SUCCESS
Payload = RoR::RepoFileInstallRequest* (owner)
@ MSG_APP_REINIT_UI_REQUESTED
Reloads fonts and re-applies style, i.e. after changing 'ui_scale_factor'.
Definition Application.h:98
@ MSG_SIM_UNPAUSE_REQUESTED
@ MSG_SIM_UNHIDE_NET_ACTOR_REQUESTED
Payload = ActorPtr* (owner)
@ MSG_SIM_HIDE_NET_ACTOR_REQUESTED
Payload = ActorPtr* (owner)
@ MSG_SIM_UNLOAD_TERRN_REQUESTED
@ MSG_EDI_UNLOAD_BUNDLE_REQUESTED
Payload = RoR::CacheEntryPtr* (owner)
@ MSG_NET_CONNECT_FAILURE
@ MSG_GUI_REFRESH_TUNING_MENU_REQUESTED
@ MSG_APP_MODCACHE_UPDATE_REQUESTED
Definition Application.h:92
@ MSG_APP_DISPLAY_WINDOWED_REQUESTED
Definition Application.h:90
@ MSG_NET_DISCONNECT_REQUESTED
@ MSG_NET_FETCH_AI_PRESETS_FAILURE
Description = message.
@ MSG_INVALID
Definition Application.h:85
@ MSG_EDI_ENTER_TERRN_EDITOR_REQUESTED
@ MSG_EDI_DELETE_BUNDLE_REQUESTED
Description = filename.
@ MSG_SIM_ACTOR_LINKING_REQUESTED
Payload = RoR::ActorLinkingRequest* (owner)
@ MSG_SIM_SPAWN_ACTOR_REQUESTED
Payload = RoR::ActorSpawnRequest* (owner)
@ MSG_SIM_REMOVE_FREEFORCE_REQUESTED
Payload = RoR::FreeForceID_t* (owner)
@ MSG_SIM_SCRIPT_EVENT_TRIGGERED
Payload = RoR::ScriptEventArgs* (owner)
@ MSG_SIM_SCRIPT_CALLBACK_QUEUED
Payload = RoR::ScriptCallbackArgs* (owner)
@ MSG_GUI_OPEN_SELECTOR_REQUESTED
Payload = LoaderType* (owner), Description = GUID | empty.
@ MSG_APP_UNLOAD_SCRIPT_REQUESTED
Payload = RoR::ScriptUnitId_t* (owner)
Definition Application.h:95
@ MSG_SIM_SEAT_PLAYER_REQUESTED
Payload = RoR::ActorPtr (owner) | nullptr.
@ MSG_GUI_MP_CLIENTS_REFRESH
@ MSG_EDI_SAVE_TERRN_CHANGES_REQUESTED
@ MSG_NET_CONNECT_PROGRESS
@ MSG_NET_DOWNLOAD_REPOIMAGE_FAILURE
Payload = RoR::RepoImageDownloadRequest* (owner)
@ MSG_EDI_LOAD_BUNDLE_REQUESTED
Payload = RoR::CacheEntryPtr* (owner)
@ MSG_APP_LOAD_SCRIPT_REQUESTED
Payload = RoR::LoadScriptRequest* (owner)
Definition Application.h:94
@ MSG_SIM_LOAD_SAVEGAME_REQUESTED
@ MSG_GUI_SHOW_CHATBOX_REQUESTED
Description = message or server command to pre-fill in the chatbox (deleting whatever was there previ...
@ MSG_NET_DOWNLOAD_REPOIMAGE_SUCCESS
Payload = RoR::RepoImageDownloadRequest* (owner)
@ MSG_EDI_LEAVE_TERRN_EDITOR_REQUESTED
@ MSG_NET_ADD_PEEROPTIONS_REQUESTED
Payload = RoR::PeerOptionsRequest* (owner)
@ MSG_NET_CONNECT_SUCCESS
@ MSG_NET_USER_DISCONNECT
@ MSG_NET_CONNECT_REQUESTED
@ MSG_SIM_ADD_FREEFORCE_REQUESTED
Payload = RoR::FreeForceRequest* (owner)
@ MSG_NET_OPEN_RESOURCE_SUCCESS
Payload = GUI::ResourcesCollection* (owner)
@ MSG_GUI_HIDE_MESSAGE_BOX_REQUESTED
@ MSG_APP_SHUTDOWN_REQUESTED
Definition Application.h:87
@ MSG_APP_DISPLAY_FULLSCREEN_REQUESTED
Definition Application.h:89
@ MSG_EDI_MODIFY_FREEBEAMGFX_REQUESTED
Payload = RoR::FreeBeamGfxRequest* (owner)
@ MSG_GUI_CLOSE_SELECTOR_REQUESTED
@ MSG_EDI_MODIFY_GROUNDMODEL_REQUESTED
Payload = RoR::ground_model_t* (weak)
@ MSG_EDI_DELETE_FREEBEAMGFX_REQUESTED
Payload = RoR::FreeBeamGfxID_t* (owner)
@ MSG_NET_DOWNLOAD_REPOFILE_PROGRESS
Payload = int* (owner)
@ MSG_GUI_SHOW_MESSAGE_BOX_REQUESTED
Payload = MessageBoxConfig* (owner)
@ MSG_SIM_MODIFY_FREEFORCE_REQUESTED
Payload = RoR::FreeForceRequest* (owner)
@ MSG_GUI_OPEN_MP_SETTINGS_REQUESTED
@ MSG_NET_REFRESH_SERVERLIST_FAILURE
Payload = RoR::CurlFailInfo* (owner)
@ MSG_NET_REFRESH_REPOLIST_FAILURE
Payload = RoR::CurlFailInfo* (owner)
@ MSG_SIM_MUTE_NET_ACTOR_REQUESTED
Payload = ActorPtr* (owner)
@ MSG_EDI_CREATE_PROJECT_REQUESTED
Payload = RoR::CreateProjectRequest* (owner)
@ MSG_EDI_DELETE_PROJECT_REQUESTED
Payload = RoR::CacheEntryPtr* (owner)
@ MSG_EDI_MODIFY_PROJECT_REQUESTED
Payload = RoR::UpdateProjectRequest* (owner)
@ MSG_APP_SCRIPT_THREAD_STATUS
Payload = RoR::ScriptEventArgs* (owner)
Definition Application.h:96
@ MSG_SIM_LOAD_TERRN_REQUESTED
@ MSG_NET_REFRESH_REPOLIST_SUCCESS
Payload = GUI::ResourcesCollection* (owner)
@ MSG_NET_DOWNLOAD_REPOFILE_FAILURE
Payload = RoR::RepoFileInstallRequest* (owner)
@ MSG_SIM_DELETE_ACTOR_REQUESTED
Payload = RoR::ActorPtr* (owner)
@ MSG_NET_REFRESH_SERVERLIST_SUCCESS
Payload = GUI::MpServerInfoVec* (owner)
@ MSG_SIM_MODIFY_ACTOR_REQUESTED
Payload = RoR::ActorModifyRequest* (owner)
@ MSG_APP_SCREENSHOT_REQUESTED
Definition Application.h:88
@ MSG_NET_SERVER_KICK
@ MSG_APP_REINIT_INPUT_REQUESTED
Definition Application.h:97
@ MSG_EDI_RELOAD_BUNDLE_REQUESTED
Payload = RoR::CacheEntryPtr* (owner)
SimGearboxMode
std::string ToLocalizedString(SimGearboxMode e)
@ MANUAL_STICK
Fully manual: stick shift.
@ MANUAL_RANGES
Fully manual: stick shift with ranges.
@ SEMI_AUTO
Manual shift with auto clutch.
@ MANUAL
Fully manual: sequential shift.
@ AUTO
Automatic shift.
CVar * cli_server_host
CVar * mp_player_name
CVar * diag_profiler_rate
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
ContentManager * GetContentManager()
AppContext * GetAppContext()
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
OverlayWrapper * GetOverlayWrapper()
InputEngine * GetInputEngine()
CVar * audio_enable_obstruction
CVar * sys_projects_dir
CVar * io_outgauge_mode
ServerScriptSequencer * GetServerScript()
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
void CreateOverlayWrapper()
CVar * diag_log_beam_trigger
CVar * cli_resume_autosave
ThreadPool * GetThreadPool()
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 * ui_dashboard_cinecam
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
void CreateGuiManager()
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
CameraManager * GetCameraManager()
CVar * audio_enable_creak
CVar * diag_preset_vehicle
CVar * ui_scale_factor
float; Resizes imgui-based UI (fonts + style sizes); apply by pushing MSG_APP_REINIT_UI_REQUESTED.
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
SoundScriptManager * GetSoundScriptManager()
CVar * app_recent_scripts
CVar * mp_server_port
CVar * diag_trace_globals
CVar * app_force_cache_purge
CVar * gfx_particles_mode
OutGauge * GetOutGauge()
CVar * diag_hide_wheels
CVar * diag_preset_spawn_pos
CVar * diag_truck_mass
CVar * io_ffb_stress_gain
void CreateScriptEngine()
CVar * diag_hide_nodes
CVar * audio_master_volume
void DestroyInputEngine()
CVar * diag_profiler_enabled
GUIManager * GetGuiManager()
GameContext * GetGameContext()
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
GfxScene * GetGfxScene()
CVar * app_force_cache_update
CVar * sys_server_scripts_dir
CVar * io_analog_sensitivity
CVar * app_state
CVar * gfx_water_waves
CVar * cli_preset_spawn_pos
CVar * mp_chat_auto_hide
void CreateMumble()
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
void CreateGfxScene()
CVar * sys_cache_dir
CVar * sim_no_self_collisions
CVar * gfx_fps_limit
CVar * ui_legacy_truck_renderdash
string; name of the '.dashboard' file in modcache.
CVar * gfx_vegetation_mode
DiscordRpc * GetDiscordRpc()
CVar * ui_keep_search
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
Console * GetConsole()
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
ScriptEngine * GetScriptEngine()
CVar * diag_hide_broken_beams
CVar * gfx_alt_actor_materials
CVar * diag_angelscript_generic_bind_test
CacheSystem * GetCacheSystem()
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
void CreateCameraManager()
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
void CreateThreadPool()
CVar * gfx_texture_filter
void CreateServerScript()
MumbleIntegration * GetMumble()
CVar * sys_screenshot_dir
void CreateInputEngine()
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
Network * GetNetwork()
CVar * io_arcade_controls
CVar * io_analog_smoothing
CVar * mp_server_host
CVar * gfx_shadow_quality
LanguageEngine * GetLanguageEngine()
void CreateSoundScriptManager()
CVar * sys_scripts_dir
CVar * sys_thumbnails_dir
CVar * diag_load_devel_scripts
CVar * flexbody_defrag_invert_lookup
CVar * diag_log_console_echo
CVar * cli_server_port
CVar * gfx_fixed_cam_tracking
CVar * app_extra_mod_path
void DestroyOverlayWrapper()
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
GfxExtCamMode
void Log(const char *msg)
The ultimate, application-wide logging function. Adds a line (any length) in 'RoR....
GfxFlaresMode
@ CURR_VEHICLE_HEAD_ONLY
Only current vehicle, main lights.
@ ALL_VEHICLES_HEAD_ONLY
All vehicles, main lights.
@ NO_LIGHTSOURCES
No light sources.
@ ALL_VEHICLES_ALL_LIGHTS
All vehicles, all lights.
LoaderType
< Search mode for ModCache::Query() & Operation mode for GUI::MainSelector
@ LT_Airplane
@ LT_Tuneup
@ LT_AssetPack
@ LT_Boat
@ LT_DashBoard
@ LT_Train
@ LT_AddonPart
@ LT_Skin
@ LT_Truck
@ LT_Gadget
@ LT_Car
@ LT_Load
@ LT_Terrain
@ LT_Trailer
@ LT_Vehicle
@ LT_None
@ LT_Extension
@ LT_AllBeam
void HandleGenericException(const std::string &from, BitMask_t flags)
EfxReverbEngine
WheelSide
Used by rig-def/addonpart/tuneup formats to specify wheel rim mesh orientation.
static const float UI_SCALE_FACTOR_MAX
void HandleMsgQueueException(MsgType from)
VideoCamRole
@ VCAM_ROLE_MIRROR
Flips the video output and when not in driver cam, acts like a natural mirror, not a screen.
@ VCAM_ROLE_TRACKING_MIRROR_NOFLIP
A MIRROR_NOFLIP(2) with tracking node set.
@ VCAM_ROLE_TRACKING_MIRROR
A MIRROR(1) with tracking node set.
@ VCAM_ROLE_INVALID
@ VCAM_ROLE_MIRROR_PROP_LEFT
The classic 'special prop/rear view mirror'.
@ VCAM_ROLE_TRACKING_VIDEOCAM
@ VCAM_ROLE_MIRROR_PROP_RIGHT
The classic 'special prop/rear view mirror'.
@ VCAM_ROLE_MIRROR_NOFLIP
Same as VCAM_ROLE_MIRROR, but without flipping the texture horizontally (expects texcoords to be alre...
@ VCAM_ROLE_VIDEOCAM
GfxShadowType
UiPreset
See UiPresets[] list in GUIManager.cpp (declared extern in GUIManager.h)
GfxWaterMode
@ FULL_FAST
Reflection + refraction (speed optimized)
@ FULL_HQ
Reflection + refraction (quality optimized)
@ BASIC
Basic (fastest)
@ REFLECT
Reflection.
IoInputGrabMode
GfxVegetation
void LogFormat(const char *format,...)
Improved logging utility. Uses fixed 2Kb buffer.
const char * TObjSpecialObjectToString(TObjSpecialObject val)
static const float UI_SCALE_FACTOR_MIN
TObjSpecialObject
@ TRUCK2
Free position (not auto-adjusted to fit terrain or water surface)
@ CAELUM
Caelum (best looking, slower)
@ SANDSTORM
Sandstorm (fastest)
@ SKYX
SkyX (best looking, slower)
static CameraMode_t CAMERA_MODE_ALWAYS_VISIBLE
ExtCameraMode
SimResetMode
int CameraMode_t
VisibilityMasks
@ DEPTHMAP_ENABLED
@ DEPTHMAP_DISABLED
@ HIDE_MIRROR
CacheCategoryId
@ CID_None
@ CID_DashboardsGeneric
@ CID_GadgetsActor
@ CID_Max
SPECIAL VALUE - Maximum allowed to be present in any mod files.
@ CID_DashboardsTruck
@ CID_SearchResults
@ CID_Unsorted
@ CID_DashboardsRtt
@ CID_Projects
For truck files under 'projects/' directory, to allow listing from editors.
@ CID_GadgetsGeneric
@ CID_Fresh
@ CID_DashboardsBoat
@ CID_GadgetsTerrain
@ CID_Hidden
@ CID_Tuneups
For unsorted tuneup files.
@ CID_All
GfxTexFilter
HandleGenericExceptionFlags
< Flags for HandleGenericException()
@ HANDLEGENERICEXCEPTION_LOGFILE
@ HANDLEGENERICEXCEPTION_DEFAULT
@ HANDLEGENERICEXCEPTION_SCRIPTEVENT
@ HANDLEGENERICEXCEPTION_CONSOLE
static CameraMode_t CAMERA_MODE_3RDPERSON_ONLY
WheelPropulsion
static CameraMode_t CAMERA_MODE_ALWAYS_HIDDEN
WheelBraking
@ FOOT_ONLY
= yes footbrake, no handbrake, no direction control – footbrake only, such as with the front wheels o...
@ FOOT_HAND_SKID_RIGHT
= yes footbrake, yes handbrake, yes direction control (braked when vehicle steers to the right)
@ FOOT_HAND
= yes footbrake, yes handbrake, no direction control
@ FOOT_HAND_SKID_LEFT
= yes footbrake, yes handbrake, yes direction control (braked when vehicle steers to the left)