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_SimActorStats.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 
517  // -- Network events --
518 
520  {
521 #if USE_SOCKETW
522  try
523  {
525  }
526  catch (...)
527  {
529  }
530 #endif
531  break;
532  }
533 
535  {
536 #if USE_SOCKETW
537  try
538  {
539  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
540  {
542  if (App::app_state->getEnum<AppState>() == AppState::MAIN_MENU)
543  {
544  App::GetGuiManager()->MainSelector.Close(); // We may get disconnected while still in map selection
546  }
547  }
548  }
549  catch (...)
550  {
552  }
553 #endif // USE_SOCKETW
554  break;
555  }
556 
557  case MSG_NET_SERVER_KICK:
558  {
559  try
560  {
564  App::GetGuiManager()->ShowMessageBox(_LC("Network", "Network disconnected"), m.description.c_str());
565  }
566  catch (...)
567  {
569  }
570  break;
571  }
572 
573  case MSG_NET_RECV_ERROR:
574  {
575  try
576  {
580  App::GetGuiManager()->ShowMessageBox(_L("Network fatal error: "), m.description.c_str());
581  }
582  catch (...)
583  {
585  }
586  break;
587  }
588 
590  {
591  try
592  {
596  }
597  catch (...)
598  {
600  }
601  break;
602  }
603 
605  {
606  try
607  {
609  }
610  catch (...)
611  {
613  }
614  break;
615  }
616 
618  {
619 #if USE_SOCKETW
620  try
621  {
626  if (!App::GetMumble())
627  {
629  }
630  if (App::GetNetwork()->GetTerrainName() != "any")
631  {
633  }
634  else
635  {
636  // Connected -> go directly to map selector
637  if (App::diag_preset_terrain->getStr().empty())
638  {
640  m.payload = reinterpret_cast<void*>(new LoaderType(LT_Terrain));
642  }
643  else
644  {
646  }
647  }
648  }
649  catch (...)
650  {
652  }
653 #endif // USE_SOCKETW
654  break;
655  }
656 
658  {
659 #if USE_SOCKETW
660  try
661  {
667  _LC("Network", "Multiplayer: connection failed"), m.description.c_str());
668  }
669  catch (...)
670  {
672  }
673 #endif // USE_SOCKETW
674  break;
675  }
676 
678  {
679  GUI::MpServerInfoVec* data = static_cast<GUI::MpServerInfoVec*>(m.payload);
680  try
681  {
683  }
684  catch (...)
685  {
687  }
688  delete data;
689  break;
690  }
691 
693  {
694  CurlFailInfo* failinfo = static_cast<CurlFailInfo*>(m.payload);
695  try
696  {
698  }
699  catch (...)
700  {
702  }
703  delete failinfo;
704  break;
705  }
706 
708  {
710  try
711  {
713  }
714  catch (...)
715  {
717  }
718  delete data;
719  break;
720  }
721 
723  {
725  try
726  {
728  }
729  catch (...)
730  {
732  }
733  delete data;
734  break;
735  }
736 
738  {
739  CurlFailInfo* failinfo = static_cast<CurlFailInfo*>(m.payload);
740  try
741  {
743  }
744  catch (...)
745  {
747  }
748  delete failinfo;
749  break;
750  }
751 
753  {
754  try
755  {
758  }
759  catch (...)
760  {
762  }
763  break;
764  }
765 
766  // -- Gameplay events --
767 
769  {
770  try
771  {
772  for (ActorPtr& actor: App::GetGameContext()->GetActorManager()->GetActors())
773  {
774  actor->muteAllSounds();
775  }
777  }
778  catch (...)
779  {
781  }
782  break;
783  }
784 
786  {
787  try
788  {
789  for (ActorPtr& actor: App::GetGameContext()->GetActorManager()->GetActors())
790  {
791  actor->unmuteAllSounds();
792  }
794  }
795  catch (...)
796  {
798  }
799  break;
800  }
801 
803  {
804  try
805  {
807  App::GetGuiManager()->LoadingWindow.SetProgress(5, _L("Loading resources"));
809 
810  if (App::GetGameContext()->LoadTerrain(m.description))
811  {
813  // Spawn preselected vehicle; commandline has precedence
814  if (App::cli_preset_vehicle->getStr() != "")
815  App::GetGameContext()->SpawnPreselectedActor(App::cli_preset_vehicle->getStr(), App::cli_preset_veh_config->getStr()); // Needs character for position
816  else if (App::diag_preset_vehicle->getStr() != "")
817  App::GetGameContext()->SpawnPreselectedActor(App::diag_preset_vehicle->getStr(), App::diag_preset_veh_config->getStr()); // Needs character for position
821  if (App::audio_menu_music->getBool())
822  {
824  }
825  if (App::gfx_sky_mode->getEnum<GfxSkyMode>() == GfxSkyMode::SANDSTORM)
826  {
827  App::GetGfxScene()->GetSceneManager()->setAmbientLight(Ogre::ColourValue(0.7f, 0.7f, 0.7f));
828  }
829  else
830  {
831  App::GetGfxScene()->GetSceneManager()->setAmbientLight(Ogre::ColourValue(0.3f, 0.3f, 0.3f));
832  }
842  #ifdef USE_SOCKETW
843  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
844  {
846  fmt::format(_LC("ChatBox", "Press {} to start chatting"),
847  App::GetInputEngine()->getEventCommandTrimmed(EV_COMMON_ENTER_CHATMODE)), "lightbulb.png");
848  }
849  #endif // USE_SOCKETW
850  if (App::io_outgauge_mode->getInt() > 0)
851  {
853  }
854  }
855  else
856  {
857  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
858  {
860  }
861  else
862  {
864  }
866  failed_m = true;
867  }
868  }
869  catch (...)
870  {
872  }
873  break;
874  }
875 
877  {
878  try
879  {
880  if (App::sim_state->getEnum<SimState>() == SimState::EDITOR_MODE)
881  {
883  }
884  App::GetGameContext()->SaveScene("autosave.sav");
902  App::GetOutGauge()->Close();
903  App::GetSoundScriptManager()->setCamera(/*position:*/Ogre::Vector3::ZERO, /*direction:*/Ogre::Vector3::ZERO, /*up:*/Ogre::Vector3::UNIT_Y, /*velocity:*/Ogre::Vector3::ZERO);
904  }
905  catch (...)
906  {
908  }
909  break;
910  }
911 
913  {
914  try
915  {
916  std::string terrn_filename = App::GetGameContext()->ExtractSceneTerrain(m.description);
917  if (terrn_filename == "")
918  {
919  Str<400> msg; msg << _L("Could not read savegame file") << "'" << m.description << "'";
921  if (App::app_state->getEnum<AppState>() == AppState::MAIN_MENU)
922  {
924  }
925  }
926  else if (terrn_filename == App::sim_terrain_name->getStr())
927  {
929  }
930  else if (terrn_filename != App::sim_terrain_name->getStr() && App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
931  {
932  Str<400> msg; msg << _L("Error while loading scene: Terrain mismatch");
934  }
935  else
936  {
937  if (App::sim_terrain_name->getStr() != "")
938  {
940  }
941 
942  RoR::LogFormat("[RoR|Savegame] Loading terrain '%s' ...", terrn_filename.c_str());
944  // Loading terrain may produce actor-spawn requests; the savegame-request must be posted after them.
946  }
947  }
948  catch (...)
949  {
951  }
952  break;
953  }
954 
956  {
957  ActorSpawnRequest* rq = static_cast<ActorSpawnRequest*>(m.payload);
958  try
959  {
960  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
961  {
963  }
964  }
965  catch (...)
966  {
968  }
969  delete rq;
970  break;
971  }
972 
974  {
975  ActorModifyRequest* rq = static_cast<ActorModifyRequest*>(m.payload);
976  try
977  {
978  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
979  {
981  }
982  }
983  catch (...)
984  {
986  }
987  delete rq;
988  break;
989  }
990 
992  {
993  ActorPtr* actor_ptr = static_cast<ActorPtr*>(m.payload);
994  try
995  {
996  ROR_ASSERT(actor_ptr);
997  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
998  {
999  App::GetGameContext()->DeleteActor(*actor_ptr);
1000  }
1001  }
1002  catch (...)
1003  {
1005  }
1006  delete actor_ptr;
1007  break;
1008  }
1009 
1011  {
1012  ActorPtr* actor_ptr = static_cast<ActorPtr*>(m.payload);
1013  try
1014  {
1015  ROR_ASSERT(actor_ptr); // Even if leaving vehicle, the pointer must be valid.
1016  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
1017  {
1018  App::GetGameContext()->ChangePlayerActor(*actor_ptr);
1019  }
1020  }
1021  catch (...)
1022  {
1024  }
1025  delete actor_ptr;
1026  break;
1027  }
1028 
1030  {
1031  Ogre::Vector3* pos = static_cast<Ogre::Vector3*>(m.payload);
1032  try
1033  {
1034  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
1035  {
1036  App::GetGameContext()->TeleportPlayer(pos->x, pos->z);
1037  }
1038  }
1039  catch (...)
1040  {
1042  }
1043  delete pos;
1044  break;
1045  }
1046 
1048  {
1049  ActorPtr* actor_ptr = static_cast<ActorPtr*>(m.payload);
1050  try
1051  {
1052  ROR_ASSERT(actor_ptr);
1053  if ((App::mp_state->getEnum<MpState>() == MpState::CONNECTED) &&
1054  ((*actor_ptr)->ar_state == ActorState::NETWORKED_OK))
1055  {
1056  ActorPtr actor = *actor_ptr;
1057  actor->ar_state = ActorState::NETWORKED_HIDDEN; // Stop net. updates
1058  App::GetGfxScene()->RemoveGfxActor(actor->GetGfxActor()); // Remove visuals (also stops updating SimBuffer)
1059  actor->GetGfxActor()->GetSimDataBuffer().simbuf_actor_state = ActorState::NETWORKED_HIDDEN; // Hack - manually propagate the new state to SimBuffer so Character can reflect it.
1060  actor->GetGfxActor()->SetAllMeshesVisible(false);
1061  actor->GetGfxActor()->SetCastShadows(false);
1062  actor->muteAllSounds(); // Stop sounds
1063  actor->forceAllFlaresOff();
1064  actor->setSmokeEnabled(false);
1065  }
1066  }
1067  catch (...)
1068  {
1070  }
1071  delete actor_ptr;
1072  break;
1073  }
1074 
1076  {
1077  ActorPtr* actor_ptr = static_cast<ActorPtr*>(m.payload);
1078  try
1079  {
1080  ROR_ASSERT(actor_ptr);
1081  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED &&
1082  ((*actor_ptr)->ar_state == ActorState::NETWORKED_HIDDEN))
1083  {
1084  ActorPtr actor = *actor_ptr;
1085  actor->ar_state = ActorState::NETWORKED_OK; // Resume net. updates
1086  App::GetGfxScene()->RegisterGfxActor(actor->GetGfxActor()); // Restore visuals (also resumes updating SimBuffer)
1087  actor->GetGfxActor()->SetAllMeshesVisible(true);
1088  actor->GetGfxActor()->SetCastShadows(true);
1089  actor->unmuteAllSounds(); // Unmute sounds
1090  actor->setSmokeEnabled(true);
1091  }
1092  }
1093  catch (...)
1094  {
1096  }
1097  delete actor_ptr;
1098  break;
1099  }
1100 
1102  {
1103  ScriptEventArgs* args = static_cast<ScriptEventArgs*>(m.payload);
1104  try
1105  {
1106  App::GetScriptEngine()->triggerEvent(args->type, args->arg1, args->arg2ex, args->arg3ex, args->arg4ex, args->arg5ex, args->arg6ex, args->arg7ex, args->arg8ex);
1107  }
1108  catch (...)
1109  {
1111  }
1112  delete args;
1113  break;
1114  }
1115 
1117  {
1118  ScriptCallbackArgs* args = static_cast<ScriptCallbackArgs*>(m.payload);
1119  try
1120  {
1122  }
1123  catch (...)
1124  {
1126  }
1127  delete args;
1128  break;
1129  }
1130 
1132  {
1133  // Estabilishing a physics linkage between 2 actors modifies a global linkage table
1134  // and triggers immediate update of every actor's linkage tables,
1135  // so it has to be done sequentially on main thread.
1136  // ---------------------------------------------------------------------------------
1137  ActorLinkingRequest* request = static_cast<ActorLinkingRequest*>(m.payload);
1138  try
1139  {
1141  if (actor)
1142  {
1143  switch (request->alr_type)
1144  {
1146  actor->hookToggle(request->alr_hook_group, request->alr_hook_action, request->alr_hook_mousenode);
1147  if (request->alr_hook_action == MOUSE_HOOK_TOGGLE)
1148  {
1150  }
1151  break;
1152 
1154  actor->tieToggle(request->alr_tie_group);
1155  break;
1156 
1158  actor->ropeToggle(request->alr_rope_group);
1159  break;
1160 
1162  actor->toggleSlideNodeLock();
1163  break;
1164  }
1165  }
1166  }
1167  catch (...)
1168  {
1170  }
1171  delete request;
1172  break;
1173  }
1174 
1175  // -- GUI events ---
1176 
1178  {
1179  try
1180  {
1182  }
1183  catch (...)
1184  {
1186  }
1187  break;
1188  }
1189 
1191  {
1192  try
1193  {
1195  }
1196  catch (...)
1197  {
1199  }
1200  break;
1201  }
1202 
1204  {
1205  LoaderType* type = static_cast<LoaderType*>(m.payload);
1206  try
1207  {
1209  }
1210  catch (...)
1211  {
1213  }
1214  delete type;
1215  break;
1216  }
1217 
1219  {
1220  try
1221  {
1223  }
1224  catch (...)
1225  {
1227  }
1228  break;
1229  }
1230 
1232  {
1233  try
1234  {
1236  }
1237  catch (...)
1238  {
1240  }
1241  break;
1242  }
1243 
1245  {
1246  GUI::MessageBoxConfig* conf = static_cast<GUI::MessageBoxConfig*>(m.payload);
1247  try
1248  {
1250  }
1251  catch (...)
1252  {
1254  }
1255  delete conf;
1256  break;
1257  }
1258 
1260  {
1261  int* percentage = static_cast<int*>(m.payload);
1262  try
1263  {
1265  App::GetGuiManager()->LoadingWindow.SetProgress(*percentage, m.description, false);
1266  }
1267  catch (...)
1268  {
1270  }
1271  delete percentage;
1272  break;
1273  }
1274 
1276  {
1277  try
1278  {
1282  }
1283  catch (...)
1284  {
1286  }
1287  break;
1288  }
1289 
1291  {
1293  break;
1294  }
1295 
1296  // -- Editing events --
1297 
1299  {
1300  try
1301  {
1302  ground_model_t* modified_gm = static_cast<ground_model_t*>(m.payload);
1304  *live_gm = *modified_gm; // Copy over
1305  //DO NOT `delete` the payload - it's a weak pointer, the data are owned by `RoR::Collisions`; See `enum MsgType` in file 'Application.h'.
1306  }
1307  catch (...)
1308  {
1310  }
1311  break;
1312  }
1313 
1315  {
1316  try
1317  {
1318  if (App::sim_state->getEnum<SimState>() != SimState::EDITOR_MODE)
1319  {
1322  _L("Entered terrain editing mode"));
1324  fmt::format(_L("Press {} or middle mouse click to select an object"),
1325  App::GetInputEngine()->getEventCommandTrimmed(EV_COMMON_ENTER_OR_EXIT_TRUCK)), "lightbulb.png");
1326  }
1327  }
1328  catch (...)
1329  {
1331  }
1332  break;
1333  }
1334 
1336  {
1337  try
1338  {
1339  if (App::sim_state->getEnum<SimState>() == SimState::EDITOR_MODE)
1340  {
1345  _L("Left terrain editing mode"));
1346  }
1347  }
1348  catch (...)
1349  {
1351  }
1352  break;
1353  }
1354 
1356  {
1357  CacheEntryPtr* entry_ptr = static_cast<CacheEntryPtr*>(m.payload);
1358  try
1359  {
1360  App::GetCacheSystem()->LoadResource(*entry_ptr);
1362  /*ints*/ MODCACHEACTIVITY_BUNDLE_LOADED, (*entry_ptr)->number, 0, 0,
1363  /*strings*/ (*entry_ptr)->resource_group);
1364  }
1365  catch (...)
1366  {
1368  }
1369  delete entry_ptr;
1370  break;
1371  }
1372 
1374  {
1375  // To reload the bundle, it's resource group must be destroyed and re-created. All actors using it must be deleted.
1376  CacheEntryPtr* entry_ptr = static_cast<CacheEntryPtr*>(m.payload);
1377  try
1378  {
1379  bool all_clear = true;
1381  {
1382  if (actor->GetGfxActor()->GetResourceGroup() == (*entry_ptr)->resource_group)
1383  {
1384  App::GetGameContext()->PushMessage(Message(MSG_SIM_DELETE_ACTOR_REQUESTED, static_cast<void*>(new ActorPtr(actor))));
1385  all_clear = false;
1386  }
1387  }
1388 
1389  if (all_clear)
1390  {
1391  // Nobody uses the RG anymore -> destroy and re-create it.
1392  App::GetCacheSystem()->ReLoadResource(*entry_ptr);
1393 
1395  /*ints*/ MODCACHEACTIVITY_BUNDLE_RELOADED, (*entry_ptr)->number, 0, 0,
1396  /*strings*/ (*entry_ptr)->resource_group);
1397 
1398  delete entry_ptr;
1399  }
1400  else
1401  {
1402  // Re-post the same message again so that it's message chain is executed later.
1404  failed_m = true;
1405  }
1406  }
1407  catch (...)
1408  {
1410  }
1411  break;
1412  }
1413 
1415  {
1416  // Unloading bundle means the resource group will be destroyed. All actors using it must be deleted.
1417  CacheEntryPtr* entry_ptr = static_cast<CacheEntryPtr*>(m.payload);
1418  try
1419  {
1420  bool all_clear = true;
1422  {
1423  if (actor->GetGfxActor()->GetResourceGroup() == (*entry_ptr)->resource_group)
1424  {
1425  App::GetGameContext()->PushMessage(Message(MSG_SIM_DELETE_ACTOR_REQUESTED, static_cast<void*>(new ActorPtr(actor))));
1426  all_clear = false;
1427  }
1428  }
1429 
1430  if (all_clear)
1431  {
1432  // Nobody uses the RG anymore -> destroy it.
1433  App::GetCacheSystem()->UnLoadResource(*entry_ptr);
1434 
1436  /*ints*/ MODCACHEACTIVITY_BUNDLE_UNLOADED, (*entry_ptr)->number, 0, 0);
1437 
1438  delete entry_ptr;
1439  }
1440  else
1441  {
1442  // Re-post the same message again so that it's message chain is executed later.
1444  failed_m = true;
1445  }
1446  }
1447  catch (...)
1448  {
1450  }
1451 
1452  break;
1453  }
1454 
1456  {
1457  CreateProjectRequest* request = static_cast<CreateProjectRequest*>(m.payload);
1458  try
1459  {
1460  App::GetCacheSystem()->CreateProject(request);
1461  }
1462  catch (...)
1463  {
1465  }
1466  delete request;
1467  break;
1468  }
1469 
1471  {
1472  ModifyProjectRequest* request = static_cast<ModifyProjectRequest*>(m.payload);
1473  try
1474  {
1475  if (App::mp_state->getEnum<MpState>() != MpState::CONNECTED) // Do not allow tuning in multiplayer
1476  {
1477  App::GetCacheSystem()->ModifyProject(request);
1478  }
1479  }
1480  catch (...)
1481  {
1483  }
1484  delete request;
1485  break;
1486  }
1487 
1489  {
1490  CacheEntryPtr* entry_ptr = static_cast<CacheEntryPtr*>(m.payload);
1491  try
1492  {
1493  App::GetCacheSystem()->DeleteProject(*entry_ptr);
1494  }
1495  catch (...)
1496  {
1498  }
1499  delete entry_ptr;
1500  break;
1501  }
1502 
1503  default:;
1504  }
1505 
1506  // Process chained messages
1507  if (!failed_m)
1508  {
1509  for (Message& chained_msg: m.chain)
1510  {
1511  App::GetGameContext()->PushMessage(chained_msg);
1512  }
1513  }
1514 
1515  } // Game events block
1516 
1517  // Check FPS limit
1518  if (App::gfx_fps_limit->getInt() > 0)
1519  {
1520  const float min_frame_time = 1.0f / Ogre::Math::Clamp(App::gfx_fps_limit->getInt(), 5, 240);
1521  float dt = std::chrono::duration<float>(std::chrono::high_resolution_clock::now() - start_time).count();
1522  while (dt < min_frame_time)
1523  {
1524  dt = std::chrono::duration<float>(std::chrono::high_resolution_clock::now() - start_time).count();
1525  }
1526  } // Check FPS limit block
1527 
1528  // Calculate delta time
1529  const auto now = std::chrono::high_resolution_clock::now();
1530  const float dt = std::chrono::duration<float>(now - start_time).count();
1531  start_time = now;
1532 
1533 #ifdef USE_SOCKETW
1534  // Process incoming network traffic
1535  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
1536  {
1537  std::vector<RoR::NetRecvPacket> packets = App::GetNetwork()->GetIncomingStreamData();
1538  if (!packets.empty())
1539  {
1541  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
1542  {
1544  App::GetGameContext()->GetCharacterFactory()->handleStreamData(packets); // Update characters last (or else beam coupling might fail)
1545  }
1546  }
1547  }
1548 #endif // USE_SOCKETW
1549 
1550  // Process input events
1551  if (dt != 0.f)
1552  {
1555 
1556  if (!App::GetGuiManager()->GameControls.IsInteractiveKeyBindingActive())
1557  {
1558  if (!App::GetGuiManager()->MainSelector.IsVisible() && !App::GetGuiManager()->MultiplayerSelector.IsVisible() &&
1561  {
1563  }
1566 
1567  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
1568  {
1569  if (App::sim_state->getEnum<SimState>() == SimState::EDITOR_MODE)
1570  {
1573  }
1574  else
1575  {
1576  App::GetGameContext()->GetCharacterFactory()->Update(dt); // Character MUST be updated before CameraManager, otherwise camera position is always 1 frame behind the character position, causing stuttering.
1577  }
1582  if (App::sim_state->getEnum<SimState>() == SimState::RUNNING)
1583  {
1584  if (App::GetCameraManager()->GetCurrentBehavior() != CameraManager::CAMERA_BEHAVIOR_FREE)
1585  {
1588  if (App::GetGameContext()->GetPlayerActor() &&
1589  App::GetGameContext()->GetPlayerActor()->ar_state != ActorState::NETWORKED_OK) // we are in a vehicle
1590  {
1592  if (App::GetGameContext()->GetPlayerActor()->ar_state != ActorState::LOCAL_REPLAY)
1593  {
1594  if (App::GetGameContext()->GetPlayerActor()->ar_driveable == TRUCK)
1595  {
1597  }
1598  if (App::GetGameContext()->GetPlayerActor()->ar_driveable == AIRPLANE)
1599  {
1601  }
1602  if (App::GetGameContext()->GetPlayerActor()->ar_driveable == BOAT)
1603  {
1605  }
1606  }
1607  }
1608  }
1609  else // free cam mode
1610  {
1612  }
1613  }
1614  } // app state SIMULATION
1615  } // interactive key binding mode
1616  } // dt != 0
1617 
1618  // Update OutGauge device
1619  if (App::io_outgauge_mode->getInt() > 0)
1620  {
1621  App::GetOutGauge()->Update(dt, App::GetGameContext()->GetPlayerActor());
1622  }
1623 
1624  // Early GUI updates which require halted physics
1626  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
1627  {
1629  for (ActorPtr& actor : App::GetGameContext()->GetActorManager()->GetActors())
1630  {
1631  actor->GetGfxActor()->UpdateDebugView();
1632  }
1633  if (App::GetGameContext()->GetPlayerActor())
1634  {
1636  if (App::GetGuiManager()->FrictionSettings.IsVisible())
1637  {
1638  App::GetGuiManager()->FrictionSettings.setActiveCol(App::GetGameContext()->GetPlayerActor()->ar_last_fuzzy_ground_model);
1639  }
1640  }
1641  }
1642 
1643 #ifdef USE_MUMBLE
1644  if (App::GetMumble())
1645  {
1646  App::GetMumble()->Update(); // 3d voice over network
1647  }
1648 #endif // USE_MUMBLE
1649 
1650 #ifdef USE_OPENAL
1651  App::GetSoundScriptManager()->update(dt); // update 3d audio listener position
1652 #endif // USE_OPENAL
1653 
1654  // Sync shared state (lights, brakes, debugviews, pause/reset) between linked actors.
1656 
1657 #ifdef USE_ANGELSCRIPT
1659 #endif // USE_ANGELSCRIPT
1660 
1661  if (App::io_ffb_enabled->getBool() &&
1662  App::sim_state->getEnum<SimState>() == SimState::RUNNING)
1663  {
1665  }
1666 
1667  if (App::sim_state->getEnum<SimState>() == SimState::RUNNING)
1668  {
1670  }
1671 
1672  // Create snapshot of simulation state for Gfx/GUI updates
1673  if (App::sim_state->getEnum<SimState>() == SimState::RUNNING || // Obviously
1674  App::sim_state->getEnum<SimState>() == SimState::EDITOR_MODE) // Needed for character movement
1675  {
1677  }
1678 
1679  // Advance simulation
1680  if (App::sim_state->getEnum<SimState>() == SimState::RUNNING)
1681  {
1682  App::GetGameContext()->UpdateActors(); // *** Start new physics tasks. No reading from Actor N/B beyond this point.
1683  }
1684 
1685  // Scene and GUI updates
1686  if (App::app_state->getEnum<AppState>() == AppState::MAIN_MENU)
1687  {
1689  }
1690  else if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
1691  {
1692  App::GetGfxScene()->UpdateScene(dt); // Draws GUI as well
1693  }
1694 
1695  // Render!
1696  Ogre::RenderWindow* render_window = RoR::App::GetAppContext()->GetRenderWindow();
1697  if (render_window->isClosed())
1698  {
1700  }
1701  else
1702  {
1703  App::GetAppContext()->GetOgreRoot()->renderOneFrame();
1704  if (!render_window->isActive() && render_window->isVisible())
1705  {
1706  render_window->update(); // update even when in background !
1707  }
1708  } // Render block
1709 
1711 
1712  } // End of main rendering/input loop
1713 
1714 #ifndef _DEBUG
1715  }
1716  catch (Ogre::Exception& e)
1717  {
1718  LOG(e.getFullDescription());
1719  ErrorUtils::ShowError(_L("An exception has occured!"), e.getFullDescription());
1720  }
1721  catch (std::runtime_error& e)
1722  {
1723  LOG(e.what());
1724  ErrorUtils::ShowError(_L("An exception (std::runtime_error) has occured!"), e.what());
1725  }
1726 #endif
1727 
1728  return 0;
1729 }
1730 
1731 #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
1732 INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
1733 {
1734  return main(__argc, __argv);
1735 }
1736 #endif
1737 
1738 #ifdef __cplusplus
1739 }
1740 #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:139
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::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:869
RoR::MSG_SIM_LOAD_TERRN_REQUESTED
@ MSG_SIM_LOAD_TERRN_REQUESTED
Definition: Application.h:107
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:74
GUI_MultiplayerClientList.h
RoR::App::CreateScriptEngine
void CreateScriptEngine()
Definition: Application.cpp:342
RoR::App::GetNetwork
Network * GetNetwork()
Definition: Application.cpp:284
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:1491
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:104
RoR::MSG_GUI_SHOW_MESSAGE_BOX_REQUESTED
@ MSG_GUI_SHOW_MESSAGE_BOX_REQUESTED
Payload = MessageBoxConfig* (owner)
Definition: Application.h:126
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:101
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:111
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::GUI::SimActorStats::UpdateStats
void UpdateStats(float dt, ActorPtr actor)
Caution: touches live data, must be synced with sim. thread.
Definition: GUI_SimActorStats.cpp:228
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:359
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:136
RoR::Network::StartConnecting
bool StartConnecting()
Launches connecting on background.
Definition: Network.cpp:388
RoR::InputEngine::updateKeyBounces
void updateKeyBounces(float dt)
Definition: InputEngine.cpp:733
RoR::TRUCK
@ TRUCK
its a truck (or other land vehicle)
Definition: SimData.h:104
RoR::MpState::CONNECTED
@ CONNECTED
RoR::CacheSystem::DeleteProject
void DeleteProject(CacheEntryPtr &entry)
Definition: CacheSystem.cpp:2009
RoR::GUIManager::FrictionSettings
GUI::FrictionSettings FrictionSettings
Definition: GUIManager.h:117
RoR::MSG_SIM_SCRIPT_CALLBACK_QUEUED
@ MSG_SIM_SCRIPT_CALLBACK_QUEUED
Payload = RoR::ScriptCallbackArgs* (owner)
Definition: Application.h:118
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
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:138
RoR::GUI::MultiplayerSelector::UpdateServerlist
void UpdateServerlist(MpServerInfoVec *data)
Definition: GUI_MultiplayerSelector.cpp:418
RoR::MOUSE_HOOK_TOGGLE
@ MOUSE_HOOK_TOGGLE
Definition: SimData.h:72
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:864
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:137
RoR::HandleMsgQueueException
void HandleMsgQueueException(MsgType from)
Definition: Application.cpp:404
RoR::Actor::unmuteAllSounds
void unmuteAllSounds()
Definition: Actor.cpp:3786
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:109
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:124
format
Truck file format(technical spec)
RoR::MSG_SIM_UNPAUSE_REQUESTED
@ MSG_SIM_UNPAUSE_REQUESTED
Definition: Application.h:106
RoR::DiscordRpc::Shutdown
void Shutdown()
Definition: DiscordRpc.cpp:90
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:90
RoR::MSG_GUI_DOWNLOAD_PROGRESS
@ MSG_GUI_DOWNLOAD_PROGRESS
Definition: Application.h:128
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:1269
RoR::Actor::forceAllFlaresOff
void forceAllFlaresOff()
Definition: Actor.cpp:3028
RoR::ActorLinkingRequest::alr_type
ActorLinkingRequestType alr_type
Definition: SimData.h:867
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:109
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:198
CameraManager.h
RoR::LogFormat
void LogFormat(const char *format,...)
Improved logging utility. Uses fixed 2Kb buffer.
Definition: Application.cpp:418
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:99
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:119
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:894
RoR::GameContext::UpdateActors
void UpdateActors()
Definition: GameContext.cpp:593
RoR::GUIManager::MpClientList
GUI::MpClientList MpClientList
Definition: GUIManager.h:116
RoR::MSG_NET_RECV_ERROR
@ MSG_NET_RECV_ERROR
Definition: Application.h:97
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:107
RoR::CacheSystem::ModifyProject
void ModifyProject(ModifyProjectRequest *request)
Definition: CacheSystem.cpp:1800
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:85
RoR::Actor::GetGfxActor
GfxActor * GetGfxActor()
Definition: Actor.h:261
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:108
RoR::ActorManager::SyncWithSimThread
void SyncWithSimThread()
Definition: ActorManager.cpp:1256
RoR::SS_TRIG_MAIN_MENU
@ SS_TRIG_MAIN_MENU
Definition: SoundScriptManager.h:119
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::ActorManager::SyncLinkedActors
void SyncLinkedActors()
Definition: ActorManager.cpp:752
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
GUI_SimActorStats.h
RoR::MSG_NET_CONNECT_REQUESTED
@ MSG_NET_CONNECT_REQUESTED
Definition: Application.h:89
RefCountingObjectPtr< Actor >
RoR::GUIManager::DirectionArrow
GUI::DirectionArrow DirectionArrow
Definition: GUIManager.h:126
RoR::MSG_APP_DISPLAY_WINDOWED_REQUESTED
@ MSG_APP_DISPLAY_WINDOWED_REQUESTED
Definition: Application.h:81
RoR::MSG_NET_SERVER_KICK
@ MSG_NET_SERVER_KICK
Definition: Application.h:94
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:122
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:120
RoR::ActorSpawnRequest
Definition: SimData.h:790
RoR::MSG_APP_DISPLAY_FULLSCREEN_REQUESTED
@ MSG_APP_DISPLAY_FULLSCREEN_REQUESTED
Definition: Application.h:80
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:191
RoR::GUIManager::NewImGuiFrame
void NewImGuiFrame(float dt)
Definition: GUIManager.cpp:304
RoR::MSG_NET_REFRESH_SERVERLIST_SUCCESS
@ MSG_NET_REFRESH_SERVERLIST_SUCCESS
Payload = GUI::MpServerInfoVec* (owner)
Definition: Application.h:98
RoR::App::mp_state
CVar * mp_state
Definition: Application.cpp:115
RoR::MSG_GUI_DOWNLOAD_FINISHED
@ MSG_GUI_DOWNLOAD_FINISHED
Definition: Application.h:129
RoR::GameContext::UpdateGlobalInputEvents
void UpdateGlobalInputEvents()
Definition: GameContext.cpp:932
RoR::ForceFeedback::Update
void Update()
Reads data from simulation.
Definition: ForceFeedback.cpp:105
RoR::ActorLinkingRequest::alr_hook_action
HookAction alr_hook_action
Definition: SimData.h:870
RoR::LoadScriptRequest::lsr_category
ScriptCategory lsr_category
Definition: ScriptEngine.h:94
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:73
RoR::GameContext::GetSceneMouse
SceneMouse & GetSceneMouse()
Definition: GameContext.h:170
RoR::InputEngine::Capture
void Capture()
Definition: InputEngine.cpp:620
RoR::CmdKeyInertiaConfig::LoadDefaultInertiaModels
void LoadDefaultInertiaModels()
Definition: CmdKeyInertia.cpp:138
RoR::GUIManager::MultiplayerSelector
GUI::MultiplayerSelector MultiplayerSelector
Definition: GUIManager.h:112
RoR::Str< 400 >
RoR::Collisions::getGroundModelByString
ground_model_t * getGroundModelByString(const Ogre::String name)
Definition: Collisions.cpp:365
RoR::ActorLinkingRequestType::TIE_ACTION
@ TIE_ACTION
RoR::GUI::RepositorySelector::SetVisible
void SetVisible(bool visible)
Definition: GUI_RepositorySelector.cpp:1238
RoR::GUIManager::MenuWallpaper
Ogre::Overlay * MenuWallpaper
Definition: GUIManager.h:129
RoR::ActorModifyRequest
Definition: SimData.h:828
RoR::GameContext::PopMessage
Message PopMessage()
Definition: GameContext.cpp:96
RoR::ScriptEngine::unloadScript
void unloadScript(ScriptUnitId_t unique_id)
Unloads a script.
Definition: ScriptEngine.cpp:991
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:113
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:96
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:84
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:480
GUI_MainSelector.h
RoR::GUI::RepositorySelector::IsVisible
bool IsVisible() const
Definition: GUI_RepositorySelector.h:97
RoR::GUIManager::CollisionsDebug
GUI::CollisionsDebug CollisionsDebug
Definition: GUIManager.h:105
RoR::MSG_GUI_MP_CLIENTS_REFRESH
@ MSG_GUI_MP_CLIENTS_REFRESH
Definition: Application.h:125
RoR::ContentManager::ResourcePack::SCRIPTS
static const ResourcePack SCRIPTS
Definition: ContentManager.h:68
ScriptEngine.h
RoR::GameContext::DeleteActor
void DeleteActor(ActorPtr actor)
Definition: GameContext.cpp:419
RoR::App::sys_thumbnails_dir
CVar * sys_thumbnails_dir
Definition: Application.cpp:166
RoR::ScriptUnit::scriptCategory
ScriptCategory scriptCategory
Definition: ScriptEngine.h:75
RoR::ActorLinkingRequestType::ROPE_ACTION
@ ROPE_ACTION
RoR::MODCACHEACTIVITY_BUNDLE_RELOADED
@ MODCACHEACTIVITY_BUNDLE_RELOADED
Args: #1 type, #2 entry number, –, –, #5 rg name.
Definition: ScriptEvents.h:95
RoR::GameContext::PushMessage
void PushMessage(Message m)
Doesn't guarantee order! Use ChainMessage() if order matters.
Definition: GameContext.cpp:66
RoR::App::app_state
CVar * app_state
Definition: Application.cpp:79
RoR::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::ActorLinkingRequestType::HOOK_ACTION
@ HOOK_ACTION
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::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
GfxScene.h
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:102
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:123
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:115
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:277
RoR::MSG_GUI_REFRESH_TUNING_MENU_REQUESTED
@ MSG_GUI_REFRESH_TUNING_MENU_REQUESTED
Definition: Application.h:130
RoR::ActorLinkingRequest::alr_rope_group
int alr_rope_group
Definition: SimData.h:875
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:101
SoundScriptManager.h
RoR::MSG_APP_MODCACHE_LOAD_REQUESTED
@ MSG_APP_MODCACHE_LOAD_REQUESTED
Definition: Application.h:82
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:765
RoR::ScriptCallbackArgs
Definition: ScriptEngine.h:98
RoR::MSG_APP_SCREENSHOT_REQUESTED
@ MSG_APP_SCREENSHOT_REQUESTED
Definition: Application.h:79
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:105
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:100
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:2423
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:377
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::MSG_NET_REFRESH_AI_PRESETS
@ MSG_NET_REFRESH_AI_PRESETS
Definition: Application.h:103
RoR::TerrainEditor::WriteOutputFile
void WriteOutputFile()
Definition: TerrainEditor.cpp:252
RoR::ScriptEventArgs::arg7ex
std::string arg7ex
Definition: ScriptEvents.h:112
RoR::MSG_SIM_TELEPORT_PLAYER_REQUESTED
@ MSG_SIM_TELEPORT_PLAYER_REQUESTED
Payload = Ogre::Vector3* (owner)
Definition: Application.h:114
RoR::Actor::hookToggle
void hookToggle(int group=-1, HookAction mode=HOOK_TOGGLE, NodeNum_t mousenode=NODENUM_INVALID)
Definition: Actor.cpp:3594
RoR::Message::description
std::string description
Definition: GameContext.h:58
RoR::GUIManager::SimActorStats
GUI::SimActorStats SimActorStats
Definition: GUIManager.h:109
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:123
RoR::GUIManager::SetUpMenuWallpaper
void SetUpMenuWallpaper()
Definition: GUIManager.cpp:223
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:2402
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:1627
RoR::MSG_EDI_ENTER_TERRN_EDITOR_REQUESTED
@ MSG_EDI_ENTER_TERRN_EDITOR_REQUESTED
Definition: Application.h:133
RoR::MSG_EDI_LOAD_BUNDLE_REQUESTED
@ MSG_EDI_LOAD_BUNDLE_REQUESTED
Payload = RoR::CacheEntryPtr* (owner)
Definition: Application.h:135
RoR::GUIManager::SetMouseCursorVisibility
void SetMouseCursorVisibility(MouseCursorVisibility visi)
Definition: GUIManager.cpp:276
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:490
RoR::ModifyProjectRequest
Definition: CacheSystem.h:265
RoR::MSG_NET_CONNECT_SUCCESS
@ MSG_NET_CONNECT_SUCCESS
Definition: Application.h:92
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:280
RoR::ScriptEventArgs::arg5ex
std::string arg5ex
Definition: ScriptEvents.h:110
RoR::App::cli_preset_terrain
CVar * cli_preset_terrain
Definition: Application.cpp:180
RoR::AppContext::SetUpThreads
void SetUpThreads()
Definition: AppContext.cpp:600
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::AppContext::ActivateFullscreen
void ActivateFullscreen(bool val)
Definition: AppContext.cpp:424
Skidmark.h
RoR::AppContext::SetUpObsoleteConfMarker
void SetUpObsoleteConfMarker()
Definition: AppContext.cpp:568
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:1545
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::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:873
RoR::OutGauge::Close
void Close()
Definition: OutGauge.cpp:43
RoR::GfxActor::SetCastShadows
void SetCastShadows(bool value)
Definition: GfxActor.cpp:3238
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:140
RoR::CacheSystem::LoadResource
void LoadResource(CacheEntryPtr &t)
Loads the associated resource bundle if not already done.
Definition: CacheSystem.cpp:1392
RoR::MSG_SIM_ACTOR_LINKING_REQUESTED
@ MSG_SIM_ACTOR_LINKING_REQUESTED
Payload = RoR::ActorLinkingRequest* (owner)
Definition: Application.h:119
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:113
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:155
RoR::GameContext::UnloadTerrain
void UnloadTerrain()
Definition: GameContext.cpp:177
RoR::CVar::setVal
void setVal(T val)
Definition: CVar.h:72
RoR::Actor::tieToggle
void tieToggle(int group=-1)
Definition: Actor.cpp:3409
_L
#define _L
Definition: ErrorUtils.cpp:34
RoR::MSG_GUI_OPEN_MENU_REQUESTED
@ MSG_GUI_OPEN_MENU_REQUESTED
Definition: Application.h:121
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::GUI::MpClientList::UpdateClients
void UpdateClients()
Definition: GUI_MultiplayerClientList.cpp:45
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:440
RoR::ScriptEventArgs::type
scriptEvents type
Definition: ScriptEvents.h:104
RoR::ActorManager::UpdateInputEvents
void UpdateInputEvents(float dt)
Definition: ActorManager.cpp:1372
RoR::Console::regBuiltinCommands
void regBuiltinCommands()
Register builtin commands.
Definition: ConsoleCmd.cpp:650
RoR::GUIManager::GameAbout
GUI::GameAbout GameAbout
Definition: GUIManager.h:107
RoR::MSG_EDI_LEAVE_TERRN_EDITOR_REQUESTED
@ MSG_EDI_LEAVE_TERRN_EDITOR_REQUESTED
Definition: Application.h:134
RoR::GUI::CollisionsDebug::CleanUp
void CleanUp()
Definition: GUI_CollisionsDebug.cpp:375
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:110
RoR::MSG_APP_MODCACHE_UPDATE_REQUESTED
@ MSG_APP_MODCACHE_UPDATE_REQUESTED
Definition: Application.h:83
RoR::App::GetInputEngine
InputEngine * GetInputEngine()
Definition: Application.cpp:271
RoR::CacheSystem::ReLoadResource
void ReLoadResource(CacheEntryPtr &t)
Forces reloading the associated bundle.
Definition: CacheSystem.cpp:1478
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:741
RoR::ScriptEventArgs::arg2ex
int arg2ex
Definition: ScriptEvents.h:107
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:187
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:866
RoR::MSG_NET_CONNECT_FAILURE
@ MSG_NET_CONNECT_FAILURE
Definition: Application.h:93
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:112
RoR::GameContext::UpdateSimInputEvents
void UpdateSimInputEvents(float dt)
Definition: GameContext.cpp:1047
RoR::GameContext::UpdateBoatInputEvents
void UpdateBoatInputEvents(float dt)
Definition: GameContext.cpp:1733
RoR::DiscordRpc::Init
void Init()
Definition: DiscordRpc.cpp:44
RoR::MSG_APP_SCRIPT_THREAD_STATUS
@ MSG_APP_SCRIPT_THREAD_STATUS
Payload = RoR::ScriptEventArgs* (owner)
Definition: Application.h:87
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:132
RoR::AppContext::GetOgreRoot
Ogre::Root * GetOgreRoot()
Definition: AppContext.h:65
Terrain.h
RoR::ActorLinkingRequest::alr_hook_mousenode
NodeNum_t alr_hook_mousenode
Definition: SimData.h:871
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:113
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:116
RoR::MSG_APP_UNLOAD_SCRIPT_REQUESTED
@ MSG_APP_UNLOAD_SCRIPT_REQUESTED
Payload = RoR::ScriptUnitId_t* (owner)
Definition: Application.h:86
RoR::ActorManager::GetInertiaConfig
RoR::CmdKeyInertiaConfig & GetInertiaConfig()
Definition: ActorManager.h:86
RoR::Actor::ropeToggle
void ropeToggle(int group=-1)
Definition: Actor.cpp:3521
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:617
RoR::ASMANIP_SCRIPT_LOADED
@ ASMANIP_SCRIPT_LOADED
Triggered after the script's main() completed; may trigger additional processing (for example,...
Definition: ScriptEvents.h:73
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:122
RoR::MSG_NET_CONNECT_PROGRESS
@ MSG_NET_CONNECT_PROGRESS
Definition: Application.h:91
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::GfxActor::SetAllMeshesVisible
void SetAllMeshesVisible(bool value)
Definition: GfxActor.cpp:3281
RoR::ScriptCallbackArgs::node
NodeNum_t node
Definition: ScriptEngine.h:103
RoR::MSG_SIM_PAUSE_REQUESTED
@ MSG_SIM_PAUSE_REQUESTED
Definition: Application.h:105
RoR::BOAT
@ BOAT
its a boat
Definition: SimData.h:106
RoR::ActorState::NETWORKED_OK
@ NETWORKED_OK
not simulated (remote) actor
RoR::ScriptEventArgs::arg6ex
std::string arg6ex
Definition: ScriptEvents.h:111
MumbleIntegration.h
WinMain
INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)
Definition: main.cpp:1732
RoR::Actor::ar_state
ActorState ar_state
Definition: Actor.h:437
RoR::GUIManager::DrawMainMenuGui
void DrawMainMenuGui()
Definition: GUIManager.cpp:400
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:1793
RoR::GUIManager::UpdateInputEvents
void UpdateInputEvents(float dt)
Definition: GUIManager.cpp:469
SOUND_KILL
#define SOUND_KILL(_ACTOR_, _TRIG_)
Definition: SoundScriptManager.h:38
RoR::ScriptEngine::getScriptUnit
ScriptUnit & getScriptUnit(ScriptUnitId_t unique_id)
Definition: ScriptEngine.cpp:1027
RoR::MSG_SIM_LOAD_SAVEGAME_REQUESTED
@ MSG_SIM_LOAD_SAVEGAME_REQUESTED
Definition: Application.h:108
RoR::MODCACHEACTIVITY_BUNDLE_LOADED
@ MODCACHEACTIVITY_BUNDLE_LOADED
Args: #1 type, #2 entry number, –, –, #5 rg name.
Definition: ScriptEvents.h:94
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:1167
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:413
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:913
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:106
RoR::MSG_APP_SHUTDOWN_REQUESTED
@ MSG_APP_SHUTDOWN_REQUESTED
Definition: Application.h:78
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:105
RoR::MSG_NET_DISCONNECT_REQUESTED
@ MSG_NET_DISCONNECT_REQUESTED
Definition: Application.h:95
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:833
RoR::GameContext::UpdateSkyInputEvents
void UpdateSkyInputEvents(float dt)
Definition: GameContext.cpp:1205
RoR::ScriptEventArgs::arg3ex
int arg3ex
Definition: ScriptEvents.h:108
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:117
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:3772
RoR::ActorLinkingRequestType::SLIDENODE_ACTION
@ SLIDENODE_ACTION