RigsofRods
Soft-body Physics Simulation
main.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 "Actor.h"
23 #include "Application.h"
24 #include "AppContext.h"
25 #include "CacheSystem.h"
26 #include "CameraManager.h"
27 #include "ChatSystem.h"
28 #include "Collisions.h"
29 #include "Console.h"
30 #include "ContentManager.h"
31 #include "DiscordRpc.h"
32 #include "ErrorUtils.h"
33 #include "GameContext.h"
34 #include "GfxScene.h"
35 #include "GUI_DirectionArrow.h"
36 #include "GUI_FrictionSettings.h"
37 #include "GUI_GameControls.h"
38 #include "GUI_LoadingWindow.h"
39 #include "GUI_MainSelector.h"
40 #include "GUI_MessageBox.h"
43 #include "GUI_RepositorySelector.h"
44 #include "GUI_VehicleInfoTPanel.h"
45 #include "GUIManager.h"
46 #include "GUIUtils.h"
47 #include "InputEngine.h"
48 #include "Language.h"
49 #include "MumbleIntegration.h"
50 #include "OutGauge.h"
51 #include "OverlayWrapper.h"
52 #include "PlatformUtils.h"
53 #include "RoRVersion.h"
54 #include "ScriptEngine.h"
55 #include "Skidmark.h"
56 #include "SoundScriptManager.h"
57 #include "Terrain.h"
58 #include "Utils.h"
59 #include <Overlay/OgreOverlaySystem.h>
60 #include <ctime>
61 #include <iomanip>
62 #include <string>
63 #include <fstream>
64 
65 #ifdef USE_CURL
66 # include <curl/curl.h>
67 #endif //USE_CURL
68 
69 #ifdef __cplusplus
70 extern "C" {
71 #endif
72 
73 int main(int argc, char *argv[])
74 {
75  using namespace RoR;
76 
77 #ifdef USE_CURL
78  curl_global_init(CURL_GLOBAL_ALL); // MUST init before any threads are started
79 #endif
80 
81 #ifndef _DEBUG
82  try
83  {
84 #endif
85 
86  // Create cvars, set default values
88 
89  // Record main thread ID for checks
91 
92  // Update cvars 'sys_process_dir', 'sys_user_dir'
93  if (!App::GetAppContext()->SetUpProgramPaths())
94  {
95  return -1; // Error already displayed
96  }
97 
98  // Create OGRE default logger early
100 
101  // User directories
104  App::sys_thumbnails_dir->setStr(PathCombine(App::sys_user_dir->getStr(), "thumbnails"));
105  App::sys_savegames_dir ->setStr(PathCombine(App::sys_user_dir->getStr(), "savegames"));
106  App::sys_screenshot_dir->setStr(PathCombine(App::sys_user_dir->getStr(), "screenshots"));
107  App::sys_scripts_dir ->setStr(PathCombine(App::sys_user_dir->getStr(), "scripts"));
108  App::sys_projects_dir ->setStr(PathCombine(App::sys_user_dir->getStr(), "projects"));
109 
110  // Load RoR.cfg - updates cvars
112 
113  // Process command line params - updates 'cli_*' cvars
114  App::GetConsole()->processCommandLine(argc, argv);
115 
116  if (App::app_state->getEnum<AppState>() == AppState::PRINT_HELP_EXIT)
117  {
119  return 0;
120  }
121  if (App::app_state->getEnum<AppState>() == AppState::PRINT_VERSION_EXIT)
122  {
124  return 0;
125  }
126 
127  // Find resources dir, update cvar 'sys_resources_dir'
128  if (!App::GetAppContext()->SetUpResourcesDir())
129  {
130  return -1; // Error already displayed
131  }
132 
133  // Make sure config directory exists - to save 'ogre.cfg'
135 
136  // Load and start OGRE renderer, uses config directory
137  if (!App::GetAppContext()->SetUpRendering())
138  {
139  return -1; // Error already displayed
140  }
141 
142  Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5);
143 
144  // Deploy base config files from 'skeleton.zip'
145  if (!App::GetAppContext()->SetUpConfigSkeleton())
146  {
147  return -1; // Error already displayed
148  }
149 
150  Ogre::OverlaySystem* overlay_system = new Ogre::OverlaySystem(); //Overlay init
151 
152  Ogre::ConfigOptionMap ropts = App::GetAppContext()->GetOgreRoot()->getRenderSystem()->getConfigOptions();
153  int resolution = Ogre::StringConverter::parseInt(Ogre::StringUtil::split(ropts["Video Mode"].currentValue, " x ")[0], 1024);
154  int fsaa = 2 * (Ogre::StringConverter::parseInt(ropts["FSAA"].currentValue, 0) / 4);
155  int res = std::pow(2, std::floor(std::log2(resolution)));
156 
157  Ogre::TextureManager::getSingleton().createManual ("EnvironmentTexture",
158  Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, Ogre::TEX_TYPE_CUBE_MAP, res / 4, res / 4, 0,
159  Ogre::PF_R8G8B8, Ogre::TU_RENDERTARGET, 0, false, fsaa);
160  Ogre::TextureManager::getSingleton ().createManual ("Refraction",
161  Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, Ogre::TEX_TYPE_2D, res / 2, res / 2, 0,
162  Ogre::PF_R8G8B8, Ogre::TU_RENDERTARGET, 0, false, fsaa);
163  Ogre::TextureManager::getSingleton ().createManual ("Reflection",
164  Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, Ogre::TEX_TYPE_2D, res / 2, res / 2, 0,
165  Ogre::PF_R8G8B8, Ogre::TU_RENDERTARGET, 0, false, fsaa);
166 
167  if (!App::diag_warning_texture->getBool())
168  {
169  // We overwrite the default warning texture (yellow stripes) with something unobtrusive
170  Ogre::uchar data[3] = {0};
171  Ogre::PixelBox pixels(1, 1, 1, Ogre::PF_BYTE_RGB, &data);
172  Ogre::TextureManager::getSingleton()._getWarningTexture()->getBuffer()->blitFromMemory(pixels);
173  }
174 
181 
182 #ifndef NOLANG
184 #endif // NOLANG
185  App::GetConsole()->regBuiltinCommands(); // Call after localization had been set up
186 
188 
189  // Set up rendering
190  App::CreateGfxScene(); // Creates OGRE SceneManager, needs content manager
191  App::GetGfxScene()->GetSceneManager()->addRenderQueueListener(overlay_system);
192  App::CreateCameraManager(); // Creates OGRE Camera
193  App::GetGfxScene()->GetEnvMap().SetupEnvMap(); // Needs camera
194 
195  App::CreateGuiManager(); // Needs scene manager
196 
198 
200 
201 #ifdef USE_ANGELSCRIPT
205 #endif
206 
208 
209  // Add "this is obsolete" marker file to old config location
211 
213 
214  // Load inertia config file
216 
217  // Load mod cache
218  if (App::app_force_cache_purge->getBool())
219  {
221  }
222  else if (App::cli_force_cache_update->getBool() || App::app_force_cache_update->getBool())
223  {
225  }
226  else
227  {
229  }
230 
231  // Load startup scripts (console, then RoR.cfg)
232  if (App::cli_custom_scripts->getStr() != "")
233  {
234  Ogre::StringVector script_names = Ogre::StringUtil::split(App::cli_custom_scripts->getStr(), ",");
235  for (Ogre::String const& scriptname: script_names)
236  {
237  LOG(fmt::format("Loading startup script '{}' (from command line)", scriptname));
239  // errors are logged by OGRE & AngelScript
240  }
241  }
242  if (App::app_custom_scripts->getStr() != "")
243  {
244  Ogre::StringVector script_names = Ogre::StringUtil::split(App::app_custom_scripts->getStr(), ",");
245  for (Ogre::String const& scriptname: script_names)
246  {
247  LOG(fmt::format("Loading startup script '{}' (from config file)", scriptname));
249  // errors are logged by OGRE & AngelScript
250  }
251  }
252 
253  // Handle game state presets
254  if (App::cli_server_host->getStr() != "" && App::cli_server_port->getInt() != 0) // Multiplayer, commandline
255  {
259  }
260  else if (App::mp_join_on_startup->getBool()) // Multiplayer, conf file
261  {
263  }
264  else // Single player
265  {
266  if (App::cli_preset_terrain->getStr() != "") // Terrain, commandline
267  {
269  }
270  else if (App::diag_preset_terrain->getStr() != "") // Terrain, conf file
271  {
273  }
274  else // Main menu
275  {
276  if (App::cli_resume_autosave->getBool())
277  {
278  if (FileExists(PathCombine(App::sys_savegames_dir->getStr(), "autosave.sav")))
279  {
281  }
282  }
283  else if (App::app_skip_main_menu->getBool())
284  {
285  // MainMenu disabled (singleplayer mode) -> go directly to map selector (traditional behavior)
287  m.payload = reinterpret_cast<void*>(new LoaderType(LT_Terrain));
289  }
290  else
291  {
293  }
294  }
295  }
296 
299 
300 #ifdef USE_OPENAL
301  if (App::audio_menu_music->getBool())
302  {
303  App::GetSoundScriptManager()->createInstance("tracks/main_menu_tune", -1);
305  }
306 #endif // USE_OPENAL
307 
308  // Hack to properly init DearIMGUI integration - force rendering image
309  // Will be properly fixed under OGRE 2x
310  App::GetGuiManager()->LoadingWindow.SetProgress(100, "Hack", /*renderFrame=*/true);
312 
313  // --------------------------------------------------------------
314  // Main rendering and event handling loop
315  // --------------------------------------------------------------
316 
317  auto start_time = std::chrono::high_resolution_clock::now();
318 
319  while (App::app_state->getEnum<AppState>() != AppState::SHUTDOWN)
320  {
321  OgreBites::WindowEventUtilities::messagePump();
322 
323  // Halt physics (wait for async tasks to finish)
324  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
325  {
327  }
328 
329  // Game events
330  while (App::GetGameContext()->HasMessages())
331  {
333  bool failed_m = false;
334  switch (m.type)
335  {
336 
337  // -- Application events --
338 
340  {
341  try
342  {
343  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
344  {
345  App::GetGameContext()->SaveScene("autosave.sav");
346  }
347  App::GetConsole()->saveConfig(); // RoR.cfg
349  #ifdef USE_SOCKETW
350  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
351  {
353  }
354  #endif // USE_SOCKETW
356  App::GetScriptEngine()->setEventsEnabled(false); // Hack to enable fast shutdown without cleanup.
357  }
358  catch (...)
359  {
361  }
362  break;
363  }
364 
366  {
367  try
368  {
372  }
373  catch (...)
374  {
376  }
377  break;
378  }
379 
381  {
382  try
383  {
386  _L("Display mode changed to fullscreen"));
387  }
388  catch (...)
389  {
391  }
392  break;
393  }
394 
396  {
397  try
398  {
401  _L("Display mode changed to windowed"));
402  }
403  catch (...)
404  {
406  }
407  break;
408  }
409 
411  {
412  try
413  {
414  if (!App::GetCacheSystem()->IsModCacheLoaded()) // If not already loaded...
415  {
418  }
419  }
420  catch (...)
421  {
423  }
424  break;
425  }
426 
428  {
429  try
430  {
431  if (App::app_state->getEnum<AppState>() == AppState::MAIN_MENU) // No actors must be spawned; they keep pointers to CacheEntries
432  {
433  RoR::Log("[RoR|ModCache] Cache update requested");
436  }
437  }
438  catch (...)
439  {
441  }
442  break;
443  }
444 
446  {
447  try
448  {
449  if (App::app_state->getEnum<AppState>() == AppState::MAIN_MENU) // No actors must be spawned; they keep pointers to CacheEntries
450  {
451  RoR::Log("[RoR|ModCache] Cache rebuild requested");
454  }
455  }
456  catch (...)
457  {
459  }
460  break;
461  }
462 
464  {
465  LoadScriptRequest* request = static_cast<LoadScriptRequest*>(m.payload);
466  try
467  {
469  ScriptUnitId_t nid = App::GetScriptEngine()->loadScript(request->lsr_filename, request->lsr_category, actor, request->lsr_buffer);
470  // we want to notify any running scripts that we might change something (prevent cheating)
472  ASMANIP_SCRIPT_LOADED, nid, (int)request->lsr_category, 0, request->lsr_filename);
473  }
474  catch (...)
475  {
477  }
478  delete request;
479  break;
480  }
481 
483  {
484  ScriptUnitId_t* id = static_cast<ScriptUnitId_t*>(m.payload);
485  try
486  {
488  // we want to notify any running scripts that we might change something (prevent cheating)
490  ASMANIP_SCRIPT_UNLOADING, *id, (int)unit.scriptCategory, 0, unit.scriptName);
492  }
493  catch (...)
494  {
496  }
497  delete id;
498  break;
499  }
500 
502  {
503  ScriptEventArgs* args = static_cast<ScriptEventArgs*>(m.payload);
504  try
505  {
507  args->arg1, args->arg2ex, args->arg3ex, args->arg4ex, args->arg5ex, args->arg6ex, args->arg7ex);
508  delete args;
509  }
510  catch (...)
511  {
513  }
514  break;
515  }
516 
518  {
519  try
520  {
521  LOG(fmt::format("[RoR] !! Reinitializing input engine !!"));
524  LOG(fmt::format("[RoR] DONE Reinitializing input engine."));
525  App::GetGuiManager()->LoadingWindow.SetVisible(false); // Shown by `GUI::GameSettings` when changing 'grab mode'
526  }
527  catch (...)
528  {
530  }
531  break;
532  }
533 
534  // -- Network events --
535 
537  {
538 #if USE_SOCKETW
539  try
540  {
542  }
543  catch (...)
544  {
546  }
547 #endif
548  break;
549  }
550 
552  {
553 #if USE_SOCKETW
554  try
555  {
556  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
557  {
559  if (App::app_state->getEnum<AppState>() == AppState::MAIN_MENU)
560  {
561  App::GetGuiManager()->MainSelector.Close(); // We may get disconnected while still in map selection
563  }
564  }
565  }
566  catch (...)
567  {
569  }
570 #endif // USE_SOCKETW
571  break;
572  }
573 
574  case MSG_NET_SERVER_KICK:
575  {
576  try
577  {
581  App::GetGuiManager()->ShowMessageBox(_LC("Network", "Network disconnected"), m.description.c_str());
582  }
583  catch (...)
584  {
586  }
587  break;
588  }
589 
590  case MSG_NET_RECV_ERROR:
591  {
592  try
593  {
597  App::GetGuiManager()->ShowMessageBox(_L("Network fatal error: "), m.description.c_str());
598  }
599  catch (...)
600  {
602  }
603  break;
604  }
605 
607  {
608  try
609  {
613  }
614  catch (...)
615  {
617  }
618  break;
619  }
620 
622  {
623  try
624  {
626  }
627  catch (...)
628  {
630  }
631  break;
632  }
633 
635  {
636 #if USE_SOCKETW
637  try
638  {
643  if (!App::GetMumble())
644  {
646  }
647  if (App::GetNetwork()->GetTerrainName() != "any")
648  {
650  }
651  else
652  {
653  // Connected -> go directly to map selector
654  if (App::diag_preset_terrain->getStr().empty())
655  {
657  m.payload = reinterpret_cast<void*>(new LoaderType(LT_Terrain));
659  }
660  else
661  {
663  }
664  }
665  }
666  catch (...)
667  {
669  }
670 #endif // USE_SOCKETW
671  break;
672  }
673 
675  {
676 #if USE_SOCKETW
677  try
678  {
684  _LC("Network", "Multiplayer: connection failed"), m.description.c_str());
685  }
686  catch (...)
687  {
689  }
690 #endif // USE_SOCKETW
691  break;
692  }
693 
695  {
696  GUI::MpServerInfoVec* data = static_cast<GUI::MpServerInfoVec*>(m.payload);
697  try
698  {
700  }
701  catch (...)
702  {
704  }
705  delete data;
706  break;
707  }
708 
710  {
711  CurlFailInfo* failinfo = static_cast<CurlFailInfo*>(m.payload);
712  try
713  {
715  }
716  catch (...)
717  {
719  }
720  delete failinfo;
721  break;
722  }
723 
725  {
727  try
728  {
730  }
731  catch (...)
732  {
734  }
735  delete data;
736  break;
737  }
738 
740  {
742  try
743  {
745  }
746  catch (...)
747  {
749  }
750  delete data;
751  break;
752  }
753 
755  {
756  CurlFailInfo* failinfo = static_cast<CurlFailInfo*>(m.payload);
757  try
758  {
760  }
761  catch (...)
762  {
764  }
765  delete failinfo;
766  break;
767  }
768 
770  {
771  try
772  {
776  }
777  catch (...)
778  {
780  }
781  break;
782  }
783 
785  {
786  try
787  {
791  }
792  catch (...)
793  {
795  }
796  break;
797  }
798 
799  // -- Gameplay events --
800 
802  {
803  try
804  {
805  for (ActorPtr& actor: App::GetGameContext()->GetActorManager()->GetActors())
806  {
807  actor->muteAllSounds();
808  }
810  }
811  catch (...)
812  {
814  }
815  break;
816  }
817 
819  {
820  try
821  {
822  for (ActorPtr& actor: App::GetGameContext()->GetActorManager()->GetActors())
823  {
824  actor->unmuteAllSounds();
825  }
827  }
828  catch (...)
829  {
831  }
832  break;
833  }
834 
836  {
837  try
838  {
840  App::GetGuiManager()->LoadingWindow.SetProgress(5, _L("Loading resources"));
842 
843  if (App::GetGameContext()->LoadTerrain(m.description))
844  {
846  // Spawn preselected vehicle; commandline has precedence
847  if (App::cli_preset_vehicle->getStr() != "")
848  App::GetGameContext()->SpawnPreselectedActor(App::cli_preset_vehicle->getStr(), App::cli_preset_veh_config->getStr()); // Needs character for position
849  else if (App::diag_preset_vehicle->getStr() != "")
850  App::GetGameContext()->SpawnPreselectedActor(App::diag_preset_vehicle->getStr(), App::diag_preset_veh_config->getStr()); // Needs character for position
854  if (App::audio_menu_music->getBool())
855  {
857  }
858  if (App::gfx_sky_mode->getEnum<GfxSkyMode>() == GfxSkyMode::SANDSTORM)
859  {
860  App::GetGfxScene()->GetSceneManager()->setAmbientLight(Ogre::ColourValue(0.7f, 0.7f, 0.7f));
861  }
862  else
863  {
864  App::GetGfxScene()->GetSceneManager()->setAmbientLight(Ogre::ColourValue(0.3f, 0.3f, 0.3f));
865  }
875  #ifdef USE_SOCKETW
876  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
877  {
879  fmt::format(_LC("ChatBox", "Press {} to start chatting"),
880  App::GetInputEngine()->getEventCommandTrimmed(EV_COMMON_ENTER_CHATMODE)), "lightbulb.png");
881  }
882  #endif // USE_SOCKETW
883  if (App::io_outgauge_mode->getInt() > 0)
884  {
886  }
887  }
888  else
889  {
890  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
891  {
893  }
894  else
895  {
897  }
899  failed_m = true;
900  }
901  }
902  catch (...)
903  {
905  }
906  break;
907  }
908 
910  {
911  try
912  {
913  if (App::sim_state->getEnum<SimState>() == SimState::EDITOR_MODE)
914  {
916  }
917  App::GetGameContext()->SaveScene("autosave.sav");
935  App::GetOutGauge()->Close();
936  App::GetSoundScriptManager()->setCamera(/*position:*/Ogre::Vector3::ZERO, /*direction:*/Ogre::Vector3::ZERO, /*up:*/Ogre::Vector3::UNIT_Y, /*velocity:*/Ogre::Vector3::ZERO);
937  }
938  catch (...)
939  {
941  }
942  break;
943  }
944 
946  {
947  try
948  {
949  std::string terrn_filename = App::GetGameContext()->ExtractSceneTerrain(m.description);
950  if (terrn_filename == "")
951  {
952  Str<400> msg; msg << _L("Could not read savegame file") << "'" << m.description << "'";
954  if (App::app_state->getEnum<AppState>() == AppState::MAIN_MENU)
955  {
957  }
958  }
959  else if (terrn_filename == App::sim_terrain_name->getStr())
960  {
962  }
963  else if (terrn_filename != App::sim_terrain_name->getStr() && App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
964  {
965  Str<400> msg; msg << _L("Error while loading scene: Terrain mismatch");
967  }
968  else
969  {
970  if (App::sim_terrain_name->getStr() != "")
971  {
973  }
974 
975  RoR::LogFormat("[RoR|Savegame] Loading terrain '%s' ...", terrn_filename.c_str());
977  // Loading terrain may produce actor-spawn requests; the savegame-request must be posted after them.
979  }
980  }
981  catch (...)
982  {
984  }
985  break;
986  }
987 
989  {
990  ActorSpawnRequest* rq = static_cast<ActorSpawnRequest*>(m.payload);
991  try
992  {
993  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
994  {
996  }
997  }
998  catch (...)
999  {
1001  }
1002  delete rq;
1003  break;
1004  }
1005 
1007  {
1008  ActorModifyRequest* rq = static_cast<ActorModifyRequest*>(m.payload);
1009  try
1010  {
1011  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
1012  {
1014  }
1015  }
1016  catch (...)
1017  {
1019  }
1020  delete rq;
1021  break;
1022  }
1023 
1025  {
1026  ActorPtr* actor_ptr = static_cast<ActorPtr*>(m.payload);
1027  try
1028  {
1029  ROR_ASSERT(actor_ptr);
1030  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
1031  {
1032  App::GetGameContext()->DeleteActor(*actor_ptr);
1033  }
1034  }
1035  catch (...)
1036  {
1038  }
1039  delete actor_ptr;
1040  break;
1041  }
1042 
1044  {
1045  ActorPtr* actor_ptr = static_cast<ActorPtr*>(m.payload);
1046  try
1047  {
1048  ROR_ASSERT(actor_ptr); // Even if leaving vehicle, the pointer must be valid.
1049  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
1050  {
1051  App::GetGameContext()->ChangePlayerActor(*actor_ptr);
1052  }
1053  }
1054  catch (...)
1055  {
1057  }
1058  delete actor_ptr;
1059  break;
1060  }
1061 
1063  {
1064  Ogre::Vector3* pos = static_cast<Ogre::Vector3*>(m.payload);
1065  try
1066  {
1067  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
1068  {
1069  App::GetGameContext()->TeleportPlayer(pos->x, pos->z);
1070  }
1071  }
1072  catch (...)
1073  {
1075  }
1076  delete pos;
1077  break;
1078  }
1079 
1081  {
1082  ActorPtr* actor_ptr = static_cast<ActorPtr*>(m.payload);
1083  try
1084  {
1085  ROR_ASSERT(actor_ptr);
1086  if ((App::mp_state->getEnum<MpState>() == MpState::CONNECTED) &&
1087  ((*actor_ptr)->ar_state == ActorState::NETWORKED_OK))
1088  {
1089  ActorPtr actor = *actor_ptr;
1090  actor->ar_state = ActorState::NETWORKED_HIDDEN; // Stop net. updates
1091  App::GetGfxScene()->RemoveGfxActor(actor->GetGfxActor()); // Remove visuals (also stops updating SimBuffer)
1092  actor->GetGfxActor()->GetSimDataBuffer().simbuf_actor_state = ActorState::NETWORKED_HIDDEN; // Hack - manually propagate the new state to SimBuffer so Character can reflect it.
1093  actor->GetGfxActor()->SetAllMeshesVisible(false);
1094  actor->GetGfxActor()->SetCastShadows(false);
1095  actor->muteAllSounds(); // Stop sounds
1096  actor->forceAllFlaresOff();
1097  actor->setSmokeEnabled(false);
1098  }
1099  }
1100  catch (...)
1101  {
1103  }
1104  delete actor_ptr;
1105  break;
1106  }
1107 
1109  {
1110  ActorPtr* actor_ptr = static_cast<ActorPtr*>(m.payload);
1111  try
1112  {
1113  ROR_ASSERT(actor_ptr);
1114  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED &&
1115  ((*actor_ptr)->ar_state == ActorState::NETWORKED_HIDDEN))
1116  {
1117  ActorPtr actor = *actor_ptr;
1118  actor->ar_state = ActorState::NETWORKED_OK; // Resume net. updates
1119  App::GetGfxScene()->RegisterGfxActor(actor->GetGfxActor()); // Restore visuals (also resumes updating SimBuffer)
1120  actor->GetGfxActor()->SetAllMeshesVisible(true);
1121  actor->GetGfxActor()->SetCastShadows(true);
1122  actor->unmuteAllSounds(); // Unmute sounds
1123  actor->setSmokeEnabled(true);
1124  }
1125  }
1126  catch (...)
1127  {
1129  }
1130  delete actor_ptr;
1131  break;
1132  }
1133 
1135  {
1136  ScriptEventArgs* args = static_cast<ScriptEventArgs*>(m.payload);
1137  try
1138  {
1139  App::GetScriptEngine()->triggerEvent(args->type, args->arg1, args->arg2ex, args->arg3ex, args->arg4ex, args->arg5ex, args->arg6ex, args->arg7ex, args->arg8ex);
1140  }
1141  catch (...)
1142  {
1144  }
1145  delete args;
1146  break;
1147  }
1148 
1150  {
1151  ScriptCallbackArgs* args = static_cast<ScriptCallbackArgs*>(m.payload);
1152  try
1153  {
1155  }
1156  catch (...)
1157  {
1159  }
1160  delete args;
1161  break;
1162  }
1163 
1165  {
1166  // Estabilishing a physics linkage between 2 actors modifies a global linkage table
1167  // and triggers immediate update of every actor's linkage tables,
1168  // so it has to be done sequentially on main thread.
1169  // ---------------------------------------------------------------------------------
1170  ActorLinkingRequest* request = static_cast<ActorLinkingRequest*>(m.payload);
1171  try
1172  {
1174  if (actor)
1175  {
1176  switch (request->alr_type)
1177  {
1181  actor->hookToggle(request->alr_hook_group, request->alr_type);
1182  break;
1183 
1185  actor->hookToggle(request->alr_hook_group, request->alr_type, request->alr_hook_mousenode);
1187  break;
1188 
1190  actor->tieToggle(request->alr_tie_group);
1191  break;
1192 
1194  actor->ropeToggle(request->alr_rope_group);
1195  break;
1196 
1198  actor->toggleSlideNodeLock();
1199  break;
1200  }
1201  }
1202  }
1203  catch (...)
1204  {
1206  }
1207  delete request;
1208  break;
1209  }
1210 
1212  {
1213  FreeForceRequest* rq = static_cast<FreeForceRequest*>(m.payload);
1214  try
1215  {
1217  }
1218  catch (...)
1219  {
1221  }
1222  delete rq;
1223  break;
1224  }
1225 
1227  {
1228  FreeForceRequest* rq = static_cast<FreeForceRequest*>(m.payload);
1229  try
1230  {
1232  }
1233  catch (...)
1234  {
1236  }
1237  delete rq;
1238  break;
1239  }
1240 
1242  {
1243  FreeForceID_t* rq = static_cast<FreeForceID_t*>(m.payload);
1244  try
1245  {
1247  }
1248  catch (...)
1249  {
1251  }
1252  delete rq;
1253  break;
1254  }
1255 
1256  // -- GUI events ---
1257 
1259  {
1260  try
1261  {
1263  }
1264  catch (...)
1265  {
1267  }
1268  break;
1269  }
1270 
1272  {
1273  try
1274  {
1276  }
1277  catch (...)
1278  {
1280  }
1281  break;
1282  }
1283 
1285  {
1286  LoaderType* type = static_cast<LoaderType*>(m.payload);
1287  try
1288  {
1290  }
1291  catch (...)
1292  {
1294  }
1295  delete type;
1296  break;
1297  }
1298 
1300  {
1301  try
1302  {
1304  }
1305  catch (...)
1306  {
1308  }
1309  break;
1310  }
1311 
1313  {
1314  try
1315  {
1317  }
1318  catch (...)
1319  {
1321  }
1322  break;
1323  }
1324 
1326  {
1327  GUI::MessageBoxConfig* conf = static_cast<GUI::MessageBoxConfig*>(m.payload);
1328  try
1329  {
1331  }
1332  catch (...)
1333  {
1335  }
1336  delete conf;
1337  break;
1338  }
1339 
1341  {
1342  int* percentage = static_cast<int*>(m.payload);
1343  try
1344  {
1346  App::GetGuiManager()->LoadingWindow.SetProgress(*percentage, m.description, false);
1347  }
1348  catch (...)
1349  {
1351  }
1352  delete percentage;
1353  break;
1354  }
1355 
1357  {
1358  try
1359  {
1363  }
1364  catch (...)
1365  {
1367  }
1368  break;
1369  }
1370 
1372  {
1374  break;
1375  }
1376 
1377  // -- Editing events --
1378 
1380  {
1381  try
1382  {
1383  ground_model_t* modified_gm = static_cast<ground_model_t*>(m.payload);
1385  *live_gm = *modified_gm; // Copy over
1386  //DO NOT `delete` the payload - it's a weak pointer, the data are owned by `RoR::Collisions`; See `enum MsgType` in file 'Application.h'.
1387  }
1388  catch (...)
1389  {
1391  }
1392  break;
1393  }
1394 
1396  {
1397  try
1398  {
1399  if (App::sim_state->getEnum<SimState>() != SimState::EDITOR_MODE)
1400  {
1403  _L("Entered terrain editing mode"));
1405  fmt::format(_L("Press {} or middle mouse click to select an object"),
1406  App::GetInputEngine()->getEventCommandTrimmed(EV_COMMON_ENTER_OR_EXIT_TRUCK)), "lightbulb.png");
1407  }
1408  }
1409  catch (...)
1410  {
1412  }
1413  break;
1414  }
1415 
1417  {
1418  try
1419  {
1420  if (App::sim_state->getEnum<SimState>() == SimState::EDITOR_MODE)
1421  {
1426  _L("Left terrain editing mode"));
1427  }
1428  }
1429  catch (...)
1430  {
1432  }
1433  break;
1434  }
1435 
1437  {
1438  CacheEntryPtr* entry_ptr = static_cast<CacheEntryPtr*>(m.payload);
1439  try
1440  {
1441  App::GetCacheSystem()->LoadResource(*entry_ptr);
1443  /*ints*/ MODCACHEACTIVITY_BUNDLE_LOADED, (*entry_ptr)->number, 0, 0,
1444  /*strings*/ (*entry_ptr)->resource_group);
1445  }
1446  catch (...)
1447  {
1449  }
1450  delete entry_ptr;
1451  break;
1452  }
1453 
1455  {
1456  // To reload the bundle, it's resource group must be destroyed and re-created. All actors using it must be deleted.
1457  CacheEntryPtr* entry_ptr = static_cast<CacheEntryPtr*>(m.payload);
1458  try
1459  {
1460  bool all_clear = true;
1462  {
1463  if (actor->GetGfxActor()->GetResourceGroup() == (*entry_ptr)->resource_group)
1464  {
1465  App::GetGameContext()->PushMessage(Message(MSG_SIM_DELETE_ACTOR_REQUESTED, static_cast<void*>(new ActorPtr(actor))));
1466  all_clear = false;
1467  }
1468  }
1469 
1470  if (all_clear)
1471  {
1472  // Nobody uses the RG anymore -> destroy and re-create it.
1473  App::GetCacheSystem()->ReLoadResource(*entry_ptr);
1474 
1476  /*ints*/ MODCACHEACTIVITY_BUNDLE_RELOADED, (*entry_ptr)->number, 0, 0,
1477  /*strings*/ (*entry_ptr)->resource_group);
1478 
1479  delete entry_ptr;
1480  }
1481  else
1482  {
1483  // Re-post the same message again so that it's message chain is executed later.
1485  failed_m = true;
1486  }
1487  }
1488  catch (...)
1489  {
1491  }
1492  break;
1493  }
1494 
1496  {
1497  // Unloading bundle means the resource group will be destroyed. All actors using it must be deleted.
1498  CacheEntryPtr* entry_ptr = static_cast<CacheEntryPtr*>(m.payload);
1499  try
1500  {
1501  bool all_clear = true;
1503  {
1504  if (actor->GetGfxActor()->GetResourceGroup() == (*entry_ptr)->resource_group)
1505  {
1506  App::GetGameContext()->PushMessage(Message(MSG_SIM_DELETE_ACTOR_REQUESTED, static_cast<void*>(new ActorPtr(actor))));
1507  all_clear = false;
1508  }
1509  }
1510 
1511  if (all_clear)
1512  {
1513  // Nobody uses the RG anymore -> destroy it.
1514  App::GetCacheSystem()->UnLoadResource(*entry_ptr);
1515 
1517  /*ints*/ MODCACHEACTIVITY_BUNDLE_UNLOADED, (*entry_ptr)->number, 0, 0);
1518 
1519  delete entry_ptr;
1520  }
1521  else
1522  {
1523  // Re-post the same message again so that it's message chain is executed later.
1525  failed_m = true;
1526  }
1527  }
1528  catch (...)
1529  {
1531  }
1532 
1533  break;
1534  }
1535 
1537  {
1538  CreateProjectRequest* request = static_cast<CreateProjectRequest*>(m.payload);
1539  try
1540  {
1541  App::GetCacheSystem()->CreateProject(request);
1542  }
1543  catch (...)
1544  {
1546  }
1547  delete request;
1548  break;
1549  }
1550 
1552  {
1553  ModifyProjectRequest* request = static_cast<ModifyProjectRequest*>(m.payload);
1554  try
1555  {
1556  if (App::mp_state->getEnum<MpState>() != MpState::CONNECTED) // Do not allow tuning in multiplayer
1557  {
1558  App::GetCacheSystem()->ModifyProject(request);
1559  }
1560  }
1561  catch (...)
1562  {
1564  }
1565  delete request;
1566  break;
1567  }
1568 
1570  {
1571  CacheEntryPtr* entry_ptr = static_cast<CacheEntryPtr*>(m.payload);
1572  try
1573  {
1574  App::GetCacheSystem()->DeleteProject(*entry_ptr);
1575  }
1576  catch (...)
1577  {
1579  }
1580  delete entry_ptr;
1581  break;
1582  }
1583 
1584  default:;
1585  }
1586 
1587  // Process chained messages
1588  if (!failed_m)
1589  {
1590  for (Message& chained_msg: m.chain)
1591  {
1592  App::GetGameContext()->PushMessage(chained_msg);
1593  }
1594  }
1595 
1596  } // Game events block
1597 
1598  // Check FPS limit
1599  if (App::gfx_fps_limit->getInt() > 0)
1600  {
1601  const float min_frame_time = 1.0f / Ogre::Math::Clamp(App::gfx_fps_limit->getInt(), 5, 240);
1602  float dt = std::chrono::duration<float>(std::chrono::high_resolution_clock::now() - start_time).count();
1603  while (dt < min_frame_time)
1604  {
1605  dt = std::chrono::duration<float>(std::chrono::high_resolution_clock::now() - start_time).count();
1606  }
1607  } // Check FPS limit block
1608 
1609  // Calculate delta time
1610  const auto now = std::chrono::high_resolution_clock::now();
1611  const float dt = std::chrono::duration<float>(now - start_time).count();
1612  start_time = now;
1613 
1614 #ifdef USE_SOCKETW
1615  // Process incoming network traffic
1616  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
1617  {
1618  std::vector<RoR::NetRecvPacket> packets = App::GetNetwork()->GetIncomingStreamData();
1619  if (!packets.empty())
1620  {
1622  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
1623  {
1625  App::GetGameContext()->GetCharacterFactory()->handleStreamData(packets); // Update characters last (or else beam coupling might fail)
1626  }
1627  }
1628  }
1629 #endif // USE_SOCKETW
1630 
1631  // Process input events
1632  if (dt != 0.f)
1633  {
1636 
1637  if (!App::GetGuiManager()->GameControls.IsInteractiveKeyBindingActive())
1638  {
1639  if (!App::GetGuiManager()->MainSelector.IsVisible() && !App::GetGuiManager()->MultiplayerSelector.IsVisible() &&
1642  {
1644  }
1647 
1648  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
1649  {
1650  if (App::sim_state->getEnum<SimState>() == SimState::EDITOR_MODE)
1651  {
1654  }
1655  else
1656  {
1657  App::GetGameContext()->GetCharacterFactory()->Update(dt); // Character MUST be updated before CameraManager, otherwise camera position is always 1 frame behind the character position, causing stuttering.
1658  }
1663  if (App::sim_state->getEnum<SimState>() == SimState::RUNNING)
1664  {
1665  if (App::GetCameraManager()->GetCurrentBehavior() != CameraManager::CAMERA_BEHAVIOR_FREE)
1666  {
1669  if (App::GetGameContext()->GetPlayerActor() &&
1670  App::GetGameContext()->GetPlayerActor()->ar_state != ActorState::NETWORKED_OK) // we are in a vehicle
1671  {
1673  if (App::GetGameContext()->GetPlayerActor()->ar_state != ActorState::LOCAL_REPLAY)
1674  {
1675  if (App::GetGameContext()->GetPlayerActor()->ar_driveable == TRUCK)
1676  {
1678  }
1679  if (App::GetGameContext()->GetPlayerActor()->ar_driveable == AIRPLANE)
1680  {
1682  }
1683  if (App::GetGameContext()->GetPlayerActor()->ar_driveable == BOAT)
1684  {
1686  }
1687  }
1688  }
1689  }
1690  else // free cam mode
1691  {
1693  }
1694  }
1695  } // app state SIMULATION
1696  } // interactive key binding mode
1697  } // dt != 0
1698 
1699  // Update OutGauge device
1700  if (App::io_outgauge_mode->getInt() > 0)
1701  {
1702  App::GetOutGauge()->Update(dt, App::GetGameContext()->GetPlayerActor());
1703  }
1704 
1705  // Early GUI updates which require halted physics
1707  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
1708  {
1710  for (ActorPtr& actor : App::GetGameContext()->GetActorManager()->GetActors())
1711  {
1712  actor->GetGfxActor()->UpdateDebugView();
1713  }
1714  if (App::GetGameContext()->GetPlayerActor())
1715  {
1717  if (App::GetGuiManager()->FrictionSettings.IsVisible())
1718  {
1719  App::GetGuiManager()->FrictionSettings.setActiveCol(App::GetGameContext()->GetPlayerActor()->ar_last_fuzzy_ground_model);
1720  }
1721  }
1722  }
1723 
1724 #ifdef USE_MUMBLE
1725  if (App::GetMumble())
1726  {
1727  App::GetMumble()->Update(); // 3d voice over network
1728  }
1729 #endif // USE_MUMBLE
1730 
1731 #ifdef USE_OPENAL
1732  App::GetSoundScriptManager()->update(dt); // update 3d audio listener position
1733 #endif // USE_OPENAL
1734 
1735 #ifdef USE_ANGELSCRIPT
1737 #endif // USE_ANGELSCRIPT
1738 
1739  if (App::io_ffb_enabled->getBool() &&
1740  App::sim_state->getEnum<SimState>() == SimState::RUNNING)
1741  {
1743  }
1744 
1745  if (App::sim_state->getEnum<SimState>() == SimState::RUNNING)
1746  {
1748  }
1749 
1750  // Create snapshot of simulation state for Gfx/GUI updates
1751  if (App::sim_state->getEnum<SimState>() == SimState::RUNNING || // Obviously
1752  App::sim_state->getEnum<SimState>() == SimState::EDITOR_MODE) // Needed for character movement
1753  {
1755  }
1756 
1757  // Advance simulation
1758  if (App::sim_state->getEnum<SimState>() == SimState::RUNNING)
1759  {
1760  App::GetGameContext()->UpdateActors(); // *** Start new physics tasks. No reading from Actor N/B beyond this point.
1761  }
1762 
1763  // Scene and GUI updates
1764  if (App::app_state->getEnum<AppState>() == AppState::MAIN_MENU)
1765  {
1767  }
1768  else if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
1769  {
1770  App::GetGfxScene()->UpdateScene(dt); // Draws GUI as well
1771  }
1772 
1773  // Render!
1774  Ogre::RenderWindow* render_window = RoR::App::GetAppContext()->GetRenderWindow();
1775  if (render_window->isClosed())
1776  {
1778  }
1779  else
1780  {
1781  App::GetAppContext()->GetOgreRoot()->renderOneFrame();
1782  if (!render_window->isActive() && render_window->isVisible())
1783  {
1784  render_window->update(); // update even when in background !
1785  }
1786  } // Render block
1787 
1789 
1790  } // End of main rendering/input loop
1791 
1792 #ifndef _DEBUG
1793  }
1794  catch (Ogre::Exception& e)
1795  {
1796  LOG(e.getFullDescription());
1797  ErrorUtils::ShowError(_L("An exception has occured!"), e.getFullDescription());
1798  }
1799  catch (std::runtime_error& e)
1800  {
1801  LOG(e.what());
1802  ErrorUtils::ShowError(_L("An exception (std::runtime_error) has occured!"), e.what());
1803  }
1804 #endif
1805 
1806  return 0;
1807 }
1808 
1809 #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
1810 INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
1811 {
1812  return main(__argc, __argv);
1813 }
1814 #endif
1815 
1816 #ifdef __cplusplus
1817 }
1818 #endif
RoR::App::sys_user_dir
CVar * sys_user_dir
Definition: Application.cpp:163
RoR::MSG_EDI_MODIFY_PROJECT_REQUESTED
@ MSG_EDI_MODIFY_PROJECT_REQUESTED
Payload = RoR::UpdateProjectRequest* (owner)
Definition: Application.h:151
RoR::ScriptUnit
Represents a loaded script and all associated resources/handles.
Definition: ScriptEngine.h:69
ROR_ASSERT
#define ROR_ASSERT(_EXPR)
Definition: Application.h:40
GameContext.h
Game state manager and message-queue provider.
RoR::GUIManager::VehicleInfoTPanel
GUI::VehicleInfoTPanel VehicleInfoTPanel
Definition: GUIManager.h:107
RoR::CameraManager::UpdateInputEvents
void UpdateInputEvents(float dt)
Definition: CameraManager.cpp:242
RoR::App::CreateMumble
void CreateMumble()
Definition: Application.cpp:308
RoR::ActorLinkingRequest::alr_hook_group
int alr_hook_group
Definition: SimData.h:922
RoR::MSG_SIM_LOAD_TERRN_REQUESTED
@ MSG_SIM_LOAD_TERRN_REQUESTED
Definition: Application.h:116
RoR::ScriptEngine::setEventsEnabled
void setEventsEnabled(bool val)
Definition: ScriptEngine.h:159
RoR::GfxSkyMode::SANDSTORM
@ SANDSTORM
Sandstorm (fastest)
RoR::ASMANIP_SCRIPT_UNLOADING
@ ASMANIP_SCRIPT_UNLOADING
Triggered before unloading the script to let it clean up (important for missions).
Definition: ScriptEvents.h:76
GUI_MultiplayerClientList.h
RoR::App::CreateScriptEngine
void CreateScriptEngine()
Definition: Application.cpp:342
RoR::App::GetNetwork
Network * GetNetwork()
Definition: Application.cpp:284
RoR::MSG_SIM_REMOVE_FREEFORCE_REQUESTED
@ MSG_SIM_REMOVE_FREEFORCE_REQUESTED
Payload = RoR::FreeForceID_t* (owner)
Definition: Application.h:131
RoR::App::cli_force_cache_update
CVar * cli_force_cache_update
Definition: Application.cpp:184
RoR::LoadScriptRequest::lsr_filename
std::string lsr_filename
Load from resource (file). If buffer is supplied, use this as display name only.
Definition: ScriptEngine.h:92
RoR::App::GetContentManager
ContentManager * GetContentManager()
Definition: Application.cpp:267
RoR::App::GetSoundScriptManager
SoundScriptManager * GetSoundScriptManager()
Definition: Application.cpp:277
RoR::ContentManager::InitContentManager
void InitContentManager()
Definition: ContentManager.cpp:147
RoR::CacheSystem::UnLoadResource
void UnLoadResource(CacheEntryPtr &t)
Unloads associated bundle, destroying all spawned actors.
Definition: CacheSystem.cpp:1533
RoR::GUI::TopMenubar::ai_presets_extern
rapidjson::Document ai_presets_extern
Externally provided presets (GitHub repo or local 'savegames/waypoints.json' file).
Definition: GUI_TopMenubar.h:105
RoR::MSG_GUI_SHOW_MESSAGE_BOX_REQUESTED
@ MSG_GUI_SHOW_MESSAGE_BOX_REQUESTED
Payload = MessageBoxConfig* (owner)
Definition: Application.h:138
RoR::GameContext::ExtractSceneTerrain
std::string ExtractSceneTerrain(std::string const &filename)
Returns terrain filename.
Definition: Savegame.cpp:86
RoR::GUI::MultiplayerSelector::SetVisible
void SetVisible(bool v)
Definition: GUI_MultiplayerSelector.cpp:392
RoR::TerrainEditor::UpdateInputEvents
void UpdateInputEvents(float dt)
Definition: TerrainEditor.cpp:39
RoR::App::diag_warning_texture
CVar * diag_warning_texture
Definition: Application.cpp:151
RoR::App::GetLanguageEngine
LanguageEngine * GetLanguageEngine()
Definition: Application.cpp:278
RoR::ScriptEventArgs
Args for eventCallbackEx() queued via MSG_SIM_SCRIPT_EVENT_TRIGGERED See descriptions at enum RoR::sc...
Definition: ScriptEvents.h:103
RoR::Network::Disconnect
void Disconnect()
Definition: Network.cpp:562
RoR::App::gfx_fov_internal
CVar * gfx_fov_internal
Definition: Application.cpp:240
RoR::CharacterFactory::handleStreamData
void handleStreamData(std::vector< RoR::NetRecvPacket > packet)
Definition: CharacterFactory.cpp:108
RoR::SE_ANGELSCRIPT_MANIPULATIONS
@ SE_ANGELSCRIPT_MANIPULATIONS
triggered when the user tries to dynamically use the scripting capabilities (prevent cheating) args: ...
Definition: ScriptEvents.h:54
RoR::App::CreateCameraManager
void CreateCameraManager()
Definition: Application.cpp:322
RoR::MSG_SIM_MODIFY_ACTOR_REQUESTED
@ MSG_SIM_MODIFY_ACTOR_REQUESTED
Payload = RoR::ActorModifyRequest* (owner)
Definition: Application.h:120
RoR::SoundScriptManager::setCamera
void setCamera(Ogre::Vector3 position, Ogre::Vector3 direction, Ogre::Vector3 up, Ogre::Vector3 velocity)
Definition: SoundScriptManager.cpp:324
RoR::App::diag_preset_vehicle
CVar * diag_preset_vehicle
Definition: Application.cpp:143
RoR::GfxScene::GetEnvMap
GfxEnvmap & GetEnvMap()
Definition: GfxScene.h:62
RoR::SceneMouse::DiscardVisuals
void DiscardVisuals()
Definition: SceneMouse.cpp:75
RoR::OverlayWrapper::update
void update(float dt)
Definition: OverlayWrapper.cpp:345
OverlayWrapper.h
RoR::GameContext::ModifyActor
void ModifyActor(ActorModifyRequest &rq)
Definition: GameContext.cpp:358
RoR::App::cli_resume_autosave
CVar * cli_resume_autosave
Definition: Application.cpp:185
RoR::MSG_EDI_RELOAD_BUNDLE_REQUESTED
@ MSG_EDI_RELOAD_BUNDLE_REQUESTED
Payload = RoR::CacheEntryPtr* (owner)
Definition: Application.h:148
RoR::Network::StartConnecting
bool StartConnecting()
Launches connecting on background.
Definition: Network.cpp:388
RoR::InputEngine::updateKeyBounces
void updateKeyBounces(float dt)
Definition: InputEngine.cpp:780
RoR::MSG_APP_REINIT_INPUT_REQUESTED
@ MSG_APP_REINIT_INPUT_REQUESTED
Definition: Application.h:95
RoR::TRUCK
@ TRUCK
its a truck (or other land vehicle)
Definition: SimData.h:93
RoR::MpState::CONNECTED
@ CONNECTED
RoR::CacheSystem::DeleteProject
void DeleteProject(CacheEntryPtr &entry)
Definition: CacheSystem.cpp:2051
RoR::GUIManager::FrictionSettings
GUI::FrictionSettings FrictionSettings
Definition: GUIManager.h:114
RoR::MSG_SIM_SCRIPT_CALLBACK_QUEUED
@ MSG_SIM_SCRIPT_CALLBACK_QUEUED
Payload = RoR::ScriptCallbackArgs* (owner)
Definition: Application.h:127
RoR::App::sys_scripts_dir
CVar * sys_scripts_dir
Definition: Application.cpp:172
RoR::EV_COMMON_ENTER_OR_EXIT_TRUCK
@ EV_COMMON_ENTER_OR_EXIT_TRUCK
enter or exit a truck
Definition: InputEngine.h:229
RoR::GUIManager::ApplyGuiCaptureKeyboard
void ApplyGuiCaptureKeyboard()
Call after rendered frame to apply queued value.
Definition: GUIManager.cpp:110
RoR::App::GetCameraManager
CameraManager * GetCameraManager()
Definition: Application.cpp:275
RoR::App::app_skip_main_menu
CVar * app_skip_main_menu
Definition: Application.cpp:82
GUI_VehicleInfoTPanel.h
RoR::GUI::MultiplayerSelector::DisplayRefreshFailed
void DisplayRefreshFailed(CurlFailInfo *failinfo)
Definition: GUI_MultiplayerSelector.cpp:406
GUI_MessageBox.h
Generic UI dialog (not modal). Invocable from scripting. Any number of buttons. Configurable to fire ...
RoR::App::GetGuiManager
GUIManager * GetGuiManager()
Definition: Application.cpp:269
RoR::MSG_EDI_CREATE_PROJECT_REQUESTED
@ MSG_EDI_CREATE_PROJECT_REQUESTED
Payload = RoR::CreateProjectRequest* (owner)
Definition: Application.h:150
RoR::GUI::MultiplayerSelector::UpdateServerlist
void UpdateServerlist(MpServerInfoVec *data)
Definition: GUI_MultiplayerSelector.cpp:418
RoR::DiscordRpc::UpdatePresence
void UpdatePresence()
Definition: DiscordRpc.cpp:60
RoR::GfxScene::BufferSimulationData
void BufferSimulationData()
Run this when simulation is halted.
Definition: GfxScene.cpp:281
RoR::ActorLinkingRequest
Estabilishing a physics linkage between 2 actors modifies a global linkage table and triggers immedia...
Definition: SimData.h:917
RoR::GUI::GameSettings::IsVisible
bool IsVisible() const
Definition: GUI_GameSettings.h:33
GUI_FrictionSettings.h
RoR::GUI::LoadingWindow::SetProgressNetConnect
void SetProgressNetConnect(const std::string &net_status)
Definition: GUI_LoadingWindow.cpp:73
RoR::MSG_EDI_UNLOAD_BUNDLE_REQUESTED
@ MSG_EDI_UNLOAD_BUNDLE_REQUESTED
Payload = RoR::CacheEntryPtr* (owner)
Definition: Application.h:149
RoR::HandleMsgQueueException
void HandleMsgQueueException(MsgType from)
Definition: Application.cpp:410
RoR::Actor::unmuteAllSounds
void unmuteAllSounds()
Definition: Actor.cpp:3825
RoR::AppState::MAIN_MENU
@ MAIN_MENU
RoR::ContentManager::ResourcePack::WALLPAPERS
static const ResourcePack WALLPAPERS
Definition: ContentManager.h:48
RoR::MSG_SIM_UNLOAD_TERRN_REQUESTED
@ MSG_SIM_UNLOAD_TERRN_REQUESTED
Definition: Application.h:118
ContentManager.h
RoR::GfxScene::RemoveGfxActor
void RemoveGfxActor(RoR::GfxActor *gfx_actor)
Definition: GfxScene.cpp:316
RoR::AppContext::GetRenderWindow
Ogre::RenderWindow * GetRenderWindow()
Definition: AppContext.h:67
RoR::TerrainEditor::ClearSelection
void ClearSelection()
Definition: TerrainEditor.cpp:320
RoR::App::cli_preset_vehicle
CVar * cli_preset_vehicle
Definition: Application.cpp:178
RoR::App::GetAppContext
AppContext * GetAppContext()
Definition: Application.cpp:266
RoR::Console::cVarSetupBuiltins
void cVarSetupBuiltins()
Create builtin vars and set defaults.
Definition: CVar.cpp:29
RoR::ActorState::LOCAL_REPLAY
@ LOCAL_REPLAY
RoR::MSG_GUI_CLOSE_SELECTOR_REQUESTED
@ MSG_GUI_CLOSE_SELECTOR_REQUESTED
Definition: Application.h:136
format
Truck file format(technical spec)
RoR::ActorManager::AddFreeForce
void AddFreeForce(FreeForceRequest *rq)
Definition: ActorManager.cpp:1615
RoR::MSG_SIM_UNPAUSE_REQUESTED
@ MSG_SIM_UNPAUSE_REQUESTED
Definition: Application.h:115
RoR::DiscordRpc::Shutdown
void Shutdown()
Definition: DiscordRpc.cpp:90
RoR::ActorLinkingRequestType::HOOK_MOUSE_TOGGLE
@ HOOK_MOUSE_TOGGLE
GUIUtils.h
RoR::Network::GetIncomingStreamData
std::vector< NetRecvPacket > GetIncomingStreamData()
Definition: Network.cpp:672
RoR::AppState::PRINT_VERSION_EXIT
@ PRINT_VERSION_EXIT
RoR::MSG_NET_CONNECT_STARTED
@ MSG_NET_CONNECT_STARTED
Definition: Application.h:98
RoR::MSG_GUI_DOWNLOAD_PROGRESS
@ MSG_GUI_DOWNLOAD_PROGRESS
Definition: Application.h:140
RoR::App::app_force_cache_update
CVar * app_force_cache_update
Definition: Application.cpp:89
RoR::CameraManager::CAMERA_BEHAVIOR_FREE
@ CAMERA_BEHAVIOR_FREE
Definition: CameraManager.h:52
RoR::GameContext::UpdateCommonInputEvents
void UpdateCommonInputEvents(float dt)
Definition: GameContext.cpp:1256
RoR::GUI::VehicleInfoTPanel::UpdateStats
void UpdateStats(float dt, ActorPtr actor)
Caution: touches live data, must be synced with sim. thread.
Definition: GUI_VehicleInfoTPanel.cpp:561
RoR::Actor::forceAllFlaresOff
void forceAllFlaresOff()
Definition: Actor.cpp:3011
RoR::ActorLinkingRequest::alr_type
ActorLinkingRequestType alr_type
Definition: SimData.h:920
RoR::App::mp_join_on_startup
CVar * mp_join_on_startup
Definition: Application.cpp:116
RoR::TRIGGER_EVENT_ASYNC
void TRIGGER_EVENT_ASYNC(scriptEvents type, int arg1, int arg2ex=0, int arg3ex=0, int arg4ex=0, std::string arg5ex="", std::string arg6ex="", std::string arg7ex="", std::string arg8ex="")
Asynchronously (via MSG_SIM_SCRIPT_EVENT_TRIGGERED) invoke script function eventCallbackEx(),...
Definition: ScriptEngine.h:51
RoR::ScriptEventArgs::arg4ex
int arg4ex
Definition: ScriptEvents.h:111
RoR::GUI::GameControls::IsVisible
bool IsVisible() const
Definition: GUI_GameControls.h:34
RoR::SimState::EDITOR_MODE
@ EDITOR_MODE
Hacky, but whatever... added by Ulteq, 2016.
RoR::Terrain::GetTerrainEditor
TerrainEditor * GetTerrainEditor()
Definition: Terrain.h:82
RoR::App::GetOverlayWrapper
OverlayWrapper * GetOverlayWrapper()
Definition: Application.cpp:268
RoR::SceneMouse::UpdateSimulation
void UpdateSimulation()
Definition: SceneMouse.cpp:199
CameraManager.h
RoR::ActorLinkingRequestType::HOOK_TOGGLE
@ HOOK_TOGGLE
RoR::LogFormat
void LogFormat(const char *format,...)
Improved logging utility. Uses fixed 2Kb buffer.
Definition: Application.cpp:424
RoR::App::cli_server_host
CVar * cli_server_host
Definition: Application.cpp:176
RoR::SE_TRUCK_MOUSE_GRAB
@ SE_TRUCK_MOUSE_GRAB
triggered when the user uses the mouse to interact with the actor, the argument refers to the actor I...
Definition: ScriptEvents.h:52
RoR::GfxScene::ClearScene
void ClearScene()
Definition: GfxScene.cpp:60
AppContext.h
System integration layer; inspired by OgreBites::ApplicationContext.
RoR::MSG_NET_REFRESH_SERVERLIST_FAILURE
@ MSG_NET_REFRESH_SERVERLIST_FAILURE
Payload = RoR::CurlFailInfo* (owner)
Definition: Application.h:107
Console.h
RoR::App::gfx_fov_external_default
CVar * gfx_fov_external_default
Definition: Application.cpp:239
RoR::Console::putMessage
void putMessage(MessageArea area, MessageType type, std::string const &msg, std::string icon="")
Definition: Console.cpp:97
RoR::GUIManager::GameControls
GUI::GameControls GameControls
Definition: GUIManager.h:116
RoR::ActorLinkingRequestType::HOOK_UNLOCK
@ HOOK_UNLOCK
RoR::SE_GENERIC_MODCACHE_ACTIVITY
@ SE_GENERIC_MODCACHE_ACTIVITY
Triggered when status of modcache changes, args: #1 type, #2 entry number, for other args see RoR::mo...
Definition: ScriptEvents.h:62
RoR::GameContext::TeleportPlayer
void TeleportPlayer(float x, float z)
Definition: GameContext.cpp:881
RoR::GameContext::UpdateActors
void UpdateActors()
Definition: GameContext.cpp:580
RoR::GUIManager::MpClientList
GUI::MpClientList MpClientList
Definition: GUIManager.h:113
RoR::MSG_NET_RECV_ERROR
@ MSG_NET_RECV_ERROR
Definition: Application.h:105
RoR::LoadScriptRequest::lsr_buffer
std::string lsr_buffer
Load from memory buffer.
Definition: ScriptEngine.h:93
GUI_DirectionArrow.h
Race direction arrow and text info (using OGRE Overlay)
RoR::ActorManager::GetActors
ActorPtrVec & GetActors()
Definition: ActorManager.h:119
RoR::CacheSystem::ModifyProject
void ModifyProject(ModifyProjectRequest *request)
Definition: CacheSystem.cpp:1842
RoR::App::io_ffb_enabled
CVar * io_ffb_enabled
Definition: Application.cpp:192
RoR::GfxScene::UpdateScene
void UpdateScene(float dt_sec)
Definition: GfxScene.cpp:90
RoR::MSG_APP_LOAD_SCRIPT_REQUESTED
@ MSG_APP_LOAD_SCRIPT_REQUESTED
Payload = RoR::LoadScriptRequest* (owner)
Definition: Application.h:92
RoR::Actor::GetGfxActor
GfxActor * GetGfxActor()
Definition: Actor.h:269
RoR::ScriptEngine::loadScript
ScriptUnitId_t loadScript(Ogre::String scriptname, ScriptCategory category=ScriptCategory::TERRAIN, ActorPtr associatedActor=nullptr, std::string buffer="")
Loads a script.
Definition: ScriptEngine.cpp:759
RoR::GUI::TopMenubar::ai_waypoints
std::vector< ai_events > ai_waypoints
Definition: GUI_TopMenubar.h:68
RoR::GUIManager::GameSettings
GUI::GameSettings GameSettings
Definition: GUIManager.h:106
RoR::ActorManager::SyncWithSimThread
void SyncWithSimThread()
Definition: ActorManager.cpp:1238
RoR::SS_TRIG_MAIN_MENU
@ SS_TRIG_MAIN_MENU
Definition: SoundScriptManager.h:119
RoR::ActorLinkingRequestType::ROPE_TOGGLE
@ ROPE_TOGGLE
RoR::GUI::RepositorySelector::UpdateFiles
void UpdateFiles(ResourcesCollection *data)
Definition: GUI_RepositorySelector.cpp:1187
RoR::App::sim_state
CVar * sim_state
Definition: Application.cpp:96
Utils.h
RoR::CurlFailInfo
Definition: Network.h:47
RoR::GUI::MainSelector::Show
void Show(LoaderType type, std::string const &filter_guid="", CacheEntryPtr advertised_entry=nullptr)
Definition: GUI_MainSelector.cpp:65
RoR::ScriptEngine::framestep
void framestep(Ogre::Real dt)
Calls the script's framestep function to be able to use timed things inside the script.
Definition: ScriptEngine.cpp:384
Language.h
RoR::App::sys_savegames_dir
CVar * sys_savegames_dir
Definition: Application.cpp:170
RoR::MSG_NET_CONNECT_REQUESTED
@ MSG_NET_CONNECT_REQUESTED
Definition: Application.h:97
RefCountingObjectPtr< Actor >
RoR::GUIManager::DirectionArrow
GUI::DirectionArrow DirectionArrow
Definition: GUIManager.h:123
RoR::MSG_APP_DISPLAY_WINDOWED_REQUESTED
@ MSG_APP_DISPLAY_WINDOWED_REQUESTED
Definition: Application.h:88
RoR::MSG_NET_SERVER_KICK
@ MSG_NET_SERVER_KICK
Definition: Application.h:102
RoR::Console::CONSOLE_SYSTEM_ERROR
@ CONSOLE_SYSTEM_ERROR
Definition: Console.h:52
GUI_MultiplayerSelector.h
GUIManager.h
Actor.h
RoR::SimState::OFF
@ OFF
RoR::App::GetScriptEngine
ScriptEngine * GetScriptEngine()
Definition: Application.cpp:279
RoR::GUIManager::LoadingWindow
GUI::LoadingWindow LoadingWindow
Definition: GUIManager.h:119
RoR::GfxScene::GetSceneManager
Ogre::SceneManager * GetSceneManager()
Definition: GfxScene.h:64
RoR::Console::CONSOLE_SYSTEM_NOTICE
@ CONSOLE_SYSTEM_NOTICE
Definition: Console.h:51
RoR::GUIManager::RepositorySelector
GUI::RepositorySelector RepositorySelector
Definition: GUIManager.h:117
RoR::ActorSpawnRequest
Definition: SimData.h:832
RoR::MSG_APP_DISPLAY_FULLSCREEN_REQUESTED
@ MSG_APP_DISPLAY_FULLSCREEN_REQUESTED
Definition: Application.h:87
RoR::GfxEnvmap::SetupEnvMap
void SetupEnvMap()
Definition: EnvironmentMap.cpp:43
RoR::GUI::DirectionArrow::LoadOverlay
void LoadOverlay()
Must be called after meshes+overlays were loaded.
Definition: GUI_DirectionArrow.cpp:38
RoR::AppContext::GetForceFeedback
RoR::ForceFeedback & GetForceFeedback()
Definition: AppContext.h:68
RoR::GameContext::SpawnActor
ActorPtr SpawnActor(ActorSpawnRequest &rq)
Definition: GameContext.cpp:190
RoR::GUIManager::NewImGuiFrame
void NewImGuiFrame(float dt)
Definition: GUIManager.cpp:293
RoR::MSG_NET_REFRESH_SERVERLIST_SUCCESS
@ MSG_NET_REFRESH_SERVERLIST_SUCCESS
Payload = GUI::MpServerInfoVec* (owner)
Definition: Application.h:106
RoR::App::mp_state
CVar * mp_state
Definition: Application.cpp:115
RoR::MSG_GUI_DOWNLOAD_FINISHED
@ MSG_GUI_DOWNLOAD_FINISHED
Definition: Application.h:141
RoR::GameContext::UpdateGlobalInputEvents
void UpdateGlobalInputEvents()
Definition: GameContext.cpp:919
RoR::ForceFeedback::Update
void Update()
Reads data from simulation.
Definition: ForceFeedback.cpp:105
RoR::LoadScriptRequest::lsr_category
ScriptCategory lsr_category
Definition: ScriptEngine.h:94
RoR::MSG_NET_FETCH_AI_PRESETS_FAILURE
@ MSG_NET_FETCH_AI_PRESETS_FAILURE
Description = message.
Definition: Application.h:112
RoR::App::CreateGuiManager
void CreateGuiManager()
Definition: Application.cpp:296
RoR::SceneMouse::InitializeVisuals
void InitializeVisuals()
Definition: SceneMouse.cpp:50
RoR::App::CreateGfxScene
void CreateGfxScene()
Definition: Application.cpp:328
RoR::GUI::MultiplayerSelector::IsVisible
bool IsVisible() const
Definition: GUI_MultiplayerSelector.h:63
RoR::CharacterFactory::Update
void Update(float dt)
Definition: CharacterFactory.cpp:80
RoR::GameContext::ChainMessage
void ChainMessage(Message m)
Add to last pushed message's chain.
Definition: GameContext.cpp:72
RoR::GameContext::GetSceneMouse
SceneMouse & GetSceneMouse()
Definition: GameContext.h:170
RoR::InputEngine::Capture
void Capture()
Definition: InputEngine.cpp:628
RoR::CmdKeyInertiaConfig::LoadDefaultInertiaModels
void LoadDefaultInertiaModels()
Definition: CmdKeyInertia.cpp:138
RoR::GUIManager::MultiplayerSelector
GUI::MultiplayerSelector MultiplayerSelector
Definition: GUIManager.h:110
RoR::Str< 400 >
RoR::Collisions::getGroundModelByString
ground_model_t * getGroundModelByString(const Ogre::String name)
Definition: Collisions.cpp:365
RoR::ActorManager::RemoveFreeForce
void RemoveFreeForce(FreeForceID_t id)
Definition: ActorManager.cpp:1649
RoR::GUI::RepositorySelector::SetVisible
void SetVisible(bool visible)
Definition: GUI_RepositorySelector.cpp:1238
RoR::GUIManager::MenuWallpaper
Ogre::Overlay * MenuWallpaper
Definition: GUIManager.h:125
RoR::ActorModifyRequest
Definition: SimData.h:870
RoR::GameContext::PopMessage
Message PopMessage()
Definition: GameContext.cpp:95
RoR::ScriptEngine::unloadScript
void unloadScript(ScriptUnitId_t unique_id)
Unloads a script.
Definition: ScriptEngine.cpp:964
RoR::App::io_outgauge_mode
CVar * io_outgauge_mode
Definition: Application.cpp:200
RoR::ScriptUnit::scriptName
Ogre::String scriptName
Definition: ScriptEngine.h:83
RoR::PathCombine
std::string PathCombine(std::string a, std::string b)
Definition: PlatformUtils.h:48
RoR::MSG_SIM_SEAT_PLAYER_REQUESTED
@ MSG_SIM_SEAT_PLAYER_REQUESTED
Payload = RoR::ActorPtr (owner) | nullptr.
Definition: Application.h:122
RoR::GfxScene::RegisterGfxActor
void RegisterGfxActor(RoR::GfxActor *gfx_actor)
Definition: GfxScene.cpp:276
GUI_LoadingWindow.h
CacheSystem.h
A database of user-installed content alias 'mods' (vehicles, terrains...)
RoR::MODCACHEACTIVITY_BUNDLE_UNLOADED
@ MODCACHEACTIVITY_BUNDLE_UNLOADED
Args: #1 type, #2 entry number.
Definition: ScriptEvents.h:98
RoR::App::gfx_fps_limit
CVar * gfx_fps_limit
Definition: Application.cpp:244
RoR::MSG_APP_MODCACHE_PURGE_REQUESTED
@ MSG_APP_MODCACHE_PURGE_REQUESTED
Definition: Application.h:91
RoR::ActorManager::HandleActorStreamData
void HandleActorStreamData(std::vector< RoR::NetRecvPacket > packet)
Definition: ActorManager.cpp:359
RoR::ContentManager::ResourcePack::FLAGS
static const ResourcePack FLAGS
Definition: ContentManager.h:55
ErrorUtils.h
RoR::GameContext::ChangePlayerActor
void ChangePlayerActor(ActorPtr actor)
Definition: GameContext.cpp:467
GUI_MainSelector.h
RoR::GUI::RepositorySelector::IsVisible
bool IsVisible() const
Definition: GUI_RepositorySelector.h:97
RoR::GUIManager::CollisionsDebug
GUI::CollisionsDebug CollisionsDebug
Definition: GUIManager.h:103
RoR::MSG_GUI_MP_CLIENTS_REFRESH
@ MSG_GUI_MP_CLIENTS_REFRESH
Definition: Application.h:137
RoR::ContentManager::ResourcePack::SCRIPTS
static const ResourcePack SCRIPTS
Definition: ContentManager.h:68
ScriptEngine.h
RoR::GameContext::DeleteActor
void DeleteActor(ActorPtr actor)
Definition: GameContext.cpp:418
RoR::App::sys_thumbnails_dir
CVar * sys_thumbnails_dir
Definition: Application.cpp:166
RoR::ScriptUnit::scriptCategory
ScriptCategory scriptCategory
Definition: ScriptEngine.h:75
RoR::MODCACHEACTIVITY_BUNDLE_RELOADED
@ MODCACHEACTIVITY_BUNDLE_RELOADED
Args: #1 type, #2 entry number, –, –, #5 rg name.
Definition: ScriptEvents.h:97
RoR::GameContext::PushMessage
void PushMessage(Message m)
Doesn't guarantee order! Use ChainMessage() if order matters.
Definition: GameContext.cpp:65
RoR::App::app_state
CVar * app_state
Definition: Application.cpp:79
RoR::ScriptUnitId_t
int ScriptUnitId_t
Unique sequentially generated ID of a loaded and running scriptin session. Use ScriptEngine::getScrip...
Definition: ForwardDeclarations.h:40
ChatSystem.h
RoR::Str::ToCStr
const char * ToCStr() const
Definition: Str.h:46
RoR::GUIManager::DrawSimulationGui
void DrawSimulationGui(float dt)
Touches live data; must be called in sync with sim. thread.
Definition: GUIManager.cpp:129
RoR::GUI::RepositorySelector::DownloadFinished
void DownloadFinished()
Definition: GUI_RepositorySelector.cpp:1221
RoR::GUI::ResourcesCollection
Definition: GUI_RepositorySelector.h:79
RoR::Console::saveConfig
void saveConfig()
Definition: AppConfig.cpp:407
RoR::App::sim_terrain_name
CVar * sim_terrain_name
Definition: Application.cpp:97
RoR::CameraManager::ResetAllBehaviors
void ResetAllBehaviors()
Definition: CameraManager.cpp:529
RoR::App::DestroyOverlayWrapper
void DestroyOverlayWrapper()
Definition: Application.cpp:351
RoR::FreeForceID_t
int FreeForceID_t
Unique sequentially generated ID of FreeForce; use ActorManager::GetFreeForceNextId().
Definition: ForwardDeclarations.h:65
RoR::GUI::LoadingWindow::SetVisible
void SetVisible(bool v)
Definition: GUI_LoadingWindow.h:41
RoR::Terrain::GetCollisions
Collisions * GetCollisions()
Definition: Terrain.h:83
RoR::GUI::LoadingWindow::SetProgress
void SetProgress(int _percent, const std::string &_text="", bool render_frame=true)
Definition: GUI_LoadingWindow.cpp:33
RoR::GameContext::GetCharacterFactory
CharacterFactory * GetCharacterFactory()
Definition: GameContext.h:150
RoR::ScriptEngine::envokeCallback
void envokeCallback(int functionId, eventsource_t *source, NodeNum_t nodenum=NODENUM_INVALID, int type=0)
Definition: ScriptEngine.cpp:443
RoR::App::sys_cache_dir
CVar * sys_cache_dir
Definition: Application.cpp:165
RoR::CreateFolder
void CreateFolder(const char *path)
Path must be UTF-8 encoded.
Definition: PlatformUtils.cpp:175
RoR::Actor::hookToggle
void hookToggle(int group=-1, ActorLinkingRequestType mode=ActorLinkingRequestType::HOOK_TOGGLE, NodeNum_t mousenode=NODENUM_INVALID, ActorInstanceID_t forceunlock_filter=ACTORINSTANCEID_INVALID)
Definition: Actor.cpp:3624
GfxScene.h
RoR::GUI::TopMenubar::ai_presets_extern_fetching
bool ai_presets_extern_fetching
True if the (down)load of 'extern' waypoints is in progress.
Definition: GUI_TopMenubar.h:106
PlatformUtils.h
Platform-specific utilities. We use narrow UTF-8 encoded strings as paths. Inspired by http://utf8eve...
RoR::MSG_NET_REFRESH_REPOLIST_FAILURE
@ MSG_NET_REFRESH_REPOLIST_FAILURE
Payload = RoR::CurlFailInfo* (owner)
Definition: Application.h:110
RoR::ChatSystem::SendStreamSetup
void SendStreamSetup()
Definition: ChatSystem.cpp:35
RoR::MSG_GUI_OPEN_SELECTOR_REQUESTED
@ MSG_GUI_OPEN_SELECTOR_REQUESTED
Payload = LoaderType* (owner), Description = GUID | empty.
Definition: Application.h:135
RoR::App::cli_custom_scripts
CVar * cli_custom_scripts
Definition: Application.cpp:186
SOUND_START
#define SOUND_START(_ACTOR_, _TRIG_)
Definition: SoundScriptManager.h:35
RoR::CacheValidity::UNKNOWN
@ UNKNOWN
RoR::MSG_SIM_HIDE_NET_ACTOR_REQUESTED
@ MSG_SIM_HIDE_NET_ACTOR_REQUESTED
Payload = ActorPtr* (owner)
Definition: Application.h:124
RoR::SoundScriptManager::createInstance
SoundScriptInstancePtr createInstance(Ogre::String templatename, int actor_id, int soundLinkType=SL_DEFAULT, int soundLinkItemId=-1)
Definition: SoundScriptManager.cpp:356
RoR::LoaderType
LoaderType
< Search mode for ModCache::Query() & Operation mode for GUI::MainSelector
Definition: Application.h:289
RoR::MSG_GUI_REFRESH_TUNING_MENU_REQUESTED
@ MSG_GUI_REFRESH_TUNING_MENU_REQUESTED
Definition: Application.h:142
RoR::ActorLinkingRequest::alr_rope_group
int alr_rope_group
Definition: SimData.h:927
RoR::MSG_SIM_ADD_FREEFORCE_REQUESTED
@ MSG_SIM_ADD_FREEFORCE_REQUESTED
Payload = RoR::FreeForceRequest* (owner)
Definition: Application.h:129
RoR::LoadScriptRequest::lsr_associated_actor
ActorInstanceID_t lsr_associated_actor
For ScriptCategory::ACTOR.
Definition: ScriptEngine.h:95
DiscordRpc.h
RoR::SimState::PAUSED
@ PAUSED
Application.h
Central state/object manager and communications hub.
RoR::App::GetConsole
Console * GetConsole()
Definition: Application.cpp:270
RoR::MSG_NET_OPEN_RESOURCE_SUCCESS
@ MSG_NET_OPEN_RESOURCE_SUCCESS
Payload = GUI::ResourcesCollection* (owner)
Definition: Application.h:109
SoundScriptManager.h
RoR::MSG_APP_MODCACHE_LOAD_REQUESTED
@ MSG_APP_MODCACHE_LOAD_REQUESTED
Definition: Application.h:89
RoR::Message::payload
void * payload
Definition: GameContext.h:59
RoR::App::GetGameContext
GameContext * GetGameContext()
Definition: Application.cpp:280
RoR::App::CreateThreadPool
void CreateThreadPool()
Definition: Application.cpp:316
RoR::ground_model_t::name
char name[256]
Definition: SimData.h:763
RoR::ScriptCallbackArgs
Definition: ScriptEngine.h:98
RoR::MSG_APP_SCREENSHOT_REQUESTED
@ MSG_APP_SCREENSHOT_REQUESTED
Definition: Application.h:86
RoR::App::gfx_fov_internal_default
CVar * gfx_fov_internal_default
Definition: Application.cpp:241
RoR::ContentManager::ResourcePack::ICONS
static const ResourcePack ICONS
Definition: ContentManager.h:58
RoR::AIRPLANE
@ AIRPLANE
its an airplane
Definition: SimData.h:94
RoR::GUI::RepositorySelector::UpdateResources
void UpdateResources(ResourcesCollection *data)
Definition: GUI_RepositorySelector.cpp:1166
RoR::MSG_NET_REFRESH_REPOLIST_SUCCESS
@ MSG_NET_REFRESH_REPOLIST_SUCCESS
Payload = GUI::ResourcesCollection* (owner)
Definition: Application.h:108
RoR::AppState::SIMULATION
@ SIMULATION
RoR::Message::chain
std::vector< Message > chain
Posted after the message is processed.
Definition: GameContext.h:60
RoR::ActorSB::simbuf_actor_state
ActorState simbuf_actor_state
Definition: SimBuffers.h:115
RoR::ScriptEngine::triggerEvent
void triggerEvent(scriptEvents eventnum, int arg1=0, int arg2ex=0, int arg3ex=0, int arg4ex=0, std::string arg5ex="", std::string arg6ex="", std::string arg7ex="", std::string arg8ex="")
triggers an event; Not to be used by the end-user.
Definition: ScriptEngine.cpp:712
RoRVersion.h
RoR::GUI::TopMenubar::RefreshTuningMenu
void RefreshTuningMenu()
Definition: GUI_TopMenubar.cpp:2433
RoR::eventsource_t::es_script_handler
int es_script_handler
AngelScript function ID.
Definition: Collisions.h:45
RoR::LoadScriptRequest
Definition: ScriptEngine.h:90
RoR::GUI::GameMainMenu::SetVisible
void SetVisible(bool v)
Definition: GUI_GameMainMenu.h:43
RoR::AppContext::CaptureScreenshot
void CaptureScreenshot()
Definition: AppContext.cpp:391
RoR::CharacterFactory::DeleteAllCharacters
void DeleteAllCharacters()
Definition: CharacterFactory.cpp:101
RoR::AppState::SHUTDOWN
@ SHUTDOWN
RoR::App::gfx_sky_mode
CVar * gfx_sky_mode
Definition: Application.cpp:219
RoR::TerrainEditor::WriteOutputFile
void WriteOutputFile()
Definition: TerrainEditor.cpp:252
RoR::ScriptEventArgs::arg7ex
std::string arg7ex
Definition: ScriptEvents.h:114
RoR::MSG_SIM_TELEPORT_PLAYER_REQUESTED
@ MSG_SIM_TELEPORT_PLAYER_REQUESTED
Payload = Ogre::Vector3* (owner)
Definition: Application.h:123
RoR::Message::description
std::string description
Definition: GameContext.h:58
RoR::Actor::toggleSlideNodeLock
void toggleSlideNodeLock()
Definition: ActorSlideNode.cpp:34
RoR::App::CreateOverlayWrapper
void CreateOverlayWrapper()
Definition: Application.cpp:290
_LC
#define _LC(ctx, str)
Definition: Language.h:42
RoR::GUIManager::TopMenubar
GUI::TopMenubar TopMenubar
Definition: GUIManager.h:120
RoR::GUIManager::SetUpMenuWallpaper
void SetUpMenuWallpaper()
Definition: GUIManager.cpp:212
RoR::GUI::TopMenubar::RefreshAiPresets
void RefreshAiPresets()
Refresh the list of presets, used for display. Needs to be called when terrain is loaded.
Definition: GUI_TopMenubar.cpp:2412
RoR::AppState::PRINT_HELP_EXIT
@ PRINT_HELP_EXIT
RoR::CacheSystem::CreateProject
CacheEntryPtr CreateProject(CreateProjectRequest *request)
Creates subdirectory in 'My Games\Rigs of Rods\projects', pre-populates it with files and adds modcac...
Definition: CacheSystem.cpp:1669
RoR::MSG_EDI_ENTER_TERRN_EDITOR_REQUESTED
@ MSG_EDI_ENTER_TERRN_EDITOR_REQUESTED
Definition: Application.h:145
RoR::MSG_EDI_LOAD_BUNDLE_REQUESTED
@ MSG_EDI_LOAD_BUNDLE_REQUESTED
Payload = RoR::CacheEntryPtr* (owner)
Definition: Application.h:147
RoR::GUIManager::SetMouseCursorVisibility
void SetMouseCursorVisibility(MouseCursorVisibility visi)
Definition: GUIManager.cpp:265
RoR::App::cli_server_port
CVar * cli_server_port
Definition: Application.cpp:177
RoR::App::sys_config_dir
CVar * sys_config_dir
Definition: Application.cpp:164
RoR::ChatSystem::HandleStreamData
void HandleStreamData(std::vector< RoR::NetRecvPacket > packet_buffer)
Definition: ChatSystem.cpp:64
RoR::AppContext::SetUpLogging
void SetUpLogging()
Definition: AppContext.cpp:504
RoR::ModifyProjectRequest
Definition: CacheSystem.h:265
RoR::MSG_NET_CONNECT_SUCCESS
@ MSG_NET_CONNECT_SUCCESS
Definition: Application.h:100
RoR::CreateProjectRequest
Creates subdirectory in 'My Games\Rigs of Rods\projects', pre-populates it with files and adds modcac...
Definition: CacheSystem.h:219
RoR::LT_Terrain
@ LT_Terrain
Definition: Application.h:292
RoR::ScriptEventArgs::arg5ex
std::string arg5ex
Definition: ScriptEvents.h:112
RoR::App::cli_preset_terrain
CVar * cli_preset_terrain
Definition: Application.cpp:180
RoR::AppContext::SetUpThreads
void SetUpThreads()
Definition: AppContext.cpp:614
RoR::App::GetDiscordRpc
DiscordRpc * GetDiscordRpc()
Definition: Application.cpp:282
GUI_RepositorySelector.h
RoR::GUI::FrictionSettings::setActiveCol
void setActiveCol(const ground_model_t *gm)
Definition: GUI_FrictionSettings.h:56
RoR::MSG_NET_FETCH_AI_PRESETS_SUCCESS
@ MSG_NET_FETCH_AI_PRESETS_SUCCESS
Description = JSON string.
Definition: Application.h:111
RoR::AppContext::ActivateFullscreen
void ActivateFullscreen(bool val)
Definition: AppContext.cpp:438
Skidmark.h
RoR::AppContext::SetUpObsoleteConfMarker
void SetUpObsoleteConfMarker()
Definition: AppContext.cpp:582
RoR::App::GetCacheSystem
CacheSystem * GetCacheSystem()
Definition: Application.cpp:272
RoR::ContentManager::AddResourcePack
void AddResourcePack(ResourcePack const &resource_pack, std::string const &override_rgn="")
Loads resources if not already loaded.
Definition: ContentManager.cpp:98
RoR::CacheValidity::NEEDS_REBUILD
@ NEEDS_REBUILD
RoR::GameContext::UpdateAirplaneInputEvents
void UpdateAirplaneInputEvents(float dt)
Definition: GameContext.cpp:1538
RoR::GUI::MpServerInfoVec
std::vector< MpServerInfo > MpServerInfoVec
Definition: GUI_MultiplayerSelector.h:52
RoR::CacheValidity::NEEDS_UPDATE
@ NEEDS_UPDATE
RoR::App::audio_menu_music
CVar * audio_menu_music
Definition: Application.cpp:212
RoR::FreeForceRequest
Common for ADD and MODIFY requests; tailored for use with AngelScript thru GameScript::pushMessage().
Definition: SimData.h:804
RoR::App::diag_preset_veh_config
CVar * diag_preset_veh_config
Definition: Application.cpp:144
RoR::ActorLinkingRequest::alr_tie_group
int alr_tie_group
Definition: SimData.h:925
RoR::OutGauge::Close
void Close()
Definition: OutGauge.cpp:43
RoR::GfxActor::SetCastShadows
void SetCastShadows(bool value)
Definition: GfxActor.cpp:3257
RoR::Console::showCommandLineVersion
void showCommandLineVersion()
Definition: AppCommandLine.cpp:181
RoR::GUI::MessageBoxConfig
Definition: GUI_MessageBox.h:50
RoR::ContentManager::ResourcePack::OGRE_CORE
static const ResourcePack OGRE_CORE
Definition: ContentManager.h:47
RoR::App::mp_server_port
CVar * mp_server_port
Definition: Application.cpp:122
RoR::ScriptCallbackArgs::eventsource
eventsource_t * eventsource
Definition: ScriptEngine.h:102
RoR::MSG_EDI_DELETE_PROJECT_REQUESTED
@ MSG_EDI_DELETE_PROJECT_REQUESTED
Payload = RoR::CacheEntryPtr* (owner)
Definition: Application.h:152
RoR::CacheSystem::LoadResource
void LoadResource(CacheEntryPtr &t)
Loads the associated resource bundle if not already done.
Definition: CacheSystem.cpp:1434
RoR::MSG_SIM_ACTOR_LINKING_REQUESTED
@ MSG_SIM_ACTOR_LINKING_REQUESTED
Payload = RoR::ActorLinkingRequest* (owner)
Definition: Application.h:128
RoR::Message
Unified game event system - all requests and state changes are reported using a message.
Definition: GameContext.h:51
RoR::Console::loadConfig
void loadConfig()
Definition: AppConfig.cpp:342
RoR::App::mp_server_host
CVar * mp_server_host
Definition: Application.cpp:121
RoR::ScriptEventArgs::arg8ex
std::string arg8ex
Definition: ScriptEvents.h:115
RoR::ContentManager::LoadGameplayResources
void LoadGameplayResources()
Checks GVar settings and loads required resources.
Definition: ContentManager.cpp:399
RoR::Actor::setSmokeEnabled
void setSmokeEnabled(bool enabled)
Writes info to console/notify area.
Definition: Actor.h:163
RoR::GameContext::UnloadTerrain
void UnloadTerrain()
Definition: GameContext.cpp:176
RoR::CVar::setVal
void setVal(T val)
Definition: CVar.h:72
_L
#define _L
Definition: ErrorUtils.cpp:34
RoR::MSG_GUI_OPEN_MENU_REQUESTED
@ MSG_GUI_OPEN_MENU_REQUESTED
Definition: Application.h:133
RoR::GameContext::LoadScene
void LoadScene(std::string const &filename)
Matching terrain must be already loaded.
Definition: Savegame.cpp:63
RoR::ContentManager::InitModCache
void InitModCache(CacheValidity validity)
Definition: ContentManager.cpp:248
OutGauge.h
RoR::Actor::tieToggle
void tieToggle(int group=-1, ActorLinkingRequestType mode=ActorLinkingRequestType::TIE_TOGGLE, ActorInstanceID_t forceunlock_filter=ACTORINSTANCEID_INVALID)
Definition: Actor.cpp:3430
RoR::GUI::MpClientList::UpdateClients
void UpdateClients()
Definition: GUI_MultiplayerClientList.cpp:45
RoR::Actor::ropeToggle
void ropeToggle(int group=-1, ActorLinkingRequestType mode=ActorLinkingRequestType::ROPE_TOGGLE, ActorInstanceID_t forceunlock_filter=ACTORINSTANCEID_INVALID)
Definition: Actor.cpp:3547
RoR::GUIManager::ShowMessageBox
void ShowMessageBox(const char *title, const char *text, bool allow_close=true, const char *btn1_text="OK", const char *btn2_text=nullptr)
Definition: GUIManager.cpp:429
RoR::ScriptEventArgs::type
scriptEvents type
Definition: ScriptEvents.h:106
RoR::ActorManager::UpdateInputEvents
void UpdateInputEvents(float dt)
Definition: ActorManager.cpp:1354
RoR::Console::regBuiltinCommands
void regBuiltinCommands()
Register builtin commands.
Definition: ConsoleCmd.cpp:650
RoR::GUIManager::GameAbout
GUI::GameAbout GameAbout
Definition: GUIManager.h:105
RoR::MSG_EDI_LEAVE_TERRN_EDITOR_REQUESTED
@ MSG_EDI_LEAVE_TERRN_EDITOR_REQUESTED
Definition: Application.h:146
RoR::GUI::CollisionsDebug::CleanUp
void CleanUp()
Definition: GUI_CollisionsDebug.cpp:396
RoR::App::sys_projects_dir
CVar * sys_projects_dir
Definition: Application.cpp:173
RoR::MSG_SIM_SPAWN_ACTOR_REQUESTED
@ MSG_SIM_SPAWN_ACTOR_REQUESTED
Payload = RoR::ActorSpawnRequest* (owner)
Definition: Application.h:119
RoR::MSG_APP_MODCACHE_UPDATE_REQUESTED
@ MSG_APP_MODCACHE_UPDATE_REQUESTED
Definition: Application.h:90
RoR::App::GetInputEngine
InputEngine * GetInputEngine()
Definition: Application.cpp:271
RoR::ActorManager::ModifyFreeForce
void ModifyFreeForce(FreeForceRequest *rq)
Definition: ActorManager.cpp:1632
RoR::CacheSystem::ReLoadResource
void ReLoadResource(CacheEntryPtr &t)
Forces reloading the associated bundle.
Definition: CacheSystem.cpp:1520
RoR::App::cli_preset_veh_config
CVar * cli_preset_veh_config
Definition: Application.cpp:179
RoR::ground_model_t
Surface friction properties.
Definition: SimData.h:739
RoR::ScriptEventArgs::arg2ex
int arg2ex
Definition: ScriptEvents.h:109
RoR::EV_COMMON_ENTER_CHATMODE
@ EV_COMMON_ENTER_CHATMODE
enter the chat mode
Definition: InputEngine.h:228
RoR::ActorPtr
RefCountingObjectPtr< Actor > ActorPtr
Definition: ForwardDeclarations.h:194
RoR::GUI::GameAbout::IsVisible
bool IsVisible() const
Definition: GUI_GameAbout.h:35
RoR::ActorLinkingRequest::alr_actor_instance_id
ActorInstanceID_t alr_actor_instance_id
Definition: SimData.h:919
RoR::MSG_NET_CONNECT_FAILURE
@ MSG_NET_CONNECT_FAILURE
Definition: Application.h:101
RoR::GUI::MainSelector::Close
void Close()
Definition: GUI_MainSelector.cpp:592
RoR::MSG_SIM_DELETE_ACTOR_REQUESTED
@ MSG_SIM_DELETE_ACTOR_REQUESTED
Payload = RoR::ActorPtr* (owner)
Definition: Application.h:121
RoR::GameContext::UpdateSimInputEvents
void UpdateSimInputEvents(float dt)
Definition: GameContext.cpp:1034
RoR::GameContext::UpdateBoatInputEvents
void UpdateBoatInputEvents(float dt)
Definition: GameContext.cpp:1726
RoR::DiscordRpc::Init
void Init()
Definition: DiscordRpc.cpp:44
RoR::GUI::TopMenubar::ai_presets_extern_error
std::string ai_presets_extern_error
Error message from the (down)load of 'extern' waypoints.
Definition: GUI_TopMenubar.h:107
RoR::MSG_APP_SCRIPT_THREAD_STATUS
@ MSG_APP_SCRIPT_THREAD_STATUS
Payload = RoR::ScriptEventArgs* (owner)
Definition: Application.h:94
RoR::App::GetOutGauge
OutGauge * GetOutGauge()
Definition: Application.cpp:281
RoR::App::gfx_fov_external
CVar * gfx_fov_external
Definition: Application.cpp:238
RoR::MSG_EDI_MODIFY_GROUNDMODEL_REQUESTED
@ MSG_EDI_MODIFY_GROUNDMODEL_REQUESTED
Payload = RoR::ground_model_t* (weak)
Definition: Application.h:144
RoR::AppContext::GetOgreRoot
Ogre::Root * GetOgreRoot()
Definition: AppContext.h:65
Terrain.h
RoR::App::DestroyInputEngine
void DestroyInputEngine()
Definition: Application.cpp:357
RoR::ActorLinkingRequest::alr_hook_mousenode
NodeNum_t alr_hook_mousenode
Definition: SimData.h:923
RoR::SimState::RUNNING
@ RUNNING
RoR::ActorState::NETWORKED_HIDDEN
@ NETWORKED_HIDDEN
not simulated, not updated (remote)
InputEngine.h
Handles controller inputs from player. Defines input events and binding mechanism,...
RoR::GameContext::SaveScene
void SaveScene(std::string const &filename)
Definition: Savegame.cpp:69
RoR::GUIManager::MainSelector
GUI::MainSelector MainSelector
Definition: GUIManager.h:111
RoR::Console::showCommandLineUsage
void showCommandLineUsage()
Definition: AppCommandLine.cpp:162
RoR::MSG_SIM_UNHIDE_NET_ACTOR_REQUESTED
@ MSG_SIM_UNHIDE_NET_ACTOR_REQUESTED
Payload = ActorPtr* (owner)
Definition: Application.h:125
RoR::ActorLinkingRequestType::SLIDENODE_TOGGLE
@ SLIDENODE_TOGGLE
RoR::MSG_APP_UNLOAD_SCRIPT_REQUESTED
@ MSG_APP_UNLOAD_SCRIPT_REQUESTED
Payload = RoR::ScriptUnitId_t* (owner)
Definition: Application.h:93
RoR::ActorManager::GetInertiaConfig
RoR::CmdKeyInertiaConfig & GetInertiaConfig()
Definition: ActorManager.h:97
RoR::OutGauge::Update
bool Update(float dt, ActorPtr truck)
Definition: OutGauge.cpp:103
RoR::App::diag_preset_terrain
CVar * diag_preset_terrain
Definition: Application.cpp:140
RoR::Console::CONSOLE_MSGTYPE_INFO
@ CONSOLE_MSGTYPE_INFO
Generic message.
Definition: Console.h:60
RoR::GameContext::SpawnPreselectedActor
void SpawnPreselectedActor(std::string const &preset_vehicle, std::string const &preset_veh_config)
needs Character to exist
Definition: GameContext.cpp:604
RoR::ASMANIP_SCRIPT_LOADED
@ ASMANIP_SCRIPT_LOADED
Triggered after the script's main() completed; may trigger additional processing (for example,...
Definition: ScriptEvents.h:75
RoR::App::sim_terrain_gui_name
CVar * sim_terrain_gui_name
Definition: Application.cpp:98
RoR::RepairMode::UpdateInputEvents
void UpdateInputEvents(float dt)
Definition: RepairMode.cpp:30
RoR::App::sys_screenshot_dir
CVar * sys_screenshot_dir
Definition: Application.cpp:171
RoR::App::app_custom_scripts
CVar * app_custom_scripts
Definition: Application.cpp:92
RoR::MSG_GUI_CLOSE_MENU_REQUESTED
@ MSG_GUI_CLOSE_MENU_REQUESTED
Definition: Application.h:134
RoR::MSG_NET_CONNECT_PROGRESS
@ MSG_NET_CONNECT_PROGRESS
Definition: Application.h:99
RoR::App::GetMumble
MumbleIntegration * GetMumble()
Definition: Application.cpp:273
Collisions.h
RoR::SoundScriptManager::update
void update(float dt_sec)
Definition: SoundScriptManager.cpp:308
RoR::GameContext::GetRepairMode
RepairMode & GetRepairMode()
Definition: GameContext.h:169
RoR::AppContext::SetUpInput
bool SetUpInput()
Definition: AppContext.cpp:62
ErrorUtils::ShowError
static int ShowError(Ogre::UTFString title, Ogre::UTFString message)
shows a simple error message box
Definition: ErrorUtils.cpp:43
GUI_GameControls.h
RoR::MSG_SIM_MODIFY_FREEFORCE_REQUESTED
@ MSG_SIM_MODIFY_FREEFORCE_REQUESTED
Payload = RoR::FreeForceRequest* (owner)
Definition: Application.h:130
RoR::GfxActor::SetAllMeshesVisible
void SetAllMeshesVisible(bool value)
Definition: GfxActor.cpp:3300
RoR::ScriptCallbackArgs::node
NodeNum_t node
Definition: ScriptEngine.h:103
RoR::MSG_SIM_PAUSE_REQUESTED
@ MSG_SIM_PAUSE_REQUESTED
Definition: Application.h:114
RoR::BOAT
@ BOAT
its a boat
Definition: SimData.h:95
RoR::ActorState::NETWORKED_OK
@ NETWORKED_OK
not simulated (remote) actor
RoR::ScriptEventArgs::arg6ex
std::string arg6ex
Definition: ScriptEvents.h:113
MumbleIntegration.h
WinMain
INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)
Definition: main.cpp:1810
RoR::ActorLinkingRequestType::TIE_TOGGLE
@ TIE_TOGGLE
RoR::Actor::ar_state
ActorState ar_state
Definition: Actor.h:446
RoR::GUIManager::DrawMainMenuGui
void DrawMainMenuGui()
Definition: GUIManager.cpp:389
RoR::GUI::RepositorySelector::ShowError
void ShowError(CurlFailInfo *failinfo)
Definition: GUI_RepositorySelector.cpp:1226
RoR::GUIManager::MouseCursorVisibility::HIDDEN
@ HIDDEN
Hidden as inactive, will re-appear the moment user moves mouse.
RoR::GameContext::UpdateTruckInputEvents
void UpdateTruckInputEvents(float dt)
Definition: GameContext.cpp:1786
RoR::GUIManager::UpdateInputEvents
void UpdateInputEvents(float dt)
Definition: GUIManager.cpp:458
SOUND_KILL
#define SOUND_KILL(_ACTOR_, _TRIG_)
Definition: SoundScriptManager.h:38
RoR::ScriptEngine::getScriptUnit
ScriptUnit & getScriptUnit(ScriptUnitId_t unique_id)
Definition: ScriptEngine.cpp:1000
RoR::MSG_SIM_LOAD_SAVEGAME_REQUESTED
@ MSG_SIM_LOAD_SAVEGAME_REQUESTED
Definition: Application.h:117
RoR::MODCACHEACTIVITY_BUNDLE_LOADED
@ MODCACHEACTIVITY_BUNDLE_LOADED
Args: #1 type, #2 entry number, –, –, #5 rg name.
Definition: ScriptEvents.h:96
RoR::GfxActor::GetSimDataBuffer
ActorSB & GetSimDataBuffer()
Definition: GfxActor.h:119
RoR
Definition: AppContext.h:36
RoR::ActorManager::GetActorById
const ActorPtr & GetActorById(ActorInstanceID_t actor_id)
Definition: ActorManager.cpp:1146
RoR::ContentManager::ResourcePack::FONTS
static const ResourcePack FONTS
Definition: ContentManager.h:56
RoR::Log
void Log(const char *msg)
The ultimate, application-wide logging function. Adds a line (any length) in 'RoR....
Definition: Application.cpp:419
RoR::ActorLinkingRequestType::HOOK_LOCK
@ HOOK_LOCK
RoR::App::app_force_cache_purge
CVar * app_force_cache_purge
Definition: Application.cpp:88
RoR::ScriptCategory::CUSTOM
@ CUSTOM
Loaded by user via either: A) ingame console 'loadscript'; B) RoR.cfg 'app_custom_scripts'; C) comman...
RoR::ActorManager::CleanUpSimulation
void CleanUpSimulation()
Call this after simulation loop finishes.
Definition: ActorManager.cpp:872
RoR::App::GetGfxScene
GfxScene * GetGfxScene()
Definition: Application.cpp:276
RoR::GameContext::GetActorManager
ActorManager * GetActorManager()
Definition: GameContext.h:127
RoR::CVar::setStr
void setStr(std::string const &str)
Definition: CVar.h:83
RoR::SE_ANGELSCRIPT_THREAD_STATUS
@ SE_ANGELSCRIPT_THREAD_STATUS
Sent by background threads (i.e. CURL) when there's something important (like finishing a download)....
Definition: ScriptEvents.h:58
RoR::GUIManager::GameMainMenu
GUI::GameMainMenu GameMainMenu
Definition: GUIManager.h:104
RoR::MSG_APP_SHUTDOWN_REQUESTED
@ MSG_APP_SHUTDOWN_REQUESTED
Definition: Application.h:85
RoR::FileExists
bool FileExists(const char *path)
Path must be UTF-8 encoded.
Definition: PlatformUtils.cpp:163
main
int main(int argc, char *argv[])
Definition: main.cpp:73
RoR::ScriptEventArgs::arg1
int arg1
Definition: ScriptEvents.h:107
RoR::MSG_NET_DISCONNECT_REQUESTED
@ MSG_NET_DISCONNECT_REQUESTED
Definition: Application.h:103
RoR::Console::processCommandLine
void processCommandLine(int argc, char *argv[])
Definition: AppCommandLine.cpp:71
RoR::LanguageEngine::setup
void setup()
Definition: Language.cpp:48
RoR::GUIManager::MouseCursorVisibility::VISIBLE
@ VISIBLE
Visible, will be auto-hidden if not moving for a while.
RoR::GameContext::CreatePlayerCharacter
void CreatePlayerCharacter()
Terrain must be loaded.
Definition: GameContext.cpp:820
RoR::GameContext::UpdateSkyInputEvents
void UpdateSkyInputEvents(float dt)
Definition: GameContext.cpp:1192
RoR::ScriptEventArgs::arg3ex
int arg3ex
Definition: ScriptEvents.h:110
RoR::GameContext::GetTerrain
const TerrainPtr & GetTerrain()
Definition: GameContext.h:117
RoR::MSG_SIM_SCRIPT_EVENT_TRIGGERED
@ MSG_SIM_SCRIPT_EVENT_TRIGGERED
Payload = RoR::ScriptEventArgs* (owner)
Definition: Application.h:126
RoR::OutGauge::Connect
void Connect()
Definition: OutGauge.cpp:58
RoR::Message::type
MsgType type
Definition: GameContext.h:57
RoR::GameContext::HandleSavegameHotkeys
void HandleSavegameHotkeys()
Definition: Savegame.cpp:98
RoR::Network::StopConnecting
void StopConnecting()
Definition: Network.cpp:413
RoR::Actor::muteAllSounds
void muteAllSounds()
Definition: Actor.cpp:3811