RigsofRods
Soft-body Physics Simulation
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
ActorSpawner.h
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 
26 
27 
28 #pragma once
29 
30 #include "Application.h"
31 #include "RigDef_Parser.h"
32 #include "SimData.h"
33 #include "FlexFactory.h"
34 #include "FlexObj.h"
35 
36 #include <OgreString.h>
37 #include <string>
38 
39 namespace RoR {
40 
43 
71 {
72  friend class RoR::FlexFactory; // Needs to use `ComposeName()` and `SetupNewEntity()`
73 
74 public:
75 
77  {
78  size_t num_nodes = 0;
79  size_t num_beams = 0;
80  size_t num_shocks = 0;
81  size_t num_rotators = 0;
82  size_t num_wings = 0;
83  size_t num_airbrakes = 0;
84  size_t num_fixes = 0;
85  // ... more to come ...
86  };
87 
88  enum struct Message
89  {
90  TYPE_INFO,
92  TYPE_ERROR,
93  };
94 
97  void ConfigureSections(Ogre::String const & sectionconfig, RigDef::DocumentPtr def);
98  void ConfigureAddonParts(TuneupDefPtr& tuneup_def);
101  static void SetupDefaultSoundSources(ActorPtr const& actor);
103 
106  ActorPtr GetActor() { return m_actor; }
108  std::string GetSubmeshGroundmodelName();
110 
111 private:
112 
114  {
115  enum class MirrorPropType
116  {
117  MPROP_NONE,
118  MPROP_LEFT,
119  MPROP_RIGHT,
120  };
121 
123  material_flare_def(nullptr),
124  video_camera_def(nullptr),
125  mirror_prop_type(MirrorPropType::MPROP_NONE),
126  mirror_prop_scenenode(nullptr)
127  {}
128 
129  CustomMaterial(Ogre::MaterialPtr& mat):
130  material(mat),
131  material_flare_def(nullptr),
132  video_camera_def(nullptr),
133  mirror_prop_type(MirrorPropType::MPROP_NONE),
134  mirror_prop_scenenode(nullptr)
135  {}
136 
137  Ogre::MaterialPtr material;
141  Ogre::SceneNode* mirror_prop_scenenode;
142  };
143 
144  struct Exception: public std::runtime_error
145  {
146  Exception(Ogre::String const & message):runtime_error(message) {}
147  };
148 
151  // PLEASE maintain alphabetical order
152  void ProcessAirbrake(RigDef::Airbrake & def);
153  void ProcessAnimator(RigDef::Animator & def);
155  void ProcessAuthor(RigDef::Author & def);
156  void ProcessAxle(RigDef::Axle & def);
157  void ProcessBeam(RigDef::Beam & def);
158  void ProcessBrakes(RigDef::Brakes & def);
160  void ProcessCamera(RigDef::Camera & def);
161  void ProcessCinecam(RigDef::Cinecam & def);
164  void ProcessCommand(RigDef::Command2 & def);
165  void ProcessContacter(RigDef::Node::Ref & node_ref);
167  void ProcessDescription(Ogre::String const& line);
168  void ProcessEngine(RigDef::Engine & def);
170  void ProcessEngturbo(RigDef::Engturbo & def);
171  void ProcessExhaust(RigDef::Exhaust & def);
173  void ProcessFixedNode(RigDef::Node::Ref node_ref); // 'fixes'
174  void ProcessFlare2(RigDef::Flare2 & def);
175  void ProcessFlare3(RigDef::Flare3 & def);
179  void ProcessFusedrag(RigDef::Fusedrag & def);
180  void ProcessGlobals(RigDef::Globals & def);
182  void ProcessHelp(RigDef::Help & def);
183  void ProcessHook(RigDef::Hook & def);
184  void ProcessHydro(RigDef::Hydro & def);
186  void ProcessLockgroup(RigDef::Lockgroup & lockgroup);
190  void ProcessMinimass(RigDef::Minimass & def);
191  void ProcessNode(RigDef::Node & def);
192  void ProcessParticle(RigDef::Particle & def);
194  void ProcessProp(RigDef::Prop & def);
196  void ProcessRopable(RigDef::Ropable & def);
197  void ProcessRope(RigDef::Rope & def);
198  void ProcessRotator(RigDef::Rotator & def);
199  void ProcessRotator2(RigDef::Rotator2 & def);
201  void ProcessShock(RigDef::Shock & def);
202  void ProcessShock2(RigDef::Shock2 & def);
203  void ProcessShock3(RigDef::Shock3 & def);
208  void ProcessSubmesh(RigDef::Submesh & def);
209  void ProcessTie(RigDef::Tie & def);
213  void ProcessTrigger(RigDef::Trigger & def);
214  void ProcessTurbojet(RigDef::Turbojet & def);
217  void ProcessWheel(RigDef::Wheel & def);
218  void ProcessWheel2(RigDef::Wheel2 & def);
219  void ProcessWing(RigDef::Wing & def);
221 
224 
225  void BuildAeroEngine(
226  NodeNum_t ref_node_index,
227  NodeNum_t back_node_index,
228  NodeNum_t blade_1_node_index,
229  NodeNum_t blade_2_node_index,
230  NodeNum_t blade_3_node_index,
231  NodeNum_t blade_4_node_index,
232  NodeNum_t couplenode_index,
233  bool is_turboprops,
234  Ogre::String const & airfoil,
235  float power,
236  float pitch);
237 
239 
240  void _ProcessKeyInertia(
241  RigDef::Inertia & inertia,
242  RigDef::Inertia & inertia_defaults,
243  RoR::CmdKeyInertia& contract_key,
244  RoR::CmdKeyInertia& extend_key);
245 
247  void BuildWheelBeams(
248  unsigned int num_rays,
249  NodeNum_t base_node_index,
250  node_t *axis_node_1,
251  node_t *axis_node_2,
252  float tyre_spring,
253  float tyre_damping,
254  float rim_spring,
255  float rim_damping,
256  std::shared_ptr<RigDef::BeamDefaults> beam_defaults,
257  RigDef::Node::Ref const & rigidity_node_id,
258  float max_extension = 0.f);
259 
261  unsigned int AddWheelBeam(
262  node_t *node_1,
263  node_t *node_2,
264  float spring,
265  float damping,
266  std::shared_ptr<RigDef::BeamDefaults> beam_defaults,
267  float max_contraction = -1.f,
268  float max_extension = -1.f,
269  BeamType type = BEAM_NORMAL);
270 
275  WheelID_t wheel_id,
276  unsigned int num_rays,
277  node_t *axis_node_1,
278  node_t *axis_node_2,
279  node_t *reference_arm_node,
280  unsigned int reserve_nodes,
281  unsigned int reserve_beams,
282  float wheel_radius,
283  WheelPropulsion propulsion,
284  WheelBraking braking,
285  std::shared_ptr<RigDef::NodeDefaults> node_defaults,
286  float wheel_mass,
287  float wheel_width = -1.f);
288 
291  void InitNode(node_t & node, Ogre::Vector3 const & position);
292  void InitNode(unsigned int node_index, Ogre::Vector3 const & position);
293  void InitNode(node_t & node, Ogre::Vector3 const & position, std::shared_ptr<RigDef::NodeDefaults> node_defaults);
294  beam_t& AddBeam(node_t & node_1, node_t & node_2, std::shared_ptr<RigDef::BeamDefaults> & defaults, int detacher_group);
295  unsigned int AddWheelRimBeam(RigDef::Wheel2 & wheel_2_def, node_t *node_1, node_t *node_2);
296  unsigned int AddTyreBeam(RigDef::Wheel2 & wheel_2_def, node_t *node_1, node_t *node_2);
297  unsigned int _SectionWheels2AddBeam(RigDef::Wheel2 & wheel_2_def, node_t *node_1, node_t *node_2);
298  void GetWheelAxisNodes(RigDef::BaseWheel& def, node_t*& out_node_1, node_t*& out_node_2);
299  void AddExhaust(NodeNum_t emitter_node_idx, NodeNum_t direction_node_idx);
300  RailGroup* CreateRail(std::vector<RigDef::Node::Range> & node_ranges);
301  void InitializeRig();
302  void FinalizeRig();
304 
307  void CalcMemoryRequirements(ActorMemoryRequirements& req, RigDef::Document::Module* module_def);
309  void WashCalculator();
310  void AdjustNodeBuoyancy(node_t & node, RigDef::Node & node_def, std::shared_ptr<RigDef::NodeDefaults> defaults);
311  void AdjustNodeBuoyancy(node_t & node, std::shared_ptr<RigDef::NodeDefaults> defaults);
312  void InitBeam(beam_t & beam, node_t *node_1, node_t *node_2);
313  void CalculateBeamLength(beam_t & beam);
314  void SetBeamStrength(beam_t & beam, float strength);
315  void SetBeamSpring(beam_t & beam, float spring);
316  void SetBeamDamping(beam_t & beam, float damping);
317  void SetBeamDeformationThreshold(beam_t & beam, std::shared_ptr<RigDef::BeamDefaults> beam_defaults);
318  void ValidateRotator(int id, int axis1, int axis2, NodeNum_t *nodes1, NodeNum_t *nodes2);
319 
321  std::string ComposeName(const std::string& object, int number = -1);
322 
326  bool AssignWheelToAxle(int & _out_axle_wheel, node_t *axis_node_1, node_t *axis_node_2);
327 
328  // GetFree*(): Gets a free slot; checks limits, sets it's array position and updates 'free_node' index.
329  node_t& GetFreeNode();
330  beam_t& GetFreeBeam();
331  node_t& GetAndInitFreeNode(Ogre::Vector3 const & position);
332  beam_t& GetAndInitFreeBeam(node_t & node_1, node_t & node_2);
334 
335  float ComputeWingArea(
336  Ogre::Vector3 const & ref,
337  Ogre::Vector3 const & x,
338  Ogre::Vector3 const & y,
339  Ogre::Vector3 const & aref);
340 
344  std::vector<RigDef::Node::Range> & node_ranges,
345  std::vector<NodeNum_t> & out_node_indices);
347 
350  node_t* GetBeamNodePointer(RigDef::Node::Ref const & node_ref);
351  NodeNum_t FindNodeIndex(RigDef::Node::Ref & node_ref, bool silent = false);
352  NodeNum_t ResolveNodeRef(RigDef::Node::Ref const & node_ref);
353  node_t* GetNodePointer(RigDef::Node::Ref const & node_ref);
355  beam_t& GetBeam(unsigned int index);
356  beam_t* FindBeamInRig(NodeNum_t node_a, NodeNum_t node_b);
359 
362  bool CheckAxleLimit(unsigned int count);
363  bool CheckSubmeshLimit(unsigned int count);
364  bool CheckTexcoordLimit(unsigned int count);
365  bool CheckCabLimit(unsigned int count);
366  bool CheckCameraRailLimit(unsigned int count);
367  static bool CheckSoundScriptLimit(ActorPtr const& vehicle, unsigned int count);
368  bool CheckAeroEngineLimit(unsigned int count);
369  bool CheckScrewpropLimit(unsigned int count);
371 
374  void CreateBeamVisuals(beam_t& beam, int beam_index, bool visible, std::shared_ptr<RigDef::BeamDefaults> const& beam_defaults, std::string material_override="");
375  void CreateWheelSkidmarks(WheelID_t wheel_index);
376  void FinalizeGfxSetup();
377  Ogre::MaterialPtr FindOrCreateCustomizedMaterial(const std::string& mat_lookup_name, const std::string& mat_lookup_rg);
378  Ogre::MaterialPtr CreateSimpleMaterial(Ogre::ColourValue color);
379  Ogre::ParticleSystem* CreateParticleSystem(std::string const & name, std::string const & template_name);
380  RigDef::MaterialFlareBinding* FindFlareBindingForMaterial(std::string const & material_name);
381  RigDef::VideoCamera* FindVideoCameraByMaterial(std::string const & material_name);
383  void CreateMirrorPropVideoCam(Ogre::MaterialPtr custom_mat, CustomMaterial::MirrorPropType type, Ogre::SceneNode* prop_scenenode);
384  void SetupNewEntity(Ogre::Entity* e, Ogre::ColourValue simple_color);
385  Ogre::MaterialPtr InstantiateManagedMaterial(Ogre::String const & rg_name, Ogre::String const & source_name, Ogre::String const & clone_name);
386  void CreateCabVisual();
387  void CreateMaterialFlare(int flare_index, Ogre::MaterialPtr mat);
388  std::string GetCurrentElementMediaRG();
389  void AssignManagedMaterialTexture(Ogre::TextureUnitState* tus, const std::string & mm_name, int media_id, const std::string& tex_name);
390 
392  void CreateWheelVisuals(
393  WheelID_t wheel_id,
394  NodeNum_t node_base_index,
395  unsigned int def_num_rays,
396  Ogre::String const& face_material_name,
397  Ogre::String const& face_material_rg,
398  Ogre::String const& band_material_name,
399  Ogre::String const& band_material_rg,
400  bool separate_rim,
401  float rim_ratio = 1.f
402  );
403 
405  WheelID_t wheel_id,
406  NodeNum_t node_base_index,
407  NodeNum_t axis_node_1,
408  NodeNum_t axis_node_2,
409  int num_rays,
410  float radius,
411  WheelSide side,
412  std::string rim_mesh_name,
413  std::string rim_mesh_rg,
414  std::string tire_mesh_name,
415  std::string tire_mesh_rg);
416 
418  WheelID_t wheel_id,
419  NodeNum_t base_node_index,
420  NodeNum_t axis_node_1_index,
421  NodeNum_t axis_node_2_index,
422  unsigned int num_rays,
423  WheelSide side,
424  Ogre::String mesh_name,
425  Ogre::String mesh_rg,
426  Ogre::String material_name,
427  Ogre::String material_rg,
428  float rim_radius);
430 
433  static void AddSoundSource(ActorPtr const& vehicle, SoundScriptInstancePtr sound_script, NodeNum_t node_index, int type = -2);
434  static void AddSoundSourceInstance(ActorPtr const& vehicle, Ogre::String const & sound_script_name, int node_index, int type = -2);
436 
439  void AddMessage(Message type, Ogre::String const & text);
441  void HandleException();
443 
445  {
446  // Minimum node mass
448  };
449 
454  std::list<std::shared_ptr<RigDef::Document::Module>>
456  Ogre::Vector3 m_spawn_position;
462 
466  std::string m_cab_material_name;
467  std::string m_help_material_name;
468  float m_wing_area;
474  float m_fuse_y_max;
476  std::vector<CabTexcoord> m_oldstyle_cab_texcoords;
477  std::vector<CabSubmesh> m_oldstyle_cab_submeshes;
479  std::shared_ptr<RigDef::Document::Module> m_current_module;
480  std::map<Ogre::String, unsigned int> m_named_nodes;
482 
486  std::map<std::string, CustomMaterial> m_material_substitutions;
487  std::map<std::string, Ogre::MaterialPtr> m_managed_materials;
489  Ogre::MaterialPtr m_cab_trans_material;
490  Ogre::MaterialPtr m_simple_material_base;
494  // Grouping nodes for diagnostics:
495  Ogre::SceneNode* m_actor_grouping_scenenode = nullptr;
496  Ogre::SceneNode* m_wheels_parent_scenenode = nullptr;
497  Ogre::SceneNode* m_props_parent_scenenode = nullptr;
498  Ogre::SceneNode* m_flexbodies_parent_scenenode = nullptr;
499  Ogre::SceneNode* m_flares_parent_scenenode = nullptr;
500  Ogre::SceneNode* m_particles_parent_scenenode = nullptr;
501 };
503 
505 
506 } // namespace RoR
RoR::ActorSpawner::ProcessWing
void ProcessWing(RigDef::Wing &def)
Definition: ActorSpawner.cpp:924
RoR::ActorSpawner::m_current_module
std::shared_ptr< RigDef::Document::Module > m_current_module
For resolving addonparts.
Definition: ActorSpawner.h:479
RoR::ActorSpawner::CustomMaterial::MirrorPropType::MPROP_RIGHT
@ MPROP_RIGHT
RoR::WheelBraking
WheelBraking
Definition: Application.h:521
RoR::ActorSpawner::BuildWheelObjectAndNodes
void BuildWheelObjectAndNodes(WheelID_t wheel_id, unsigned int num_rays, node_t *axis_node_1, node_t *axis_node_2, node_t *reference_arm_node, unsigned int reserve_nodes, unsigned int reserve_beams, float wheel_radius, WheelPropulsion propulsion, WheelBraking braking, std::shared_ptr< RigDef::NodeDefaults > node_defaults, float wheel_mass, float wheel_width=-1.f)
Sets up wheel and builds nodes for sections 'wheels', 'meshwheels' and 'meshwheels2'.
Definition: ActorSpawner.cpp:4789
RoR::WheelSide
WheelSide
Used by rig-def/addonpart/tuneup formats to specify wheel rim mesh orientation.
Definition: Application.h:542
RoR::ActorSpawner::CheckSubmeshLimit
bool CheckSubmeshLimit(unsigned int count)
Definition: ActorSpawner.cpp:6286
RigDef::Wheel
Definition: RigDef_File.h:1318
RoR::ActorSpawner::ActorMemoryRequirements::num_rotators
size_t num_rotators
Definition: ActorSpawner.h:81
RoR::ActorSpawner::ProcessHook
void ProcessHook(RigDef::Hook &def)
Definition: ActorSpawner.cpp:3252
RigDef::GuiSettings
Definition: RigDef_File.h:821
RoR::ActorSpawner::AddSoundSource
static void AddSoundSource(ActorPtr const &vehicle, SoundScriptInstancePtr sound_script, NodeNum_t node_index, int type=-2)
Definition: ActorSpawner.cpp:1190
RoR::ActorSpawner::ProcessHydro
void ProcessHydro(RigDef::Hydro &def)
Definition: ActorSpawner.cpp:3979
y
float y
Definition: (ValueTypes) quaternion.h:6
RigDef::Node::Ref
Legacy parser resolved references on-the-fly and the condition to check named nodes was "are there an...
Definition: RigDef_Node.h:77
RoR::ActorSpawner::m_current_keyword
RigDef::Keyword m_current_keyword
For error reports.
Definition: ActorSpawner.h:478
RigDef::Prop
Definition: RigDef_File.h:959
RoR::ActorSpawner::ProcessSubmesh
void ProcessSubmesh(RigDef::Submesh &def)
Definition: ActorSpawner.cpp:1338
RoR::ActorSpawner::CreateBeamVisuals
void CreateBeamVisuals(beam_t &beam, int beam_index, bool visible, std::shared_ptr< RigDef::BeamDefaults > const &beam_defaults, std::string material_override="")
Definition: ActorSpawner.cpp:5817
RoR::ActorSpawner::ProcessGlobals
void ProcessGlobals(RigDef::Globals &def)
Definition: ActorSpawner.cpp:6246
RoR::ActorSpawner::m_custom_resource_group
std::string m_custom_resource_group
Definition: ActorSpawner.h:458
RoR::BeamType
BeamType
Definition: SimData.h:61
RoR::ActorSpawner::ProcessFlare2
void ProcessFlare2(RigDef::Flare2 &def)
Definition: ActorSpawner.cpp:2159
RoR::ActorSpawner::GetBeam
beam_t & GetBeam(unsigned int index)
Definition: ActorSpawner.cpp:6376
RoR::ActorSpawner::ProcessRope
void ProcessRope(RigDef::Rope &def)
Definition: ActorSpawner.cpp:3009
RoR::ActorSpawner::CheckCameraRailLimit
bool CheckCameraRailLimit(unsigned int count)
Definition: ActorSpawner.cpp:6335
RigDef::CollisionRange
Definition: RigDef_File.h:620
RoR::ActorSpawner::ProcessSoundSource
void ProcessSoundSource(RigDef::SoundSource &def)
Definition: ActorSpawner.cpp:1208
RigDef::Engturbo
Definition: RigDef_File.h:693
RoR::ActorSpawner::FindFlareBindingForMaterial
RigDef::MaterialFlareBinding * FindFlareBindingForMaterial(std::string const &material_name)
Returns NULL if none found.
Definition: ActorSpawner.cpp:6613
RoR::ActorSpawner::ConfigureSections
void ConfigureSections(Ogre::String const &sectionconfig, RigDef::DocumentPtr def)
Definition: ActorSpawner.cpp:90
RigDef::Author
Definition: RigDef_File.h:476
RoR::ActorSpawner::ActorMemoryRequirements::num_fixes
size_t num_fixes
Definition: ActorSpawner.h:84
RoR::ActorSpawner::ProcessMinimass
void ProcessMinimass(RigDef::Minimass &def)
Definition: ActorSpawner.cpp:1613
RoR::ActorSpawner::ProcessEngine
void ProcessEngine(RigDef::Engine &def)
Definition: ActorSpawner.cpp:5555
RoR::ActorSpawner::ProcessGuiSettings
void ProcessGuiSettings(RigDef::GuiSettings &def)
Definition: ActorSpawner.cpp:1244
RoR::ActorSpawner::m_file
RigDef::DocumentPtr m_file
Definition: ActorSpawner.h:453
RoR::ActorSpawner::m_fuse_z_min
float m_fuse_z_min
Definition: ActorSpawner.h:471
RoR::ActorSpawner::ProcessBrakes
void ProcessBrakes(RigDef::Brakes &def)
Definition: ActorSpawner.cpp:5503
RigDef::Flare3
Definition: RigDef_File.h:752
RoR::RailGroup
A series of RailSegment-s for SlideNode to slide along. Can be closed in a loop.
Definition: SlideNode.h:53
RoR::ActorSpawner::m_particles_parent_scenenode
Ogre::SceneNode * m_particles_parent_scenenode
this isn't used for moving/hiding things, just helps developers inspect the scene graph.
Definition: ActorSpawner.h:500
RigDef::RailGroup
Definition: RigDef_File.h:1000
RoR::ActorSpawner::m_actor_grouping_scenenode
Ogre::SceneNode * m_actor_grouping_scenenode
Topmost common parent; this isn't used for moving things, just helps developers inspect the scene gra...
Definition: ActorSpawner.h:495
RoR::ActorSpawner::ComposeName
std::string ComposeName(const std::string &object, int number=-1)
Creates name containing actor ID token, i.e. "Object#1 (filename.truck [Instance ID 1])".
Definition: ActorSpawner.cpp:703
RoR::ActorSpawner::ProcessExtCamera
void ProcessExtCamera(RigDef::ExtCamera &def)
Definition: ActorSpawner.cpp:1235
RoR::ActorSpawner::ProcessRotator
void ProcessRotator(RigDef::Rotator &def)
Definition: ActorSpawner.cpp:3522
RoR::ActorSpawner::ProcessHelp
void ProcessHelp(RigDef::Help &def)
Definition: ActorSpawner.cpp:5576
RoR::ActorSpawner::SetBeamDeformationThreshold
void SetBeamDeformationThreshold(beam_t &beam, std::shared_ptr< RigDef::BeamDefaults > beam_defaults)
Definition: ActorSpawner.cpp:5691
RoR::ActorSpawner::BuildWheelBeams
void BuildWheelBeams(unsigned int num_rays, NodeNum_t base_node_index, node_t *axis_node_1, node_t *axis_node_2, float tyre_spring, float tyre_damping, float rim_spring, float rim_damping, std::shared_ptr< RigDef::BeamDefaults > beam_defaults, RigDef::Node::Ref const &rigidity_node_id, float max_extension=0.f)
'wheels', 'meshwheels'
Definition: ActorSpawner.cpp:4887
RigDef::Camera
Definition: RigDef_File.h:587
RoR::ActorSpawner::AddExhaust
void AddExhaust(NodeNum_t emitter_node_idx, NodeNum_t direction_node_idx)
Definition: ActorSpawner.cpp:6160
RigDef::Hydro
Definition: RigDef_File.h:851
RoR::ActorSpawner::ProcessShock
void ProcessShock(RigDef::Shock &def)
Definition: ActorSpawner.cpp:4236
RigDef::CollisionBox
Definition: RigDef_File.h:615
RigDef::Ropable
Definition: RigDef_File.h:1006
RoR::ActorSpawner::ProcessLockgroup
void ProcessLockgroup(RigDef::Lockgroup &lockgroup)
Definition: ActorSpawner.cpp:3322
RoR::ActorSpawner::CreateWheelSkidmarks
void CreateWheelSkidmarks(WheelID_t wheel_index)
Definition: ActorSpawner.cpp:5008
RoR::BEAM_NORMAL
@ BEAM_NORMAL
Definition: SimData.h:63
RoR::ActorSpawner::m_simple_material_base
Ogre::MaterialPtr m_simple_material_base
Definition: ActorSpawner.h:490
RoR::ActorSpawner::ActorSpawnState
Definition: ActorSpawner.h:444
RoR::ActorSpawner::m_flexbodies_parent_scenenode
Ogre::SceneNode * m_flexbodies_parent_scenenode
this isn't used for moving/hiding things, just helps developers inspect the scene graph.
Definition: ActorSpawner.h:498
RoR::ActorSpawner::FindNodeIndex
NodeNum_t FindNodeIndex(RigDef::Node::Ref &node_ref, bool silent=false)
Definition: ActorSpawner.cpp:3116
RigDef::Airbrake
Definition: RigDef_File.h:322
RoR::ActorSpawner::ProcessCamera
void ProcessCamera(RigDef::Camera &def)
Definition: ActorSpawner.cpp:5606
RigDef::Flare2
Definition: RigDef_File.h:738
RigDef::Help
Definition: RigDef_File.h:827
RoR::ActorSpawner::ProcessContacter
void ProcessContacter(RigDef::Node::Ref &node_ref)
Definition: ActorSpawner.cpp:3516
RoR::ActorSpawner::SetCurrentKeyword
void SetCurrentKeyword(RigDef::Keyword keyword)
Definition: ActorSpawner.h:440
RoR::ActorSpawner::Message::TYPE_INFO
@ TYPE_INFO
RoR::ActorSpawner::ProcessMeshWheel2
void ProcessMeshWheel2(RigDef::MeshWheel2 &def)
Definition: ActorSpawner.cpp:4662
RigDef::Trigger
Definition: RigDef_File.h:1250
RoR::ActorSpawner::ProcessFusedrag
void ProcessFusedrag(RigDef::Fusedrag &def)
Definition: ActorSpawner.cpp:739
RoR::ActorSpawner::ProcessAirbrake
void ProcessAirbrake(RigDef::Airbrake &def)
Definition: ActorSpawner.cpp:879
RoR::ActorSpawner::ProcessTorqueCurve
void ProcessTorqueCurve(RigDef::TorqueCurve &def)
Definition: ActorSpawner.cpp:2900
RigDef::Pistonprop
Definition: RigDef_File.h:948
RoR::ActorSpawner::CustomMaterial::mirror_prop_scenenode
Ogre::SceneNode * mirror_prop_scenenode
Definition: ActorSpawner.h:141
RoR::ActorSpawner::CustomMaterial
Definition: ActorSpawner.h:113
RigDef::Document::Module
Definition: RigDef_File.h:1358
RoR::ActorSpawner::ComputeWingArea
float ComputeWingArea(Ogre::Vector3 const &ref, Ogre::Vector3 const &x, Ogre::Vector3 const &y, Ogre::Vector3 const &aref)
Definition: ActorSpawner.cpp:1161
RoR::ActorSpawner::m_generate_wing_position_lights
bool m_generate_wing_position_lights
Definition: ActorSpawner.h:459
RoR::ActorSpawner::ConfigureAddonParts
void ConfigureAddonParts(TuneupDefPtr &tuneup_def)
Definition: ActorSpawner.cpp:109
RigDef::FlaregroupNoImport
Definition: RigDef_File.h:757
RigDef::FlexBodyWheel
Definition: RigDef_File.h:788
RoR::ActorSpawner::ActorMemoryRequirements::num_beams
size_t num_beams
Definition: ActorSpawner.h:79
RigDef::Particle
Definition: RigDef_File.h:941
RoR::ActorSpawner::m_flex_factory
RoR::FlexFactory m_flex_factory
Definition: ActorSpawner.h:485
RoR::SimpleInertia
Designed to be run on main/rendering loop (FPS)
Definition: CmdKeyInertia.h:72
RigDef::CameraRail
Definition: RigDef_File.h:594
RoR::ActorSpawner::m_managed_materials
std::map< std::string, Ogre::MaterialPtr > m_managed_materials
Definition: ActorSpawner.h:487
RoR::ActorSpawner::SetBeamSpring
void SetBeamSpring(beam_t &beam, float spring)
Definition: ActorSpawner.cpp:6418
RoR::ActorSpawner::ValidateRotator
void ValidateRotator(int id, int axis1, int axis2, NodeNum_t *nodes1, NodeNum_t *nodes2)
Definition: ActorSpawner.cpp:7001
RoR::ActorSpawner::FindVideoCameraByMaterial
RigDef::VideoCamera * FindVideoCameraByMaterial(std::string const &material_name)
Returns NULL if none found.
Definition: ActorSpawner.cpp:6628
RoR::ActorSpawner::CalcMemoryRequirements
void CalcMemoryRequirements(ActorMemoryRequirements &req, RigDef::Document::Module *module_def)
Definition: ActorSpawner.cpp:154
RoR::ActorSpawner::RegisterNode
NodeNum_t RegisterNode(RigDef::Node::Id &id)
Definition: ActorSpawner.cpp:5985
RoR::FlexFactory
Definition: FlexFactory.h:163
RigDef::Hook
Definition: RigDef_File.h:832
RefCountingObjectPtr< TuneupDef >
RigDef::AntiLockBrakes
Definition: RigDef_File.h:464
RoR::ActorSpawner::_ProcessKeyInertia
void _ProcessKeyInertia(RigDef::Inertia &inertia, RigDef::Inertia &inertia_defaults, RoR::CmdKeyInertia &contract_key, RoR::CmdKeyInertia &extend_key)
Definition: ActorSpawner.cpp:3626
RoR::ActorSpawner::GetAndInitFreeNode
node_t & GetAndInitFreeNode(Ogre::Vector3 const &position)
Definition: ActorSpawner.cpp:6411
RoR::ActorSpawner::_ProcessSimpleInertia
void _ProcessSimpleInertia(RigDef::Inertia &def, RoR::SimpleInertia &obj)
Definition: ActorSpawner.cpp:3601
RoR::ActorSpawner::ProcessAxle
void ProcessAxle(RigDef::Axle &def)
Definition: ActorSpawner.cpp:2721
RoR::ActorSpawner::ProcessEngturbo
void ProcessEngturbo(RigDef::Engturbo &def)
Definition: ActorSpawner.cpp:5513
RoR::ActorSpawner
Processes a RigDef::Document (parsed from 'truck' file format) into a simulated gameplay object (Acto...
Definition: ActorSpawner.h:70
RoR::ActorSpawner::m_cab_trans_material
Ogre::MaterialPtr m_cab_trans_material
Definition: ActorSpawner.h:489
RoR::ActorSpawnRequest
Definition: SimData.h:817
RoR::ActorSpawner::ProcessEngoption
void ProcessEngoption(RigDef::Engoption &def)
Definition: ActorSpawner.cpp:5525
RigDef::Brakes
Definition: RigDef_File.h:565
RigDef::Command2
Definition: RigDef_File.h:625
RoR::ActorSpawner::ActorMemoryRequirements::num_shocks
size_t num_shocks
Definition: ActorSpawner.h:80
RoR::ActorSpawner::CheckCabLimit
bool CheckCabLimit(unsigned int count)
Definition: ActorSpawner.cpp:6323
RigDef::SoundSource2
Definition: RigDef_File.h:1164
RoR::ActorSpawner::ActorMemoryRequirements::num_airbrakes
size_t num_airbrakes
Definition: ActorSpawner.h:83
RoR::ActorSpawner::ProcessShock3
void ProcessShock3(RigDef::Shock3 &def)
Definition: ActorSpawner.cpp:4065
RoR::ActorSpawner::GetActor
ActorPtr GetActor()
Definition: ActorSpawner.h:106
RoR::ActorSpawner::AddMessage
void AddMessage(Message type, Ogre::String const &text)
Maintenance.
Definition: ActorSpawner.cpp:5890
RoR::ActorSpawner::ProcessAnimator
void ProcessAnimator(RigDef::Animator &def)
Definition: ActorSpawner.cpp:3787
RoR::ActorSpawner::CustomMaterial::MirrorPropType::MPROP_NONE
@ MPROP_NONE
RoR::ActorSpawner::SetupNewEntity
void SetupNewEntity(Ogre::Entity *e, Ogre::ColourValue simple_color)
Full texture and material setup.
Definition: ActorSpawner.cpp:6851
RoR::ActorSpawner::ProcessFlaregroupNoImport
void ProcessFlaregroupNoImport(RigDef::FlaregroupNoImport &def)
Definition: ActorSpawner.cpp:2394
RoR::ActorSpawner::InstantiateManagedMaterial
Ogre::MaterialPtr InstantiateManagedMaterial(Ogre::String const &rg_name, Ogre::String const &source_name, Ogre::String const &clone_name)
Definition: ActorSpawner.cpp:2429
RoR::beam_t
Simulation: An edge in the softbody structure.
Definition: SimData.h:304
RoR::ActorSpawner::ProcessShock2
void ProcessShock2(RigDef::Shock2 &def)
Definition: ActorSpawner.cpp:4149
RoR::ActorSpawner::FindOrCreateCustomizedMaterial
Ogre::MaterialPtr FindOrCreateCustomizedMaterial(const std::string &mat_lookup_name, const std::string &mat_lookup_rg)
Definition: ActorSpawner.cpp:6644
RoR::ActorSpawner::m_oldstyle_renderdash
RoR::Renderdash * m_oldstyle_renderdash
Definition: ActorSpawner.h:491
RoR::ActorSpawner::CreateVideoCamera
void CreateVideoCamera(RigDef::VideoCamera *def)
Definition: ActorSpawner.cpp:7096
RoR::ActorSpawner::ResolveNodeRef
NodeNum_t ResolveNodeRef(RigDef::Node::Ref const &node_ref)
Definition: ActorSpawner.cpp:5921
RoR::ActorSpawner::CheckAeroEngineLimit
bool CheckAeroEngineLimit(unsigned int count)
Definition: ActorSpawner.cpp:6347
RoR::ActorSpawner::ProcessMeshWheel
void ProcessMeshWheel(RigDef::MeshWheel &def)
Definition: ActorSpawner.cpp:4596
DEFAULT_MINIMASS
static const float DEFAULT_MINIMASS
minimum node mass in Kg
Definition: SimConstants.h:54
RoR::ActorSpawner::ProcessRopable
void ProcessRopable(RigDef::Ropable &def)
Definition: ActorSpawner.cpp:2955
RigDef::Engoption
Definition: RigDef_File.h:678
RoR::NodeNum_t
uint16_t NodeNum_t
Node position within Actor::ar_nodes; use RoR::NODENUM_INVALID as empty value.
Definition: ForwardDeclarations.h:54
RigDef::Shock2
Definition: RigDef_File.h:1079
SimData.h
Core data structures for simulation; Everything affected by by either physics, network or user intera...
RoR::ActorSpawner::ActorMemoryRequirements
Definition: ActorSpawner.h:76
RoR::ActorSpawner::AddTyreBeam
unsigned int AddTyreBeam(RigDef::Wheel2 &wheel_2_def, node_t *node_1, node_t *node_2)
Definition: ActorSpawner.cpp:5401
RoR::ActorSpawner::m_oldstyle_cab_texcoords
std::vector< CabTexcoord > m_oldstyle_cab_texcoords
Definition: ActorSpawner.h:476
RoR::ActorSpawner::ProcessTurboprop2
void ProcessTurboprop2(RigDef::Turboprop2 &def)
Definition: ActorSpawner.cpp:832
RoR::ActorSpawner::ProcessAuthor
void ProcessAuthor(RigDef::Author &def)
Definition: ActorSpawner.cpp:5581
RoR::ActorSpawner::CheckTexcoordLimit
bool CheckTexcoordLimit(unsigned int count)
Definition: ActorSpawner.cpp:6298
keyword
static int keyword
Definition: Bench_TruckParser_IdentifyKeyword.cpp:1448
RoR::ActorSpawner::CreateParticleSystem
Ogre::ParticleSystem * CreateParticleSystem(std::string const &name, std::string const &template_name)
Definition: ActorSpawner.cpp:7334
RoR::ActorSpawner::m_props_parent_scenenode
Ogre::SceneNode * m_props_parent_scenenode
this isn't used for moving/hiding things, just helps developers inspect the scene graph.
Definition: ActorSpawner.h:497
RoR::ActorSpawner::ConfigureAssetPacks
void ConfigureAssetPacks(ActorPtr actor, RigDef::DocumentPtr def)
Definition: ActorSpawner.cpp:143
RigDef::Wheel2
Definition: RigDef_File.h:1327
RoR::ActorSpawner::ProcessSpeedLimiter
void ProcessSpeedLimiter(RigDef::SpeedLimiter &def)
Definition: ActorSpawner.cpp:2894
RigDef::TractionControl
Definition: RigDef_File.h:1228
RoR::ActorSpawner::m_help_material_name
std::string m_help_material_name
Definition: ActorSpawner.h:467
RoR::ActorSpawner::CustomMaterial::CustomMaterial
CustomMaterial(Ogre::MaterialPtr &mat)
Definition: ActorSpawner.h:129
RoR::ActorSpawner::CustomMaterial::video_camera_def
RigDef::VideoCamera * video_camera_def
Definition: ActorSpawner.h:139
RoR::ActorSpawner::GetWheelAxisNodes
void GetWheelAxisNodes(RigDef::BaseWheel &def, node_t *&out_node_1, node_t *&out_node_2)
Definition: ActorSpawner.cpp:4573
RoR::WheelID_t
int WheelID_t
Index to Actor::ar_wheels, use RoR::WHEELID_INVALID as empty value.
Definition: ForwardDeclarations.h:58
RoR::ActorSpawner::ProcessFlare3
void ProcessFlare3(RigDef::Flare3 &def)
Definition: ActorSpawner.cpp:2148
RigDef::Cinecam
Definition: RigDef_File.h:604
RoR::ActorSpawner::ProcessNewActor
void ProcessNewActor(ActorPtr actor, ActorSpawnRequest rq, RigDef::DocumentPtr def)
Definition: ActorSpawnerFlow.cpp:59
RoR::ActorSpawner::ProcessFlexbody
void ProcessFlexbody(RigDef::Flexbody &def)
Definition: ActorSpawner.cpp:1520
RigDef::Keyword::INVALID
@ INVALID
RoR::ActorSpawner::Message
Message
Definition: ActorSpawner.h:88
RoR::ActorSpawner::CreateCabVisual
void CreateCabVisual()
Definition: ActorSpawner.cpp:7357
RoR::ActorSpawner::FinalizeRig
void FinalizeRig()
Definition: ActorSpawner.cpp:414
RoR::ActorSpawner::ProcessFixedNode
void ProcessFixedNode(RigDef::Node::Ref node_ref)
Definition: ActorSpawner.cpp:1276
RoR::ActorSpawner::HandleException
void HandleException()
Definition: ActorSpawner.cpp:7311
RoR::ActorSpawner::GetAndInitFreeBeam
beam_t & GetAndInitFreeBeam(node_t &node_1, node_t &node_2)
Definition: ActorSpawner.cpp:6403
RoR::ActorSpawner::ProcessScrewprop
void ProcessScrewprop(RigDef::Screwprop &def)
Definition: ActorSpawner.cpp:721
RoR::ActorSpawner::m_material_substitutions
std::map< std::string, CustomMaterial > m_material_substitutions
Maps original material names (shared) to their actor-specific substitutes; There's 1 substitute per 1...
Definition: ActorSpawner.h:486
RigDef::MeshWheel
Definition: RigDef_File.h:924
RigDef::ManagedMaterial
Definition: RigDef_File.h:900
RoR::ActorSpawner::AddWheelBeam
unsigned int AddWheelBeam(node_t *node_1, node_t *node_2, float spring, float damping, std::shared_ptr< RigDef::BeamDefaults > beam_defaults, float max_contraction=-1.f, float max_extension=-1.f, BeamType type=BEAM_NORMAL)
'wheels', 'meshwheels', 'meshwheels2'
Definition: ActorSpawner.cpp:5365
RoR::ActorSpawner::m_actor
ActorPtr m_actor
Definition: ActorSpawner.h:452
RigDef::InterAxle
Definition: RigDef_File.h:878
RigDef::BaseWheel
Definition: RigDef_File.h:265
RoR::ActorSpawner::m_named_nodes
std::map< Ogre::String, unsigned int > m_named_nodes
Definition: ActorSpawner.h:480
RoR::ActorSpawner::Message::TYPE_WARNING
@ TYPE_WARNING
RoR::ActorSpawner::FinalizeGfxSetup
void FinalizeGfxSetup()
Definition: ActorSpawner.cpp:6909
Application.h
Central state/object manager and communications hub.
RoR::ActorSpawner::ProcessBeam
void ProcessBeam(RigDef::Beam &def)
Definition: ActorSpawner.cpp:5636
RoR::ActorSpawner::AddWheelRimBeam
unsigned int AddWheelRimBeam(RigDef::Wheel2 &wheel_2_def, node_t *node_1, node_t *node_2)
Definition: ActorSpawner.cpp:5392
RoR::ActorSpawner::m_fuse_z_max
float m_fuse_z_max
Definition: ActorSpawner.h:472
RoR::ActorSpawner::CustomMaterial::MirrorPropType
MirrorPropType
Definition: ActorSpawner.h:115
RoR::ActorSpawner::ProcessCollisionRange
void ProcessCollisionRange(RigDef::CollisionRange &def)
Definition: ActorSpawner.cpp:2697
RoR::node_t
Physics: A vertex in the softbody structure.
Definition: SimData.h:259
RigDef::Submesh
Definition: RigDef_File.h:1180
RoR::ActorSpawner::GetCurrentElementMediaRG
std::string GetCurrentElementMediaRG()
Where to load media from (the addonpart's bundle or vehicle's bundle?)
Definition: ActorSpawner.cpp:7494
RoR::ActorSpawner::ActorSpawnState::global_minimass
float global_minimass
'minimass' - used where 'set_default_minimass' is not applied.
Definition: ActorSpawner.h:447
RoR::ActorSpawner::AdjustNodeBuoyancy
void AdjustNodeBuoyancy(node_t &node, RigDef::Node &node_def, std::shared_ptr< RigDef::NodeDefaults > defaults)
For user-defined nodes.
Definition: ActorSpawner.cpp:4876
RoR::ActorSpawner::ProcessNode
void ProcessNode(RigDef::Node &def)
Definition: ActorSpawner.cpp:6029
RigDef::Inertia
Definition: RigDef_File.h:298
RoR::ActorSpawner::m_managedmat_placeholder_template
Ogre::MaterialPtr m_managedmat_placeholder_template
An 'error marker' material (bright magenta) to generate managedmaterial placeholders from.
Definition: ActorSpawner.h:488
RoR::ActorSpawner::m_wing_area
float m_wing_area
Definition: ActorSpawner.h:468
RigDef::Shock
Definition: RigDef_File.h:1061
RoR::CmdKeyInertia
Designed to be run in physics loop (2khz)
Definition: CmdKeyInertia.h:45
RoR::ActorSpawner::CreateMirrorPropVideoCam
void CreateMirrorPropVideoCam(Ogre::MaterialPtr custom_mat, CustomMaterial::MirrorPropType type, Ogre::SceneNode *prop_scenenode)
Definition: ActorSpawner.cpp:7240
RoR::ActorSpawner::ProcessSlidenode
void ProcessSlidenode(RigDef::SlideNode &def)
Definition: ActorSpawner.cpp:3043
RoR::ActorSpawner::m_fuse_y_max
float m_fuse_y_max
Definition: ActorSpawner.h:474
RoR::ActorSpawner::ProcessRailGroup
void ProcessRailGroup(RigDef::RailGroup &def)
Definition: ActorSpawner.cpp:3036
RoR::Renderdash
'renderdash' is a name of a classic Render-To-Texture animated material with gauges and other dashboa...
Definition: Renderdash.h:34
RoR::ActorSpawner::m_flares_parent_scenenode
Ogre::SceneNode * m_flares_parent_scenenode
this isn't used for moving/hiding things, just helps developers inspect the scene graph.
Definition: ActorSpawner.h:499
RoR::ActorSpawner::CustomMaterial::MirrorPropType::MPROP_LEFT
@ MPROP_LEFT
RigDef::MaterialFlareBinding
Definition: RigDef_File.h:912
RoR::ActorSpawner::SetBeamStrength
void SetBeamStrength(beam_t &beam, float strength)
Definition: ActorSpawner.cpp:3974
RigDef::SpeedLimiter
Definition: RigDef_File.h:1172
RoR::ActorSpawner::CheckSoundScriptLimit
static bool CheckSoundScriptLimit(ActorPtr const &vehicle, unsigned int count)
Definition: ActorSpawner.cpp:6311
RoR::ActorSpawner::ProcessDescription
void ProcessDescription(Ogre::String const &line)
Definition: ActorSpawner.cpp:853
RoR::ActorSpawner::m_cab_material_name
std::string m_cab_material_name
Original name defined in truckfile/globals.
Definition: ActorSpawner.h:466
RoR::ActorSpawner::ProcessInterAxle
void ProcessInterAxle(RigDef::InterAxle &def)
Definition: ActorSpawner.cpp:2787
RigDef::Lockgroup
Definition: RigDef_File.h:885
RoR::ActorSpawner::ProcessParticle
void ProcessParticle(RigDef::Particle &def)
Definition: ActorSpawner.cpp:2925
RoR::ActorSpawner::ProcessCollisionBox
void ProcessCollisionBox(RigDef::CollisionBox &def)
Definition: ActorSpawner.cpp:2672
RigDef::Animator
Definition: RigDef_File.h:421
RoR::ActorSpawner::m_state
ActorSpawnState m_state
Definition: ActorSpawner.h:465
RoR::ActorSpawner::ActorMemoryRequirements::num_nodes
size_t num_nodes
Definition: ActorSpawner.h:78
RoR::ActorSpawner::Exception::Exception
Exception(Ogre::String const &message)
Definition: ActorSpawner.h:146
RigDef::Flexbody
Definition: RigDef_File.h:773
RoR::ActorSpawner::ProcessTie
void ProcessTie(RigDef::Tie &def)
Definition: ActorSpawner.cpp:2967
RoR::ActorSpawner::CreateMeshWheelVisuals
void CreateMeshWheelVisuals(WheelID_t wheel_id, NodeNum_t base_node_index, NodeNum_t axis_node_1_index, NodeNum_t axis_node_2_index, unsigned int num_rays, WheelSide side, Ogre::String mesh_name, Ogre::String mesh_rg, Ogre::String material_name, Ogre::String material_rg, float rim_radius)
Definition: ActorSpawner.cpp:4741
RoR::ActorSpawner::UpdateCollcabContacterNodes
void UpdateCollcabContacterNodes()
Definition: ActorSpawner.cpp:6588
RigDef::VideoCamera
Definition: RigDef_File.h:1298
RigDef::TransferCase
Definition: RigDef_File.h:1241
RoR::ActorSpawner::SetBeamDamping
void SetBeamDamping(beam_t &beam, float damping)
Definition: ActorSpawner.cpp:6423
RoR::ActorSpawner::m_curr_mirror_prop_scenenode
Ogre::SceneNode * m_curr_mirror_prop_scenenode
Definition: ActorSpawner.h:493
RigDef::Turboprop2
Definition: RigDef_File.h:1288
RoR::ActorSpawner::CheckAxleLimit
bool CheckAxleLimit(unsigned int count)
Definition: ActorSpawner.cpp:6274
RoR::ActorSpawner::CollectNodesFromRanges
bool CollectNodesFromRanges(std::vector< RigDef::Node::Range > &node_ranges, std::vector< NodeNum_t > &out_node_indices)
Parses list of node-ranges into list of individual nodes.
Definition: ActorSpawner.cpp:3128
RoR::ActorSpawner::ProcessSoundSource2
void ProcessSoundSource2(RigDef::SoundSource2 &def)
Definition: ActorSpawner.cpp:1166
RoR::ActorSpawner::ProcessAntiLockBrakes
void ProcessAntiLockBrakes(RigDef::AntiLockBrakes &def)
Definition: ActorSpawner.cpp:5471
RoR::ActorSpawner::ProcessWheel
void ProcessWheel(RigDef::Wheel &def)
Definition: ActorSpawner.cpp:4944
RoR::ActorSpawner::ProcessCameraRail
void ProcessCameraRail(RigDef::CameraRail &def)
Definition: ActorSpawner.cpp:1220
RoR::ActorSpawner::AddSoundSourceInstance
static void AddSoundSourceInstance(ActorPtr const &vehicle, Ogre::String const &sound_script_name, int node_index, int type=-2)
Definition: ActorSpawner.cpp:1183
RoR::ActorSpawner::WashCalculator
void WashCalculator()
Definition: ActorSpawner.cpp:623
RoR::ActorSpawner::m_airplane_left_light
int m_airplane_left_light
Definition: ActorSpawner.h:469
RoR::ActorSpawner::ProcessExhaust
void ProcessExhaust(RigDef::Exhaust &def)
Definition: ActorSpawner.cpp:1282
RoR::ActorSpawner::CustomMaterial::mirror_prop_type
MirrorPropType mirror_prop_type
Definition: ActorSpawner.h:140
RigDef::Tie
Definition: RigDef_File.h:1194
RigDef::Node::Id
Abstract node ID (numbered or named) Node name is always available.
Definition: RigDef_Node.h:44
RigDef::WheelDetacher
Definition: RigDef_File.h:1335
RigDef::Rotator
Definition: RigDef_File.h:1022
RoR::Message
Unified game event system - all requests and state changes are reported using a message.
Definition: GameContext.h:51
RoR::ActorSpawner::GetNodePointer
node_t * GetNodePointer(RigDef::Node::Ref const &node_ref)
Definition: ActorSpawner.cpp:5960
RoR::ActorSpawner::ProcessProp
void ProcessProp(RigDef::Prop &def)
Resource group override is used with addonparts.
Definition: ActorSpawner.cpp:1619
RigDef::Fusedrag
Definition: RigDef_File.h:797
RigDef::Engine
Definition: RigDef_File.h:667
RoR::ActorSpawner::Message::TYPE_ERROR
@ TYPE_ERROR
RigDef_Parser.h
Checks the rig-def file syntax and loads data to memory.
RoR::ActorSpawner::ProcessPistonprop
void ProcessPistonprop(RigDef::Pistonprop &def)
Definition: ActorSpawner.cpp:858
RoR::ActorSpawner::m_fuse_y_min
float m_fuse_y_min
Definition: ActorSpawner.h:473
RoR::ActorSpawner::CreateWheelVisuals
void CreateWheelVisuals(WheelID_t wheel_id, NodeNum_t node_base_index, unsigned int def_num_rays, Ogre::String const &face_material_name, Ogre::String const &face_material_rg, Ogre::String const &band_material_name, Ogre::String const &band_material_rg, bool separate_rim, float rim_ratio=1.f)
Definition: ActorSpawner.cpp:5250
RoR::ActorSpawner::GetFreeShock
shock_t & GetFreeShock()
Definition: ActorSpawner.cpp:6396
RoR::ActorSpawner::ProcessTurbojet
void ProcessTurbojet(RigDef::Turbojet &def)
Definition: ActorSpawner.cpp:664
RoR::ActorSpawner::CalculateBeamLength
void CalculateBeamLength(beam_t &beam)
Definition: ActorSpawner.cpp:5874
RoR::ActorSpawner::m_spawn_position
Ogre::Vector3 m_spawn_position
Definition: ActorSpawner.h:456
RoR::ActorSpawner::ProcessCruiseControl
void ProcessCruiseControl(RigDef::CruiseControl &def)
Definition: ActorSpawner.cpp:2882
RigDef::Rotator2
Definition: RigDef_File.h:1036
RoR::ActorSpawner::InitializeRig
void InitializeRig()
Definition: ActorSpawner.cpp:252
RoR::ActorSpawner::CreateRail
RailGroup * CreateRail(std::vector< RigDef::Node::Range > &node_ranges)
Definition: ActorSpawner.cpp:3188
RoR::ActorSpawner::m_first_wing_index
int m_first_wing_index
Definition: ActorSpawner.h:475
RigDef::Shock3
Definition: RigDef_File.h:1105
RigDef::Exhaust
Definition: RigDef_File.h:713
RoR::ActorSpawner::m_wheels_parent_scenenode
Ogre::SceneNode * m_wheels_parent_scenenode
this isn't used for moving/hiding things, just helps developers inspect the scene graph.
Definition: ActorSpawner.h:496
RoR::ActorSpawner::CustomMaterial::material_flare_def
RigDef::MaterialFlareBinding * material_flare_def
Definition: ActorSpawner.h:138
RoR::ActorSpawner::m_apply_simple_materials
bool m_apply_simple_materials
Definition: ActorSpawner.h:457
RigDef::Axle
Definition: RigDef_File.h:485
RoR::ActorSpawner::GetFreeNode
node_t & GetFreeNode()
Definition: ActorSpawner.cpp:6381
RoR::ActorSpawner::ProcessRotator2
void ProcessRotator2(RigDef::Rotator2 &def)
Definition: ActorSpawner.cpp:3558
RoR::ActorSpawner::CreateMaterialFlare
void CreateMaterialFlare(int flare_index, Ogre::MaterialPtr mat)
Definition: ActorSpawner.cpp:7473
RoR::ActorSpawner::CreateFlexBodyWheelVisuals
void CreateFlexBodyWheelVisuals(WheelID_t wheel_id, NodeNum_t node_base_index, NodeNum_t axis_node_1, NodeNum_t axis_node_2, int num_rays, float radius, WheelSide side, std::string rim_mesh_name, std::string rim_mesh_rg, std::string tire_mesh_name, std::string tire_mesh_rg)
Definition: ActorSpawner.cpp:5298
RoR::ActorSpawner::ActorMemoryRequirements::num_wings
size_t num_wings
Definition: ActorSpawner.h:82
RoR::ActorSpawner::SetupDefaultSoundSources
static void SetupDefaultSoundSources(ActorPtr const &actor)
Definition: ActorSpawner.cpp:6428
RoR::ActorSpawner::AssignWheelToAxle
bool AssignWheelToAxle(int &_out_axle_wheel, node_t *axis_node_1, node_t *axis_node_2)
Finds wheel with given axle nodes and returns it's index.
Definition: ActorSpawner.cpp:2705
RoR::ActorSpawner::m_curr_mirror_prop_type
CustomMaterial::MirrorPropType m_curr_mirror_prop_type
Definition: ActorSpawner.h:492
RoR::ActorSpawner::BuildAeroEngine
void BuildAeroEngine(NodeNum_t ref_node_index, NodeNum_t back_node_index, NodeNum_t blade_1_node_index, NodeNum_t blade_2_node_index, NodeNum_t blade_3_node_index, NodeNum_t blade_4_node_index, NodeNum_t couplenode_index, bool is_turboprops, Ogre::String const &airfoil, float power, float pitch)
Definition: ActorSpawner.cpp:777
RoR::ActorSpawner::_SectionWheels2AddBeam
unsigned int _SectionWheels2AddBeam(RigDef::Wheel2 &wheel_2_def, node_t *node_1, node_t *node_2)
Definition: ActorSpawner.cpp:5413
RigDef::Node
Definition: RigDef_Node.h:39
RigDef::DocumentPtr
std::shared_ptr< Document > DocumentPtr
Definition: ForwardDeclarations.h:281
RoR::ActorSpawner::ProcessCommand
void ProcessCommand(RigDef::Command2 &def)
Definition: ActorSpawner.cpp:3682
FlexObj.h
RigDef::SoundSource
Definition: RigDef_File.h:1158
RoR::ActorSpawner::GetNodeIndexOrThrow
NodeNum_t GetNodeIndexOrThrow(RigDef::Node::Ref const &id)
Definition: ActorSpawner.cpp:5594
RoR::ActorSpawner::m_memory_requirements
ActorMemoryRequirements m_memory_requirements
Definition: ActorSpawner.h:460
RoR::ActorSpawner::GetSubmeshGroundmodelName
std::string GetSubmeshGroundmodelName()
Definition: ActorSpawner.cpp:1324
RoR::ActorSpawner::m_airplane_right_light
int m_airplane_right_light
Definition: ActorSpawner.h:470
RoR::ActorSpawner::AddBeam
beam_t & AddBeam(node_t &node_1, node_t &node_2, std::shared_ptr< RigDef::BeamDefaults > &defaults, int detacher_group)
Definition: ActorSpawner.cpp:3949
RoR::ActorSpawner::ProcessWheelDetacher
void ProcessWheelDetacher(RigDef::WheelDetacher &def)
Definition: ActorSpawner.cpp:5424
RoR::ActorSpawner::InitBeam
void InitBeam(beam_t &beam, node_t *node_1, node_t *node_2)
Definition: ActorSpawner.cpp:5881
FlexFactory.h
RoR::ActorSpawner::AssignManagedMaterialTexture
void AssignManagedMaterialTexture(Ogre::TextureUnitState *tus, const std::string &mm_name, int media_id, const std::string &tex_name)
Helper for ProcessManagedMaterial()
Definition: ActorSpawner.cpp:7509
RoR::ActorSpawner::CustomMaterial::CustomMaterial
CustomMaterial()
Definition: ActorSpawner.h:122
RigDef::Minimass
Definition: RigDef_File.h:918
RigDef::Turbojet
Definition: RigDef_File.h:1275
RoR::ActorSpawner::ProcessFlexBodyWheel
void ProcessFlexBodyWheel(RigDef::FlexBodyWheel &def)
Definition: ActorSpawner.cpp:4298
RoR::ActorSpawner::FindBeamInRig
beam_t * FindBeamInRig(NodeNum_t node_a, NodeNum_t node_b)
Definition: ActorSpawner.cpp:3234
RoR::ActorSpawner::ProcessTractionControl
void ProcessTractionControl(RigDef::TractionControl &def)
Definition: ActorSpawner.cpp:5438
RoR::ActorSpawner::GetBeamNodePointer
node_t * GetBeamNodePointer(RigDef::Node::Ref const &node_ref)
Definition: ActorSpawner.cpp:5626
RoR::ActorSpawner::CreateSimpleMaterial
Ogre::MaterialPtr CreateSimpleMaterial(Ogre::ColourValue color)
Definition: ActorSpawner.cpp:6840
RigDef::Beam
Definition: RigDef_File.h:491
RigDef::Screwprop
Definition: RigDef_File.h:1043
RoR::ActorSpawner::GetMemoryRequirements
ActorMemoryRequirements const & GetMemoryRequirements()
Definition: ActorSpawner.h:107
RoR::ActorSpawner::GetFreeBeam
beam_t & GetFreeBeam()
Definition: ActorSpawner.cpp:6389
RoR::ActorSpawner::ProcessTrigger
void ProcessTrigger(RigDef::Trigger &def)
Definition: ActorSpawner.cpp:3333
RigDef::CruiseControl
Definition: RigDef_File.h:651
RigDef::Wing
Definition: RigDef_File.h:1341
RoR
Definition: AppContext.h:36
RoR::ActorSpawner::m_selected_modules
std::list< std::shared_ptr< RigDef::Document::Module > > m_selected_modules
Definition: ActorSpawner.h:455
x
float x
Definition: (ValueTypes) quaternion.h:5
RoR::ActorSpawner::ProcessTransferCase
void ProcessTransferCase(RigDef::TransferCase &def)
Definition: ActorSpawner.cpp:2844
RoR::ActorSpawner::GetNodePointerOrThrow
node_t * GetNodePointerOrThrow(RigDef::Node::Ref const &node_ref)
Definition: ActorSpawner.cpp:5973
RigDef::Globals
Definition: RigDef_File.h:809
RigDef::ExtCamera
Definition: RigDef_File.h:720
RigDef::Rope
Definition: RigDef_File.h:1013
RoR::ActorSpawner::ProcessCinecam
void ProcessCinecam(RigDef::Cinecam &def)
Definition: ActorSpawner.cpp:6195
RoR::ActorSpawner::CustomMaterial::material
Ogre::MaterialPtr material
Definition: ActorSpawner.h:137
RoR::ActorSpawner::InitNode
void InitNode(node_t &node, Ogre::Vector3 const &position)
Definition: ActorSpawner.cpp:6227
RoR::WheelPropulsion
WheelPropulsion
Definition: Application.h:532
RigDef::SlideNode
Definition: RigDef_File.h:1138
RigDef::MeshWheel2
Definition: RigDef_File.h:927
RigDef::Keyword
Keyword
Definition: Application.h:171
RoR::ActorSpawner::ProcessManagedMaterial
void ProcessManagedMaterial(RigDef::ManagedMaterial &def)
Definition: ActorSpawner.cpp:2443
RigDef::TorqueCurve
Definition: RigDef_File.h:1211
RoR::ActorSpawner::Exception
Definition: ActorSpawner.h:144
RoR::ActorSpawner::ProcessWheel2
void ProcessWheel2(RigDef::Wheel2 &def)
Definition: ActorSpawner.cpp:5015
RoR::ActorSpawner::m_oldstyle_cab_submeshes
std::vector< CabSubmesh > m_oldstyle_cab_submeshes
Definition: ActorSpawner.h:477
RoR::shock_t
Definition: SimData.h:343
RoR::ActorSpawner::CheckScrewpropLimit
bool CheckScrewpropLimit(unsigned int count)
Definition: ActorSpawner.cpp:6359