RigsofRods
Soft-body Physics Simulation
GameContext.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 "GameContext.h"
23 
24 #include "AppContext.h"
25 #include "Actor.h"
26 #include "AeroEngine.h"
27 #include "CacheSystem.h"
28 #include "Collisions.h"
29 #include "Console.h"
30 #include "DashBoardManager.h"
31 #include "EngineSim.h"
32 #include "GfxScene.h"
33 #include "GUIManager.h"
34 #include "GUI_FrictionSettings.h"
35 #include "GUI_MainSelector.h"
36 #include "GUI_TopMenubar.h"
37 #include "InputEngine.h"
38 #include "OverlayWrapper.h"
39 #include "Replay.h"
40 #include "ScrewProp.h"
41 #include "ScriptEngine.h"
42 #include "SkyManager.h"
43 #include "SkyXManager.h"
44 #include "SoundScriptManager.h"
45 #include "Terrain.h"
46 #include "TuneupFileFormat.h"
47 #include "Utils.h"
48 #include "VehicleAI.h"
49 #include "GUI_VehicleButtons.h"
50 
51 using namespace RoR;
52 
54 {
55  // Constructs `ActorPtr` - doesn't compile without `#include Actor.h` - not pretty if in header (even if auto-generated by C++).
56 }
57 
59 {
60  // Destructs `ActorPtr` - doesn't compile without `#include Actor.h` - not pretty if in header (even if auto-generated by C++).
61 }
62 
63 // --------------------------------
64 // Message queue
65 
67 {
68  std::lock_guard<std::mutex> lock(m_msg_mutex);
69  m_msg_queue.push(m);
70  m_msg_chain_end = &m_msg_queue.back();
71 }
72 
74 {
75  std::lock_guard<std::mutex> lock(m_msg_mutex);
76  if (m_msg_chain_end)
77  {
78 
79  m_msg_chain_end->chain.push_back(m);
81  }
82  else
83  {
84  // Regular `PushMessage()`, just without the lock.
85  m_msg_queue.push(m);
86  m_msg_chain_end = &m_msg_queue.back();
87  }
88 }
89 
91 {
92  std::lock_guard<std::mutex> lock(m_msg_mutex);
93  return !m_msg_queue.empty();
94 }
95 
97 {
98  std::lock_guard<std::mutex> lock(m_msg_mutex);
99  ROR_ASSERT(m_msg_queue.size() > 0);
100  if (m_msg_chain_end == &m_msg_queue.front())
101  {
102  m_msg_chain_end = nullptr;
103  }
104  Message m = m_msg_queue.front();
105  m_msg_queue.pop();
106  return m;
107 }
108 
109 // --------------------------------
110 // Terrain
111 
112 bool GameContext::LoadTerrain(std::string const& filename_part)
113 {
114  m_last_spawned_actor = nullptr;
115 
116  // Find terrain in modcache
117  CacheEntryPtr terrn_entry = App::GetCacheSystem()->FindEntryByFilename(LT_Terrain, /*partial=*/true, filename_part);
118  if (!terrn_entry)
119  {
120  Str<200> msg; msg << _L("Terrain not found: ") << filename_part;
121  RoR::Log(msg.ToCStr());
122  App::GetGuiManager()->ShowMessageBox(_L("Terrain loading error"), msg.ToCStr());
123  return false;
124  }
125 
126  // Init resources
127  App::GetCacheSystem()->LoadResource(terrn_entry);
128 
129  // Load the terrain def file
130  Terrn2Def terrn2;
131  std::string const& filename = terrn_entry->fname;
132  try
133  {
134  Ogre::DataStreamPtr stream = Ogre::ResourceGroupManager::getSingleton().openResource(filename);
135  LOG(" ===== LOADING TERRAIN " + filename);
136  Terrn2Parser parser;
137  if (! parser.LoadTerrn2(terrn2, stream))
138  {
139  return false; // Errors already logged to console
140  }
141  }
142  catch (Ogre::Exception& e)
143  {
144  App::GetGuiManager()->ShowMessageBox(_L("Terrain loading error"), e.getFullDescription().c_str());
145  return false;
146  }
147 
148  for (std::string const& assetpack_filename: terrn2.assetpack_files)
149  {
150  App::GetCacheSystem()->LoadAssetPack(terrn_entry, assetpack_filename);
151  }
152 
153  // CAUTION - the global instance must be set during init! Needed by:
154  // * GameScript::spawnObject()
155  // * ProceduralManager
156  // * Landusemap
157  // * SurveyMapTextureCreator
158  // * Collisions (debug visualization)
159  m_terrain = new RoR::Terrain(terrn_entry, terrn2);
160  if (!m_terrain->initialize())
161  {
162  m_terrain = nullptr; // release local reference - object will be deleted when all references are released.
163  return false; // Message box already displayed
164  }
165 
166  // Initialize envmap textures by rendering center of map
167  Ogre::Vector3 center = m_terrain->getMaxTerrainSize() / 2;
168  center.y = m_terrain->GetHeightAt(center.x, center.z) + 1.0f;
169  App::GetGfxScene()->GetEnvMap().UpdateEnvMap(center, /*gfx_actor:*/nullptr, /*full:*/true);
170 
171  // Scan groundmodels
173 
174  return true;
175 }
176 
178 {
179  if (m_terrain != nullptr)
180  {
181  // dispose(), do not `delete` - script may still hold reference to the object.
182  m_terrain->dispose();
183  // release local reference - object will be deleted when all references are released.
184  m_terrain = nullptr;
185  }
186 }
187 
188 // --------------------------------
189 // Actors (physics and netcode)
190 
192 {
194  {
199 
200  if (rq.asr_spawnbox == nullptr)
201  {
202  if (m_player_actor != nullptr)
203  {
204  float h = m_player_actor->getMaxHeight(true);
205  rq.asr_rotation = Ogre::Quaternion(Ogre::Degree(270) - Ogre::Radian(m_player_actor->getRotation()), Ogre::Vector3::UNIT_Y);
208  rq.asr_position.y += m_player_actor->getHeightAboveGroundBelow(h, true); // retain height above ground
209  }
210  else
211  {
212  Character* player_character = this->GetPlayerCharacter();
213  rq.asr_rotation = Ogre::Quaternion(Ogre::Degree(180) - player_character->getRotation(), Ogre::Vector3::UNIT_Y);
214  rq.asr_position = player_character->getPosition();
215  }
216  }
217  }
218 
219  LOG(" ===== LOADING VEHICLE: " + rq.asr_filename);
220 
221  if (rq.asr_cache_entry)
222  {
224  }
225  else
226  {
228  }
229 
232  if (def == nullptr)
233  {
234  return nullptr; // Error already reported
235  }
236 
237  if (rq.asr_skin_entry)
238  {
239  App::GetCacheSystem()->LoadResource(rq.asr_skin_entry); // Also loads associated .skin file.
240  if (!rq.asr_skin_entry->skin_def) // Make sure .skin was loaded OK.
241  {
242  rq.asr_skin_entry = nullptr; // Error already logged
243  }
244  }
245 
246  if (App::sim_tuning_enabled->getBool())
247  {
248  if (rq.asr_tuneup_entry)
249  {
250  App::GetCacheSystem()->LoadResource(rq.asr_tuneup_entry); // Also loads associated .tuneup file.
251  if (!rq.asr_tuneup_entry->tuneup_def)
252  {
253  rq.asr_tuneup_entry = nullptr; // Error already logged
254  }
255  }
256  }
257  else
258  {
259  rq.asr_working_tuneup = nullptr; // Make sure no tuneup is used
260  }
261 
262 #ifdef USE_SOCKETW
264  {
265  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
266  {
269  rq.asr_net_color = info.colournum;
270  }
271  }
272 #endif //SOCKETW
273 
274  ActorPtr fresh_actor = m_actor_manager.CreateNewActor(rq, def);
275 
276  // lock slide nodes after spawning the actor?
277  if (def->slide_nodes_connect_instantly)
278  {
279  fresh_actor->toggleSlideNodeLock(); // OK to invoke here - processing MSG_SIM_ACTOR_SPAWN_REQUESTED
280  }
281 
283  {
284  m_last_spawned_actor = fresh_actor;
285  if (fresh_actor->ar_driveable != NOT_DRIVEABLE)
286  {
287  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(fresh_actor))));
288  }
289  if (rq.asr_spawnbox == nullptr)
290  {
291  // Try to resolve collisions with other actors
292  fresh_actor->resolveCollisions(50.0f, m_player_actor == nullptr);
293  }
294  }
296  {
297  if (fresh_actor->ar_driveable != NOT_DRIVEABLE &&
298  fresh_actor->ar_num_nodes > 0 &&
300  {
301  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(fresh_actor))));
302  }
303  if (fresh_actor->ar_driveable != NOT_DRIVEABLE &&
304  fresh_actor->ar_num_nodes > 0 &&
306  {
307  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(fresh_actor))));
308  }
309  }
311  {
312  if (rq.asr_terrn_machine)
313  {
314  fresh_actor->ar_driveable = MACHINE;
315  }
316  }
318  {
319  fresh_actor->ar_driveable = AI;
320  fresh_actor->ar_state = ActorState::LOCAL_SIMULATED;
321 
322  if (fresh_actor->ar_engine)
323  {
325  fresh_actor->ar_engine->autoShiftSet(EngineSim::DRIVE);
326  }
327  }
329  {
330  fresh_actor->ar_net_source_id = rq.net_source_id;
331  fresh_actor->ar_net_stream_id = rq.net_stream_id;
332  }
334  {
335  if (rq.asr_saved_state)
336  {
338  req->amr_actor = fresh_actor->ar_instance_id;
342  }
343  }
344  else
345  {
346  if (fresh_actor->ar_driveable != NOT_DRIVEABLE &&
348  rq.asr_enter)
349  {
350  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(fresh_actor))));
351  }
352  }
353 
354  return fresh_actor;
355 }
356 
358 {
360 
362  {
363  actor->SoftReset();
364  }
366  {
367  actor->SyncReset(/*reset_position:*/false);
368  }
370  {
371  actor->SyncReset(/*reset_position:*/true);
372  }
374  {
376  }
379  {
381  actor->ar_sleep_counter = 0.0f;
382  }
384  {
385  CacheEntryPtr entry = App::GetCacheSystem()->FindEntryByFilename(LT_AllBeam, /*partial=*/false, actor->ar_filename);
386  if (!entry)
387  {
388  Str<500> msg; msg <<"Cannot reload vehicle; file '" << actor->ar_filename << "' not found in ModCache.";
390  return;
391  }
392 
393  // Create spawn request while actor still exists
395  srq->asr_position = Ogre::Vector3(actor->getPosition().x, actor->getMinHeight(), actor->getPosition().z);
396  srq->asr_rotation = Ogre::Quaternion(Ogre::Degree(270) - Ogre::Radian(actor->getRotation()), Ogre::Vector3::UNIT_Y);
397  srq->asr_config = actor->getSectionConfig();
398  srq->asr_skin_entry = actor->getUsedSkinEntry();
399  srq->asr_working_tuneup = actor->getWorkingTuneupDef();
400  srq->asr_cache_entry= entry;
401  srq->asr_debugview = (int)actor->GetGfxActor()->GetDebugView();
403 
404  // This deletes all actors using the resource bundle, including the one we're reloading.
406 
407  // Load our actor again, but only after all actors are deleted.
409  }
410 }
411 
413 {
414  if (actor == m_player_actor)
415  {
416  Ogre::Vector3 center = m_player_actor->getRotationCenter();
417  this->ChangePlayerActor(nullptr); // Get out of the vehicle
418  this->GetPlayerCharacter()->setPosition(center);
419  // Update scene SimBuffer immediatelly to prevent having dangling pointer.
421  }
422 
423  if (actor == m_prev_player_actor)
424  {
425  m_prev_player_actor = nullptr;
426  }
427 
428  if (actor == m_last_spawned_actor)
429  {
430  m_last_spawned_actor = nullptr;
431  }
432 
433  // Find linked actors and un-tie if tied
434  for (auto actorx : m_actor_manager.GetLocalActors())
435  {
436  if (actorx->isTied() && std::find(actor->ar_linked_actors.begin(), actor->ar_linked_actors.end(), actorx) != actor->ar_linked_actors.end())
437  {
438  actorx->tieToggle(); // OK to invoke here - processing MSG_SIM_DELETE_ACTOR_REQUESTED
439  }
440 
441  if (actorx->isLocked() && std::find(actor->ar_linked_actors.begin(), actor->ar_linked_actors.end(), actorx) != actor->ar_linked_actors.end())
442  {
443  actorx->hookToggle(); // OK to invoke here - processing MSG_SIM_DELETE_ACTOR_REQUESTED
444  }
445  }
446 
448 
449 #ifdef USE_SOCKETW
450  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
451  {
453  }
454 #endif //SOCKETW
455 
457 
458  // Unload actor's scripts
459  std::vector<ScriptUnitId_t> unload_list;
460  for (auto& pair : App::GetScriptEngine()->getScriptUnits())
461  {
462  if (pair.second.associatedActor == actor)
463  unload_list.push_back(pair.first);
464  }
465  for (ScriptUnitId_t id : unload_list)
466  {
468  }
469 
471 }
472 
474 {
475  ActorPtr prev_player_actor = m_player_actor;
476  m_player_actor = actor;
477 
478  // hide any old dashes
479  if (prev_player_actor && prev_player_actor->ar_dashboard)
480  {
481  prev_player_actor->ar_dashboard->setVisible3d(false);
482  }
483  // show new
485  {
487  }
488 
489  if (prev_player_actor)
490  {
491  App::GetOverlayWrapper()->showDashboardOverlays(false, prev_player_actor);
492 
493  prev_player_actor->GetGfxActor()->SetRenderdashActive(false);
494 
495  SOUND_STOP(prev_player_actor, SS_TRIG_AIR);
496  SOUND_STOP(prev_player_actor, SS_TRIG_PUMP);
497  }
498 
499  if (m_player_actor == nullptr)
500  {
501  // getting outside
502 
503  if (prev_player_actor)
504  {
506  {
508  }
509 
510  prev_player_actor->prepareInside(false);
511 
512  // get player out of the vehicle
513  float h = prev_player_actor->getMinCameraRadius();
514  float rotation = prev_player_actor->getRotation() - Ogre::Math::HALF_PI;
515  Ogre::Vector3 position = prev_player_actor->getPosition();
516  if (prev_player_actor->ar_cinecam_node[0] != NODENUM_INVALID)
517  {
518  // actor has a cinecam (find optimal exit position)
519  Ogre::Vector3 l = position - 2.0f * prev_player_actor->GetCameraRoll();
520  Ogre::Vector3 r = position + 2.0f * prev_player_actor->GetCameraRoll();
521  float l_h = m_terrain->GetCollisions()->getSurfaceHeightBelow(l.x, l.z, l.y + h);
522  float r_h = m_terrain->GetCollisions()->getSurfaceHeightBelow(r.x, r.z, r.y + h);
523  position = std::abs(r.y - r_h) * 1.2f < std::abs(l.y - l_h) ? r : l;
524  }
525  position.y = m_terrain->GetCollisions()->getSurfaceHeightBelow(position.x, position.z, position.y + h);
526 
527  Character* player_character = this->GetPlayerCharacter();
528  if (player_character)
529  {
530  player_character->SetActorCoupling(false, nullptr);
531  player_character->setRotation(Ogre::Radian(rotation));
532  player_character->setPosition(position);
533  }
534  }
535 
537 
538  TRIGGER_EVENT_ASYNC(SE_TRUCK_EXIT, prev_player_actor?prev_player_actor->ar_instance_id:-1);
539  }
540  else
541  {
542  // getting inside
544  !App::GetGuiManager()->IsGuiHidden(), m_player_actor);
545 
547  {
549  }
550 
552 
553  // force feedback
555 
556  // attach player to vehicle
557  Character* player_character = this->GetPlayerCharacter();
558  if (player_character)
559  {
560  player_character->SetActorCoupling(true, m_player_actor);
561  }
562 
564 
566  }
567 
568  if (prev_player_actor != nullptr || m_player_actor != nullptr)
569  {
571  }
572 
574 }
575 
577 {
579 }
580 
582 {
584 }
585 
587 {
589 }
590 
591 ActorPtr GameContext::FindActorByCollisionBox(std::string const & ev_src_instance_name, std::string const & box_name)
592 {
594  ev_src_instance_name, box_name);
595 }
596 
598 {
599  if (m_last_cache_selection != nullptr)
600  {
607  }
608 }
609 
610 void GameContext::SpawnPreselectedActor(std::string const& preset_vehicle, std::string const& preset_veh_config)
611 {
613  LT_AllBeam, /*partial=*/true, preset_vehicle);
614 
615  if (!entry)
616  return;
617 
619  rq->asr_cache_entry = entry;
621  rq->asr_rotation = Ogre::Quaternion(Ogre::Degree(180) - this->GetPlayerCharacter()->getRotation(), Ogre::Vector3::UNIT_Y);
623 
624  RoR::LogFormat("[RoR|Diag] Preselected Truck: %s (%s)", entry->dname.c_str(), entry->fname.c_str());
625 
626  // Section config lookup
627  if (!entry->sectionconfigs.empty())
628  {
629  if (std::find(entry->sectionconfigs.begin(), entry->sectionconfigs.end(),
630  preset_veh_config)
631  == entry->sectionconfigs.end())
632  {
633  // Preselected config doesn't exist -> use first available one
634  rq->asr_config = entry->sectionconfigs[0];
635  }
636  else
637  {
638  rq->asr_config = preset_veh_config;
639  }
640  RoR::LogFormat("[RoR|Diag] Preselected Truck Config: %s", rq->asr_config.c_str());
641  }
642 
644 }
645 
646 void GameContext::ShowLoaderGUI(int type, const Ogre::String& instance, const Ogre::String& box)
647 {
648  // first, test if the place if clear, BUT NOT IN MULTIPLAYER
649  if (!(App::mp_state->getEnum<MpState>() == MpState::CONNECTED))
650  {
651  collision_box_t* spawnbox = m_terrain->GetCollisions()->getBox(instance, box);
652  for (ActorPtr& actor : this->GetActorManager()->GetActors())
653  {
654  for (int i = 0; i < actor->ar_num_nodes; i++)
655  {
656  if (m_terrain->GetCollisions()->isInside(actor->ar_nodes[i].AbsPosition, spawnbox))
657  {
658  App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("Please clear the place first"), "error.png");
659  return;
660  }
661  }
662  }
663  }
664 
668 
670  m.payload = reinterpret_cast<void*>(new LoaderType(LoaderType(type)));
672 }
673 
675 {
677 
678  if (App::GetGuiManager()->TopMenubar.ai_select)
679  {
682  }
683  if (App::GetGuiManager()->TopMenubar.ai_select2)
684  {
687  }
688 }
689 
690 void GameContext::OnLoaderGuiApply(LoaderType type, CacheEntryPtr entry, std::string sectionconfig)
691 {
692  bool spawn_now = false;
693  switch (type)
694  {
695  case LT_AddonPart:
696  if (m_player_actor)
697  {
700  req->mpr_subject = entry->fname;
703  }
704  break;
705 
706  case LT_Skin:
707  if (entry != m_dummy_cache_selection)
708  {
710  if (App::GetGuiManager()->TopMenubar.ai_select)
711  {
713  }
714  if (App::GetGuiManager()->TopMenubar.ai_select2)
715  {
717  }
718  }
719  spawn_now = true;
720  break;
721 
722  case LT_Vehicle:
723  case LT_Truck:
724  case LT_Car:
725  case LT_Boat:
726  case LT_Airplane:
727  case LT_Trailer:
728  case LT_Train:
729  case LT_Load:
730  case LT_Extension:
731  case LT_AllBeam:
733  m_current_selection.asr_config = sectionconfig;
734  if (App::GetGuiManager()->TopMenubar.ai_select)
735  {
737  }
738  if (App::GetGuiManager()->TopMenubar.ai_select2)
739  {
741  }
743  // Look for extra skins
744  if (!entry->guid.empty())
745  {
746  CacheQuery skin_query;
747  skin_query.cqy_filter_guid = entry->guid;
748  skin_query.cqy_filter_type = LT_Skin;
749  size_t num_skins = App::GetCacheSystem()->Query(skin_query);
750  // Determine default skin
751  CacheEntryPtr default_skin_entry = nullptr;
752  if (entry->default_skin != "")
753  {
754  for (CacheQueryResult& res : skin_query.cqy_results)
755  {
756  if (res.cqr_entry->dname == entry->default_skin)
757  default_skin_entry = res.cqr_entry;
758  }
759  if (!default_skin_entry)
760  {
762  fmt::format(_L("Default skin '{}' for actor '{}' not found!"), entry->default_skin, entry->dname));
763  }
764  if (default_skin_entry && num_skins == 1)
765  {
766  m_current_selection.asr_skin_entry = default_skin_entry;
767  }
768  }
769  else
770  {
771  default_skin_entry = m_dummy_cache_selection;
772  default_skin_entry->dname = "Default skin";
773  default_skin_entry->description = "Original, unmodified skin";
774  }
775 
776  if (!m_current_selection.asr_skin_entry && num_skins > 0)
777  {
778  App::GetGuiManager()->MainSelector.Show(LT_Skin, entry->guid, default_skin_entry); // Intentionally not using MSG_
779  }
780  else
781  {
782  spawn_now = true;
783  }
784  }
785  else
786  {
787  spawn_now = true;
788  }
789  break;
790 
791  default:;
792  }
793 
794  if (spawn_now)
795  {
796  if (App::GetGuiManager()->TopMenubar.ai_select)
797  {
802  }
803  else if (App::GetGuiManager()->TopMenubar.ai_select2)
804  {
809  }
810  else
811  {
813  *rq = m_current_selection;
815  }
816 
818  }
819 }
820 
822 
823 // --------------------------------
824 // Characters
825 
827 {
829 
830  // Adjust character position
831  Ogre::Vector3 spawn_pos = m_terrain->getSpawnPos();
832  float spawn_rot = 0.0f;
833 
834  // Classic behavior, retained for compatibility.
835  // Required for maps like N-Labs or F1 Track.
837  {
838  spawn_rot = 180.0f;
839  }
840 
841  // Preset position - commandline has precedence
842  if (App::cli_preset_spawn_pos->getStr() != "")
843  {
844  spawn_pos = Ogre::StringConverter::parseVector3(App::cli_preset_spawn_pos->getStr(), spawn_pos);
846  }
847  else if (App::diag_preset_spawn_pos->getStr() != "")
848  {
849  spawn_pos = Ogre::StringConverter::parseVector3(App::diag_preset_spawn_pos->getStr(), spawn_pos);
851  }
852 
853  // Preset rotation - commandline has precedence
854  if (App::cli_preset_spawn_rot->getStr() != "")
855  {
856  spawn_rot = Ogre::StringConverter::parseReal(App::cli_preset_spawn_rot->getStr(), spawn_rot);
858  }
859  else if (App::diag_preset_spawn_rot->getStr() != "")
860  {
861  spawn_rot = Ogre::StringConverter::parseReal(App::diag_preset_spawn_rot->getStr(), spawn_rot);
863  }
864 
865  spawn_pos.y = m_terrain->GetCollisions()->getSurfaceHeightBelow(spawn_pos.x, spawn_pos.z, spawn_pos.y + 1.8f);
866 
867  this->GetPlayerCharacter()->setPosition(spawn_pos);
868  this->GetPlayerCharacter()->setRotation(Ogre::Degree(spawn_rot));
869 
870  App::GetCameraManager()->GetCameraNode()->setPosition(this->GetPlayerCharacter()->getPosition());
871 
872  // Small hack to improve the spawn experience
873  for (int i = 0; i < 100; i++)
874  {
876  }
877 }
878 
879 Character* GameContext::GetPlayerCharacter() // Convenience ~ counterpart of `GetPlayerActor()`
880 {
882 }
883 
884 // --------------------------------
885 // Gameplay feats
886 
887 void GameContext::TeleportPlayer(float x, float z)
888 {
890  if (!this->GetPlayerActor())
891  {
892  this->GetPlayerCharacter()->setPosition(Ogre::Vector3(x, y, z));
893  return;
894  }
895 
896  TRIGGER_EVENT_ASYNC(SE_TRUCK_TELEPORT, this->GetPlayerActor()->ar_instance_id);
897 
898  Ogre::Vector3 translation = Ogre::Vector3(x, y, z) - this->GetPlayerActor()->ar_nodes[0].AbsPosition;
899 
900  std::vector<ActorPtr> actorsToBeamUp;
901  actorsToBeamUp.assign(this->GetPlayerActor()->ar_linked_actors.begin(), this->GetPlayerActor()->ar_linked_actors.end());
902  actorsToBeamUp.push_back(this->GetPlayerActor());
903 
904  float src_agl = std::numeric_limits<float>::max();
905  float dst_agl = std::numeric_limits<float>::max();
906  for (ActorPtr& actor : actorsToBeamUp)
907  {
908  for (int i = 0; i < actor->ar_num_nodes; i++)
909  {
910  Ogre::Vector3 pos = actor->ar_nodes[i].AbsPosition;
911  src_agl = std::min(pos.y - m_terrain->GetCollisions()->getSurfaceHeight(pos.x, pos.z), src_agl);
912  pos += translation;
913  dst_agl = std::min(pos.y - m_terrain->GetCollisions()->getSurfaceHeight(pos.x, pos.z), dst_agl);
914  }
915  }
916 
917  translation += Ogre::Vector3::UNIT_Y * (std::max(0.0f, src_agl) - dst_agl);
918 
919  for (ActorPtr& actor : actorsToBeamUp)
920  {
921  actor->resetPosition(actor->ar_nodes[0].AbsPosition + translation, false);
922  }
923 }
924 
926 {
927  // Generic escape key event
928  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_QUIT_GAME))
929  {
930  if (App::app_state->getEnum<AppState>() == AppState::MAIN_MENU)
931  {
932  if (App::GetGuiManager()->GameAbout.IsVisible())
933  {
935  }
936  else if (App::GetGuiManager()->MainSelector.IsVisible())
937  {
939  }
940  else if (App::GetGuiManager()->GameSettings.IsVisible())
941  {
943  }
944  else if (App::GetGuiManager()->GameControls.IsVisible())
945  {
947  }
948  else if (App::GetGuiManager()->MultiplayerSelector.IsVisible())
949  {
951  }
952  else if (App::GetGuiManager()->RepositorySelector.IsVisible())
953  {
955  }
956  else
957  {
959  }
960  }
961  else if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
962  {
963  if (App::GetGuiManager()->MainSelector.IsVisible())
964  {
966  }
967  else if (App::GetGuiManager()->GameControls.IsVisible())
968  {
970  }
971  else if (App::sim_state->getEnum<SimState>() == SimState::RUNNING)
972  {
974  if (App::mp_state->getEnum<MpState>() != MpState::CONNECTED)
975  {
977  }
978  }
979  else if (App::sim_state->getEnum<SimState>() == SimState::PAUSED)
980  {
983  }
984  }
985  }
986 
987  // screenshot
988  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_SCREENSHOT, 0.25f))
989  {
991  }
992 
993  // fullscreen toggle
994  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_FULLSCREEN_TOGGLE, 2.0f))
995  {
996  if (App::GetAppContext()->GetRenderWindow()->isFullScreen())
998  else
1000  }
1001 
1002  // render mode
1003  switch (App::gfx_polygon_mode->getEnum<Ogre::PolygonMode>())
1004  {
1005  case 1: App::GetCameraManager()->GetCamera()->setPolygonMode(Ogre::PM_SOLID); break;
1006  case 2: App::GetCameraManager()->GetCamera()->setPolygonMode(Ogre::PM_WIREFRAME); break;
1007  case 3: App::GetCameraManager()->GetCamera()->setPolygonMode(Ogre::PM_POINTS); break;
1008  }
1009 
1010  // Write player position to log
1011  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION &&
1012  App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_OUTPUT_POSITION))
1013  {
1014  Ogre::Vector3 position(Ogre::Vector3::ZERO);
1015  Ogre::Radian rotation(0);
1016  if (this->GetPlayerActor() == nullptr)
1017  {
1018  position = this->GetPlayerCharacter()->getPosition();
1019  rotation = this->GetPlayerCharacter()->getRotation() + Ogre::Radian(Ogre::Math::PI);
1020  }
1021  else
1022  {
1023  position = this->GetPlayerActor()->getPosition();
1024  rotation = this->GetPlayerActor()->getRotation();
1025  }
1026  Ogre::String pos = Ogre::StringUtil::format("%8.3f, %8.3f, %8.3f" , position.x, position.y, position.z);
1027  Ogre::String rot = Ogre::StringUtil::format("% 6.1f, % 6.1f, % 6.1f", 0.0f, rotation.valueDegrees() , 0.0f);
1028  LOG("Position: " + pos + ", " + rot);
1029  }
1030 
1031  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_RESET_MODE))
1032  {
1036  (App::sim_soft_reset_mode->getBool()) ? _L("Enabled soft reset mode") : _L("Enabled hard reset mode"));
1037  }
1038 }
1039 
1041 {
1042  // get new vehicle
1043  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_GET_NEW_VEHICLE))
1044  {
1046  m.payload = reinterpret_cast<void*>(new LoaderType(LT_AllBeam));
1048  }
1049 
1050  // Enter/exit truck - With a toggle delay
1051  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ENTER_OR_EXIT_TRUCK, 0.5f))
1052  {
1053  if (this->GetPlayerActor() == nullptr) // no vehicle
1054  {
1055  // find the nearest vehicle
1056  float mindist = 1000.0;
1057  ActorPtr nearest_actor = nullptr;
1058  for (ActorPtr& actor : this->GetActorManager()->GetActors())
1059  {
1060  if (!actor->ar_driveable)
1061  continue;
1062  if (actor->ar_cinecam_node[0] == NODENUM_INVALID)
1063  {
1064  LOG("cinecam missing, cannot enter the actor!");
1065  continue;
1066  }
1067  float len = 0.0f;
1068  if (this->GetPlayerCharacter())
1069  {
1070  len = actor->ar_nodes[actor->ar_cinecam_node[0]].AbsPosition.distance(this->GetPlayerCharacter()->getPosition() + Ogre::Vector3(0.0, 2.0, 0.0));
1071  }
1072  if (len < mindist)
1073  {
1074  mindist = len;
1075  nearest_actor = actor;
1076  }
1077  }
1078 
1079  if (mindist < 20.0)
1080  {
1081  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(nearest_actor))));
1082  }
1083  }
1084  else // We're in a vehicle -> If moving slowly enough, get out
1085  {
1086  if (this->GetPlayerActor()->ar_nodes[0].Velocity.squaredLength() < 1.0f ||
1087  this->GetPlayerActor()->ar_state == ActorState::NETWORKED_OK || this->GetPlayerActor()->ar_state == ActorState::NETWORKED_HIDDEN ||
1088  this->GetPlayerActor()->ar_driveable == AI)
1089  {
1090  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr())));
1091  }
1092  }
1093  }
1094 
1095  // enter next truck
1096  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ENTER_NEXT_TRUCK, 0.25f))
1097  {
1098  ActorPtr actor = this->FetchNextVehicleOnList();
1099  if (actor != this->GetPlayerActor())
1100  {
1101  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(actor))));
1102  }
1103  }
1104 
1105  // enter previous truck
1106  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ENTER_PREVIOUS_TRUCK, 0.25f))
1107  {
1108  ActorPtr actor = this->FetchPrevVehicleOnList();
1109  if (actor != this->GetPlayerActor())
1110  {
1111  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(actor))));
1112  }
1113  }
1114 
1115  // respawn last truck
1116  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_RESPAWN_LAST_TRUCK, 0.25f))
1117  {
1118  this->RespawnLastActor();
1119  }
1120 
1121  // terrain editor toggle
1123  {
1125  }
1126 
1127  // forward commands from character
1128  if (!m_player_actor)
1129  {
1130  // Find nearest actor
1131  const Ogre::Vector3 position = App::GetGameContext()->GetPlayerCharacter()->getPosition();
1132  ActorPtr nearest_actor = nullptr;
1133  float min_squared_distance = std::numeric_limits<float>::max();
1134  for (ActorPtr& actor : App::GetGameContext()->GetActorManager()->GetActors())
1135  {
1136  float squared_distance = position.squaredDistance(actor->ar_nodes[0].AbsPosition);
1137  if (squared_distance < min_squared_distance)
1138  {
1139  min_squared_distance = squared_distance;
1140  nearest_actor = actor;
1141  }
1142  }
1143 
1144  // Evaluate
1145  if (nearest_actor != nullptr &&
1146  nearest_actor->ar_import_commands &&
1147  min_squared_distance < (nearest_actor->getMinCameraRadius()*nearest_actor->getMinCameraRadius()))
1148  {
1149  // get commands
1150  for (int i = 1; i <= MAX_COMMANDS; i++) // BEWARE: commandkeys are indexed 1-MAX_COMMANDS!
1151  {
1152  int eventID = EV_COMMANDS_01 + (i - 1);
1153 
1154  nearest_actor->ar_command_key[i].playerInputValue = RoR::App::GetInputEngine()->getEventValue(eventID);
1155  }
1156  }
1157  }
1158 
1159  // AI waypoint recording
1160  if (App::GetGuiManager()->TopMenubar.ai_rec)
1161  {
1162  if (m_timer.getMilliseconds() > 1000) // Don't spam it, record every 1 sec
1163  {
1164  if (App::GetGameContext()->GetPlayerActor()) // We are in vehicle
1165  {
1166  if (App::GetGameContext()->GetPlayerActor()->getPosition().distance(prev_pos) >= 5) // Skip very close positions
1167  {
1168  ai_events waypoint;
1170  waypoint.speed = App::GetGameContext()->GetPlayerActor()->getWheelSpeed() * 3.6;
1171  if (waypoint.speed < 5)
1172  {
1173  waypoint.speed = -1;
1174  }
1175  App::GetGuiManager()->TopMenubar.ai_waypoints.push_back(waypoint);
1176  }
1178  }
1179  else // We are in feet
1180  {
1181  if (App::GetGameContext()->GetPlayerCharacter()->getPosition() != prev_pos) // Skip same positions
1182  {
1183  ai_events waypoint;
1185  App::GetGuiManager()->TopMenubar.ai_waypoints.push_back(waypoint);
1186  }
1188  }
1189  m_timer.reset();
1190  }
1191  }
1192  else
1193  {
1194  prev_pos = Ogre::Vector3::ZERO;
1195  }
1196 }
1197 
1199 {
1200  if (App::gfx_sky_mode->getEnum<GfxSkyMode>() == GfxSkyMode::BASIC)
1201  {
1202  float light = App::GetGuiManager()->TopMenubar.sky_light;
1203  Ogre::MaterialPtr sky_material = Ogre::MaterialManager::getSingleton().getByName("tracks/skyboxcol", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
1204  Ogre::GpuProgramParametersSharedPtr sky_params = sky_material->getTechnique(0)->getPass(0)->getFragmentProgramParameters();
1205 
1206  if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME))
1207  {
1208  light += 0.001;
1209  }
1210  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME))
1211  {
1212  light -= 0.001;
1213  }
1214  if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME_FAST))
1215  {
1216  light += 0.01;
1217  }
1218  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME_FAST))
1219  {
1220  light -= 0.01;
1221  }
1222 
1223  if (App::GetGuiManager()->TopMenubar.sky_light != light && light >= 0.0 && light <= 1.0)
1224  {
1226  sky_params->setNamedConstant("sky_light", light);
1227  sky_material->getTechnique(0)->getPass(0)->setFragmentProgramParameters(sky_params);
1228  App::GetGfxScene()->GetSceneManager()->setAmbientLight(Ogre::ColourValue(light, light, light));
1229  App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, fmt::format("Ambient light set to {:.1f}", light), "lightbulb.png");
1230  }
1231 }
1232 
1233 #ifdef USE_CAELUM
1234  if (App::gfx_sky_mode->getEnum<GfxSkyMode>() == GfxSkyMode::CAELUM &&
1236  {
1237  float time_factor = 1.0f;
1238 
1239  if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME))
1240  {
1241  time_factor = 1000.0f;
1242  }
1243  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME_FAST))
1244  {
1245  time_factor = 10000.0f;
1246  }
1247  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME))
1248  {
1249  time_factor = -1000.0f;
1250  }
1251  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME_FAST))
1252  {
1253  time_factor = -10000.0f;
1254  }
1255  else if (App::gfx_sky_time_cycle->getBool())
1256  {
1257  time_factor = App::gfx_sky_time_speed->getInt();
1258  }
1259 
1260  if (m_terrain->getSkyManager()->GetSkyTimeFactor() != time_factor)
1261  {
1262  m_terrain->getSkyManager()->SetSkyTimeFactor(time_factor);
1263  Str<200> msg; msg << _L("Time set to ") << m_terrain->getSkyManager()->GetPrettyTime();
1265  }
1266  }
1267 
1268 #endif // USE_CAELUM
1269  if (App::gfx_sky_mode->getEnum<GfxSkyMode>() == GfxSkyMode::SKYX &&
1271  {
1272  if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME))
1273  {
1275  }
1276  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME_FAST))
1277  {
1279  }
1280  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME))
1281  {
1283  }
1284  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME_FAST))
1285  {
1287  }
1288  else
1289  {
1291  }
1292  }
1293 }
1294 
1296 {
1298 
1299  // reload current truck
1300  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCKEDIT_RELOAD, 0.5f))
1301  {
1306  }
1307 
1308  // remove current truck
1309  if (App::GetInputEngine()->getEventBoolValue(EV_COMMON_REMOVE_CURRENT_TRUCK))
1310  {
1312  }
1313 
1314  // Front lights
1315  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_LOW_BEAMS))
1316  {
1318  // sync sidelights to lowbeams
1320  }
1321  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_CYCLE_TRUCK_LIGHTS))
1322  {
1323  // Smart cycling:
1324  // 1) all lights off
1325  // 2) sidelights on but only if any installed, otherwise skip to 3).
1326  // 3) sidelights and lowbeams on.
1327  // 4) sidelights, lowbeams and highbeams on, but only if highbeams are installed, otherwise cycle to 1).
1329  {
1331  }
1332  else if (!m_player_actor->getHeadlightsVisible())
1333  {
1336  }
1338  {
1342  }
1343  else
1344  {
1348  }
1349  }
1350  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_HIGH_BEAMS))
1351  {
1353  }
1354  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_FOG_LIGHTS))
1355  {
1357  }
1358 
1359  // Beacons
1360  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_BEACONS))
1361  {
1363  }
1364 
1365  // blinkers
1366  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_BLINK_LEFT))
1368 
1369  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_BLINK_RIGHT))
1371 
1372  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_BLINK_WARN))
1374 
1375  // custom lights
1376  for (int i = 0; i < MAX_CLIGHTS; i++)
1377  {
1378  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_LIGHTTOGGLE01 + i))
1380  }
1381 
1382  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TRUCK_REMOVE))
1383  {
1385  }
1386 
1387  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ROPELOCK))
1388  {
1390  }
1391 
1392  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_LOCK))
1393  {
1394  //m_player_actor->hookToggle(-1, HOOK_TOGGLE, -1);
1395  ActorLinkingRequest* hook_rq = new ActorLinkingRequest();
1398  hook_rq->alr_hook_action = HOOK_TOGGLE;
1400 
1401  //m_player_actor->toggleSlideNodeLock();
1402  ActorLinkingRequest* slidenode_rq = new ActorLinkingRequest();
1406  }
1407 
1408  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_AUTOLOCK))
1409  {
1410  m_player_actor->hookToggle(-2, HOOK_UNLOCK, -1); //unlock all autolocks
1411  }
1412 
1413  //strap
1414  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_SECURE_LOAD))
1415  {
1417  }
1418 
1419  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_CUSTOM_PARTICLES))
1420  {
1422  }
1423 
1424  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_DEBUG_VIEW))
1425  {
1427  // NOTE: Syncing with linked actors is done in `SyncLinkedActors()`
1428  }
1429 
1430  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_CYCLE_DEBUG_VIEWS))
1431  {
1433  // NOTE: Syncing with linked actors is done in `SyncLinkedActors()`
1434  }
1435 
1436  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_RESCUE_TRUCK, 0.5f) &&
1437  App::mp_state->getEnum<MpState>() != MpState::CONNECTED &&
1439  {
1440  ActorPtr rescuer = nullptr;
1441  for (ActorPtr& actor : App::GetGameContext()->GetActorManager()->GetActors())
1442  {
1443  if (actor->ar_rescuer_flag)
1444  {
1445  rescuer = actor;
1446  }
1447  }
1448  if (rescuer == nullptr)
1449  {
1450  App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("No rescue truck found!"), "error.png");
1451  }
1452  else
1453  {
1454  App::GetGameContext()->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(rescuer))));
1455  }
1456  }
1457 
1458  // parking brake
1459  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TRAILER_PARKING_BRAKE))
1460  {
1465  }
1466 
1467  // videocam
1468  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_VIDEOCAMERA, 0.5f))
1469  {
1471  {
1473  }
1474  else
1475  {
1477  }
1478  }
1479 
1480  // enter/exit truck - Without a delay: the vehicle must brake like braking normally
1481  if (App::GetInputEngine()->getEventBoolValue(EV_COMMON_ENTER_OR_EXIT_TRUCK))
1482  {
1483  if (m_player_actor->ar_driveable != AI)
1484  {
1485  m_player_actor->ar_brake = 0.66f;
1486  }
1487  }
1488 
1489  // toggle physics
1490  if (RoR::App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_PHYSICS))
1491  {
1492  // NOTE: Syncing with linked actors is done in `SyncLinkedActors()`
1494  }
1495 
1496  // reset truck
1497  if (App::GetInputEngine()->getEventBoolValue(EV_COMMON_RESET_TRUCK))
1498  {
1503  }
1504 
1505  // all commands
1506  for (int i = 1; i <= MAX_COMMANDS; i++) // BEWARE: commandkeys are indexed 1-MAX_COMMANDS!
1507  {
1508  int eventID = EV_COMMANDS_01 + (i - 1);
1509 
1510  m_player_actor->ar_command_key[i].playerInputValue = RoR::App::GetInputEngine()->getEventValue(eventID);
1511 
1512  for (auto id: App::GetGuiManager()->VehicleButtons.GetCommandEventID())
1513  {
1514  if (id == eventID)
1515  {
1516  m_player_actor->ar_command_key[i].playerInputValue = 1.f;
1517  }
1518  }
1519  }
1520 
1521  if (RoR::App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_FORWARDCOMMANDS))
1522  {
1525  {
1526  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("forwardcommands enabled"), "information.png");
1527  }
1528  else
1529  {
1530  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("forwardcommands disabled"), "information.png");
1531  }
1532  }
1533 
1534  if (RoR::App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_IMPORTCOMMANDS))
1535  {
1538  {
1539  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("importcommands enabled"), "information.png");
1540  }
1541  else
1542  {
1543  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("importcommands disabled"), "information.png");
1544  }
1545  }
1546 
1547  if (m_player_actor->getReplay())
1548  {
1550  }
1551 }
1552 
1553 // Internal heper for UpdateAirplaneInputEvents()
1554 void smoothValue(float& ref, float value, float rate)
1555 {
1556  if (value < -1)
1557  value = -1;
1558  if (value > 1)
1559  value = 1;
1560  // smooth!
1561  if (ref > value)
1562  {
1563  ref -= rate;
1564  if (ref < value)
1565  ref = value;
1566  }
1567  else if (ref < value)
1568  ref += rate;
1569 }
1570 
1572 {
1574  return;
1575 
1576  // autopilot
1578  {
1580  }
1581 
1582  // steer
1583  float commandrate = 4.0;
1586  float sum_steer = -tmp_left + tmp_right;
1587  smoothValue(m_player_actor->ar_aileron, sum_steer, dt * commandrate);
1590 
1591  // pitch
1593  float tmp_pitch_down = App::GetInputEngine()->getEventValue(EV_AIRPLANE_ELEVATOR_DOWN);
1594  float sum_pitch = tmp_pitch_down - tmp_pitch_up;
1595  smoothValue(m_player_actor->ar_elevator, sum_pitch, dt * commandrate);
1596 
1597  // rudder
1598  float tmp_rudder_left = App::GetInputEngine()->getEventValue(EV_AIRPLANE_RUDDER_LEFT);
1599  float tmp_rudder_right = App::GetInputEngine()->getEventValue(EV_AIRPLANE_RUDDER_RIGHT);
1600  float sum_rudder = tmp_rudder_left - tmp_rudder_right;
1601  smoothValue(m_player_actor->ar_rudder, sum_rudder, dt * commandrate);
1602 
1603  // brakes
1605  {
1607  }
1608 
1609  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_PARKING_BRAKE))
1610  {
1612  }
1613 
1614  // reverse
1615  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_REVERSE))
1616  {
1617  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1618  {
1620  }
1621  }
1622 
1623  // engines
1624  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_TOGGLE_ENGINES))
1625  {
1626  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1627  {
1629  }
1630  }
1631 
1632  // flaps
1633  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_FLAPS_NONE))
1634  {
1635  if (m_player_actor->ar_aerial_flap > 0)
1636  {
1638  }
1639  }
1640 
1641  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_FLAPS_FULL))
1642  {
1643  if (m_player_actor->ar_aerial_flap < 5)
1644  {
1646  }
1647  }
1648 
1649  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_FLAPS_LESS))
1650  {
1651  if (m_player_actor->ar_aerial_flap > 0)
1652  {
1654  }
1655  }
1656 
1658  {
1659  if (m_player_actor->ar_aerial_flap < 5)
1660  {
1662  }
1663  }
1664 
1665  // airbrakes
1667  {
1669  {
1671  }
1672  }
1673 
1675  {
1677  {
1679  }
1680  }
1681 
1683  {
1685  {
1687  }
1688  }
1689 
1691  {
1693  {
1695  }
1696  }
1697 
1698  // throttle
1700  if (tmp_throttle > 0)
1701  {
1702  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1703  {
1704  m_player_actor->ar_aeroengines[i]->setThrottle(tmp_throttle);
1705  }
1706  }
1707 
1708  if (App::GetInputEngine()->isEventDefined(EV_AIRPLANE_THROTTLE_AXIS))
1709  {
1711  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1712  {
1714  }
1715  }
1716 
1717  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_THROTTLE_DOWN, 0.1f))
1718  {
1719  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1720  {
1722  }
1723  }
1724 
1725  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_THROTTLE_UP, 0.1f))
1726  {
1727  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1728  {
1730  }
1731  }
1732 
1733  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_THROTTLE_NO, 0.1f))
1734  {
1735  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1736  {
1738  }
1739  }
1740 
1741  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_THROTTLE_FULL, 0.1f))
1742  {
1743  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1744  {
1746  }
1747  }
1748 
1749  // autopilot
1751  {
1752  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1753  {
1755  }
1756  }
1757 }
1758 
1760 {
1761  // throttle
1762  if (App::GetInputEngine()->isEventDefined(EV_BOAT_THROTTLE_AXIS))
1763  {
1765  // use negative values also!
1766  f = f * 2 - 1;
1767  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1769  }
1770 
1771  if (App::GetInputEngine()->getEventBoolValueBounce(EV_BOAT_THROTTLE_DOWN, 0.1f))
1772  {
1773  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1775  }
1776 
1777  if (App::GetInputEngine()->getEventBoolValueBounce(EV_BOAT_THROTTLE_UP, 0.1f))
1778  {
1779  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1781  }
1782 
1783  // steer
1784  float tmp_steer_left = App::GetInputEngine()->getEventValue(EV_BOAT_STEER_LEFT);
1785  float tmp_steer_right = App::GetInputEngine()->getEventValue(EV_BOAT_STEER_RIGHT);
1787  float sum_steer = (tmp_steer_left - tmp_steer_right) * dt;
1788  // do not center the rudder!
1789  if (fabs(sum_steer) > 0 && stime <= 0)
1790  {
1791  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1793  }
1794 
1796  {
1799  sum_steer = (tmp_steer_left - tmp_steer_right);
1800  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1801  m_player_actor->ar_screwprops[i]->setRudder(sum_steer);
1802  }
1803 
1804  // rudder
1806  {
1807  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1809  }
1810 
1811  // reverse
1813  {
1814  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1816  }
1817 }
1818 
1820 {
1822  return;
1823 #ifdef USE_ANGELSCRIPT
1825  return;
1826 #endif // USE_ANGELSCRIPT
1827 
1828  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_LEFT_MIRROR_LEFT))
1830 
1831  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_LEFT_MIRROR_RIGHT))
1833 
1834  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_RIGHT_MIRROR_LEFT))
1836 
1837  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_RIGHT_MIRROR_RIGHT))
1839 
1840  // steering
1845 
1846  float sum = -std::max(tmp_left_digital, tmp_left_analog) + std::max(tmp_right_digital, tmp_right_analog);
1847 
1848  m_player_actor->ar_hydro_dir_command = Ogre::Math::Clamp(sum, -1.0f, 1.0f);
1849 
1850  m_player_actor->ar_hydro_speed_coupling = (tmp_left_digital >= tmp_left_analog) && (tmp_right_digital >= tmp_right_analog);
1851 
1853  {
1855  }
1856 
1857  if (m_player_actor->ar_brake > 1.0f / 6.0f)
1858  {
1860  }
1861  else
1862  {
1864  }
1865 
1866  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_INTER_AXLE_DIFF))
1867  {
1870  }
1871 
1872  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_INTER_WHEEL_DIFF))
1873  {
1876  }
1877 
1878  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_TCASE_4WD_MODE))
1879  {
1882  }
1883 
1884  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_TCASE_GEAR_RATIO))
1885  {
1888  }
1889 
1891  {
1892  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_HORN))
1893  {
1894  SOUND_TOGGLE(m_player_actor, SS_TRIG_HORN); // Police siren
1895  }
1896  }
1897  else
1898  {
1899  if (App::GetInputEngine()->getEventBoolValue(EV_TRUCK_HORN) || App::GetGuiManager()->VehicleButtons.GetHornButtonState())
1900  {
1902  }
1903  else
1904  {
1906  }
1907  }
1908 
1909  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_PARKING_BRAKE) &&
1910  !App::GetInputEngine()->getEventBoolValue(EV_TRUCK_TRAILER_PARKING_BRAKE))
1911  {
1913  }
1914 
1915  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_ANTILOCK_BRAKE))
1916  {
1918  }
1919 
1920  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TRACTION_CONTROL))
1921  {
1923  }
1924 
1925  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_CRUISE_CONTROL))
1926  {
1928  }
1929 
1931  {
1933  }
1934 
1936  for (ActorPtr linked_actor : m_player_actor->ar_linked_actors)
1937  {
1938  linked_actor->UpdatePropAnimInputEvents();
1939  }
1940 }
1941 
RoR::MSG_EDI_MODIFY_PROJECT_REQUESTED
@ MSG_EDI_MODIFY_PROJECT_REQUESTED
Payload = RoR::UpdateProjectRequest* (owner)
Definition: Application.h:137
RoR::GfxSkyMode::BASIC
@ BASIC
Basic (fastest)
RoR::Actor::setHighBeamsVisible
void setHighBeamsVisible(bool val)
Definition: Actor.h:180
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::EV_COMMON_SCREENSHOT
@ EV_COMMON_SCREENSHOT
take a screenshot
Definition: InputEngine.h:261
RoR::EV_AIRPLANE_RUDDER_RIGHT
@ EV_AIRPLANE_RUDDER_RIGHT
rudder right
Definition: InputEngine.h:91
MAX_COMMANDS
static const int MAX_COMMANDS
maximum number of commands per actor
Definition: SimConstants.h:28
RoR::Character::getRotation
Ogre::Radian getRotation() const
Definition: Character.h:54
RoR::EV_AIRPLANE_THROTTLE
@ EV_AIRPLANE_THROTTLE
Definition: InputEngine.h:94
RoR::CacheSystem::LoadAssetPack
void LoadAssetPack(CacheEntryPtr &t_dest, Ogre::String const &assetpack_filename)
Adds asset pack to the requesting cache entry's resource group.
Definition: CacheSystem.cpp:1222
RoR::App::gfx_polygon_mode
CVar * gfx_polygon_mode
Definition: Application.cpp:215
RoR::App::GetNetwork
Network * GetNetwork()
Definition: Application.cpp:283
RoR::Character::setPosition
void setPosition(Ogre::Vector3 position)
Definition: Character.cpp:85
RoR::ModifyProjectRequest::mpr_subject
std::string mpr_subject
Definition: CacheSystem.h:251
RoR::Actor::getMinCameraRadius
float getMinCameraRadius()
Definition: Actor.h:244
RoR::GUI::MultiplayerSelector::SetVisible
void SetVisible(bool v)
Definition: GUI_MultiplayerSelector.cpp:392
RoR::GUI::TopMenubar::ai_fname2
Ogre::String ai_fname2
Definition: GUI_TopMenubar.h:87
RoR::Autopilot::getThrottle
float getThrottle(float thrtl, float dt)
Definition: AutoPilot.cpp:225
SkyXManager.h
RoR::Actor::ar_vehicle_ai
VehicleAIPtr ar_vehicle_ai
Definition: Actor.h:386
RoR::ActorSpawnRequest::asr_net_color
int asr_net_color
Definition: SimData.h:817
RoR::CacheEntry::dname
Ogre::String dname
name parsed from the file
Definition: CacheSystem.h:70
RoR::EV_AIRPLANE_THROTTLE_DOWN
@ EV_AIRPLANE_THROTTLE_DOWN
decreases the airplane thrust
Definition: InputEngine.h:96
RoR::Actor::getWheelSpeed
float getWheelSpeed() const
Definition: Actor.h:89
RoR::GUI::TopMenubar::ai_fname
Ogre::String ai_fname
Definition: GUI_TopMenubar.h:76
ai_events::position
Ogre::Vector3 position
Definition: GUI_TopMenubar.h:38
RoR::ActorModifyRequest::Type::WAKE_UP
@ WAKE_UP
y
float y
Definition: (ValueTypes) quaternion.h:6
RoR::ActorSpawnRequest::Origin::NETWORK
@ NETWORK
Remote controlled.
RoR::MSG_SIM_MODIFY_ACTOR_REQUESTED
@ MSG_SIM_MODIFY_ACTOR_REQUESTED
Payload = RoR::ActorModifyRequest* (owner)
Definition: Application.h:111
RoR::GUI::GameSettings::SetVisible
void SetVisible(bool v)
Definition: GUI_GameSettings.cpp:453
RoR::Terrn2Def
Definition: Terrn2FileFormat.h:48
RoR::GfxScene::GetEnvMap
GfxEnvmap & GetEnvMap()
Definition: GfxScene.h:62
RoR::MACHINE
@ MACHINE
its a machine
Definition: SimData.h:107
RoR::EV_COMMON_RESET_TRUCK
@ EV_COMMON_RESET_TRUCK
reset truck to original starting position
Definition: InputEngine.h:257
OverlayWrapper.h
RoR::GameContext::ModifyActor
void ModifyActor(ActorModifyRequest &rq)
Definition: GameContext.cpp:357
RoR::Actor::ar_physics_paused
bool ar_physics_paused
Sim state.
Definition: Actor.h:472
RoR::EV_TRUCK_RIGHT_MIRROR_RIGHT
@ EV_TRUCK_RIGHT_MIRROR_RIGHT
Definition: InputEngine.h:330
RoR::MSG_EDI_RELOAD_BUNDLE_REQUESTED
@ MSG_EDI_RELOAD_BUNDLE_REQUESTED
Payload = RoR::CacheEntryPtr* (owner)
Definition: Application.h:134
RoR::InputSourceType::IST_ANALOG
@ IST_ANALOG
RoR::TRUCK
@ TRUCK
its a truck (or other land vehicle)
Definition: SimData.h:104
RoR::HOOK_TOGGLE
@ HOOK_TOGGLE
Definition: SimData.h:71
RoR::Actor::ar_filename
std::string ar_filename
Attribute; filled at spawn.
Definition: Actor.h:414
RoR::Terrn2Def::assetpack_files
std::list< std::string > assetpack_files
Definition: Terrn2FileFormat.h:65
RoR::MpState::CONNECTED
@ CONNECTED
RoR::Terrain::getMaxTerrainSize
Ogre::Vector3 getMaxTerrainSize()
Definition: Terrain.cpp:528
RoR::GUIManager::FrictionSettings
GUI::FrictionSettings FrictionSettings
Definition: GUIManager.h:117
RoR::EV_COMMON_TOGGLE_TRUCK_BEACONS
@ EV_COMMON_TOGGLE_TRUCK_BEACONS
toggle truck beacons
Definition: InputEngine.h:273
RoR::EV_TRUCK_RIGHT_MIRROR_LEFT
@ EV_TRUCK_RIGHT_MIRROR_LEFT
Definition: InputEngine.h:329
RoR::EV_TRUCK_BLINK_RIGHT
@ EV_TRUCK_BLINK_RIGHT
toggle right direction indicator (blinker)
Definition: InputEngine.h:304
RoR::Actor::toggleAxleDiffMode
void toggleAxleDiffMode()
Definition: Actor.cpp:1305
RoR::GfxScene::GetSimDataBuffer
GameContextSB & GetSimDataBuffer()
Definition: GfxScene.h:61
MAX_CLIGHTS
static const int MAX_CLIGHTS
See RoRnet::Lightmask and enum events in InputEngine.h.
Definition: SimConstants.h:35
RoR::GameContext::m_last_skin_selection
CacheEntryPtr m_last_skin_selection
Definition: GameContext.h:198
RoR::Actor::setHeadlightsVisible
void setHeadlightsVisible(bool val)
Definition: Actor.h:178
RoR::LT_AddonPart
@ LT_AddonPart
Definition: Application.h:290
RoR::CharacterFactory::UndoRemoteActorCoupling
void UndoRemoteActorCoupling(ActorPtr actor)
Definition: CharacterFactory.cpp:90
RoR::Terrn2Parser
Definition: Terrn2FileFormat.h:80
RoR::EV_COMMON_ENTER_OR_EXIT_TRUCK
@ EV_COMMON_ENTER_OR_EXIT_TRUCK
enter or exit a truck
Definition: InputEngine.h:229
RoR::App::GetCameraManager
CameraManager * GetCameraManager()
Definition: Application.cpp:274
RoR::ActorSpawnRequest::Origin::CONFIG_FILE
@ CONFIG_FILE
'Preselected vehicle' in RoR.cfg or command line
RoR::ActorSpawnRequest::asr_origin
Origin asr_origin
Definition: SimData.h:814
RoR::CacheEntryPtr
RefCountingObjectPtr< CacheEntry > CacheEntryPtr
Definition: ForwardDeclarations.h:184
RoR::node_t::AbsPosition
Ogre::Vector3 AbsPosition
absolute position in the world (shaky)
Definition: SimData.h:305
RoR::EV_BOAT_STEER_LEFT_AXIS
@ EV_BOAT_STEER_LEFT_AXIS
steer left (analog value!)
Definition: InputEngine.h:104
VehicleAI.h
Simple waypoint AI.
RoR::App::GetGuiManager
GUIManager * GetGuiManager()
Definition: Application.cpp:268
RoR::Actor::ar_parking_brake
bool ar_parking_brake
Definition: Actor.h:403
RoR::App::sim_soft_reset_mode
CVar * sim_soft_reset_mode
Definition: Application.cpp:109
RoRnet::UserInfo
Definition: RoRnet.h:168
RoR::CacheEntry::skin_def
std::shared_ptr< RoR::SkinDef > skin_def
Cached skin info, added on first use or during cache rebuild.
Definition: CacheSystem.h:93
RoR::ActorLinkingRequest
Estabilishing a physics linkage between 2 actors modifies a global linkage table and triggers immedia...
Definition: SimData.h:863
RoR::EV_COMMON_TOGGLE_RESET_MODE
@ EV_COMMON_TOGGLE_RESET_MODE
toggle truck reset truck mode (soft vs. hard)
Definition: InputEngine.h:258
DashBoardManager.h
RoR::Actor::ar_linked_actors
ActorPtrVec ar_linked_actors
Sim state; other actors linked using 'hooks'.
Definition: Actor.h:304
RoR::GameContext::m_character_factory
CharacterFactory m_character_factory
Definition: GameContext.h:205
GUI_FrictionSettings.h
RoR::EngineSim::autoShiftSet
void autoShiftSet(int mode)
Definition: EngineSim.cpp:1157
RoR::GfxActor::ToggleDebugView
void ToggleDebugView()
Definition: GfxActor.cpp:1431
RoR::EV_COMMON_TOGGLE_TRUCK_FOG_LIGHTS
@ EV_COMMON_TOGGLE_TRUCK_FOG_LIGHTS
toggle truck fog lights (on/off); doesn't need low beams, doesn't use 't' lights.
Definition: InputEngine.h:277
RoR::Actor::ar_instance_id
ActorInstanceID_t ar_instance_id
Static attr; session-unique ID.
Definition: Actor.h:365
RoR::CacheSystem::FindEntryByFilename
CacheEntryPtr FindEntryByFilename(RoR::LoaderType type, bool partial, const std::string &filename)
Returns NULL if none found.
Definition: CacheSystem.cpp:177
z
float z
Definition: (ValueTypes) quaternion.h:7
RoR::Actor::ar_num_nodes
int ar_num_nodes
Definition: Actor.h:273
RoR::Collisions::getSurfaceHeightBelow
float getSurfaceHeightBelow(float x, float z, float height)
Definition: Collisions.cpp:676
SkyManager.h
RoR::AppState::MAIN_MENU
@ MAIN_MENU
RoR::LT_Skin
@ LT_Skin
Definition: Application.h:288
RoR::GfxScene::RemoveGfxActor
void RemoveGfxActor(RoR::GfxActor *gfx_actor)
Definition: GfxScene.cpp:345
GUI_TopMenubar.h
RoR::HOOK_UNLOCK
@ HOOK_UNLOCK
Definition: SimData.h:70
RoR::GameContext::m_last_section_config
Ogre::String m_last_section_config
Definition: GameContext.h:200
RoR::App::GetAppContext
AppContext * GetAppContext()
Definition: Application.cpp:265
RoR::GUI::TopMenubar::ai_skin2
std::string ai_skin2
Definition: GUI_TopMenubar.h:90
RoR::NODENUM_INVALID
static const NodeNum_t NODENUM_INVALID
Definition: ForwardDeclarations.h:53
RoR::Actor::getFogLightsVisible
bool getFogLightsVisible() const
Definition: Actor.h:181
RoR::GfxActor::CycleDebugViews
void CycleDebugViews()
Definition: GfxActor.cpp:1457
RoR::Actor::toggleWheelDiffMode
void toggleWheelDiffMode()
Definition: Actor.cpp:1297
format
Truck file format(technical spec)
RoR::MSG_SIM_UNPAUSE_REQUESTED
@ MSG_SIM_UNPAUSE_REQUESTED
Definition: Application.h:106
RoR::EV_COMMON_AUTOLOCK
@ EV_COMMON_AUTOLOCK
unlock autolock hook node
Definition: InputEngine.h:226
RoR::GameContext::~GameContext
~GameContext()
Definition: GameContext.cpp:58
RoR::SS_TRIG_BRAKE
@ SS_TRIG_BRAKE
Definition: SoundScriptManager.h:60
RoR::Terrain::getSkyManager
SkyManager * getSkyManager()
Definition: Terrain.cpp:545
RoR::EV_TRUCK_BLINK_WARN
@ EV_TRUCK_BLINK_WARN
toggle all direction indicators
Definition: InputEngine.h:305
RoR::EV_AIRPLANE_AIRBRAKES_NONE
@ EV_AIRPLANE_AIRBRAKES_NONE
Definition: InputEngine.h:80
RoR::GameContext::UpdateCommonInputEvents
void UpdateCommonInputEvents(float dt)
Definition: GameContext.cpp:1295
RoR::ActorLinkingRequest::alr_type
ActorLinkingRequestType alr_type
Definition: SimData.h:866
RoR::GameContext::GetPlayerCharacter
Character * GetPlayerCharacter()
Definition: GameContext.cpp:879
RoR::CameraManager::NotifyVehicleChanged
void NotifyVehicleChanged(ActorPtr new_vehicle)
Definition: CameraManager.cpp:629
RoR::EV_COMMON_ENTER_PREVIOUS_TRUCK
@ EV_COMMON_ENTER_PREVIOUS_TRUCK
enter previous truck
Definition: InputEngine.h:231
RoR::CVar::getBool
bool getBool() const
Definition: CVar.h:98
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::Actor::ar_brake
Ogre::Real ar_brake
Physics state; braking intensity.
Definition: Actor.h:388
RoR::ActorManager::FindActorInsideBox
ActorPtr FindActorInsideBox(Collisions *collisions, const Ogre::String &inst, const Ogre::String &box)
Definition: ActorManager.cpp:848
RoR::Actor::ar_engine
EngineSim * ar_engine
Definition: Actor.h:368
RoR::GameContext::OnLoaderGuiApply
void OnLoaderGuiApply(RoR::LoaderType type, CacheEntryPtr entry, std::string sectionconfig)
GUI callback.
Definition: GameContext.cpp:690
RoR::App::GetOverlayWrapper
OverlayWrapper * GetOverlayWrapper()
Definition: Application.cpp:267
RoR::ActorModifyRequest::Type::RESTORE_SAVED
@ RESTORE_SAVED
RoR::CacheEntry::tuneup_def
RoR::TuneupDefPtr tuneup_def
Cached tuning info, added on first use or during cache rebuild.
Definition: CacheSystem.h:94
RoR::CacheQuery
Definition: CacheSystem.h:175
RoR::CharacterFactory::CreateLocalCharacter
Character * CreateLocalCharacter()
Definition: CharacterFactory.cpp:32
RoR::EV_TRUCK_CRUISE_CONTROL
@ EV_TRUCK_CRUISE_CONTROL
toggle cruise control
Definition: InputEngine.h:309
RoR::LogFormat
void LogFormat(const char *format,...)
Improved logging utility. Uses fixed 2Kb buffer.
Definition: Application.cpp:367
RoR::FlareType::SIDELIGHT
@ SIDELIGHT
RoR::GameContext::m_last_tuneup_selection
CacheEntryPtr m_last_tuneup_selection
Definition: GameContext.h:199
RoR::Collisions::getPosition
Ogre::Vector3 getPosition(const Ogre::String &inst, const Ogre::String &box)
Definition: Collisions.cpp:1134
RoR::Actor::toggleCustomParticles
void toggleCustomParticles()
Definition: Actor.cpp:3142
RoR::Actor::ar_toggle_ropes
bool ar_toggle_ropes
Sim state.
Definition: Actor.h:470
AppContext.h
System integration layer; inspired by OgreBites::ApplicationContext.
Console.h
RoR::Console::putMessage
void putMessage(MessageArea area, MessageType type, std::string const &msg, std::string icon="")
Definition: Console.cpp:97
RoR::ActorManager::FetchActorDef
RigDef::DocumentPtr FetchActorDef(std::string filename, bool predefined_on_terrain=false)
Definition: ActorManager.cpp:1275
RoR::GUIManager::GameControls
GUI::GameControls GameControls
Definition: GUIManager.h:119
RoR::EV_COMMON_GET_NEW_VEHICLE
@ EV_COMMON_GET_NEW_VEHICLE
get new vehicle
Definition: InputEngine.h:244
RoR::GameContext::TeleportPlayer
void TeleportPlayer(float x, float z)
Definition: GameContext.cpp:887
RoR::GameContext::UpdateActors
void UpdateActors()
Definition: GameContext.cpp:586
RoR::EV_TRUCK_TOGGLE_FORWARDCOMMANDS
@ EV_TRUCK_TOGGLE_FORWARDCOMMANDS
toggle forwardcommands
Definition: InputEngine.h:361
RoR::Actor::ar_trailer_parking_brake
bool ar_trailer_parking_brake
Definition: Actor.h:404
RoR::EV_TRUCK_TRACTION_CONTROL
@ EV_TRUCK_TRACTION_CONTROL
toggle antilockbrake system
Definition: InputEngine.h:369
RoR::GameContext::RespawnLastActor
void RespawnLastActor()
Definition: GameContext.cpp:597
RoR::LT_Load
@ LT_Load
Definition: Application.h:286
RoR::EV_BOAT_THROTTLE_DOWN
@ EV_BOAT_THROTTLE_DOWN
decrease throttle
Definition: InputEngine.h:108
RoR::LT_Airplane
@ LT_Airplane
Definition: Application.h:283
RoR::ActorManager::FetchPreviousVehicleOnList
const ActorPtr & FetchPreviousVehicleOnList(ActorPtr player, ActorPtr prev_player)
Definition: ActorManager.cpp:1012
RoR::ActorSpawnRequest::asr_working_tuneup
TuneupDefPtr asr_working_tuneup
Only filled when editing tuneup via Tuning menu.
Definition: SimData.h:813
RoR::SS_TRIG_PUMP
@ SS_TRIG_PUMP
Definition: SoundScriptManager.h:61
RoR::EngineSim::SetAutoMode
void SetAutoMode(RoR::SimGearboxMode mode)
Definition: EngineSim.cpp:847
TuneupFileFormat.h
The vehicle tuning system; applies addonparts and user overrides to vehicles.
RoR::App::cli_preset_spawn_rot
CVar * cli_preset_spawn_rot
Definition: Application.cpp:181
RoR::Actor::GetGfxActor
GfxActor * GetGfxActor()
Definition: Actor.h:259
RoR::EV_COMMON_ENTER_NEXT_TRUCK
@ EV_COMMON_ENTER_NEXT_TRUCK
enter next truck
Definition: InputEngine.h:230
RoR::GameContext::m_actor_manager
ActorManager m_actor_manager
Definition: GameContext.h:192
RoR::ModifyProjectRequestType::TUNEUP_USE_ADDONPART_SET
@ TUNEUP_USE_ADDONPART_SET
'subject' is addonpart filename.
RoR::GUI::TopMenubar::ai_waypoints
std::vector< ai_events > ai_waypoints
Definition: GUI_TopMenubar.h:66
RoR::GUIManager::GameSettings
GUI::GameSettings GameSettings
Definition: GUIManager.h:108
RoR::Actor::ar_aerial_flap
int ar_aerial_flap
Sim state; state of aircraft flaps (values: 0-5)
Definition: Actor.h:410
RoR::LT_Car
@ LT_Car
Definition: Application.h:281
RoR::Screwprop::setRudder
void setRudder(float val)
Definition: ScrewProp.cpp:89
RoR::ActorState::LOCAL_SIMULATED
@ LOCAL_SIMULATED
simulated (local) actor
RoR::App::sim_state
CVar * sim_state
Definition: Application.cpp:96
RoR::CacheEntry::sectionconfigs
std::vector< Ogre::String > sectionconfigs
Definition: CacheSystem.h:135
RoR::CameraManager::GetCameraNode
Ogre::SceneNode * GetCameraNode()
Definition: CameraManager.h:63
Utils.h
RoR::ActorSpawnRequest::asr_filename
std::string asr_filename
Definition: SimData.h:806
RoR::NOT_DRIVEABLE
@ NOT_DRIVEABLE
not drivable at all
Definition: SimData.h:103
RoR::GUI::MainSelector::Show
void Show(LoaderType type, std::string const &filter_guid="", CacheEntryPtr advertised_entry=nullptr)
Definition: GUI_MainSelector.cpp:65
smoothValue
void smoothValue(float &ref, float value, float rate)
Definition: GameContext.cpp:1554
RoR::EV_COMMON_FULLSCREEN_TOGGLE
@ EV_COMMON_FULLSCREEN_TOGGLE
Definition: InputEngine.h:237
RoR::EV_AIRPLANE_RUDDER_LEFT
@ EV_AIRPLANE_RUDDER_LEFT
rudder left
Definition: InputEngine.h:90
RoR::Actor::displayAxleDiffMode
void displayAxleDiffMode()
Cycles through the available inter axle diff modes.
Definition: Actor.cpp:1313
RoR::GameContextSB::simbuf_player_actor
ActorPtr simbuf_player_actor
Definition: SimBuffers.h:201
RoR::Actor::ar_dashboard
DashBoardManager * ar_dashboard
Definition: Actor.h:422
RoR::Actor::tractioncontrolToggle
void tractioncontrolToggle()
Definition: Actor.cpp:3698
RoR::CacheEntry::description
Ogre::String description
Definition: CacheSystem.h:98
RoR::LT_Extension
@ LT_Extension
Definition: Application.h:287
RoR::CacheQueryResult::cqr_entry
CacheEntryPtr cqr_entry
Definition: CacheSystem.h:161
RoR::InputEngine::getEventBoolValueBounce
bool getEventBoolValueBounce(int eventID, float time=0.2f)
Definition: InputEngine.cpp:715
RoR::collision_box_t
Definition: SimData.h:715
RefCountingObjectPtr< CacheEntry >
RoR::MSG_APP_DISPLAY_WINDOWED_REQUESTED
@ MSG_APP_DISPLAY_WINDOWED_REQUESTED
Definition: Application.h:81
RoR::InputEngine::getEventValue
float getEventValue(int eventID, bool pure=false, InputSourceType valueSource=InputSourceType::IST_ANY)
valueSource: IST_ANY=digital and analog devices, IST_DIGITAL=only digital, IST_ANALOG=only analog
Definition: InputEngine.cpp:911
RoR::Actor::beaconsToggle
void beaconsToggle()
Definition: Actor.cpp:3707
RoR::ActorSpawnRequest::Origin::SAVEGAME
@ SAVEGAME
User spawned and part of a savegame.
RoR::SE_TRUCK_EXIT
@ SE_TRUCK_EXIT
triggered when switching from vehicle mode to person mode, the argument refers to the actor ID of the...
Definition: ScriptEvents.h:36
RoR::Console::CONSOLE_SYSTEM_ERROR
@ CONSOLE_SYSTEM_ERROR
Definition: Console.h:52
GUIManager.h
RoR::App::diag_preset_spawn_rot
CVar * diag_preset_spawn_rot
Definition: Application.cpp:142
RoR::Actor::ar_forward_commands
bool ar_forward_commands
Sim state.
Definition: Actor.h:468
RoR::Actor::ar_left_mirror_angle
float ar_left_mirror_angle
Sim state; rear view mirror angle.
Definition: Actor.h:405
RoR::AeroEngine::toggleReverse
virtual void toggleReverse()=0
RoR::GfxActor::SetVideoCamState
void SetVideoCamState(VideoCamState state)
Definition: GfxActor.cpp:305
Actor.h
RoR::EV_AIRPLANE_REVERSE
@ EV_AIRPLANE_REVERSE
reverse the turboprops
Definition: InputEngine.h:89
RoR::App::GetScriptEngine
ScriptEngine * GetScriptEngine()
Definition: Application.cpp:278
RoR::GfxScene::GetSceneManager
Ogre::SceneManager * GetSceneManager()
Definition: GfxScene.h:64
RoR::GUI::TopMenubar::ai_menu
bool ai_menu
Definition: GUI_TopMenubar.h:83
RoR::Actor::ar_right_mirror_angle
float ar_right_mirror_angle
Sim state; rear view mirror angle.
Definition: Actor.h:406
RoR::GUI::FrictionSettings::AnalyzeTerrain
void AnalyzeTerrain()
Definition: GUI_FrictionSettings.cpp:138
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:789
EngineSim.h
RoR::SkyXManager::GetSkyX
SkyX::SkyX * GetSkyX()
Definition: SkyXManager.h:52
RoR::GUI::TopMenubar::sky_light
float sky_light
Definition: GUI_TopMenubar.h:108
RoR::Actor::SoftReset
void SoftReset()
Definition: Actor.cpp:1523
RoR::SimGearboxMode::AUTO
@ AUTO
Automatic shift.
RoR::AeroEngine::flipStart
virtual void flipStart()=0
RoR::Terrn2Parser::LoadTerrn2
bool LoadTerrn2(Terrn2Def &def, Ogre::DataStreamPtr &ds)
Definition: Terrn2FileFormat.cpp:38
RoR::App::sim_tuning_enabled
CVar * sim_tuning_enabled
Definition: Application.cpp:112
RoR::MSG_APP_DISPLAY_FULLSCREEN_REQUESTED
@ MSG_APP_DISPLAY_FULLSCREEN_REQUESTED
Definition: Application.h:80
RoR::AppContext::GetForceFeedback
RoR::ForceFeedback & GetForceFeedback()
Definition: AppContext.h:68
RoR::GameContext::SpawnActor
ActorPtr SpawnActor(ActorSpawnRequest &rq)
Definition: GameContext.cpp:191
RoR::Terrain::GetHeightAt
float GetHeightAt(float x, float z)
Definition: Terrain.cpp:535
RoR::LT_Boat
@ LT_Boat
Definition: Application.h:282
RoR::App::mp_state
CVar * mp_state
Definition: Application.cpp:115
RoR::EV_AIRPLANE_FLAPS_MORE
@ EV_AIRPLANE_FLAPS_MORE
one step more flaps.
Definition: InputEngine.h:86
Replay.h
RoR::ActorModifyRequest::amr_actor
ActorInstanceID_t amr_actor
Definition: SimData.h:843
RoR::Actor::getReplay
Replay * getReplay()
Definition: Actor.cpp:4473
RoR::GameContext::UpdateGlobalInputEvents
void UpdateGlobalInputEvents()
Definition: GameContext.cpp:925
RoR::EV_TRUCK_STEER_LEFT
@ EV_TRUCK_STEER_LEFT
steer left
Definition: InputEngine.h:357
RoR::VideoCamState::VCSTATE_ENABLED_OFFLINE
@ VCSTATE_ENABLED_OFFLINE
RoR::ActorModifyRequest::Type::RESET_ON_INIT_POS
@ RESET_ON_INIT_POS
RoR::GUI::GameAbout::SetVisible
void SetVisible(bool v)
Definition: GUI_GameAbout.cpp:156
RoR::LT_Truck
@ LT_Truck
Definition: Application.h:280
RoR::GfxActor::GetVideoCamState
VideoCamState GetVideoCamState() const
Definition: GfxActor.h:137
RoR::ActorLinkingRequest::alr_hook_action
HookAction alr_hook_action
Definition: SimData.h:869
RoR::ActorSpawnRequest::asr_config
Ogre::String asr_config
Definition: SimData.h:807
RoR::EV_BOAT_THROTTLE_UP
@ EV_BOAT_THROTTLE_UP
increase throttle
Definition: InputEngine.h:109
RoR::Actor::ar_aeroengines
AeroEngine * ar_aeroengines[MAX_AEROENGINES]
Definition: Actor.h:318
RoR::GameContext::m_msg_chain_end
Message * m_msg_chain_end
Definition: GameContext.h:185
RoR::VehicleAI::isActive
bool isActive()
Returns the status of the AI.
Definition: VehicleAI.cpp:58
ScrewProp.h
RoR::CameraManager::GetCamera
Ogre::Camera * GetCamera()
Definition: CameraManager.h:64
RoR::Actor::ar_screwprops
Screwprop * ar_screwprops[MAX_SCREWPROPS]
Definition: Actor.h:320
RoR::EngineSim::DRIVE
@ DRIVE
Definition: EngineSim.h:133
RoR::EV_TRUCK_TRAILER_PARKING_BRAKE
@ EV_TRUCK_TRAILER_PARKING_BRAKE
toggle trailer parking brake
Definition: InputEngine.h:328
RoR::ActorManager::UpdateSleepingState
void UpdateSleepingState(ActorPtr player_actor, float dt)
Definition: ActorManager.cpp:779
RoR::GameContext::ChainMessage
void ChainMessage(Message m)
Add to last pushed message's chain.
Definition: GameContext.cpp:73
RoR::EV_AIRPLANE_AIRBRAKES_LESS
@ EV_AIRPLANE_AIRBRAKES_LESS
Definition: InputEngine.h:78
RoR::EV_COMMON_CYCLE_TRUCK_LIGHTS
@ EV_COMMON_CYCLE_TRUCK_LIGHTS
cycle truck front light mode (off -> running light -> low beams -> off).
Definition: InputEngine.h:274
RoR::GUI::TopMenubar::ai_dname2
Ogre::String ai_dname2
Definition: GUI_TopMenubar.h:88
RoR::GameContext::m_current_selection
ActorSpawnRequest m_current_selection
Context of the loader UI.
Definition: GameContext.h:201
RoR::GfxSkyMode::CAELUM
@ CAELUM
Caelum (best looking, slower)
RoR::Actor::ar_num_aeroengines
int ar_num_aeroengines
Definition: Actor.h:319
RoR::Actor::getMinHeight
float getMinHeight(bool skip_virtual_nodes=true)
Definition: Actor.cpp:1458
RoR::GUIManager::MultiplayerSelector
GUI::MultiplayerSelector MultiplayerSelector
Definition: GUIManager.h:112
RoR::Actor::ar_airbrake_intensity
int ar_airbrake_intensity
Physics state; values 0-5.
Definition: Actor.h:416
RoR::Str< 200 >
RoR::EV_BOAT_REVERSE
@ EV_BOAT_REVERSE
no thrust
Definition: InputEngine.h:102
RoR::GUI::RepositorySelector::SetVisible
void SetVisible(bool visible)
Definition: GUI_RepositorySelector.cpp:1238
RoR::GameContext::LoadTerrain
bool LoadTerrain(std::string const &filename_part)
Definition: GameContext.cpp:112
RoR::ActorModifyRequest
Definition: SimData.h:827
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::MSG_SIM_SEAT_PLAYER_REQUESTED
@ MSG_SIM_SEAT_PLAYER_REQUESTED
Payload = RoR::ActorPtr (owner) | nullptr.
Definition: Application.h:113
RoR::EV_TRUCK_LIGHTTOGGLE01
@ EV_TRUCK_LIGHTTOGGLE01
toggle custom light 1
Definition: InputEngine.h:316
CacheSystem.h
A database of user-installed content alias 'mods' (vehicles, terrains...)
RoR::GameContext::m_player_actor
ActorPtr m_player_actor
Actor (vehicle or machine) mounted and controlled by player.
Definition: GameContext.h:193
RoR::Collisions::getBox
collision_box_t * getBox(const Ogre::String &inst, const Ogre::String &box)
Definition: Collisions.cpp:1158
RoR::EV_TRUCK_LEFT_MIRROR_LEFT
@ EV_TRUCK_LEFT_MIRROR_LEFT
Definition: InputEngine.h:314
RoR::ActorSpawnRequest::asr_tuneup_entry
CacheEntryPtr asr_tuneup_entry
Only filled when user selected a saved/downloaded .tuneup mod in SelectorUI.
Definition: SimData.h:812
RoR::EV_COMMON_RESPAWN_LAST_TRUCK
@ EV_COMMON_RESPAWN_LAST_TRUCK
respawn last truck
Definition: InputEngine.h:233
RoR::GameContext::ChangePlayerActor
void ChangePlayerActor(ActorPtr actor)
Definition: GameContext.cpp:473
GUI_MainSelector.h
RoR::Actor::resolveCollisions
void resolveCollisions(Ogre::Vector3 direction)
Moves the actor at most 'direction.length()' meters towards 'direction' to resolve any collisions.
Definition: Actor.cpp:1022
RoR::DashBoardManager::setVisible3d
void setVisible3d(bool visibility)
Definition: DashBoardManager.cpp:214
RoR::GameContext::GameContext
GameContext()
Definition: GameContext.cpp:53
RoR::ActorSpawnRequest::asr_cache_entry
CacheEntryPtr asr_cache_entry
Optional, overrides 'asr_filename' and 'asr_cache_entry_num'.
Definition: SimData.h:805
RoR::CacheQueryResult
Definition: CacheSystem.h:155
ScriptEngine.h
RoR::Actor::getTyrePressure
TyrePressure & getTyrePressure()
Definition: Actor.h:210
RoR::GameContext::DeleteActor
void DeleteActor(ActorPtr actor)
Definition: GameContext.cpp:412
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::ActorManager::GetLocalActors
std::vector< ActorPtr > GetLocalActors()
Definition: ActorManager.cpp:1361
RoR::ScriptUnitId_t
int ScriptUnitId_t
Unique sequentially generated ID of a loaded and running scriptin session. Use ScriptEngine::getScrip...
Definition: ForwardDeclarations.h:40
RoR::EV_AIRPLANE_TOGGLE_ENGINES
@ EV_AIRPLANE_TOGGLE_ENGINES
switch all engines on / off
Definition: InputEngine.h:100
RoR::EngineSim::UpdateInputEvents
void UpdateInputEvents(float dt)
Definition: EngineSim.cpp:1263
RoR::Character
Definition: Character.h:40
RoR::Actor::getSectionConfig
Ogre::String getSectionConfig()
Definition: Actor.h:220
RoR::ActorLinkingRequestType::HOOK_ACTION
@ HOOK_ACTION
RoR::Str::ToCStr
const char * ToCStr() const
Definition: Str.h:46
RoR::SS_TRIG_AIR
@ SS_TRIG_AIR
Definition: SoundScriptManager.h:68
RoR::ActorState::LOCAL_SLEEPING
@ LOCAL_SLEEPING
sleeping (local) actor
RoR::Autopilot::disconnect
void disconnect()
Definition: AutoPilot.cpp:70
RoR::Actor::setFogLightsVisible
void setFogLightsVisible(bool val)
Definition: Actor.h:182
RoR::Actor::SyncReset
void SyncReset(bool reset_position)
this one should be called only synchronously (without physics running in background)
Definition: Actor.cpp:1547
RoR::Actor::antilockbrakeToggle
void antilockbrakeToggle()
Definition: Actor.cpp:3689
RoR::EV_SKY_INCREASE_TIME
@ EV_SKY_INCREASE_TIME
increase day-time
Definition: InputEngine.h:112
RoR::Actor::ar_hydro_speed_coupling
bool ar_hydro_speed_coupling
Definition: Actor.h:464
RoR::Actor::getHeadlightsVisible
bool getHeadlightsVisible() const
Definition: Actor.h:177
RoR::SE_TRUCK_ENTER
@ SE_TRUCK_ENTER
triggered when switching from person mode to vehicle mode, the argument refers to the actor ID of the...
Definition: ScriptEvents.h:35
RoR::Actor::ar_command_key
CmdKeyArray ar_command_key
BEWARE: commandkeys are indexed 1-MAX_COMMANDS!
Definition: Actor.h:295
RoR::Autopilot::wantsdisconnect
bool wantsdisconnect
Definition: AutoPilot.h:54
RoR::Terrain::GetCollisions
Collisions * GetCollisions()
Definition: Terrain.h:83
RoR::EV_BOAT_STEER_LEFT
@ EV_BOAT_STEER_LEFT
steer left a step
Definition: InputEngine.h:103
RoR::Actor::getPosition
Ogre::Vector3 getPosition()
Definition: Actor.cpp:371
RoR::GameContext::m_last_cache_selection
CacheEntryPtr m_last_cache_selection
Vehicle/load.
Definition: GameContext.h:197
RoR::EV_TRUCK_TOGGLE_TCASE_4WD_MODE
@ EV_TRUCK_TOGGLE_TCASE_4WD_MODE
toggle the transfer case 4wd mode
Definition: InputEngine.h:366
GfxScene.h
SkyX::SkyX::setTimeMultiplier
void setTimeMultiplier(const Ogre::Real &TimeMultiplier)
Set time multiplier.
Definition: SkyX.h:166
RoR::GameContext::SetPrevPlayerActor
void SetPrevPlayerActor(ActorPtr actor)
Definition: GameContext.cpp:821
RoR::EV_TRUCK_TOGGLE_VIDEOCAMERA
@ EV_TRUCK_TOGGLE_VIDEOCAMERA
toggle videocamera update
Definition: InputEngine.h:368
RoR::BLINK_RIGHT
@ BLINK_RIGHT
Definition: SimData.h:136
RoR::MSG_GUI_OPEN_SELECTOR_REQUESTED
@ MSG_GUI_OPEN_SELECTOR_REQUESTED
Payload = LoaderType* (owner), Description = GUID | empty.
Definition: Application.h:123
RoR::BLINK_WARN
@ BLINK_WARN
Definition: SimData.h:137
SOUND_START
#define SOUND_START(_ACTOR_, _TRIG_)
Definition: SoundScriptManager.h:35
RoR::LT_Vehicle
@ LT_Vehicle
Definition: Application.h:279
RoR::GameContext::prev_pos
Ogre::Vector3 prev_pos
Definition: GameContext.h:212
RoR::LT_Trailer
@ LT_Trailer
Definition: Application.h:284
RoR::LoaderType
LoaderType
< Search mode for ModCache::Query() & Operation mode for GUI::MainSelector
Definition: Application.h:275
RoR::InputEngine::isEventDefined
bool isEventDefined(int eventID)
Definition: InputEngine.cpp:861
RoR::OverlayWrapper::showDashboardOverlays
void showDashboardOverlays(bool show, ActorPtr actor)
Definition: OverlayWrapper.cpp:375
RoR::ModifyProjectRequest::mpr_target_actor
ActorPtr mpr_target_actor
Definition: CacheSystem.h:247
RoR::InputEngine::getEventBoolValue
bool getEventBoolValue(int eventID)
Definition: InputEngine.cpp:710
RoR::GUI::TopMenubar::ai_skin
std::string ai_skin
Definition: GUI_TopMenubar.h:79
RoR::SimState::PAUSED
@ PAUSED
RoR::Actor::ar_import_commands
bool ar_import_commands
Sim state.
Definition: Actor.h:469
RoR::Screwprop::setThrottle
void setThrottle(float val)
Definition: ScrewProp.cpp:76
RoR::App::GetConsole
Console * GetConsole()
Definition: Application.cpp:269
RoR::EV_COMMON_LOCK
@ EV_COMMON_LOCK
connect hook node to a node in close proximity
Definition: InputEngine.h:240
RoR::EV_COMMON_TRUCK_REMOVE
@ EV_COMMON_TRUCK_REMOVE
Definition: InputEngine.h:280
RoR::EV_TRUCK_TOGGLE_INTER_WHEEL_DIFF
@ EV_TRUCK_TOGGLE_INTER_WHEEL_DIFF
toggle the inter wheel differential mode
Definition: InputEngine.h:364
SoundScriptManager.h
RoR::Message::payload
void * payload
Definition: GameContext.h:59
RoR::Network::GetLocalUserData
RoRnet::UserInfo GetLocalUserData()
Definition: Network.cpp:697
RoR::App::GetGameContext
GameContext * GetGameContext()
Definition: Application.cpp:279
RoR::EV_BOAT_CENTER_RUDDER
@ EV_BOAT_CENTER_RUDDER
center the rudder
Definition: InputEngine.h:101
RoR::MSG_APP_SCREENSHOT_REQUESTED
@ MSG_APP_SCREENSHOT_REQUESTED
Definition: Application.h:79
RoR::Character::getPosition
Ogre::Vector3 getPosition()
Definition: Character.cpp:92
RoR::AIRPLANE
@ AIRPLANE
its an airplane
Definition: SimData.h:105
RoR::Actor::ar_autopilot
Autopilot * ar_autopilot
Definition: Actor.h:371
RoR::Actor::getSideLightsVisible
bool getSideLightsVisible() const
Definition: Actor.h:175
RoR::EV_AIRPLANE_AIRBRAKES_MORE
@ EV_AIRPLANE_AIRBRAKES_MORE
Definition: InputEngine.h:79
RoR::EV_AIRPLANE_FLAPS_FULL
@ EV_AIRPLANE_FLAPS_FULL
full flaps in an aircraft.
Definition: InputEngine.h:84
RoR::EV_TRUCK_HORN
@ EV_TRUCK_HORN
truck horn
Definition: InputEngine.h:313
RoR::GUI::FlexbodyDebug::AnalyzeFlexbodies
void AnalyzeFlexbodies()
populates the combobox
Definition: GUI_FlexbodyDebug.cpp:171
RoR::AppState::SIMULATION
@ SIMULATION
RoR::Actor::ar_sleep_counter
float ar_sleep_counter
Sim state; idle time counter.
Definition: Actor.h:401
RoR::Message::chain
std::vector< Message > chain
Posted after the message is processed.
Definition: GameContext.h:60
GUI_VehicleButtons.h
RoR::EV_BOAT_THROTTLE_AXIS
@ EV_BOAT_THROTTLE_AXIS
throttle axis. Only use this if you have fitting hardware :) (i.e. a Slider)
Definition: InputEngine.h:107
RoR::Actor::getHeightAboveGroundBelow
float getHeightAboveGroundBelow(float height, bool skip_virtual_nodes=true)
Definition: Actor.cpp:1498
RoR::Actor::ar_num_screwprops
int ar_num_screwprops
Definition: Actor.h:321
RoR::EV_COMMON_SECURE_LOAD
@ EV_COMMON_SECURE_LOAD
tie a load to the truck
Definition: InputEngine.h:263
SOUND_STOP
#define SOUND_STOP(_ACTOR_, _TRIG_)
Definition: SoundScriptManager.h:36
RoR::ActorSpawnRequest::net_stream_id
int net_stream_id
Definition: SimData.h:819
RoR::Terrain::dispose
void dispose()
Definition: Terrain.cpp:79
RoR::BLINK_LEFT
@ BLINK_LEFT
Definition: SimData.h:135
RoR::ActorSpawnRequest::Origin::TERRN_DEF
@ TERRN_DEF
Preloaded with terrain.
RoR::Screwprop::getRudder
float getRudder()
Definition: ScrewProp.cpp:106
RoR::ActorSpawnRequest::asr_terrn_machine
bool asr_terrn_machine
This is a fixed machinery.
Definition: SimData.h:822
RoR::EV_COMMON_TOGGLE_TERRAIN_EDITOR
@ EV_COMMON_TOGGLE_TERRAIN_EDITOR
toggle terrain editor
Definition: InputEngine.h:267
RoR::ActorSpawnRequest::asr_skin_entry
CacheEntryPtr asr_skin_entry
Definition: SimData.h:811
RoR::EV_COMMON_TOGGLE_TRUCK_LOW_BEAMS
@ EV_COMMON_TOGGLE_TRUCK_LOW_BEAMS
toggle truck low beams (on/off); also toggles running lights.
Definition: InputEngine.h:275
RoR::Collisions::getSurfaceHeight
float getSurfaceHeight(float x, float z)
Definition: Collisions.cpp:671
RoR::GameContext::m_timer
Ogre::Timer m_timer
Definition: GameContext.h:211
RoR::VideoCamState::VCSTATE_DISABLED
@ VCSTATE_DISABLED
RoR::ActorSpawnRequest::Origin::AI
@ AI
Script controlled.
RoR::ActorModifyRequest::amr_saved_state
std::shared_ptr< rapidjson::Document > amr_saved_state
Definition: SimData.h:846
RoR::App::gfx_sky_mode
CVar * gfx_sky_mode
Definition: Application.cpp:218
RoR::Actor::hookToggle
void hookToggle(int group=-1, HookAction mode=HOOK_TOGGLE, NodeNum_t mousenode=NODENUM_INVALID)
Definition: Actor.cpp:3545
RoR::Actor::toggleSlideNodeLock
void toggleSlideNodeLock()
Definition: ActorSlideNode.cpp:34
RoR::GUIManager::TopMenubar
GUI::TopMenubar TopMenubar
Definition: GUIManager.h:123
RoR::GameContext::m_msg_queue
GameMsgQueue m_msg_queue
Definition: GameContext.h:184
RoR::GUI::TopMenubar::ai_sectionconfig2
Ogre::String ai_sectionconfig2
Definition: GUI_TopMenubar.h:89
RoR::MSG_EDI_ENTER_TERRN_EDITOR_REQUESTED
@ MSG_EDI_ENTER_TERRN_EDITOR_REQUESTED
Definition: Application.h:131
RoR::SS_TRIG_HORN
@ SS_TRIG_HORN
Definition: SoundScriptManager.h:59
RoR::ModifyProjectRequest
Definition: CacheSystem.h:245
RoR::Actor::GetCameraRoll
Ogre::Vector3 GetCameraRoll()
Definition: Actor.h:257
RoR::CharacterFactory::GetLocalCharacter
Character * GetLocalCharacter()
Definition: CharacterFactory.h:44
RoR::LT_Terrain
@ LT_Terrain
Definition: Application.h:278
RoR::Actor::toggleTransferCaseMode
void toggleTransferCaseMode()
Definition: Actor.cpp:1381
RoR::Actor::parkingbrakeToggle
void parkingbrakeToggle()
Definition: Actor.cpp:3674
RoR::EV_COMMANDS_01
@ EV_COMMANDS_01
Command 1.
Definition: InputEngine.h:139
RoR::App::diag_preset_spawn_pos
CVar * diag_preset_spawn_pos
Definition: Application.cpp:141
RoR::ActorManager::DeleteActorInternal
void DeleteActorInternal(ActorPtr actor)
Do not call directly; use GameContext::DeleteActor()
Definition: ActorManager.cpp:926
RoR::Actor::ar_is_police
bool ar_is_police
Gfx/sfx attr.
Definition: Actor.h:466
RoR::Terrain
Definition: Terrain.h:40
RoR::App::GetCacheSystem
CacheSystem * GetCacheSystem()
Definition: Application.cpp:271
RoR::GfxSkyMode::SKYX
@ SKYX
SkyX (best looking, slower)
RoR::EV_TRUCK_TOGGLE_TCASE_GEAR_RATIO
@ EV_TRUCK_TOGGLE_TCASE_GEAR_RATIO
toggle the transfer case gear ratio
Definition: InputEngine.h:367
RoR::App::gfx_sky_time_speed
CVar * gfx_sky_time_speed
Definition: Application.cpp:220
RoR::Actor::ar_elevator
float ar_elevator
Sim state; aerial controller.
Definition: Actor.h:407
RoR::GameContext::UpdateAirplaneInputEvents
void UpdateAirplaneInputEvents(float dt)
Definition: GameContext.cpp:1571
RoRnet::UserInfo::colournum
int32_t colournum
colour set by server
Definition: RoRnet.h:173
RoR::GUIManager::FlexbodyDebug
GUI::FlexbodyDebug FlexbodyDebug
Definition: GUIManager.h:128
RoR::Replay::UpdateInputEvents
void UpdateInputEvents()
Definition: Replay.cpp:251
RoR::Actor::ar_nodes
node_t * ar_nodes
Definition: Actor.h:269
instance
or anywhere else will not be considered a but parsed as regular data ! Each line is treated as values separated by separators Possible i e animators Multiline description Single instance
Definition: ReadMe.txt:53
RoRnet::UserInfo::username
char username[RORNET_MAX_USERNAME_LEN]
the nickname of the user (UTF-8)
Definition: RoRnet.h:175
RoR::EV_AIRPLANE_FLAPS_NONE
@ EV_AIRPLANE_FLAPS_NONE
no flaps.
Definition: InputEngine.h:87
RoR::Actor::ar_toggle_ties
bool ar_toggle_ties
Sim state.
Definition: Actor.h:471
RoR::EV_SKY_DECREASE_TIME
@ EV_SKY_DECREASE_TIME
decrease day-time
Definition: InputEngine.h:110
RoR::Actor::getRotation
float getRotation()
Definition: Actor.cpp:356
RoR::EV_AIRPLANE_STEER_RIGHT
@ EV_AIRPLANE_STEER_RIGHT
steer right
Definition: InputEngine.h:93
RoR::VideoCamState::VCSTATE_ENABLED_ONLINE
@ VCSTATE_ENABLED_ONLINE
RoR::CacheQuery::cqy_filter_type
RoR::LoaderType cqy_filter_type
Definition: CacheSystem.h:177
RoR::EV_AIRPLANE_FLAPS_LESS
@ EV_AIRPLANE_FLAPS_LESS
one step less flaps.
Definition: InputEngine.h:85
RoR::Terrain::initialize
bool initialize()
Definition: Terrain.cpp:146
RoR::Actor::toggleBlinkType
void toggleBlinkType(BlinkType blink)
Definition: Actor.cpp:3048
RoR::GfxEnvmap::UpdateEnvMap
void UpdateEnvMap(Ogre::Vector3 center, GfxActor *gfx_actor, bool full=false)
Definition: EnvironmentMap.cpp:206
RoR::GameContext::FetchPrevVehicleOnList
const ActorPtr & FetchPrevVehicleOnList()
Definition: GameContext.cpp:576
RoR::CacheSystem::LoadResource
void LoadResource(CacheEntryPtr &t)
Loads the associated resource bundle if not already done.
Definition: CacheSystem.cpp:1336
RoR::GameContext::OnLoaderGuiCancel
void OnLoaderGuiCancel()
GUI callback.
Definition: GameContext.cpp:674
ai_events
Definition: GUI_TopMenubar.h:36
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::Actor::ar_hydro_dir_command
float ar_hydro_dir_command
Definition: Actor.h:392
RoR::Actor::ar_driveable
ActorType ar_driveable
Sim attr; marks vehicle type and features.
Definition: Actor.h:367
RoR::EV_AIRPLANE_THROTTLE_FULL
@ EV_AIRPLANE_THROTTLE_FULL
full thrust
Definition: InputEngine.h:97
RoR::GameContext::UnloadTerrain
void UnloadTerrain()
Definition: GameContext.cpp:177
RoR::SE_TRUCK_TELEPORT
@ SE_TRUCK_TELEPORT
triggered when the user teleports the truck, the argument refers to the actor ID of the vehicle
Definition: ScriptEvents.h:51
RoR::CVar::setVal
void setVal(T val)
Definition: CVar.h:72
RoR::Actor::tieToggle
void tieToggle(int group=-1)
Definition: Actor.cpp:3360
RoR::InputSourceType::IST_DIGITAL
@ IST_DIGITAL
RoR::MSG_GUI_OPEN_MENU_REQUESTED
@ MSG_GUI_OPEN_MENU_REQUESTED
Definition: Application.h:121
_L
#define _L
Definition: ErrorUtils.cpp:34
RoR::GameContext::m_prev_player_actor
ActorPtr m_prev_player_actor
Previous actor (vehicle or machine) mounted and controlled by player.
Definition: GameContext.h:194
RoR::EV_TRUCK_STEER_RIGHT
@ EV_TRUCK_STEER_RIGHT
steer right
Definition: InputEngine.h:358
RoR::Actor::UpdatePropAnimInputEvents
void UpdatePropAnimInputEvents()
Definition: Actor.cpp:4570
RoR::EV_COMMON_TOGGLE_TRUCK_HIGH_BEAMS
@ EV_COMMON_TOGGLE_TRUCK_HIGH_BEAMS
toggle truck high beams (on/off); doesn't need low beams, doesn't use 't' lights.
Definition: InputEngine.h:276
RoR::Actor::getUsedSkinEntry
CacheEntryPtr & getUsedSkinEntry()
Definition: Actor.cpp:4602
RoR::Terrain::getSpawnPos
Ogre::Vector3 getSpawnPos()
Definition: Terrain.h:64
RoR::Actor::getHighBeamsVisible
bool getHighBeamsVisible() const
Definition: Actor.h:179
RoR::ActorModifyRequest::Type::SOFT_RESET
@ SOFT_RESET
RoR::Terrain::getSkyXManager
SkyXManager * getSkyXManager()
Definition: Terrain.h:80
RoR::Screwprop::getThrottle
float getThrottle()
Definition: ScrewProp.cpp:98
RoR::ActorSpawnRequest::asr_net_username
Ogre::UTFString asr_net_username
Definition: SimData.h:816
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::GfxActor::SetRenderdashActive
void SetRenderdashActive(bool active)
Definition: GfxActor.cpp:2232
RoR::EV_TRUCK_TOGGLE_PHYSICS
@ EV_TRUCK_TOGGLE_PHYSICS
toggle physics simulation
Definition: InputEngine.h:365
RoR::ActorSpawnRequest::asr_debugview
int asr_debugview
Definition: SimData.h:815
RoR::EV_TRUCK_TOGGLE_INTER_AXLE_DIFF
@ EV_TRUCK_TOGGLE_INTER_AXLE_DIFF
toggle the inter axle differential mode
Definition: InputEngine.h:363
RoR::EV_AIRPLANE_THROTTLE_NO
@ EV_AIRPLANE_THROTTLE_NO
no thrust
Definition: InputEngine.h:98
RoR::App::cli_preset_spawn_pos
CVar * cli_preset_spawn_pos
Definition: Application.cpp:180
RoR::GUIManager::GameAbout
GUI::GameAbout GameAbout
Definition: GUIManager.h:107
RoR::Actor::getRotationCenter
Ogre::Vector3 getRotationCenter()
Definition: Actor.cpp:1440
RoR::Actor::toggleTransferCaseGearRatio
void toggleTransferCaseGearRatio()
Definition: Actor.cpp:1412
RoR::MSG_SIM_SPAWN_ACTOR_REQUESTED
@ MSG_SIM_SPAWN_ACTOR_REQUESTED
Payload = RoR::ActorSpawnRequest* (owner)
Definition: Application.h:110
RoR::Character::SetActorCoupling
void SetActorCoupling(bool enabled, ActorPtr actor)
Definition: Character.cpp:523
RoR::Collisions::getDirection
Ogre::Quaternion getDirection(const Ogre::String &inst, const Ogre::String &box)
Definition: Collisions.cpp:1146
RoR::EV_TRUCK_TOGGLE_IMPORTCOMMANDS
@ EV_TRUCK_TOGGLE_IMPORTCOMMANDS
toggle importcommands
Definition: InputEngine.h:362
RoR::App::GetInputEngine
InputEngine * GetInputEngine()
Definition: Application.cpp:270
RoR::EV_SKY_DECREASE_TIME_FAST
@ EV_SKY_DECREASE_TIME_FAST
decrease day-time a lot faster
Definition: InputEngine.h:111
RoR::ActorPtr
RefCountingObjectPtr< Actor > ActorPtr
Definition: ForwardDeclarations.h:181
RoR::GameContext::m_terrain
TerrainPtr m_terrain
Definition: GameContext.h:189
RoR::ActorLinkingRequest::alr_actor_instance_id
ActorInstanceID_t alr_actor_instance_id
Definition: SimData.h:865
RoR::EV_BOAT_STEER_RIGHT
@ EV_BOAT_STEER_RIGHT
steer right a step
Definition: InputEngine.h:105
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:1040
RoR::LT_AllBeam
@ LT_AllBeam
Definition: Application.h:289
RoR::GameContext::UpdateBoatInputEvents
void UpdateBoatInputEvents(float dt)
Definition: GameContext.cpp:1759
RoR::Actor::setCustomLightVisible
void setCustomLightVisible(int number, bool visible)
Definition: Actor.cpp:4407
RoR::ActorSpawnRequest::net_source_id
int net_source_id
Definition: SimData.h:818
RoR::AeroEngine::setThrottle
virtual void setThrottle(float val)=0
Terrain.h
RoR::Actor::ar_net_stream_id
int ar_net_stream_id
Definition: Actor.h:418
RoR::Collisions::isInside
bool isInside(Ogre::Vector3 pos, const Ogre::String &inst, const Ogre::String &box, float border=0)
Definition: Collisions.cpp:1170
RoR::EV_COMMON_TOGGLE_CUSTOM_PARTICLES
@ EV_COMMON_TOGGLE_CUSTOM_PARTICLES
toggle particle cannon
Definition: InputEngine.h:268
RoR::SimState::RUNNING
@ RUNNING
RoR::GameContext::ShowLoaderGUI
void ShowLoaderGUI(int type, const Ogre::String &instance, const Ogre::String &box)
Definition: GameContext.cpp:646
RoR::EV_AIRPLANE_AIRBRAKES_FULL
@ EV_AIRPLANE_AIRBRAKES_FULL
Definition: InputEngine.h:77
AeroEngine.h
RoR::EV_TRUCK_BLINK_LEFT
@ EV_TRUCK_BLINK_LEFT
toggle left direction indicator (blinker)
Definition: InputEngine.h:303
RoR::EV_AIRPLANE_PARKING_BRAKE
@ EV_AIRPLANE_PARKING_BRAKE
airplane parking brake.
Definition: InputEngine.h:88
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::EV_AIRPLANE_ELEVATOR_UP
@ EV_AIRPLANE_ELEVATOR_UP
pull the elevator up in an aircraft.
Definition: InputEngine.h:83
RoR::CacheQuery::cqy_filter_guid
std::string cqy_filter_guid
Exact match; leave empty to disable.
Definition: CacheSystem.h:179
RoR::GUIManager::MainSelector
GUI::MainSelector MainSelector
Definition: GUIManager.h:113
RoR::EV_COMMON_OUTPUT_POSITION
@ EV_COMMON_OUTPUT_POSITION
write current position to log (you can open the logfile and reuse the position)
Definition: InputEngine.h:243
RoR::Actor::getMaxHeight
float getMaxHeight(bool skip_virtual_nodes=true)
Definition: Actor.cpp:1471
RoR::InputEngine::isEventAnalog
bool isEventAnalog(int eventID)
Definition: InputEngine.cpp:884
RoR::Actor::countFlaresByType
int countFlaresByType(FlareType type)
Definition: Actor.cpp:4444
RoR::ActorSpawnRequest::Origin::USER
@ USER
Direct selection by user via GUI.
RoR::ActorManager::RestoreSavedState
void RestoreSavedState(ActorPtr actor, rapidjson::Value const &j_entry)
Definition: Savegame.cpp:783
RoR::Console::CONSOLE_MSGTYPE_ACTOR
@ CONSOLE_MSGTYPE_ACTOR
Parsing/spawn/simulation messages for actors.
Definition: Console.h:63
RoR::EV_AIRPLANE_BRAKE
@ EV_AIRPLANE_BRAKE
normal brake for an aircraft.
Definition: InputEngine.h:81
RoR::EV_AIRPLANE_THROTTLE_UP
@ EV_AIRPLANE_THROTTLE_UP
increase the airplane thrust
Definition: InputEngine.h:99
RoR::GfxActor::GetDebugView
DebugViewType GetDebugView() const
Definition: GfxActor.h:138
RigDef::DocumentPtr
std::shared_ptr< Document > DocumentPtr
Definition: RigDef_Prerequisites.h:38
RoR::Console::CONSOLE_SYSTEM_WARNING
@ CONSOLE_SYSTEM_WARNING
Definition: Console.h:53
RoR::App::diag_preset_veh_enter
CVar * diag_preset_veh_enter
Definition: Application.cpp:145
RoR::CVar::getInt
int getInt() const
Definition: CVar.h:97
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:610
ai_events::speed
int speed
Definition: GUI_TopMenubar.h:39
RoR::GameContext::m_dummy_cache_selection
CacheEntryPtr m_dummy_cache_selection
Definition: GameContext.h:202
RoR::GameContext::m_last_spawned_actor
ActorPtr m_last_spawned_actor
Last actor spawned by user and still alive.
Definition: GameContext.h:195
RoR::GUI::TopMenubar::ai_dname
Ogre::String ai_dname
Definition: GUI_TopMenubar.h:77
RoR::MSG_GUI_CLOSE_MENU_REQUESTED
@ MSG_GUI_CLOSE_MENU_REQUESTED
Definition: Application.h:122
RoR::ActorSpawnRequest::asr_position
Ogre::Vector3 asr_position
Definition: SimData.h:808
RoR::GUI::GameControls::SetVisible
void SetVisible(bool visible)
Definition: GUI_GameControls.cpp:416
RoR::ForceFeedback::SetEnabled
void SetEnabled(bool v)
Definition: ForceFeedback.cpp:93
RoR::GUI::TopMenubar::ai_sectionconfig
Ogre::String ai_sectionconfig
Definition: GUI_TopMenubar.h:78
RoR::EV_COMMON_QUIT_GAME
@ EV_COMMON_QUIT_GAME
exit the game
Definition: InputEngine.h:249
RoR::EV_TRUCKEDIT_RELOAD
@ EV_TRUCKEDIT_RELOAD
Definition: InputEngine.h:394
RoR::ModifyProjectRequest::mpr_type
ModifyProjectRequestType mpr_type
Definition: CacheSystem.h:248
RoR::Actor::ar_net_source_id
int ar_net_source_id
Unique ID of remote player who spawned this actor.
Definition: Actor.h:417
Collisions.h
RoR::EV_AIRPLANE_STEER_LEFT
@ EV_AIRPLANE_STEER_LEFT
steer left
Definition: InputEngine.h:92
RoR::GUI::TopMenubar::ai_select2
bool ai_select2
Definition: GUI_TopMenubar.h:86
RoR::MSG_SIM_PAUSE_REQUESTED
@ MSG_SIM_PAUSE_REQUESTED
Definition: Application.h:105
RoR::ActorState::NETWORKED_OK
@ NETWORKED_OK
not simulated (remote) actor
RoR::EV_COMMON_CYCLE_DEBUG_VIEWS
@ EV_COMMON_CYCLE_DEBUG_VIEWS
cycle debug view mode
Definition: InputEngine.h:266
RoR::Actor::displayWheelDiffMode
void displayWheelDiffMode()
Cycles through the available inter wheel diff modes.
Definition: Actor.cpp:1341
RoR::EV_AIRPLANE_THROTTLE_AXIS
@ EV_AIRPLANE_THROTTLE_AXIS
throttle axis. Only use this if you have fitting hardware :) (i.e. a Slider)
Definition: InputEngine.h:95
RoR::ActorManager::UpdateActors
void UpdateActors(ActorPtr player_actor)
Definition: ActorManager.cpp:1051
RoR::Actor::ar_aileron
float ar_aileron
Sim state; aerial controller.
Definition: Actor.h:409
RoR::tryConvertUTF
Ogre::UTFString tryConvertUTF(const char *buffer)
Definition: Utils.cpp:58
RoR::FlareType::HIGH_BEAM
@ HIGH_BEAM
RoR::Actor::ar_state
ActorState ar_state
Definition: Actor.h:435
RoR::ActorManager::FetchNextVehicleOnList
const ActorPtr & FetchNextVehicleOnList(ActorPtr player, ActorPtr prev_player)
Definition: ActorManager.cpp:987
RoR::Actor::setAirbrakeIntensity
void setAirbrakeIntensity(float intensity)
Definition: Actor.cpp:2884
RoR::EV_AIRPLANE_ELEVATOR_DOWN
@ EV_AIRPLANE_ELEVATOR_DOWN
pull the elevator down in an aircraft.
Definition: InputEngine.h:82
RoR::GameContext::GetPlayerActor
const ActorPtr & GetPlayerActor()
Definition: GameContext.h:134
RoR::AI
@ AI
machine controlled by an Artificial Intelligence
Definition: SimData.h:108
RoR::GameContext::UpdateTruckInputEvents
void UpdateTruckInputEvents(float dt)
Definition: GameContext.cpp:1819
RoR::App::gfx_sky_time_cycle
CVar * gfx_sky_time_cycle
Definition: Application.cpp:219
RoR::Actor::prepareInside
void prepareInside(bool inside)
Prepares vehicle for in-cabin camera use.
Definition: Actor.cpp:2918
RoR::TyrePressure::IsEnabled
bool IsEnabled() const
Definition: TyrePressure.h:47
RoR::Actor::ar_rudder
float ar_rudder
Sim state; aerial/marine controller.
Definition: Actor.h:408
RoR::Actor::cruisecontrolToggle
void cruisecontrolToggle()
Defined in 'gameplay/CruiseControl.cpp'.
Definition: CruiseControl.cpp:31
RoR::ActorModifyRequest::amr_type
Type amr_type
Definition: SimData.h:844
RoR::ActorSpawnRequest::asr_spawnbox
collision_box_t * asr_spawnbox
Definition: SimData.h:810
RoR::ActorSpawnRequest::asr_rotation
Ogre::Quaternion asr_rotation
Definition: SimData.h:809
RoR::Actor::getWorkingTuneupDef
TuneupDefPtr & getWorkingTuneupDef()
Definition: Actor.cpp:4607
RoR::AeroEngine::getThrottle
virtual float getThrottle()=0
RoR::Actor::setSideLightsVisible
void setSideLightsVisible(bool val)
Definition: Actor.h:176
RoR
Definition: AppContext.h:36
RoR::SE_GENERIC_DELETED_TRUCK
@ SE_GENERIC_DELETED_TRUCK
triggered when the user deletes an actor, the argument refers to the actor ID
Definition: ScriptEvents.h:48
RoR::ActorManager::GetActorById
const ActorPtr & GetActorById(ActorInstanceID_t actor_id)
Definition: ActorManager.cpp:1167
RoR::EV_COMMON_REMOVE_CURRENT_TRUCK
@ EV_COMMON_REMOVE_CURRENT_TRUCK
remove current truck
Definition: InputEngine.h:232
x
float x
Definition: (ValueTypes) quaternion.h:5
RoR::CacheSystem::Query
size_t Query(CacheQuery &query)
Definition: CacheSystem.cpp:1917
RoR::EV_BOAT_STEER_RIGHT_AXIS
@ EV_BOAT_STEER_RIGHT_AXIS
steer right (analog value!)
Definition: InputEngine.h:106
RoR::GUI::TopMenubar::ai_select
bool ai_select
Definition: GUI_TopMenubar.h:80
RoR::GameContext::FetchNextVehicleOnList
const ActorPtr & FetchNextVehicleOnList()
Definition: GameContext.cpp:581
RoR::ActorSpawnRequest::asr_enter
bool asr_enter
Definition: SimData.h:821
RoR::Log
void Log(const char *msg)
The ultimate, application-wide logging function. Adds a line (any length) in 'RoR....
Definition: Application.cpp:362
RoR::EV_SKY_INCREASE_TIME_FAST
@ EV_SKY_INCREASE_TIME_FAST
increase day-time a lot faster
Definition: InputEngine.h:113
RoR::EV_COMMON_RESCUE_TRUCK
@ EV_COMMON_RESCUE_TRUCK
teleport to rescue truck
Definition: InputEngine.h:256
RoR::App::GetGfxScene
GfxScene * GetGfxScene()
Definition: Application.cpp:275
RoR::GameContext::GetActorManager
ActorManager * GetActorManager()
Definition: GameContext.h:127
RoR::GameContext::FindActorByCollisionBox
ActorPtr FindActorByCollisionBox(std::string const &ev_src_instance_name, std::string const &box_name)
Definition: GameContext.cpp:591
RoR::EV_TRUCK_PARKING_BRAKE
@ EV_TRUCK_PARKING_BRAKE
toggle parking brake
Definition: InputEngine.h:327
RoR::CVar::setStr
void setStr(std::string const &str)
Definition: CVar.h:83
RoR::GameContext::m_msg_mutex
std::mutex m_msg_mutex
Definition: GameContext.h:186
RoR::CacheQuery::cqy_results
std::vector< CacheQueryResult > cqy_results
Definition: CacheSystem.h:183
RoR::LT_Train
@ LT_Train
Definition: Application.h:285
RoR::EV_COMMON_ROPELOCK
@ EV_COMMON_ROPELOCK
connect hook node to a node in close proximity
Definition: InputEngine.h:259
RoR::CacheEntry::default_skin
std::string default_skin
Definition: CacheSystem.h:100
RoR::MSG_APP_SHUTDOWN_REQUESTED
@ MSG_APP_SHUTDOWN_REQUESTED
Definition: Application.h:78
RoR::ActorManager::CreateNewActor
ActorPtr CreateNewActor(ActorSpawnRequest rq, RigDef::DocumentPtr def)
Definition: ActorManager.cpp:79
SOUND_TOGGLE
#define SOUND_TOGGLE(_ACTOR_, _TRIG_)
Definition: SoundScriptManager.h:37
RoR::Character::setRotation
void setRotation(Ogre::Radian rotation)
Definition: Character.cpp:98
RoR::Actor::ar_cinecam_node
NodeNum_t ar_cinecam_node[MAX_CAMERAS]
Sim attr; Cine-camera node indexes.
Definition: Actor.h:369
RoR::EV_COMMON_TOGGLE_DEBUG_VIEW
@ EV_COMMON_TOGGLE_DEBUG_VIEW
toggle debug view mode
Definition: InputEngine.h:265
RoR::InputEngine::getEventBounceTime
float getEventBounceTime(int eventID)
Definition: InputEngine.cpp:728
RoR::CacheEntry::guid
Ogre::String guid
global unique id. Type "addonpart" leaves this empty.
Definition: CacheSystem.h:77
RoR::EV_TRUCK_ANTILOCK_BRAKE
@ EV_TRUCK_ANTILOCK_BRAKE
toggle antilockbrake system
Definition: InputEngine.h:300
RoR::Actor::getCustomLightVisible
bool getCustomLightVisible(int number)
Definition: Actor.cpp:4385
RoR::ActorModifyRequest::Type::RESET_ON_SPOT
@ RESET_ON_SPOT
RoR::Actor::displayTransferCaseMode
void displayTransferCaseMode()
Gets the current transfer case mode name (4WD Hi, ...)
Definition: Actor.cpp:1367
RoR::GameContext::CreatePlayerCharacter
void CreatePlayerCharacter()
Terrain must be loaded.
Definition: GameContext.cpp:826
RoR::GameContext::UpdateSkyInputEvents
void UpdateSkyInputEvents(float dt)
Definition: GameContext.cpp:1198
RoR::Actor::isBeingReset
bool isBeingReset() const
Definition: Actor.h:263
RoR::App::cli_preset_veh_enter
CVar * cli_preset_veh_enter
Definition: Application.cpp:182
RoR::ActorSpawnRequest::asr_saved_state
std::shared_ptr< rapidjson::Document > asr_saved_state
Pushes msg MODIFY_ACTOR (type RESTORE_SAVED) after spawn.
Definition: SimData.h:824
RoR::CacheEntry::fname
Ogre::String fname
filename
Definition: CacheSystem.h:67
RoR::EV_TRUCK_LEFT_MIRROR_RIGHT
@ EV_TRUCK_LEFT_MIRROR_RIGHT
Definition: InputEngine.h:315
RoR::Screwprop::toggleReverse
void toggleReverse()
Definition: ScrewProp.cpp:118
RoR::TyrePressure::UpdateInputEvents
void UpdateInputEvents(float dt)
Definition: TyrePressure.cpp:32
RoR::Terrain::HasPredefinedActors
bool HasPredefinedActors()
Definition: Terrain.cpp:570
RoR::GameContext::HasMessages
bool HasMessages()
Definition: GameContext.cpp:90
RoR::ActorModifyRequest::Type::RELOAD
@ RELOAD
Full reload from filesystem, requested by user.
RoR::ActorLinkingRequestType::SLIDENODE_ACTION
@ SLIDENODE_ACTION