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 "Engine.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 "Terrn2FileFormat.h"
47 #include "TuneupFileFormat.h"
48 #include "Utils.h"
49 #include "VehicleAI.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  Terrn2DocumentPtr 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  terrn2 = parser.LoadTerrn2(stream);
138  if (!terrn2)
139  {
140  return false; // Errors already logged to console
141  }
142  }
143  catch (Ogre::Exception& e)
144  {
145  App::GetGuiManager()->ShowMessageBox(_L("Terrain loading error"), e.getFullDescription().c_str());
146  return false;
147  }
148  terrn_entry->terrn2_def = terrn2;
149 
150  for (std::string const& assetpack_filename: terrn2->assetpack_files)
151  {
152  App::GetCacheSystem()->LoadAssetPack(terrn_entry, assetpack_filename);
153  }
154 
155  // CAUTION - the global instance must be set during init! Needed by:
156  // * GameScript::spawnObject()
157  // * ProceduralManager
158  // * Landusemap
159  // * SurveyMapTextureCreator
160  // * Collisions (debug visualization)
161  m_terrain = new RoR::Terrain(terrn_entry, terrn2);
162  if (!m_terrain->initialize())
163  {
164  m_terrain = nullptr; // release local reference - object will be deleted when all references are released.
165  return false; // Message box already displayed
166  }
167 
168  // Initialize envmap textures by rendering center of map
169  Ogre::Vector3 center = m_terrain->getMaxTerrainSize() / 2;
170  center.y = m_terrain->getHeightAt(center.x, center.z) + 1.0f;
171  App::GetGfxScene()->GetEnvMap().UpdateEnvMap(center, /*gfx_actor:*/nullptr, /*full:*/true);
172 
173  // Scan groundmodels
175 
176  return true;
177 }
178 
180 {
181  if (m_terrain != nullptr)
182  {
183  // dispose(), do not `delete` - script may still hold reference to the object.
184  m_terrain->dispose();
185  // release local reference - object will be deleted when all references are released.
186  m_terrain = nullptr;
187  }
188 }
189 
190 // --------------------------------
191 // Actors (physics and netcode)
192 
194 {
196  {
201 
202  if (rq.asr_spawnbox == nullptr)
203  {
204  if (m_player_actor != nullptr)
205  {
206  float h = m_player_actor->getMaxHeight(true);
207  rq.asr_rotation = Ogre::Quaternion(Ogre::Degree(270) - Ogre::Radian(m_player_actor->getRotation()), Ogre::Vector3::UNIT_Y);
210  rq.asr_position.y += m_player_actor->getHeightAboveGroundBelow(h, true); // retain height above ground
211  }
212  else
213  {
214  Character* player_character = this->GetPlayerCharacter();
215  rq.asr_rotation = Ogre::Quaternion(Ogre::Degree(180) - player_character->getRotation(), Ogre::Vector3::UNIT_Y);
216  rq.asr_position = player_character->getPosition();
217  }
218  }
219  }
220 
221  LOG(" ===== LOADING VEHICLE: " + rq.asr_filename);
222 
223  if (rq.asr_cache_entry)
224  {
226  }
227  else
228  {
230  }
231 
233  if (def == nullptr)
234  {
235  return nullptr; // Error already reported
236  }
237 
238  if (rq.asr_skin_entry)
239  {
240  App::GetCacheSystem()->LoadResource(rq.asr_skin_entry); // Also loads associated .skin file.
241  if (!rq.asr_skin_entry->skin_def) // Make sure .skin was loaded OK.
242  {
243  rq.asr_skin_entry = nullptr; // Error already logged
244  }
245  }
246 
247  if (App::sim_tuning_enabled->getBool() && (App::mp_state->getEnum<MpState>() != MpState::CONNECTED))
248  {
249  if (rq.asr_tuneup_entry)
250  {
251  App::GetCacheSystem()->LoadResource(rq.asr_tuneup_entry); // Also loads associated .tuneup file.
252  if (!rq.asr_tuneup_entry->tuneup_def)
253  {
254  rq.asr_tuneup_entry = nullptr; // Error already logged
255  }
256  }
257  }
258  else
259  {
260  rq.asr_working_tuneup = nullptr; // Make sure no tuneup is used
261  }
262 
263 #ifdef USE_SOCKETW
265  {
266  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
267  {
270  rq.asr_net_color = info.colournum;
271  }
272  }
273 #endif //SOCKETW
274 
275  ActorPtr fresh_actor = m_actor_manager.CreateNewActor(rq, def);
276  bool fresh_actor_seat_player = false;
277 
278  // lock slide nodes after spawning the actor?
279  if (def->slide_nodes_connect_instantly)
280  {
281  fresh_actor->toggleSlideNodeLock(); // OK to invoke here - processing MSG_SIM_ACTOR_SPAWN_REQUESTED
282  }
283 
285  {
286  m_last_spawned_actor = fresh_actor;
287  if (fresh_actor->ar_driveable != NOT_DRIVEABLE)
288  {
289  fresh_actor_seat_player = true;
290  }
291  if (rq.asr_spawnbox == nullptr)
292  {
293  // Try to resolve collisions with other actors
294  fresh_actor->resolveCollisions(50.0f, m_player_actor == nullptr);
295  }
296  }
298  {
299  if (fresh_actor->ar_driveable != NOT_DRIVEABLE &&
300  fresh_actor->ar_num_nodes > 0 &&
302  {
303  fresh_actor_seat_player = true;
304  }
305  }
307  {
308  if (rq.asr_terrn_machine)
309  {
310  fresh_actor->ar_driveable = MACHINE;
311  }
312  }
314  {
315  fresh_actor->ar_driveable = AI;
316  fresh_actor->ar_state = ActorState::LOCAL_SIMULATED;
317 
318  if (fresh_actor->ar_engine)
319  {
321  fresh_actor->ar_engine->autoShiftSet(Engine::DRIVE);
322  }
323  }
325  {
326  fresh_actor->ar_net_source_id = rq.net_source_id;
327  fresh_actor->ar_net_stream_id = rq.net_stream_id;
328 
330  {
332  }
334  {
336  }
337  }
339  {
340  if (rq.asr_saved_state)
341  {
343  req->amr_actor = fresh_actor->ar_instance_id;
347  }
348  }
349  else
350  {
351  if (fresh_actor->ar_driveable != NOT_DRIVEABLE &&
353  rq.asr_enter)
354  {
355  fresh_actor_seat_player = true;
356  }
357  }
358 
359  if (fresh_actor_seat_player)
360  {
361  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, new ActorPtr(fresh_actor)));
362  // 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.
364  }
365 
366  return fresh_actor;
367 }
368 
370 {
372 
373  if (!actor)
374  {
375  return;
376  }
377 
379  {
380  actor->SoftReset();
381  }
383  {
384  actor->SyncReset(/*reset_position:*/false);
385  }
387  {
388  actor->SyncReset(/*reset_position:*/true);
389  }
391  {
393  }
396  {
398  actor->ar_sleep_counter = 0.0f;
399  }
401  {
402  CacheEntryPtr entry = App::GetCacheSystem()->FindEntryByFilename(LT_AllBeam, /*partial=*/false, actor->ar_filename);
403  if (!entry)
404  {
405  Str<500> msg; msg <<"Cannot reload vehicle; file '" << actor->ar_filename << "' not found in ModCache.";
407  return;
408  }
409 
410  // Create spawn request while actor still exists
412  srq->asr_position = Ogre::Vector3(actor->getPosition().x, actor->getMinHeight(), actor->getPosition().z);
413  srq->asr_rotation = Ogre::Quaternion(Ogre::Degree(270) - Ogre::Radian(actor->getRotation()), Ogre::Vector3::UNIT_Y);
414  srq->asr_config = actor->getSectionConfig();
415  srq->asr_skin_entry = actor->getUsedSkinEntry();
416  srq->asr_working_tuneup = actor->getWorkingTuneupDef();
417  srq->asr_cache_entry= entry;
418  srq->asr_debugview = (int)actor->GetGfxActor()->GetDebugView();
420 
421  // This deletes all actors using the resource bundle, including the one we're reloading.
423 
424  // Load our actor again, but only after all actors are deleted.
426  }
428  {
430  }
432  {
433  actor->GetGfxActor()->UpdateSimDataBuffer();
435  }
436 }
437 
439 {
440  if (actor == m_player_actor)
441  {
442  Ogre::Vector3 center = m_player_actor->getRotationCenter();
443  this->ChangePlayerActor(nullptr); // Get out of the vehicle
444  this->GetPlayerCharacter()->setPosition(center);
445  // Update scene SimBuffer immediatelly to prevent having dangling pointer.
447  }
448 
449  if (actor == m_prev_player_actor)
450  {
451  m_prev_player_actor = nullptr;
452  }
453 
454  if (actor == m_last_spawned_actor)
455  {
456  m_last_spawned_actor = nullptr;
457  }
458 
459  // Find linked actors and un-tie if tied
460  for (auto actorx : m_actor_manager.GetLocalActors())
461  {
462  if (actorx->isTied() && std::find(actor->ar_linked_actors.begin(), actor->ar_linked_actors.end(), actorx) != actor->ar_linked_actors.end())
463  {
464  actorx->tieToggle(); // OK to invoke here - processing MSG_SIM_DELETE_ACTOR_REQUESTED
465  }
466 
467  if (actorx->isLocked() && std::find(actor->ar_linked_actors.begin(), actor->ar_linked_actors.end(), actorx) != actor->ar_linked_actors.end())
468  {
469  actorx->hookToggle(); // OK to invoke here - processing MSG_SIM_DELETE_ACTOR_REQUESTED
470  }
471  }
472 
474 
475 #ifdef USE_SOCKETW
476  if (App::mp_state->getEnum<MpState>() == MpState::CONNECTED)
477  {
479  }
480 #endif //SOCKETW
481 
483 
485 }
486 
488 {
489  ActorPtr prev_player_actor = m_player_actor;
490  m_player_actor = actor;
491 
492  // hide any old dashes
493  if (prev_player_actor && prev_player_actor->ar_dashboard)
494  {
495  prev_player_actor->ar_dashboard->setVisible3d(false);
496  }
497  // show new
499  {
501  }
502 
503  if (prev_player_actor)
504  {
505  App::GetOverlayWrapper()->showDashboardOverlays(false, prev_player_actor);
506 
507  prev_player_actor->GetGfxActor()->SetRenderdashActive(false);
508 
509  SOUND_STOP(prev_player_actor, SS_TRIG_AIR);
510  SOUND_STOP(prev_player_actor, SS_TRIG_PUMP);
511  }
512 
513  if (m_player_actor == nullptr)
514  {
515  // getting outside
516 
517  if (prev_player_actor)
518  {
520  {
522  }
523 
524  prev_player_actor->prepareInside(false);
525 
526  // get player out of the vehicle
527  float h = prev_player_actor->getMinCameraRadius();
528  float rotation = prev_player_actor->getRotation() - Ogre::Math::HALF_PI;
529  Ogre::Vector3 position = prev_player_actor->getPosition();
530  if (prev_player_actor->ar_cinecam_node[0] != NODENUM_INVALID)
531  {
532  // actor has a cinecam (find optimal exit position)
533  Ogre::Vector3 l = position - 2.0f * prev_player_actor->GetCameraRoll();
534  Ogre::Vector3 r = position + 2.0f * prev_player_actor->GetCameraRoll();
535  float l_h = m_terrain->GetCollisions()->getSurfaceHeightBelow(l.x, l.z, l.y + h);
536  float r_h = m_terrain->GetCollisions()->getSurfaceHeightBelow(r.x, r.z, r.y + h);
537  position = std::abs(r.y - r_h) * 1.2f < std::abs(l.y - l_h) ? r : l;
538  }
539  position.y = m_terrain->GetCollisions()->getSurfaceHeightBelow(position.x, position.z, position.y + h);
540 
541  Character* player_character = this->GetPlayerCharacter();
542  if (player_character)
543  {
544  player_character->SetActorCoupling(false, nullptr);
545  player_character->setRotation(Ogre::Radian(rotation));
546  player_character->setPosition(position);
547  }
548  }
549 
551 
552  TRIGGER_EVENT_ASYNC(SE_TRUCK_EXIT, prev_player_actor?prev_player_actor->ar_instance_id:-1);
553  }
554  else
555  {
556  // getting inside
558  !App::GetGuiManager()->IsGuiHidden(), m_player_actor);
559 
561  {
563  }
564 
566 
567  // force feedback
569 
570  // attach player to vehicle
571  Character* player_character = this->GetPlayerCharacter();
572  if (player_character)
573  {
574  player_character->SetActorCoupling(true, m_player_actor);
575  }
576 
578 
580  }
581 
582  if (prev_player_actor != nullptr || m_player_actor != nullptr)
583  {
585  }
586 
588 }
589 
591 {
593 }
594 
596 {
598 }
599 
601 {
603 }
604 
605 ActorPtr GameContext::FindActorByCollisionBox(std::string const & ev_src_instance_name, std::string const & box_name)
606 {
608  ev_src_instance_name, box_name);
609 }
610 
612 {
613  if (m_last_cache_selection != nullptr)
614  {
621  }
622 }
623 
624 void GameContext::SpawnPreselectedActor(std::string const& preset_vehicle, std::string const& preset_veh_config)
625 {
627  LT_AllBeam, /*partial=*/true, preset_vehicle);
628 
629  if (!entry)
630  return;
631 
633  rq->asr_cache_entry = entry;
635  rq->asr_rotation = Ogre::Quaternion(Ogre::Degree(180) - this->GetPlayerCharacter()->getRotation(), Ogre::Vector3::UNIT_Y);
637 
638  RoR::LogFormat("[RoR|Diag] Preselected Truck: %s (%s)", entry->dname.c_str(), entry->fname.c_str());
639 
640  // Section config lookup
641  if (!entry->sectionconfigs.empty())
642  {
643  if (std::find(entry->sectionconfigs.begin(), entry->sectionconfigs.end(),
644  preset_veh_config)
645  == entry->sectionconfigs.end())
646  {
647  // Preselected config doesn't exist -> use first available one
648  rq->asr_config = entry->sectionconfigs[0];
649  }
650  else
651  {
652  rq->asr_config = preset_veh_config;
653  }
654  RoR::LogFormat("[RoR|Diag] Preselected Truck Config: %s", rq->asr_config.c_str());
655  }
656 
658 }
659 
660 void GameContext::ShowLoaderGUI(int type, const Ogre::String& instance, const Ogre::String& box)
661 {
662  // first, test if the place if clear, BUT NOT IN MULTIPLAYER
663  if (!(App::mp_state->getEnum<MpState>() == MpState::CONNECTED))
664  {
665  collision_box_t* spawnbox = m_terrain->GetCollisions()->getBox(instance, box);
666  for (ActorPtr& actor : this->GetActorManager()->GetActors())
667  {
668  for (int i = 0; i < actor->ar_num_nodes; i++)
669  {
670  if (m_terrain->GetCollisions()->isInside(actor->ar_nodes[i].AbsPosition, spawnbox))
671  {
672  App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("Please clear the place first"), "error.png");
673  return;
674  }
675  }
676  }
677  }
678 
682 
684  m.payload = reinterpret_cast<void*>(new LoaderType(LoaderType(type)));
686 }
687 
689 {
691 
692  if (App::GetGuiManager()->TopMenubar.ai_select)
693  {
696  }
697  if (App::GetGuiManager()->TopMenubar.ai_select2)
698  {
701  }
702 }
703 
704 void GameContext::OnLoaderGuiApply(LoaderType type, CacheEntryPtr entry, std::string sectionconfig)
705 {
706  bool spawn_now = false;
707  switch (type)
708  {
709  case LT_AddonPart:
710  if (m_player_actor)
711  {
714  req->mpr_subject = entry->fname;
717  }
718  break;
719 
720  case LT_Skin:
721  if (entry != m_dummy_cache_selection)
722  {
724  if (App::GetGuiManager()->TopMenubar.ai_select)
725  {
727  }
728  if (App::GetGuiManager()->TopMenubar.ai_select2)
729  {
731  }
732  }
733  spawn_now = true;
734  break;
735 
736  case LT_Vehicle:
737  case LT_Truck:
738  case LT_Car:
739  case LT_Boat:
740  case LT_Airplane:
741  case LT_Trailer:
742  case LT_Train:
743  case LT_Load:
744  case LT_Extension:
745  case LT_AllBeam:
747  m_current_selection.asr_config = sectionconfig;
748  if (App::GetGuiManager()->TopMenubar.ai_select)
749  {
751  }
752  if (App::GetGuiManager()->TopMenubar.ai_select2)
753  {
755  }
757  // Look for extra skins
758  if (!entry->guid.empty())
759  {
760  CacheQuery skin_query;
761  skin_query.cqy_filter_guid = entry->guid;
762  skin_query.cqy_filter_type = LT_Skin;
763  size_t num_skins = App::GetCacheSystem()->Query(skin_query);
764  // Determine default skin
765  CacheEntryPtr default_skin_entry = nullptr;
766  if (entry->default_skin != "")
767  {
768  for (CacheQueryResult& res : skin_query.cqy_results)
769  {
770  if (res.cqr_entry->dname == entry->default_skin)
771  default_skin_entry = res.cqr_entry;
772  }
773  if (!default_skin_entry)
774  {
776  fmt::format(_L("Default skin '{}' for actor '{}' not found!"), entry->default_skin, entry->dname));
777  }
778  if (default_skin_entry && num_skins == 1)
779  {
780  m_current_selection.asr_skin_entry = default_skin_entry;
781  }
782  }
783  else
784  {
785  default_skin_entry = m_dummy_cache_selection;
786  default_skin_entry->dname = "Default skin";
787  default_skin_entry->description = "Original, unmodified skin";
788  }
789 
790  if (!m_current_selection.asr_skin_entry && num_skins > 0)
791  {
792  App::GetGuiManager()->MainSelector.Show(LT_Skin, entry->guid, default_skin_entry); // Intentionally not using MSG_
793  }
794  else
795  {
796  spawn_now = true;
797  }
798  }
799  else
800  {
801  spawn_now = true;
802  }
803  break;
804 
805  default:;
806  }
807 
808  if (spawn_now)
809  {
810  if (App::GetGuiManager()->TopMenubar.ai_select)
811  {
816  }
817  else if (App::GetGuiManager()->TopMenubar.ai_select2)
818  {
823  }
824  else
825  {
827  *rq = m_current_selection;
829  }
830 
832  }
833 }
834 
836 
837 // --------------------------------
838 // Characters
839 
841 {
843 
844  // Adjust character position and rotation
845  Ogre::Vector3 spawn_pos = m_terrain->getSpawnPos();
846  Ogre::Degree spawn_rot(0.f);
847 
848  if (m_terrain->GetDef()->start_rotation_specified)
849  {
850  spawn_rot = m_terrain->GetDef()->start_rotation;
851  }
852  else if (!m_terrain->HasPredefinedActors())
853  {
854  // Classic behavior, retained for compatibility.
855  // Required for maps like N-Labs or F1 Track.
856  spawn_rot = 180.0f;
857  }
858 
859  // Preset position - commandline has precedence
860  if (App::cli_preset_spawn_pos->getStr() != "")
861  {
862  spawn_pos = Ogre::StringConverter::parseVector3(App::cli_preset_spawn_pos->getStr(), spawn_pos);
864  }
865  else if (App::diag_preset_spawn_pos->getStr() != "")
866  {
867  spawn_pos = Ogre::StringConverter::parseVector3(App::diag_preset_spawn_pos->getStr(), spawn_pos);
869  }
870 
871  // Preset rotation - commandline has precedence
872  if (App::cli_preset_spawn_rot->getStr() != "")
873  {
874  spawn_rot = Ogre::StringConverter::parseReal(App::cli_preset_spawn_rot->getStr(), spawn_rot.valueDegrees());
876  }
877  else if (App::diag_preset_spawn_rot->getStr() != "")
878  {
879  spawn_rot = Ogre::StringConverter::parseReal(App::diag_preset_spawn_rot->getStr(), spawn_rot.valueDegrees());
881  }
882 
883  spawn_pos.y = m_terrain->GetCollisions()->getSurfaceHeightBelow(spawn_pos.x, spawn_pos.z, spawn_pos.y + 1.8f);
884 
885  this->GetPlayerCharacter()->setPosition(spawn_pos);
886  this->GetPlayerCharacter()->setRotation(spawn_rot);
887 
888  App::GetCameraManager()->GetCameraNode()->setPosition(this->GetPlayerCharacter()->getPosition());
889 
890  // Small hack to improve the spawn experience
891  for (int i = 0; i < 100; i++)
892  {
894  }
895 }
896 
897 Character* GameContext::GetPlayerCharacter() // Convenience ~ counterpart of `GetPlayerActor()`
898 {
900 }
901 
902 // --------------------------------
903 // Gameplay feats
904 
905 void GameContext::TeleportPlayer(float x, float z)
906 {
908  if (!this->GetPlayerActor())
909  {
910  this->GetPlayerCharacter()->setPosition(Ogre::Vector3(x, y, z));
911  return;
912  }
913 
914  TRIGGER_EVENT_ASYNC(SE_TRUCK_TELEPORT, this->GetPlayerActor()->ar_instance_id);
915 
916  Ogre::Vector3 translation = Ogre::Vector3(x, y, z) - this->GetPlayerActor()->ar_nodes[0].AbsPosition;
917 
918  std::vector<ActorPtr> actorsToBeamUp;
919  actorsToBeamUp.assign(this->GetPlayerActor()->ar_linked_actors.begin(), this->GetPlayerActor()->ar_linked_actors.end());
920  actorsToBeamUp.push_back(this->GetPlayerActor());
921 
922  float src_agl = std::numeric_limits<float>::max();
923  float dst_agl = std::numeric_limits<float>::max();
924  for (ActorPtr& actor : actorsToBeamUp)
925  {
926  for (int i = 0; i < actor->ar_num_nodes; i++)
927  {
928  Ogre::Vector3 pos = actor->ar_nodes[i].AbsPosition;
929  src_agl = std::min(pos.y - m_terrain->GetCollisions()->getSurfaceHeight(pos.x, pos.z), src_agl);
930  pos += translation;
931  dst_agl = std::min(pos.y - m_terrain->GetCollisions()->getSurfaceHeight(pos.x, pos.z), dst_agl);
932  }
933  }
934 
935  translation += Ogre::Vector3::UNIT_Y * (std::max(0.0f, src_agl) - dst_agl);
936 
937  for (ActorPtr& actor : actorsToBeamUp)
938  {
939  actor->resetPosition(actor->ar_nodes[0].AbsPosition + translation, false);
940  }
941 }
942 
944 {
945  // Generic escape key event
946  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_QUIT_GAME))
947  {
948  if (App::app_state->getEnum<AppState>() == AppState::MAIN_MENU)
949  {
950  if (App::GetGuiManager()->GameAbout.IsVisible())
951  {
953  }
954  else if (App::GetGuiManager()->MainSelector.IsVisible())
955  {
957  }
958  else if (App::GetGuiManager()->GameSettings.IsVisible())
959  {
961  }
962  else if (App::GetGuiManager()->GameControls.IsVisible())
963  {
965  }
966  else if (App::GetGuiManager()->MultiplayerSelector.IsVisible())
967  {
969  }
970  else if (App::GetGuiManager()->RepositorySelector.IsVisible())
971  {
973  }
974  else
975  {
977  }
978  }
979  else if (App::app_state->getEnum<AppState>() == AppState::SIMULATION)
980  {
981  if (App::GetGuiManager()->MainSelector.IsVisible())
982  {
984  }
985  else if (App::GetGuiManager()->GameControls.IsVisible())
986  {
988  }
989  else if (App::sim_state->getEnum<SimState>() == SimState::RUNNING)
990  {
992  if (App::mp_state->getEnum<MpState>() != MpState::CONNECTED)
993  {
995  }
996  }
997  else if (App::sim_state->getEnum<SimState>() == SimState::PAUSED)
998  {
1001  }
1002  }
1003  }
1004 
1005  // screenshot
1006  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_SCREENSHOT, 0.25f))
1007  {
1009  }
1010 
1011  // fullscreen toggle
1012  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_FULLSCREEN_TOGGLE, 2.0f))
1013  {
1014  if (App::GetAppContext()->GetRenderWindow()->isFullScreen())
1016  else
1018  }
1019 
1020  // render mode
1021  switch (App::gfx_polygon_mode->getEnum<Ogre::PolygonMode>())
1022  {
1023  case 1: App::GetCameraManager()->GetCamera()->setPolygonMode(Ogre::PM_SOLID); break;
1024  case 2: App::GetCameraManager()->GetCamera()->setPolygonMode(Ogre::PM_WIREFRAME); break;
1025  case 3: App::GetCameraManager()->GetCamera()->setPolygonMode(Ogre::PM_POINTS); break;
1026  }
1027 
1028  // Write player position to log
1029  if (App::app_state->getEnum<AppState>() == AppState::SIMULATION &&
1030  App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_OUTPUT_POSITION))
1031  {
1032  Ogre::Vector3 position(Ogre::Vector3::ZERO);
1033  Ogre::Radian rotation(0);
1034  if (this->GetPlayerActor() == nullptr)
1035  {
1036  position = this->GetPlayerCharacter()->getPosition();
1037  rotation = this->GetPlayerCharacter()->getRotation() + Ogre::Radian(Ogre::Math::PI);
1038  }
1039  else
1040  {
1041  position = this->GetPlayerActor()->getPosition();
1042  rotation = this->GetPlayerActor()->getRotation();
1043  }
1044  Ogre::String pos = Ogre::StringUtil::format("%8.3f, %8.3f, %8.3f" , position.x, position.y, position.z);
1045  Ogre::String rot = Ogre::StringUtil::format("% 6.1f, % 6.1f, % 6.1f", 0.0f, rotation.valueDegrees() , 0.0f);
1046  LOG("Position: " + pos + ", " + rot);
1047  }
1048 
1049  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_RESET_MODE))
1050  {
1054  (App::sim_soft_reset_mode->getBool()) ? _L("Enabled soft reset mode") : _L("Enabled hard reset mode"));
1055  }
1056 }
1057 
1059 {
1060  // get new vehicle
1061  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_GET_NEW_VEHICLE))
1062  {
1064  m.payload = reinterpret_cast<void*>(new LoaderType(LT_AllBeam));
1066  }
1067 
1068  // Enter/exit truck - With a toggle delay
1069  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ENTER_OR_EXIT_TRUCK, 0.5f))
1070  {
1071  if (this->GetPlayerActor() == nullptr) // no vehicle
1072  {
1073  // find the nearest vehicle
1074  float mindist = 1000.0;
1075  ActorPtr nearest_actor = nullptr;
1076  for (ActorPtr& actor : this->GetActorManager()->GetActors())
1077  {
1078  if (!actor->ar_driveable)
1079  continue;
1080  if (actor->ar_cinecam_node[0] == NODENUM_INVALID)
1081  {
1082  LOG("cinecam missing, cannot enter the actor!");
1083  continue;
1084  }
1085  float len = 0.0f;
1086  if (this->GetPlayerCharacter())
1087  {
1088  len = actor->ar_nodes[actor->ar_cinecam_node[0]].AbsPosition.distance(this->GetPlayerCharacter()->getPosition() + Ogre::Vector3(0.0, 2.0, 0.0));
1089  }
1090  if (len < mindist)
1091  {
1092  mindist = len;
1093  nearest_actor = actor;
1094  }
1095  }
1096 
1097  if (mindist < 20.0)
1098  {
1099  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(nearest_actor))));
1100  }
1101  }
1102  else // We're in a vehicle -> If moving slowly enough, get out
1103  {
1104  if (this->GetPlayerActor()->ar_nodes[0].Velocity.squaredLength() < 1.0f ||
1105  this->GetPlayerActor()->ar_state == ActorState::NETWORKED_OK || this->GetPlayerActor()->ar_state == ActorState::NETWORKED_HIDDEN ||
1106  this->GetPlayerActor()->ar_driveable == AI)
1107  {
1108  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr())));
1109  }
1110  }
1111  }
1112 
1113  // enter next truck
1114  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ENTER_NEXT_TRUCK, 0.25f))
1115  {
1116  ActorPtr actor = this->FetchNextVehicleOnList();
1117  if (actor != this->GetPlayerActor())
1118  {
1119  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(actor))));
1120  }
1121  }
1122 
1123  // enter previous truck
1124  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ENTER_PREVIOUS_TRUCK, 0.25f))
1125  {
1126  ActorPtr actor = this->FetchPrevVehicleOnList();
1127  if (actor != this->GetPlayerActor())
1128  {
1129  this->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(actor))));
1130  }
1131  }
1132 
1133  // respawn last truck
1134  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_RESPAWN_LAST_TRUCK, 0.25f))
1135  {
1136  this->RespawnLastActor();
1137  }
1138 
1139  // terrain editor toggle
1141  {
1143  }
1144 
1145  // forward commands from character
1146  ActorPtr actor_to_reset_commandkeys;
1147  if (!m_player_actor)
1148  {
1149  // Find nearest actor
1150  const Ogre::Vector3 position = App::GetGameContext()->GetPlayerCharacter()->getPosition();
1151  ActorPtr nearest_actor = nullptr;
1152  float min_squared_distance = std::numeric_limits<float>::max();
1153  for (ActorPtr& actor : App::GetGameContext()->GetActorManager()->GetActors())
1154  {
1155  float squared_distance = position.squaredDistance(actor->ar_nodes[0].AbsPosition);
1156  if (squared_distance < min_squared_distance)
1157  {
1158  min_squared_distance = squared_distance;
1159  nearest_actor = actor;
1160  }
1161  }
1162 
1163  // Evaluate
1164  if (nearest_actor != nullptr &&
1165  nearest_actor->ar_import_commands &&
1166  min_squared_distance < (nearest_actor->getMinCameraRadius()*nearest_actor->getMinCameraRadius()))
1167  {
1168  if (nearest_actor != m_actor_remotely_receiving_commands)
1169  {
1170  actor_to_reset_commandkeys = m_actor_remotely_receiving_commands;
1171  }
1172  m_actor_remotely_receiving_commands = nearest_actor;
1173 
1174  // get commands
1175  for (int i = 1; i <= MAX_COMMANDS; i++) // BEWARE: commandkeys are indexed 1-MAX_COMMANDS!
1176  {
1177  int eventID = EV_COMMANDS_01 + (i - 1);
1178 
1179  const float eventVal = RoR::App::GetInputEngine()->getEventValue(eventID);
1180  if (eventVal != nearest_actor->ar_command_key[i].playerInputValue
1181  && nearest_actor->ar_state == ActorState::LOCAL_SLEEPING)
1182  {
1183  // Wake up
1184  nearest_actor->ar_state = ActorState::LOCAL_SIMULATED;
1185  nearest_actor->ar_sleep_counter = 0.0f;
1186  }
1187 
1188  nearest_actor->ar_command_key[i].playerInputValue = eventVal;
1189  }
1190  }
1191  else
1192  {
1194  {
1195  // Just left the vicinity of the actor, but still on foot
1196  actor_to_reset_commandkeys = m_actor_remotely_receiving_commands;
1198  }
1199  }
1200  }
1202  {
1203  // Just left the vicinity of the actor by entering vehicle
1204  actor_to_reset_commandkeys = m_actor_remotely_receiving_commands;
1206  }
1207 
1208  if (actor_to_reset_commandkeys)
1209  {
1210  for (int i = 1; i <= MAX_COMMANDS; i++) // BEWARE: commandkeys are indexed 1-MAX_COMMANDS!
1211  {
1212  actor_to_reset_commandkeys->ar_command_key[i].playerInputValue = 0.f;
1213  }
1214  actor_to_reset_commandkeys = nullptr;
1215  }
1216 
1217  // AI waypoint recording
1218  if (App::GetGuiManager()->TopMenubar.ai_rec)
1219  {
1220  if (m_timer.getMilliseconds() > 1000) // Don't spam it, record every 1 sec
1221  {
1222  if (App::GetGameContext()->GetPlayerActor()) // We are in vehicle
1223  {
1224  if (App::GetGameContext()->GetPlayerActor()->getPosition().distance(prev_pos) >= 5) // Skip very close positions
1225  {
1226  ai_events waypoint;
1228  waypoint.speed = App::GetGameContext()->GetPlayerActor()->getWheelSpeed() * 3.6;
1229  if (waypoint.speed < 5)
1230  {
1231  waypoint.speed = -1;
1232  }
1233  App::GetGuiManager()->TopMenubar.ai_waypoints.push_back(waypoint);
1234  }
1236  }
1237  else // We are in feet
1238  {
1239  if (App::GetGameContext()->GetPlayerCharacter()->getPosition() != prev_pos) // Skip same positions
1240  {
1241  ai_events waypoint;
1243  App::GetGuiManager()->TopMenubar.ai_waypoints.push_back(waypoint);
1244  }
1246  }
1247  m_timer.reset();
1248  }
1249  }
1250  else
1251  {
1252  prev_pos = Ogre::Vector3::ZERO;
1253  }
1254 }
1255 
1257 {
1258 #ifdef USE_CAELUM
1259  if (App::gfx_sky_mode->getEnum<GfxSkyMode>() == GfxSkyMode::CAELUM &&
1261  {
1262  float time_factor = 1.0f;
1263 
1264  if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME))
1265  {
1266  time_factor = 1000.0f;
1267  }
1268  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME_FAST))
1269  {
1270  time_factor = 10000.0f;
1271  }
1272  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME))
1273  {
1274  time_factor = -1000.0f;
1275  }
1276  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME_FAST))
1277  {
1278  time_factor = -10000.0f;
1279  }
1280  else if (App::gfx_sky_time_cycle->getBool())
1281  {
1282  time_factor = App::gfx_sky_time_speed->getInt();
1283  }
1284 
1285  if (m_terrain->getSkyManager()->GetSkyTimeFactor() != time_factor)
1286  {
1287  m_terrain->getSkyManager()->SetSkyTimeFactor(time_factor);
1288  Str<200> msg; msg << _L("Time set to ") << m_terrain->getSkyManager()->GetPrettyTime();
1290  }
1291  }
1292 
1293 #endif // USE_CAELUM
1294  if (App::gfx_sky_mode->getEnum<GfxSkyMode>() == GfxSkyMode::SKYX &&
1296  {
1297  if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME))
1298  {
1300  }
1301  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_INCREASE_TIME_FAST))
1302  {
1304  }
1305  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME))
1306  {
1308  }
1309  else if (RoR::App::GetInputEngine()->getEventBoolValue(EV_SKY_DECREASE_TIME_FAST))
1310  {
1312  }
1313  else
1314  {
1316  }
1317  }
1318 }
1319 
1321 {
1323 
1324  // reload current truck
1325  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCKEDIT_RELOAD, 0.5f))
1326  {
1331  }
1332 
1333  // remove current truck
1334  if (App::GetInputEngine()->getEventBoolValue(EV_COMMON_REMOVE_CURRENT_TRUCK))
1335  {
1337  }
1338 
1339  // Front lights
1340  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_LOW_BEAMS))
1341  {
1343  // sync sidelights to lowbeams
1345  }
1346  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_CYCLE_TRUCK_LIGHTS))
1347  {
1348  // Smart cycling:
1349  // 1) all lights off
1350  // 2) sidelights on but only if any installed, otherwise skip to 3).
1351  // 3) sidelights and lowbeams on.
1352  // 4) sidelights, lowbeams and highbeams on, but only if highbeams are installed, otherwise cycle to 1).
1354  {
1356  }
1357  else if (!m_player_actor->getHeadlightsVisible())
1358  {
1361  }
1363  {
1367  }
1368  else
1369  {
1373  }
1374  }
1375  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_HIGH_BEAMS))
1376  {
1378  }
1379  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_FOG_LIGHTS))
1380  {
1382  }
1383 
1384  // Beacons
1385  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_TRUCK_BEACONS))
1386  {
1388  }
1389 
1390  // blinkers
1391  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_BLINK_LEFT))
1393 
1394  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_BLINK_RIGHT))
1396 
1397  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_BLINK_WARN))
1399 
1400  // custom lights
1401  for (int i = 0; i < MAX_CLIGHTS; i++)
1402  {
1403  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_LIGHTTOGGLE01 + i))
1405  }
1406 
1407  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TRUCK_REMOVE))
1408  {
1410  }
1411 
1412  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_ROPELOCK))
1413  {
1415  }
1416 
1417  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_LOCK))
1418  {
1419  //m_player_actor->hookToggle(-1, HOOK_TOGGLE, -1);
1420  ActorLinkingRequest* hook_rq = new ActorLinkingRequest();
1424 
1425  //m_player_actor->toggleSlideNodeLock();
1426  ActorLinkingRequest* slidenode_rq = new ActorLinkingRequest();
1430  }
1431 
1432  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_AUTOLOCK))
1433  {
1434  m_player_actor->hookToggle(-2, ActorLinkingRequestType::HOOK_UNLOCK, -1); //unlock all autolocks
1435  }
1436 
1437  //strap
1438  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_SECURE_LOAD))
1439  {
1441  }
1442 
1443  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_CUSTOM_PARTICLES))
1444  {
1446  }
1447 
1448  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_TOGGLE_DEBUG_VIEW))
1449  {
1451  for (ActorPtr& actor : m_player_actor->ar_linked_actors)
1452  {
1454  }
1455  }
1456 
1457  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_CYCLE_DEBUG_VIEWS))
1458  {
1460  for (ActorPtr& actor : m_player_actor->ar_linked_actors)
1461  {
1463  }
1464  }
1465 
1466  if (App::GetInputEngine()->getEventBoolValueBounce(EV_COMMON_RESCUE_TRUCK, 0.5f) &&
1467  App::mp_state->getEnum<MpState>() != MpState::CONNECTED &&
1469  {
1470  ActorPtr rescuer = nullptr;
1471  for (ActorPtr& actor : App::GetGameContext()->GetActorManager()->GetActors())
1472  {
1473  if (actor->ar_rescuer_flag)
1474  {
1475  rescuer = actor;
1476  }
1477  }
1478  if (rescuer == nullptr)
1479  {
1480  App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("No rescue truck found!"), "error.png");
1481  }
1482  else
1483  {
1484  App::GetGameContext()->PushMessage(Message(MSG_SIM_SEAT_PLAYER_REQUESTED, static_cast<void*>(new ActorPtr(rescuer))));
1485  }
1486  }
1487 
1488  // parking brake
1489  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TRAILER_PARKING_BRAKE))
1490  {
1495  }
1496 
1497  // videocam
1498  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_VIDEOCAMERA, 0.5f))
1499  {
1501  {
1503  }
1504  else
1505  {
1507  }
1508  }
1509 
1510  // enter/exit truck - Without a delay: the vehicle must brake like braking normally
1511  if (App::GetInputEngine()->getEventBoolValue(EV_COMMON_ENTER_OR_EXIT_TRUCK))
1512  {
1513  if (m_player_actor->ar_driveable != AI)
1514  {
1515  m_player_actor->ar_brake = 0.66f;
1516  }
1517  }
1518 
1519  // toggle physics
1520  if (RoR::App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_PHYSICS))
1521  {
1522  for (ActorPtr& actor : App::GetGameContext()->GetPlayerActor()->ar_linked_actors)
1523  {
1524  actor->ar_physics_paused = !App::GetGameContext()->GetPlayerActor()->ar_physics_paused;
1525  }
1527  }
1528 
1529  // reset truck
1530  if (App::GetInputEngine()->getEventBoolValue(EV_COMMON_RESET_TRUCK))
1531  {
1536  }
1537 
1538  // Commandkeys: process controller input for all commands
1539  for (int i = 1; i <= MAX_COMMANDS; i++) // BEWARE: commandkeys are indexed 1-MAX_COMMANDS!
1540  {
1541  int eventID = EV_COMMANDS_01 + (i - 1);
1542 
1543  m_player_actor->ar_command_key[i].playerInputValue = RoR::App::GetInputEngine()->getEventValue(eventID);
1544  }
1545 
1546  // Commandkeys: Apply command buttons in T-screen
1547  if (App::GetGuiManager()->VehicleInfoTPanel.GetActiveCommandKey() != COMMANDKEYID_INVALID)
1548  {
1550  }
1551 
1552  if (RoR::App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_FORWARDCOMMANDS))
1553  {
1556  {
1557  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("forwardcommands enabled"), "information.png");
1558  }
1559  else
1560  {
1561  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("forwardcommands disabled"), "information.png");
1562  }
1563  }
1564 
1565  if (RoR::App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_IMPORTCOMMANDS))
1566  {
1569  {
1570  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("importcommands enabled"), "information.png");
1571  }
1572  else
1573  {
1574  RoR::App::GetConsole()->putMessage(Console::CONSOLE_MSGTYPE_INFO, Console::CONSOLE_SYSTEM_NOTICE, _L("importcommands disabled"), "information.png");
1575  }
1576  }
1577 
1578  if (m_player_actor->getReplay())
1579  {
1581  }
1582 }
1583 
1584 // Internal heper for UpdateAirplaneInputEvents()
1585 void smoothValue(float& ref, float value, float rate)
1586 {
1587  if (value < -1)
1588  value = -1;
1589  if (value > 1)
1590  value = 1;
1591  // smooth!
1592  if (ref > value)
1593  {
1594  ref -= rate;
1595  if (ref < value)
1596  ref = value;
1597  }
1598  else if (ref < value)
1599  ref += rate;
1600 }
1601 
1603 {
1605  return;
1606 
1607  // autopilot
1609  {
1611  }
1612 
1613  // steer
1614  float commandrate = 4.0;
1617  float sum_steer = -tmp_left + tmp_right;
1618  smoothValue(m_player_actor->ar_aileron, sum_steer, dt * commandrate);
1621 
1622  // pitch
1624  float tmp_pitch_down = App::GetInputEngine()->getEventValue(EV_AIRPLANE_ELEVATOR_DOWN);
1625  float sum_pitch = tmp_pitch_down - tmp_pitch_up;
1626  smoothValue(m_player_actor->ar_elevator, sum_pitch, dt * commandrate);
1627 
1628  // rudder
1629  float tmp_rudder_left = App::GetInputEngine()->getEventValue(EV_AIRPLANE_RUDDER_LEFT);
1630  float tmp_rudder_right = App::GetInputEngine()->getEventValue(EV_AIRPLANE_RUDDER_RIGHT);
1631  float sum_rudder = tmp_rudder_left - tmp_rudder_right;
1632  smoothValue(m_player_actor->ar_rudder, sum_rudder, dt * commandrate);
1633 
1634  // brakes
1636  {
1638  }
1639 
1640  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_PARKING_BRAKE))
1641  {
1643  }
1644 
1645  // reverse
1646  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_REVERSE))
1647  {
1648  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1649  {
1651  }
1652  }
1653 
1654  // engines
1655  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_TOGGLE_ENGINES))
1656  {
1657  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1658  {
1660  }
1661  }
1662 
1663  // flaps
1664  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_FLAPS_NONE))
1665  {
1666  if (m_player_actor->ar_aerial_flap > 0)
1667  {
1669  }
1670  }
1671 
1672  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_FLAPS_FULL))
1673  {
1674  if (m_player_actor->ar_aerial_flap < 5)
1675  {
1677  }
1678  }
1679 
1680  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_FLAPS_LESS))
1681  {
1682  if (m_player_actor->ar_aerial_flap > 0)
1683  {
1685  }
1686  }
1687 
1689  {
1690  if (m_player_actor->ar_aerial_flap < 5)
1691  {
1693  }
1694  }
1695 
1696  // airbrakes
1698  {
1700  {
1702  }
1703  }
1704 
1706  {
1708  {
1710  }
1711  }
1712 
1714  {
1716  {
1718  }
1719  }
1720 
1722  {
1724  {
1726  }
1727  }
1728 
1729  // throttle
1731  if (tmp_throttle > 0)
1732  {
1733  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1734  {
1735  m_player_actor->ar_aeroengines[i]->setThrottle(tmp_throttle);
1736  }
1737  }
1738 
1739  if (App::GetInputEngine()->isEventDefined(EV_AIRPLANE_THROTTLE_AXIS))
1740  {
1742  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1743  {
1745  }
1746  }
1747 
1748  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_THROTTLE_DOWN, 0.1f))
1749  {
1750  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1751  {
1753  }
1754  }
1755 
1756  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_THROTTLE_UP, 0.1f))
1757  {
1758  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1759  {
1761  }
1762  }
1763 
1764  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_THROTTLE_NO, 0.1f))
1765  {
1766  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1767  {
1769  }
1770  }
1771 
1772  if (App::GetInputEngine()->getEventBoolValueBounce(EV_AIRPLANE_THROTTLE_FULL, 0.1f))
1773  {
1774  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1775  {
1777  }
1778  }
1779 
1780  // autopilot
1782  {
1783  for (int i = 0; i < m_player_actor->ar_num_aeroengines; i++)
1784  {
1786  }
1787  }
1788 }
1789 
1791 {
1792  // throttle
1793  if (App::GetInputEngine()->isEventDefined(EV_BOAT_THROTTLE_AXIS))
1794  {
1796  // use negative values also!
1797  f = f * 2 - 1;
1798  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1800  }
1801 
1802  if (App::GetInputEngine()->getEventBoolValueBounce(EV_BOAT_THROTTLE_DOWN, 0.1f))
1803  {
1804  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1806  }
1807 
1808  if (App::GetInputEngine()->getEventBoolValueBounce(EV_BOAT_THROTTLE_UP, 0.1f))
1809  {
1810  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1812  }
1813 
1814  // steer
1815  float tmp_steer_left = App::GetInputEngine()->getEventValue(EV_BOAT_STEER_LEFT);
1816  float tmp_steer_right = App::GetInputEngine()->getEventValue(EV_BOAT_STEER_RIGHT);
1818  float sum_steer = (tmp_steer_left - tmp_steer_right) * dt;
1819  // do not center the rudder!
1820  if (fabs(sum_steer) > 0 && stime <= 0)
1821  {
1822  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1824  }
1825 
1827  {
1830  sum_steer = (tmp_steer_left - tmp_steer_right);
1831  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1832  m_player_actor->ar_screwprops[i]->setRudder(sum_steer);
1833  }
1834 
1835  // rudder
1837  {
1838  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1840  }
1841 
1842  // reverse
1844  {
1845  for (int i = 0; i < m_player_actor->ar_num_screwprops; i++)
1847  }
1848 }
1849 
1851 {
1853  return;
1854 #ifdef USE_ANGELSCRIPT
1856  return;
1857 #endif // USE_ANGELSCRIPT
1858 
1859  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_LEFT_MIRROR_LEFT))
1861 
1862  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_LEFT_MIRROR_RIGHT))
1864 
1865  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_RIGHT_MIRROR_LEFT))
1867 
1868  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_RIGHT_MIRROR_RIGHT))
1870 
1871  // steering
1876 
1877  float sum = -std::max(tmp_left_digital, tmp_left_analog) + std::max(tmp_right_digital, tmp_right_analog);
1878 
1879  m_player_actor->ar_hydro_dir_command = Ogre::Math::Clamp(sum, -1.0f, 1.0f);
1880 
1881  m_player_actor->ar_hydro_speed_coupling = (tmp_left_digital >= tmp_left_analog) && (tmp_right_digital >= tmp_right_analog);
1882 
1884  {
1886  }
1887 
1888  if (m_player_actor->ar_brake > 1.0f / 6.0f)
1889  {
1891  }
1892  else
1893  {
1895  }
1896 
1897  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_INTER_AXLE_DIFF))
1898  {
1901  }
1902 
1903  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_INTER_WHEEL_DIFF))
1904  {
1907  }
1908 
1909  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_TCASE_4WD_MODE))
1910  {
1913  }
1914 
1915  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TOGGLE_TCASE_GEAR_RATIO))
1916  {
1919  }
1920 
1922  {
1923  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_HORN))
1924  {
1925  SOUND_TOGGLE(m_player_actor, SS_TRIG_HORN); // Police siren
1926  }
1927  }
1928  else
1929  {
1930  if (App::GetInputEngine()->getEventBoolValue(EV_TRUCK_HORN)
1931  || App::GetGuiManager()->VehicleInfoTPanel.IsHornButtonActive())
1932  {
1934  }
1935  else
1936  {
1938  }
1939  }
1940 
1941  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_PARKING_BRAKE) &&
1942  !App::GetInputEngine()->getEventBoolValue(EV_TRUCK_TRAILER_PARKING_BRAKE))
1943  {
1945  }
1946 
1947  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_ANTILOCK_BRAKE))
1948  {
1950  }
1951 
1952  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_TRACTION_CONTROL))
1953  {
1955  }
1956 
1957  if (App::GetInputEngine()->getEventBoolValueBounce(EV_TRUCK_CRUISE_CONTROL))
1958  {
1960  }
1961 
1963  {
1965  }
1966 
1968  for (ActorPtr linked_actor : m_player_actor->ar_linked_actors)
1969  {
1970  linked_actor->UpdatePropAnimInputEvents();
1971  }
1972 }
1973 
RoR::MSG_EDI_MODIFY_PROJECT_REQUESTED
@ MSG_EDI_MODIFY_PROJECT_REQUESTED
Payload = RoR::UpdateProjectRequest* (owner)
Definition: Application.h:156
RoR::Actor::setHighBeamsVisible
void setHighBeamsVisible(bool val)
Definition: Actor.h:202
ROR_ASSERT
#define ROR_ASSERT(_EXPR)
Definition: Application.h:40
GameContext.h
Game state manager and message-queue provider.
RoR::GUIManager::VehicleInfoTPanel
GUI::VehicleInfoTPanel VehicleInfoTPanel
Definition: GUIManager.h:120
RoR::CameraManager::UpdateInputEvents
void UpdateInputEvents(float dt)
Definition: CameraManager.cpp:242
RoR::Engine::autoShiftSet
void autoShiftSet(int mode)
Definition: Engine.cpp:1154
RoR::EV_COMMON_SCREENSHOT
@ EV_COMMON_SCREENSHOT
take a screenshot
Definition: InputEngine.h:260
RoR::EV_AIRPLANE_RUDDER_RIGHT
@ EV_AIRPLANE_RUDDER_RIGHT
rudder right
Definition: InputEngine.h:90
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:53
RoR::GfxActor::SetDebugView
void SetDebugView(DebugViewType dv)
Definition: GfxActor.cpp:1577
RoR::EV_AIRPLANE_THROTTLE
@ EV_AIRPLANE_THROTTLE
Definition: InputEngine.h:93
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:1407
RoR::App::gfx_polygon_mode
CVar * gfx_polygon_mode
Definition: Application.cpp:228
RoR::App::GetNetwork
Network * GetNetwork()
Definition: Application.cpp:300
RoR::Character::setPosition
void setPosition(Ogre::Vector3 position)
Definition: Character.cpp:85
RoR::Terrain::GetDef
Terrn2DocumentPtr GetDef()
Definition: Terrain.cpp:577
RoR::ModifyProjectRequest::mpr_subject
std::string mpr_subject
Definition: CacheSystem.h:260
RoR::Actor::getMinCameraRadius
float getMinCameraRadius()
Definition: Actor.h:267
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:421
RoR::ActorSpawnRequest::asr_net_color
int asr_net_color
Definition: SimData.h:846
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:95
RoR::Actor::getWheelSpeed
float getWheelSpeed() const
Definition: Actor.h:94
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:122
RoR::GUI::GameSettings::SetVisible
void SetVisible(bool v)
Definition: GUI_GameSettings.cpp:541
RoR::GfxScene::GetEnvMap
GfxEnvmap & GetEnvMap()
Definition: GfxScene.h:81
RoR::MACHINE
@ MACHINE
its a machine
Definition: SimData.h:88
RoR::EV_COMMON_RESET_TRUCK
@ EV_COMMON_RESET_TRUCK
reset truck to original starting position
Definition: InputEngine.h:256
OverlayWrapper.h
RoR::GameContext::ModifyActor
void ModifyActor(ActorModifyRequest &rq)
Definition: GameContext.cpp:369
RoR::Actor::ar_physics_paused
bool ar_physics_paused
Actor physics individually paused by user.
Definition: Actor.h:491
RoR::EV_TRUCK_RIGHT_MIRROR_RIGHT
@ EV_TRUCK_RIGHT_MIRROR_RIGHT
Definition: InputEngine.h:331
RoR::MSG_EDI_RELOAD_BUNDLE_REQUESTED
@ MSG_EDI_RELOAD_BUNDLE_REQUESTED
Payload = RoR::CacheEntryPtr* (owner)
Definition: Application.h:153
RoR::InputSourceType::IST_ANALOG
@ IST_ANALOG
RoR::GfxActor::UpdateSimDataBuffer
void UpdateSimDataBuffer()
Copies sim. data from Actor to GfxActor for later update.
Definition: GfxActor.cpp:1731
RoR::TRUCK
@ TRUCK
its a truck (or other land vehicle)
Definition: SimData.h:85
RoR::Actor::ar_filename
std::string ar_filename
Attribute; filled at spawn.
Definition: Actor.h:447
RoR::MpState::CONNECTED
@ CONNECTED
RoR::Terrain::getMaxTerrainSize
Ogre::Vector3 getMaxTerrainSize()
Definition: Terrain.cpp:498
RoR::GUIManager::FrictionSettings
GUI::FrictionSettings FrictionSettings
Definition: GUIManager.h:127
RoR::EV_COMMON_TOGGLE_TRUCK_BEACONS
@ EV_COMMON_TOGGLE_TRUCK_BEACONS
toggle truck beacons
Definition: InputEngine.h:272
RoR::EV_TRUCK_RIGHT_MIRROR_LEFT
@ EV_TRUCK_RIGHT_MIRROR_LEFT
Definition: InputEngine.h:330
RoR::EV_TRUCK_BLINK_RIGHT
@ EV_TRUCK_BLINK_RIGHT
toggle right direction indicator (blinker)
Definition: InputEngine.h:303
RoR::Actor::toggleAxleDiffMode
void toggleAxleDiffMode()
Definition: Actor.cpp:1404
RoR::GfxScene::GetSimDataBuffer
GameContextSB & GetSimDataBuffer()
Definition: GfxScene.h:80
MAX_CLIGHTS
static const int MAX_CLIGHTS
See RoRnet::Lightmask and enum events in InputEngine.h.
Definition: SimConstants.h:35
RoR::CacheEntry::tuneup_def
TuneupDefPtr tuneup_def
Cached tuning info, added on first use or during cache rebuild.
Definition: CacheSystem.h:93
RoR::GameContext::m_last_skin_selection
CacheEntryPtr m_last_skin_selection
Definition: GameContext.h:200
RoR::Actor::setHeadlightsVisible
void setHeadlightsVisible(bool val)
Definition: Actor.h:200
RoR::LT_AddonPart
@ LT_AddonPart
Definition: Application.h:470
RoR::CharacterFactory::UndoRemoteActorCoupling
void UndoRemoteActorCoupling(ActorPtr actor)
Definition: CharacterFactory.cpp:90
RoR::Terrn2Parser
Definition: Terrn2FileFormat.h:81
RoR::EV_COMMON_ENTER_OR_EXIT_TRUCK
@ EV_COMMON_ENTER_OR_EXIT_TRUCK
enter or exit a truck
Definition: InputEngine.h:228
RoR::App::GetCameraManager
CameraManager * GetCameraManager()
Definition: Application.cpp:291
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:843
RoR::CacheEntryPtr
RefCountingObjectPtr< CacheEntry > CacheEntryPtr
Definition: ForwardDeclarations.h:229
RoR::node_t::AbsPosition
Ogre::Vector3 AbsPosition
absolute position in the world (shaky)
Definition: SimData.h:267
RoR::EV_BOAT_STEER_LEFT_AXIS
@ EV_BOAT_STEER_LEFT_AXIS
steer left (analog value!)
Definition: InputEngine.h:103
VehicleAI.h
Simple waypoint AI.
RoR::App::GetGuiManager
GUIManager * GetGuiManager()
Definition: Application.cpp:285
RoR::Actor::ar_parking_brake
bool ar_parking_brake
Definition: Actor.h:438
RoR::App::sim_soft_reset_mode
CVar * sim_soft_reset_mode
Definition: Application.cpp:109
RoRnet::UserInfo
Definition: RoRnet.h:178
RoR::ActorLinkingRequest
Estabilishing a physics linkage between 2 actors modifies a global linkage table and triggers immedia...
Definition: SimData.h:908
RoR::EV_COMMON_TOGGLE_RESET_MODE
@ EV_COMMON_TOGGLE_RESET_MODE
toggle truck reset truck mode (soft vs. hard)
Definition: InputEngine.h:257
DashBoardManager.h
RoR::Actor::ar_linked_actors
ActorPtrVec ar_linked_actors
BEWARE: Includes indirect links, see DetermineLinkedActors(); Other actors linked using 'hooks/ties/r...
Definition: Actor.h:489
RoR::GameContext::m_character_factory
CharacterFactory m_character_factory
Definition: GameContext.h:207
GUI_FrictionSettings.h
RoR::GfxActor::ToggleDebugView
void ToggleDebugView()
Definition: GfxActor.cpp:1569
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:276
RoR::Actor::ar_instance_id
ActorInstanceID_t ar_instance_id
Static attr; session-unique ID.
Definition: Actor.h:400
z
float z
Definition: (ValueTypes) quaternion.h:7
RoR::Actor::ar_num_nodes
int ar_num_nodes
Definition: Actor.h:317
RoR::Collisions::getSurfaceHeightBelow
float getSurfaceHeightBelow(float x, float z, float height)
Definition: Collisions.cpp:709
RoR::ActorModifyRequest::Type::REFRESH_VISUALS
@ REFRESH_VISUALS
Forces a synchronous update of visuals from any context - i.e. from terrain editor mode or with sleep...
SkyManager.h
RoR::AppState::MAIN_MENU
@ MAIN_MENU
RoR::LT_Skin
@ LT_Skin
Definition: Application.h:468
RoR::GfxScene::RemoveGfxActor
void RemoveGfxActor(RoR::GfxActor *gfx_actor)
Definition: GfxScene.cpp:329
GUI_TopMenubar.h
RoR::GameContext::m_actor_remotely_receiving_commands
ActorPtr m_actor_remotely_receiving_commands
Actor close enough to import command keys.
Definition: GameContext.h:197
RoR::GameContext::m_last_section_config
Ogre::String m_last_section_config
Definition: GameContext.h:202
RoR::App::GetAppContext
AppContext * GetAppContext()
Definition: Application.cpp:282
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:55
RoR::Actor::getFogLightsVisible
bool getFogLightsVisible() const
Definition: Actor.h:203
RoR::GfxActor::CycleDebugViews
void CycleDebugViews()
Definition: GfxActor.cpp:1595
RoR::Actor::toggleWheelDiffMode
void toggleWheelDiffMode()
Definition: Actor.cpp:1396
format
Truck file format(technical spec)
RoR::MSG_SIM_UNPAUSE_REQUESTED
@ MSG_SIM_UNPAUSE_REQUESTED
Definition: Application.h:117
RoR::EV_COMMON_AUTOLOCK
@ EV_COMMON_AUTOLOCK
unlock autolock hook node
Definition: InputEngine.h:225
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:515
RoR::EV_TRUCK_BLINK_WARN
@ EV_TRUCK_BLINK_WARN
toggle all direction indicators
Definition: InputEngine.h:304
RoR::EV_AIRPLANE_AIRBRAKES_NONE
@ EV_AIRPLANE_AIRBRAKES_NONE
Definition: InputEngine.h:79
Terrn2FileFormat.h
RoR::GameContext::UpdateCommonInputEvents
void UpdateCommonInputEvents(float dt)
Definition: GameContext.cpp:1320
RoR::ActorLinkingRequest::alr_type
ActorLinkingRequestType alr_type
Definition: SimData.h:911
RoR::GameContext::GetPlayerCharacter
Character * GetPlayerCharacter()
Definition: GameContext.cpp:897
RoR::CameraManager::NotifyVehicleChanged
void NotifyVehicleChanged(ActorPtr new_vehicle)
Definition: CameraManager.cpp:642
RoR::EV_COMMON_ENTER_PREVIOUS_TRUCK
@ EV_COMMON_ENTER_PREVIOUS_TRUCK
enter previous truck
Definition: InputEngine.h:230
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:423
RoR::ActorManager::FindActorInsideBox
ActorPtr FindActorInsideBox(Collisions *collisions, const Ogre::String &inst, const Ogre::String &box)
Definition: ActorManager.cpp:816
RoR::GameContext::OnLoaderGuiApply
void OnLoaderGuiApply(RoR::LoaderType type, CacheEntryPtr entry, std::string sectionconfig)
GUI callback.
Definition: GameContext.cpp:704
RoR::App::GetOverlayWrapper
OverlayWrapper * GetOverlayWrapper()
Definition: Application.cpp:284
RoR::ActorModifyRequest::Type::RESTORE_SAVED
@ RESTORE_SAVED
RoR::CacheQuery
Definition: CacheSystem.h:167
RoR::CharacterFactory::CreateLocalCharacter
Character * CreateLocalCharacter()
Definition: CharacterFactory.cpp:32
RoR::EV_TRUCK_CRUISE_CONTROL
@ EV_TRUCK_CRUISE_CONTROL
toggle cruise control
Definition: InputEngine.h:308
RoR::ActorLinkingRequestType::HOOK_TOGGLE
@ HOOK_TOGGLE
RoR::LogFormat
void LogFormat(const char *format,...)
Improved logging utility. Uses fixed 2Kb buffer.
Definition: Application.cpp:440
RoR::GameContext::m_last_tuneup_selection
CacheEntryPtr m_last_tuneup_selection
Definition: GameContext.h:201
RoR::Collisions::getPosition
Ogre::Vector3 getPosition(const Ogre::String &inst, const Ogre::String &box)
Definition: Collisions.cpp:1166
RoR::Actor::toggleCustomParticles
void toggleCustomParticles()
Definition: Actor.cpp:3231
RoR::Actor::ar_toggle_ropes
bool ar_toggle_ropes
Sim state.
Definition: Actor.h:527
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:103
RoR::GUIManager::GameControls
GUI::GameControls GameControls
Definition: GUIManager.h:129
RoR::ActorLinkingRequestType::HOOK_UNLOCK
@ HOOK_UNLOCK
RoR::EV_COMMON_GET_NEW_VEHICLE
@ EV_COMMON_GET_NEW_VEHICLE
get new vehicle
Definition: InputEngine.h:243
RoR::GameContext::TeleportPlayer
void TeleportPlayer(float x, float z)
Definition: GameContext.cpp:905
RoR::GameContext::UpdateActors
void UpdateActors()
Definition: GameContext.cpp:600
RoR::EV_TRUCK_TOGGLE_FORWARDCOMMANDS
@ EV_TRUCK_TOGGLE_FORWARDCOMMANDS
toggle forwardcommands
Definition: InputEngine.h:363
RoR::Actor::ar_trailer_parking_brake
bool ar_trailer_parking_brake
Definition: Actor.h:439
RoR::EV_TRUCK_TRACTION_CONTROL
@ EV_TRUCK_TRACTION_CONTROL
toggle antilockbrake system
Definition: InputEngine.h:371
RoR::GameContext::RespawnLastActor
void RespawnLastActor()
Definition: GameContext.cpp:611
RoR::LT_Load
@ LT_Load
Definition: Application.h:466
RoR::EV_BOAT_THROTTLE_DOWN
@ EV_BOAT_THROTTLE_DOWN
decrease throttle
Definition: InputEngine.h:107
RoR::LT_Airplane
@ LT_Airplane
Definition: Application.h:463
RoR::ActorManager::FetchPreviousVehicleOnList
const ActorPtr & FetchPreviousVehicleOnList(ActorPtr player, ActorPtr prev_player)
Definition: ActorManager.cpp:984
RoR::ActorSpawnRequest::asr_working_tuneup
TuneupDefPtr asr_working_tuneup
Only filled when editing tuneup via Tuning menu.
Definition: SimData.h:842
RoR::SS_TRIG_PUMP
@ SS_TRIG_PUMP
Definition: SoundScriptManager.h:61
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:281
RoR::EV_COMMON_ENTER_NEXT_TRUCK
@ EV_COMMON_ENTER_NEXT_TRUCK
enter next truck
Definition: InputEngine.h:229
RoR::GameContext::m_actor_manager
ActorManager m_actor_manager
Definition: GameContext.h:193
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:119
RoR::Actor::ar_aerial_flap
int ar_aerial_flap
Sim state; state of aircraft flaps (values: 0-5)
Definition: Actor.h:445
RoR::LT_Car
@ LT_Car
Definition: Application.h:461
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
Engine.h
RoR::CacheEntry::sectionconfigs
std::vector< Ogre::String > sectionconfigs
Definition: CacheSystem.h:142
RoR::CameraManager::GetCameraNode
Ogre::SceneNode * GetCameraNode()
Definition: CameraManager.h:63
Utils.h
RoR::ActorSpawnRequest::asr_filename
std::string asr_filename
Can be in "Bundle-qualified" format, i.e. "mybundle.zip:myactor.truck".
Definition: SimData.h:835
RoR::NOT_DRIVEABLE
@ NOT_DRIVEABLE
not drivable at all
Definition: SimData.h:84
RoR::GUI::MainSelector::Show
void Show(LoaderType type, std::string const &filter_guid="", CacheEntryPtr advertised_entry=nullptr)
Definition: GUI_MainSelector.cpp:66
smoothValue
void smoothValue(float &ref, float value, float rate)
Definition: GameContext.cpp:1585
RoR::EV_COMMON_FULLSCREEN_TOGGLE
@ EV_COMMON_FULLSCREEN_TOGGLE
Definition: InputEngine.h:236
RoR::EV_AIRPLANE_RUDDER_LEFT
@ EV_AIRPLANE_RUDDER_LEFT
rudder left
Definition: InputEngine.h:89
RoR::Actor::displayAxleDiffMode
void displayAxleDiffMode()
Cycles through the available inter axle diff modes.
Definition: Actor.cpp:1412
RoR::Terrn2DocumentPtr
std::shared_ptr< Terrn2Document > Terrn2DocumentPtr
Definition: ForwardDeclarations.h:226
RoR::GameContextSB::simbuf_player_actor
ActorPtr simbuf_player_actor
Definition: SimBuffers.h:203
RoR::Actor::ar_dashboard
DashBoardManager * ar_dashboard
Definition: Actor.h:455
RoR::Actor::tractioncontrolToggle
void tractioncontrolToggle()
Definition: Actor.cpp:3813
RoR::CacheEntry::description
Ogre::String description
Definition: CacheSystem.h:105
RoR::LT_Extension
@ LT_Extension
Definition: Application.h:467
RoR::CacheQueryResult::cqr_entry
CacheEntryPtr cqr_entry
Definition: CacheSystem.h:153
RoR::InputEngine::getEventBoolValueBounce
bool getEventBoolValueBounce(int eventID, float time=0.2f)
Definition: InputEngine.cpp:769
RoR::collision_box_t
Definition: SimData.h:677
RoR::Engine::setAutoMode
void setAutoMode(SimGearboxMode mode)
Definition: Engine.cpp:847
RefCountingObjectPtr< CacheEntry >
RoR::MSG_APP_DISPLAY_WINDOWED_REQUESTED
@ MSG_APP_DISPLAY_WINDOWED_REQUESTED
Definition: Application.h:88
RoR::InputEngine::getEventValue
float getEventValue(int eventID, bool pure=false, InputSourceType valueSource=InputSourceType::IST_ANY)
valueSource: IST_ANY=digital and analog devices, IST_DIGITAL=only digital, IST_ANALOG=only analog
Definition: InputEngine.cpp:965
RoR::Actor::beaconsToggle
void beaconsToggle()
Definition: Actor.cpp:3822
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:525
RoR::Actor::ar_left_mirror_angle
float ar_left_mirror_angle
Sim state; rear view mirror angle.
Definition: Actor.h:440
RoR::AeroEngine::toggleReverse
virtual void toggleReverse()=0
RoR::GfxActor::SetVideoCamState
void SetVideoCamState(VideoCamState state)
Definition: GfxActor.cpp:442
Actor.h
RoR::EV_AIRPLANE_REVERSE
@ EV_AIRPLANE_REVERSE
reverse the turboprops
Definition: InputEngine.h:88
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:441
RoR::GUI::FrictionSettings::AnalyzeTerrain
void AnalyzeTerrain()
Definition: GUI_FrictionSettings.cpp:139
RoR::Console::CONSOLE_SYSTEM_NOTICE
@ CONSOLE_SYSTEM_NOTICE
Definition: Console.h:51
RoR::GUIManager::RepositorySelector
GUI::RepositorySelector RepositorySelector
Definition: GUIManager.h:130
RoR::ActorSpawnRequest
Definition: SimData.h:817
RoR::SkyXManager::GetSkyX
SkyX::SkyX * GetSkyX()
Definition: SkyXManager.h:52
RoR::Actor::SoftReset
void SoftReset()
Definition: Actor.cpp:1622
RoR::SimGearboxMode::AUTO
@ AUTO
Automatic shift.
RoR::AeroEngine::flipStart
virtual void flipStart()=0
RoR::App::sim_tuning_enabled
CVar * sim_tuning_enabled
Definition: Application.cpp:112
RoR::MSG_APP_DISPLAY_FULLSCREEN_REQUESTED
@ MSG_APP_DISPLAY_FULLSCREEN_REQUESTED
Definition: Application.h:87
RoR::AppContext::GetForceFeedback
RoR::ForceFeedback & GetForceFeedback()
Definition: AppContext.h:68
RoR::GameContext::SpawnActor
ActorPtr SpawnActor(ActorSpawnRequest &rq)
Definition: GameContext.cpp:193
RoR::LT_Boat
@ LT_Boat
Definition: Application.h:462
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:85
Replay.h
RoR::ActorModifyRequest::amr_actor
ActorInstanceID_t amr_actor
Definition: SimData.h:875
RoR::Actor::getReplay
Replay * getReplay()
Definition: Actor.cpp:4591
RoR::GameContext::UpdateGlobalInputEvents
void UpdateGlobalInputEvents()
Definition: GameContext.cpp:943
RoR::EV_TRUCK_STEER_LEFT
@ EV_TRUCK_STEER_LEFT
steer left
Definition: InputEngine.h:359
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:460
RoR::GfxActor::GetVideoCamState
VideoCamState GetVideoCamState() const
Definition: GfxActor.h:144
RoR::ActorSpawnRequest::asr_config
Ogre::String asr_config
Definition: SimData.h:836
RoR::EV_BOAT_THROTTLE_UP
@ EV_BOAT_THROTTLE_UP
increase throttle
Definition: InputEngine.h:108
RoR::Actor::ar_aeroengines
AeroEngine * ar_aeroengines[MAX_AEROENGINES]
Definition: Actor.h:360
RoR::GameContext::m_msg_chain_end
Message * m_msg_chain_end
Definition: GameContext.h:186
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:362
RoR::EV_TRUCK_TRAILER_PARKING_BRAKE
@ EV_TRUCK_TRAILER_PARKING_BRAKE
toggle trailer parking brake
Definition: InputEngine.h:329
RoR::ActorManager::UpdateSleepingState
void UpdateSleepingState(ActorPtr player_actor, float dt)
Definition: ActorManager.cpp:747
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:77
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:273
RoR::ActorModifyRequest::amr_softrespawn_rotation
Ogre::Quaternion amr_softrespawn_rotation
Rotation to use with SOFT_RESPAWN; use TObjParser::CalcRotation() to calculate quaternion from XYZ li...
Definition: SimData.h:882
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:203
RoR::GfxSkyMode::CAELUM
@ CAELUM
Caelum (best looking, slower)
RoR::Actor::ar_num_aeroengines
int ar_num_aeroengines
Definition: Actor.h:361
RoR::Actor::getMinHeight
float getMinHeight(bool skip_virtual_nodes=true)
Definition: Actor.cpp:1557
RoR::GUIManager::MultiplayerSelector
GUI::MultiplayerSelector MultiplayerSelector
Definition: GUIManager.h:123
RoR::Actor::ar_airbrake_intensity
int ar_airbrake_intensity
Physics state; values 0-5.
Definition: Actor.h:449
RoR::Str< 200 >
RoR::CacheSystem::FindEntryByFilename
CacheEntryPtr FindEntryByFilename(RoR::LoaderType type, bool partial, const std::string &_filename_maybe_bundlequalified)
Returns NULL if none found; "Bundle-qualified" format also specifies the ZIP/directory in modcache,...
Definition: CacheSystem.cpp:186
RoR::EV_BOAT_REVERSE
@ EV_BOAT_REVERSE
no thrust
Definition: InputEngine.h:101
RoR::Actor::ar_engine
EnginePtr ar_engine
Definition: Actor.h:403
RoR::GUI::RepositorySelector::SetVisible
void SetVisible(bool visible)
Definition: GUI_RepositorySelector.cpp:1238
RoR::Terrain::getHeightAt
float getHeightAt(float x, float z)
Definition: Terrain.cpp:505
RoR::GameContext::LoadTerrain
bool LoadTerrain(std::string const &filename_part)
Definition: GameContext.cpp:112
RoR::ActorModifyRequest
Definition: SimData.h:857
RoR::GameContext::PopMessage
Message PopMessage()
Definition: GameContext.cpp:96
RoR::MSG_SIM_SEAT_PLAYER_REQUESTED
@ MSG_SIM_SEAT_PLAYER_REQUESTED
Payload = RoR::ActorPtr (owner) | nullptr.
Definition: Application.h:124
RoR::EV_TRUCK_LIGHTTOGGLE01
@ EV_TRUCK_LIGHTTOGGLE01
toggle custom light 1
Definition: InputEngine.h:315
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:194
RoR::Collisions::getBox
collision_box_t * getBox(const Ogre::String &inst, const Ogre::String &box)
Definition: Collisions.cpp:1190
RoR::EV_TRUCK_LEFT_MIRROR_LEFT
@ EV_TRUCK_LEFT_MIRROR_LEFT
Definition: InputEngine.h:313
RoR::ActorSpawnRequest::asr_tuneup_entry
CacheEntryPtr asr_tuneup_entry
Only filled when user selected a saved/downloaded .tuneup mod in SelectorUI.
Definition: SimData.h:841
RoR::EV_COMMON_RESPAWN_LAST_TRUCK
@ EV_COMMON_RESPAWN_LAST_TRUCK
respawn last truck
Definition: InputEngine.h:232
RoR::GameContext::ChangePlayerActor
void ChangePlayerActor(ActorPtr actor)
Definition: GameContext.cpp:487
BITMASK_IS_1
#define BITMASK_IS_1(VAR, FLAGS)
Definition: BitFlags.h:14
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:1097
RoR::DashBoardManager::setVisible3d
void setVisible3d(bool visibility)
Definition: DashBoardManager.cpp:437
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:834
RoR::CacheQueryResult
Definition: CacheSystem.h:147
ScriptEngine.h
RoR::Actor::getTyrePressure
TyrePressure & getTyrePressure()
Definition: Actor.h:232
RoR::GameContext::DeleteActor
void DeleteActor(ActorPtr actor)
Definition: GameContext.cpp:438
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:1360
RoR::EV_AIRPLANE_TOGGLE_ENGINES
@ EV_AIRPLANE_TOGGLE_ENGINES
switch all engines on / off
Definition: InputEngine.h:99
RoR::Character
Definition: Character.h:39
RoR::Actor::getSectionConfig
Ogre::String getSectionConfig()
Definition: Actor.h:243
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:204
RoR::Actor::SyncReset
void SyncReset(bool reset_position)
this one should be called only synchronously (without physics running in background)
Definition: Actor.cpp:1646
RoR::Actor::antilockbrakeToggle
void antilockbrakeToggle()
Definition: Actor.cpp:3804
RoR::EV_SKY_INCREASE_TIME
@ EV_SKY_INCREASE_TIME
increase day-time
Definition: InputEngine.h:111
RoR::Actor::ar_hydro_speed_coupling
bool ar_hydro_speed_coupling
Definition: Actor.h:521
RoR::Actor::getHeadlightsVisible
bool getHeadlightsVisible() const
Definition: Actor.h:199
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:341
RoR::Autopilot::wantsdisconnect
bool wantsdisconnect
Definition: AutoPilot.h:54
RoR::CacheEntry::skin_def
SkinDocumentPtr skin_def
Cached skin info, added on first use or during cache rebuild.
Definition: CacheSystem.h:92
RoR::Terrain::GetCollisions
Collisions * GetCollisions()
Definition: Terrain.h:85
RoR::EV_BOAT_STEER_LEFT
@ EV_BOAT_STEER_LEFT
steer left a step
Definition: InputEngine.h:102
RoR::Actor::getPosition
Ogre::Vector3 getPosition()
Definition: Actor.cpp:371
RoR::GameContext::m_last_cache_selection
CacheEntryPtr m_last_cache_selection
Vehicle/load.
Definition: GameContext.h:199
RoR::EV_TRUCK_TOGGLE_TCASE_4WD_MODE
@ EV_TRUCK_TOGGLE_TCASE_4WD_MODE
toggle the transfer case 4wd mode
Definition: InputEngine.h:368
RoR::Actor::hookToggle
void hookToggle(int group=-1, ActorLinkingRequestType mode=ActorLinkingRequestType::HOOK_TOGGLE, NodeNum_t mousenode=NODENUM_INVALID, ActorInstanceID_t forceunlock_filter=ACTORINSTANCEID_INVALID)
Definition: Actor.cpp:3651
RoR::FlareType::SIDELIGHT
@ SIDELIGHT
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:835
RoR::EV_TRUCK_TOGGLE_VIDEOCAMERA
@ EV_TRUCK_TOGGLE_VIDEOCAMERA
toggle videocamera update
Definition: InputEngine.h:370
RoR::BLINK_RIGHT
@ BLINK_RIGHT
Definition: SimData.h:117
RoR::MSG_GUI_OPEN_SELECTOR_REQUESTED
@ MSG_GUI_OPEN_SELECTOR_REQUESTED
Payload = LoaderType* (owner), Description = GUID | empty.
Definition: Application.h:139
RoR::BLINK_WARN
@ BLINK_WARN
Definition: SimData.h:118
SOUND_START
#define SOUND_START(_ACTOR_, _TRIG_)
Definition: SoundScriptManager.h:35
RoR::LT_Vehicle
@ LT_Vehicle
Definition: Application.h:459
RoR::GameContext::prev_pos
Ogre::Vector3 prev_pos
Definition: GameContext.h:214
RoR::LT_Trailer
@ LT_Trailer
Definition: Application.h:464
RoR::MSG_SIM_HIDE_NET_ACTOR_REQUESTED
@ MSG_SIM_HIDE_NET_ACTOR_REQUESTED
Payload = ActorPtr* (owner)
Definition: Application.h:126
RoR::LoaderType
LoaderType
< Search mode for ModCache::Query() & Operation mode for GUI::MainSelector
Definition: Application.h:455
RoR::MSG_GUI_REFRESH_TUNING_MENU_REQUESTED
@ MSG_GUI_REFRESH_TUNING_MENU_REQUESTED
Definition: Application.h:146
RoR::InputEngine::isEventDefined
bool isEventDefined(int eventID)
Definition: InputEngine.cpp:915
RoR::OverlayWrapper::showDashboardOverlays
void showDashboardOverlays(bool show, ActorPtr actor)
Definition: OverlayWrapper.cpp:374
RoR::ModifyProjectRequest::mpr_target_actor
ActorPtr mpr_target_actor
Definition: CacheSystem.h:256
RoR::InputEngine::getEventBoolValue
bool getEventBoolValue(int eventID)
Definition: InputEngine.cpp:764
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:526
RoR::Screwprop::setThrottle
void setThrottle(float val)
Definition: ScrewProp.cpp:76
RoR::App::GetConsole
Console * GetConsole()
Definition: Application.cpp:286
RoR::EV_COMMON_LOCK
@ EV_COMMON_LOCK
connect hook node to a node in close proximity
Definition: InputEngine.h:239
RoR::EV_COMMON_TRUCK_REMOVE
@ EV_COMMON_TRUCK_REMOVE
Definition: InputEngine.h:279
RoR::EV_TRUCK_TOGGLE_INTER_WHEEL_DIFF
@ EV_TRUCK_TOGGLE_INTER_WHEEL_DIFF
toggle the inter wheel differential mode
Definition: InputEngine.h:366
SoundScriptManager.h
RoR::Message::payload
void * payload
Definition: GameContext.h:59
RoR::Network::GetLocalUserData
RoRnet::UserInfo GetLocalUserData()
Definition: Network.cpp:699
RoR::App::GetGameContext
GameContext * GetGameContext()
Definition: Application.cpp:296
RoR::EV_BOAT_CENTER_RUDDER
@ EV_BOAT_CENTER_RUDDER
center the rudder
Definition: InputEngine.h:100
RoR::MSG_APP_SCREENSHOT_REQUESTED
@ MSG_APP_SCREENSHOT_REQUESTED
Definition: Application.h:86
RoR::Character::getPosition
Ogre::Vector3 getPosition()
Definition: Character.cpp:92
RoR::AIRPLANE
@ AIRPLANE
its an airplane
Definition: SimData.h:86
RoR::Actor::ar_autopilot
Autopilot * ar_autopilot
Definition: Actor.h:406
RoR::Actor::getSideLightsVisible
bool getSideLightsVisible() const
Definition: Actor.h:197
RoR::EV_AIRPLANE_AIRBRAKES_MORE
@ EV_AIRPLANE_AIRBRAKES_MORE
Definition: InputEngine.h:78
RoR::EV_AIRPLANE_FLAPS_FULL
@ EV_AIRPLANE_FLAPS_FULL
full flaps in an aircraft.
Definition: InputEngine.h:83
RoR::EV_TRUCK_HORN
@ EV_TRUCK_HORN
truck horn
Definition: InputEngine.h:312
RoR::GUI::FlexbodyDebug::AnalyzeFlexbodies
void AnalyzeFlexbodies()
populates the combobox
Definition: GUI_FlexbodyDebug.cpp:184
RoR::AppState::SIMULATION
@ SIMULATION
RoR::Actor::ar_sleep_counter
float ar_sleep_counter
Sim state; idle time counter.
Definition: Actor.h:436
RoR::Message::chain
std::vector< Message > chain
Posted after the message is processed.
Definition: GameContext.h:60
RoR::EV_BOAT_THROTTLE_AXIS
@ EV_BOAT_THROTTLE_AXIS
throttle axis. Only use this if you have fitting hardware :) (i.e. a Slider)
Definition: InputEngine.h:106
RoR::Actor::getHeightAboveGroundBelow
float getHeightAboveGroundBelow(float height, bool skip_virtual_nodes=true)
Definition: Actor.cpp:1597
RoR::Actor::ar_num_screwprops
int ar_num_screwprops
Definition: Actor.h:363
RoR::EV_COMMON_SECURE_LOAD
@ EV_COMMON_SECURE_LOAD
tie a load to the truck
Definition: InputEngine.h:262
SOUND_STOP
#define SOUND_STOP(_ACTOR_, _TRIG_)
Definition: SoundScriptManager.h:36
RoR::ActorSpawnRequest::net_stream_id
int net_stream_id
Definition: SimData.h:849
RoR::Terrain::dispose
void dispose()
Definition: Terrain.cpp:79
RoR::BLINK_LEFT
@ BLINK_LEFT
Definition: SimData.h:116
RoR::ActorSpawnRequest::Origin::TERRN_DEF
@ TERRN_DEF
Preloaded with terrain.
RoR::Engine::DRIVE
@ DRIVE
Definition: Engine.h:171
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:852
RoR::EV_COMMON_TOGGLE_TERRAIN_EDITOR
@ EV_COMMON_TOGGLE_TERRAIN_EDITOR
toggle terrain editor
Definition: InputEngine.h:266
RoR::ActorModifyRequest::amr_softrespawn_position
Ogre::Vector3 amr_softrespawn_position
Position to use with SOFT_RESPAWN.
Definition: SimData.h:881
RoR::ActorSpawnRequest::asr_skin_entry
CacheEntryPtr asr_skin_entry
Definition: SimData.h:840
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:274
RoR::Collisions::getSurfaceHeight
float getSurfaceHeight(float x, float z)
Definition: Collisions.cpp:704
RoR::GameContext::m_timer
Ogre::Timer m_timer
Definition: GameContext.h:213
RoR::VideoCamState::VCSTATE_DISABLED
@ VCSTATE_DISABLED
RoR::ActorSpawnRequest::asr_net_username
std::string asr_net_username
Definition: SimData.h:845
RoR::ActorSpawnRequest::Origin::AI
@ AI
Script controlled.
RoR::ActorModifyRequest::amr_saved_state
std::shared_ptr< rapidjson::Document > amr_saved_state
Definition: SimData.h:878
RoR::App::gfx_sky_mode
CVar * gfx_sky_mode
Definition: Application.cpp:231
RoR::tryConvertUTF
std::string tryConvertUTF(const char *buffer)
Definition: Utils.cpp:61
RoR::Actor::toggleSlideNodeLock
void toggleSlideNodeLock()
Definition: ActorSlideNode.cpp:34
RoR::GUIManager::TopMenubar
GUI::TopMenubar TopMenubar
Definition: GUIManager.h:133
RoR::GameContext::m_msg_queue
GameMsgQueue m_msg_queue
Definition: GameContext.h:185
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:150
RoR::SS_TRIG_HORN
@ SS_TRIG_HORN
Definition: SoundScriptManager.h:59
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:454
RoR::ModifyProjectRequest
Definition: CacheSystem.h:254
RoR::Actor::GetCameraRoll
Ogre::Vector3 GetCameraRoll()
Definition: Actor.h:279
RoR::CharacterFactory::GetLocalCharacter
Character * GetLocalCharacter()
Definition: CharacterFactory.h:44
RoR::LT_Terrain
@ LT_Terrain
Definition: Application.h:458
RoR::Actor::toggleTransferCaseMode
void toggleTransferCaseMode()
Definition: Actor.cpp:1480
RoR::Actor::parkingbrakeToggle
void parkingbrakeToggle()
Definition: Actor.cpp:3789
RoR::EV_COMMANDS_01
@ EV_COMMANDS_01
Command 1.
Definition: InputEngine.h:138
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:878
RoR::Actor::ar_is_police
bool ar_is_police
Gfx/sfx attr.
Definition: Actor.h:523
RoR::Terrain
Definition: Terrain.h:40
RoR::App::GetCacheSystem
CacheSystem * GetCacheSystem()
Definition: Application.cpp:288
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:369
RoR::App::gfx_sky_time_speed
CVar * gfx_sky_time_speed
Definition: Application.cpp:233
RoR::Actor::ar_elevator
float ar_elevator
Sim state; aerial controller.
Definition: Actor.h:442
RoR::GameContext::UpdateAirplaneInputEvents
void UpdateAirplaneInputEvents(float dt)
Definition: GameContext.cpp:1602
RoRnet::UserInfo::colournum
int32_t colournum
colour set by server
Definition: RoRnet.h:183
RoR::GUIManager::FlexbodyDebug
GUI::FlexbodyDebug FlexbodyDebug
Definition: GUIManager.h:137
RoR::Replay::UpdateInputEvents
void UpdateInputEvents()
Definition: Replay.cpp:251
RoR::Actor::ar_nodes
node_t * ar_nodes
Definition: Actor.h:302
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:185
RoR::ActorModifyRequest::Type::SOFT_RESPAWN
@ SOFT_RESPAWN
Like hard reset, but positions the actor like spawn process does - using the relative positions from ...
RoR::EV_AIRPLANE_FLAPS_NONE
@ EV_AIRPLANE_FLAPS_NONE
no flaps.
Definition: InputEngine.h:86
RoR::Actor::ar_toggle_ties
bool ar_toggle_ties
Sim state.
Definition: Actor.h:528
RoR::EV_SKY_DECREASE_TIME
@ EV_SKY_DECREASE_TIME
decrease day-time
Definition: InputEngine.h:109
RoR::Actor::getRotation
float getRotation()
Definition: Actor.cpp:356
RoR::EV_AIRPLANE_STEER_RIGHT
@ EV_AIRPLANE_STEER_RIGHT
steer right
Definition: InputEngine.h:92
RoR::VideoCamState::VCSTATE_ENABLED_ONLINE
@ VCSTATE_ENABLED_ONLINE
RoR::CacheQuery::cqy_filter_type
RoR::LoaderType cqy_filter_type
Definition: CacheSystem.h:169
RoR::EV_AIRPLANE_FLAPS_LESS
@ EV_AIRPLANE_FLAPS_LESS
one step less flaps.
Definition: InputEngine.h:84
RoR::Terrain::initialize
bool initialize()
Definition: Terrain.cpp:146
RoR::Actor::toggleBlinkType
void toggleBlinkType(BlinkType blink)
Definition: Actor.cpp:3127
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:590
RoR::Engine::UpdateInputEvents
void UpdateInputEvents(float dt)
Definition: Engine.cpp:1260
RoR::CacheSystem::LoadResource
void LoadResource(CacheEntryPtr &t)
Loads the associated resource bundle if not already done.
Definition: CacheSystem.cpp:1538
RoR::GameContext::OnLoaderGuiCancel
void OnLoaderGuiCancel()
GUI callback.
Definition: GameContext.cpp:688
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:132
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:427
RoR::Actor::ar_driveable
ActorType ar_driveable
Sim attr; marks vehicle type and features.
Definition: Actor.h:402
RoR::EV_AIRPLANE_THROTTLE_FULL
@ EV_AIRPLANE_THROTTLE_FULL
full thrust
Definition: InputEngine.h:96
RoR::GameContext::UnloadTerrain
void UnloadTerrain()
Definition: GameContext.cpp:179
RoR::SE_TRUCK_TELEPORT
@ SE_TRUCK_TELEPORT
triggered when the user teleports the truck, the argument refers to the actor ID of the vehicle
Definition: ScriptEvents.h:51
RoR::CVar::setVal
void setVal(T val)
Definition: CVar.h:72
RoR::InputSourceType::IST_DIGITAL
@ IST_DIGITAL
RoR::MSG_GUI_OPEN_MENU_REQUESTED
@ MSG_GUI_OPEN_MENU_REQUESTED
Definition: Application.h:137
_L
#define _L
Definition: ErrorUtils.cpp:35
RoR::GameContext::m_prev_player_actor
ActorPtr m_prev_player_actor
Previous actor (vehicle or machine) mounted and controlled by player.
Definition: GameContext.h:195
RoR::EV_TRUCK_STEER_RIGHT
@ EV_TRUCK_STEER_RIGHT
steer right
Definition: InputEngine.h:360
RoR::Actor::UpdatePropAnimInputEvents
void UpdatePropAnimInputEvents()
Definition: Actor.cpp:4712
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:275
RoR::Actor::getUsedSkinEntry
CacheEntryPtr & getUsedSkinEntry()
Definition: Actor.cpp:4744
RoR::Terrain::getSpawnPos
Ogre::Vector3 getSpawnPos()
Definition: Terrain.cpp:587
RoR::Actor::getHighBeamsVisible
bool getHighBeamsVisible() const
Definition: Actor.h:201
RoR::ActorModifyRequest::Type::SOFT_RESET
@ SOFT_RESET
RoR::CacheEntry::terrn2_def
Terrn2DocumentPtr terrn2_def
Cached terrain definition document.
Definition: CacheSystem.h:95
RoR::Terrain::getSkyXManager
SkyXManager * getSkyXManager()
Definition: Terrain.h:82
RoR::Actor::tieToggle
void tieToggle(int group=-1, ActorLinkingRequestType mode=ActorLinkingRequestType::TIE_TOGGLE, ActorInstanceID_t forceunlock_filter=ACTORINSTANCEID_INVALID)
Definition: Actor.cpp:3457
RoR::Screwprop::getThrottle
float getThrottle()
Definition: ScrewProp.cpp:98
RoR::GfxActor::SetRenderdashActive
void SetRenderdashActive(bool active)
Definition: GfxActor.cpp:2353
RoR::EV_TRUCK_TOGGLE_PHYSICS
@ EV_TRUCK_TOGGLE_PHYSICS
toggle physics simulation
Definition: InputEngine.h:367
RoR::ActorSpawnRequest::asr_debugview
int asr_debugview
Definition: SimData.h:844
RoR::EV_TRUCK_TOGGLE_INTER_AXLE_DIFF
@ EV_TRUCK_TOGGLE_INTER_AXLE_DIFF
toggle the inter axle differential mode
Definition: InputEngine.h:365
RoR::EV_AIRPLANE_THROTTLE_NO
@ EV_AIRPLANE_THROTTLE_NO
no thrust
Definition: InputEngine.h:97
RoR::App::cli_preset_spawn_pos
CVar * cli_preset_spawn_pos
Definition: Application.cpp:181
RoR::GUIManager::GameAbout
GUI::GameAbout GameAbout
Definition: GUIManager.h:118
RoR::Actor::getRotationCenter
Ogre::Vector3 getRotationCenter()
Definition: Actor.cpp:1539
RoR::Actor::toggleTransferCaseGearRatio
void toggleTransferCaseGearRatio()
Definition: Actor.cpp:1511
RoR::MSG_SIM_SPAWN_ACTOR_REQUESTED
@ MSG_SIM_SPAWN_ACTOR_REQUESTED
Payload = RoR::ActorSpawnRequest* (owner)
Definition: Application.h:121
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:1178
RoR::EV_TRUCK_TOGGLE_IMPORTCOMMANDS
@ EV_TRUCK_TOGGLE_IMPORTCOMMANDS
toggle importcommands
Definition: InputEngine.h:364
RoR::App::GetInputEngine
InputEngine * GetInputEngine()
Definition: Application.cpp:287
RoR::EV_SKY_DECREASE_TIME_FAST
@ EV_SKY_DECREASE_TIME_FAST
decrease day-time a lot faster
Definition: InputEngine.h:110
RoR::ActorPtr
RefCountingObjectPtr< Actor > ActorPtr
Definition: ForwardDeclarations.h:228
RoR::GameContext::m_terrain
TerrainPtr m_terrain
Definition: GameContext.h:190
RoR::ActorLinkingRequest::alr_actor_instance_id
ActorInstanceID_t alr_actor_instance_id
Definition: SimData.h:910
RoR::EV_BOAT_STEER_RIGHT
@ EV_BOAT_STEER_RIGHT
steer right a step
Definition: InputEngine.h:104
RoR::GUI::MainSelector::Close
void Close()
Definition: GUI_MainSelector.cpp:600
RoR::MSG_SIM_DELETE_ACTOR_REQUESTED
@ MSG_SIM_DELETE_ACTOR_REQUESTED
Payload = RoR::ActorPtr* (owner)
Definition: Application.h:123
RoR::GameContext::UpdateSimInputEvents
void UpdateSimInputEvents(float dt)
Definition: GameContext.cpp:1058
RoR::LT_AllBeam
@ LT_AllBeam
Definition: Application.h:469
RoR::GameContext::UpdateBoatInputEvents
void UpdateBoatInputEvents(float dt)
Definition: GameContext.cpp:1790
RoR::Actor::setCustomLightVisible
void setCustomLightVisible(int number, bool visible)
Definition: Actor.cpp:4525
RoRnet::PEEROPT_HIDE_ACTORS
@ PEEROPT_HIDE_ACTORS
Spawn actors hidden and immediatelly hide existing actors.
Definition: RoRnet.h:131
RoR::ActorSpawnRequest::net_source_id
int net_source_id
Definition: SimData.h:848
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:451
RoR::Collisions::isInside
bool isInside(Ogre::Vector3 pos, const Ogre::String &inst, const Ogre::String &box, float border=0)
Definition: Collisions.cpp:1202
RoR::EV_COMMON_TOGGLE_CUSTOM_PARTICLES
@ EV_COMMON_TOGGLE_CUSTOM_PARTICLES
toggle particle cannon
Definition: InputEngine.h:267
RoR::SimState::RUNNING
@ RUNNING
RoR::GameContext::ShowLoaderGUI
void ShowLoaderGUI(int type, const Ogre::String &instance, const Ogre::String &box)
Definition: GameContext.cpp:660
RoR::EV_AIRPLANE_AIRBRAKES_FULL
@ EV_AIRPLANE_AIRBRAKES_FULL
Definition: InputEngine.h:76
AeroEngine.h
RoR::EV_TRUCK_BLINK_LEFT
@ EV_TRUCK_BLINK_LEFT
toggle left direction indicator (blinker)
Definition: InputEngine.h:302
RoR::EV_AIRPLANE_PARKING_BRAKE
@ EV_AIRPLANE_PARKING_BRAKE
airplane parking brake.
Definition: InputEngine.h:87
RoR::ActorState::NETWORKED_HIDDEN
@ NETWORKED_HIDDEN
not simulated, not updated (remote)
RoR::ActorManager::FetchActorDef
RigDef::DocumentPtr FetchActorDef(RoR::ActorSpawnRequest &rq)
Definition: ActorManager.cpp:1250
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:82
RoR::CacheQuery::cqy_filter_guid
std::string cqy_filter_guid
Exact match (case-insensitive); leave empty to disable.
Definition: CacheSystem.h:171
RoR::GUIManager::MainSelector
GUI::MainSelector MainSelector
Definition: GUIManager.h:124
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:242
RoR::Actor::getMaxHeight
float getMaxHeight(bool skip_virtual_nodes=true)
Definition: Actor.cpp:1570
RoR::InputEngine::isEventAnalog
bool isEventAnalog(int eventID)
Definition: InputEngine.cpp:938
RoR::Actor::countFlaresByType
int countFlaresByType(FlareType type)
Definition: Actor.cpp:4562
RoR::ActorSpawnRequest::Origin::USER
@ USER
Direct selection by user via GUI.
RoR::ActorLinkingRequestType::SLIDENODE_TOGGLE
@ SLIDENODE_TOGGLE
RoR::ActorManager::RestoreSavedState
void RestoreSavedState(ActorPtr actor, rapidjson::Value const &j_entry)
Definition: Savegame.cpp:787
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:80
RoR::EV_AIRPLANE_THROTTLE_UP
@ EV_AIRPLANE_THROTTLE_UP
increase the airplane thrust
Definition: InputEngine.h:98
RoR::ActorSpawnRequest::asr_net_peeropts
BitMask_t asr_net_peeropts
RoRnet::PeerOptions to be applied after spawn.
Definition: SimData.h:847
RoR::GfxActor::GetDebugView
DebugViewType GetDebugView() const
Definition: GfxActor.h:145
RigDef::DocumentPtr
std::shared_ptr< Document > DocumentPtr
Definition: ForwardDeclarations.h:281
RoR::Console::CONSOLE_SYSTEM_WARNING
@ CONSOLE_SYSTEM_WARNING
Definition: Console.h:53
RoRnet::PEEROPT_MUTE_ACTORS
@ PEEROPT_MUTE_ACTORS
Spawn actors muted and immediatelly mute existing actors.
Definition: RoRnet.h:130
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:624
ai_events::speed
int speed
Definition: GUI_TopMenubar.h:40
RoR::GameContext::m_dummy_cache_selection
CacheEntryPtr m_dummy_cache_selection
Definition: GameContext.h:204
RoR::GameContext::m_last_spawned_actor
ActorPtr m_last_spawned_actor
Last actor spawned by user and still alive.
Definition: GameContext.h:196
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:138
RoR::ActorSpawnRequest::asr_position
Ogre::Vector3 asr_position
Definition: SimData.h:837
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::Actor::softRespawn
void softRespawn(Ogre::Vector3 spawnpos, Ogre::Quaternion spawnrot)
Use MSG_SIM_MODIFY_ACTOR_REQUESTED with type SOFT_RESPAWN; Resets the actor to given position as if s...
Definition: Actor.cpp:1365
RoR::EV_COMMON_QUIT_GAME
@ EV_COMMON_QUIT_GAME
exit the game
Definition: InputEngine.h:248
RoR::EV_TRUCKEDIT_RELOAD
@ EV_TRUCKEDIT_RELOAD
Definition: InputEngine.h:396
RoR::ModifyProjectRequest::mpr_type
ModifyProjectRequestType mpr_type
Definition: CacheSystem.h:257
RoR::Actor::ar_net_source_id
int ar_net_source_id
Unique ID of remote player who spawned this actor.
Definition: Actor.h:450
Collisions.h
RoR::EV_AIRPLANE_STEER_LEFT
@ EV_AIRPLANE_STEER_LEFT
steer left
Definition: InputEngine.h:91
RoR::MSG_SIM_MUTE_NET_ACTOR_REQUESTED
@ MSG_SIM_MUTE_NET_ACTOR_REQUESTED
Payload = ActorPtr* (owner)
Definition: Application.h:128
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:116
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:265
RoR::FlareType::HIGH_BEAM
@ HIGH_BEAM
RoR::Actor::displayWheelDiffMode
void displayWheelDiffMode()
Cycles through the available inter wheel diff modes.
Definition: Actor.cpp:1440
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:94
RoR::ActorManager::UpdateActors
void UpdateActors(ActorPtr player_actor)
Definition: ActorManager.cpp:1023
RoR::Actor::ar_aileron
float ar_aileron
Sim state; aerial controller.
Definition: Actor.h:444
RoR::Actor::ar_state
ActorState ar_state
Definition: Actor.h:488
RoR::ActorManager::FetchNextVehicleOnList
const ActorPtr & FetchNextVehicleOnList(ActorPtr player, ActorPtr prev_player)
Definition: ActorManager.cpp:959
RoR::Actor::setAirbrakeIntensity
void setAirbrakeIntensity(float intensity)
Definition: Actor.cpp:2963
RoR::EV_AIRPLANE_ELEVATOR_DOWN
@ EV_AIRPLANE_ELEVATOR_DOWN
pull the elevator down in an aircraft.
Definition: InputEngine.h:81
RoR::GameContext::GetPlayerActor
const ActorPtr & GetPlayerActor()
Definition: GameContext.h:134
RoR::AI
@ AI
machine controlled by an Artificial Intelligence
Definition: SimData.h:89
RoR::GameContext::UpdateTruckInputEvents
void UpdateTruckInputEvents(float dt)
Definition: GameContext.cpp:1850
RoR::App::gfx_sky_time_cycle
CVar * gfx_sky_time_cycle
Definition: Application.cpp:232
RoR::Actor::prepareInside
void prepareInside(bool inside)
Prepares vehicle for in-cabin camera use.
Definition: Actor.cpp:2997
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:443
RoR::Actor::cruisecontrolToggle
void cruisecontrolToggle()
Defined in 'gameplay/CruiseControl.cpp'.
Definition: CruiseControl.cpp:31
RoR::ActorModifyRequest::amr_type
Type amr_type
Definition: SimData.h:876
RoR::ActorSpawnRequest::asr_spawnbox
collision_box_t * asr_spawnbox
Definition: SimData.h:839
RoR::ActorSpawnRequest::asr_rotation
Ogre::Quaternion asr_rotation
Definition: SimData.h:838
RoR::Actor::getWorkingTuneupDef
TuneupDefPtr & getWorkingTuneupDef()
Definition: Actor.cpp:4749
RoR::GfxScene::ForceUpdateSingleGfxActor
void ForceUpdateSingleGfxActor(RoR::GfxActor *gfx_actor)
Definition: GfxScene.cpp:338
RoR::AeroEngine::getThrottle
virtual float getThrottle()=0
RoR::Actor::setSideLightsVisible
void setSideLightsVisible(bool val)
Definition: Actor.h:198
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:1139
RoR::EV_COMMON_REMOVE_CURRENT_TRUCK
@ EV_COMMON_REMOVE_CURRENT_TRUCK
remove current truck
Definition: InputEngine.h:231
x
float x
Definition: (ValueTypes) quaternion.h:5
RoR::CacheSystem::Query
size_t Query(CacheQuery &query)
Definition: CacheSystem.cpp:2294
RoR::EV_BOAT_STEER_RIGHT_AXIS
@ EV_BOAT_STEER_RIGHT_AXIS
steer right (analog value!)
Definition: InputEngine.h:105
RoR::GUI::TopMenubar::ai_select
bool ai_select
Definition: GUI_TopMenubar.h:82
RoR::GameContext::FetchNextVehicleOnList
const ActorPtr & FetchNextVehicleOnList()
Definition: GameContext.cpp:595
RoR::ActorSpawnRequest::asr_enter
bool asr_enter
Definition: SimData.h:851
RoR::Log
void Log(const char *msg)
The ultimate, application-wide logging function. Adds a line (any length) in 'RoR....
Definition: Application.cpp:435
RoR::EV_SKY_INCREASE_TIME_FAST
@ EV_SKY_INCREASE_TIME_FAST
increase day-time a lot faster
Definition: InputEngine.h:112
RoR::EV_COMMON_RESCUE_TRUCK
@ EV_COMMON_RESCUE_TRUCK
teleport to rescue truck
Definition: InputEngine.h:255
RoR::App::GetGfxScene
GfxScene * GetGfxScene()
Definition: Application.cpp:292
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:605
RoR::EV_TRUCK_PARKING_BRAKE
@ EV_TRUCK_PARKING_BRAKE
toggle parking brake
Definition: InputEngine.h:328
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:187
RoR::CacheQuery::cqy_results
std::vector< CacheQueryResult > cqy_results
Definition: CacheSystem.h:176
RoR::LT_Train
@ LT_Train
Definition: Application.h:465
RoR::EV_COMMON_ROPELOCK
@ EV_COMMON_ROPELOCK
connect hook node to a node in close proximity
Definition: InputEngine.h:258
RoR::CacheEntry::default_skin
std::string default_skin
Definition: CacheSystem.h:107
RoR::MSG_APP_SHUTDOWN_REQUESTED
@ MSG_APP_SHUTDOWN_REQUESTED
Definition: Application.h:85
RoR::COMMANDKEYID_INVALID
static const CommandkeyID_t COMMANDKEYID_INVALID
Definition: ForwardDeclarations.h:83
RoR::ActorManager::CreateNewActor
ActorPtr CreateNewActor(ActorSpawnRequest rq, RigDef::DocumentPtr def)
Definition: ActorManager.cpp:82
RoR::GUI::VehicleInfoTPanel::GetActiveCommandKey
CommandkeyID_t GetActiveCommandKey() const
Definition: GUI_VehicleInfoTPanel.h:42
SOUND_TOGGLE
#define SOUND_TOGGLE(_ACTOR_, _TRIG_)
Definition: SoundScriptManager.h:37
RoR::Character::setRotation
void setRotation(Ogre::Radian rotation)
Definition: Character.cpp:98
RoR::Actor::ar_cinecam_node
NodeNum_t ar_cinecam_node[MAX_CAMERAS]
Sim attr; Cine-camera node indexes.
Definition: Actor.h:404
RoR::EV_COMMON_TOGGLE_DEBUG_VIEW
@ EV_COMMON_TOGGLE_DEBUG_VIEW
toggle debug view mode
Definition: InputEngine.h:264
RoR::InputEngine::getEventBounceTime
float getEventBounceTime(int eventID)
Definition: InputEngine.cpp:782
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::Terrn2Parser::LoadTerrn2
Terrn2DocumentPtr LoadTerrn2(Ogre::DataStreamPtr &ds)
Definition: Terrn2FileFormat.cpp:38
RoR::EV_TRUCK_ANTILOCK_BRAKE
@ EV_TRUCK_ANTILOCK_BRAKE
toggle antilockbrake system
Definition: InputEngine.h:299
RoR::Actor::getCustomLightVisible
bool getCustomLightVisible(int number)
Definition: Actor.cpp:4503
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:1466
RoR::GameContext::CreatePlayerCharacter
void CreatePlayerCharacter()
Terrain must be loaded.
Definition: GameContext.cpp:840
RoR::GameContext::UpdateSkyInputEvents
void UpdateSkyInputEvents(float dt)
Definition: GameContext.cpp:1256
RoR::Actor::isBeingReset
bool isBeingReset() const
Definition: Actor.h:285
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:854
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:314
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:540
RoR::GameContext::HasMessages
bool HasMessages()
Definition: GameContext.cpp:90
RoR::ActorModifyRequest::Type::RELOAD
@ RELOAD
Full reload from filesystem, requested by user.