Rigs of Rods 2026.01
Soft-body Physics Simulation
Loading...
Searching...
No Matches
Data Structures | Public Types | Private Member Functions | Friends
RoR::ActorSpawner Class Reference

Description

Processes a RigDef::Document (parsed from 'truck' file format) into a simulated gameplay object (Actor).

HISTORY:

Before v0.4.5, truckfiles were parsed&spawned on-the-fly: RoR's simulation used data structures with arrays of pre-defined sizes (i.e. MAX_NODES, MAX_BEAMS, MAX_* ...) and the spawner (class SerializedRig) wrote directly into them while reading data from the truckfile. Gfx elements were also created immediately. As a result, the logic was chaotic: some features broke each other (most notably VideoCameras X MaterialFlares X SkinZips) and the sim. structs often contained parser context variables. Also, the whole system was extremely sensitive to order of definitions in truckfile - often [badly/not] documented, known only by forum/IRC users at the time.

Since v0.4.5, RoR has RigDef::Parser which reads truckfile and emits instance of RigDef::Document - all data from truckfile in memory. RigDef::Document doesn't preserve the order of definitions, instead it's designed to resolve all order-dependent references to order-independent, see RigDef::SequentialImporter (resources/rig_def_fileformat/RigDef_SequentialImporter.h) for more info. ActorSpawner was created by carefully refactoring old SerializedRig described above, so a lot of the dirty logic remained. Elements were still written into constant-size arrays.

PRESENT (06/2017):

RoR is being refactored to get rid of the MAX_[BEAMS/NODES/‍***] limits. Static arrays in rig_t are replaced with pointers to dynamically allocated memory. Memory requirements are calculated upfront from RigDef::Document.

CONVENTIONS:

Author
Petr Ohlidal

Definition at line 71 of file ActorSpawner.h.

Data Structures

struct  ActorMemoryRequirements
 
struct  ActorSpawnState
 
struct  CustomMaterial
 
struct  Exception
 

Public Types

enum struct  Message
 

Public Member Functions

Utility
ActorPtr GetActor ()
 
ActorMemoryRequirements const & GetMemoryRequirements ()
 
std::string GetSubmeshGroundmodelName ()
 

Private Member Functions

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)
 
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)
 
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)
 
Processing actor elements
void ProcessAirbrake (RigDef::Airbrake &def)
 
void ProcessAnimator (RigDef::Animator &def)
 
void ProcessAntiLockBrakes (RigDef::AntiLockBrakes &def)
 
void ProcessAuthor (RigDef::Author &def)
 
void ProcessAxle (RigDef::Axle &def)
 
void ProcessBeam (RigDef::Beam &def)
 
void ProcessBrakes (RigDef::Brakes &def)
 
void ProcessCameraRail (RigDef::CameraRail &def)
 
void ProcessCamera (RigDef::Camera &def)
 
void ProcessCinecam (RigDef::Cinecam &def)
 
void ProcessCollisionBox (RigDef::CollisionBox &def)
 
void ProcessCollisionRange (RigDef::CollisionRange &def)
 
void ProcessCommand (RigDef::Command2 &def)
 
void ProcessContacter (RigDef::Node::Ref &node_ref)
 
void ProcessCruiseControl (RigDef::CruiseControl &def)
 
void ProcessCustomDashInputs (RigDef::CustomDashboardInput &def)
 
void ProcessDescription (Ogre::String const &line)
 
void ProcessEngine (RigDef::Engine &def)
 
void ProcessEngoption (RigDef::Engoption &def)
 
void ProcessEngturbo (RigDef::Engturbo &def)
 
void ProcessExhaust (RigDef::Exhaust &def)
 
void ProcessExtCamera (RigDef::ExtCamera &def)
 
void ProcessFixedNode (RigDef::Node::Ref node_ref)
 
void ProcessFlare2 (RigDef::Flare2 &def)
 
void ProcessFlare3 (RigDef::Flare3 &def)
 
void ProcessFlaregroupNoImport (RigDef::FlaregroupNoImport &def)
 
void ProcessFlexbody (RigDef::Flexbody &def)
 
void ProcessFlexBodyWheel (RigDef::FlexBodyWheel &def)
 
void ProcessFusedrag (RigDef::Fusedrag &def)
 
void ProcessGlobals (RigDef::Globals &def)
 
void ProcessGuiSettings (RigDef::GuiSettings &def)
 
void ProcessHelp (RigDef::Help &def)
 
void ProcessHook (RigDef::Hook &def)
 
void ProcessHydro (RigDef::Hydro &def)
 
void ProcessInterAxle (RigDef::InterAxle &def)
 
void ProcessLockgroup (RigDef::Lockgroup &lockgroup)
 
void ProcessManagedMaterial (RigDef::ManagedMaterial &def)
 
void ProcessMeshWheel (RigDef::MeshWheel &def)
 
void ProcessMeshWheel2 (RigDef::MeshWheel2 &def)
 
void ProcessMinimass (RigDef::Minimass &def)
 
void ProcessNode (RigDef::Node &def)
 
void ProcessParticle (RigDef::Particle &def)
 
void ProcessPistonprop (RigDef::Pistonprop &def)
 
void ProcessProp (RigDef::Prop &def)
 
void ProcessRailGroup (RigDef::RailGroup &def)
 
void ProcessRopable (RigDef::Ropable &def)
 
void ProcessRope (RigDef::Rope &def)
 
void ProcessRotator (RigDef::Rotator &def)
 
void ProcessRotator2 (RigDef::Rotator2 &def)
 
void ProcessScrewprop (RigDef::Screwprop &def)
 
void ProcessScript (RigDef::Script &def)
 
void ProcessShock (RigDef::Shock &def)
 
void ProcessShock2 (RigDef::Shock2 &def)
 
void ProcessShock3 (RigDef::Shock3 &def)
 
void ProcessSlidenode (RigDef::SlideNode &def)
 
void ProcessSoundSource (RigDef::SoundSource &def)
 
void ProcessSoundSource2 (RigDef::SoundSource2 &def)
 
void ProcessSpeedLimiter (RigDef::SpeedLimiter &def)
 
void ProcessSubmesh (RigDef::Submesh &def)
 
void ProcessTie (RigDef::Tie &def)
 
void ProcessTorqueCurve (RigDef::TorqueCurve &def)
 
void ProcessTractionControl (RigDef::TractionControl &def)
 
void ProcessTransferCase (RigDef::TransferCase &def)
 
void ProcessTrigger (RigDef::Trigger &def)
 
void ProcessTurbojet (RigDef::Turbojet &def)
 
void ProcessTurboprop2 (RigDef::Turboprop2 &def)
 
void ProcessWheelDetacher (RigDef::WheelDetacher &def)
 
void ProcessWheel (RigDef::Wheel &def)
 
void ProcessWheel2 (RigDef::Wheel2 &def)
 
void ProcessWing (RigDef::Wing &def)
 
Actor building functions
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)
 
void _ProcessSimpleInertia (RigDef::Inertia &def, RoR::SimpleInertia &obj)
 
void _ProcessKeyInertia (RigDef::Inertia &inertia, RigDef::Inertia &inertia_defaults, RoR::CmdKeyInertia &contract_key, RoR::CmdKeyInertia &extend_key)
 
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)
 
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)
 
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)
 
