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 
50 using namespace RoR;
51 
53 {
54  // Constructs `ActorPtr` - doesn't compile without `#include Actor.h` - not pretty if in header (even if auto-generated by C++).
55 }
56 
58 {
59  // Destructs `ActorPtr` - doesn't compile without `#include Actor.h` - not pretty if in header (even if auto-generated by C++).
60 }
61 
62 // --------------------------------
63 // Message queue
64 
66 {
67  std::lock_guard<std::mutex> lock(m_msg_mutex);
68  m_msg_queue.push(m);
69  m_msg_chain_end = &m_msg_queue.back();
70 }
71 
73 {
74  std::lock_guard<std::mutex> lock(m_msg_mutex);
75  if (m_msg_chain_end)
76  {
77 
78  m_msg_chain_end->chain.push_back(m);
80  }
81  else
82  {
83  // Regular `PushMessage()`, just without the lock.
84  m_msg_queue.push(m);
85  m_msg_chain_end = &m_msg_queue.back();
86  }
87 }
88 
90 {
91  std::lock_guard<std::mutex> lock(m_msg_mutex);
92  return !m_msg_queue.empty();
93 }
94 
96 {
97  std::lock_guard<std::mutex> lock(m_msg_mutex);
98  ROR_ASSERT(m_msg_queue.size() > 0);
99  if (m_msg_chain_end == &m_msg_queue.front())
100  {
101  m_msg_chain_end = nullptr;
102  }
103  Message m = m_msg_queue.front();
104  m_msg_queue.pop();
105  return m;
106 }
107 
108 // --------------------------------
109 // Terrain
110 
111 bool GameContext::LoadTerrain(std::string const& filename_part)
112 {
113  m_last_spawned_actor = nullptr;
114 
115  // Find terrain in modcache
116  CacheEntryPtr terrn_entry = App::GetCacheSystem()->FindEntryByFilename(LT_Terrain, /*partial=*/true, filename_part);
117  if (!terrn_entry)
118  {
119  Str<200> msg; msg << _L("Terrain not found: ") << filename_part;
120  RoR::Log(msg.ToCStr());
121  App::GetGuiManager()->ShowMessageBox(_L("Terrain loading error"), msg.ToCStr());
122  return false;
123  }
124 
125  // Init resources
126  App::GetCacheSystem()->LoadResource(terrn_entry);
127 
128  // Load the terrain def file
129  Terrn2Def terrn2;
130  std::string const& filename = terrn_entry->fname;
131  try
132  {
133  Ogre::DataStreamPtr stream = Ogre::ResourceGroupManager::getSingleton().openResource(filename);
134  LOG(" ===== LOADING TERRAIN " + filename);
135  Terrn2Parser parser;
136  if (! parser.LoadTerrn2(terrn2, stream))
137  {
138  return false; // Errors already logged to console
139  }
140  }
141  catch (Ogre::Exception& e)
142  {
143  App::GetGuiManager()->ShowMessageBox(_L("Terrain loading error"), e.getFullDescription().c_str());
144  return false;
145  }
146 
147  for (std::string const& assetpack_filename: terrn2.assetpack_files)
148  {
149  App::GetCacheSystem()->LoadAssetPack(terrn_entry, assetpack_filename);
150  }
151 
152  // CAUTION - the global instance must be set during init! Needed by:
153  // * GameScript::spawnObject()
154  // * ProceduralManager
155  // * Landusemap
156  // * SurveyMapTextureCreator
157  // * Collisions (debug visualization)
158  m_terrain = new RoR::Terrain(terrn_entry, terrn2);
159  if (!m_terrain->initialize())
160  {
161  m_terrain = nullptr; // release local reference - object will be deleted when all references are released.
162  return false; // Message box already displayed
163  }
164 
165  // Initialize envmap textures by rendering center of map
166  Ogre::Vector3 center = m_terrain->getMaxTerrainSize() / 2;
167  center.y = m_terrain->GetHeightAt(center.x, center.z) + 1.0f;
168  App::GetGfxScene()->GetEnvMap().UpdateEnvMap(center, /*gfx_actor:*/nullptr, /*full:*/true);
169 
170  // Scan groundmodels
172 
173  return true;
174 }
175 
177 {
178  if (m_terrain != nullptr)
179  {
180  // dispose(), do not `delete` - script may still hold reference to the object.
181  m_terrain->dispose();
182  // release local reference - object will be deleted when all references are released.
183  m_terrain = nullptr;
184  }
185 }
186 
187 // --------------------------------
188 // Actors (physics and netcode)
189 
191 {
193  {
198 
199  if (rq.asr_spawnbox == nullptr)
200  {
201  if (m_player_actor != nullptr)
202  {
203  float h = m_player_actor->getMaxHeight(true);
204  rq.asr_rotation = Ogre::Quaternion(Ogre::Degree(270) - Ogre::Radian(m_player_actor->getRotation()), Ogre::Vector3::UNIT_Y);
207  rq.asr_position.y += m_player_actor->getHeightAboveGroundBelow(h, true); // retain height above ground
208  }
209  else
210  {
211  Character* player_character = this->GetPlayerCharacter();
212  rq.asr_rotation = Ogre::Quaternion(Ogre::Degree(180) - player_character->getRotation(), Ogre::Vector3::UNIT_Y);
213  rq.asr_position = player_character->getPosition();
214  }
215  }
216  }
217 
218  LOG(" ===== LOADING VEHICLE: " + rq.asr_filename);
219 
220  if (rq.asr_cache_entry)
221  {
223  }
224  else
225  {
227  }
228 
231  if (def == nullptr)
232  {
233  return nullptr; // Error already reported
234  }
235 
236  if (rq.asr_skin_entry)
237  {
238  App::GetCacheSystem()->LoadResource(rq.asr_skin_entry); // Also loads associated .skin file.
239  if (!rq.asr_skin_entry->skin_def) // Make sure .skin was loaded OK.
240  {
241  rq.asr_skin_entry = nullptr; // Error already logged
242  }
243  }
244 
245  if (App::sim_tuning_enabled->getBool() && (App::mp_state->getEnum<MpState>() != MpState::CONNECTED))
246  {
247  if (rq.asr_tuneup_entry)
248  {
249  App::GetCacheSystem()->LoadResource(rq.asr_tuneup_entry); // Also loads associated .tuneup file.
250  if (!rq.asr_tuneup_entry->tuneup_def)
251  {
252  rq.asr_tuneup_entry = nullptr; // Error already logged
253  }
254  }
255  }
256  else
257  {
258  rq.asr_working_tuneup = nullptr; // Make sure no tuneup is used
259  }
260 
261 #ifdef USE_SOCKETW
263  {
264  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
265  {
268  rq.asr_net_color = info.colournum;
269  }
270  }
271 #endif //SOCKETW
272 
273  ActorPtr fresh_actor = m_actor_manager.CreateNewActor(rq, def);
274  bool fresh_actor_seat_player = false;
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  fresh_actor_seat_player = true;
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  fresh_actor_seat_player = true;
302  }
303  }
305  {
306  if (rq.asr_terrn_machine)
307  {
308  fresh_actor->ar_driveable = MACHINE;
309  }
310  }
312  {
313  fresh_actor->ar_driveable = AI;
314  fresh_actor->ar_state = ActorState::LOCAL_SIMULATED;
315 
316  if (fresh_actor->ar_engine)
317  {
319  fresh_actor->ar_engine->autoShiftSet(EngineSim::DRIVE);
320  }
321  }
323  {
324  fresh_actor->ar_net_source_id = rq.net_source_id;
325  fresh_actor->ar_net_stream_id = rq.net_stream_id;
326  }
328  {
329  if (rq.asr_saved_state)
330  {
332  req->amr_actor = fresh_actor->ar_instance_id;
336  }
337  }
338  else
339  {
340  if (fresh_actor->ar_driveable != NOT_DRIVEABLE &&
342  rq.asr_enter)
343  {
344  fresh_actor_seat_player = true;
345  }
346  }
347 
348  if (fresh_actor_seat_player)
349  {
350  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, new ActorPtr(fresh_actor)));
351  // Loading all addonparts to resolve conflicts is slow and would cause huge UI lag if not forced now. Do it right after player was seated in the actor.
353  }
354 
355  return fresh_actor;
356 }
357 
359 {
361 
362  if (!actor)
363  {
364  return;
365  }
366 
368  {
369  actor->SoftReset();
370  }
372  {
373  actor->SyncReset(/*reset_position:*/false);
374  }
376  {
377  actor->SyncReset(/*reset_position:*/true);
378  }
380  {
382  }
385  {
387  actor->ar_sleep_counter = 0.0f;
388  }
390  {
391  CacheEntryPtr entry = App::GetCacheSystem()->FindEntryByFilename(LT_AllBeam, /*partial=*/false, actor->ar_filename);
392  if (!entry)
393  {
394  Str<500> msg; msg <<"Cannot reload vehicle; file '" << actor->ar_filename << "' not found in ModCache.";
396  return;
397  }
398 
399  // Create spawn request while actor still exists
401  srq->asr_position = Ogre::Vector3(actor->getPosition().x, actor->getMinHeight(), actor->getPosition().z);
402  srq->asr_rotation = Ogre::Quaternion(Ogre::Degree(270) - Ogre::Radian(actor->getRotation()), Ogre::Vector3::UNIT_Y);
403  srq->asr_config = actor->getSectionConfig();
404  srq->asr_skin_entry = actor->getUsedSkinEntry();
405  srq->asr_working_tuneup = actor->getWorkingTuneupDef();
406  srq->asr_cache_entry= entry;
407  srq->asr_debugview = (int)actor->GetGfxActor()->GetDebugView();
409 
410  // This deletes all actors using the resource bundle, including the one we're reloading.
412 
413  // Load our actor again, but only after all actors are deleted.
415  }
416 }
417 
419 {
420  if (actor == m_player_actor)
421  {
422  Ogre::Vector3 center = m_player_actor->getRotationCenter();
423  this->ChangePlayerActor(nullptr); // Get out of the vehicle
424  this->GetPlayerCharacter()->setPosition(center);
425  // Update scene SimBuffer immediatelly to prevent having dangling pointer.
427  }
428 
429  if (actor == m_prev_player_actor)
430  {
431  m_prev_player_actor = nullptr;
432  }
433 
434  if (actor == m_last_spawned_actor)
435  {
436  m_last_spawned_actor = nullptr;
437  }
438 
439  // Find linked actors and un-tie if tied
440  for (auto actorx : m_actor_manager.GetLocalActors())
441  {
442  if (actorx->isTied() && std::find(actor->ar_linked_actors.begin(), actor->ar_linked_actors.end(), actorx) != actor->ar_linked_actors.end())
443  {
444  actorx->tieToggle(); // OK to invoke here - processing MSG_SIM_DELETE_ACTOR_REQUESTED
445  }
446 
447  if (actorx->isLocked() && std::find(actor->ar_linked_actors.begin(), actor->ar_linked_actors.end(), actorx) != actor->ar_linked_actors.end())
448  {
449  actorx->hookToggle(); // OK to invoke here - processing MSG_SIM_DELETE_ACTOR_REQUESTED
450  }
451  }
452 
454 
455 #ifdef USE_SOCKETW
456  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
457  {
459  }
460 #endif //SOCKETW
461 
463 
465 }
466 
468 {
469  ActorPtr prev_player_actor = m_player_actor;
470  m_player_actor = actor;
471 
472  // hide any old dashes
473  if (prev_player_actor && prev_player_actor->ar_dashboard)
474  {
475  prev_player_actor->ar_dashboard->setVisible3d(false);
476  }
477  // show new
479  {
481  }
482 
483  if (prev_player_actor)
484  {
485  App::GetOverlayWrapper()->showDashboardOverlays(false, prev_player_actor);
486 
487  prev_player_actor->GetGfxActor()->SetRenderdashActive(false);
488 
489  SOUND_STOP(prev_player_actor, SS_TRIG_AIR);
490  SOUND_STOP(prev_player_actor, SS_TRIG_PUMP);
491  }
492 
493  if (m_player_actor == nullptr)
494  {
495  // getting outside
496 
497  if (prev_player_actor)
498  {
500  {
502  }
503 
504  prev_player_actor->prepareInside(false);
505 
506  // get player out of the vehicle
507  float h = prev_player_actor->getMinCameraRadius();
508  float rotation = prev_player_actor->getRotation() - Ogre::Math::HALF_PI;
509  Ogre::Vector3 position = prev_player_actor->getPosition();
510  if (prev_player_actor->ar_cinecam_node[0] != NODENUM_INVALID)
511  {
512  // actor has a cinecam (find optimal exit position)
513  Ogre::Vector3 l = position - 2.0f * prev_player_actor->GetCameraRoll();
514  Ogre::Vector3 r = position + 2.0f * prev_player_actor->GetCameraRoll();
515  float l_h = m_terrain->GetCollisions()->getSurfaceHeightBelow(l.x, l.z, l.y + h);
516  float r_h = m_terrain->GetCollisions()->getSurfaceHeightBelow(r.x, r.z, r.y + h);
517  position = std::abs(r.y - r_h) * 1.2f < std::abs(l.y - l_h) ? r : l;
518  }
519  position.y = m_terrain->GetCollisions()->getSurfaceHeightBelow(position.x, position.z, position.y + h);
520 
521  Character* player_character = this->GetPlayerCharacter();
522  if (player_character)
523  {
524  player_character->SetActorCoupling(false, nullptr);
525  player_character->setRotation(Ogre::Radian(rotation));
526  player_character->setPosition(position);
527  }
528  }
529 
531 
532  TRIGGER_EVENT_ASYNC(SE_TRUCK_EXIT, prev_player_actor?prev_player_actor->ar_instance_id:-1);
533  }
534  else
535  {
536  // getting inside
538  !App::GetGuiManager()->IsGuiHidden(), m_player_actor);
539 
541  {
543  }
544 
546 
547  // force feedback
549 
550  // attach player to vehicle
551  Character* player_character = this->GetPlayerCharacter();
552  if (player_character)
553  {
554  player_character->SetActorCoupling(true, m_player_actor);
555  }
556 
558 
560  }
561 
562  if (prev_player_actor != nullptr || m_player_actor != nullptr)
563  {
565  }
566 
568 }
569 
571 {
573 }
574 
576 {
578 }
579 
581 {
583 }
584 
585 ActorPtr GameContext::FindActorByCollisionBox(std::string const & ev_src_instance_name, std::string const & box_name)
586 {
588  ev_src_instance_name, box_name);
589 }
590 
592 {
593  if (m_last_cache_selection != nullptr)
594  {
601  }
602 }
603 
604 void GameContext::SpawnPreselectedActor(std::string const& preset_vehicle, std::string const& preset_veh_config)
605 {
607  LT_AllBeam, /*partial=*/true, preset_vehicle);
608 
609  if (!entry)
610  return;
611 
613  rq->asr_cache_entry = entry;
615  rq->asr_rotation = Ogre::Quaternion(Ogre::Degree(180) - this->GetPlayerCharacter()->getRotation(), Ogre::Vector3::UNIT_Y);
617 
618  RoR::LogFormat("[RoR|Diag] Preselected Truck: %s (%s)", entry->dname.c_str(), entry->fname.c_str());
619 
620  // Section config lookup
621  if (!entry->sectionconfigs.empty())
622  {
623  if (std::find(entry->sectionconfigs.begin(), entry->sectionconfigs.end(),
624  preset_veh_config)
625  == entry->sectionconfigs.end())
626  {
627  // Preselected config doesn't exist -> use first available one
628  rq->asr_config = entry->sectionconfigs[0];
629  }
630  else
631  {
632  rq->asr_config = preset_veh_config;
633  }
634  RoR::LogFormat("[RoR|Diag] Preselected Truck Config: %s", rq->asr_config.c_str());
635  }
636 
638 }
639 
640 void GameContext::ShowLoaderGUI(int type, const Ogre::String& instance, const Ogre::String& box)
641 {
642  // first, test if the place if clear, BUT NOT IN MULTIPLAYER
643  if (!(App::mp_state->getEnum<MpState>() == MpState::CONNECTED))
644  {
645  collision_box_t* spawnbox = m_terrain->GetCollisions()->getBox(instance, box);
646  for (ActorPtr& actor : this->GetActorManager()->GetActors())
647  {
648  for (int i = 0; i < actor->ar_num_nodes; i++)
649  {
650  if (m_terrain->GetCollisions()->isInside(actor->ar_nodes[i].AbsPosition, spawnbox))
651  {
652  App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("Please clear the place first"), "error.png");
653  return;
654  }
655  }
656  }
657  }
658 
662 
664  m.payload = reinterpret_cast<void*>(new LoaderType(LoaderType(type)));
666 }
667 
669 {
671 
672  if (App::GetGuiManager()->TopMenubar.ai_select)
673  {
676  }
677  if (App::GetGuiManager()->TopMenubar.ai_select2)
678  {
681  }
682 }
683 
684 void GameContext::OnLoaderGuiApply(LoaderType type, CacheEntryPtr entry, std::string sectionconfig)
685 {
686  bool spawn_now = false;
687  switch (type)
688  {
689  case LT_AddonPart:
690  if (m_player_actor)
691  {
694  req->mpr_subject = entry->fname;
697  }
698  break;
699 
700  case LT_Skin:
701  if (entry != m_dummy_cache_selection)
702  {
704  if (App::GetGuiManager()->TopMenubar.ai_select)
705  {
707  }
708  if (App::GetGuiManager()->TopMenubar.ai_select2)
709  {
711  }
712  }
713  spawn_now = true;
714  break;
715 
716  case LT_Vehicle:
717  case LT_Truck:
718  case LT_Car:
719  case LT_Boat:
720  case LT_Airplane:
721  case LT_Trailer:
722  case LT_Train:
723  case LT_Load:
724  case LT_Extension:
725  case LT_AllBeam:
727  m_current_selection.asr_config = sectionconfig;
728  if (App::GetGuiManager()->TopMenubar.ai_select)
729  {
731  }
732  if (App::GetGuiManager()->TopMenubar.ai_select2)
733  {
735  }
737  // Look for extra skins
738  if (!entry->guid.empty())
739  {
740  CacheQuery skin_query;
741  skin_query.cqy_filter_guid = entry->guid;
742  skin_query.cqy_filter_type = LT_Skin;
743  size_t num_skins = App::GetCacheSystem()->Query(skin_query);
744  // Determine default skin
745  CacheEntryPtr default_skin_entry = nullptr;
746  if (entry->default_skin != "")
747  {
748  for (CacheQueryResult& res : skin_query.cqy_results)
749  {
750  if (res.cqr_entry->dname == entry->default_skin)
751  default_skin_entry = res.cqr_entry;
752  }
753  if (!default_skin_entry)
754  {
756  fmt::format(_L("Default skin '{}' for actor '{}' not found!"), entry->default_skin, entry->dname));
757  }
758  if (default_skin_entry && num_skins == 1)
759  {
760  m_current_selection.asr_skin_entry = default_skin_entry;
761  }
762  }
763  else
764  {
765  default_skin_entry = m_dummy_cache_selection;
766  default_skin_entry->dname = "Default skin";
767  default_skin_entry->description = "Original, unmodified skin";
768  }
769 
770  if (!m_current_selection.asr_skin_entry && num_skins > 0)
771  {
772  App::GetGuiManager()->MainSelector.Show(LT_Skin, entry->guid, default_skin_entry); // Intentionally not using MSG_
773  }
774  else
775  {
776  spawn_now = true;
777  }
778  }
779  else
780  {
781  spawn_now = true;
782  }
783  break;
784 
785  default:;
786  }
787 
788  if (spawn_now)
789  {
790  if (App::GetGuiManager()->TopMenubar.ai_select)
791  {
796  }
797  else if (App::GetGuiManager()->TopMenubar.ai_select2)
798  {
803  }
804  else
805  {
807  *rq = m_current_selection;
809  }
810 
812  }
813 }
814 
816 
817 // --------------------------------
818 // Characters
819 
821 {
823 
824  // Adjust character position
825  Ogre::Vector3 spawn_pos = m_terrain->getSpawnPos();
826  float spawn_rot = 0.0f;
827 
828  // Classic behavior, retained for compatibility.
829  // Required for maps like N-Labs or F1 Track.
831  {
832  spawn_rot = 180.0f;
833  }
834 
835  // Preset position - commandline has precedence
836  if (App::cli_preset_spawn_pos->getStr() != "")
837  {
838  spawn_pos = Ogre::StringConverter::parseVector3(App::cli_preset_spawn_pos->getStr(), spawn_pos);
840  }
841  else if (App::diag_preset_spawn_pos->getStr() != "")
842  {
843  spawn_pos = Ogre::StringConverter::parseVector3(App::diag_preset_spawn_pos->getStr(), spawn_pos);
845  }
846 
847  // Preset rotation - commandline has precedence
848  if (App::cli_preset_spawn_rot->getStr() != "")
849  {
850  spawn_rot = Ogre::StringConverter::parseReal(App::cli_preset_spawn_rot->getStr(), spawn_rot);
852  }
853  else if (App::diag_preset_spawn_rot->getStr() != "")
854  {
855  spawn_rot = Ogre::StringConverter::parseReal(App::diag_preset_spawn_rot->getStr(), spawn_rot);
857  }
858 
859  spawn_pos.y = m_terrain->GetCollisions()->getSurfaceHeightBelow(spawn_pos.x, spawn_pos.z, spawn_pos.y + 1.8f);
860 
861  this->GetPlayerCharacter()->setPosition(spawn_pos);
862  this->GetPlayerCharacter()->setRotation(Ogre::Degree(spawn_rot));
863 
864  App::GetCameraManager()->GetCameraNode()->setPosition(this->GetPlayerCharacter()->getPosition());
865 
866  // Small hack to improve the spawn experience
867  for (int i = 0; i < 100; i++)
868  {
870  }
871 }
872 
873 Character* GameContext::GetPlayerCharacter() // Convenience ~ counterpart of `GetPlayerActor()`
874 {
876 }
877 
878 // --------------------------------
879 // Gameplay feats
880 
881 void GameContext::TeleportPlayer(float x, float z)
882 {
884  if (!this->GetPlayerActor())
885  {
886  this->GetPlayerCharacter()->setPosition(Ogre::Vector3(x, y, z));
887  return;
888  }
889 
890  TRIGGER_EVENT_ASYNC(SE_TRUCK_TELEPORT, this->GetPlayerActor()->ar_instance_id);
891 
892  Ogre::Vector3 translation = Ogre::Vector3(x, y, z) - this->GetPlayerActor()->ar_nodes[0].AbsPosition;
893 
894  std::vector<ActorPtr> actorsToBeamUp;
895  actorsToBeamUp.assign(this->GetPlayerActor()->ar_linked_actors.begin(), this->GetPlayerActor()->ar_linked_actors.end());
896  actorsToBeamUp.push_back(this->GetPlayerActor());
897 
898  float src_agl = std::numeric_limits<float>::max();
899  float dst_agl = std::numeric_limits<float>::max();
900  for (ActorPtr& actor : actorsToBeamUp)
901  {
902  for (int i = 0; i < actor->ar_num_nodes; i++)
903  {
904  Ogre::Vector3 pos = actor->ar_nodes[i].AbsPosition;
905  src_agl = std::min(pos.y - m_terrain->GetCollisions()->getSurfaceHeight(pos.x, pos.z), src_agl);
906  pos += translation;
907  dst_agl = std::min(pos.y - m_terrain->GetCollisions()->getSurfaceHeight(pos.x, pos.z), dst_agl);
908  }
909  }
910 
911  translation += Ogre::Vector3::UNIT_Y * (std::max(0.0f, src_agl) - dst_agl);
912 
913  for (ActorPtr& actor : actorsToBeamUp)
914  {
915  actor->resetPosition(actor->ar_nodes[0].AbsPosition + translation, false);
916  }
917 }
918 
920 {
921  // Generic escape key event
922  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_QUIT_GAME))
923  {
924  if (App::app_state->getEnum<AppState>() == AppState::MAIN_MENU)
925  {
926  if (App::GetGuiManager()->GameAbout.IsVisible())
927  {
929  }
930  else if (App::GetGuiManager()->MainSelector.IsVisible())
931  {
933  }
934  else if (App::GetGuiManager()->GameSettings.IsVisible())
935  {
937  }
938  else if (App::GetGuiManager()->GameControls.IsVisible())
939  {
941  }
942  else if (App::GetGuiManager()->MultiplayerSelector.IsVisible())
943  {
945  }
946  else if (App::GetGuiManager()->RepositorySelector.IsVisible())
947  {
949  }
950  else
951  {
953  }
954  }
955  else if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
956  {
957  if (App::GetGuiManager()->MainSelector.IsVisible())
958  {
960  }
961  else if (App::GetGuiManager()->GameControls.IsVisible())
962  {
964  }
965  else if (App::sim_state->getEnum<SimState>() == SimState::RUNNING)
966  {
968  if (App::mp_state->getEnum<MpState>() != MpState::CONNECTED)
969  {
971  }
972  }
973  else if (App::sim_state->getEnum<SimState>() == SimState::PAUSED)
974  {
977  }
978  }
979  }
980 
981  // screenshot
982  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_SCREENSHOT, 0.25f))
983  {
985  }
986 
987  // fullscreen toggle
988  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_FULLSCREEN_TOGGLE, 2.0f))
989  {
990  if (App::GetAppContext()->GetRenderWindow()->isFullScreen())
992  else
994  }
995 
996  // render mode
997  switch (App::gfx_polygon_mode->getEnum<Ogre::PolygonMode>())
998  {
999  case 1: App::GetCameraManager()->GetCamera()->setPolygonMode(Ogre::PM_SOLID); break;
1000  case 2: App::GetCameraManager()->GetCamera()->setPolygonMode(Ogre::PM_WIREFRAME); break;
1001  case 3: App::GetCameraManager()->GetCamera()->setPolygonMode(Ogre::PM_POINTS); break;
1002  }
1003 
1004  // Write player position to log
1005  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION &&
1006  App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_OUTPUT_POSITION))
1007  {
1008  Ogre::Vector3 position(Ogre::Vector3::ZERO);
1009  Ogre::Radian rotation(0);
1010  if (this->GetPlayerActor() == nullptr)
1011  {
1012  position = this->GetPlayerCharacter()->getPosition();
1013  rotation = this->GetPlayerCharacter()->getRotation() + Ogre::Radian(Ogre::Math::PI);
1014  }
1015  else
1016  {
1017  position = this->GetPlayerActor()->getPosition();
1018  rotation = this->GetPlayerActor()->getRotation();
1019  }
1020  Ogre::String pos = Ogre::StringUtil::format("%8.3f, %8.3f, %8.3f" , position.x, position.y, position.z);
1021  Ogre::String rot = Ogre::StringUtil::format("% 6.1f, % 6.1f, % 6.1f", 0.0f, rotation.valueDegrees() , 0.0f);
1022  LOG("Position: " + pos + ", " + rot);
1023  }
1024 
1025  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_RESET_MODE))
1026  {
1030  (App::sim_soft_reset_mode->getBool()) ? _L("Enabled soft reset mode") : _L("Enabled hard reset mode"));
1031  }
1032 }
1033 
1035 {
1036  // get new vehicle
1037  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_GET_NEW_VEHICLE))
1038  {
1040  m.payload = reinterpret_cast<void*>(new LoaderType(LT_AllBeam));
1042  }
1043 
1044  // Enter/exit truck - With a toggle delay
1045  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ENTER_OR_EXIT_TRUCK, 0.5f))
1046  {
1047  if (this->GetPlayerActor() == nullptr) // no vehicle
1048  {
1049  // find the nearest vehicle
1050  float mindist = 1000.0;
1051  ActorPtr nearest_actor = nullptr;
1052  for (ActorPtr& actor : this->GetActorManager()->GetActors())
1053  {
1054  if (!actor->ar_driveable)
1055  continue;
1056  if (actor->ar_cinecam_node[0] == NODENUM_INVALID)
1057  {
1058  LOG("cinecam missing, cannot enter the actor!");
1059  continue;
1060  }
1061  float len = 0.0f;
1062  if (this->GetPlayerCharacter())
1063  {
1064  len = actor->ar_nodes[actor->ar_cinecam_node[0]].AbsPosition.distance(this->GetPlayerCharacter()->getPosition() + Ogre::Vector3(0.0, 2.0, 0.0));
1065  }
1066  if (len < mindist)
1067  {
1068  mindist = len;
1069  nearest_actor = actor;
1070  }
1071  }
1072 
1073  if (mindist < 20.0)
1074  {
1075  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(nearest_actor))));
1076  }
1077  }
1078  else // We're in a vehicle -> If moving slowly enough, get out
1079  {
1080  if (this->GetPlayerActor()->ar_nodes[0].Velocity.squaredLength() < 1.0f ||
1081  this->GetPlayerActor()->ar_state == ActorState::NETWORKED_OK || this->GetPlayerActor()->ar_state == ActorState::NETWORKED_HIDDEN ||
1082  this->GetPlayerActor()->ar_driveable == AI)
1083  {
1084  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr())));
1085  }
1086  }
1087  }
1088 
1089  // enter next truck
1090  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ENTER_NEXT_TRUCK, 0.25f))
1091  {
1092  ActorPtr actor = this->FetchNextVehicleOnList();
1093  if (actor != this->GetPlayerActor())
1094  {
1095  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(actor))));
1096  }
1097  }
1098 
1099  // enter previous truck
1100  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ENTER_PREVIOUS_TRUCK, 0.25f))
1101  {
1102  ActorPtr actor = this->FetchPrevVehicleOnList();
1103  if (actor != this->GetPlayerActor())
1104  {
1105  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(actor))));
1106  }
1107  }
1108 
1109  // respawn last truck
1110  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_RESPAWN_LAST_TRUCK, 0.25f))
1111  {
1112  this->RespawnLastActor();
1113  }
1114 
1115  // terrain editor toggle
1117  {
1119  }
1120 
1121  // forward commands from character
1122  if (!m_player_actor)
1123  {
1124  // Find nearest actor
1125  const Ogre::Vector3 position = App::GetGameContext()->GetPlayerCharacter()->getPosition();
1126  ActorPtr nearest_actor = nullptr;
1127  float min_squared_distance = std::numeric_limits<float>::max();
1128  for (ActorPtr& actor : App::GetGameContext()->GetActorManager()->GetActors())
1129  {
1130  float squared_distance = position.squaredDistance(actor->ar_nodes[0].AbsPosition);
1131  if (squared_distance < min_squared_distance)
1132  {
1133  min_squared_distance = squared_distance;
1134  nearest_actor = actor;
1135  }
1136  }
1137 
1138  // Evaluate
1139  if (nearest_actor != nullptr &&
1140  nearest_actor->ar_import_commands &&
1141  min_squared_distance < (nearest_actor->getMinCameraRadius()*nearest_actor->getMinCameraRadius()))
1142  {
1143  // get commands
1144  for (int i = 1; i <= MAX_COMMANDS; i++) // BEWARE: commandkeys are indexed 1-MAX_COMMANDS!
1145  {
1146  int eventID = EV_COMMANDS_01 + (i - 1);
1147 
1148  nearest_actor->ar_command_key[i].playerInputValue = RoR::App::GetInputEngine()->getEventValue(eventID);
1149  }
1150  }
1151  }
1152 
1153  // AI waypoint recording
1154  if (App::GetGuiManager()->TopMenubar.ai_rec)
1155  {
1156  if (m_timer.getMilliseconds() > 1000) // Don't spam it, record every 1 sec
1157  {
1158  if (App::GetGameContext()->GetPlayerActor()) // We are in vehicle
1159  {
1160  if (App::GetGameContext()->GetPlayerActor()->getPosition().distance(prev_pos) >= 5) // Skip very close positions
1161  {
1162  ai_events waypoint;
1164  waypoint.speed = App::GetGameContext()->GetPlayerActor()->getWheelSpeed() * 3.6;
1165  if (waypoint.speed < 5)
1166  {
1167  waypoint.speed = -1;
1168  }
1169  App::GetGuiManager()->TopMenubar.ai_waypoints.push_back(waypoint);
1170  }
1172  }
1173  else // We are in feet
1174  {
1175  if (App::GetGameContext()->GetPlayerCharacter()->getPosition() != prev_pos) // Skip same positions
1176  {
1177  ai_events waypoint;
1179  App::GetGuiManager()->TopMenubar.ai_waypoints.push_back(waypoint);
1180  }
1182  }
1183  m_timer.reset();
1184  }
1185  }
1186  else
1187  {
1188  prev_pos = Ogre::Vector3::ZERO;
1189  }
1190 }
1191 
1193 {
1194 #ifdef USE_CAELUM
1195  if (App::gfx_sky_mode->getEnum<GfxSkyMode>() == GfxSkyMode::CAELUM &&
1197  {
1198  float time_factor = 1.0f;
1199 
1200  if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME))
1201  {
1202  time_factor = 1000.0f;
1203  }
1204  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME_FAST))
1205  {
1206  time_factor = 10000.0f;
1207  }
1208  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME))
1209  {
1210  time_factor = -1000.0f;
1211  }
1212  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME_FAST))
1213  {
1214  time_factor = -10000.0f;
1215  }
1216  else if (App::gfx_sky_time_cycle->getBool())
1217  {
1218  time_factor = App::gfx_sky_time_speed->getInt();
1219  }
1220 
1221  if (m_terrain->getSkyManager()->GetSkyTimeFactor() != time_factor)
1222  {
1223  m_terrain->getSkyManager()->SetSkyTimeFactor(time_factor);
1224  Str<200> msg; msg << _L("Time set to ") << m_terrain->getSkyManager()->GetPrettyTime();
1226  }
1227  }
1228 
1229 #endif // USE_CAELUM
1230  if (App::gfx_sky_mode->getEnum<GfxSkyMode>() == GfxSkyMode::SKYX &&
1232  {
1233  if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME))
1234  {
1236  }
1237  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME_FAST))
1238  {
1240  }
1241  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME))
1242  {
1244  }
1245  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME_FAST))
1246  {
1248  }
1249  else
1250  {
1252  }
1253  }
1254 }
1255 
1257 {
1259 
1260  // reload current truck
1261  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCKEDIT_RELOAD, 0.5f))
1262  {
1267  }
1268 
1269  // remove current truck
1270  if (App::GetInputEngine()->getEventBoolValue(EV_COMMON_REMOVE_CURRENT_TRUCK))
1271  {
1273  }
1274 
1275  // Front lights
1276  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_LOW_BEAMS))
1277  {
1279  // sync sidelights to lowbeams
1281  }
1282  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_CYCLE_TRUCK_LIGHTS))
1283  {
1284  // Smart cycling:
1285  // 1) all lights off
1286  // 2) sidelights on but only if any installed, otherwise skip to 3).
1287  // 3) sidelights and lowbeams on.
1288  // 4) sidelights, lowbeams and highbeams on, but only if highbeams are installed, otherwise cycle to 1).
1290  {
1292  }
1293  else if (!m_player_actor->getHeadlightsVisible())
1294  {
1297  }
1299  {
1303  }
1304  else
1305  {
1309  }
1310  }
1311  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_HIGH_BEAMS))
1312  {
1314  }
1315  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_FOG_LIGHTS))
1316  {
1318  }
1319 
1320  // Beacons
1321  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_BEACONS))
1322  {
1324  }
1325 
1326  // blinkers
1327  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_BLINK_LEFT))
1329 
1330  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_BLINK_RIGHT))
1332 
1333  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_BLINK_WARN))
1335 
1336  // custom lights
1337  for (int i = 0; i < MAX_CLIGHTS; i++)
1338  {
1339  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_LIGHTTOGGLE01 + i))
1341  }
1342 
1343  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TRUCK_REMOVE))
1344  {
1346  }
1347 
1348  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ROPELOCK))
1349  {
1351  }
1352 
1353  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_LOCK))
1354  {
1355  //m_player_actor->hookToggle(-1, HOOK_TOGGLE, -1);
1356  ActorLinkingRequest* hook_rq = new ActorLinkingRequest();
1360 
1361  //m_player_actor->toggleSlideNodeLock();
1362  ActorLinkingRequest* slidenode_rq = new ActorLinkingRequest();
1366  }
1367 
1368  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_AUTOLOCK))
1369  {
1370  m_player_actor->hookToggle(-2, ActorLinkingRequestType::HOOK_UNLOCK, -1); //unlock all autolocks
1371  }
1372 
1373  //strap
1374  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_SECURE_LOAD))
1375  {
1377  }
1378 
1379  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_CUSTOM_PARTICLES))
1380  {
1382  }
1383 
1384  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_DEBUG_VIEW))
1385  {
1387  for (ActorPtr& actor : m_player_actor->ar_linked_actors)
1388  {
1390  }
1391  }
1392 
1393  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_CYCLE_DEBUG_VIEWS))
1394  {
1396  for (ActorPtr& actor : m_player_actor->ar_linked_actors)
1397  {
1399  }
1400  }
1401 
1402  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_RESCUE_TRUCK, 0.5f) &&
1403  App::mp_state->getEnum<MpState>() != MpState::CONNECTED &&
1405  {
1406  ActorPtr rescuer = nullptr;
1407  for (ActorPtr& actor : App::GetGameContext()->GetActorManager()->GetActors())
1408  {
1409  if (actor->ar_rescuer_flag)
1410  {
1411  rescuer = actor;
1412  }
1413  }
1414  if (rescuer == nullptr)
1415  {
1416  App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("No rescue truck found!"), "error.png");
1417  }
1418  else
1419  {
1420  App::GetGameContext()->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(rescuer))));
1421  }
1422  }
1423 
1424  // parking brake
1425  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TRAILER_PARKING_BRAKE))
1426  {
1431  }
1432 
1433  // videocam
1434  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_VIDEOCAMERA, 0.5f))
1435  {
1437  {
1439  }
1440  else
1441  {
1443  }
1444  }
1445 
1446  // enter/exit truck - Without a delay: the vehicle must brake like braking normally
1447  if (App::GetInputEngine()->getEventBoolValue(EV_COMMON_ENTER_OR_EXIT_TRUCK))
1448  {
1449  if (m_player_actor->ar_driveable != AI)
1450  {
1451  m_player_actor->ar_brake = 0.66f;
1452  }
1453  }
1454 
1455  // toggle physics
1456  if (RoR::App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_PHYSICS))
1457  {
1458  for (ActorPtr& actor : App::GetGameContext()->GetPlayerActor()->ar_linked_actors)
1459  {
1460  actor->ar_physics_paused = !App::GetGameContext()->GetPlayerActor()->ar_physics_paused;
1461  }
1463  }
1464 
1465  // reset truck
1466  if (App::GetInputEngine()->getEventBoolValue(EV_COMMON_RESET_TRUCK))
1467  {
1472  }
1473 
1474  // Commandkeys: process controller input for all commands
1475  for (int i = 1; i <= MAX_COMMANDS; i++) // BEWARE: commandkeys are indexed 1-MAX_COMMANDS!
1476  {
1477  int eventID = EV_COMMANDS_01 + (i - 1);
1478 
1479  m_player_actor->ar_command_key[i].playerInputValue = RoR::App::GetInputEngine()->getEventValue(eventID);
1480  }
1481 
1482  // Commandkeys: Apply command buttons in T-screen
1483  if (App::GetGuiManager()->VehicleInfoTPanel.GetActiveCommandKey() != COMMANDKEYID_INVALID)
1484  {
1486  }
1487 
1488  if (RoR::App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_FORWARDCOMMANDS))
1489  {
1492  {
1493  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("forwardcommands enabled"), "information.png");
1494  }
1495  else
1496  {
1497  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("forwardcommands disabled"), "information.png");
1498  }
1499  }
1500 
1501  if (RoR::App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_IMPORTCOMMANDS))
1502  {
1505  {
1506  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("importcommands enabled"), "information.png");
1507  }
1508  else
1509  {
1510  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("importcommands disabled"), "information.png");
1511  }
1512  }
1513 
1514  if (m_player_actor->getReplay())
1515  {
1517  }
1518 }
1519 
1520 // Internal heper for UpdateAirplaneInputEvents()
1521 void smoothValue(float& ref, float value, float rate)
1522 {
1523  if (value < -1)
1524  value = -1;
1525  if (value > 1)
1526  value = 1;
1527  // smooth!
1528  if (ref > value)
1529  {
1530  ref -= rate;
1531  if (ref < value)
1532  ref = value;
1533  }
1534  else if (ref < value)
1535  ref += rate;
1536 }
1537 
1539 {
1541  return;
1542 
1543  // autopilot
1545  {
1547  }
1548 
1549  // steer
1550  float commandrate = 4.0;
1553  float sum_steer = -tmp_left + tmp_right;
1554  smoothValue(m_player_actor->ar_aileron, sum_steer, dt * commandrate);
1557 
1558  // pitch
1560  float tmp_pitch_down = App::GetInputEngine()->getEventValue(EV_AIRPLANE_ELEVATOR_DOWN);
1561  float sum_pitch = tmp_pitch_down - tmp_pitch_up;
1562  smoothValue(m_player_actor->ar_elevator, sum_pitch, dt * commandrate);
1563 
1564  // rudder
1565  float tmp_rudder_left = App::GetInputEngine()->getEventValue(EV_AIRPLANE_RUDDER_LEFT);
1566  float tmp_rudder_right = App::GetInputEngine()->getEventValue(EV_AIRPLANE_RUDDER_RIGHT);
1567  float sum_rudder = tmp_rudder_left - tmp_rudder_right;
1568  smoothValue(m_player_actor->ar_rudder, sum_rudder, dt * commandrate);
1569 
1570  // brakes
1572  {
1574  }
1575 
1576  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_PARKING_BRAKE))
1577  {
1579  }
1580 
1581  // reverse
1582  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_REVERSE))
1583  {
1584  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1585  {
1587  }
1588  }
1589 
1590  // engines
1591  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_TOGGLE_ENGINES))
1592  {
1593  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1594  {
1596  }
1597  }
1598 
1599  // flaps
1600  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_FLAPS_NONE))
1601  {
1602  if (m_player_actor->ar_aerial_flap > 0)
1603  {
1605  }
1606  }
1607 
1608  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_FLAPS_FULL))
1609  {
1610  if (m_player_actor->ar_aerial_flap < 5)
1611  {
1613  }
1614  }
1615 
1616  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_FLAPS_LESS))
1617  {
1618  if (m_player_actor->ar_aerial_flap > 0)
1619  {
1621  }
1622  }
1623 
1625  {
1626  if (m_player_actor->ar_aerial_flap < 5)
1627  {
1629  }
1630  }
1631 
1632  // airbrakes
1634  {
1636  {
1638  }
1639  }
1640 
1642  {
1644  {
1646  }
1647  }
1648 
1650  {
1652  {
1654  }
1655  }
1656 
1658  {
1660  {
1662  }
1663  }
1664 
1665  // throttle
1667  if (tmp_throttle > 0)
1668  {
1669  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1670  {
1671  m_player_actor->ar_aeroengines[i]->setThrottle(tmp_throttle);
1672  }
1673  }
1674 
1675  if (App::GetInputEngine()->isEventDefined(EV_AIRPLANE_THROTTLE_AXIS))
1676  {
1678  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1679  {
1681  }
1682  }
1683 
1684  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_THROTTLE_DOWN, 0.1f))
1685  {
1686  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1687  {
1689  }
1690  }
1691 
1692  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_THROTTLE_UP, 0.1f))
1693  {
1694  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1695  {
1697  }
1698  }
1699 
1700  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_THROTTLE_NO, 0.1f))
1701  {
1702  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1703  {
1705  }
1706  }
1707 
1708  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_THROTTLE_FULL, 0.1f))
1709  {
1710  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1711  {
1713  }
1714  }
1715 
1716  // autopilot
1718  {
1719  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1720  {
1722  }
1723  }
1724 }
1725 
1727 {
1728  // throttle
1729  if (App::GetInputEngine()->isEventDefined(EV_BOAT_THROTTLE_AXIS))
1730  {
1732  // use negative values also!
1733  f = f * 2 - 1;
1734  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1736  }
1737 
1738  if (App::GetInputEngine()->getEventBoolValueBounce(EV_BOAT_THROTTLE_DOWN, 0.1f))
1739  {
1740  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1742  }
1743 
1744  if (App::GetInputEngine()->getEventBoolValueBounce(EV_BOAT_THROTTLE_UP, 0.1f))
1745  {
1746  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1748  }
1749 
1750  // steer
1751  float tmp_steer_left = App::GetInputEngine()->getEventValue(EV_BOAT_STEER_LEFT);
1752  float tmp_steer_right = App::GetInputEngine()->getEventValue(EV_BOAT_STEER_RIGHT);
1754  float sum_steer = (tmp_steer_left - tmp_steer_right) * dt;
1755  // do not center the rudder!
1756  if (fabs(sum_steer) > 0 && stime <= 0)
1757  {
1758  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1760  }
1761 
1763  {
1766  sum_steer = (tmp_steer_left - tmp_steer_right);
1767  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1768  m_player_actor->ar_screwprops[i]->setRudder(sum_steer);
1769  }
1770 
1771  // rudder
1773  {
1774  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1776  }
1777 
1778  // reverse
1780  {
1781  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1783  }
1784 }
1785 
1787 {
1789  return;
1790 #ifdef USE_ANGELSCRIPT
1792  return;
1793 #endif // USE_ANGELSCRIPT
1794 
1795  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_LEFT_MIRROR_LEFT))
1797 
1798  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_LEFT_MIRROR_RIGHT))
1800 
1801  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_RIGHT_MIRROR_LEFT))
1803 
1804  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_RIGHT_MIRROR_RIGHT))
1806 
1807  // steering
1812 
1813  float sum = -std::max(tmp_left_digital, tmp_left_analog) + std::max(tmp_right_digital, tmp_right_analog);
1814 
1815  m_player_actor->ar_hydro_dir_command = Ogre::Math::Clamp(sum, -1.0f, 1.0f);
1816 
1817  m_player_actor->ar_hydro_speed_coupling = (tmp_left_digital >= tmp_left_analog) && (tmp_right_digital >= tmp_right_analog);
1818 
1820  {
1822  }
1823 
1824  if (m_player_actor->ar_brake > 1.0f / 6.0f)
1825  {
1827  }
1828  else
1829  {
1831  }
1832 
1833  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_INTER_AXLE_DIFF))
1834  {
1837  }
1838 
1839  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_INTER_WHEEL_DIFF))
1840  {
1843  }
1844 
1845  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_TCASE_4WD_MODE))
1846  {
1849  }
1850 
1851  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_TCASE_GEAR_RATIO))
1852  {
1855  }
1856 
1858  {
1859  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_HORN))
1860  {
1861  SOUND_TOGGLE(m_player_actor, SS_TRIG_HORN); // Police siren
1862  }
1863  }
1864  else
1865  {
1866  if (App::GetInputEngine()->getEventBoolValue(EV_TRUCK_HORN)
1867  || App::GetGuiManager()->VehicleInfoTPanel.IsHornButtonActive())
1868  {
1870  }
1871  else
1872  {
1874  }
1875  }
1876 
1877  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_PARKING_BRAKE) &&
1878  !App::GetInputEngine()->getEventBoolValue(EV_TRUCK_TRAILER_PARKING_BRAKE))
1879  {
1881  }
1882 
1883  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_ANTILOCK_BRAKE))
1884  {
1886  }
1887 
1888  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TRACTION_CONTROL))
1889  {
1891  }
1892 
1893  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_CRUISE_CONTROL))
1894  {
1896  }
1897 
1899  {
1901  }
1902 
1904  for (ActorPtr linked_actor : m_player_actor->ar_linked_actors)
1905  {
1906  linked_actor->UpdatePropAnimInputEvents();
1907  }
1908 }
1909 
RoR::MSG_EDI_MODIFY_PROJECT_REQUESTED
@ MSG_EDI_MODIFY_PROJECT_REQUESTED
Payload = RoR::UpdateProjectRequest* (owner)
Definition: Application.h:151
RoR::Actor::setHighBeamsVisible
void setHighBeamsVisible(bool val)
Definition: Actor.h:190
ROR_ASSERT
#define ROR_ASSERT(_EXPR)
Definition: Application.h:40
GameContext.h
Game state manager and message-queue provider.
RoR::GUIManager::VehicleInfoTPanel
GUI::VehicleInfoTPanel VehicleInfoTPanel
Definition: GUIManager.h:107
RoR::CameraManager::UpdateInputEvents
void UpdateInputEvents(float dt)
Definition: CameraManager.cpp:242
RoR::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::GfxActor::SetDebugView
void SetDebugView(DebugViewType dv)
Definition: GfxActor.cpp:1528
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:1263
RoR::App::gfx_polygon_mode
CVar * gfx_polygon_mode
Definition: Application.cpp:216
RoR::App::GetNetwork
Network * GetNetwork()
Definition: Application.cpp:284
RoR::Character::setPosition
void setPosition(Ogre::Vector3 position)
Definition: Character.cpp:85
RoR::ModifyProjectRequest::mpr_subject
std::string mpr_subject
Definition: CacheSystem.h:271
RoR::Actor::getMinCameraRadius
float getMinCameraRadius()
Definition: Actor.h:254
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:89
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:397
RoR::ActorSpawnRequest::asr_net_color
int asr_net_color
Definition: SimData.h:860
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:93
RoR::GUI::TopMenubar::ai_fname
Ogre::String ai_fname
Definition: GUI_TopMenubar.h:78
ai_events::position
Ogre::Vector3 position
Definition: GUI_TopMenubar.h:39
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:120
RoR::GUI::GameSettings::SetVisible
void SetVisible(bool v)
Definition: GUI_GameSettings.cpp:493
RoR::Terrn2Def
Definition: Terrn2FileFormat.h:48
RoR::GfxScene::GetEnvMap
GfxEnvmap & GetEnvMap()
Definition: GfxScene.h:62
RoR::MACHINE
@ MACHINE
its a machine
Definition: SimData.h:96
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:358
RoR::Actor::ar_physics_paused
bool ar_physics_paused
Sim state.
Definition: Actor.h:484
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:148
RoR::InputSourceType::IST_ANALOG
@ IST_ANALOG
RoR::TRUCK
@ TRUCK
its a truck (or other land vehicle)
Definition: SimData.h:93
RoR::Actor::ar_filename
std::string ar_filename
Attribute; filled at spawn.
Definition: Actor.h:425
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:496
RoR::GUIManager::FrictionSettings
GUI::FrictionSettings FrictionSettings
Definition: GUIManager.h:114
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:1358
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:188
RoR::LT_AddonPart
@ LT_AddonPart
Definition: Application.h:304
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:275
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:857
RoR::CacheEntryPtr
RefCountingObjectPtr< CacheEntry > CacheEntryPtr
Definition: ForwardDeclarations.h:197
RoR::node_t::AbsPosition
Ogre::Vector3 AbsPosition
absolute position in the world (shaky)
Definition: SimData.h:294
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:269
RoR::Actor::ar_parking_brake
bool ar_parking_brake
Definition: Actor.h:414
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:92
RoR::ActorLinkingRequest
Estabilishing a physics linkage between 2 actors modifies a global linkage table and triggers immedia...
Definition: SimData.h:917
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
BEWARE: Includes indirect links, see DetermineLinkedActors(); Other actors linked using 'hooks/ties/r...
Definition: Actor.h:447
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:1520
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:376
RoR::CacheSystem::FindEntryByFilename
CacheEntryPtr FindEntryByFilename(RoR::LoaderType type, bool partial, const std::string &filename)
Returns NULL if none found.
Definition: CacheSystem.cpp:184
z
float z
Definition: (ValueTypes) quaternion.h:7
RoR::Actor::ar_num_nodes
int ar_num_nodes
Definition: Actor.h:283
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:302
RoR::GfxScene::RemoveGfxActor
void RemoveGfxActor(RoR::GfxActor *gfx_actor)
Definition: GfxScene.cpp:316
GUI_TopMenubar.h
RoR::GameContext::m_last_section_config
Ogre::String m_last_section_config
Definition: GameContext.h:200
RoR::App::GetAppContext
AppContext * GetAppContext()
Definition: Application.cpp:266
RoR::GUI::TopMenubar::ai_skin2
std::string ai_skin2
Definition: GUI_TopMenubar.h:92
RoR::NODENUM_INVALID
static const NodeNum_t NODENUM_INVALID
Definition: ForwardDeclarations.h:53
RoR::Actor::getFogLightsVisible
bool getFogLightsVisible() const
Definition: Actor.h:191
RoR::GfxActor::CycleDebugViews
void CycleDebugViews()
Definition: GfxActor.cpp:1546
RoR::Actor::toggleWheelDiffMode
void toggleWheelDiffMode()
Definition: Actor.cpp:1350
format
Truck file format(technical spec)
RoR::MSG_SIM_UNPAUSE_REQUESTED
@ MSG_SIM_UNPAUSE_REQUESTED
Definition: Application.h:115
RoR::EV_COMMON_AUTOLOCK
@ EV_COMMON_AUTOLOCK
unlock autolock hook node
Definition: InputEngine.h:226
RoR::GameContext::~GameContext
~GameContext()
Definition: GameContext.cpp:57
RoR::SS_TRIG_BRAKE
@ SS_TRIG_BRAKE
Definition: SoundScriptManager.h:60
RoR::Terrain::getSkyManager
SkyManager * getSkyManager()
Definition: Terrain.cpp:513
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:1256
RoR::ActorLinkingRequest::alr_type
ActorLinkingRequestType alr_type
Definition: SimData.h:920
RoR::GameContext::GetPlayerCharacter
Character * GetPlayerCharacter()
Definition: GameContext.cpp:873
RoR::CameraManager::NotifyVehicleChanged
void NotifyVehicleChanged(ActorPtr new_vehicle)
Definition: CameraManager.cpp:633
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:399
RoR::ActorManager::FindActorInsideBox
ActorPtr FindActorInsideBox(Collisions *collisions, const Ogre::String &inst, const Ogre::String &box)
Definition: ActorManager.cpp:807
RoR::Actor::ar_engine
EngineSim * ar_engine
Definition: Actor.h:379
RoR::GameContext::OnLoaderGuiApply
void OnLoaderGuiApply(RoR::LoaderType type, CacheEntryPtr entry, std::string sectionconfig)
GUI callback.
Definition: GameContext.cpp:684
RoR::App::GetOverlayWrapper
OverlayWrapper * GetOverlayWrapper()
Definition: Application.cpp:268
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:93
RoR::CacheQuery
Definition: CacheSystem.h:182
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::ActorLinkingRequestType::HOOK_TOGGLE
@ HOOK_TOGGLE
RoR::LogFormat
void LogFormat(const char *format,...)
Improved logging utility. Uses fixed 2Kb buffer.
Definition: Application.cpp:424
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:1133
RoR::Actor::toggleCustomParticles
void toggleCustomParticles()
Definition: Actor.cpp:3174
RoR::Actor::ar_toggle_ropes
bool ar_toggle_ropes
Sim state.
Definition: Actor.h:482
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:1257
RoR::GUIManager::GameControls
GUI::GameControls GameControls
Definition: GUIManager.h:116
RoR::ActorLinkingRequestType::HOOK_UNLOCK
@ HOOK_UNLOCK
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:881
RoR::GameContext::UpdateActors
void UpdateActors()
Definition: GameContext.cpp:580
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:415
RoR::EV_TRUCK_TRACTION_CONTROL
@ EV_TRUCK_TRACTION_CONTROL
toggle antilockbrake system
Definition: InputEngine.h:369
RoR::GameContext::RespawnLastActor
void RespawnLastActor()
Definition: GameContext.cpp:591
RoR::LT_Load
@ LT_Load
Definition: Application.h:300
RoR::EV_BOAT_THROTTLE_DOWN
@ EV_BOAT_THROTTLE_DOWN
decrease throttle
Definition: InputEngine.h:108
RoR::LT_Airplane
@ LT_Airplane
Definition: Application.h:297
RoR::ActorManager::FetchPreviousVehicleOnList
const ActorPtr & FetchPreviousVehicleOnList(ActorPtr player, ActorPtr prev_player)
Definition: ActorManager.cpp:991
RoR::ActorSpawnRequest::asr_working_tuneup
TuneupDefPtr asr_working_tuneup
Only filled when editing tuneup via Tuning menu.
Definition: SimData.h:856
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:182
RoR::Actor::GetGfxActor
GfxActor * GetGfxActor()
Definition: Actor.h:269
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:68
RoR::GUIManager::GameSettings
GUI::GameSettings GameSettings
Definition: GUIManager.h:106
RoR::Actor::ar_aerial_flap
int ar_aerial_flap
Sim state; state of aircraft flaps (values: 0-5)
Definition: Actor.h:421
RoR::LT_Car
@ LT_Car
Definition: Application.h:295
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:142
RoR::CameraManager::GetCameraNode
Ogre::SceneNode * GetCameraNode()
Definition: CameraManager.h:63
Utils.h
RoR::ActorSpawnRequest::asr_filename
std::string asr_filename
Definition: SimData.h:849
RoR::NOT_DRIVEABLE
@ NOT_DRIVEABLE
not drivable at all
Definition: SimData.h:92
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:1521
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:1366
RoR::GameContextSB::simbuf_player_actor
ActorPtr simbuf_player_actor
Definition: SimBuffers.h:201
RoR::Actor::ar_dashboard
DashBoardManager * ar_dashboard
Definition: Actor.h:433
RoR::Actor::tractioncontrolToggle
void tractioncontrolToggle()
Definition: Actor.cpp:3786
RoR::CacheEntry::description
Ogre::String description
Definition: CacheSystem.h:105
RoR::LT_Extension
@ LT_Extension
Definition: Application.h:301
RoR::CacheQueryResult::cqr_entry
CacheEntryPtr cqr_entry
Definition: CacheSystem.h:168
RoR::InputEngine::getEventBoolValueBounce
bool getEventBoolValueBounce(int eventID, float time=0.2f)
Definition: InputEngine.cpp:762
RoR::collision_box_t
Definition: SimData.h:714
RefCountingObjectPtr< CacheEntry >
RoR::MSG_APP_DISPLAY_WINDOWED_REQUESTED
@ MSG_APP_DISPLAY_WINDOWED_REQUESTED
Definition: Application.h:88
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:958
RoR::Actor::beaconsToggle
void beaconsToggle()
Definition: Actor.cpp:3795
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:480
RoR::Actor::ar_left_mirror_angle
float ar_left_mirror_angle
Sim state; rear view mirror angle.
Definition: Actor.h:416
RoR::AeroEngine::toggleReverse
virtual void toggleReverse()=0
RoR::GfxActor::SetVideoCamState
void SetVideoCamState(VideoCamState state)
Definition: GfxActor.cpp:394
Actor.h
RoR::EV_AIRPLANE_REVERSE
@ EV_AIRPLANE_REVERSE
reverse the turboprops
Definition: InputEngine.h:89
RoR::GUI::TopMenubar::ai_menu
bool ai_menu
Definition: GUI_TopMenubar.h:85
RoR::Actor::ar_right_mirror_angle
float ar_right_mirror_angle
Sim state; rear view mirror angle.
Definition: Actor.h:417
RoR::GUI::FrictionSettings::AnalyzeTerrain
void AnalyzeTerrain()
Definition: GUI_FrictionSettings.cpp:139
RoR::Console::CONSOLE_SYSTEM_NOTICE
@ CONSOLE_SYSTEM_NOTICE
Definition: Console.h:51
RoR::GUIManager::RepositorySelector
GUI::RepositorySelector RepositorySelector
Definition: GUIManager.h:117
RoR::ActorSpawnRequest
Definition: SimData.h:832
EngineSim.h
RoR::SkyXManager::GetSkyX
SkyX::SkyX * GetSkyX()
Definition: SkyXManager.h:52
RoR::Actor::SoftReset
void SoftReset()
Definition: Actor.cpp:1576
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:87
RoR::AppContext::GetForceFeedback
RoR::ForceFeedback & GetForceFeedback()
Definition: AppContext.h:68
RoR::GameContext::SpawnActor
ActorPtr SpawnActor(ActorSpawnRequest &rq)
Definition: GameContext.cpp:190
RoR::Terrain::GetHeightAt
float GetHeightAt(float x, float z)
Definition: Terrain.cpp:503
RoR::LT_Boat
@ LT_Boat
Definition: Application.h:296
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:886
RoR::Actor::getReplay
Replay * getReplay()
Definition: Actor.cpp:4561
RoR::GameContext::UpdateGlobalInputEvents
void UpdateGlobalInputEvents()
Definition: GameContext.cpp:919
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:294
RoR::GfxActor::GetVideoCamState
VideoCamState GetVideoCamState() const
Definition: GfxActor.h:137
RoR::ActorSpawnRequest::asr_config
Ogre::String asr_config
Definition: SimData.h:850
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:329
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:331
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:738
RoR::GameContext::ChainMessage
void ChainMessage(Message m)
Add to last pushed message's chain.
Definition: GameContext.cpp:72
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:90
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:330
RoR::Actor::getMinHeight
float getMinHeight(bool skip_virtual_nodes=true)
Definition: Actor.cpp:1511
RoR::GUIManager::MultiplayerSelector
GUI::MultiplayerSelector MultiplayerSelector
Definition: GUIManager.h:110
RoR::Actor::ar_airbrake_intensity
int ar_airbrake_intensity
Physics state; values 0-5.
Definition: Actor.h:427
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:111
RoR::ActorModifyRequest
Definition: SimData.h:870
RoR::GameContext::PopMessage
Message PopMessage()
Definition: GameContext.cpp:95
RoR::MSG_SIM_SEAT_PLAYER_REQUESTED
@ MSG_SIM_SEAT_PLAYER_REQUESTED
Payload = RoR::ActorPtr (owner) | nullptr.
Definition: Application.h:122
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:1157
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:855
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:467
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:1075
RoR::DashBoardManager::setVisible3d
void setVisible3d(bool visibility)
Definition: DashBoardManager.cpp:226
RoR::GameContext::GameContext
GameContext()
Definition: GameContext.cpp:52
RoR::ActorSpawnRequest::asr_cache_entry
CacheEntryPtr asr_cache_entry
Optional, overrides 'asr_filename' and 'asr_cache_entry_num'.
Definition: SimData.h:848
RoR::CacheQueryResult
Definition: CacheSystem.h:162
ScriptEngine.h
RoR::Actor::getTyrePressure
TyrePressure & getTyrePressure()
Definition: Actor.h:220
RoR::GameContext::DeleteActor
void DeleteActor(ActorPtr actor)
Definition: GameContext.cpp:418
RoR::GameContext::PushMessage
void PushMessage(Message m)
Doesn't guarantee order! Use ChainMessage() if order matters.
Definition: GameContext.cpp:65
RoR::App::app_state
CVar * app_state
Definition: Application.cpp:79
RoR::ActorManager::GetLocalActors
std::vector< ActorPtr > GetLocalActors()
Definition: ActorManager.cpp:1343
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:230
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:192
RoR::Actor::SyncReset
void SyncReset(bool reset_position)
this one should be called only synchronously (without physics running in background)
Definition: Actor.cpp:1600
RoR::Actor::antilockbrakeToggle
void antilockbrakeToggle()
Definition: Actor.cpp:3777
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:476
RoR::Actor::getHeadlightsVisible
bool getHeadlightsVisible() const
Definition: Actor.h:187
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:305
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:423
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
RoR::Actor::hookToggle
void hookToggle(int group=-1, ActorLinkingRequestType mode=ActorLinkingRequestType::HOOK_TOGGLE, NodeNum_t mousenode=NODENUM_INVALID, ActorInstanceID_t forceunlock_filter=ACTORINSTANCEID_INVALID)
Definition: Actor.cpp:3624
GfxScene.h
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:815
RoR::EV_TRUCK_TOGGLE_VIDEOCAMERA
@ EV_TRUCK_TOGGLE_VIDEOCAMERA
toggle videocamera update
Definition: InputEngine.h:368
RoR::BLINK_RIGHT
@ BLINK_RIGHT
Definition: SimData.h:125
RoR::MSG_GUI_OPEN_SELECTOR_REQUESTED
@ MSG_GUI_OPEN_SELECTOR_REQUESTED
Payload = LoaderType* (owner), Description = GUID | empty.
Definition: Application.h:135
RoR::BLINK_WARN
@ BLINK_WARN
Definition: SimData.h:126
SOUND_START
#define SOUND_START(_ACTOR_, _TRIG_)
Definition: SoundScriptManager.h:35
RoR::LT_Vehicle
@ LT_Vehicle
Definition: Application.h:293
RoR::GameContext::prev_pos
Ogre::Vector3 prev_pos
Definition: GameContext.h:212
RoR::LT_Trailer
@ LT_Trailer
Definition: Application.h:298
RoR::LoaderType
LoaderType
< Search mode for ModCache::Query() & Operation mode for GUI::MainSelector
Definition: Application.h:289
RoR::MSG_GUI_REFRESH_TUNING_MENU_REQUESTED
@ MSG_GUI_REFRESH_TUNING_MENU_REQUESTED
Definition: Application.h:142
RoR::InputEngine::isEventDefined
bool isEventDefined(int eventID)
Definition: InputEngine.cpp:908
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:267
RoR::InputEngine::getEventBoolValue
bool getEventBoolValue(int eventID)
Definition: InputEngine.cpp:757
RoR::GUI::TopMenubar::ai_skin
std::string ai_skin
Definition: GUI_TopMenubar.h:81
RoR::SimState::PAUSED
@ PAUSED
RoR::Actor::ar_import_commands
bool ar_import_commands
Sim state.
Definition: Actor.h:481
RoR::Screwprop::setThrottle
void setThrottle(float val)
Definition: ScrewProp.cpp:76
RoR::App::GetConsole
Console * GetConsole()
Definition: Application.cpp:270
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:280
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:86
RoR::Character::getPosition
Ogre::Vector3 getPosition()
Definition: Character.cpp:92
RoR::AIRPLANE
@ AIRPLANE
its an airplane
Definition: SimData.h:94
RoR::Actor::ar_autopilot
Autopilot * ar_autopilot
Definition: Actor.h:382
RoR::Actor::getSideLightsVisible
bool getSideLightsVisible() const
Definition: Actor.h:185
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:175
RoR::AppState::SIMULATION
@ SIMULATION
RoR::Actor::ar_sleep_counter
float ar_sleep_counter
Sim state; idle time counter.
Definition: Actor.h:412
RoR::Message::chain
std::vector< Message > chain
Posted after the message is processed.
Definition: GameContext.h:60
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:1551
RoR::Actor::ar_num_screwprops
int ar_num_screwprops
Definition: Actor.h:332
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:862
RoR::Terrain::dispose
void dispose()
Definition: Terrain.cpp:78
RoR::BLINK_LEFT
@ BLINK_LEFT
Definition: SimData.h:124
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:865
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:854
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:889
RoR::App::gfx_sky_mode
CVar * gfx_sky_mode
Definition: Application.cpp:219
RoR::Actor::toggleSlideNodeLock
void toggleSlideNodeLock()
Definition: ActorSlideNode.cpp:34
RoR::GUIManager::TopMenubar
GUI::TopMenubar TopMenubar
Definition: GUIManager.h:120
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:91
RoR::MSG_EDI_ENTER_TERRN_EDITOR_REQUESTED
@ MSG_EDI_ENTER_TERRN_EDITOR_REQUESTED
Definition: Application.h:145
RoR::SS_TRIG_HORN
@ SS_TRIG_HORN
Definition: SoundScriptManager.h:59
RoR::ModifyProjectRequest
Definition: CacheSystem.h:265
RoR::Actor::GetCameraRoll
Ogre::Vector3 GetCameraRoll()
Definition: Actor.h:267
RoR::CharacterFactory::GetLocalCharacter
Character * GetLocalCharacter()
Definition: CharacterFactory.h:44
RoR::LT_Terrain
@ LT_Terrain
Definition: Application.h:292
RoR::Actor::toggleTransferCaseMode
void toggleTransferCaseMode()
Definition: Actor.cpp:1434
RoR::Actor::parkingbrakeToggle
void parkingbrakeToggle()
Definition: Actor.cpp:3762
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:885
RoR::Actor::ar_is_police
bool ar_is_police
Gfx/sfx attr.
Definition: Actor.h:478
RoR::Terrain
Definition: Terrain.h:40
RoR::App::GetCacheSystem
CacheSystem * GetCacheSystem()
Definition: Application.cpp:272
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:221
RoR::Actor::ar_elevator
float ar_elevator
Sim state; aerial controller.
Definition: Actor.h:418
RoR::GameContext::UpdateAirplaneInputEvents
void UpdateAirplaneInputEvents(float dt)
Definition: GameContext.cpp:1538
RoRnet::UserInfo::colournum
int32_t colournum
colour set by server
Definition: RoRnet.h:173
RoR::GUIManager::FlexbodyDebug
GUI::FlexbodyDebug FlexbodyDebug
Definition: GUIManager.h:124
RoR::Replay::UpdateInputEvents
void UpdateInputEvents()
Definition: Replay.cpp:251
RoR::Actor::ar_nodes
node_t * ar_nodes
Definition: Actor.h:279
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:483
RoR::EV_SKY_DECREASE_TIME
@ EV_SKY_DECREASE_TIME
decrease day-time
Definition: InputEngine.h:110
RoR::Actor::getRotation
float getRotation()
Definition: Actor.cpp:408
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:184
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:145
RoR::Actor::toggleBlinkType
void toggleBlinkType(BlinkType blink)
Definition: Actor.cpp:3080
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:570
RoR::CacheSystem::LoadResource
void LoadResource(CacheEntryPtr &t)
Loads the associated resource bundle if not already done.
Definition: CacheSystem.cpp:1434
RoR::GameContext::OnLoaderGuiCancel
void OnLoaderGuiCancel()
GUI callback.
Definition: GameContext.cpp:668
ai_events
Definition: GUI_TopMenubar.h:37
RoR::MSG_SIM_ACTOR_LINKING_REQUESTED
@ MSG_SIM_ACTOR_LINKING_REQUESTED
Payload = RoR::ActorLinkingRequest* (owner)
Definition: Application.h:128
RoR::Message
Unified game event system - all requests and state changes are reported using a message.
Definition: GameContext.h:51
RoR::Actor::ar_hydro_dir_command
float ar_hydro_dir_command
Definition: Actor.h:403
RoR::Actor::ar_driveable
ActorType ar_driveable
Sim attr; marks vehicle type and features.
Definition: Actor.h:378
RoR::EV_AIRPLANE_THROTTLE_FULL
@ EV_AIRPLANE_THROTTLE_FULL
full thrust
Definition: InputEngine.h:97
RoR::GameContext::UnloadTerrain
void UnloadTerrain()
Definition: GameContext.cpp:176
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::InputSourceType::IST_DIGITAL
@ IST_DIGITAL
RoR::MSG_GUI_OPEN_MENU_REQUESTED
@ MSG_GUI_OPEN_MENU_REQUESTED
Definition: Application.h:133
_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:4682
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:4714
RoR::Terrain::getSpawnPos
Ogre::Vector3 getSpawnPos()
Definition: Terrain.h:64
RoR::Actor::getHighBeamsVisible
bool getHighBeamsVisible() const
Definition: Actor.h:189
RoR::ActorModifyRequest::Type::SOFT_RESET
@ SOFT_RESET
RoR::Terrain::getSkyXManager
SkyXManager * getSkyXManager()
Definition: Terrain.h:80
RoR::Actor::tieToggle
void tieToggle(int group=-1, ActorLinkingRequestType mode=ActorLinkingRequestType::TIE_TOGGLE, ActorInstanceID_t forceunlock_filter=ACTORINSTANCEID_INVALID)
Definition: Actor.cpp:3430
RoR::Screwprop::getThrottle
float getThrottle()
Definition: ScrewProp.cpp:98
RoR::ActorSpawnRequest::asr_net_username
Ogre::UTFString asr_net_username
Definition: SimData.h:859
RoR::GUIManager::ShowMessageBox
void ShowMessageBox(const char *title, const char *text, bool allow_close=true, const char *btn1_text="OK", const char *btn2_text=nullptr)
Definition: GUIManager.cpp:429
RoR::GfxActor::SetRenderdashActive
void SetRenderdashActive(bool active)
Definition: GfxActor.cpp:2321
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:858
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:181
RoR::GUIManager::GameAbout
GUI::GameAbout GameAbout
Definition: GUIManager.h:105
RoR::Actor::getRotationCenter
Ogre::Vector3 getRotationCenter()
Definition: Actor.cpp:1493
RoR::Actor::toggleTransferCaseGearRatio
void toggleTransferCaseGearRatio()
Definition: Actor.cpp:1465
RoR::MSG_SIM_SPAWN_ACTOR_REQUESTED
@ MSG_SIM_SPAWN_ACTOR_REQUESTED
Payload = RoR::ActorSpawnRequest* (owner)
Definition: Application.h:119
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:1145
RoR::EV_TRUCK_TOGGLE_IMPORTCOMMANDS
@ EV_TRUCK_TOGGLE_IMPORTCOMMANDS
toggle importcommands
Definition: InputEngine.h:362
RoR::App::GetInputEngine
InputEngine * GetInputEngine()
Definition: Application.cpp:271
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:194
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:919
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:121
RoR::GameContext::UpdateSimInputEvents
void UpdateSimInputEvents(float dt)
Definition: GameContext.cpp:1034
RoR::LT_AllBeam
@ LT_AllBeam
Definition: Application.h:303
RoR::GameContext::UpdateBoatInputEvents
void UpdateBoatInputEvents(float dt)
Definition: GameContext.cpp:1726
RoR::Actor::setCustomLightVisible
void setCustomLightVisible(int number, bool visible)
Definition: Actor.cpp:4495
RoR::ActorSpawnRequest::net_source_id
int net_source_id
Definition: SimData.h:861
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:429
RoR::Collisions::isInside
bool isInside(Ogre::Vector3 pos, const Ogre::String &inst, const Ogre::String &box, float border=0)
Definition: Collisions.cpp:1169
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:640
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 (case-insensitive); leave empty to disable.
Definition: CacheSystem.h:186
RoR::GUIManager::MainSelector
GUI::MainSelector MainSelector
Definition: GUIManager.h:111
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:1524
RoR::InputEngine::isEventAnalog
bool isEventAnalog(int eventID)
Definition: InputEngine.cpp:931
RoR::Actor::countFlaresByType
int countFlaresByType(FlareType type)
Definition: Actor.cpp:4532
RoR::ActorSpawnRequest::Origin::USER
@ USER
Direct selection by user via GUI.
RoR::ActorLinkingRequestType::SLIDENODE_TOGGLE
@ SLIDENODE_TOGGLE
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:604
ai_events::speed
int speed
Definition: GUI_TopMenubar.h:40
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:79
RoR::MSG_GUI_CLOSE_MENU_REQUESTED
@ MSG_GUI_CLOSE_MENU_REQUESTED
Definition: Application.h:134
RoR::ActorSpawnRequest::asr_position
Ogre::Vector3 asr_position
Definition: SimData.h:851
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:80
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:268
RoR::Actor::ar_net_source_id
int ar_net_source_id
Unique ID of remote player who spawned this actor.
Definition: Actor.h:428
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:88
RoR::MSG_SIM_PAUSE_REQUESTED
@ MSG_SIM_PAUSE_REQUESTED
Definition: Application.h:114
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:1394
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:1030
RoR::Actor::ar_aileron
float ar_aileron
Sim state; aerial controller.
Definition: Actor.h:420
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:446
RoR::ActorManager::FetchNextVehicleOnList
const ActorPtr & FetchNextVehicleOnList(ActorPtr player, ActorPtr prev_player)
Definition: ActorManager.cpp:966
RoR::Actor::setAirbrakeIntensity
void setAirbrakeIntensity(float intensity)
Definition: Actor.cpp:2916
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:97
RoR::GameContext::UpdateTruckInputEvents
void UpdateTruckInputEvents(float dt)
Definition: GameContext.cpp:1786
RoR::App::gfx_sky_time_cycle
CVar * gfx_sky_time_cycle
Definition: Application.cpp:220
RoR::Actor::prepareInside
void prepareInside(bool inside)
Prepares vehicle for in-cabin camera use.
Definition: Actor.cpp:2950
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:419
RoR::Actor::cruisecontrolToggle
void cruisecontrolToggle()
Defined in 'gameplay/CruiseControl.cpp'.
Definition: CruiseControl.cpp:31
RoR::ActorModifyRequest::amr_type
Type amr_type
Definition: SimData.h:887
RoR::ActorSpawnRequest::asr_spawnbox
collision_box_t * asr_spawnbox
Definition: SimData.h:853
RoR::ActorSpawnRequest::asr_rotation
Ogre::Quaternion asr_rotation
Definition: SimData.h:852
RoR::Actor::getWorkingTuneupDef
TuneupDefPtr & getWorkingTuneupDef()
Definition: Actor.cpp:4719
RoR::AeroEngine::getThrottle
virtual float getThrottle()=0
RoR::Actor::setSideLightsVisible
void setSideLightsVisible(bool val)
Definition: Actor.h:186
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:1146
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:2089
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:82
RoR::GameContext::FetchNextVehicleOnList
const ActorPtr & FetchNextVehicleOnList()
Definition: GameContext.cpp:575
RoR::ActorSpawnRequest::asr_enter
bool asr_enter
Definition: SimData.h:864
RoR::Log
void Log(const char *msg)
The ultimate, application-wide logging function. Adds a line (any length) in 'RoR....
Definition: Application.cpp:419
RoR::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:276
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:585
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:191
RoR::LT_Train
@ LT_Train
Definition: Application.h:299
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:107
RoR::MSG_APP_SHUTDOWN_REQUESTED
@ MSG_APP_SHUTDOWN_REQUESTED
Definition: Application.h:85
RoR::COMMANDKEYID_INVALID
static const CommandkeyID_t COMMANDKEYID_INVALID
Definition: ForwardDeclarations.h:75
RoR::ActorManager::CreateNewActor
ActorPtr CreateNewActor(ActorSpawnRequest rq, RigDef::DocumentPtr def)
Definition: ActorManager.cpp:79
RoR::GUI::VehicleInfoTPanel::GetActiveCommandKey
CommandkeyID_t GetActiveCommandKey() const
Definition: GUI_VehicleInfoTPanel.h:42
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:380
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:775
RoR::CacheEntry::guid
Ogre::String guid
global unique id; Type "addonpart" leaves this empty and uses addonpart_guids; Always lowercase.
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:4473
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:1420
RoR::GameContext::CreatePlayerCharacter
void CreatePlayerCharacter()
Terrain must be loaded.
Definition: GameContext.cpp:820
RoR::GameContext::UpdateSkyInputEvents
void UpdateSkyInputEvents(float dt)
Definition: GameContext.cpp:1192
RoR::Actor::isBeingReset
bool isBeingReset() const
Definition: Actor.h:273
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:867
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:538
RoR::GameContext::HasMessages
bool HasMessages()
Definition: GameContext.cpp:89
RoR::ActorModifyRequest::Type::RELOAD
@ RELOAD
Full reload from filesystem, requested by user.