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 
230  if (def == nullptr)
231  {
232  return nullptr; // Error already reported
233  }
234 
235  if (rq.asr_skin_entry)
236  {
237  App::GetCacheSystem()->LoadResource(rq.asr_skin_entry); // Also loads associated .skin file.
238  if (!rq.asr_skin_entry->skin_def) // Make sure .skin was loaded OK.
239  {
240  rq.asr_skin_entry = nullptr; // Error already logged
241  }
242  }
243 
244  if (App::sim_tuning_enabled->getBool() && (App::mp_state->getEnum<MpState>() != MpState::CONNECTED))
245  {
246  if (rq.asr_tuneup_entry)
247  {
248  App::GetCacheSystem()->LoadResource(rq.asr_tuneup_entry); // Also loads associated .tuneup file.
249  if (!rq.asr_tuneup_entry->tuneup_def)
250  {
251  rq.asr_tuneup_entry = nullptr; // Error already logged
252  }
253  }
254  }
255  else
256  {
257  rq.asr_working_tuneup = nullptr; // Make sure no tuneup is used
258  }
259 
260 #ifdef USE_SOCKETW
262  {
263  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
264  {
267  rq.asr_net_color = info.colournum;
268  }
269  }
270 #endif //SOCKETW
271 
272  ActorPtr fresh_actor = m_actor_manager.CreateNewActor(rq, def);
273  bool fresh_actor_seat_player = false;
274 
275  // lock slide nodes after spawning the actor?
276  if (def->slide_nodes_connect_instantly)
277  {
278  fresh_actor->toggleSlideNodeLock(); // OK to invoke here - processing MSG_SIM_ACTOR_SPAWN_REQUESTED
279  }
280 
282  {
283  m_last_spawned_actor = fresh_actor;
284  if (fresh_actor->ar_driveable != NOT_DRIVEABLE)
285  {
286  fresh_actor_seat_player = true;
287  }
288  if (rq.asr_spawnbox == nullptr)
289  {
290  // Try to resolve collisions with other actors
291  fresh_actor->resolveCollisions(50.0f, m_player_actor == nullptr);
292  }
293  }
295  {
296  if (fresh_actor->ar_driveable != NOT_DRIVEABLE &&
297  fresh_actor->ar_num_nodes > 0 &&
299  {
300  fresh_actor_seat_player = true;
301  }
302  }
304  {
305  if (rq.asr_terrn_machine)
306  {
307  fresh_actor->ar_driveable = MACHINE;
308  }
309  }
311  {
312  fresh_actor->ar_driveable = AI;
313  fresh_actor->ar_state = ActorState::LOCAL_SIMULATED;
314 
315  if (fresh_actor->ar_engine)
316  {
318  fresh_actor->ar_engine->autoShiftSet(EngineSim::DRIVE);
319  }
320  }
322  {
323  fresh_actor->ar_net_source_id = rq.net_source_id;
324  fresh_actor->ar_net_stream_id = rq.net_stream_id;
325  }
327  {
328  if (rq.asr_saved_state)
329  {
331  req->amr_actor = fresh_actor->ar_instance_id;
335  }
336  }
337  else
338  {
339  if (fresh_actor->ar_driveable != NOT_DRIVEABLE &&
341  rq.asr_enter)
342  {
343  fresh_actor_seat_player = true;
344  }
345  }
346 
347  if (fresh_actor_seat_player)
348  {
349  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, new ActorPtr(fresh_actor)));
350  // 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.
352  }
353 
354  return fresh_actor;
355 }
356 
358 {
360 
361  if (!actor)
362  {
363  return;
364  }
365 
367  {
368  actor->SoftReset();
369  }
371  {
372  actor->SyncReset(/*reset_position:*/false);
373  }
375  {
376  actor->SyncReset(/*reset_position:*/true);
377  }
379  {
381  }
384  {
386  actor->ar_sleep_counter = 0.0f;
387  }
389  {
390  CacheEntryPtr entry = App::GetCacheSystem()->FindEntryByFilename(LT_AllBeam, /*partial=*/false, actor->ar_filename);
391  if (!entry)
392  {
393  Str<500> msg; msg <<"Cannot reload vehicle; file '" << actor->ar_filename << "' not found in ModCache.";
395  return;
396  }
397 
398  // Create spawn request while actor still exists
400  srq->asr_position = Ogre::Vector3(actor->getPosition().x, actor->getMinHeight(), actor->getPosition().z);
401  srq->asr_rotation = Ogre::Quaternion(Ogre::Degree(270) - Ogre::Radian(actor->getRotation()), Ogre::Vector3::UNIT_Y);
402  srq->asr_config = actor->getSectionConfig();
403  srq->asr_skin_entry = actor->getUsedSkinEntry();
404  srq->asr_working_tuneup = actor->getWorkingTuneupDef();
405  srq->asr_cache_entry= entry;
406  srq->asr_debugview = (int)actor->GetGfxActor()->GetDebugView();
408 
409  // This deletes all actors using the resource bundle, including the one we're reloading.
411 
412  // Load our actor again, but only after all actors are deleted.
414  }
415 }
416 
418 {
419  if (actor == m_player_actor)
420  {
421  Ogre::Vector3 center = m_player_actor->getRotationCenter();
422  this->ChangePlayerActor(nullptr); // Get out of the vehicle
423  this->GetPlayerCharacter()->setPosition(center);
424  // Update scene SimBuffer immediatelly to prevent having dangling pointer.
426  }
427 
428  if (actor == m_prev_player_actor)
429  {
430  m_prev_player_actor = nullptr;
431  }
432 
433  if (actor == m_last_spawned_actor)
434  {
435  m_last_spawned_actor = nullptr;
436  }
437 
438  // Find linked actors and un-tie if tied
439  for (auto actorx : m_actor_manager.GetLocalActors())
440  {
441  if (actorx->isTied() && std::find(actor->ar_linked_actors.begin(), actor->ar_linked_actors.end(), actorx) != actor->ar_linked_actors.end())
442  {
443  actorx->tieToggle(); // OK to invoke here - processing MSG_SIM_DELETE_ACTOR_REQUESTED
444  }
445 
446  if (actorx->isLocked() && std::find(actor->ar_linked_actors.begin(), actor->ar_linked_actors.end(), actorx) != actor->ar_linked_actors.end())
447  {
448  actorx->hookToggle(); // OK to invoke here - processing MSG_SIM_DELETE_ACTOR_REQUESTED
449  }
450  }
451 
453 
454 #ifdef USE_SOCKETW
455  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
456  {
458  }
459 #endif //SOCKETW
460 
462 
464 }
465 
467 {
468  ActorPtr prev_player_actor = m_player_actor;
469  m_player_actor = actor;
470 
471  // hide any old dashes
472  if (prev_player_actor && prev_player_actor->ar_dashboard)
473  {
474  prev_player_actor->ar_dashboard->setVisible3d(false);
475  }
476  // show new
478  {
480  }
481 
482  if (prev_player_actor)
483  {
484  App::GetOverlayWrapper()->showDashboardOverlays(false, prev_player_actor);
485 
486  prev_player_actor->GetGfxActor()->SetRenderdashActive(false);
487 
488  SOUND_STOP(prev_player_actor, SS_TRIG_AIR);
489  SOUND_STOP(prev_player_actor, SS_TRIG_PUMP);
490  }
491 
492  if (m_player_actor == nullptr)
493  {
494  // getting outside
495 
496  if (prev_player_actor)
497  {
499  {
501  }
502 
503  prev_player_actor->prepareInside(false);
504 
505  // get player out of the vehicle
506  float h = prev_player_actor->getMinCameraRadius();
507  float rotation = prev_player_actor->getRotation() - Ogre::Math::HALF_PI;
508  Ogre::Vector3 position = prev_player_actor->getPosition();
509  if (prev_player_actor->ar_cinecam_node[0] != NODENUM_INVALID)
510  {
511  // actor has a cinecam (find optimal exit position)
512  Ogre::Vector3 l = position - 2.0f * prev_player_actor->GetCameraRoll();
513  Ogre::Vector3 r = position + 2.0f * prev_player_actor->GetCameraRoll();
514  float l_h = m_terrain->GetCollisions()->getSurfaceHeightBelow(l.x, l.z, l.y + h);
515  float r_h = m_terrain->GetCollisions()->getSurfaceHeightBelow(r.x, r.z, r.y + h);
516  position = std::abs(r.y - r_h) * 1.2f < std::abs(l.y - l_h) ? r : l;
517  }
518  position.y = m_terrain->GetCollisions()->getSurfaceHeightBelow(position.x, position.z, position.y + h);
519 
520  Character* player_character = this->GetPlayerCharacter();
521  if (player_character)
522  {
523  player_character->SetActorCoupling(false, nullptr);
524  player_character->setRotation(Ogre::Radian(rotation));
525  player_character->setPosition(position);
526  }
527  }
528 
530 
531  TRIGGER_EVENT_ASYNC(SE_TRUCK_EXIT, prev_player_actor?prev_player_actor->ar_instance_id:-1);
532  }
533  else
534  {
535  // getting inside
537  !App::GetGuiManager()->IsGuiHidden(), m_player_actor);
538 
540  {
542  }
543 
545 
546  // force feedback
548 
549  // attach player to vehicle
550  Character* player_character = this->GetPlayerCharacter();
551  if (player_character)
552  {
553  player_character->SetActorCoupling(true, m_player_actor);
554  }
555 
557 
559  }
560 
561  if (prev_player_actor != nullptr || m_player_actor != nullptr)
562  {
564  }
565 
567 }
568 
570 {
572 }
573 
575 {
577 }
578 
580 {
582 }
583 
584 ActorPtr GameContext::FindActorByCollisionBox(std::string const & ev_src_instance_name, std::string const & box_name)
585 {
587  ev_src_instance_name, box_name);
588 }
589 
591 {
592  if (m_last_cache_selection != nullptr)
593  {
600  }
601 }
602 
603 void GameContext::SpawnPreselectedActor(std::string const& preset_vehicle, std::string const& preset_veh_config)
604 {
606  LT_AllBeam, /*partial=*/true, preset_vehicle);
607 
608  if (!entry)
609  return;
610 
612  rq->asr_cache_entry = entry;
614  rq->asr_rotation = Ogre::Quaternion(Ogre::Degree(180) - this->GetPlayerCharacter()->getRotation(), Ogre::Vector3::UNIT_Y);
616 
617  RoR::LogFormat("[RoR|Diag] Preselected Truck: %s (%s)", entry->dname.c_str(), entry->fname.c_str());
618 
619  // Section config lookup
620  if (!entry->sectionconfigs.empty())
621  {
622  if (std::find(entry->sectionconfigs.begin(), entry->sectionconfigs.end(),
623  preset_veh_config)
624  == entry->sectionconfigs.end())
625  {
626  // Preselected config doesn't exist -> use first available one
627  rq->asr_config = entry->sectionconfigs[0];
628  }
629  else
630  {
631  rq->asr_config = preset_veh_config;
632  }
633  RoR::LogFormat("[RoR|Diag] Preselected Truck Config: %s", rq->asr_config.c_str());
634  }
635 
637 }
638 
639 void GameContext::ShowLoaderGUI(int type, const Ogre::String& instance, const Ogre::String& box)
640 {
641  // first, test if the place if clear, BUT NOT IN MULTIPLAYER
642  if (!(App::mp_state->getEnum<MpState>() == MpState::CONNECTED))
643  {
644  collision_box_t* spawnbox = m_terrain->GetCollisions()->getBox(instance, box);
645  for (ActorPtr& actor : this->GetActorManager()->GetActors())
646  {
647  for (int i = 0; i < actor->ar_num_nodes; i++)
648  {
649  if (m_terrain->GetCollisions()->isInside(actor->ar_nodes[i].AbsPosition, spawnbox))
650  {
651  App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("Please clear the place first"), "error.png");
652  return;
653  }
654  }
655  }
656  }
657 
661 
663  m.payload = reinterpret_cast<void*>(new LoaderType(LoaderType(type)));
665 }
666 
668 {
670 
671  if (App::GetGuiManager()->TopMenubar.ai_select)
672  {
675  }
676  if (App::GetGuiManager()->TopMenubar.ai_select2)
677  {
680  }
681 }
682 
683 void GameContext::OnLoaderGuiApply(LoaderType type, CacheEntryPtr entry, std::string sectionconfig)
684 {
685  bool spawn_now = false;
686  switch (type)
687  {
688  case LT_AddonPart:
689  if (m_player_actor)
690  {
693  req->mpr_subject = entry->fname;
696  }
697  break;
698 
699  case LT_Skin:
700  if (entry != m_dummy_cache_selection)
701  {
703  if (App::GetGuiManager()->TopMenubar.ai_select)
704  {
706  }
707  if (App::GetGuiManager()->TopMenubar.ai_select2)
708  {
710  }
711  }
712  spawn_now = true;
713  break;
714 
715  case LT_Vehicle:
716  case LT_Truck:
717  case LT_Car:
718  case LT_Boat:
719  case LT_Airplane:
720  case LT_Trailer:
721  case LT_Train:
722  case LT_Load:
723  case LT_Extension:
724  case LT_AllBeam:
726  m_current_selection.asr_config = sectionconfig;
727  if (App::GetGuiManager()->TopMenubar.ai_select)
728  {
730  }
731  if (App::GetGuiManager()->TopMenubar.ai_select2)
732  {
734  }
736  // Look for extra skins
737  if (!entry->guid.empty())
738  {
739  CacheQuery skin_query;
740  skin_query.cqy_filter_guid = entry->guid;
741  skin_query.cqy_filter_type = LT_Skin;
742  size_t num_skins = App::GetCacheSystem()->Query(skin_query);
743  // Determine default skin
744  CacheEntryPtr default_skin_entry = nullptr;
745  if (entry->default_skin != "")
746  {
747  for (CacheQueryResult& res : skin_query.cqy_results)
748  {
749  if (res.cqr_entry->dname == entry->default_skin)
750  default_skin_entry = res.cqr_entry;
751  }
752  if (!default_skin_entry)
753  {
755  fmt::format(_L("Default skin '{}' for actor '{}' not found!"), entry->default_skin, entry->dname));
756  }
757  if (default_skin_entry && num_skins == 1)
758  {
759  m_current_selection.asr_skin_entry = default_skin_entry;
760  }
761  }
762  else
763  {
764  default_skin_entry = m_dummy_cache_selection;
765  default_skin_entry->dname = "Default skin";
766  default_skin_entry->description = "Original, unmodified skin";
767  }
768 
769  if (!m_current_selection.asr_skin_entry && num_skins > 0)
770  {
771  App::GetGuiManager()->MainSelector.Show(LT_Skin, entry->guid, default_skin_entry); // Intentionally not using MSG_
772  }
773  else
774  {
775  spawn_now = true;
776  }
777  }
778  else
779  {
780  spawn_now = true;
781  }
782  break;
783 
784  default:;
785  }
786 
787  if (spawn_now)
788  {
789  if (App::GetGuiManager()->TopMenubar.ai_select)
790  {
795  }
796  else if (App::GetGuiManager()->TopMenubar.ai_select2)
797  {
802  }
803  else
804  {
806  *rq = m_current_selection;
808  }
809 
811  }
812 }
813 
815 
816 // --------------------------------
817 // Characters
818 
820 {
822 
823  // Adjust character position
824  Ogre::Vector3 spawn_pos = m_terrain->getSpawnPos();
825  float spawn_rot = 0.0f;
826 
827  // Classic behavior, retained for compatibility.
828  // Required for maps like N-Labs or F1 Track.
830  {
831  spawn_rot = 180.0f;
832  }
833 
834  // Preset position - commandline has precedence
835  if (App::cli_preset_spawn_pos->getStr() != "")
836  {
837  spawn_pos = Ogre::StringConverter::parseVector3(App::cli_preset_spawn_pos->getStr(), spawn_pos);
839  }
840  else if (App::diag_preset_spawn_pos->getStr() != "")
841  {
842  spawn_pos = Ogre::StringConverter::parseVector3(App::diag_preset_spawn_pos->getStr(), spawn_pos);
844  }
845 
846  // Preset rotation - commandline has precedence
847  if (App::cli_preset_spawn_rot->getStr() != "")
848  {
849  spawn_rot = Ogre::StringConverter::parseReal(App::cli_preset_spawn_rot->getStr(), spawn_rot);
851  }
852  else if (App::diag_preset_spawn_rot->getStr() != "")
853  {
854  spawn_rot = Ogre::StringConverter::parseReal(App::diag_preset_spawn_rot->getStr(), spawn_rot);
856  }
857 
858  spawn_pos.y = m_terrain->GetCollisions()->getSurfaceHeightBelow(spawn_pos.x, spawn_pos.z, spawn_pos.y + 1.8f);
859 
860  this->GetPlayerCharacter()->setPosition(spawn_pos);
861  this->GetPlayerCharacter()->setRotation(Ogre::Degree(spawn_rot));
862 
863  App::GetCameraManager()->GetCameraNode()->setPosition(this->GetPlayerCharacter()->getPosition());
864 
865  // Small hack to improve the spawn experience
866  for (int i = 0; i < 100; i++)
867  {
869  }
870 }
871 
872 Character* GameContext::GetPlayerCharacter() // Convenience ~ counterpart of `GetPlayerActor()`
873 {
875 }
876 
877 // --------------------------------
878 // Gameplay feats
879 
880 void GameContext::TeleportPlayer(float x, float z)
881 {
883  if (!this->GetPlayerActor())
884  {
885  this->GetPlayerCharacter()->setPosition(Ogre::Vector3(x, y, z));
886  return;
887  }
888 
889  TRIGGER_EVENT_ASYNC(SE_TRUCK_TELEPORT, this->GetPlayerActor()->ar_instance_id);
890 
891  Ogre::Vector3 translation = Ogre::Vector3(x, y, z) - this->GetPlayerActor()->ar_nodes[0].AbsPosition;
892 
893  std::vector<ActorPtr> actorsToBeamUp;
894  actorsToBeamUp.assign(this->GetPlayerActor()->ar_linked_actors.begin(), this->GetPlayerActor()->ar_linked_actors.end());
895  actorsToBeamUp.push_back(this->GetPlayerActor());
896 
897  float src_agl = std::numeric_limits<float>::max();
898  float dst_agl = std::numeric_limits<float>::max();
899  for (ActorPtr& actor : actorsToBeamUp)
900  {
901  for (int i = 0; i < actor->ar_num_nodes; i++)
902  {
903  Ogre::Vector3 pos = actor->ar_nodes[i].AbsPosition;
904  src_agl = std::min(pos.y - m_terrain->GetCollisions()->getSurfaceHeight(pos.x, pos.z), src_agl);
905  pos += translation;
906  dst_agl = std::min(pos.y - m_terrain->GetCollisions()->getSurfaceHeight(pos.x, pos.z), dst_agl);
907  }
908  }
909 
910  translation += Ogre::Vector3::UNIT_Y * (std::max(0.0f, src_agl) - dst_agl);
911 
912  for (ActorPtr& actor : actorsToBeamUp)
913  {
914  actor->resetPosition(actor->ar_nodes[0].AbsPosition + translation, false);
915  }
916 }
917 
919 {
920  // Generic escape key event
921  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_QUIT_GAME))
922  {
923  if (App::app_state->getEnum<AppState>() == AppState::MAIN_MENU)
924  {
925  if (App::GetGuiManager()->GameAbout.IsVisible())
926  {
928  }
929  else if (App::GetGuiManager()->MainSelector.IsVisible())
930  {
932  }
933  else if (App::GetGuiManager()->GameSettings.IsVisible())
934  {
936  }
937  else if (App::GetGuiManager()->GameControls.IsVisible())
938  {
940  }
941  else if (App::GetGuiManager()->MultiplayerSelector.IsVisible())
942  {
944  }
945  else if (App::GetGuiManager()->RepositorySelector.IsVisible())
946  {
948  }
949  else
950  {
952  }
953  }
954  else if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
955  {
956  if (App::GetGuiManager()->MainSelector.IsVisible())
957  {
959  }
960  else if (App::GetGuiManager()->GameControls.IsVisible())
961  {
963  }
964  else if (App::sim_state->getEnum<SimState>() == SimState::RUNNING)
965  {
967  if (App::mp_state->getEnum<MpState>() != MpState::CONNECTED)
968  {
970  }
971  }
972  else if (App::sim_state->getEnum<SimState>() == SimState::PAUSED)
973  {
976  }
977  }
978  }
979 
980  // screenshot
981  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_SCREENSHOT, 0.25f))
982  {
984  }
985 
986  // fullscreen toggle
987  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_FULLSCREEN_TOGGLE, 2.0f))
988  {
989  if (App::GetAppContext()->GetRenderWindow()->isFullScreen())
991  else
993  }
994 
995  // render mode
996  switch (App::gfx_polygon_mode->getEnum<Ogre::PolygonMode>())
997  {
998  case 1: App::GetCameraManager()->GetCamera()->setPolygonMode(Ogre::PM_SOLID); break;
999  case 2: App::GetCameraManager()->GetCamera()->setPolygonMode(Ogre::PM_WIREFRAME); break;
1000  case 3: App::GetCameraManager()->GetCamera()->setPolygonMode(Ogre::PM_POINTS); break;
1001  }
1002 
1003  // Write player position to log
1004  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION &&
1005  App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_OUTPUT_POSITION))
1006  {
1007  Ogre::Vector3 position(Ogre::Vector3::ZERO);
1008  Ogre::Radian rotation(0);
1009  if (this->GetPlayerActor() == nullptr)
1010  {
1011  position = this->GetPlayerCharacter()->getPosition();
1012  rotation = this->GetPlayerCharacter()->getRotation() + Ogre::Radian(Ogre::Math::PI);
1013  }
1014  else
1015  {
1016  position = this->GetPlayerActor()->getPosition();
1017  rotation = this->GetPlayerActor()->getRotation();
1018  }
1019  Ogre::String pos = Ogre::StringUtil::format("%8.3f, %8.3f, %8.3f" , position.x, position.y, position.z);
1020  Ogre::String rot = Ogre::StringUtil::format("% 6.1f, % 6.1f, % 6.1f", 0.0f, rotation.valueDegrees() , 0.0f);
1021  LOG("Position: " + pos + ", " + rot);
1022  }
1023 
1024  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_RESET_MODE))
1025  {
1029  (App::sim_soft_reset_mode->getBool()) ? _L("Enabled soft reset mode") : _L("Enabled hard reset mode"));
1030  }
1031 }
1032 
1034 {
1035  // get new vehicle
1036  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_GET_NEW_VEHICLE))
1037  {
1039  m.payload = reinterpret_cast<void*>(new LoaderType(LT_AllBeam));
1041  }
1042 
1043  // Enter/exit truck - With a toggle delay
1044  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ENTER_OR_EXIT_TRUCK, 0.5f))
1045  {
1046  if (this->GetPlayerActor() == nullptr) // no vehicle
1047  {
1048  // find the nearest vehicle
1049  float mindist = 1000.0;
1050  ActorPtr nearest_actor = nullptr;
1051  for (ActorPtr& actor : this->GetActorManager()->GetActors())
1052  {
1053  if (!actor->ar_driveable)
1054  continue;
1055  if (actor->ar_cinecam_node[0] == NODENUM_INVALID)
1056  {
1057  LOG("cinecam missing, cannot enter the actor!");
1058  continue;
1059  }
1060  float len = 0.0f;
1061  if (this->GetPlayerCharacter())
1062  {
1063  len = actor->ar_nodes[actor->ar_cinecam_node[0]].AbsPosition.distance(this->GetPlayerCharacter()->getPosition() + Ogre::Vector3(0.0, 2.0, 0.0));
1064  }
1065  if (len < mindist)
1066  {
1067  mindist = len;
1068  nearest_actor = actor;
1069  }
1070  }
1071 
1072  if (mindist < 20.0)
1073  {
1074  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(nearest_actor))));
1075  }
1076  }
1077  else // We're in a vehicle -> If moving slowly enough, get out
1078  {
1079  if (this->GetPlayerActor()->ar_nodes[0].Velocity.squaredLength() < 1.0f ||
1080  this->GetPlayerActor()->ar_state == ActorState::NETWORKED_OK || this->GetPlayerActor()->ar_state == ActorState::NETWORKED_HIDDEN ||
1081  this->GetPlayerActor()->ar_driveable == AI)
1082  {
1083  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr())));
1084  }
1085  }
1086  }
1087 
1088  // enter next truck
1089  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ENTER_NEXT_TRUCK, 0.25f))
1090  {
1091  ActorPtr actor = this->FetchNextVehicleOnList();
1092  if (actor != this->GetPlayerActor())
1093  {
1094  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(actor))));
1095  }
1096  }
1097 
1098  // enter previous truck
1099  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ENTER_PREVIOUS_TRUCK, 0.25f))
1100  {
1101  ActorPtr actor = this->FetchPrevVehicleOnList();
1102  if (actor != this->GetPlayerActor())
1103  {
1104  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(actor))));
1105  }
1106  }
1107 
1108  // respawn last truck
1109  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_RESPAWN_LAST_TRUCK, 0.25f))
1110  {
1111  this->RespawnLastActor();
1112  }
1113 
1114  // terrain editor toggle
1116  {
1118  }
1119 
1120  // forward commands from character
1121  if (!m_player_actor)
1122  {
1123  // Find nearest actor
1124  const Ogre::Vector3 position = App::GetGameContext()->GetPlayerCharacter()->getPosition();
1125  ActorPtr nearest_actor = nullptr;
1126  float min_squared_distance = std::numeric_limits<float>::max();
1127  for (ActorPtr& actor : App::GetGameContext()->GetActorManager()->GetActors())
1128  {
1129  float squared_distance = position.squaredDistance(actor->ar_nodes[0].AbsPosition);
1130  if (squared_distance < min_squared_distance)
1131  {
1132  min_squared_distance = squared_distance;
1133  nearest_actor = actor;
1134  }
1135  }
1136 
1137  // Evaluate
1138  if (nearest_actor != nullptr &&
1139  nearest_actor->ar_import_commands &&
1140  min_squared_distance < (nearest_actor->getMinCameraRadius()*nearest_actor->getMinCameraRadius()))
1141  {
1142  // get commands
1143  for (int i = 1; i <= MAX_COMMANDS; i++) // BEWARE: commandkeys are indexed 1-MAX_COMMANDS!
1144  {
1145  int eventID = EV_COMMANDS_01 + (i - 1);
1146 
1147  nearest_actor->ar_command_key[i].playerInputValue = RoR::App::GetInputEngine()->getEventValue(eventID);
1148  }
1149  }
1150  }
1151 
1152  // AI waypoint recording
1153  if (App::GetGuiManager()->TopMenubar.ai_rec)
1154  {
1155  if (m_timer.getMilliseconds() > 1000) // Don't spam it, record every 1 sec
1156  {
1157  if (App::GetGameContext()->GetPlayerActor()) // We are in vehicle
1158  {
1159  if (App::GetGameContext()->GetPlayerActor()->getPosition().distance(prev_pos) >= 5) // Skip very close positions
1160  {
1161  ai_events waypoint;
1163  waypoint.speed = App::GetGameContext()->GetPlayerActor()->getWheelSpeed() * 3.6;
1164  if (waypoint.speed < 5)
1165  {
1166  waypoint.speed = -1;
1167  }
1168  App::GetGuiManager()->TopMenubar.ai_waypoints.push_back(waypoint);
1169  }
1171  }
1172  else // We are in feet
1173  {
1174  if (App::GetGameContext()->GetPlayerCharacter()->getPosition() != prev_pos) // Skip same positions
1175  {
1176  ai_events waypoint;
1178  App::GetGuiManager()->TopMenubar.ai_waypoints.push_back(waypoint);
1179  }
1181  }
1182  m_timer.reset();
1183  }
1184  }
1185  else
1186  {
1187  prev_pos = Ogre::Vector3::ZERO;
1188  }
1189 }
1190 
1192 {
1193 #ifdef USE_CAELUM
1194  if (App::gfx_sky_mode->getEnum<GfxSkyMode>() == GfxSkyMode::CAELUM &&
1196  {
1197  float time_factor = 1.0f;
1198 
1199  if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME))
1200  {
1201  time_factor = 1000.0f;
1202  }
1203  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME_FAST))
1204  {
1205  time_factor = 10000.0f;
1206  }
1207  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME))
1208  {
1209  time_factor = -1000.0f;
1210  }
1211  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME_FAST))
1212  {
1213  time_factor = -10000.0f;
1214  }
1215  else if (App::gfx_sky_time_cycle->getBool())
1216  {
1217  time_factor = App::gfx_sky_time_speed->getInt();
1218  }
1219 
1220  if (m_terrain->getSkyManager()->GetSkyTimeFactor() != time_factor)
1221  {
1222  m_terrain->getSkyManager()->SetSkyTimeFactor(time_factor);
1223  Str<200> msg; msg << _L("Time set to ") << m_terrain->getSkyManager()->GetPrettyTime();
1225  }
1226  }
1227 
1228 #endif // USE_CAELUM
1229  if (App::gfx_sky_mode->getEnum<GfxSkyMode>() == GfxSkyMode::SKYX &&
1231  {
1232  if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME))
1233  {
1235  }
1236  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME_FAST))
1237  {
1239  }
1240  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME))
1241  {
1243  }
1244  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME_FAST))
1245  {
1247  }
1248  else
1249  {
1251  }
1252  }
1253 }
1254 
1256 {
1258 
1259  // reload current truck
1260  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCKEDIT_RELOAD, 0.5f))
1261  {
1266  }
1267 
1268  // remove current truck
1269  if (App::GetInputEngine()->getEventBoolValue(EV_COMMON_REMOVE_CURRENT_TRUCK))
1270  {
1272  }
1273 
1274  // Front lights
1275  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_LOW_BEAMS))
1276  {
1278  // sync sidelights to lowbeams
1280  }
1281  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_CYCLE_TRUCK_LIGHTS))
1282  {
1283  // Smart cycling:
1284  // 1) all lights off
1285  // 2) sidelights on but only if any installed, otherwise skip to 3).
1286  // 3) sidelights and lowbeams on.
1287  // 4) sidelights, lowbeams and highbeams on, but only if highbeams are installed, otherwise cycle to 1).
1289  {
1291  }
1292  else if (!m_player_actor->getHeadlightsVisible())
1293  {
1296  }
1298  {
1302  }
1303  else
1304  {
1308  }
1309  }
1310  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_HIGH_BEAMS))
1311  {
1313  }
1314  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_FOG_LIGHTS))
1315  {
1317  }
1318 
1319  // Beacons
1320  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_BEACONS))
1321  {
1323  }
1324 
1325  // blinkers
1326  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_BLINK_LEFT))
1328 
1329  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_BLINK_RIGHT))
1331 
1332  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_BLINK_WARN))
1334 
1335  // custom lights
1336  for (int i = 0; i < MAX_CLIGHTS; i++)
1337  {
1338  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_LIGHTTOGGLE01 + i))
1340  }
1341 
1342  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TRUCK_REMOVE))
1343  {
1345  }
1346 
1347  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ROPELOCK))
1348  {
1350  }
1351 
1352  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_LOCK))
1353  {
1354  //m_player_actor->hookToggle(-1, HOOK_TOGGLE, -1);
1355  ActorLinkingRequest* hook_rq = new ActorLinkingRequest();
1359 
1360  //m_player_actor->toggleSlideNodeLock();
1361  ActorLinkingRequest* slidenode_rq = new ActorLinkingRequest();
1365  }
1366 
1367  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_AUTOLOCK))
1368  {
1369  m_player_actor->hookToggle(-2, ActorLinkingRequestType::HOOK_UNLOCK, -1); //unlock all autolocks
1370  }
1371 
1372  //strap
1373  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_SECURE_LOAD))
1374  {
1376  }
1377 
1378  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_CUSTOM_PARTICLES))
1379  {
1381  }
1382 
1383  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_DEBUG_VIEW))
1384  {
1386  for (ActorPtr& actor : m_player_actor->ar_linked_actors)
1387  {
1389  }
1390  }
1391 
1392  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_CYCLE_DEBUG_VIEWS))
1393  {
1395  for (ActorPtr& actor : m_player_actor->ar_linked_actors)
1396  {
1398  }
1399  }
1400 
1401  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_RESCUE_TRUCK, 0.5f) &&
1402  App::mp_state->getEnum<MpState>() != MpState::CONNECTED &&
1404  {
1405  ActorPtr rescuer = nullptr;
1406  for (ActorPtr& actor : App::GetGameContext()->GetActorManager()->GetActors())
1407  {
1408  if (actor->ar_rescuer_flag)
1409  {
1410  rescuer = actor;
1411  }
1412  }
1413  if (rescuer == nullptr)
1414  {
1415  App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("No rescue truck found!"), "error.png");
1416  }
1417  else
1418  {
1419  App::GetGameContext()->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(rescuer))));
1420  }
1421  }
1422 
1423  // parking brake
1424  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TRAILER_PARKING_BRAKE))
1425  {
1430  }
1431 
1432  // videocam
1433  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_VIDEOCAMERA, 0.5f))
1434  {
1436  {
1438  }
1439  else
1440  {
1442  }
1443  }
1444 
1445  // enter/exit truck - Without a delay: the vehicle must brake like braking normally
1446  if (App::GetInputEngine()->getEventBoolValue(EV_COMMON_ENTER_OR_EXIT_TRUCK))
1447  {
1448  if (m_player_actor->ar_driveable != AI)
1449  {
1450  m_player_actor->ar_brake = 0.66f;
1451  }
1452  }
1453 
1454  // toggle physics
1455  if (RoR::App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_PHYSICS))
1456  {
1457  for (ActorPtr& actor : App::GetGameContext()->GetPlayerActor()->ar_linked_actors)
1458  {
1459  actor->ar_physics_paused = !App::GetGameContext()->GetPlayerActor()->ar_physics_paused;
1460  }
1462  }
1463 
1464  // reset truck
1465  if (App::GetInputEngine()->getEventBoolValue(EV_COMMON_RESET_TRUCK))
1466  {
1471  }
1472 
1473  // Commandkeys: process controller input for all commands
1474  for (int i = 1; i <= MAX_COMMANDS; i++) // BEWARE: commandkeys are indexed 1-MAX_COMMANDS!
1475  {
1476  int eventID = EV_COMMANDS_01 + (i - 1);
1477 
1478  m_player_actor->ar_command_key[i].playerInputValue = RoR::App::GetInputEngine()->getEventValue(eventID);
1479  }
1480 
1481  // Commandkeys: Apply command buttons in T-screen
1482  if (App::GetGuiManager()->VehicleInfoTPanel.GetActiveCommandKey() != COMMANDKEYID_INVALID)
1483  {
1485  }
1486 
1487  if (RoR::App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_FORWARDCOMMANDS))
1488  {
1491  {
1492  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("forwardcommands enabled"), "information.png");
1493  }
1494  else
1495  {
1496  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("forwardcommands disabled"), "information.png");
1497  }
1498  }
1499 
1500  if (RoR::App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_IMPORTCOMMANDS))
1501  {
1504  {
1505  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("importcommands enabled"), "information.png");
1506  }
1507  else
1508  {
1509  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("importcommands disabled"), "information.png");
1510  }
1511  }
1512 
1513  if (m_player_actor->getReplay())
1514  {
1516  }
1517 }
1518 
1519 // Internal heper for UpdateAirplaneInputEvents()
1520 void smoothValue(float& ref, float value, float rate)
1521 {
1522  if (value < -1)
1523  value = -1;
1524  if (value > 1)
1525  value = 1;
1526  // smooth!
1527  if (ref > value)
1528  {
1529  ref -= rate;
1530  if (ref < value)
1531  ref = value;
1532  }
1533  else if (ref < value)
1534  ref += rate;
1535 }
1536 
1538 {
1540  return;
1541 
1542  // autopilot
1544  {
1546  }
1547 
1548  // steer
1549  float commandrate = 4.0;
1552  float sum_steer = -tmp_left + tmp_right;
1553  smoothValue(m_player_actor->ar_aileron, sum_steer, dt * commandrate);
1556 
1557  // pitch
1559  float tmp_pitch_down = App::GetInputEngine()->getEventValue(EV_AIRPLANE_ELEVATOR_DOWN);
1560  float sum_pitch = tmp_pitch_down - tmp_pitch_up;
1561  smoothValue(m_player_actor->ar_elevator, sum_pitch, dt * commandrate);
1562 
1563  // rudder
1564  float tmp_rudder_left = App::GetInputEngine()->getEventValue(EV_AIRPLANE_RUDDER_LEFT);
1565  float tmp_rudder_right = App::GetInputEngine()->getEventValue(EV_AIRPLANE_RUDDER_RIGHT);
1566  float sum_rudder = tmp_rudder_left - tmp_rudder_right;
1567  smoothValue(m_player_actor->ar_rudder, sum_rudder, dt * commandrate);
1568 
1569  // brakes
1571  {
1573  }
1574 
1575  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_PARKING_BRAKE))
1576  {
1578  }
1579 
1580  // reverse
1581  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_REVERSE))
1582  {
1583  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1584  {
1586  }
1587  }
1588 
1589  // engines
1590  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_TOGGLE_ENGINES))
1591  {
1592  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1593  {
1595  }
1596  }
1597 
1598  // flaps
1599  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_FLAPS_NONE))
1600  {
1601  if (m_player_actor->ar_aerial_flap > 0)
1602  {
1604  }
1605  }
1606 
1607  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_FLAPS_FULL))
1608  {
1609  if (m_player_actor->ar_aerial_flap < 5)
1610  {
1612  }
1613  }
1614 
1615  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_FLAPS_LESS))
1616  {
1617  if (m_player_actor->ar_aerial_flap > 0)
1618  {
1620  }
1621  }
1622 
1624  {
1625  if (m_player_actor->ar_aerial_flap < 5)
1626  {
1628  }
1629  }
1630 
1631  // airbrakes
1633  {
1635  {
1637  }
1638  }
1639 
1641  {
1643  {
1645  }
1646  }
1647 
1649  {
1651  {
1653  }
1654  }
1655 
1657  {
1659  {
1661  }
1662  }
1663 
1664  // throttle
1666  if (tmp_throttle > 0)
1667  {
1668  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1669  {
1670  m_player_actor->ar_aeroengines[i]->setThrottle(tmp_throttle);
1671  }
1672  }
1673 
1674  if (App::GetInputEngine()->isEventDefined(EV_AIRPLANE_THROTTLE_AXIS))
1675  {
1677  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1678  {
1680  }
1681  }
1682 
1683  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_THROTTLE_DOWN, 0.1f))
1684  {
1685  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1686  {
1688  }
1689  }
1690 
1691  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_THROTTLE_UP, 0.1f))
1692  {
1693  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1694  {
1696  }
1697  }
1698 
1699  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_THROTTLE_NO, 0.1f))
1700  {
1701  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1702  {
1704  }
1705  }
1706 
1707  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_THROTTLE_FULL, 0.1f))
1708  {
1709  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1710  {
1712  }
1713  }
1714 
1715  // autopilot
1717  {
1718  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1719  {
1721  }
1722  }
1723 }
1724 
1726 {
1727  // throttle
1728  if (App::GetInputEngine()->isEventDefined(EV_BOAT_THROTTLE_AXIS))
1729  {
1731  // use negative values also!
1732  f = f * 2 - 1;
1733  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1735  }
1736 
1737  if (App::GetInputEngine()->getEventBoolValueBounce(EV_BOAT_THROTTLE_DOWN, 0.1f))
1738  {
1739  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1741  }
1742 
1743  if (App::GetInputEngine()->getEventBoolValueBounce(EV_BOAT_THROTTLE_UP, 0.1f))
1744  {
1745  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1747  }
1748 
1749  // steer
1750  float tmp_steer_left = App::GetInputEngine()->getEventValue(EV_BOAT_STEER_LEFT);
1751  float tmp_steer_right = App::GetInputEngine()->getEventValue(EV_BOAT_STEER_RIGHT);
1753  float sum_steer = (tmp_steer_left - tmp_steer_right) * dt;
1754  // do not center the rudder!
1755  if (fabs(sum_steer) > 0 && stime <= 0)
1756  {
1757  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1759  }
1760 
1762  {
1765  sum_steer = (tmp_steer_left - tmp_steer_right);
1766  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1767  m_player_actor->ar_screwprops[i]->setRudder(sum_steer);
1768  }
1769 
1770  // rudder
1772  {
1773  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1775  }
1776 
1777  // reverse
1779  {
1780  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1782  }
1783 }
1784 
1786 {
1788  return;
1789 #ifdef USE_ANGELSCRIPT
1791  return;
1792 #endif // USE_ANGELSCRIPT
1793 
1794  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_LEFT_MIRROR_LEFT))
1796 
1797  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_LEFT_MIRROR_RIGHT))
1799 
1800  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_RIGHT_MIRROR_LEFT))
1802 
1803  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_RIGHT_MIRROR_RIGHT))
1805 
1806  // steering
1811 
1812  float sum = -std::max(tmp_left_digital, tmp_left_analog) + std::max(tmp_right_digital, tmp_right_analog);
1813 
1814  m_player_actor->ar_hydro_dir_command = Ogre::Math::Clamp(sum, -1.0f, 1.0f);
1815 
1816  m_player_actor->ar_hydro_speed_coupling = (tmp_left_digital >= tmp_left_analog) && (tmp_right_digital >= tmp_right_analog);
1817 
1819  {
1821  }
1822 
1823  if (m_player_actor->ar_brake > 1.0f / 6.0f)
1824  {
1826  }
1827  else
1828  {
1830  }
1831 
1832  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_INTER_AXLE_DIFF))
1833  {
1836  }
1837 
1838  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_INTER_WHEEL_DIFF))
1839  {
1842  }
1843 
1844  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_TCASE_4WD_MODE))
1845  {
1848  }
1849 
1850  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_TCASE_GEAR_RATIO))
1851  {
1854  }
1855 
1857  {
1858  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_HORN))
1859  {
1860  SOUND_TOGGLE(m_player_actor, SS_TRIG_HORN); // Police siren
1861  }
1862  }
1863  else
1864  {
1865  if (App::GetInputEngine()->getEventBoolValue(EV_TRUCK_HORN)
1866  || App::GetGuiManager()->VehicleInfoTPanel.IsHornButtonActive())
1867  {
1869  }
1870  else
1871  {
1873  }
1874  }
1875 
1876  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_PARKING_BRAKE) &&
1877  !App::GetInputEngine()->getEventBoolValue(EV_TRUCK_TRAILER_PARKING_BRAKE))
1878  {
1880  }
1881 
1882  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_ANTILOCK_BRAKE))
1883  {
1885  }
1886 
1887  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TRACTION_CONTROL))
1888  {
1890  }
1891 
1892  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_CRUISE_CONTROL))
1893  {
1895  }
1896 
1898  {
1900  }
1901 
1903  for (ActorPtr linked_actor : m_player_actor->ar_linked_actors)
1904  {
1905  linked_actor->UpdatePropAnimInputEvents();
1906  }
1907 }
1908 
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:1304
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:357
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:1355
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:170
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
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:1347
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:1255
RoR::ActorLinkingRequest::alr_type
ActorLinkingRequestType alr_type
Definition: SimData.h:920
RoR::GameContext::GetPlayerCharacter
Character * GetPlayerCharacter()
Definition: GameContext.cpp:872
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:803
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:683
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:3179
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::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:880
RoR::GameContext::UpdateActors
void UpdateActors()
Definition: GameContext.cpp:579
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:590
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:987
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
Can be in "Bundle-qualified" format, i.e. "mybundle.zip:myactor.truck".
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:1520
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:1363
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:3791
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:3800
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:1573
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:4566
RoR::GameContext::UpdateGlobalInputEvents
void UpdateGlobalInputEvents()
Definition: GameContext.cpp:918
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:734
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:1508
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::CacheSystem::FindEntryByFilename
CacheEntryPtr FindEntryByFilename(RoR::LoaderType type, bool partial, const std::string &_filename_maybe_bundlequalified)
Returns NULL if none found; "Bundle-qualified" format also specifies the ZIP/directory in modcache,...
Definition: CacheSystem.cpp:184
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:466
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:1072
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:417
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:1332
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:1597
RoR::Actor::antilockbrakeToggle
void antilockbrakeToggle()
Definition: Actor.cpp:3782
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:424
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:3629
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:814
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:1548
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:1431
RoR::Actor::parkingbrakeToggle
void parkingbrakeToggle()
Definition: Actor.cpp:3767
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:881
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:1537
RoRnet::UserInfo::colournum
int32_t colournum
colour set by server
Definition: RoRnet.h:175
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:177
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:409
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:3085
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:569
RoR::CacheSystem::LoadResource
void LoadResource(CacheEntryPtr &t)
Loads the associated resource bundle if not already done.
Definition: CacheSystem.cpp:1435
RoR::GameContext::OnLoaderGuiCancel
void OnLoaderGuiCancel()
GUI callback.
Definition: GameContext.cpp:667
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:4687
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:4719
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:3435
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:1490
RoR::Actor::toggleTransferCaseGearRatio
void toggleTransferCaseGearRatio()
Definition: Actor.cpp:1462
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:1033
RoR::LT_AllBeam
@ LT_AllBeam
Definition: Application.h:303
RoR::GameContext::UpdateBoatInputEvents
void UpdateBoatInputEvents(float dt)
Definition: GameContext.cpp:1725
RoR::Actor::setCustomLightVisible
void setCustomLightVisible(int number, bool visible)
Definition: Actor.cpp:4500
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:639
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)
RoR::ActorManager::FetchActorDef
RigDef::DocumentPtr FetchActorDef(RoR::ActorSpawnRequest &rq)
Definition: ActorManager.cpp:1253
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:1521
RoR::InputEngine::isEventAnalog
bool isEventAnalog(int eventID)
Definition: InputEngine.cpp:931
RoR::Actor::countFlaresByType
int countFlaresByType(FlareType type)
Definition: Actor.cpp:4537
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:785
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:603
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:1391
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:1026
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:962
RoR::Actor::setAirbrakeIntensity
void setAirbrakeIntensity(float intensity)
Definition: Actor.cpp:2921
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:1785
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:2955
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:4724
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:1142
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:2090
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:574
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:584
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:4478
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:1417
RoR::GameContext::CreatePlayerCharacter
void CreatePlayerCharacter()
Terrain must be loaded.
Definition: GameContext.cpp:819
RoR::GameContext::UpdateSkyInputEvents
void UpdateSkyInputEvents(float dt)
Definition: GameContext.cpp:1191
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.