NodeNum_t RegisterNode (RigDef::Node::Id &id)
 
void InitNode (node_t &node, Ogre::Vector3 const &position)
 
void InitNode (unsigned int node_index, Ogre::Vector3 const &position)
 
void InitNode (node_t &node, Ogre::Vector3 const &position, std::shared_ptr< RigDef::NodeDefaults > node_defaults)
 
beam_t & AddBeam (node_t &node_1, node_t &node_2, std::shared_ptr< RigDef::BeamDefaults > &defaults, int detacher_group)
 
unsigned int AddWheelRimBeam (RigDef::Wheel2 &wheel_2_def, node_t *node_1, node_t *node_2)
 
unsigned int AddTyreBeam (RigDef::Wheel2 &wheel_2_def, node_t *node_1, node_t *node_2)
 
unsigned int _SectionWheels2AddBeam (RigDef::Wheel2 &wheel_2_def, node_t *node_1, node_t *node_2)
 
void GetWheelAxisNodes (RigDef::BaseWheel &def, node_t *&out_node_1, node_t *&out_node_2)
 
void AddExhaust (NodeNum_t emitter_node_idx, NodeNum_t direction_node_idx)
 
RailGroup * CreateRail (std::vector< RigDef::Node::Range > &node_ranges)
 
void InitializeRig ()
 
void FinalizeRig ()
 
void AddBaseFlare (RigDef::FlareBase &flare_def)
 
Actor building utilities
void CalcMemoryRequirements (ActorMemoryRequirements &req, RigDef::Document::Module *module_def)
 
void UpdateCollcabContacterNodes ()
 
void WashCalculator ()
 
void AdjustNodeBuoyancy (node_t &node, RigDef::Node &node_def, std::shared_ptr< RigDef::NodeDefaults > defaults)
 
void AdjustNodeBuoyancy (node_t &node, std::shared_ptr< RigDef::NodeDefaults > defaults)
 
void InitBeam (beam_t &beam, node_t *node_1, node_t *node_2)
 
void CalculateBeamLength (beam_t &beam)
 
void SetBeamStrength (beam_t &beam, float strength)
 
void SetBeamSpring (beam_t &beam, float spring)
 
void SetBeamDamping (beam_t &beam, float damping)
 
void SetBeamDeformationThreshold (beam_t &beam, std::shared_ptr< RigDef::BeamDefaults > beam_defaults)
 
void ValidateRotator (int id, int axis1, int axis2, NodeNum_t *nodes1, NodeNum_t *nodes2)
 
std::string ComposeName (const std::string &object, int number=-1)
 
bool AssignWheelToAxle (int &_out_axle_wheel, node_t *axis_node_1, node_t *axis_node_2)
 
node_t & GetFreeNode ()
 
beam_t & GetFreeBeam ()
 
node_t & GetAndInitFreeNode (Ogre::Vector3 const &position)
 
beam_t & GetAndInitFreeBeam (node_t &node_1, node_t &node_2)
 
shock_t & GetFreeShock ()
 
float ComputeWingArea (Ogre::Vector3 const &ref, Ogre::Vector3 const &x, Ogre::Vector3 const &y, Ogre::Vector3 const &aref)
 
bool CollectNodesFromRanges (std::vector< RigDef::Node::Range > &node_ranges, std::vector< NodeNum_t > &out_node_indices)
 
Traversal
NodeNum_t ResolveNodeRef (RigDef::Node::Ref const &node_ref, bool optional=false)
 
node_t * GetNodePointer (RigDef::Node::Ref const &node_ref)
 
node_t * GetNodePointerOrThrow (RigDef::Node::Ref const &node_ref)
 
beam_t & GetBeam (unsigned int index)
 
beam_t * FindBeamInRig (NodeNum_t node_a, NodeNum_t node_b)
 
NodeNum_t GetNodeIndexOrThrow (RigDef::Node::Ref const &id)
 
Visual setup
void CreateBeamVisuals (beam_t &beam, int beam_index, bool visible, std::shared_ptr< RigDef::BeamDefaults > const &beam_defaults, std::string material_override="")
 
void CreateWheelSkidmarks (WheelID_t wheel_index)
 
void FinalizeGfxSetup ()
 
Ogre::MaterialPtr FindOrCreateCustomizedMaterial (const std::string &mat_lookup_name, const std::string &mat_lookup_rg)
 
Ogre::MaterialPtr CreateSimpleMaterial (Ogre::ColourValue color)
 
Ogre::ParticleSystem * CreateParticleSystem (std::string const &name, std::string const &template_name)
 
RigDef::MaterialFlareBinding * FindFlareBindingForMaterial (std::string const &material_name)
 
RigDef::VideoCamera * FindVideoCameraByMaterial (std::string const &material_name)
 
void CreateVideoCamera (RigDef::VideoCamera *def)
 
void CreateMirrorPropVideoCam (Ogre::MaterialPtr custom_mat, CustomMaterial::MirrorPropType type, Ogre::SceneNode *prop_scenenode)
 
void SetupNewEntity (Ogre::Entity *e, Ogre::ColourValue simple_color)
 
Ogre::MaterialPtr InstantiateManagedMaterial (Ogre::String const &rg_name, Ogre::String const &source_name, Ogre::String const &clone_name)
 
void CreateCabVisual ()
 
void CreateMaterialFlare (int flare_index, Ogre::MaterialPtr mat)
 
std::string GetCurrentElementMediaRG ()
 
void AssignManagedMaterialTexture (Ogre::TextureUnitState *tus, const std::string &mm_name, int media_id, const std::string &tex_name)
 
void CreateDashboardRttLayers ()
 
void PrepareRenderdashMaterial ()
 
void AddMessage (Message type, Ogre::String const &text)
 
void SetCurrentKeyword (RigDef::Keyword keyword)
 
void HandleException ()
 

Static Private Member Functions

Audio setup
static void AddSoundSource (ActorPtr const &vehicle, SoundScriptInstancePtr sound_script, NodeNum_t node_index, int type=-2)
 
static void AddSoundSourceInstance (ActorPtr const &vehicle, Ogre::String const &sound_script_name, int node_index, int type=-2)
 

Private Attributes

Settings
ActorPtr m_actor
 
RigDef::DocumentPtr m_file
 
std::list< std::shared_ptr< RigDef::Document::Module > > m_selected_modules
 
Ogre::Vector3 m_spawn_position
 
bool m_apply_simple_materials
 
std::string m_custom_resource_group
 
bool m_generate_wing_position_lights = true
 
ActorMemoryRequirements m_memory_requirements
 
State
ActorSpawnState m_state
 
std::string m_cab_material_name
 
float m_wing_area
 
int m_airplane_left_light
 
int m_airplane_right_light
 
float m_fuse_z_min
 
float m_fuse_z_max
 
float m_fuse_y_min
 
float m_fuse_y_max
 
int m_first_wing_index
 
std::vector< CabTexcoord > m_oldstyle_cab_texcoords
 
std::vector< CabSubmesh > m_oldstyle_cab_submeshes
 
RigDef::Keyword m_current_keyword = RigDef::Keyword::INVALID
 
std::shared_ptr< RigDef::Document::Module > m_current_module
 
