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
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_LOGS "Logs"
55
56// Legacy macros
57#define TOSTRING(x) Ogre::StringConverter::toString(x)
58#define PARSEINT(x) Ogre::StringConverter::parseInt(x)
59#define PARSEREAL(x) Ogre::StringConverter::parseReal(x)
60#define HydraxLOG(msg) Ogre::LogManager::getSingleton().logMessage("[Hydrax] " + Ogre::String(msg));
61
62namespace RoR {
63
64// ------------------------------------------------------------------------------------------------
65// Global definitions and enumerations
66// ------------------------------------------------------------------------------------------------
67
70
73
76{
77 // CHECKLIST for adding new message types:
78 // * Provide name as string constant - see `MsgTypeToString()` in Application.cpp
79 // * Register it with AngelScript - see `RegisterMessageQueue()` in 'scripting/bindings/MsgQueueAngelscript.cpp'
80 // * Allow/Deny pushing from AngelScript - see `pushMessage()` in 'scripting/GameScript.cpp'
81 // * Document the AngelScript usage - see 'doc/angelscript/Script2Game/globals.h'.
82 // * Make it do something useful in 'main.cpp' ;)
83
85 // Application
97 // Networking
122 // Simulation
143 // GUI
154 // Editing
169};
170
171const char* MsgTypeToString(MsgType type);
172
174
175} // namespace RoR
176
177namespace RigDef
178{
179enum class Keyword
180{
181 // IMPORTANT! If you add a value here, you must also modify `RigDef::Regexes::IDENTIFY_KEYWORD`, it relies on numeric values of this enum.
182
183 INVALID = 0,
184
185 ADD_ANIMATION = 1,
186 AIRBRAKES,
187 ANIMATORS,
190 AUTHOR,
191 AXLES,
192 BACKMESH,
193 BEAMS,
194 BRAKES,
195 CAB,
197 CAMERAS,
198 CINECAM,
200 COMMANDS,
201 COMMANDS2,
202 COMMENT,
211 END,
215 ENGINE,
216 ENGOPTION,
217 ENGTURBO,
218 ENVMAP,
219 EXHAUSTS,
220 EXTCAMERA,
222 FILEINFO,
223 FIXES,
224 FLARES,
225 FLARES2,
226 FLARES3,
231 FORSET,
232 FORVERT,
234 FUSEDRAG,
235 GLOBALS,
236 GUID,
238 HELP,
240 HOOKGROUP, // obsolete, ignored
241 HOOKS,
242 HYDROS,
251 MINIMASS,
252 NODECOLLISION, // obsolete
253 NODES,
254 NODES2,
255 PARTICLES,
258 PROPS,
260 RESCUER,
261 RIGIDIFIERS, // obsolete
262 ROLLON,
263 ROPABLES,
264 ROPES,
265 ROTATORS,
266 ROTATORS2,
268 SCRIPTS,
269 SECTION,
280 SHOCKS,
281 SHOCKS2,
282 SHOCKS3,
289 SUBMESH,
291 TEXCOORDS,
292 TIES,
296 TRIGGERS,
297 TURBOJETS,
302 WHEELS,
303 WHEELS2,
304 WINGS
305};
306
307const char* KeywordToString(Keyword keyword);
308
309} // namespace RigDef
310
311namespace RoR
312{
313
314enum class AppState
315{
316 BOOTSTRAP,
317 MAIN_MENU,
319 SHUTDOWN,
322};
323
324enum class MpState
325{
326 DISABLED,
328 CONNECTED,
329};
330
331enum class SimState
332{
333 OFF,
334 RUNNING,
335 PAUSED,
337};
338
340
343
346
348{
349 AUTO,
350 SEMI_AUTO,
351 MANUAL,
354};
355std::string ToLocalizedString(SimGearboxMode e);
356
359
361{
362 NONE,
363 PSSM
364};
365std::string ToLocalizedString(GfxShadowType e);
366
368{
369 NONE,
370 STATIC,
371 PITCHING,
372};
373std::string ToLocalizedString(GfxExtCamMode e);
374
375enum class GfxTexFilter
376{
377 NONE,
378 BILINEAR,
379 TRILINEAR,
381};
382std::string ToLocalizedString(GfxTexFilter e);
383
385{
386 NONE,
387 x20PERC,
388 x50PERC,
389 FULL,
390};
391std::string ToLocalizedString(GfxVegetation e);
392
401std::string ToLocalizedString(GfxFlaresMode e);
402
403enum class GfxWaterMode
404{
405 NONE,
406 BASIC,
407 REFLECT,
408 FULL_FAST,
409 FULL_HQ,
410 HYDRAX,
411};
412std::string ToLocalizedString(GfxWaterMode e);
413
414enum class GfxSkyMode
415{
416 SANDSTORM,
417 CAELUM,
418 SKYX,
419};
420std::string ToLocalizedString(GfxSkyMode e);
421
423{
424 NONE,
425 REVERB,
426 EAXREVERB,
427};
429
431{
432 NONE,
433 ALL,
434 DYNAMIC,
435};
437
438enum class SimResetMode
439{
440 HARD = 0, // 'sim_soft_reset=false'
441 SOFT = 1 // 'sim_soft_reset=true'
442};
443std::string ToLocalizedString(SimResetMode e);
444
446// Do NOT change numbers - used for indexing `RoR::UiPresetEntry::uip_values`
447enum class UiPreset
448{
449 NOVICE,
450 REGULAR,
451 EXPERT,
453 Count
454};
455std::string ToLocalizedString(UiPreset e);
456
463
465{
467 LT_Terrain, // Invocable from GUI; No script alias, used in main menu
468 LT_Vehicle, // Script "vehicle", ext: truck car
469 LT_Truck, // Script "truck", ext: truck car
470 LT_Car, // Script "car", ext: car
471 LT_Boat, // Script "boat", ext: boat
472 LT_Airplane, // Script "airplane", ext: airplane
473 LT_Trailer, // Script "trailer", ext: trailer
474 LT_Train, // Script "train", ext: train
475 LT_Load, // Script "load", ext: load
476 LT_Extension, // Script "extension", ext: trailer load
477 LT_Skin, // No script alias, invoked automatically
478 LT_AllBeam, // Invocable from GUI; Script "all", ext: truck car boat airplane train load
479 LT_AddonPart, // No script alias, invoked manually, ext: addonpart
480 LT_Tuneup, // No script alias, invoked manually, ext: tuneup
481 LT_AssetPack, // No script alias, invoked manually, ext: assetpack
482 LT_DashBoard, // No script alias, invoked manually, ext: dashboard
483 LT_Gadget, // No script alias, invoked manually, ext: gadget
484};
485
508
509enum class FlareType: char
510{
511 // DO NOT MODIFY LETTERS - de/serialized from/to truck definition file, see 'RigDef_File.h' and 'ActorExport.cpp'
512
513 NONE = 0,
514 // Front lights
515 HEADLIGHT = 'f',
516 HIGH_BEAM = 'h',
517 FOG_LIGHT = 'g',
518 // Rear lighs
519 TAIL_LIGHT = 't',
520 BRAKE_LIGHT = 'b',
521 REVERSE_LIGHT = 'R',
522 // Special lights
523 SIDELIGHT = 's',
524 BLINKER_LEFT = 'l',
525 BLINKER_RIGHT = 'r',
526 USER = 'u',
527 DASHBOARD = 'd'
528};
529
530enum class WheelBraking: int
531{
532 // DO NOT MODIFY NUMBERS - de/serialized from/to truck definition file, see RigDef_File.h, `struct BaseWheel`
533
534 NONE = 0,
535 FOOT_HAND = 1,
538 FOOT_ONLY = 4,
539};
540
541enum class WheelPropulsion: int
542{
543 // DO NOT MODIFY NUMBERS - de/serialized from/to truck definition file, see RigDef_File.h, `struct BaseWheel`
544
545 NONE = 0,
546 FORWARD = 1,
547 BACKWARD = 2,
548};
549
551enum class WheelSide: char
552{
553 // DO NOT MODIFY LETTERS - de/serialized from/to truck definition file, see 'RigDef_File.h' and 'ActorExport.cpp'
554
555 INVALID = 'n',
556 RIGHT = 'r',
557 LEFT = 'l'
558};
559
561{
562 // DO NOT MODIFY NUMBERS - de/serialized from/to truck definition file, see RigDef_File.h and 'ActorExport.cpp'
563
564 INVALID = -1,
565 CLASSIC = 0,
566 CINECAM = 1,
567 NODE = 2,
568};
569
570// Dynamic visibility control (value 0 and higher is cinecam index) - common to 'props' and 'flexbodies'
571// DO NOT MODIFY NUMBERS - de/serialized from/to truck definition file, see RigDef_File.h and 'ActorExport.cpp'
572typedef int CameraMode_t;
576
578{
579 // Exported to AngelScript:
580 NONE,
581 TRUCK,
582 LOAD,
583 MACHINE,
584 BOAT,
585 TRUCK2,
586
587 // Not exported to AngelScript:
588 GRID,
589 // Road types
590 ROAD,
596};
598
600{
601 // DO NOT CHANGE NUMBERS, they match 'videocamera/camera_role' parameter in the .truck file
602
607
608 // Internal types
611
614
616};
617
618// ------------------------------------------------------------------------------------------------
619// Global variables
620// ------------------------------------------------------------------------------------------------
621
622namespace App {
623
624// App
625extern CVar* app_state;
626extern CVar* app_language;
627extern CVar* app_country;
628extern CVar* app_skip_main_menu;
629extern CVar* app_async_physics;
630extern CVar* app_num_workers;
631extern CVar* app_screenshot_format;
632extern CVar* app_rendersys_override;
633extern CVar* app_extra_mod_path;
634extern CVar* app_force_cache_purge;
635extern CVar* app_force_cache_update;
636extern CVar* app_disable_online_api;
637extern CVar* app_config_long_names;
638extern CVar* app_custom_scripts;
639extern CVar* app_recent_scripts;
640
641// Simulation
642extern CVar* sim_state;
643extern CVar* sim_terrain_name;
644extern CVar* sim_terrain_gui_name;
645extern CVar* sim_spawn_running;
646extern CVar* sim_replay_enabled;
647extern CVar* sim_replay_length;
648extern CVar* sim_replay_stepping;
649extern CVar* sim_realistic_commands;
650extern CVar* sim_races_enabled;
651extern CVar* sim_no_collisions;
652extern CVar* sim_no_self_collisions;
653extern CVar* sim_gearbox_mode;
654extern CVar* sim_soft_reset_mode;
655extern CVar* sim_quickload_dialog;
656extern CVar* sim_live_repair_interval;
657extern CVar* sim_tuning_enabled;
658
659// Multiplayer
660extern CVar* mp_state;
661extern CVar* mp_join_on_startup;
662extern CVar* mp_chat_auto_hide;
663extern CVar* mp_hide_net_labels;
664extern CVar* mp_hide_own_net_label;
665extern CVar* mp_pseudo_collisions;
666extern CVar* mp_server_host;
667extern CVar* mp_server_port;
668extern CVar* mp_server_password;
669extern CVar* mp_player_name;
670extern CVar* mp_player_token;
671extern CVar* mp_api_url;
672extern CVar* mp_cyclethru_net_actors;
673
674// New remote API
675extern CVar* remote_query_url;
676
677// Diagnostic
678extern CVar* diag_auto_spawner_report;
679extern CVar* diag_camera;
680extern CVar* diag_trace_globals;
681extern CVar* diag_rig_log_node_import;
682extern CVar* diag_rig_log_node_stats;
683extern CVar* diag_truck_mass;
684extern CVar* diag_envmap;
685extern CVar* diag_videocameras;
686extern CVar* diag_preset_terrain;
687extern CVar* diag_preset_spawn_pos;
688extern CVar* diag_preset_spawn_rot;
689extern CVar* diag_preset_vehicle;
690extern CVar* diag_preset_veh_config;
691extern CVar* diag_preset_veh_enter;
692extern CVar* diag_log_console_echo;
693extern CVar* diag_log_beam_break;
694extern CVar* diag_log_beam_deform;
695extern CVar* diag_log_beam_trigger;
696extern CVar* diag_simple_materials;
697extern CVar* diag_warning_texture;
698extern CVar* diag_hide_broken_beams;
699extern CVar* diag_hide_beam_stress;
700extern CVar* diag_hide_wheel_info;
701extern CVar* diag_hide_wheels;
702extern CVar* diag_hide_nodes;
703extern CVar* diag_terrn_log_roads;
704extern CVar* diag_actor_dump;
705extern CVar* diag_allow_window_resize;
706extern CVar* diag_use_mygui_logfile;
707
708// System
709extern CVar* sys_process_dir;
710extern CVar* sys_user_dir;
711extern CVar* sys_config_dir;
712extern CVar* sys_cache_dir;
713extern CVar* sys_thumbnails_dir;
714extern CVar* sys_logs_dir;
715extern CVar* sys_resources_dir;
716extern CVar* sys_profiler_dir;
717extern CVar* sys_savegames_dir;
718extern CVar* sys_screenshot_dir;
719extern CVar* sys_scripts_dir;
720extern CVar* sys_projects_dir;
721extern CVar* sys_repo_attachments_dir;
722
723// OS command line
724extern CVar* cli_server_host;
725extern CVar* cli_server_port;
726extern CVar* cli_preset_vehicle;
727extern CVar* cli_preset_veh_config;
728extern CVar* cli_preset_terrain;
729extern CVar* cli_preset_spawn_pos;
730extern CVar* cli_preset_spawn_rot;
731extern CVar* cli_preset_veh_enter;
732extern CVar* cli_force_cache_update;
733extern CVar* cli_resume_autosave;
734extern CVar* cli_custom_scripts;
735
736// Input - Output
737extern CVar* io_analog_smoothing;
738extern CVar* io_analog_sensitivity;
739extern CVar* io_blink_lock_range;
740extern CVar* io_ffb_enabled;
741extern CVar* io_ffb_camera_gain;
742extern CVar* io_ffb_center_gain;
743extern CVar* io_ffb_master_gain;
744extern CVar* io_ffb_stress_gain;
745extern CVar* io_input_grab_mode;
746extern CVar* io_arcade_controls;
747extern CVar* io_hydro_coupling;
748extern CVar* io_outgauge_mode;
749extern CVar* io_outgauge_ip;
750extern CVar* io_outgauge_port;
751extern CVar* io_outgauge_delay;
752extern CVar* io_outgauge_id;
753extern CVar* io_discord_rpc;
754extern CVar* io_invert_orbitcam;
755
756// Audio
757extern CVar* audio_master_volume;
758extern CVar* audio_enable_creak;
759extern CVar* audio_enable_obstruction;
761extern CVar* audio_enable_occlusion;
764extern CVar* audio_enable_efx;
766extern CVar* audio_efx_reverb_engine;
767extern CVar* audio_default_efx_preset;
769extern CVar* audio_device_name;
770extern CVar* audio_doppler_factor;
771extern CVar* audio_menu_music;
773
774// Graphics
775extern CVar* gfx_flares_mode;
776extern CVar* gfx_polygon_mode;
777extern CVar* gfx_shadow_type;
778extern CVar* gfx_extcam_mode;
779extern CVar* gfx_sky_mode;
780extern CVar* gfx_sky_time_cycle;
781extern CVar* gfx_sky_time_speed;
782extern CVar* gfx_texture_filter;
783extern CVar* gfx_vegetation_mode;
784extern CVar* gfx_water_mode;
785extern CVar* gfx_anisotropy;
786extern CVar* gfx_water_waves;
787extern CVar* gfx_particles_mode;
788extern CVar* gfx_enable_videocams;
789extern CVar* gfx_window_videocams;
790extern CVar* gfx_surveymap_icons;
791extern CVar* gfx_declutter_map;
792extern CVar* gfx_envmap_enabled;
793extern CVar* gfx_envmap_rate;
794extern CVar* gfx_shadow_quality;
795extern CVar* gfx_skidmarks_mode;
796extern CVar* gfx_sight_range;
797extern CVar* gfx_camera_height;
798extern CVar* gfx_fov_external;
799extern CVar* gfx_fov_external_default;
800extern CVar* gfx_fov_internal;
801extern CVar* gfx_fov_internal_default;
802extern CVar* gfx_static_cam_fov_exp;
803extern CVar* gfx_fixed_cam_tracking;
804extern CVar* gfx_fps_limit;
805extern CVar* gfx_speedo_imperial;
806extern CVar* gfx_flexbody_cache;
807extern CVar* gfx_reduce_shadows;
808extern CVar* gfx_enable_rtshaders;
809extern CVar* gfx_alt_actor_materials;
810extern CVar* gfx_auto_lod;
811
812// Flexbodies
813extern CVar* flexbody_defrag_enabled;
820
821// GUI
822extern CVar* ui_show_live_repair_controls;
823extern CVar* ui_show_vehicle_buttons;
824extern CVar* ui_preset;
825extern CVar* ui_hide_gui;
826extern CVar* ui_default_truck_dash;
827extern CVar* ui_default_boat_dash;
828extern CVar* ui_always_show_fullsize;
829
830// ------------------------------------------------------------------------------------------------
831// Global objects
832// ------------------------------------------------------------------------------------------------
833
834// Getters
835AppContext* GetAppContext();
836ContentManager* GetContentManager();
837OverlayWrapper* GetOverlayWrapper();
838GUIManager* GetGuiManager();
839Console* GetConsole();
840InputEngine* GetInputEngine();
841CacheSystem* GetCacheSystem();
842MumbleIntegration* GetMumble();
843ThreadPool* GetThreadPool();
844CameraManager* GetCameraManager();
845GfxScene* GetGfxScene();
846SoundScriptManager* GetSoundScriptManager();
847LanguageEngine* GetLanguageEngine();
848ScriptEngine* GetScriptEngine();
849Network* GetNetwork();
850GameContext* GetGameContext();
851OutGauge* GetOutGauge();
852DiscordRpc* GetDiscordRpc();
853
854// Factories
856void CreateGuiManager();
857void CreateInputEngine();
858void CreateMumble();
859void CreateThreadPool();
861void CreateGfxScene();
863void CreateScriptEngine();
864
865// Cleanups
867void DestroyInputEngine();
868
869} // namespace App
870
871// ------------------------------------------------------------------------------------------------
872// Exception handling
873// ------------------------------------------------------------------------------------------------
874
876{
877 HANDLEGENERICEXCEPTION_LOGFILE = BITMASK(1), // Log to 'RoR.log'; Note OGRE exceptions are logged by OGRE but we still want the 'from' argument.
878 HANDLEGENERICEXCEPTION_SCRIPTEVENT = BITMASK(2), // Forward to script engine as game event `SE_GENERIC_EXCEPTION_CAUGHT`.
879 HANDLEGENERICEXCEPTION_CONSOLE = BITMASK(3), // Print to console, which auto-logs to RoR.log.
880
882};
883
884void HandleGenericException(const std::string& from, BitMask_t flags = HANDLEGENERICEXCEPTION_DEFAULT);
885
887
888// ------------------------------------------------------------------------------------------------
889// Logging
890// ------------------------------------------------------------------------------------------------
891
892void Log(const char* msg);
893void LogFormat(const char* format, ...);
894
895} // namespace RoR
896
897inline void LOG(const char* msg) { RoR::Log(msg); }
898inline void LOG(std::string const & msg) { RoR::Log(msg.c_str()); }
899
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.
@ 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:76
@ MSG_GUI_OPEN_MENU_REQUESTED
@ MSG_APP_MODCACHE_LOAD_REQUESTED
Definition Application.h:90
@ MSG_SIM_TELEPORT_PLAYER_REQUESTED
Payload = Ogre::Vector3* (owner)
@ MSG_NET_CONNECT_STARTED
Definition Application.h:99
@ MSG_APP_MODCACHE_PURGE_REQUESTED
Definition Application.h:92
@ 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_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:91
@ MSG_APP_DISPLAY_WINDOWED_REQUESTED
Definition Application.h:89
@ MSG_NET_DISCONNECT_REQUESTED
@ MSG_NET_FETCH_AI_PRESETS_FAILURE
Description = message.
@ MSG_INVALID
Definition Application.h:84
@ 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:94
@ 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:93
@ 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
Definition Application.h:98
@ 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:86
@ MSG_APP_DISPLAY_FULLSCREEN_REQUESTED
Definition Application.h:88
@ 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:95
@ 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:87
@ MSG_NET_SERVER_KICK
@ MSG_APP_REINIT_INPUT_REQUESTED
Definition Application.h:96
@ 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_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
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 * 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 * 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()
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 * 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 * gfx_vegetation_mode
DiscordRpc * GetDiscordRpc()
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
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
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 * 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.
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)
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_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)