RigsofRods
Soft-body Physics Simulation
GameContext.cpp
Go to the documentation of this file.
1 /*
2  This source file is part of Rigs of Rods
3  Copyright 2005-2012 Pierre-Michel Ricordel
4  Copyright 2007-2012 Thomas Fischer
5  Copyright 2013-2020 Petr Ohlidal
6 
7  For more information, see http://www.rigsofrods.org/
8 
9  Rigs of Rods is free software: you can redistribute it and/or modify
10  it under the terms of the GNU General Public License version 3, as
11  published by the Free Software Foundation.
12 
13  Rigs of Rods is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with Rigs of Rods. If not, see <http://www.gnu.org/licenses/>.
20 */
21 
22 #include "GameContext.h"
23 
24 #include "AppContext.h"
25 #include "Actor.h"
26 #include "AeroEngine.h"
27 #include "CacheSystem.h"
28 #include "Collisions.h"
29 #include "Console.h"
30 #include "DashBoardManager.h"
31 #include "EngineSim.h"
32 #include "GfxScene.h"
33 #include "GUIManager.h"
34 #include "GUI_FrictionSettings.h"
35 #include "GUI_MainSelector.h"
36 #include "GUI_TopMenubar.h"
37 #include "InputEngine.h"
38 #include "OverlayWrapper.h"
39 #include "Replay.h"
40 #include "ScrewProp.h"
41 #include "ScriptEngine.h"
42 #include "SkyManager.h"
43 #include "SkyXManager.h"
44 #include "SoundScriptManager.h"
45 #include "Terrain.h"
46 #include "TuneupFileFormat.h"
47 #include "Utils.h"
48 #include "VehicleAI.h"
49 #include "GUI_VehicleButtons.h"
50 
51 using namespace RoR;
52 
54 {
55  // Constructs `ActorPtr` - doesn't compile without `#include Actor.h` - not pretty if in header (even if auto-generated by C++).
56 }
57 
59 {
60  // Destructs `ActorPtr` - doesn't compile without `#include Actor.h` - not pretty if in header (even if auto-generated by C++).
61 }
62 
63 // --------------------------------
64 // Message queue
65 
67 {
68  std::lock_guard<std::mutex> lock(m_msg_mutex);
69  m_msg_queue.push(m);
70  m_msg_chain_end = &m_msg_queue.back();
71 }
72 
74 {
75  std::lock_guard<std::mutex> lock(m_msg_mutex);
76  if (m_msg_chain_end)
77  {
78 
79  m_msg_chain_end->chain.push_back(m);
81  }
82  else
83  {
84  // Regular `PushMessage()`, just without the lock.
85  m_msg_queue.push(m);
86  m_msg_chain_end = &m_msg_queue.back();
87  }
88 }
89 
91 {
92  std::lock_guard<std::mutex> lock(m_msg_mutex);
93  return !m_msg_queue.empty();
94 }
95 
97 {
98  std::lock_guard<std::mutex> lock(m_msg_mutex);
99  ROR_ASSERT(m_msg_queue.size() > 0);
100  if (m_msg_chain_end == &m_msg_queue.front())
101  {
102  m_msg_chain_end = nullptr;
103  }
104  Message m = m_msg_queue.front();
105  m_msg_queue.pop();
106  return m;
107 }
108 
109 // --------------------------------
110 // Terrain
111 
112 bool GameContext::LoadTerrain(std::string const& filename_part)
113 {
114  m_last_spawned_actor = nullptr;
115 
116  // Find terrain in modcache
117  CacheEntryPtr terrn_entry = App::GetCacheSystem()->FindEntryByFilename(LT_Terrain, /*partial=*/true, filename_part);
118  if (!terrn_entry)
119  {
120  Str<200> msg; msg << _L("Terrain not found: ") << filename_part;
121  RoR::Log(msg.ToCStr());
122  App::GetGuiManager()->ShowMessageBox(_L("Terrain loading error"), msg.ToCStr());
123  return false;
124  }
125 
126  // Init resources
127  App::GetCacheSystem()->LoadResource(terrn_entry);
128 
129  // Load the terrain def file
130  Terrn2Def terrn2;
131  std::string const& filename = terrn_entry->fname;
132  try
133  {
134  Ogre::DataStreamPtr stream = Ogre::ResourceGroupManager::getSingleton().openResource(filename);
135  LOG(" ===== LOADING TERRAIN " + filename);
136  Terrn2Parser parser;
137  if (! parser.LoadTerrn2(terrn2, stream))
138  {
139  return false; // Errors already logged to console
140  }
141  }
142  catch (Ogre::Exception& e)
143  {
144  App::GetGuiManager()->ShowMessageBox(_L("Terrain loading error"), e.getFullDescription().c_str());
145  return false;
146  }
147 
148  for (std::string const& assetpack_filename: terrn2.assetpack_files)
149  {
150  App::GetCacheSystem()->LoadAssetPack(terrn_entry, assetpack_filename);
151  }
152 
153  // CAUTION - the global instance must be set during init! Needed by:
154  // * GameScript::spawnObject()
155  // * ProceduralManager
156  // * Landusemap
157  // * SurveyMapTextureCreator
158  // * Collisions (debug visualization)
159  m_terrain = new RoR::Terrain(terrn_entry, terrn2);
160  if (!m_terrain->initialize())
161  {
162  m_terrain = nullptr; // release local reference - object will be deleted when all references are released.
163  return false; // Message box already displayed
164  }
165 
166  // Initialize envmap textures by rendering center of map
167  Ogre::Vector3 center = m_terrain->getMaxTerrainSize() / 2;
168  center.y = m_terrain->GetHeightAt(center.x, center.z) + 1.0f;
169  App::GetGfxScene()->GetEnvMap().UpdateEnvMap(center, /*gfx_actor:*/nullptr, /*full:*/true);
170 
171  // Scan groundmodels
173 
174  return true;
175 }
176 
178 {
179  if (m_terrain != nullptr)
180  {
181  // dispose(), do not `delete` - script may still hold reference to the object.
182  m_terrain->dispose();
183  // release local reference - object will be deleted when all references are released.
184  m_terrain = nullptr;
185  }
186 }
187 
188 // --------------------------------
189 // Actors (physics and netcode)
190 
192 {
194  {
199 
200  if (rq.asr_spawnbox == nullptr)
201  {
202  if (m_player_actor != nullptr)
203  {
204  float h = m_player_actor->getMaxHeight(true);
205  rq.asr_rotation = Ogre::Quaternion(Ogre::Degree(270) - Ogre::Radian(m_player_actor->getRotation()), Ogre::Vector3::UNIT_Y);
208  rq.asr_position.y += m_player_actor->getHeightAboveGroundBelow(h, true); // retain height above ground
209  }
210  else
211  {
212  Character* player_character = this->GetPlayerCharacter();
213  rq.asr_rotation = Ogre::Quaternion(Ogre::Degree(180) - player_character->getRotation(), Ogre::Vector3::UNIT_Y);
214  rq.asr_position = player_character->getPosition();
215  }
216  }
217  }
218 
219  LOG(" ===== LOADING VEHICLE: " + rq.asr_filename);
220 
221  if (rq.asr_cache_entry)
222  {
224  }
225  else
226  {
228  }
229 
232  if (def == nullptr)
233  {
234  return nullptr; // Error already reported
235  }
236 
237  if (rq.asr_skin_entry)
238  {
239  App::GetCacheSystem()->LoadResource(rq.asr_skin_entry); // Also loads associated .skin file.
240  if (!rq.asr_skin_entry->skin_def) // Make sure .skin was loaded OK.
241  {
242  rq.asr_skin_entry = nullptr; // Error already logged
243  }
244  }
245 
246  if (App::sim_tuning_enabled->getBool() && (App::mp_state->getEnum<MpState>() != MpState::CONNECTED))
247  {
248  if (rq.asr_tuneup_entry)
249  {
250  App::GetCacheSystem()->LoadResource(rq.asr_tuneup_entry); // Also loads associated .tuneup file.
251  if (!rq.asr_tuneup_entry->tuneup_def)
252  {
253  rq.asr_tuneup_entry = nullptr; // Error already logged
254  }
255  }
256  }
257  else
258  {
259  rq.asr_working_tuneup = nullptr; // Make sure no tuneup is used
260  }
261 
262 #ifdef USE_SOCKETW
264  {
265  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
266  {
269  rq.asr_net_color = info.colournum;
270  }
271  }
272 #endif //SOCKETW
273 
274  ActorPtr fresh_actor = m_actor_manager.CreateNewActor(rq, def);
275  bool fresh_actor_seat_player = false;
276 
277  // lock slide nodes after spawning the actor?
278  if (def->slide_nodes_connect_instantly)
279  {
280  fresh_actor->toggleSlideNodeLock(); // OK to invoke here - processing MSG_SIM_ACTOR_SPAWN_REQUESTED
281  }
282 
284  {
285  m_last_spawned_actor = fresh_actor;
286  if (fresh_actor->ar_driveable != NOT_DRIVEABLE)
287  {
288  fresh_actor_seat_player = true;
289  }
290  if (rq.asr_spawnbox == nullptr)
291  {
292  // Try to resolve collisions with other actors
293  fresh_actor->resolveCollisions(50.0f, m_player_actor == nullptr);
294  }
295  }
297  {
298  if (fresh_actor->ar_driveable != NOT_DRIVEABLE &&
299  fresh_actor->ar_num_nodes > 0 &&
301  {
302  fresh_actor_seat_player = true;
303  }
304  }
306  {
307  if (rq.asr_terrn_machine)
308  {
309  fresh_actor->ar_driveable = MACHINE;
310  }
311  }
313  {
314  fresh_actor->ar_driveable = AI;
315  fresh_actor->ar_state = ActorState::LOCAL_SIMULATED;
316 
317  if (fresh_actor->ar_engine)
318  {
320  fresh_actor->ar_engine->autoShiftSet(EngineSim::DRIVE);
321  }
322  }
324  {
325  fresh_actor->ar_net_source_id = rq.net_source_id;
326  fresh_actor->ar_net_stream_id = rq.net_stream_id;
327  }
329  {
330  if (rq.asr_saved_state)
331  {
333  req->amr_actor = fresh_actor->ar_instance_id;
337  }
338  }
339  else
340  {
341  if (fresh_actor->ar_driveable != NOT_DRIVEABLE &&
343  rq.asr_enter)
344  {
345  fresh_actor_seat_player = true;
346  }
347  }
348 
349  if (fresh_actor_seat_player)
350  {
351  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, new ActorPtr(fresh_actor)));
352  // 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.
354  }
355 
356  return fresh_actor;
357 }
358 
360 {
362 
363  if (!actor)
364  {
365  return;
366  }
367 
369  {
370  actor->SoftReset();
371  }
373  {
374  actor->SyncReset(/*reset_position:*/false);
375  }
377  {
378  actor->SyncReset(/*reset_position:*/true);
379  }
381  {
383  }
386  {
388  actor->ar_sleep_counter = 0.0f;
389  }
391  {
392  CacheEntryPtr entry = App::GetCacheSystem()->FindEntryByFilename(LT_AllBeam, /*partial=*/false, actor->ar_filename);
393  if (!entry)
394  {
395  Str<500> msg; msg <<"Cannot reload vehicle; file '" << actor->ar_filename << "' not found in ModCache.";
397  return;
398  }
399 
400  // Create spawn request while actor still exists
402  srq->asr_position = Ogre::Vector3(actor->getPosition().x, actor->getMinHeight(), actor->getPosition().z);
403  srq->asr_rotation = Ogre::Quaternion(Ogre::Degree(270) - Ogre::Radian(actor->getRotation()), Ogre::Vector3::UNIT_Y);
404  srq->asr_config = actor->getSectionConfig();
405  srq->asr_skin_entry = actor->getUsedSkinEntry();
406  srq->asr_working_tuneup = actor->getWorkingTuneupDef();
407  srq->asr_cache_entry= entry;
408  srq->asr_debugview = (int)actor->GetGfxActor()->GetDebugView();
410 
411  // This deletes all actors using the resource bundle, including the one we're reloading.
413 
414  // Load our actor again, but only after all actors are deleted.
416  }
417 }
418 
420 {
421  if (actor == m_player_actor)
422  {
423  Ogre::Vector3 center = m_player_actor->getRotationCenter();
424  this->ChangePlayerActor(nullptr); // Get out of the vehicle
425  this->GetPlayerCharacter()->setPosition(center);
426  // Update scene SimBuffer immediatelly to prevent having dangling pointer.
428  }
429 
430  if (actor == m_prev_player_actor)
431  {
432  m_prev_player_actor = nullptr;
433  }
434 
435  if (actor == m_last_spawned_actor)
436  {
437  m_last_spawned_actor = nullptr;
438  }
439 
440  // Find linked actors and un-tie if tied
441  for (auto actorx : m_actor_manager.GetLocalActors())
442  {
443  if (actorx->isTied() && std::find(actor->ar_linked_actors.begin(), actor->ar_linked_actors.end(), actorx) != actor->ar_linked_actors.end())
444  {
445  actorx->tieToggle(); // OK to invoke here - processing MSG_SIM_DELETE_ACTOR_REQUESTED
446  }
447 
448  if (actorx->isLocked() && std::find(actor->ar_linked_actors.begin(), actor->ar_linked_actors.end(), actorx) != actor->ar_linked_actors.end())
449  {
450  actorx->hookToggle(); // OK to invoke here - processing MSG_SIM_DELETE_ACTOR_REQUESTED
451  }
452  }
453 
455 
456 #ifdef USE_SOCKETW
457  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
458  {
460  }
461 #endif //SOCKETW
462 
464 
465  // Unload actor's scripts
466  std::vector<ScriptUnitId_t> unload_list;
467  for (auto& pair : App::GetScriptEngine()->getScriptUnits())
468  {
469  if (pair.second.associatedActor == actor)
470  unload_list.push_back(pair.first);
471  }
472  for (ScriptUnitId_t id : unload_list)
473  {
475  }
476 
478 }
479 
481 {
482  ActorPtr prev_player_actor = m_player_actor;
483  m_player_actor = actor;
484 
485  // hide any old dashes
486  if (prev_player_actor && prev_player_actor->ar_dashboard)
487  {
488  prev_player_actor->ar_dashboard->setVisible3d(false);
489  }
490  // show new
492  {
494  }
495 
496  if (prev_player_actor)
497  {
498  App::GetOverlayWrapper()->showDashboardOverlays(false, prev_player_actor);
499 
500  prev_player_actor->GetGfxActor()->SetRenderdashActive(false);
501 
502  SOUND_STOP(prev_player_actor, SS_TRIG_AIR);
503  SOUND_STOP(prev_player_actor, SS_TRIG_PUMP);
504  }
505 
506  if (m_player_actor == nullptr)
507  {
508  // getting outside
509 
510  if (prev_player_actor)
511  {
513  {
515  }
516 
517  prev_player_actor->prepareInside(false);
518 
519  // get player out of the vehicle
520  float h = prev_player_actor->getMinCameraRadius();
521  float rotation = prev_player_actor->getRotation() - Ogre::Math::HALF_PI;
522  Ogre::Vector3 position = prev_player_actor->getPosition();
523  if (prev_player_actor->ar_cinecam_node[0] != NODENUM_INVALID)
524  {
525  // actor has a cinecam (find optimal exit position)
526  Ogre::Vector3 l = position - 2.0f * prev_player_actor->GetCameraRoll();
527  Ogre::Vector3 r = position + 2.0f * prev_player_actor->GetCameraRoll();
528  float l_h = m_terrain->GetCollisions()->getSurfaceHeightBelow(l.x, l.z, l.y + h);
529  float r_h = m_terrain->GetCollisions()->getSurfaceHeightBelow(r.x, r.z, r.y + h);
530  position = std::abs(r.y - r_h) * 1.2f < std::abs(l.y - l_h) ? r : l;
531  }
532  position.y = m_terrain->GetCollisions()->getSurfaceHeightBelow(position.x, position.z, position.y + h);
533 
534  Character* player_character = this->GetPlayerCharacter();
535  if (player_character)
536  {
537  player_character->SetActorCoupling(false, nullptr);
538  player_character->setRotation(Ogre::Radian(rotation));
539  player_character->setPosition(position);
540  }
541  }
542 
544 
545  TRIGGER_EVENT_ASYNC(SE_TRUCK_EXIT, prev_player_actor?prev_player_actor->ar_instance_id:-1);
546  }
547  else
548  {
549  // getting inside
551  !App::GetGuiManager()->IsGuiHidden(), m_player_actor);
552 
554  {
556  }
557 
559 
560  // force feedback
562 
563  // attach player to vehicle
564  Character* player_character = this->GetPlayerCharacter();
565  if (player_character)
566  {
567  player_character->SetActorCoupling(true, m_player_actor);
568  }
569 
571 
573  }
574 
575  if (prev_player_actor != nullptr || m_player_actor != nullptr)
576  {
578  }
579 
581 }
582 
584 {
586 }
587 
589 {
591 }
592 
594 {
596 }
597 
598 ActorPtr GameContext::FindActorByCollisionBox(std::string const & ev_src_instance_name, std::string const & box_name)
599 {
601  ev_src_instance_name, box_name);
602 }
603 
605 {
606  if (m_last_cache_selection != nullptr)
607  {
614  }
615 }
616 
617 void GameContext::SpawnPreselectedActor(std::string const& preset_vehicle, std::string const& preset_veh_config)
618 {
620  LT_AllBeam, /*partial=*/true, preset_vehicle);
621 
622  if (!entry)
623  return;
624 
626  rq->asr_cache_entry = entry;
628  rq->asr_rotation = Ogre::Quaternion(Ogre::Degree(180) - this->GetPlayerCharacter()->getRotation(), Ogre::Vector3::UNIT_Y);
630 
631  RoR::LogFormat("[RoR|Diag] Preselected Truck: %s (%s)", entry->dname.c_str(), entry->fname.c_str());
632 
633  // Section config lookup
634  if (!entry->sectionconfigs.empty())
635  {
636  if (std::find(entry->sectionconfigs.begin(), entry->sectionconfigs.end(),
637  preset_veh_config)
638  == entry->sectionconfigs.end())
639  {
640  // Preselected config doesn't exist -> use first available one
641  rq->asr_config = entry->sectionconfigs[0];
642  }
643  else
644  {
645  rq->asr_config = preset_veh_config;
646  }
647  RoR::LogFormat("[RoR|Diag] Preselected Truck Config: %s", rq->asr_config.c_str());
648  }
649 
651 }
652 
653 void GameContext::ShowLoaderGUI(int type, const Ogre::String& instance, const Ogre::String& box)
654 {
655  // first, test if the place if clear, BUT NOT IN MULTIPLAYER
656  if (!(App::mp_state->getEnum<MpState>() == MpState::CONNECTED))
657  {
658  collision_box_t* spawnbox = m_terrain->GetCollisions()->getBox(instance, box);
659  for (ActorPtr& actor : this->GetActorManager()->GetActors())
660  {
661  for (int i = 0; i < actor->ar_num_nodes; i++)
662  {
663  if (m_terrain->GetCollisions()->isInside(actor->ar_nodes[i].AbsPosition, spawnbox))
664  {
665  App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("Please clear the place first"), "error.png");
666  return;
667  }
668  }
669  }
670  }
671 
675 
677  m.payload = reinterpret_cast<void*>(new LoaderType(LoaderType(type)));
679 }
680 
682 {
684 
685  if (App::GetGuiManager()->TopMenubar.ai_select)
686  {
689  }
690  if (App::GetGuiManager()->TopMenubar.ai_select2)
691  {
694  }
695 }
696 
697 void GameContext::OnLoaderGuiApply(LoaderType type, CacheEntryPtr entry, std::string sectionconfig)
698 {
699  bool spawn_now = false;
700  switch (type)
701  {
702  case LT_AddonPart:
703  if (m_player_actor)
704  {
707  req->mpr_subject = entry->fname;
710  }
711  break;
712 
713  case LT_Skin:
714  if (entry != m_dummy_cache_selection)
715  {
717  if (App::GetGuiManager()->TopMenubar.ai_select)
718  {
720  }
721  if (App::GetGuiManager()->TopMenubar.ai_select2)
722  {
724  }
725  }
726  spawn_now = true;
727  break;
728 
729  case LT_Vehicle:
730  case LT_Truck:
731  case LT_Car:
732  case LT_Boat:
733  case LT_Airplane:
734  case LT_Trailer:
735  case LT_Train:
736  case LT_Load:
737  case LT_Extension:
738  case LT_AllBeam:
740  m_current_selection.asr_config = sectionconfig;
741  if (App::GetGuiManager()->TopMenubar.ai_select)
742  {
744  }
745  if (App::GetGuiManager()->TopMenubar.ai_select2)
746  {
748  }
750  // Look for extra skins
751  if (!entry->guid.empty())
752  {
753  CacheQuery skin_query;
754  skin_query.cqy_filter_guid = entry->guid;
755  skin_query.cqy_filter_type = LT_Skin;
756  size_t num_skins = App::GetCacheSystem()->Query(skin_query);
757  // Determine default skin
758  CacheEntryPtr default_skin_entry = nullptr;
759  if (entry->default_skin != "")
760  {
761  for (CacheQueryResult& res : skin_query.cqy_results)
762  {
763  if (res.cqr_entry->dname == entry->default_skin)
764  default_skin_entry = res.cqr_entry;
765  }
766  if (!default_skin_entry)
767  {
769  fmt::format(_L("Default skin '{}' for actor '{}' not found!"), entry->default_skin, entry->dname));
770  }
771  if (default_skin_entry && num_skins == 1)
772  {
773  m_current_selection.asr_skin_entry = default_skin_entry;
774  }
775  }
776  else
777  {
778  default_skin_entry = m_dummy_cache_selection;
779  default_skin_entry->dname = "Default skin";
780  default_skin_entry->description = "Original, unmodified skin";
781  }
782 
783  if (!m_current_selection.asr_skin_entry && num_skins > 0)
784  {
785  App::GetGuiManager()->MainSelector.Show(LT_Skin, entry->guid, default_skin_entry); // Intentionally not using MSG_
786  }
787  else
788  {
789  spawn_now = true;
790  }
791  }
792  else
793  {
794  spawn_now = true;
795  }
796  break;
797 
798  default:;
799  }
800 
801  if (spawn_now)
802  {
803  if (App::GetGuiManager()->TopMenubar.ai_select)
804  {
809  }
810  else if (App::GetGuiManager()->TopMenubar.ai_select2)
811  {
816  }
817  else
818  {
820  *rq = m_current_selection;
822  }
823 
825  }
826 }
827 
829 
830 // --------------------------------
831 // Characters
832 
834 {
836 
837  // Adjust character position
838  Ogre::Vector3 spawn_pos = m_terrain->getSpawnPos();
839  float spawn_rot = 0.0f;
840 
841  // Classic behavior, retained for compatibility.
842  // Required for maps like N-Labs or F1 Track.
844  {
845  spawn_rot = 180.0f;
846  }
847 
848  // Preset position - commandline has precedence
849  if (App::cli_preset_spawn_pos->getStr() != "")
850  {
851  spawn_pos = Ogre::StringConverter::parseVector3(App::cli_preset_spawn_pos->getStr(), spawn_pos);
853  }
854  else if (App::diag_preset_spawn_pos->getStr() != "")
855  {
856  spawn_pos = Ogre::StringConverter::parseVector3(App::diag_preset_spawn_pos->getStr(), spawn_pos);
858  }
859 
860  // Preset rotation - commandline has precedence
861  if (App::cli_preset_spawn_rot->getStr() != "")
862  {
863  spawn_rot = Ogre::StringConverter::parseReal(App::cli_preset_spawn_rot->getStr(), spawn_rot);
865  }
866  else if (App::diag_preset_spawn_rot->getStr() != "")
867  {
868  spawn_rot = Ogre::StringConverter::parseReal(App::diag_preset_spawn_rot->getStr(), spawn_rot);
870  }
871 
872  spawn_pos.y = m_terrain->GetCollisions()->getSurfaceHeightBelow(spawn_pos.x, spawn_pos.z, spawn_pos.y + 1.8f);
873 
874  this->GetPlayerCharacter()->setPosition(spawn_pos);
875  this->GetPlayerCharacter()->setRotation(Ogre::Degree(spawn_rot));
876 
877  App::GetCameraManager()->GetCameraNode()->setPosition(this->GetPlayerCharacter()->getPosition());
878 
879  // Small hack to improve the spawn experience
880  for (int i = 0; i < 100; i++)
881  {
883  }
884 }
885 
886 Character* GameContext::GetPlayerCharacter() // Convenience ~ counterpart of `GetPlayerActor()`
887 {
889 }
890 
891 // --------------------------------
892 // Gameplay feats
893 
894 void GameContext::TeleportPlayer(float x, float z)
895 {
897  if (!this->GetPlayerActor())
898  {
899  this->GetPlayerCharacter()->setPosition(Ogre::Vector3(x, y, z));
900  return;
901  }
902 
903  TRIGGER_EVENT_ASYNC(SE_TRUCK_TELEPORT, this->GetPlayerActor()->ar_instance_id);
904 
905  Ogre::Vector3 translation = Ogre::Vector3(x, y, z) - this->GetPlayerActor()->ar_nodes[0].AbsPosition;
906 
907  std::vector<ActorPtr> actorsToBeamUp;
908  actorsToBeamUp.assign(this->GetPlayerActor()->ar_linked_actors.begin(), this->GetPlayerActor()->ar_linked_actors.end());
909  actorsToBeamUp.push_back(this->GetPlayerActor());
910 
911  float src_agl = std::numeric_limits<float>::max();
912  float dst_agl = std::numeric_limits<float>::max();
913  for (ActorPtr& actor : actorsToBeamUp)
914  {
915  for (int i = 0; i < actor->ar_num_nodes; i++)
916  {
917  Ogre::Vector3 pos = actor->ar_nodes[i].AbsPosition;
918  src_agl = std::min(pos.y - m_terrain->GetCollisions()->getSurfaceHeight(pos.x, pos.z), src_agl);
919  pos += translation;
920  dst_agl = std::min(pos.y - m_terrain->GetCollisions()->getSurfaceHeight(pos.x, pos.z), dst_agl);
921  }
922  }
923 
924  translation += Ogre::Vector3::UNIT_Y * (std::max(0.0f, src_agl) - dst_agl);
925 
926  for (ActorPtr& actor : actorsToBeamUp)
927  {
928  actor->resetPosition(actor->ar_nodes[0].AbsPosition + translation, false);
929  }
930 }
931 
933 {
934  // Generic escape key event
935  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_QUIT_GAME))
936  {
937  if (App::app_state->getEnum<AppState>() == AppState::MAIN_MENU)
938  {
939  if (App::GetGuiManager()->GameAbout.IsVisible())
940  {
942  }
943  else if (App::GetGuiManager()->MainSelector.IsVisible())
944  {
946  }
947  else if (App::GetGuiManager()->GameSettings.IsVisible())
948  {
950  }
951  else if (App::GetGuiManager()->GameControls.IsVisible())
952  {
954  }
955  else if (App::GetGuiManager()->MultiplayerSelector.IsVisible())
956  {
958  }
959  else if (App::GetGuiManager()->RepositorySelector.IsVisible())
960  {
962  }
963  else
964  {
966  }
967  }
968  else if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
969  {
970  if (App::GetGuiManager()->MainSelector.IsVisible())
971  {
973  }
974  else if (App::GetGuiManager()->GameControls.IsVisible())
975  {
977  }
978  else if (App::sim_state->getEnum<SimState>() == SimState::RUNNING)
979  {
981  if (App::mp_state->getEnum<MpState>() != MpState::CONNECTED)
982  {
984  }
985  }
986  else if (App::sim_state->getEnum<SimState>() == SimState::PAUSED)
987  {
990  }
991  }
992  }
993 
994  // screenshot
995  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_SCREENSHOT, 0.25f))
996  {
998  }
999 
1000  // fullscreen toggle
1001  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_FULLSCREEN_TOGGLE, 2.0f))
1002  {
1003  if (App::GetAppContext()->GetRenderWindow()->isFullScreen())
1005  else
1007  }
1008 
1009  // render mode
1010  switch (App::gfx_polygon_mode->getEnum<Ogre::PolygonMode>())
1011  {
1012  case 1: App::GetCameraManager()->GetCamera()->setPolygonMode(Ogre::PM_SOLID); break;
1013  case 2: App::GetCameraManager()->GetCamera()->setPolygonMode(Ogre::PM_WIREFRAME); break;
1014  case 3: App::GetCameraManager()->GetCamera()->setPolygonMode(Ogre::PM_POINTS); break;
1015  }
1016 
1017  // Write player position to log
1018  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION &&
1019  App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_OUTPUT_POSITION))
1020  {
1021  Ogre::Vector3 position(Ogre::Vector3::ZERO);
1022  Ogre::Radian rotation(0);
1023  if (this->GetPlayerActor() == nullptr)
1024  {
1025  position = this->GetPlayerCharacter()->getPosition();
1026  rotation = this->GetPlayerCharacter()->getRotation() + Ogre::Radian(Ogre::Math::PI);
1027  }
1028  else
1029  {
1030  position = this->GetPlayerActor()->getPosition();
1031  rotation = this->GetPlayerActor()->getRotation();
1032  }
1033  Ogre::String pos = Ogre::StringUtil::format("%8.3f, %8.3f, %8.3f" , position.x, position.y, position.z);
1034  Ogre::String rot = Ogre::StringUtil::format("% 6.1f, % 6.1f, % 6.1f", 0.0f, rotation.valueDegrees() , 0.0f);
1035  LOG("Position: " + pos + ", " + rot);
1036  }
1037 
1038  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_RESET_MODE))
1039  {
1043  (App::sim_soft_reset_mode->getBool()) ? _L("Enabled soft reset mode") : _L("Enabled hard reset mode"));
1044  }
1045 }
1046 
1048 {
1049  // get new vehicle
1050  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_GET_NEW_VEHICLE))
1051  {
1053  m.payload = reinterpret_cast<void*>(new LoaderType(LT_AllBeam));
1055  }
1056 
1057  // Enter/exit truck - With a toggle delay
1058  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ENTER_OR_EXIT_TRUCK, 0.5f))
1059  {
1060  if (this->GetPlayerActor() == nullptr) // no vehicle
1061  {
1062  // find the nearest vehicle
1063  float mindist = 1000.0;
1064  ActorPtr nearest_actor = nullptr;
1065  for (ActorPtr& actor : this->GetActorManager()->GetActors())
1066  {
1067  if (!actor->ar_driveable)
1068  continue;
1069  if (actor->ar_cinecam_node[0] == NODENUM_INVALID)
1070  {
1071  LOG("cinecam missing, cannot enter the actor!");
1072  continue;
1073  }
1074  float len = 0.0f;
1075  if (this->GetPlayerCharacter())
1076  {
1077  len = actor->ar_nodes[actor->ar_cinecam_node[0]].AbsPosition.distance(this->GetPlayerCharacter()->getPosition() + Ogre::Vector3(0.0, 2.0, 0.0));
1078  }
1079  if (len < mindist)
1080  {
1081  mindist = len;
1082  nearest_actor = actor;
1083  }
1084  }
1085 
1086  if (mindist < 20.0)
1087  {
1088  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(nearest_actor))));
1089  }
1090  }
1091  else // We're in a vehicle -> If moving slowly enough, get out
1092  {
1093  if (this->GetPlayerActor()->ar_nodes[0].Velocity.squaredLength() < 1.0f ||
1094  this->GetPlayerActor()->ar_state == ActorState::NETWORKED_OK || this->GetPlayerActor()->ar_state == ActorState::NETWORKED_HIDDEN ||
1095  this->GetPlayerActor()->ar_driveable == AI)
1096  {
1097  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr())));
1098  }
1099  }
1100  }
1101 
1102  // enter next truck
1103  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ENTER_NEXT_TRUCK, 0.25f))
1104  {
1105  ActorPtr actor = this->FetchNextVehicleOnList();
1106  if (actor != this->GetPlayerActor())
1107  {
1108  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(actor))));
1109  }
1110  }
1111 
1112  // enter previous truck
1113  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ENTER_PREVIOUS_TRUCK, 0.25f))
1114  {
1115  ActorPtr actor = this->FetchPrevVehicleOnList();
1116  if (actor != this->GetPlayerActor())
1117  {
1118  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(actor))));
1119  }
1120  }
1121 
1122  // respawn last truck
1123  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_RESPAWN_LAST_TRUCK, 0.25f))
1124  {
1125  this->RespawnLastActor();
1126  }
1127 
1128  // terrain editor toggle
1130  {
1132  }
1133 
1134  // forward commands from character
1135  if (!m_player_actor)
1136  {
1137  // Find nearest actor
1138  const Ogre::Vector3 position = App::GetGameContext()->GetPlayerCharacter()->getPosition();
1139  ActorPtr nearest_actor = nullptr;
1140  float min_squared_distance = std::numeric_limits<float>::max();
1141  for (ActorPtr& actor : App::GetGameContext()->GetActorManager()->GetActors())
1142  {
1143  float squared_distance = position.squaredDistance(actor->ar_nodes[0].AbsPosition);
1144  if (squared_distance < min_squared_distance)
1145  {
1146  min_squared_distance = squared_distance;
1147  nearest_actor = actor;
1148  }
1149  }
1150 
1151  // Evaluate
1152  if (nearest_actor != nullptr &&
1153  nearest_actor->ar_import_commands &&
1154  min_squared_distance < (nearest_actor->getMinCameraRadius()*nearest_actor->getMinCameraRadius()))
1155  {
1156  // get commands
1157  for (int i = 1; i <= MAX_COMMANDS; i++) // BEWARE: commandkeys are indexed 1-MAX_COMMANDS!
1158  {
1159  int eventID = EV_COMMANDS_01 + (i - 1);
1160 
1161  nearest_actor->ar_command_key[i].playerInputValue = RoR::App::GetInputEngine()->getEventValue(eventID);
1162  }
1163  }
1164  }
1165 
1166  // AI waypoint recording
1167  if (App::GetGuiManager()->TopMenubar.ai_rec)
1168  {
1169  if (m_timer.getMilliseconds() > 1000) // Don't spam it, record every 1 sec
1170  {
1171  if (App::GetGameContext()->GetPlayerActor()) // We are in vehicle
1172  {
1173  if (App::GetGameContext()->GetPlayerActor()->getPosition().distance(prev_pos) >= 5) // Skip very close positions
1174  {
1175  ai_events waypoint;
1177  waypoint.speed = App::GetGameContext()->GetPlayerActor()->getWheelSpeed() * 3.6;
1178  if (waypoint.speed < 5)
1179  {
1180  waypoint.speed = -1;
1181  }
1182  App::GetGuiManager()->TopMenubar.ai_waypoints.push_back(waypoint);
1183  }
1185  }
1186  else // We are in feet
1187  {
1188  if (App::GetGameContext()->GetPlayerCharacter()->getPosition() != prev_pos) // Skip same positions
1189  {
1190  ai_events waypoint;
1192  App::GetGuiManager()->TopMenubar.ai_waypoints.push_back(waypoint);
1193  }
1195  }
1196  m_timer.reset();
1197  }
1198  }
1199  else
1200  {
1201  prev_pos = Ogre::Vector3::ZERO;
1202  }
1203 }
1204 
1206 {
1207 #ifdef USE_CAELUM
1208  if (App::gfx_sky_mode->getEnum<GfxSkyMode>() == GfxSkyMode::CAELUM &&
1210  {
1211  float time_factor = 1.0f;
1212 
1213  if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME))
1214  {
1215  time_factor = 1000.0f;
1216  }
1217  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME_FAST))
1218  {
1219  time_factor = 10000.0f;
1220  }
1221  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME))
1222  {
1223  time_factor = -1000.0f;
1224  }
1225  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME_FAST))
1226  {
1227  time_factor = -10000.0f;
1228  }
1229  else if (App::gfx_sky_time_cycle->getBool())
1230  {
1231  time_factor = App::gfx_sky_time_speed->getInt();
1232  }
1233 
1234  if (m_terrain->getSkyManager()->GetSkyTimeFactor() != time_factor)
1235  {
1236  m_terrain->getSkyManager()->SetSkyTimeFactor(time_factor);
1237  Str<200> msg; msg << _L("Time set to ") << m_terrain->getSkyManager()->GetPrettyTime();
1239  }
1240  }
1241 
1242 #endif // USE_CAELUM
1243  if (App::gfx_sky_mode->getEnum<GfxSkyMode>() == GfxSkyMode::SKYX &&
1245  {
1246  if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME))
1247  {
1249  }
1250  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME_FAST))
1251  {
1253  }
1254  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME))
1255  {
1257  }
1258  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME_FAST))
1259  {
1261  }
1262  else
1263  {
1265  }
1266  }
1267 }
1268 
1270 {
1272 
1273  // reload current truck
1274  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCKEDIT_RELOAD, 0.5f))
1275  {
1280  }
1281 
1282  // remove current truck
1283  if (App::GetInputEngine()->getEventBoolValue(EV_COMMON_REMOVE_CURRENT_TRUCK))
1284  {
1286  }
1287 
1288  // Front lights
1289  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_LOW_BEAMS))
1290  {
1292  // sync sidelights to lowbeams
1294  }
1295  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_CYCLE_TRUCK_LIGHTS))
1296  {
1297  // Smart cycling:
1298  // 1) all lights off
1299  // 2) sidelights on but only if any installed, otherwise skip to 3).
1300  // 3) sidelights and lowbeams on.
1301  // 4) sidelights, lowbeams and highbeams on, but only if highbeams are installed, otherwise cycle to 1).
1303  {
1305  }
1306  else if (!m_player_actor->getHeadlightsVisible())
1307  {
1310  }
1312  {
1316  }
1317  else
1318  {
1322  }
1323  }
1324  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_HIGH_BEAMS))
1325  {
1327  }
1328  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_FOG_LIGHTS))
1329  {
1331  }
1332 
1333  // Beacons
1334  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_BEACONS))
1335  {
1337  }
1338 
1339  // blinkers
1340  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_BLINK_LEFT))
1342 
1343  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_BLINK_RIGHT))
1345 
1346  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_BLINK_WARN))
1348 
1349  // custom lights
1350  for (int i = 0; i < MAX_CLIGHTS; i++)
1351  {
1352  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_LIGHTTOGGLE01 + i))
1354  }
1355 
1356  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TRUCK_REMOVE))
1357  {
1359  }
1360 
1361  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ROPELOCK))
1362  {
1364  }
1365 
1366  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_LOCK))
1367  {
1368  //m_player_actor->hookToggle(-1, HOOK_TOGGLE, -1);
1369  ActorLinkingRequest* hook_rq = new ActorLinkingRequest();
1372  hook_rq->alr_hook_action = HOOK_TOGGLE;
1374 
1375  //m_player_actor->toggleSlideNodeLock();
1376  ActorLinkingRequest* slidenode_rq = new ActorLinkingRequest();
1380  }
1381 
1382  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_AUTOLOCK))
1383  {
1384  m_player_actor->hookToggle(-2, HOOK_UNLOCK, -1); //unlock all autolocks
1385  }
1386 
1387  //strap
1388  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_SECURE_LOAD))
1389  {
1391  }
1392 
1393  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_CUSTOM_PARTICLES))
1394  {
1396  }
1397 
1398  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_DEBUG_VIEW))
1399  {
1401  // NOTE: Syncing with linked actors is done in `SyncLinkedActors()`
1402  }
1403 
1404  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_CYCLE_DEBUG_VIEWS))
1405  {
1407  // NOTE: Syncing with linked actors is done in `SyncLinkedActors()`
1408  }
1409 
1410  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_RESCUE_TRUCK, 0.5f) &&
1411  App::mp_state->getEnum<MpState>() != MpState::CONNECTED &&
1413  {
1414  ActorPtr rescuer = nullptr;
1415  for (ActorPtr& actor : App::GetGameContext()->GetActorManager()->GetActors())
1416  {
1417  if (actor->ar_rescuer_flag)
1418  {
1419  rescuer = actor;
1420  }
1421  }
1422  if (rescuer == nullptr)
1423  {
1424  App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("No rescue truck found!"), "error.png");
1425  }
1426  else
1427  {
1428  App::GetGameContext()->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(rescuer))));
1429  }
1430  }
1431 
1432  // parking brake
1433  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TRAILER_PARKING_BRAKE))
1434  {
1439  }
1440 
1441  // videocam
1442  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_VIDEOCAMERA, 0.5f))
1443  {
1445  {
1447  }
1448  else
1449  {
1451  }
1452  }
1453 
1454  // enter/exit truck - Without a delay: the vehicle must brake like braking normally
1455  if (App::GetInputEngine()->getEventBoolValue(EV_COMMON_ENTER_OR_EXIT_TRUCK))
1456  {
1457  if (m_player_actor->ar_driveable != AI)
1458  {
1459  m_player_actor->ar_brake = 0.66f;
1460  }
1461  }
1462 
1463  // toggle physics
1464  if (RoR::App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_PHYSICS))
1465  {
1466  // NOTE: Syncing with linked actors is done in `SyncLinkedActors()`
1468  }
1469 
1470  // reset truck
1471  if (App::GetInputEngine()->getEventBoolValue(EV_COMMON_RESET_TRUCK))
1472  {
1477  }
1478 
1479  // all commands
1480  for (int i = 1; i <= MAX_COMMANDS; i++) // BEWARE: commandkeys are indexed 1-MAX_COMMANDS!
1481  {
1482  int eventID = EV_COMMANDS_01 + (i - 1);
1483 
1484  m_player_actor->ar_command_key[i].playerInputValue = RoR::App::GetInputEngine()->getEventValue(eventID);
1485 
1486  for (auto id: App::GetGuiManager()->VehicleButtons.GetCommandEventID())
1487  {
1488  if (id == eventID)
1489  {
1490  m_player_actor->ar_command_key[i].playerInputValue = 1.f;
1491  }
1492  }
1493  }
1494 
1495  if (RoR::App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_FORWARDCOMMANDS))
1496  {
1499  {
1500  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("forwardcommands enabled"), "information.png");
1501  }
1502  else
1503  {
1504  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("forwardcommands disabled"), "information.png");
1505  }
1506  }
1507 
1508  if (RoR::App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_IMPORTCOMMANDS))
1509  {
1512  {
1513  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("importcommands enabled"), "information.png");
1514  }
1515  else
1516  {
1517  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("importcommands disabled"), "information.png");
1518  }
1519  }
1520 
1521  if (m_player_actor->getReplay())
1522  {
1524  }
1525 }
1526 
1527 // Internal heper for UpdateAirplaneInputEvents()
1528 void smoothValue(float& ref, float value, float rate)
1529 {
1530  if (value < -1)
1531  value = -1;
1532  if (value > 1)
1533  value = 1;
1534  // smooth!
1535  if (ref > value)
1536  {
1537  ref -= rate;
1538  if (ref < value)
1539  ref = value;
1540  }
1541  else if (ref < value)
1542  ref += rate;
1543 }
1544 
1546 {
1548  return;
1549 
1550  // autopilot
1552  {
1554  }
1555 
1556  // steer
1557  float commandrate = 4.0;
1560  float sum_steer = -tmp_left + tmp_right;
1561  smoothValue(m_player_actor->ar_aileron, sum_steer, dt * commandrate);
1564 
1565  // pitch
1567  float tmp_pitch_down = App::GetInputEngine()->getEventValue(EV_AIRPLANE_ELEVATOR_DOWN);
1568  float sum_pitch = tmp_pitch_down - tmp_pitch_up;
1569  smoothValue(m_player_actor->ar_elevator, sum_pitch, dt * commandrate);
1570 
1571  // rudder
1572  float tmp_rudder_left = App::GetInputEngine()->getEventValue(EV_AIRPLANE_RUDDER_LEFT);
1573  float tmp_rudder_right = App::GetInputEngine()->getEventValue(EV_AIRPLANE_RUDDER_RIGHT);
1574  float sum_rudder = tmp_rudder_left - tmp_rudder_right;
1575  smoothValue(m_player_actor->ar_rudder, sum_rudder, dt * commandrate);
1576 
1577  // brakes
1579  {
1581  }
1582 
1583  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_PARKING_BRAKE))
1584  {
1586  }
1587 
1588  // reverse
1589  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_REVERSE))
1590  {
1591  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1592  {
1594  }
1595  }
1596 
1597  // engines
1598  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_TOGGLE_ENGINES))
1599  {
1600  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1601  {
1603  }
1604  }
1605 
1606  // flaps
1607  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_FLAPS_NONE))
1608  {
1609  if (m_player_actor->ar_aerial_flap > 0)
1610  {
1612  }
1613  }
1614 
1615  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_FLAPS_FULL))
1616  {
1617  if (m_player_actor->ar_aerial_flap < 5)
1618  {
1620  }
1621  }
1622 
1623  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_FLAPS_LESS))
1624  {
1625  if (m_player_actor->ar_aerial_flap > 0)
1626  {
1628  }
1629  }
1630 
1632  {
1633  if (m_player_actor->ar_aerial_flap < 5)
1634  {
1636  }
1637  }
1638 
1639  // airbrakes
1641  {
1643  {
1645  }
1646  }
1647 
1649  {
1651  {
1653  }
1654  }
1655 
1657  {
1659  {
1661  }
1662  }
1663 
1665  {
1667  {
1669  }
1670  }
1671 
1672  // throttle
1674  if (tmp_throttle > 0)
1675  {
1676  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1677  {
1678  m_player_actor->ar_aeroengines[i]->setThrottle(tmp_throttle);
1679  }
1680  }
1681 
1682  if (App::GetInputEngine()->isEventDefined(EV_AIRPLANE_THROTTLE_AXIS))
1683  {
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_DOWN, 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_UP, 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_NO, 0.1f))
1708  {
1709  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1710  {
1712  }
1713  }
1714 
1715  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_THROTTLE_FULL, 0.1f))
1716  {
1717  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1718  {
1720  }
1721  }
1722 
1723  // autopilot
1725  {
1726  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1727  {
1729  }
1730  }
1731 }
1732 
1734 {
1735  // throttle
1736  if (App::GetInputEngine()->isEventDefined(EV_BOAT_THROTTLE_AXIS))
1737  {
1739  // use negative values also!
1740  f = f * 2 - 1;
1741  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1743  }
1744 
1745  if (App::GetInputEngine()->getEventBoolValueBounce(EV_BOAT_THROTTLE_DOWN, 0.1f))
1746  {
1747  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1749  }
1750 
1751  if (App::GetInputEngine()->getEventBoolValueBounce(EV_BOAT_THROTTLE_UP, 0.1f))
1752  {
1753  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1755  }
1756 
1757  // steer
1758  float tmp_steer_left = App::GetInputEngine()->getEventValue(EV_BOAT_STEER_LEFT);
1759  float tmp_steer_right = App::GetInputEngine()->getEventValue(EV_BOAT_STEER_RIGHT);
1761  float sum_steer = (tmp_steer_left - tmp_steer_right) * dt;
1762  // do not center the rudder!
1763  if (fabs(sum_steer) > 0 && stime <= 0)
1764  {
1765  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1767  }
1768 
1770  {
1773  sum_steer = (tmp_steer_left - tmp_steer_right);
1774  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1775  m_player_actor->ar_screwprops[i]->setRudder(sum_steer);
1776  }
1777 
1778  // rudder
1780  {
1781  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1783  }
1784 
1785  // reverse
1787  {
1788  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1790  }
1791 }
1792 
1794 {
1796  return;
1797 #ifdef USE_ANGELSCRIPT
1799  return;
1800 #endif // USE_ANGELSCRIPT
1801 
1802  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_LEFT_MIRROR_LEFT))
1804 
1805  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_LEFT_MIRROR_RIGHT))
1807 
1808  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_RIGHT_MIRROR_LEFT))
1810 
1811  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_RIGHT_MIRROR_RIGHT))
1813 
1814  // steering
1819 
1820  float sum = -std::max(tmp_left_digital, tmp_left_analog) + std::max(tmp_right_digital, tmp_right_analog);
1821 
1822  m_player_actor->ar_hydro_dir_command = Ogre::Math::Clamp(sum, -1.0f, 1.0f);
1823 
1824  m_player_actor->ar_hydro_speed_coupling = (tmp_left_digital >= tmp_left_analog) && (tmp_right_digital >= tmp_right_analog);
1825 
1827  {
1829  }
1830 
1831  if (m_player_actor->ar_brake > 1.0f / 6.0f)
1832  {
1834  }
1835  else
1836  {
1838  }
1839 
1840  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_INTER_AXLE_DIFF))
1841  {
1844  }
1845 
1846  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_INTER_WHEEL_DIFF))
1847  {
1850  }
1851 
1852  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_TCASE_4WD_MODE))
1853  {
1856  }
1857 
1858  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_TCASE_GEAR_RATIO))
1859  {
1862  }
1863 
1865  {
1866  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_HORN))
1867  {
1868  SOUND_TOGGLE(m_player_actor, SS_TRIG_HORN); // Police siren
1869  }
1870  }
1871  else
1872  {
1873  if (App::GetInputEngine()->getEventBoolValue(EV_TRUCK_HORN) || App::GetGuiManager()->VehicleButtons.GetHornButtonState())
1874  {
1876  }
1877  else
1878  {
1880  }
1881  }
1882 
1883  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_PARKING_BRAKE) &&
1884  !App::GetInputEngine()->getEventBoolValue(EV_TRUCK_TRAILER_PARKING_BRAKE))
1885  {
1887  }
1888 
1889  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_ANTILOCK_BRAKE))
1890  {
1892  }
1893 
1894  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TRACTION_CONTROL))
1895  {
1897  }
1898 
1899  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_CRUISE_CONTROL))
1900  {
1902  }
1903 
1905  {
1907  }
1908 
1910  for (ActorPtr linked_actor : m_player_actor->ar_linked_actors)
1911  {
1912  linked_actor->UpdatePropAnimInputEvents();
1913  }
1914 }
1915 
RoR::MSG_EDI_MODIFY_PROJECT_REQUESTED
@ MSG_EDI_MODIFY_PROJECT_REQUESTED
Payload = RoR::UpdateProjectRequest* (owner)
Definition: Application.h:139
RoR::Actor::setHighBeamsVisible
void setHighBeamsVisible(bool val)
Definition: Actor.h:182
ROR_ASSERT
#define ROR_ASSERT(_EXPR)
Definition: Application.h:40
GameContext.h
Game state manager and message-queue provider.
RoR::CameraManager::UpdateInputEvents
void UpdateInputEvents(float dt)
Definition: CameraManager.cpp:242
RoR::EV_COMMON_SCREENSHOT
@ EV_COMMON_SCREENSHOT
take a screenshot
Definition: InputEngine.h:261
RoR::EV_AIRPLANE_RUDDER_RIGHT
@ EV_AIRPLANE_RUDDER_RIGHT
rudder right
Definition: InputEngine.h:91
MAX_COMMANDS
static const int MAX_COMMANDS
maximum number of commands per actor
Definition: SimConstants.h:28
RoR::Character::getRotation
Ogre::Radian getRotation() const
Definition: Character.h:54
RoR::EV_AIRPLANE_THROTTLE
@ EV_AIRPLANE_THROTTLE
Definition: InputEngine.h:94
RoR::CacheSystem::LoadAssetPack
void LoadAssetPack(CacheEntryPtr &t_dest, Ogre::String const &assetpack_filename)
Adds asset pack to the requesting cache entry's resource group.
Definition: CacheSystem.cpp:1263
RoR::App::gfx_polygon_mode
CVar * gfx_polygon_mode
Definition: Application.cpp:216
RoR::App::GetNetwork
Network * GetNetwork()
Definition: Application.cpp:284
RoR::Character::setPosition
void setPosition(Ogre::Vector3 position)
Definition: Character.cpp:85
RoR::ModifyProjectRequest::mpr_subject
std::string mpr_subject
Definition: CacheSystem.h:271
RoR::Actor::getMinCameraRadius
float getMinCameraRadius()
Definition: Actor.h:246
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:388
RoR::ActorSpawnRequest::asr_net_color
int asr_net_color
Definition: SimData.h:818
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:91
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:111
RoR::GUI::GameSettings::SetVisible
void SetVisible(bool v)
Definition: GUI_GameSettings.cpp:454
RoR::Terrn2Def
Definition: Terrn2FileFormat.h:48
RoR::GfxScene::GetEnvMap
GfxEnvmap & GetEnvMap()
Definition: GfxScene.h:62
RoR::MACHINE
@ MACHINE
its a machine
Definition: SimData.h:107
RoR::EV_COMMON_RESET_TRUCK
@ EV_COMMON_RESET_TRUCK
reset truck to original starting position
Definition: InputEngine.h:257
OverlayWrapper.h
RoR::GameContext::ModifyActor
void ModifyActor(ActorModifyRequest &rq)
Definition: GameContext.cpp:359
RoR::Actor::ar_physics_paused
bool ar_physics_paused
Sim state.
Definition: Actor.h:474
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:136
RoR::InputSourceType::IST_ANALOG
@ IST_ANALOG
RoR::TRUCK
@ TRUCK
its a truck (or other land vehicle)
Definition: SimData.h:104
RoR::HOOK_TOGGLE
@ HOOK_TOGGLE
Definition: SimData.h:71
RoR::Actor::ar_filename
std::string ar_filename
Attribute; filled at spawn.
Definition: Actor.h:416
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:518
RoR::GUIManager::FrictionSettings
GUI::FrictionSettings FrictionSettings
Definition: GUIManager.h:117
RoR::EV_COMMON_TOGGLE_TRUCK_BEACONS
@ EV_COMMON_TOGGLE_TRUCK_BEACONS
toggle truck beacons
Definition: InputEngine.h:273
RoR::EV_TRUCK_RIGHT_MIRROR_LEFT
@ EV_TRUCK_RIGHT_MIRROR_LEFT
Definition: InputEngine.h:329
RoR::EV_TRUCK_BLINK_RIGHT
@ EV_TRUCK_BLINK_RIGHT
toggle right direction indicator (blinker)
Definition: InputEngine.h:304
RoR::Actor::toggleAxleDiffMode
void toggleAxleDiffMode()
Definition: Actor.cpp:1354
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:180
RoR::LT_AddonPart
@ LT_AddonPart
Definition: Application.h:292
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:815
RoR::CacheEntryPtr
RefCountingObjectPtr< CacheEntry > CacheEntryPtr
Definition: ForwardDeclarations.h:190
RoR::node_t::AbsPosition
Ogre::Vector3 AbsPosition
absolute position in the world (shaky)
Definition: SimData.h:305
RoR::EV_BOAT_STEER_LEFT_AXIS
@ EV_BOAT_STEER_LEFT_AXIS
steer left (analog value!)
Definition: InputEngine.h:104
VehicleAI.h
Simple waypoint AI.
RoR::App::GetGuiManager
GUIManager * GetGuiManager()
Definition: Application.cpp:269
RoR::Actor::ar_parking_brake
bool ar_parking_brake
Definition: Actor.h:405
RoR::App::sim_soft_reset_mode
CVar * sim_soft_reset_mode
Definition: Application.cpp:109
RoRnet::UserInfo
Definition: RoRnet.h:168
RoR::CacheEntry::skin_def
std::shared_ptr< RoR::SkinDef > skin_def
Cached skin info, added on first use or during cache rebuild.
Definition: CacheSystem.h:92
RoR::ActorLinkingRequest
Estabilishing a physics linkage between 2 actors modifies a global linkage table and triggers immedia...
Definition: SimData.h:864
RoR::EV_COMMON_TOGGLE_RESET_MODE
@ EV_COMMON_TOGGLE_RESET_MODE
toggle truck reset truck mode (soft vs. hard)
Definition: InputEngine.h:258
DashBoardManager.h
RoR::Actor::ar_linked_actors
ActorPtrVec ar_linked_actors
Sim state; other actors linked using 'hooks'.
Definition: Actor.h:306
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:367
RoR::CacheSystem::FindEntryByFilename
CacheEntryPtr FindEntryByFilename(RoR::LoaderType type, bool partial, const std::string &filename)
Returns NULL if none found.
Definition: CacheSystem.cpp:184
z
float z
Definition: (ValueTypes) quaternion.h:7
RoR::Actor::ar_num_nodes
int ar_num_nodes
Definition: Actor.h:275
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:290
RoR::GfxScene::RemoveGfxActor
void RemoveGfxActor(RoR::GfxActor *gfx_actor)
Definition: GfxScene.cpp:316
GUI_TopMenubar.h
RoR::HOOK_UNLOCK
@ HOOK_UNLOCK
Definition: SimData.h:70
RoR::GameContext::m_last_section_config
Ogre::String m_last_section_config
Definition: GameContext.h:200
RoR::App::GetAppContext
AppContext * GetAppContext()
Definition: Application.cpp: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:183
RoR::GfxActor::CycleDebugViews
void CycleDebugViews()
Definition: GfxActor.cpp:1546
RoR::Actor::toggleWheelDiffMode
void toggleWheelDiffMode()
Definition: Actor.cpp:1346
format
Truck file format(technical spec)
RoR::MSG_SIM_UNPAUSE_REQUESTED
@ MSG_SIM_UNPAUSE_REQUESTED
Definition: Application.h:106
RoR::EV_COMMON_AUTOLOCK
@ EV_COMMON_AUTOLOCK
unlock autolock hook node
Definition: InputEngine.h:226
RoR::GameContext::~GameContext
~GameContext()
Definition: GameContext.cpp:58
RoR::SS_TRIG_BRAKE
@ SS_TRIG_BRAKE
Definition: SoundScriptManager.h:60
RoR::Terrain::getSkyManager
SkyManager * getSkyManager()
Definition: Terrain.cpp:535
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:1269
RoR::ActorLinkingRequest::alr_type
ActorLinkingRequestType alr_type
Definition: SimData.h:867
RoR::GameContext::GetPlayerCharacter
Character * GetPlayerCharacter()
Definition: GameContext.cpp:886
RoR::CameraManager::NotifyVehicleChanged
void NotifyVehicleChanged(ActorPtr new_vehicle)
Definition: CameraManager.cpp:629
RoR::EV_COMMON_ENTER_PREVIOUS_TRUCK
@ EV_COMMON_ENTER_PREVIOUS_TRUCK
enter previous truck
Definition: InputEngine.h:231
RoR::CVar::getBool
bool getBool() const
Definition: CVar.h:98
RoR::TRIGGER_EVENT_ASYNC
void TRIGGER_EVENT_ASYNC(scriptEvents type, int arg1, int arg2ex=0, int arg3ex=0, int arg4ex=0, std::string arg5ex="", std::string arg6ex="", std::string arg7ex="", std::string arg8ex="")
Asynchronously (via MSG_SIM_SCRIPT_EVENT_TRIGGERED) invoke script function eventCallbackEx(),...
Definition: ScriptEngine.h:51
RoR::Actor::ar_brake
Ogre::Real ar_brake
Physics state; braking intensity.
Definition: Actor.h:390
RoR::ActorManager::FindActorInsideBox
ActorPtr FindActorInsideBox(Collisions *collisions, const Ogre::String &inst, const Ogre::String &box)
Definition: ActorManager.cpp:848
RoR::Actor::ar_engine
EngineSim * ar_engine
Definition: Actor.h:370
RoR::GameContext::OnLoaderGuiApply
void OnLoaderGuiApply(RoR::LoaderType type, CacheEntryPtr entry, std::string sectionconfig)
GUI callback.
Definition: GameContext.cpp:697
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::LogFormat
void LogFormat(const char *format,...)
Improved logging utility. Uses fixed 2Kb buffer.
Definition: Application.cpp:418
RoR::FlareType::SIDELIGHT
@ SIDELIGHT
RoR::GameContext::m_last_tuneup_selection
CacheEntryPtr m_last_tuneup_selection
Definition: GameContext.h:199
RoR::Collisions::getPosition
Ogre::Vector3 getPosition(const Ogre::String &inst, const Ogre::String &box)
Definition: Collisions.cpp:1134
RoR::Actor::toggleCustomParticles
void toggleCustomParticles()
Definition: Actor.cpp:3191
RoR::Actor::ar_toggle_ropes
bool ar_toggle_ropes
Sim state.
Definition: Actor.h:472
AppContext.h
System integration layer; inspired by OgreBites::ApplicationContext.
Console.h
RoR::Console::putMessage
void putMessage(MessageArea area, MessageType type, std::string const &msg, std::string icon="")
Definition: Console.cpp:97
RoR::ActorManager::FetchActorDef
RigDef::DocumentPtr FetchActorDef(std::string filename, bool predefined_on_terrain=false)
Definition: ActorManager.cpp:1275
RoR::GUIManager::GameControls
GUI::GameControls GameControls
Definition: GUIManager.h:119
RoR::EV_COMMON_GET_NEW_VEHICLE
@ EV_COMMON_GET_NEW_VEHICLE
get new vehicle
Definition: InputEngine.h:244
RoR::GameContext::TeleportPlayer
void TeleportPlayer(float x, float z)
Definition: GameContext.cpp:894
RoR::GameContext::UpdateActors
void UpdateActors()
Definition: GameContext.cpp:593
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:406
RoR::EV_TRUCK_TRACTION_CONTROL
@ EV_TRUCK_TRACTION_CONTROL
toggle antilockbrake system
Definition: InputEngine.h:369
RoR::GameContext::RespawnLastActor
void RespawnLastActor()
Definition: GameContext.cpp:604
RoR::LT_Load
@ LT_Load
Definition: Application.h:288
RoR::EV_BOAT_THROTTLE_DOWN
@ EV_BOAT_THROTTLE_DOWN
decrease throttle
Definition: InputEngine.h:108
RoR::LT_Airplane
@ LT_Airplane
Definition: Application.h:285
RoR::ActorManager::FetchPreviousVehicleOnList
const ActorPtr & FetchPreviousVehicleOnList(ActorPtr player, ActorPtr prev_player)
Definition: ActorManager.cpp:1012
RoR::ActorSpawnRequest::asr_working_tuneup
TuneupDefPtr asr_working_tuneup
Only filled when editing tuneup via Tuning menu.
Definition: SimData.h:814
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:261
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:108
RoR::Actor::ar_aerial_flap
int ar_aerial_flap
Sim state; state of aircraft flaps (values: 0-5)
Definition: Actor.h:412
RoR::LT_Car
@ LT_Car
Definition: Application.h:283
RoR::Screwprop::setRudder
void setRudder(float val)
Definition: ScrewProp.cpp:89
RoR::ActorState::LOCAL_SIMULATED
@ LOCAL_SIMULATED
simulated (local) actor
RoR::App::sim_state
CVar * sim_state
Definition: Application.cpp:96
RoR::CacheEntry::sectionconfigs
std::vector< Ogre::String > sectionconfigs
Definition: CacheSystem.h:142
RoR::CameraManager::GetCameraNode
Ogre::SceneNode * GetCameraNode()
Definition: CameraManager.h:63
Utils.h
RoR::ActorSpawnRequest::asr_filename
std::string asr_filename
Definition: SimData.h:807
RoR::NOT_DRIVEABLE
@ NOT_DRIVEABLE
not drivable at all
Definition: SimData.h:103
RoR::GUI::MainSelector::Show
void Show(LoaderType type, std::string const &filter_guid="", CacheEntryPtr advertised_entry=nullptr)
Definition: GUI_MainSelector.cpp:65
smoothValue
void smoothValue(float &ref, float value, float rate)
Definition: GameContext.cpp:1528
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:1362
RoR::GameContextSB::simbuf_player_actor
ActorPtr simbuf_player_actor
Definition: SimBuffers.h:201
RoR::Actor::ar_dashboard
DashBoardManager * ar_dashboard
Definition: Actor.h:424
RoR::Actor::tractioncontrolToggle
void tractioncontrolToggle()
Definition: Actor.cpp:3747
RoR::CacheEntry::description
Ogre::String description
Definition: CacheSystem.h:105
RoR::LT_Extension
@ LT_Extension
Definition: Application.h:289
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:715
RoR::collision_box_t
Definition: SimData.h:716
RefCountingObjectPtr< CacheEntry >
RoR::MSG_APP_DISPLAY_WINDOWED_REQUESTED
@ MSG_APP_DISPLAY_WINDOWED_REQUESTED
Definition: Application.h:81
RoR::InputEngine::getEventValue
float getEventValue(int eventID, bool pure=false, InputSourceType valueSource=InputSourceType::IST_ANY)
valueSource: IST_ANY=digital and analog devices, IST_DIGITAL=only digital, IST_ANALOG=only analog
Definition: InputEngine.cpp:911
RoR::Actor::beaconsToggle
void beaconsToggle()
Definition: Actor.cpp:3756
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:470
RoR::Actor::ar_left_mirror_angle
float ar_left_mirror_angle
Sim state; rear view mirror angle.
Definition: Actor.h:407
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::App::GetScriptEngine
ScriptEngine * GetScriptEngine()
Definition: Application.cpp:279
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:408
RoR::GUI::FrictionSettings::AnalyzeTerrain
void AnalyzeTerrain()
Definition: GUI_FrictionSettings.cpp:138
RoR::Console::CONSOLE_SYSTEM_NOTICE
@ CONSOLE_SYSTEM_NOTICE
Definition: Console.h:51
RoR::GUIManager::RepositorySelector
GUI::RepositorySelector RepositorySelector
Definition: GUIManager.h:120
RoR::ActorSpawnRequest
Definition: SimData.h:790
EngineSim.h
RoR::SkyXManager::GetSkyX
SkyX::SkyX * GetSkyX()
Definition: SkyXManager.h:52
RoR::Actor::SoftReset
void SoftReset()
Definition: Actor.cpp:1572
RoR::SimGearboxMode::AUTO
@ AUTO
Automatic shift.
RoR::AeroEngine::flipStart
virtual void flipStart()=0
RoR::Terrn2Parser::LoadTerrn2
bool LoadTerrn2(Terrn2Def &def, Ogre::DataStreamPtr &ds)
Definition: Terrn2FileFormat.cpp:38
RoR::App::sim_tuning_enabled
CVar * sim_tuning_enabled
Definition: Application.cpp:112
RoR::MSG_APP_DISPLAY_FULLSCREEN_REQUESTED
@ MSG_APP_DISPLAY_FULLSCREEN_REQUESTED
Definition: Application.h:80
RoR::AppContext::GetForceFeedback
RoR::ForceFeedback & GetForceFeedback()
Definition: AppContext.h:68
RoR::GameContext::SpawnActor
ActorPtr SpawnActor(ActorSpawnRequest &rq)
Definition: GameContext.cpp:191
RoR::Terrain::GetHeightAt
float GetHeightAt(float x, float z)
Definition: Terrain.cpp:525
RoR::LT_Boat
@ LT_Boat
Definition: Application.h:284
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:844
RoR::Actor::getReplay
Replay * getReplay()
Definition: Actor.cpp:4522
RoR::GameContext::UpdateGlobalInputEvents
void UpdateGlobalInputEvents()
Definition: GameContext.cpp:932
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:282
RoR::GfxActor::GetVideoCamState
VideoCamState GetVideoCamState() const
Definition: GfxActor.h:137
RoR::ActorLinkingRequest::alr_hook_action
HookAction alr_hook_action
Definition: SimData.h:870
RoR::ActorSpawnRequest::asr_config
Ogre::String asr_config
Definition: SimData.h:808
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:320
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:322
RoR::EngineSim::DRIVE
@ DRIVE
Definition: EngineSim.h:133
RoR::EV_TRUCK_TRAILER_PARKING_BRAKE
@ EV_TRUCK_TRAILER_PARKING_BRAKE
toggle trailer parking brake
Definition: InputEngine.h:328
RoR::ActorManager::UpdateSleepingState
void UpdateSleepingState(ActorPtr player_actor, float dt)
Definition: ActorManager.cpp:779
RoR::GameContext::ChainMessage
void ChainMessage(Message m)
Add to last pushed message's chain.
Definition: GameContext.cpp:73
RoR::EV_AIRPLANE_AIRBRAKES_LESS
@ EV_AIRPLANE_AIRBRAKES_LESS
Definition: InputEngine.h:78
RoR::EV_COMMON_CYCLE_TRUCK_LIGHTS
@ EV_COMMON_CYCLE_TRUCK_LIGHTS
cycle truck front light mode (off -> running light -> low beams -> off).
Definition: InputEngine.h:274
RoR::GUI::TopMenubar::ai_dname2
Ogre::String ai_dname2
Definition: GUI_TopMenubar.h: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:321
RoR::Actor::getMinHeight
float getMinHeight(bool skip_virtual_nodes=true)
Definition: Actor.cpp:1507
RoR::GUIManager::MultiplayerSelector
GUI::MultiplayerSelector MultiplayerSelector
Definition: GUIManager.h:112
RoR::Actor::ar_airbrake_intensity
int ar_airbrake_intensity
Physics state; values 0-5.
Definition: Actor.h:418
RoR::Str< 200 >
RoR::EV_BOAT_REVERSE
@ EV_BOAT_REVERSE
no thrust
Definition: InputEngine.h:102
RoR::GUI::RepositorySelector::SetVisible
void SetVisible(bool visible)
Definition: GUI_RepositorySelector.cpp:1238
RoR::GameContext::LoadTerrain
bool LoadTerrain(std::string const &filename_part)
Definition: GameContext.cpp:112
RoR::ActorModifyRequest
Definition: SimData.h:828
RoR::GameContext::PopMessage
Message PopMessage()
Definition: GameContext.cpp:96
RoR::ScriptEngine::unloadScript
void unloadScript(ScriptUnitId_t unique_id)
Unloads a script.
Definition: ScriptEngine.cpp:991
RoR::MSG_SIM_SEAT_PLAYER_REQUESTED
@ MSG_SIM_SEAT_PLAYER_REQUESTED
Payload = RoR::ActorPtr (owner) | nullptr.
Definition: Application.h:113
RoR::EV_TRUCK_LIGHTTOGGLE01
@ EV_TRUCK_LIGHTTOGGLE01
toggle custom light 1
Definition: InputEngine.h:316
CacheSystem.h
A database of user-installed content alias 'mods' (vehicles, terrains...)
RoR::GameContext::m_player_actor
ActorPtr m_player_actor
Actor (vehicle or machine) mounted and controlled by player.
Definition: GameContext.h:193
RoR::Collisions::getBox
collision_box_t * getBox(const Ogre::String &inst, const Ogre::String &box)
Definition: Collisions.cpp:1158
RoR::EV_TRUCK_LEFT_MIRROR_LEFT
@ EV_TRUCK_LEFT_MIRROR_LEFT
Definition: InputEngine.h:314
RoR::ActorSpawnRequest::asr_tuneup_entry
CacheEntryPtr asr_tuneup_entry
Only filled when user selected a saved/downloaded .tuneup mod in SelectorUI.
Definition: SimData.h:813
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:480
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:1071
RoR::DashBoardManager::setVisible3d
void setVisible3d(bool visibility)
Definition: DashBoardManager.cpp:226
RoR::GameContext::GameContext
GameContext()
Definition: GameContext.cpp:53
RoR::ActorSpawnRequest::asr_cache_entry
CacheEntryPtr asr_cache_entry
Optional, overrides 'asr_filename' and 'asr_cache_entry_num'.
Definition: SimData.h:806
RoR::CacheQueryResult
Definition: CacheSystem.h:162
ScriptEngine.h
RoR::Actor::getTyrePressure
TyrePressure & getTyrePressure()
Definition: Actor.h:212
RoR::GameContext::DeleteActor
void DeleteActor(ActorPtr actor)
Definition: GameContext.cpp:419
RoR::GameContext::PushMessage
void PushMessage(Message m)
Doesn't guarantee order! Use ChainMessage() if order matters.
Definition: GameContext.cpp:66
RoR::App::app_state
CVar * app_state
Definition: Application.cpp:79
RoR::ActorManager::GetLocalActors
std::vector< ActorPtr > GetLocalActors()
Definition: ActorManager.cpp:1361
RoR::ScriptUnitId_t
int ScriptUnitId_t
Unique sequentially generated ID of a loaded and running scriptin session. Use ScriptEngine::getScrip...
Definition: ForwardDeclarations.h:40
RoR::EV_AIRPLANE_TOGGLE_ENGINES
@ EV_AIRPLANE_TOGGLE_ENGINES
switch all engines on / off
Definition: InputEngine.h:100
RoR::EngineSim::UpdateInputEvents
void UpdateInputEvents(float dt)
Definition: EngineSim.cpp:1263
RoR::Character
Definition: Character.h:40
RoR::Actor::getSectionConfig
Ogre::String getSectionConfig()
Definition: Actor.h:222
RoR::ActorLinkingRequestType::HOOK_ACTION
@ HOOK_ACTION
RoR::Str::ToCStr
const char * ToCStr() const
Definition: Str.h:46
RoR::SS_TRIG_AIR
@ SS_TRIG_AIR
Definition: SoundScriptManager.h:68
RoR::ActorState::LOCAL_SLEEPING
@ LOCAL_SLEEPING
sleeping (local) actor
RoR::Autopilot::disconnect
void disconnect()
Definition: AutoPilot.cpp:70
RoR::Actor::setFogLightsVisible
void setFogLightsVisible(bool val)
Definition: Actor.h:184
RoR::Actor::SyncReset
void SyncReset(bool reset_position)
this one should be called only synchronously (without physics running in background)
Definition: Actor.cpp:1596
RoR::Actor::antilockbrakeToggle
void antilockbrakeToggle()
Definition: Actor.cpp:3738
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:466
RoR::Actor::getHeadlightsVisible
bool getHeadlightsVisible() const
Definition: Actor.h:179
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:297
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:420
RoR::GameContext::m_last_cache_selection
CacheEntryPtr m_last_cache_selection
Vehicle/load.
Definition: GameContext.h:197
RoR::EV_TRUCK_TOGGLE_TCASE_4WD_MODE
@ EV_TRUCK_TOGGLE_TCASE_4WD_MODE
toggle the transfer case 4wd mode
Definition: InputEngine.h:366
GfxScene.h
SkyX::SkyX::setTimeMultiplier
void setTimeMultiplier(const Ogre::Real &TimeMultiplier)
Set time multiplier.
Definition: SkyX.h:166
RoR::GameContext::SetPrevPlayerActor
void SetPrevPlayerActor(ActorPtr actor)
Definition: GameContext.cpp:828
RoR::EV_TRUCK_TOGGLE_VIDEOCAMERA
@ EV_TRUCK_TOGGLE_VIDEOCAMERA
toggle videocamera update
Definition: InputEngine.h:368
RoR::BLINK_RIGHT
@ BLINK_RIGHT
Definition: SimData.h:136
RoR::MSG_GUI_OPEN_SELECTOR_REQUESTED
@ MSG_GUI_OPEN_SELECTOR_REQUESTED
Payload = LoaderType* (owner), Description = GUID | empty.
Definition: Application.h:123
RoR::BLINK_WARN
@ BLINK_WARN
Definition: SimData.h:137
SOUND_START
#define SOUND_START(_ACTOR_, _TRIG_)
Definition: SoundScriptManager.h:35
RoR::LT_Vehicle
@ LT_Vehicle
Definition: Application.h:281
RoR::GameContext::prev_pos
Ogre::Vector3 prev_pos
Definition: GameContext.h:212
RoR::LT_Trailer
@ LT_Trailer
Definition: Application.h:286
RoR::LoaderType
LoaderType
< Search mode for ModCache::Query() & Operation mode for GUI::MainSelector
Definition: Application.h:277
RoR::MSG_GUI_REFRESH_TUNING_MENU_REQUESTED
@ MSG_GUI_REFRESH_TUNING_MENU_REQUESTED
Definition: Application.h:130
RoR::InputEngine::isEventDefined
bool isEventDefined(int eventID)
Definition: InputEngine.cpp:861
RoR::OverlayWrapper::showDashboardOverlays
void showDashboardOverlays(bool show, ActorPtr actor)
Definition: OverlayWrapper.cpp:375
RoR::ModifyProjectRequest::mpr_target_actor
ActorPtr mpr_target_actor
Definition: CacheSystem.h:267
RoR::InputEngine::getEventBoolValue
bool getEventBoolValue(int eventID)
Definition: InputEngine.cpp:710
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:471
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:79
RoR::Character::getPosition
Ogre::Vector3 getPosition()
Definition: Character.cpp:92
RoR::AIRPLANE
@ AIRPLANE
its an airplane
Definition: SimData.h:105
RoR::Actor::ar_autopilot
Autopilot * ar_autopilot
Definition: Actor.h:373
RoR::Actor::getSideLightsVisible
bool getSideLightsVisible() const
Definition: Actor.h:177
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:174
RoR::AppState::SIMULATION
@ SIMULATION
RoR::Actor::ar_sleep_counter
float ar_sleep_counter
Sim state; idle time counter.
Definition: Actor.h:403
RoR::Message::chain
std::vector< Message > chain
Posted after the message is processed.
Definition: GameContext.h:60
GUI_VehicleButtons.h
RoR::EV_BOAT_THROTTLE_AXIS
@ EV_BOAT_THROTTLE_AXIS
throttle axis. Only use this if you have fitting hardware :) (i.e. a Slider)
Definition: InputEngine.h:107
RoR::Actor::getHeightAboveGroundBelow
float getHeightAboveGroundBelow(float height, bool skip_virtual_nodes=true)
Definition: Actor.cpp:1547
RoR::Actor::ar_num_screwprops
int ar_num_screwprops
Definition: Actor.h:323
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:820
RoR::Terrain::dispose
void dispose()
Definition: Terrain.cpp:78
RoR::BLINK_LEFT
@ BLINK_LEFT
Definition: SimData.h:135
RoR::ActorSpawnRequest::Origin::TERRN_DEF
@ TERRN_DEF
Preloaded with terrain.
RoR::Screwprop::getRudder
float getRudder()
Definition: ScrewProp.cpp:106
RoR::ActorSpawnRequest::asr_terrn_machine
bool asr_terrn_machine
This is a fixed machinery.
Definition: SimData.h:823
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:812
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:847
RoR::App::gfx_sky_mode
CVar * gfx_sky_mode
Definition: Application.cpp:219
RoR::Actor::hookToggle
void hookToggle(int group=-1, HookAction mode=HOOK_TOGGLE, NodeNum_t mousenode=NODENUM_INVALID)
Definition: Actor.cpp:3594
RoR::Actor::toggleSlideNodeLock
void toggleSlideNodeLock()
Definition: ActorSlideNode.cpp:34
RoR::GUIManager::TopMenubar
GUI::TopMenubar TopMenubar
Definition: GUIManager.h:123
RoR::GameContext::m_msg_queue
GameMsgQueue m_msg_queue
Definition: GameContext.h:184
RoR::GUI::TopMenubar::ai_sectionconfig2
Ogre::String ai_sectionconfig2
Definition: GUI_TopMenubar.h:91
RoR::MSG_EDI_ENTER_TERRN_EDITOR_REQUESTED
@ MSG_EDI_ENTER_TERRN_EDITOR_REQUESTED
Definition: Application.h:133
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:259
RoR::CharacterFactory::GetLocalCharacter
Character * GetLocalCharacter()
Definition: CharacterFactory.h:44
RoR::LT_Terrain
@ LT_Terrain
Definition: Application.h:280
RoR::Actor::toggleTransferCaseMode
void toggleTransferCaseMode()
Definition: Actor.cpp:1430
RoR::Actor::parkingbrakeToggle
void parkingbrakeToggle()
Definition: Actor.cpp:3723
RoR::EV_COMMANDS_01
@ EV_COMMANDS_01
Command 1.
Definition: InputEngine.h:139
RoR::App::diag_preset_spawn_pos
CVar * diag_preset_spawn_pos
Definition: Application.cpp:141
RoR::ActorManager::DeleteActorInternal
void DeleteActorInternal(ActorPtr actor)
Do not call directly; use GameContext::DeleteActor()
Definition: ActorManager.cpp:926
RoR::Actor::ar_is_police
bool ar_is_police
Gfx/sfx attr.
Definition: Actor.h:468
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:409
RoR::GameContext::UpdateAirplaneInputEvents
void UpdateAirplaneInputEvents(float dt)
Definition: GameContext.cpp:1545
RoRnet::UserInfo::colournum
int32_t colournum
colour set by server
Definition: RoRnet.h:173
RoR::GUIManager::FlexbodyDebug
GUI::FlexbodyDebug FlexbodyDebug
Definition: GUIManager.h:128
RoR::Replay::UpdateInputEvents
void UpdateInputEvents()
Definition: Replay.cpp:251
RoR::Actor::ar_nodes
node_t * ar_nodes
Definition: Actor.h:271
instance
or anywhere else will not be considered a but parsed as regular data ! Each line is treated as values separated by separators Possible i e animators Multiline description Single instance
Definition: ReadMe.txt:53
RoRnet::UserInfo::username
char username[RORNET_MAX_USERNAME_LEN]
the nickname of the user (UTF-8)
Definition: RoRnet.h:175
RoR::EV_AIRPLANE_FLAPS_NONE
@ EV_AIRPLANE_FLAPS_NONE
no flaps.
Definition: InputEngine.h:87
RoR::Actor::ar_toggle_ties
bool ar_toggle_ties
Sim state.
Definition: Actor.h:473
RoR::EV_SKY_DECREASE_TIME
@ EV_SKY_DECREASE_TIME
decrease day-time
Definition: InputEngine.h:110
RoR::Actor::getRotation
float getRotation()
Definition: Actor.cpp:405
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:3097
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:583
RoR::CacheSystem::LoadResource
void LoadResource(CacheEntryPtr &t)
Loads the associated resource bundle if not already done.
Definition: CacheSystem.cpp:1392
RoR::GameContext::OnLoaderGuiCancel
void OnLoaderGuiCancel()
GUI callback.
Definition: GameContext.cpp:681
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:119
RoR::Message
Unified game event system - all requests and state changes are reported using a message.
Definition: GameContext.h:51
RoR::Actor::ar_hydro_dir_command
float ar_hydro_dir_command
Definition: Actor.h:394
RoR::Actor::ar_driveable
ActorType ar_driveable
Sim attr; marks vehicle type and features.
Definition: Actor.h:369
RoR::EV_AIRPLANE_THROTTLE_FULL
@ EV_AIRPLANE_THROTTLE_FULL
full thrust
Definition: InputEngine.h:97
RoR::GameContext::UnloadTerrain
void UnloadTerrain()
Definition: GameContext.cpp:177
RoR::SE_TRUCK_TELEPORT
@ SE_TRUCK_TELEPORT
triggered when the user teleports the truck, the argument refers to the actor ID of the vehicle
Definition: ScriptEvents.h:51
RoR::CVar::setVal
void setVal(T val)
Definition: CVar.h:72
RoR::Actor::tieToggle
void tieToggle(int group=-1)
Definition: Actor.cpp:3409
RoR::InputSourceType::IST_DIGITAL
@ IST_DIGITAL
RoR::MSG_GUI_OPEN_MENU_REQUESTED
@ MSG_GUI_OPEN_MENU_REQUESTED
Definition: Application.h:121
_L
#define _L
Definition: ErrorUtils.cpp:34
RoR::GameContext::m_prev_player_actor
ActorPtr m_prev_player_actor
Previous actor (vehicle or machine) mounted and controlled by player.
Definition: GameContext.h:194
RoR::EV_TRUCK_STEER_RIGHT
@ EV_TRUCK_STEER_RIGHT
steer right
Definition: InputEngine.h:358
RoR::Actor::UpdatePropAnimInputEvents
void UpdatePropAnimInputEvents()
Definition: Actor.cpp:4643
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:4675
RoR::Terrain::getSpawnPos
Ogre::Vector3 getSpawnPos()
Definition: Terrain.h:64
RoR::Actor::getHighBeamsVisible
bool getHighBeamsVisible() const
Definition: Actor.h:181
RoR::ActorModifyRequest::Type::SOFT_RESET
@ SOFT_RESET
RoR::Terrain::getSkyXManager
SkyXManager * getSkyXManager()
Definition: Terrain.h:80
RoR::Screwprop::getThrottle
float getThrottle()
Definition: ScrewProp.cpp:98
RoR::ActorSpawnRequest::asr_net_username
Ogre::UTFString asr_net_username
Definition: SimData.h:817
RoR::GUIManager::ShowMessageBox
void ShowMessageBox(const char *title, const char *text, bool allow_close=true, const char *btn1_text="OK", const char *btn2_text=nullptr)
Definition: GUIManager.cpp:440
RoR::GfxActor::SetRenderdashActive
void SetRenderdashActive(bool active)
Definition: GfxActor.cpp: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:816
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:107
RoR::Actor::getRotationCenter
Ogre::Vector3 getRotationCenter()
Definition: Actor.cpp:1489
RoR::Actor::toggleTransferCaseGearRatio
void toggleTransferCaseGearRatio()
Definition: Actor.cpp:1461
RoR::MSG_SIM_SPAWN_ACTOR_REQUESTED
@ MSG_SIM_SPAWN_ACTOR_REQUESTED
Payload = RoR::ActorSpawnRequest* (owner)
Definition: Application.h:110
RoR::Character::SetActorCoupling
void SetActorCoupling(bool enabled, ActorPtr actor)
Definition: Character.cpp:523
RoR::Collisions::getDirection
Ogre::Quaternion getDirection(const Ogre::String &inst, const Ogre::String &box)
Definition: Collisions.cpp:1146
RoR::EV_TRUCK_TOGGLE_IMPORTCOMMANDS
@ EV_TRUCK_TOGGLE_IMPORTCOMMANDS
toggle importcommands
Definition: InputEngine.h:362
RoR::App::GetInputEngine
InputEngine * GetInputEngine()
Definition: Application.cpp: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:187
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:866
RoR::EV_BOAT_STEER_RIGHT
@ EV_BOAT_STEER_RIGHT
steer right a step
Definition: InputEngine.h:105
RoR::GUI::MainSelector::Close
void Close()
Definition: GUI_MainSelector.cpp:592
RoR::MSG_SIM_DELETE_ACTOR_REQUESTED
@ MSG_SIM_DELETE_ACTOR_REQUESTED
Payload = RoR::ActorPtr* (owner)
Definition: Application.h:112
RoR::GameContext::UpdateSimInputEvents
void UpdateSimInputEvents(float dt)
Definition: GameContext.cpp:1047
RoR::LT_AllBeam
@ LT_AllBeam
Definition: Application.h:291
RoR::GameContext::UpdateBoatInputEvents
void UpdateBoatInputEvents(float dt)
Definition: GameContext.cpp:1733
RoR::Actor::setCustomLightVisible
void setCustomLightVisible(int number, bool visible)
Definition: Actor.cpp:4456
RoR::ActorSpawnRequest::net_source_id
int net_source_id
Definition: SimData.h:819
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:420
RoR::Collisions::isInside
bool isInside(Ogre::Vector3 pos, const Ogre::String &inst, const Ogre::String &box, float border=0)
Definition: Collisions.cpp:1170
RoR::EV_COMMON_TOGGLE_CUSTOM_PARTICLES
@ EV_COMMON_TOGGLE_CUSTOM_PARTICLES
toggle particle cannon
Definition: InputEngine.h:268
RoR::SimState::RUNNING
@ RUNNING
RoR::GameContext::ShowLoaderGUI
void ShowLoaderGUI(int type, const Ogre::String &instance, const Ogre::String &box)
Definition: GameContext.cpp:653
RoR::EV_AIRPLANE_AIRBRAKES_FULL
@ EV_AIRPLANE_AIRBRAKES_FULL
Definition: InputEngine.h:77
AeroEngine.h
RoR::EV_TRUCK_BLINK_LEFT
@ EV_TRUCK_BLINK_LEFT
toggle left direction indicator (blinker)
Definition: InputEngine.h:303
RoR::EV_AIRPLANE_PARKING_BRAKE
@ EV_AIRPLANE_PARKING_BRAKE
airplane parking brake.
Definition: InputEngine.h:88
RoR::ActorState::NETWORKED_HIDDEN
@ NETWORKED_HIDDEN
not simulated, not updated (remote)
InputEngine.h
Handles controller inputs from player. Defines input events and binding mechanism,...
RoR::EV_AIRPLANE_ELEVATOR_UP
@ EV_AIRPLANE_ELEVATOR_UP
pull the elevator up in an aircraft.
Definition: InputEngine.h:83
RoR::CacheQuery::cqy_filter_guid
std::string cqy_filter_guid
Exact match (case-insensitive); leave empty to disable.
Definition: CacheSystem.h:186
RoR::GUIManager::MainSelector
GUI::MainSelector MainSelector
Definition: GUIManager.h:113
RoR::EV_COMMON_OUTPUT_POSITION
@ EV_COMMON_OUTPUT_POSITION
write current position to log (you can open the logfile and reuse the position)
Definition: InputEngine.h:243
RoR::Actor::getMaxHeight
float getMaxHeight(bool skip_virtual_nodes=true)
Definition: Actor.cpp:1520
RoR::InputEngine::isEventAnalog
bool isEventAnalog(int eventID)
Definition: InputEngine.cpp:884
RoR::Actor::countFlaresByType
int countFlaresByType(FlareType type)
Definition: Actor.cpp:4493
RoR::ActorSpawnRequest::Origin::USER
@ USER
Direct selection by user via GUI.
RoR::ActorManager::RestoreSavedState
void RestoreSavedState(ActorPtr actor, rapidjson::Value const &j_entry)
Definition: Savegame.cpp:783
RoR::Console::CONSOLE_MSGTYPE_ACTOR
@ CONSOLE_MSGTYPE_ACTOR
Parsing/spawn/simulation messages for actors.
Definition: Console.h:63
RoR::EV_AIRPLANE_BRAKE
@ EV_AIRPLANE_BRAKE
normal brake for an aircraft.
Definition: InputEngine.h:81
RoR::EV_AIRPLANE_THROTTLE_UP
@ EV_AIRPLANE_THROTTLE_UP
increase the airplane thrust
Definition: InputEngine.h:99
RoR::GfxActor::GetDebugView
DebugViewType GetDebugView() const
Definition: GfxActor.h:138
RigDef::DocumentPtr
std::shared_ptr< Document > DocumentPtr
Definition: RigDef_Prerequisites.h:38
RoR::Console::CONSOLE_SYSTEM_WARNING
@ CONSOLE_SYSTEM_WARNING
Definition: Console.h:53
RoR::App::diag_preset_veh_enter
CVar * diag_preset_veh_enter
Definition: Application.cpp:145
RoR::CVar::getInt
int getInt() const
Definition: CVar.h:97
RoR::Console::CONSOLE_MSGTYPE_INFO
@ CONSOLE_MSGTYPE_INFO
Generic message.
Definition: Console.h:60
RoR::GameContext::SpawnPreselectedActor
void SpawnPreselectedActor(std::string const &preset_vehicle, std::string const &preset_veh_config)
needs Character to exist
Definition: GameContext.cpp:617
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:122
RoR::ActorSpawnRequest::asr_position
Ogre::Vector3 asr_position
Definition: SimData.h:809
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:419
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:105
RoR::ActorState::NETWORKED_OK
@ NETWORKED_OK
not simulated (remote) actor
RoR::EV_COMMON_CYCLE_DEBUG_VIEWS
@ EV_COMMON_CYCLE_DEBUG_VIEWS
cycle debug view mode
Definition: InputEngine.h:266
RoR::Actor::displayWheelDiffMode
void displayWheelDiffMode()
Cycles through the available inter wheel diff modes.
Definition: Actor.cpp:1390
RoR::EV_AIRPLANE_THROTTLE_AXIS
@ EV_AIRPLANE_THROTTLE_AXIS
throttle axis. Only use this if you have fitting hardware :) (i.e. a Slider)
Definition: InputEngine.h:95
RoR::ActorManager::UpdateActors
void UpdateActors(ActorPtr player_actor)
Definition: ActorManager.cpp:1051
RoR::Actor::ar_aileron
float ar_aileron
Sim state; aerial controller.
Definition: Actor.h:411
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:437
RoR::ActorManager::FetchNextVehicleOnList
const ActorPtr & FetchNextVehicleOnList(ActorPtr player, ActorPtr prev_player)
Definition: ActorManager.cpp:987
RoR::Actor::setAirbrakeIntensity
void setAirbrakeIntensity(float intensity)
Definition: Actor.cpp:2933
RoR::EV_AIRPLANE_ELEVATOR_DOWN
@ EV_AIRPLANE_ELEVATOR_DOWN
pull the elevator down in an aircraft.
Definition: InputEngine.h:82
RoR::GameContext::GetPlayerActor
const ActorPtr & GetPlayerActor()
Definition: GameContext.h:134
RoR::AI
@ AI
machine controlled by an Artificial Intelligence
Definition: SimData.h:108
RoR::GameContext::UpdateTruckInputEvents
void UpdateTruckInputEvents(float dt)
Definition: GameContext.cpp:1793
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:2967
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:410
RoR::Actor::cruisecontrolToggle
void cruisecontrolToggle()
Defined in 'gameplay/CruiseControl.cpp'.
Definition: CruiseControl.cpp:31
RoR::ActorModifyRequest::amr_type
Type amr_type
Definition: SimData.h:845
RoR::ActorSpawnRequest::asr_spawnbox
collision_box_t * asr_spawnbox
Definition: SimData.h:811
RoR::ActorSpawnRequest::asr_rotation
Ogre::Quaternion asr_rotation
Definition: SimData.h:810
RoR::Actor::getWorkingTuneupDef
TuneupDefPtr & getWorkingTuneupDef()
Definition: Actor.cpp:4680
RoR::AeroEngine::getThrottle
virtual float getThrottle()=0
RoR::Actor::setSideLightsVisible
void setSideLightsVisible(bool val)
Definition: Actor.h:178
RoR
Definition: AppContext.h:36
RoR::SE_GENERIC_DELETED_TRUCK
@ SE_GENERIC_DELETED_TRUCK
triggered when the user deletes an actor, the argument refers to the actor ID
Definition: ScriptEvents.h:48
RoR::ActorManager::GetActorById
const ActorPtr & GetActorById(ActorInstanceID_t actor_id)
Definition: ActorManager.cpp:1167
RoR::EV_COMMON_REMOVE_CURRENT_TRUCK
@ EV_COMMON_REMOVE_CURRENT_TRUCK
remove current truck
Definition: InputEngine.h:232
x
float x
Definition: (ValueTypes) quaternion.h:5
RoR::CacheSystem::Query
size_t Query(CacheQuery &query)
Definition: CacheSystem.cpp:2047
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:588
RoR::ActorSpawnRequest::asr_enter
bool asr_enter
Definition: SimData.h:822
RoR::Log
void Log(const char *msg)
The ultimate, application-wide logging function. Adds a line (any length) in 'RoR....
Definition: Application.cpp:413
RoR::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:598
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:287
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:78
RoR::ActorManager::CreateNewActor
ActorPtr CreateNewActor(ActorSpawnRequest rq, RigDef::DocumentPtr def)
Definition: ActorManager.cpp:79
SOUND_TOGGLE
#define SOUND_TOGGLE(_ACTOR_, _TRIG_)
Definition: SoundScriptManager.h:37
RoR::Character::setRotation
void setRotation(Ogre::Radian rotation)
Definition: Character.cpp:98
RoR::Actor::ar_cinecam_node
NodeNum_t ar_cinecam_node[MAX_CAMERAS]
Sim attr; Cine-camera node indexes.
Definition: Actor.h:371
RoR::EV_COMMON_TOGGLE_DEBUG_VIEW
@ EV_COMMON_TOGGLE_DEBUG_VIEW
toggle debug view mode
Definition: InputEngine.h:265
RoR::InputEngine::getEventBounceTime
float getEventBounceTime(int eventID)
Definition: InputEngine.cpp:728
RoR::CacheEntry::guid
Ogre::String guid
global unique id; Type "addonpart" leaves this empty 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:4434
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:1416
RoR::GameContext::CreatePlayerCharacter
void CreatePlayerCharacter()
Terrain must be loaded.
Definition: GameContext.cpp:833
RoR::GameContext::UpdateSkyInputEvents
void UpdateSkyInputEvents(float dt)
Definition: GameContext.cpp:1205
RoR::Actor::isBeingReset
bool isBeingReset() const
Definition: Actor.h:265
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:825
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:560
RoR::GameContext::HasMessages
bool HasMessages()
Definition: GameContext.cpp:90
RoR::ActorModifyRequest::Type::RELOAD
@ RELOAD
Full reload from filesystem, requested by user.
RoR::ActorLinkingRequestType::SLIDENODE_ACTION
@ SLIDENODE_ACTION