std::map< Ogre::String, unsigned int > m_named_nodes
 
Visuals
RoR::FlexFactory m_flex_factory
 
std::map< std::string, CustomMaterial > m_material_substitutions
 
std::map< std::string, Ogre::MaterialPtr > m_managed_materials
 
Ogre::MaterialPtr m_managedmat_placeholder_template
 
Ogre::MaterialPtr m_cab_trans_material
 
Ogre::MaterialPtr m_simple_material_base
 
RTTLayer * m_renderdash_rtt_layer {nullptr}
 
std::vector< RTTLayer * > m_texturedashboard_rtt_layers
 
CustomMaterial::MirrorPropType m_curr_mirror_prop_type
 
Ogre::SceneNode * m_curr_mirror_prop_scenenode
 
Ogre::SceneNode * m_actor_grouping_scenenode = nullptr
 
Ogre::SceneNode * m_wheels_parent_scenenode = nullptr
 
Ogre::SceneNode * m_props_parent_scenenode = nullptr
 
Ogre::SceneNode * m_flexbodies_parent_scenenode = nullptr
 
Ogre::SceneNode * m_flares_parent_scenenode = nullptr
 
Ogre::SceneNode * m_particles_parent_scenenode = nullptr
 

Friends

class RoR::FlexFactory
 
class RoR::GfxActor
 

Processing

void ConfigureSections (Ogre::String const &sectionconfig, RigDef::DocumentPtr def)
 
void ConfigureAddonParts (ActorPtr actor)
 
void ConfigureAssetPacks (ActorPtr actor)
 
void ProcessNewActor (ActorPtr actor, ActorSpawnRequest rq, RigDef::DocumentPtr def)
 
static void SetupDefaultSoundSources (ActorPtr const &actor)
 

Limit checks

bool CheckAxleLimit (unsigned int count)
 
bool CheckSubmeshLimit (unsigned int count)
 
bool CheckTexcoordLimit (unsigned int count)
 
bool CheckCabLimit (unsigned int count)
 
bool CheckCameraRailLimit (unsigned int count)
 
bool CheckAeroEngineLimit (unsigned int count)
 
bool CheckScrewpropLimit (unsigned int count)
 
static bool CheckSoundScriptLimit (ActorPtr const &vehicle, unsigned int count)
 

Member Enumeration Documentation

◆ Message

enum struct RoR::ActorSpawner::Message
strong
Enumerator
TYPE_INFO 
TYPE_WARNING 
TYPE_ERROR 

Definition at line 90 of file ActorSpawner.h.

Member Function Documentation

◆ _ProcessKeyInertia()

void ActorSpawner::_ProcessKeyInertia ( RigDef::Inertia &  inertia,
RigDef::Inertia &  inertia_defaults,
RoR::CmdKeyInertia &  contract_key,
RoR::CmdKeyInertia &  extend_key 
)
private

Definition at line 3673 of file ActorSpawner.cpp.

◆ _ProcessSimpleInertia()

void ActorSpawner::_ProcessSimpleInertia ( RigDef::Inertia &  def,
RoR::SimpleInertia &  obj 
)
private

Definition at line 3648 of file ActorSpawner.cpp.

◆ _SectionWheels2AddBeam()

unsigned int ActorSpawner::_SectionWheels2AddBeam ( RigDef::Wheel2 &  wheel_2_def,
node_t *  node_1,
node_t *  node_2 
)
private

Definition at line 5463 of file ActorSpawner.cpp.

◆ AddBaseFlare()

void ActorSpawner::AddBaseFlare ( RigDef::FlareBase &  flare_def)
private

Definition at line 2227 of file ActorSpawner.cpp.

◆ AddBeam()

beam_t & ActorSpawner::AddBeam ( node_t &  node_1,
node_t &  node_2,
std::shared_ptr< RigDef::BeamDefaults > &  defaults,
int  detacher_group 
)
private

Definition at line 3999 of file ActorSpawner.cpp.

◆ AddExhaust()

void ActorSpawner::AddExhaust ( NodeNum_t  emitter_node_idx,
NodeNum_t  direction_node_idx 
)
private

Definition at line 6188 of file ActorSpawner.cpp.

◆ AddMessage()

void ActorSpawner::AddMessage ( ActorSpawner::Message  type,
Ogre::String const &  text 
)
private

Maintenance.

Definition at line 5915 of file ActorSpawner.cpp.

◆ AddSoundSource()

void ActorSpawner::AddSoundSource ( ActorPtr const &  vehicle,
SoundScriptInstancePtr  sound_script,
NodeNum_t  node_index,
int  type = -2 
)
staticprivate

Definition at line 1221 of file ActorSpawner.cpp.

◆ AddSoundSourceInstance()

void ActorSpawner::AddSoundSourceInstance ( ActorPtr const &  vehicle,
Ogre::String const &  sound_script_name,
int  node_index,
int  type = -2 
)
staticprivate

Definition at line 1214 of file ActorSpawner.cpp.

◆ AddTyreBeam()

unsigned int ActorSpawner::AddTyreBeam ( RigDef::Wheel2 &  wheel_2_def,
node_t *  node_1,
node_t *  node_2 
)
private

Definition at line 5451 of file ActorSpawner.cpp.

◆ AddWheelBeam()

unsigned int ActorSpawner::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 
)
private

'wheels', 'meshwheels', 'meshwheels2'

Definition at line 5415 of file ActorSpawner.cpp.

◆ AddWheelRimBeam()

unsigned int ActorSpawner::AddWheelRimBeam ( RigDef::Wheel2 &  wheel_2_def,
node_t *  node_1,
node_t *  node_2 
)
private

Definition at line 5442 of file ActorSpawner.cpp.

◆ AdjustNodeBuoyancy() [1/2]

void ActorSpawner::AdjustNodeBuoyancy ( node_t &  node,
RigDef::Node &  node_def,
std::shared_ptr< RigDef::NodeDefaults >  defaults 
)
private

For user-defined nodes.

Definition at line 4926 of file ActorSpawner.cpp.

◆ AdjustNodeBuoyancy() [2/2]

void ActorSpawner::AdjustNodeBuoyancy ( node_t &  node,
std::shared_ptr< RigDef::NodeDefaults >  defaults 
)
private

For generated nodes.

Definition at line 4932 of file ActorSpawner.cpp.

◆ AssignManagedMaterialTexture()

void ActorSpawner::AssignManagedMaterialTexture ( Ogre::TextureUnitState *  tus,
const std::string &  mm_name,
int  media_id,
const std::string &  tex_name 
)
private

Helper for ProcessManagedMaterial()

Definition at line 7561 of file ActorSpawner.cpp.

◆ AssignWheelToAxle()

bool ActorSpawner::AssignWheelToAxle ( int &  _out_axle_wheel,
node_t *  axis_node_1,
node_t *  axis_node_2 
)
private

Finds wheel with given axle nodes and returns it's index.

Parameters
_out_axle_wheelIndex of the found wheel.
Returns
True if wheel was found, false if not.

Definition at line 2766 of file ActorSpawner.cpp.

◆ BuildAeroEngine()

void ActorSpawner::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 
)
private

Definition at line 808 of file ActorSpawner.cpp.

◆ BuildWheelBeams()

void ActorSpawner::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 
)
private

'wheels', 'meshwheels'

Definition at line 4937 of file ActorSpawner.cpp.

◆ BuildWheelObjectAndNodes()

void ActorSpawner::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 
)
private

Sets up wheel and builds nodes for sections 'wheels', 'meshwheels' and 'meshwheels2'.

Parameters
wheel_widthWidth of the wheel (used in section 'wheels'). Use negative value to calculate width from axis beam.
Returns
Wheel index.

Definition at line 4839 of file ActorSpawner.cpp.

◆ CalcMemoryRequirements()

void ActorSpawner::CalcMemoryRequirements ( ActorMemoryRequirements &  req,
RigDef::Document::Module *  module_def 
)
private

Definition at line 163 of file ActorSpawner.cpp.

◆ CalculateBeamLength()

void ActorSpawner::CalculateBeamLength ( beam_t &  beam)
private

Definition at line 5899 of file ActorSpawner.cpp.

◆ CheckAeroEngineLimit()

bool ActorSpawner::CheckAeroEngineLimit ( unsigned int  count)
private

Definition at line 6375 of file ActorSpawner.cpp.

◆ CheckAxleLimit()

bool ActorSpawner::CheckAxleLimit ( unsigned int  count)
private

Definition at line 6302 of file ActorSpawner.cpp.

◆ CheckCabLimit()

bool ActorSpawner::CheckCabLimit ( unsigned int  count)
private

Definition at line 6351 of file ActorSpawner.cpp.

◆ CheckCameraRailLimit()

bool ActorSpawner::CheckCameraRailLimit ( unsigned int  count)
private

Definition at line 6363 of file ActorSpawner.cpp.

◆ CheckScrewpropLimit()

bool ActorSpawner::CheckScrewpropLimit ( unsigned int  count)
private

Definition at line 6387 of file ActorSpawner.cpp.

◆ CheckSoundScriptLimit()

bool ActorSpawner::CheckSoundScriptLimit ( ActorPtr const &  vehicle,
unsigned int  count 
)
staticprivate

Definition at line 6339 of file ActorSpawner.cpp.

◆ CheckSubmeshLimit()

bool ActorSpawner::CheckSubmeshLimit ( unsigned int  count)
private

Definition at line 6314 of file ActorSpawner.cpp.

◆ CheckTexcoordLimit()

bool ActorSpawner::CheckTexcoordLimit ( unsigned int  count)
private

Definition at line 6326 of file ActorSpawner.cpp.

◆ CollectNodesFromRanges()

bool ActorSpawner::CollectNodesFromRanges ( std::vector< RigDef::Node::Range > &  node_ranges,
std::vector< NodeNum_t > &  out_node_indices 
)
private

Parses list of node-ranges into list of individual nodes.

Returns
False if some nodes could not be found and thus the lookup wasn't completed.

Definition at line 3177 of file ActorSpawner.cpp.

◆ ComposeName()

std::string ActorSpawner::ComposeName ( const std::string &  object,
int  number = -1 
)
private

Creates name containing actor ID token, i.e. "Object#1 (filename.truck [Instance ID 1])".

Definition at line 717 of file ActorSpawner.cpp.

◆ ComputeWingArea()

float ActorSpawner::ComputeWingArea ( Ogre::Vector3 const &  ref,
Ogre::Vector3 const &  x,
Ogre::Vector3 const &  y,
Ogre::Vector3 const &  aref 
)
private

Definition at line 1192 of file ActorSpawner.cpp.

◆ ConfigureAddonParts()

void ActorSpawner::ConfigureAddonParts ( ActorPtr  actor)

Definition at line 110 of file ActorSpawner.cpp.

◆ ConfigureAssetPacks()

void ActorSpawner::ConfigureAssetPacks ( ActorPtr  actor)

Definition at line 145 of file ActorSpawner.cpp.

◆ ConfigureSections()

void ActorSpawner::ConfigureSections ( Ogre::String const &  sectionconfig,
RigDef::DocumentPtr  def 
)

Definition at line 91 of file ActorSpawner.cpp.

◆ CreateBeamVisuals()

void ActorSpawner::CreateBeamVisuals ( beam_t &  beam,
int  beam_index,
bool  visible,
std::shared_ptr< RigDef::BeamDefaults > const &  beam_defaults,
std::string  material_override = "" 
)
private

Definition at line 5851 of file ActorSpawner.cpp.

◆ CreateCabVisual()

void ActorSpawner::CreateCabVisual ( )
private

Definition at line 7409 of file ActorSpawner.cpp.

◆ CreateDashboardRttLayers()

void ActorSpawner::CreateDashboardRttLayers ( )
private

Definition at line 7586 of file ActorSpawner.cpp.

◆ CreateFlexBodyWheelVisuals()

void ActorSpawner::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 
)
private

Definition at line 5348 of file ActorSpawner.cpp.

◆ CreateMaterialFlare()

void ActorSpawner::CreateMaterialFlare ( int  flare_index,
Ogre::MaterialPtr  mat 
)
private

Definition at line 7525 of file ActorSpawner.cpp.

◆ CreateMeshWheelVisuals()

void ActorSpawner::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 
)
private

Definition at line 4791 of file ActorSpawner.cpp.

◆ CreateMirrorPropVideoCam()

void ActorSpawner::CreateMirrorPropVideoCam ( Ogre::MaterialPtr  custom_mat,
CustomMaterial::MirrorPropType  type,
Ogre::SceneNode *  prop_scenenode 
)
private

Definition at line 7292 of file ActorSpawner.cpp.

◆ CreateParticleSystem()

Ogre::ParticleSystem * ActorSpawner::CreateParticleSystem ( std::string const &  name,
std::string const &  template_name 
)
private

Definition at line 7386 of file ActorSpawner.cpp.

◆ CreateRail()

RailGroup * ActorSpawner::CreateRail ( std::vector< RigDef::Node::Range > &  node_ranges)
private

Definition at line 3235 of file ActorSpawner.cpp.

◆ CreateSimpleMaterial()

Ogre::MaterialPtr ActorSpawner::CreateSimpleMaterial ( Ogre::ColourValue  color)
private

Definition at line 6878 of file ActorSpawner.cpp.

◆ CreateVideoCamera()

void ActorSpawner::CreateVideoCamera ( RigDef::VideoCamera *  def)
private

Definition at line 7148 of file ActorSpawner.cpp.

◆ CreateWheelSkidmarks()

void ActorSpawner::CreateWheelSkidmarks ( WheelID_t  wheel_index)
private

Definition at line 5058 of file ActorSpawner.cpp.

◆ CreateWheelVisuals()

void ActorSpawner::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 
)
private
Parameters
rim_ratioPercentual size of the rim.

Definition at line 5300 of file ActorSpawner.cpp.

◆ FinalizeGfxSetup()

void ActorSpawner::FinalizeGfxSetup ( )
private

Definition at line 6947 of file ActorSpawner.cpp.

◆ FinalizeRig()

void ActorSpawner::FinalizeRig ( )
private

Definition at line 421 of file ActorSpawner.cpp.

◆ FindBeamInRig()

beam_t * ActorSpawner::FindBeamInRig ( NodeNum_t  node_a,
NodeNum_t  node_b 
)
private

Definition at line 3281 of file ActorSpawner.cpp.

◆ FindFlareBindingForMaterial()

RigDef::MaterialFlareBinding * ActorSpawner::FindFlareBindingForMaterial ( std::string const &  material_name)
private

Returns NULL if none found.

Definition at line 6641 of file ActorSpawner.cpp.

◆ FindOrCreateCustomizedMaterial()

Ogre::MaterialPtr ActorSpawner::FindOrCreateCustomizedMaterial ( const std::string &  mat_lookup_name,
const std::string &  mat_lookup_rg 
)
private

Definition at line 6672 of file ActorSpawner.cpp.

◆ FindVideoCameraByMaterial()

RigDef::VideoCamera * ActorSpawner::FindVideoCameraByMaterial ( std::string const &  material_name)
private

Returns NULL if none found.

Definition at line 6656 of file ActorSpawner.cpp.

◆ GetActor()

ActorPtr RoR::ActorSpawner::GetActor ( )
inline

Definition at line 108 of file ActorSpawner.h.

◆ GetAndInitFreeBeam()

beam_t & ActorSpawner::GetAndInitFreeBeam ( node_t &  node_1,
node_t &  node_2 
)
private

Definition at line 6431 of file ActorSpawner.cpp.

◆ GetAndInitFreeNode()

node_t & ActorSpawner::GetAndInitFreeNode ( Ogre::Vector3 const &  position)
private

Definition at line 6439 of file ActorSpawner.cpp.

◆ GetBeam()

beam_t & ActorSpawner::GetBeam ( unsigned int  index)
private

Definition at line 6404 of file ActorSpawner.cpp.

◆ GetCurrentElementMediaRG()

std::string ActorSpawner::GetCurrentElementMediaRG ( )
private

Where to load media from (the addonpart's bundle or vehicle's bundle?)

Definition at line 7546 of file ActorSpawner.cpp.

◆ GetFreeBeam()

beam_t & ActorSpawner::GetFreeBeam ( )
private

Definition at line 6417 of file ActorSpawner.cpp.

◆ GetFreeNode()

node_t & ActorSpawner::GetFreeNode ( )
private

Definition at line 6409 of file ActorSpawner.cpp.

◆ GetFreeShock()

shock_t & ActorSpawner::GetFreeShock ( )
private

Definition at line 6424 of file ActorSpawner.cpp.

◆ GetMemoryRequirements()

ActorMemoryRequirements const & RoR::ActorSpawner::GetMemoryRequirements ( )
inline

Definition at line 109 of file ActorSpawner.h.

◆ GetNodeIndexOrThrow()

NodeNum_t ActorSpawner::GetNodeIndexOrThrow ( RigDef::Node::Ref const &  id)
private

Definition at line 5644 of file ActorSpawner.cpp.

◆ GetNodePointer()

node_t * ActorSpawner::GetNodePointer ( RigDef::Node::Ref const &  node_ref)
private

Definition at line 5988 of file ActorSpawner.cpp.

◆ GetNodePointerOrThrow()

node_t * ActorSpawner::GetNodePointerOrThrow ( RigDef::Node::Ref const &  node_ref)
private

Definition at line 6001 of file ActorSpawner.cpp.

◆ GetSubmeshGroundmodelName()

std::string ActorSpawner::GetSubmeshGroundmodelName ( )

Definition at line 1369 of file ActorSpawner.cpp.

◆ GetWheelAxisNodes()

void ActorSpawner::GetWheelAxisNodes ( RigDef::BaseWheel &  def,
node_t *&  out_node_1,
node_t *&  out_node_2 
)
private

Definition at line 4623 of file ActorSpawner.cpp.

◆ HandleException()

void ActorSpawner::HandleException ( )
private

Definition at line 7363 of file ActorSpawner.cpp.

◆ InitBeam()

void ActorSpawner::InitBeam ( beam_t &  beam,
node_t *  node_1,
node_t *  node_2 
)
private

Definition at line 5906 of file ActorSpawner.cpp.

◆ InitializeRig()

void ActorSpawner::InitializeRig ( )
private

Definition at line 261 of file ActorSpawner.cpp.

◆ InitNode() [1/3]

void ActorSpawner::InitNode ( node_t &  node,
Ogre::Vector3 const &  position 
)
private

Definition at line 6255 of file ActorSpawner.cpp.

◆ InitNode() [2/3]

void ActorSpawner::InitNode ( node_t &  node,
Ogre::Vector3 const &  position,
std::shared_ptr< RigDef::NodeDefaults >  node_defaults 
)
private

Definition at line 6262 of file ActorSpawner.cpp.

◆ InitNode() [3/3]

void ActorSpawner::InitNode ( unsigned int  node_index,
Ogre::Vector3 const &  position 
)
private

Definition at line 6399 of file ActorSpawner.cpp.

◆ InstantiateManagedMaterial()

Ogre::MaterialPtr ActorSpawner::InstantiateManagedMaterial ( Ogre::String const &  rg_name,
Ogre::String const &  source_name,
Ogre::String const &  clone_name 
)
private

Definition at line 2490 of file ActorSpawner.cpp.

◆ PrepareRenderdashMaterial()

void ActorSpawner::PrepareRenderdashMaterial ( )
private

Definition at line 7609 of file ActorSpawner.cpp.

◆ ProcessAirbrake()

void ActorSpawner::ProcessAirbrake ( RigDef::Airbrake &  def)
private

Definition at line 910 of file ActorSpawner.cpp.

◆ ProcessAnimator()

void ActorSpawner::ProcessAnimator ( RigDef::Animator &  def)
private

Definition at line 3837 of file ActorSpawner.cpp.

◆ ProcessAntiLockBrakes()

void ActorSpawner::ProcessAntiLockBrakes ( RigDef::AntiLockBrakes &  def)
private

Definition at line 5521 of file ActorSpawner.cpp.

◆ ProcessAuthor()

void ActorSpawner::ProcessAuthor ( RigDef::Author &  def)
private

Definition at line 5631 of file ActorSpawner.cpp.

◆ ProcessAxle()

void ActorSpawner::ProcessAxle ( RigDef::Axle &  def)
private

Definition at line 2782 of file ActorSpawner.cpp.

◆ ProcessBeam()

void ActorSpawner::ProcessBeam ( RigDef::Beam &  def)
private

Definition at line 5676 of file ActorSpawner.cpp.

◆ ProcessBrakes()

void ActorSpawner::ProcessBrakes ( RigDef::Brakes &  def)
private

Definition at line 5553 of file ActorSpawner.cpp.

◆ ProcessCamera()

void ActorSpawner::ProcessCamera ( RigDef::Camera &  def)
private

Definition at line 5656 of file ActorSpawner.cpp.

◆ ProcessCameraRail()

void ActorSpawner::ProcessCameraRail ( RigDef::CameraRail &  def)
private

Definition at line 1251 of file ActorSpawner.cpp.

◆ ProcessCinecam()

void ActorSpawner::ProcessCinecam ( RigDef::Cinecam &  def)
private

Definition at line 6223 of file ActorSpawner.cpp.

◆ ProcessCollisionBox()

void ActorSpawner::ProcessCollisionBox ( RigDef::CollisionBox &  def)
private

Definition at line 2733 of file ActorSpawner.cpp.

◆ ProcessCollisionRange()

void ActorSpawner::ProcessCollisionRange ( RigDef::CollisionRange &  def)
private

Definition at line 2758 of file ActorSpawner.cpp.

◆ ProcessCommand()

void ActorSpawner::ProcessCommand ( RigDef::Command2 &  def)
private

Definition at line 3729 of file ActorSpawner.cpp.

◆ ProcessContacter()

void ActorSpawner::ProcessContacter ( RigDef::Node::Ref &  node_ref)
private

Definition at line 3563 of file ActorSpawner.cpp.

◆ ProcessCruiseControl()

void ActorSpawner::ProcessCruiseControl ( RigDef::CruiseControl &  def)
private

Definition at line 2943 of file ActorSpawner.cpp.

◆ ProcessCustomDashInputs()

void ActorSpawner::ProcessCustomDashInputs ( RigDef::CustomDashboardInput &  def)
private

Definition at line 1275 of file ActorSpawner.cpp.

◆ ProcessDescription()

void ActorSpawner::ProcessDescription ( Ogre::String const &  line)
private

Definition at line 884 of file ActorSpawner.cpp.

◆ ProcessEngine()

void ActorSpawner::ProcessEngine ( RigDef::Engine &  def)
private

Definition at line 5605 of file ActorSpawner.cpp.

◆ ProcessEngoption()

void ActorSpawner::ProcessEngoption ( RigDef::Engoption &  def)
private

Definition at line 5575 of file ActorSpawner.cpp.

◆ ProcessEngturbo()

void ActorSpawner::ProcessEngturbo ( RigDef::Engturbo &  def)
private

Definition at line 5563 of file ActorSpawner.cpp.

◆ ProcessExhaust()

void ActorSpawner::ProcessExhaust ( RigDef::Exhaust &  def)
private

Definition at line 1327 of file ActorSpawner.cpp.

◆ ProcessExtCamera()

void ActorSpawner::ProcessExtCamera ( RigDef::ExtCamera &  def)
private

Definition at line 1266 of file ActorSpawner.cpp.

◆ ProcessFixedNode()

void ActorSpawner::ProcessFixedNode ( RigDef::Node::Ref  node_ref)
private

Definition at line 1321 of file ActorSpawner.cpp.

◆ ProcessFlare2()

void ActorSpawner::ProcessFlare2 ( RigDef::Flare2 &  def)
private

Definition at line 2196 of file ActorSpawner.cpp.

◆ ProcessFlare3()

void ActorSpawner::ProcessFlare3 ( RigDef::Flare3 &  def)
private

Definition at line 2207 of file ActorSpawner.cpp.

◆ ProcessFlaregroupNoImport()

void ActorSpawner::ProcessFlaregroupNoImport ( RigDef::FlaregroupNoImport &  def)
private

Definition at line 2455 of file ActorSpawner.cpp.

◆ ProcessFlexbody()

void ActorSpawner::ProcessFlexbody ( RigDef::Flexbody &  def)
private

Definition at line 1565 of file ActorSpawner.cpp.

◆ ProcessFlexBodyWheel()

void ActorSpawner::ProcessFlexBodyWheel ( RigDef::FlexBodyWheel &  def)
private

Definition at line 4348 of file ActorSpawner.cpp.

◆ ProcessFusedrag()

void ActorSpawner::ProcessFusedrag ( RigDef::Fusedrag &  def)
private

Definition at line 770 of file ActorSpawner.cpp.

◆ ProcessGlobals()

void ActorSpawner::ProcessGlobals ( RigDef::Globals &  def)
private

Definition at line 6274 of file ActorSpawner.cpp.

◆ ProcessGuiSettings()

void ActorSpawner::ProcessGuiSettings ( RigDef::GuiSettings &  def)
private

Definition at line 1280 of file ActorSpawner.cpp.

◆ ProcessHelp()

void ActorSpawner::ProcessHelp ( RigDef::Help &  def)
private

Definition at line 5626 of file ActorSpawner.cpp.

◆ ProcessHook()

void ActorSpawner::ProcessHook ( RigDef::Hook &  def)
private

Definition at line 3299 of file ActorSpawner.cpp.

◆ ProcessHydro()

void ActorSpawner::ProcessHydro ( RigDef::Hydro &  def)
private

Definition at line 4029 of file ActorSpawner.cpp.

◆ ProcessInterAxle()

void ActorSpawner::ProcessInterAxle ( RigDef::InterAxle &  def)
private

Definition at line 2848 of file ActorSpawner.cpp.

◆ ProcessLockgroup()

void ActorSpawner::ProcessLockgroup ( RigDef::Lockgroup &  lockgroup)
private

Definition at line 3369 of file ActorSpawner.cpp.

◆ ProcessManagedMaterial()

void ActorSpawner::ProcessManagedMaterial ( RigDef::ManagedMaterial &  def)
private

Definition at line 2504 of file ActorSpawner.cpp.

◆ ProcessMeshWheel()

void ActorSpawner::ProcessMeshWheel ( RigDef::MeshWheel &  def)
private

Definition at line 4646 of file ActorSpawner.cpp.

◆ ProcessMeshWheel2()

void ActorSpawner::ProcessMeshWheel2 ( RigDef::MeshWheel2 &  def)
private

Definition at line 4712 of file ActorSpawner.cpp.

◆ ProcessMinimass()

void ActorSpawner::ProcessMinimass ( RigDef::Minimass &  def)
private

Definition at line 1658 of file ActorSpawner.cpp.

◆ ProcessNewActor()

void ActorSpawner::ProcessNewActor ( ActorPtr  actor,
ActorSpawnRequest  rq,
RigDef::DocumentPtr  def 
)

Definition at line 59 of file ActorSpawnerFlow.cpp.

◆ ProcessNode()

void ActorSpawner::ProcessNode ( RigDef::Node &  def)
private

Definition at line 6057 of file ActorSpawner.cpp.

◆ ProcessParticle()

void ActorSpawner::ProcessParticle ( RigDef::Particle &  def)
private

Definition at line 2986 of file ActorSpawner.cpp.

◆ ProcessPistonprop()

void ActorSpawner::ProcessPistonprop ( RigDef::Pistonprop &  def)
private

Definition at line 889 of file ActorSpawner.cpp.

◆ ProcessProp()

void ActorSpawner::ProcessProp ( RigDef::Prop &  def)
private

Resource group override is used with addonparts.

Definition at line 1664 of file ActorSpawner.cpp.

◆ ProcessRailGroup()

void ActorSpawner::ProcessRailGroup ( RigDef::RailGroup &  def)
private

Definition at line 3097 of file ActorSpawner.cpp.

◆ ProcessRopable()

void ActorSpawner::ProcessRopable ( RigDef::Ropable &  def)
private

Definition at line 3016 of file ActorSpawner.cpp.

◆ ProcessRope()

void ActorSpawner::ProcessRope ( RigDef::Rope &  def)
private

Definition at line 3070 of file ActorSpawner.cpp.

◆ ProcessRotator()

void ActorSpawner::ProcessRotator ( RigDef::Rotator &  def)
private

Definition at line 3569 of file ActorSpawner.cpp.

◆ ProcessRotator2()

void ActorSpawner::ProcessRotator2 ( RigDef::Rotator2 &  def)
private

Definition at line 3605 of file ActorSpawner.cpp.

◆ ProcessScrewprop()

void ActorSpawner::ProcessScrewprop ( RigDef::Screwprop &  def)
private

Definition at line 735 of file ActorSpawner.cpp.

◆ ProcessScript()

void ActorSpawner::ProcessScript ( RigDef::Script &  def)
private

Definition at line 753 of file ActorSpawner.cpp.

◆ ProcessShock()

void ActorSpawner::ProcessShock ( RigDef::Shock &  def)
private

Definition at line 4286 of file ActorSpawner.cpp.

◆ ProcessShock2()

void ActorSpawner::ProcessShock2 ( RigDef::Shock2 &  def)
private

Definition at line 4199 of file ActorSpawner.cpp.

◆ ProcessShock3()

void ActorSpawner::ProcessShock3 ( RigDef::Shock3 &  def)
private

Definition at line 4115 of file ActorSpawner.cpp.

◆ ProcessSlidenode()

void ActorSpawner::ProcessSlidenode ( RigDef::SlideNode &  def)
private

Definition at line 3104 of file ActorSpawner.cpp.

◆ ProcessSoundSource()

void ActorSpawner::ProcessSoundSource ( RigDef::SoundSource &  def)
private

Definition at line 1239 of file ActorSpawner.cpp.

◆ ProcessSoundSource2()

void ActorSpawner::ProcessSoundSource2 ( RigDef::SoundSource2 &  def)
private

Definition at line 1197 of file ActorSpawner.cpp.

◆ ProcessSpeedLimiter()

void ActorSpawner::ProcessSpeedLimiter ( RigDef::SpeedLimiter &  def)
private

Definition at line 2955 of file ActorSpawner.cpp.

◆ ProcessSubmesh()

void ActorSpawner::ProcessSubmesh ( RigDef::Submesh &  def)
private

Definition at line 1383 of file ActorSpawner.cpp.

◆ ProcessTie()

void ActorSpawner::ProcessTie ( RigDef::Tie &  def)
private

Definition at line 3028 of file ActorSpawner.cpp.

◆ ProcessTorqueCurve()

void ActorSpawner::ProcessTorqueCurve ( RigDef::TorqueCurve &  def)
private

Definition at line 2961 of file ActorSpawner.cpp.

◆ ProcessTractionControl()

void ActorSpawner::ProcessTractionControl ( RigDef::TractionControl &  def)
private

Definition at line 5488 of file ActorSpawner.cpp.

◆ ProcessTransferCase()

void ActorSpawner::ProcessTransferCase ( RigDef::TransferCase &  def)
private

Definition at line 2905 of file ActorSpawner.cpp.

◆ ProcessTrigger()

void ActorSpawner::ProcessTrigger ( RigDef::Trigger &  def)
private

Definition at line 3380 of file ActorSpawner.cpp.

◆ ProcessTurbojet()

void ActorSpawner::ProcessTurbojet ( RigDef::Turbojet &  def)
private

Definition at line 678 of file ActorSpawner.cpp.

◆ ProcessTurboprop2()

void ActorSpawner::ProcessTurboprop2 ( RigDef::Turboprop2 &  def)
private

Definition at line 863 of file ActorSpawner.cpp.

◆ ProcessWheel()

void ActorSpawner::ProcessWheel ( RigDef::Wheel &  def)
private

Definition at line 4994 of file ActorSpawner.cpp.

◆ ProcessWheel2()

void ActorSpawner::ProcessWheel2 ( RigDef::Wheel2 &  def)
private

Definition at line 5065 of file ActorSpawner.cpp.

◆ ProcessWheelDetacher()

void ActorSpawner::ProcessWheelDetacher ( RigDef::WheelDetacher &  def)
private

Definition at line 5474 of file ActorSpawner.cpp.

◆ ProcessWing()

void ActorSpawner::ProcessWing ( RigDef::Wing &  def)
private

Definition at line 955 of file ActorSpawner.cpp.

◆ RegisterNode()

NodeNum_t ActorSpawner::RegisterNode ( RigDef::Node::Id &  id)
private
Returns
Valid node number if resolved, or NODENUM_INVALID if not.

Definition at line 6013 of file ActorSpawner.cpp.

◆ ResolveNodeRef()

NodeNum_t ActorSpawner::ResolveNodeRef ( RigDef::Node::Ref const &  node_ref,
bool  optional = false 
)
private

Definition at line 5946 of file ActorSpawner.cpp.

◆ SetBeamDamping()

void ActorSpawner::SetBeamDamping ( beam_t &  beam,
float  damping 
)
private

Definition at line 6451 of file ActorSpawner.cpp.

◆ SetBeamDeformationThreshold()

void ActorSpawner::SetBeamDeformationThreshold ( beam_t &  beam,
std::shared_ptr< RigDef::BeamDefaults >  beam_defaults 
)
private

Definition at line 5725 of file ActorSpawner.cpp.

◆ SetBeamSpring()

void ActorSpawner::SetBeamSpring ( beam_t &  beam,
float  spring 
)
private

Definition at line 6446 of file ActorSpawner.cpp.

◆ SetBeamStrength()

void ActorSpawner::SetBeamStrength ( beam_t &  beam,
float  strength 
)
private

Definition at line 4024 of file ActorSpawner.cpp.

◆ SetCurrentKeyword()

void RoR::ActorSpawner::SetCurrentKeyword ( RigDef::Keyword  keyword)
inlineprivate

Definition at line 446 of file ActorSpawner.h.

◆ SetupDefaultSoundSources()

void ActorSpawner::SetupDefaultSoundSources ( ActorPtr const &  actor)
static

Definition at line 6456 of file ActorSpawner.cpp.

◆ SetupNewEntity()

void ActorSpawner::SetupNewEntity ( Ogre::Entity *  e,
Ogre::ColourValue  simple_color 
)
private

Full texture and material setup.

Definition at line 6889 of file ActorSpawner.cpp.

◆ UpdateCollcabContacterNodes()

void ActorSpawner::UpdateCollcabContacterNodes ( )
private

Definition at line 6616 of file ActorSpawner.cpp.

◆ ValidateRotator()

void ActorSpawner::ValidateRotator ( int  id,
int  axis1,
int  axis2,
NodeNum_t *  nodes1,
NodeNum_t *  nodes2 
)
private

Definition at line 7053 of file ActorSpawner.cpp.

◆ WashCalculator()

void ActorSpawner::WashCalculator ( )
private

Definition at line 637 of file ActorSpawner.cpp.

Friends And Related Symbol Documentation

◆ RoR::FlexFactory

friend class RoR::FlexFactory
friend

Definition at line 73 of file ActorSpawner.h.

◆ RoR::GfxActor

friend class RoR::GfxActor
friend

Definition at line 74 of file ActorSpawner.h.

Field Documentation

◆ m_actor

ActorPtr RoR::ActorSpawner::m_actor
private

Definition at line 458 of file ActorSpawner.h.

◆ m_actor_grouping_scenenode

Ogre::SceneNode* RoR::ActorSpawner::m_actor_grouping_scenenode = nullptr
private

Topmost common parent; this isn't used for moving things, just helps developers inspect the scene graph.

Definition at line 501 of file ActorSpawner.h.

◆ m_airplane_left_light

int RoR::ActorSpawner::m_airplane_left_light
private

Definition at line 474 of file ActorSpawner.h.

◆ m_airplane_right_light

int RoR::ActorSpawner::m_airplane_right_light
private

Definition at line 475 of file ActorSpawner.h.

◆ m_apply_simple_materials

bool RoR::ActorSpawner::m_apply_simple_materials
private

Definition at line 463 of file ActorSpawner.h.

◆ m_cab_material_name

std::string RoR::ActorSpawner::m_cab_material_name
private

Original name defined in truckfile/globals.

Definition at line 472 of file ActorSpawner.h.

◆ m_cab_trans_material

Ogre::MaterialPtr RoR::ActorSpawner::m_cab_trans_material
private

Definition at line 494 of file ActorSpawner.h.

◆ m_curr_mirror_prop_scenenode

Ogre::SceneNode* RoR::ActorSpawner::m_curr_mirror_prop_scenenode
private

Definition at line 499 of file ActorSpawner.h.

◆ m_curr_mirror_prop_type

CustomMaterial::MirrorPropType RoR::ActorSpawner::m_curr_mirror_prop_type
private

Definition at line 498 of file ActorSpawner.h.

◆ m_current_keyword

RigDef::Keyword RoR::ActorSpawner::m_current_keyword = RigDef::Keyword::INVALID
private

For error reports.

Definition at line 483 of file ActorSpawner.h.

◆ m_current_module

std::shared_ptr<RigDef::Document::Module> RoR::ActorSpawner::m_current_module
private

For resolving addonparts.

Definition at line 484 of file ActorSpawner.h.

◆ m_custom_resource_group

std::string RoR::ActorSpawner::m_custom_resource_group
private

Definition at line 464 of file ActorSpawner.h.

◆ m_file

RigDef::DocumentPtr RoR::ActorSpawner::m_file
private

Definition at line 459 of file ActorSpawner.h.

◆ m_first_wing_index

int RoR::ActorSpawner::m_first_wing_index
private

Definition at line 480 of file ActorSpawner.h.

◆ m_flares_parent_scenenode

Ogre::SceneNode* RoR::ActorSpawner::m_flares_parent_scenenode = nullptr
private

this isn't used for moving/hiding things, just helps developers inspect the scene graph.

Definition at line 505 of file ActorSpawner.h.

◆ m_flex_factory

RoR::FlexFactory RoR::ActorSpawner::m_flex_factory
private

Definition at line 490 of file ActorSpawner.h.

◆ m_flexbodies_parent_scenenode

Ogre::SceneNode* RoR::ActorSpawner::m_flexbodies_parent_scenenode = nullptr
private

this isn't used for moving/hiding things, just helps developers inspect the scene graph.

Definition at line 504 of file ActorSpawner.h.

◆ m_fuse_y_max

float RoR::ActorSpawner::m_fuse_y_max
private

Definition at line 479 of file ActorSpawner.h.

◆ m_fuse_y_min

float RoR::ActorSpawner::m_fuse_y_min
private

Definition at line 478 of file ActorSpawner.h.

◆ m_fuse_z_max

float RoR::ActorSpawner::m_fuse_z_max
private

Definition at line 477 of file ActorSpawner.h.

◆ m_fuse_z_min

float RoR::ActorSpawner::m_fuse_z_min
private

Definition at line 476 of file ActorSpawner.h.

◆ m_generate_wing_position_lights

bool RoR::ActorSpawner::m_generate_wing_position_lights = true
private

Definition at line 465 of file ActorSpawner.h.

◆ m_managed_materials

std::map<std::string, Ogre::MaterialPtr> RoR::ActorSpawner::m_managed_materials
private

Definition at line 492 of file ActorSpawner.h.

◆ m_managedmat_placeholder_template

Ogre::MaterialPtr RoR::ActorSpawner::m_managedmat_placeholder_template
private

An 'error marker' material (bright magenta) to generate managedmaterial placeholders from.

Definition at line 493 of file ActorSpawner.h.

◆ m_material_substitutions

std::map<std::string, CustomMaterial> RoR::ActorSpawner::m_material_substitutions
private

Maps original material names (shared) to their actor-specific substitutes; There's 1 substitute per 1 material, regardless of user count.

Definition at line 491 of file ActorSpawner.h.

◆ m_memory_requirements

ActorMemoryRequirements RoR::ActorSpawner::m_memory_requirements
private

Definition at line 466 of file ActorSpawner.h.

◆ m_named_nodes

std::map<Ogre::String, unsigned int> RoR::ActorSpawner::m_named_nodes
private

Definition at line 485 of file ActorSpawner.h.

◆ m_oldstyle_cab_submeshes

std::vector<CabSubmesh> RoR::ActorSpawner::m_oldstyle_cab_submeshes
private

Definition at line 482 of file ActorSpawner.h.

◆ m_oldstyle_cab_texcoords

std::vector<CabTexcoord> RoR::ActorSpawner::m_oldstyle_cab_texcoords
private

Definition at line 481 of file ActorSpawner.h.

◆ m_particles_parent_scenenode

Ogre::SceneNode* RoR::ActorSpawner::m_particles_parent_scenenode = nullptr
private

this isn't used for moving/hiding things, just helps developers inspect the scene graph.

Definition at line 506 of file ActorSpawner.h.

◆ m_props_parent_scenenode

Ogre::SceneNode* RoR::ActorSpawner::m_props_parent_scenenode = nullptr
private

this isn't used for moving/hiding things, just helps developers inspect the scene graph.

Definition at line 503 of file ActorSpawner.h.

◆ m_renderdash_rtt_layer

RTTLayer* RoR::ActorSpawner::m_renderdash_rtt_layer {nullptr}
private

The built-in 'renderdash' material.

Definition at line 496 of file ActorSpawner.h.

◆ m_selected_modules

std::list<std::shared_ptr<RigDef::Document::Module> > RoR::ActorSpawner::m_selected_modules
private

Definition at line 461 of file ActorSpawner.h.

◆ m_simple_material_base

Ogre::MaterialPtr RoR::ActorSpawner::m_simple_material_base
private

Definition at line 495 of file ActorSpawner.h.

◆ m_spawn_position

Ogre::Vector3 RoR::ActorSpawner::m_spawn_position
private

Definition at line 462 of file ActorSpawner.h.

◆ m_state

ActorSpawnState RoR::ActorSpawner::m_state
private

Definition at line 471 of file ActorSpawner.h.

◆ m_texturedashboard_rtt_layers

std::vector<RTTLayer*> RoR::ActorSpawner::m_texturedashboard_rtt_layers
private

layouts specified in 'guisettings/texturedashboard'.

Definition at line 497 of file ActorSpawner.h.

◆ m_wheels_parent_scenenode

Ogre::SceneNode* RoR::ActorSpawner::m_wheels_parent_scenenode = nullptr
private

this isn't used for moving/hiding things, just helps developers inspect the scene graph.

Definition at line 502 of file ActorSpawner.h.

◆ m_wing_area

float RoR::ActorSpawner::m_wing_area
private

Definition at line 473 of file ActorSpawner.h.


The documentation for this class was generated from the following files: