RigsofRods
Soft-body Physics Simulation
|
Softbody object; can be anything from soda can to a space shuttle Constructed from a truck definition file, see https://docs.rigsofrods.org/vehicle-creation/fileformat-truck/ To spawn in-game, use MSG_SIM_SPAWN_ACTOR_REQUESTED
, see GameContext::PushMessage()
, in AngelScript use game.pushMessage();
Gameplay states are described by enum ActorState
.
More...
#include <Actor.h>
Data Structures | |
struct | NetUpdate |
struct | VehicleForceSensors |
Public Member Functions | |
Actor (ActorInstanceID_t actor_id, unsigned int vector_index, RigDef::DocumentPtr def, ActorSpawnRequest rq) | |
virtual | ~Actor () override |
void | dispose () |
Effectively destroys the object but keeps it in memory to satisfy shared pointers. More... | |
void | ForceFeedbackStep (int steps) |
void | HandleInputEvents (float dt) |
void | HandleAngelScriptEvents (float dt) |
void | UpdateCruiseControl (float dt) |
Defined in 'gameplay/CruiseControl.cpp'. More... | |
bool | Intersects (ActorPtr actor, Ogre::Vector3 offset=Ogre::Vector3::ZERO) |
Slow intersection test. More... | |
void | resolveCollisions (Ogre::Vector3 direction) |
Moves the actor at most 'direction.length()' meters towards 'direction' to resolve any collisions. More... | |
void | resolveCollisions (float max_distance, bool consider_up) |
Auto detects an ideal collision avoidance direction (front, back, left, right, up) Then moves the actor at most 'max_distance' meters towards that direction to resolve any collisions. More... | |
float | getSteeringAngle () |
float | getMinCameraRadius () |
int | GetNumActiveConnectedBeams (int nodeid) |
Returns the number of active (non bounded) beams connected to a node. More... | |
void | NotifyActorCameraChanged () |
Logic: sound, display; Notify this vehicle that camera changed;. More... | |
float | getAvgPropedWheelRadius () |
void | setAirbrakeIntensity (float intensity) |
void | UpdateBoundingBoxes () |
void | calculateAveragePosition () |
void | UpdatePhysicsOrigin () |
void | SoftReset () |
void | SyncReset (bool reset_position) |
this one should be called only synchronously (without physics running in background) More... | |
void | WriteDiagnosticDump (std::string const &filename) |
PerVehicleCameraContext * | GetCameraContext () |
Ogre::Vector3 | GetCameraDir () |
Ogre::Vector3 | GetCameraRoll () |
Ogre::Vector3 | GetFFbBodyForces () const |
GfxActor * | GetGfxActor () |
void | RequestUpdateHudFeatures () |
Ogre::Real | getMinimalCameraRadius () |
float | GetFFbHydroForces () const |
bool | isBeingReset () const |
void | UpdatePropAnimInputEvents () |
Physics state | |
ActorState | getTruckState () |
Ogre::Vector3 | getPosition () |
float | getRotation () |
Ogre::Quaternion | getOrientation () |
float | getSpeed () |
Ogre::Vector3 | getGForces () |
float | getTotalMass (bool withLocked=true) |
int | getNodeCount () |
Ogre::Vector3 | getNodePosition (int nodeNumber) |
Returns world position of node. More... | |
bool | isNodeWheelRim (int nodeNumber) |
Is node marked as wheel rim? Note some wheel models use only tire nodes. See https://docs.rigsofrods.org/vehicle-creation/fileformat-truck/#wheels. More... | |
bool | isNodeWheelTire (int nodeNumber) |
Is node marked as wheel tire? Note some wheel models use only tire nodes. See https://docs.rigsofrods.org/vehicle-creation/fileformat-truck/#wheels. More... | |
int | getWheelNodeCount () const |
float | getWheelSpeed () const |
void | reset (bool keep_position=false) |
call this one to reset a truck from any context More... | |
float | getShockSpringRate (int shock_number) |
float | getShockDamping (int shock_number) |
float | getShockVelocity (int shock_number) |
int | getShockNode1 (int shock_number) |
int | getShockNode2 (int shock_number) |
void | resetPosition (Ogre::Vector3 translation, bool setInitPosition) |
Moves the actor to given world coords. More... | |
void | resetPosition (float px, float pz, bool setInitPosition, float miny) |
Moves the actor to given world coords. More... | |
void | requestRotation (float rotation, Ogre::Vector3 center) |
void | requestAngleSnap (int division) |
void | requestTranslation (Ogre::Vector3 translation) |
int | getShockCount () |
Ogre::Vector3 | getVelocity () const |
Ogre::Vector3 | getDirection () |
average actor velocity, calculated using the actor positions of the last two frames More... | |
Ogre::Vector3 | getRotationCenter () |
float | getMinHeight (bool skip_virtual_nodes=true) |
float | getMaxHeight (bool skip_virtual_nodes=true) |
float | getHeightAboveGround (bool skip_virtual_nodes=true) |
float | getHeightAboveGroundBelow (float height, bool skip_virtual_nodes=true) |
Ogre::Vector3 | getMaxGForces () |
bool | hasSlidenodes () |
void | updateSlideNodePositions () |
incrementally update the position of all SlideNodes More... | |
void | updateSlideNodeForces (const Ogre::Real delta_time_sec) |
calculate and apply Corrective forces More... | |
void | resetSlideNodePositions () |
Recalculate SlideNode positions. More... | |
void | resetSlideNodes () |
Reset all the SlideNodes. More... | |
Physics editing | |
void | scaleTruck (float value) |
void | setMass (float m) |
void | applyNodeBeamScales () |
For GUI::NodeBeamUtils. More... | |
void | searchBeamDefaults () |
Searches for more stable beam defaults. More... | |
void | updateInitPosition () |
User interaction | |
void | parkingbrakeToggle () |
void | tractioncontrolToggle () |
void | antilockbrakeToggle () |
void | toggleCustomParticles () |
bool | getCustomParticleMode () |
void | mouseMove (NodeNum_t node, Ogre::Vector3 pos, float force) |
void | tieToggle (int group=-1, ActorLinkingRequestType mode=ActorLinkingRequestType::TIE_TOGGLE, ActorInstanceID_t forceunlock_filter=ACTORINSTANCEID_INVALID) |
bool | isTied () |
void | hookToggle (int group=-1, ActorLinkingRequestType mode=ActorLinkingRequestType::HOOK_TOGGLE, NodeNum_t mousenode=NODENUM_INVALID, ActorInstanceID_t forceunlock_filter=ACTORINSTANCEID_INVALID) |
bool | isLocked () |
Are hooks locked? More... | |
void | ropeToggle (int group=-1, ActorLinkingRequestType mode=ActorLinkingRequestType::ROPE_TOGGLE, ActorInstanceID_t forceunlock_filter=ACTORINSTANCEID_INVALID) |
void | engineTriggerHelper (int engineNumber, EngineTriggerType type, float triggerValue) |
void | toggleSlideNodeLock () |
bool | getParkingBrake () |
void | cruisecontrolToggle () |
Defined in 'gameplay/CruiseControl.cpp'. More... | |
void | toggleAxleDiffMode () |
void | displayAxleDiffMode () |
Cycles through the available inter axle diff modes. More... | |
int | getAxleDiffMode () |
Writes info to console/notify box. More... | |
void | toggleWheelDiffMode () |
void | displayWheelDiffMode () |
Cycles through the available inter wheel diff modes. More... | |
int | getWheelDiffMode () |
Writes info to console/notify box. More... | |
void | toggleTransferCaseMode () |
TransferCase * | getTransferCaseMode () |
Toggles between 2WD and 4WD mode. More... | |
void | toggleTransferCaseGearRatio () |
Ogre::String | getTransferCaseName () |
Toggles between Hi and Lo mode. More... | |
void | displayTransferCaseMode () |
Gets the current transfer case mode name (4WD Hi, ...) More... | |
void | setSmokeEnabled (bool enabled) |
Writes info to console/notify area. More... | |
bool | getSmokeEnabled () const |
Vehicle lights | |
BlinkType | getBlinkType () |
void | setBlinkType (BlinkType blink) |
void | toggleBlinkType (BlinkType blink) |
bool | getCustomLightVisible (int number) |
void | setCustomLightVisible (int number, bool visible) |
bool | getBeaconMode () const |
void | beaconsToggle () |
bool | getBrakeLightVisible () const |
bool | getReverseLightVisible () const |
int | countCustomLights (int control_number) |
int | countFlaresByType (FlareType type) |
void | toggleHeadlights () |
BitMask_t | getLightStateMask () const |
void | setLightStateMask (BitMask_t lightmask) |
Does all the necessary toggling. More... | |
bool | getSideLightsVisible () const |
void | setSideLightsVisible (bool val) |
bool | getHeadlightsVisible () const |
void | setHeadlightsVisible (bool val) |
bool | getHighBeamsVisible () const |
void | setHighBeamsVisible (bool val) |
bool | getFogLightsVisible () const |
void | setFogLightsVisible (bool val) |
void | setBeaconMode (bool val) |
Visual state updates | |
void | updateSkidmarks () |
Creates or updates skidmarks. More... | |
void | prepareInside (bool inside) |
Prepares vehicle for in-cabin camera use. More... | |
void | updateFlareStates (float dt) |
void | updateVisual (float dt=0) |
void | updateDashBoards (float dt) |
void | forceAllFlaresOff () |
Audio | |
void | updateSoundSources () |
void | muteAllSounds () |
void | unmuteAllSounds () |
Subsystems | |
VehicleAIPtr | getVehicleAI () |
Ogre::MaterialPtr | getManagedMaterialInstance (const std::string &orig_name) |
std::vector< std::string > | getManagedMaterialNames () |
Replay * | getReplay () |
TyrePressure & | getTyrePressure () |
Organizational | |
std::string | getTruckName () |
std::string | getTruckFileName () |
std::string | getTruckFileResourceGroup () |
int | getTruckType () |
Ogre::String | getSectionConfig () |
int | getInstanceId () |
CacheEntryPtr & | getUsedActorEntry () |
The actor entry itself. More... | |
CacheEntryPtr & | getUsedSkinEntry () |
TuneupDefPtr & | getWorkingTuneupDef () |
void | ensureWorkingTuneupDef () |
Creates a working tuneup def if it doesn't exist yet. More... | |
void | removeWorkingTuneupDef () |
Deletes the working tuneup def object if it exists. More... | |
bool | isPreloadedWithTerrain () const |
std::vector< authorinfo_t > | getAuthors () |
std::vector< std::string > | getDescription () |
Public Member Functions inherited from RefCountingObject< Actor > | |
RefCountingObject () | |
virtual | ~RefCountingObject () |
void | AddRef () |
void | Release () |
Data Fields | |
node_t * | ar_nodes = nullptr |
int * | ar_nodes_id = nullptr |
Number in truck file, -1 for nodes generated by wheels/cinecam. More... | |
std::string * | ar_nodes_name = nullptr |
Name in truck file, only if defined with 'nodes2'. More... | |
int | ar_nodes_name_top_length = 0 |
For nicely formatted diagnostic output. More... | |
int | ar_num_nodes = 0 |
std::vector< float > | ar_minimass |
minimum node mass in Kg More... | |
bool | ar_minimass_skip_loaded_nodes = false |
beam_t * | ar_beams = nullptr |
int | ar_num_beams = 0 |
std::vector< beam_t * > | ar_inter_beams |
Beams connecting 2 actors. More... | |
shock_t * | ar_shocks = nullptr |
Shock absorbers. More... | |
int | ar_num_shocks = 0 |
Number of shock absorbers. More... | |
bool | ar_has_active_shocks = false |
Are there active stabilizer shocks? More... | |
rotator_t * | ar_rotators = nullptr |
int | ar_num_rotators = 0 |
wing_t * | ar_wings = nullptr |
int | ar_num_wings = 0 |
std::vector< authorinfo_t > | authors |
std::vector< exhaust_t > | exhausts |
std::vector< rope_t > | ar_ropes |
std::vector< ropable_t > | ar_ropables |
std::vector< tie_t > | ar_ties |
std::vector< hook_t > | ar_hooks |
std::vector< flare_t > | ar_flares |
std::vector< Airbrake * > | ar_airbrakes |
CmdKeyArray | ar_command_key |
BEWARE: commandkeys are indexed 1-MAX_COMMANDS! More... | |
Ogre::AxisAlignedBox | ar_bounding_box |
standard bounding box (surrounds all nodes of an actor) More... | |
Ogre::AxisAlignedBox | ar_evboxes_bounding_box |
bounding box around nodes eligible for eventbox triggering More... | |
Ogre::AxisAlignedBox | ar_predicted_bounding_box |
float | ar_initial_total_mass = 0.f |
std::vector< float > | ar_initial_node_masses |
std::vector< Ogre::Vector3 > | ar_initial_node_positions |
std::vector< std::pair< float, float > > | ar_initial_beam_defaults |
std::vector< wheeldetacher_t > | ar_wheeldetachers |
std::vector< std::vector< int > > | ar_node_to_node_connections |
std::vector< std::vector< int > > | ar_node_to_beam_connections |
std::vector< Ogre::AxisAlignedBox > | ar_collision_bounding_boxes |
smart bounding boxes, used for determining the state of an actor (every box surrounds only a subset of nodes) More... | |
std::vector< Ogre::AxisAlignedBox > | ar_predicted_coll_bounding_boxes |
std::map< std::string, Ogre::MaterialPtr > | ar_managed_materials |
std::vector< UniqueCommandKeyPair > | ar_unique_commandkey_pairs |
UI helper for displaying command control keys to user (must be built at spawn). More... | |
int | ar_num_contactable_nodes = 0 |
Total number of nodes which can contact ground or cabs. More... | |
int | ar_num_contacters = 0 |
Total number of nodes which can selfcontact cabs. More... | |
wheel_t | ar_wheels [MAX_WHEELS] = {} |
int | ar_num_wheels = 0 |
cparticle_t | ar_custom_particles [MAX_CPARTICLES] = {} |
int | ar_num_custom_particles = 0 |
soundsource_t | ar_soundsources [MAX_SOUNDSCRIPTS_PER_TRUCK] = {} |
int | ar_num_soundsources = 0 |
AeroEngine * | ar_aeroengines [MAX_AEROENGINES] = {} |
int | ar_num_aeroengines = 0 |
Screwprop * | ar_screwprops [MAX_SCREWPROPS] = {} |
int | ar_num_screwprops = 0 |
int | ar_cabs [MAX_CABS *3] = {} |
int | ar_num_cabs = 0 |
std::vector< hydrobeam_t > | ar_hydros |
int | ar_collcabs [MAX_CABS] = {} |
collcab_rate_t | ar_inter_collcabrate [MAX_CABS] = {} |
collcab_rate_t | ar_intra_collcabrate [MAX_CABS] = {} |
int | ar_num_collcabs = 0 |
int | ar_buoycabs [MAX_CABS] = {} |
int | ar_buoycab_types [MAX_CABS] = {} |
int | ar_num_buoycabs = 0 |
NodeNum_t | ar_camera_rail [MAX_CAMERARAIL] = {} |
Nodes defining camera-movement spline. More... | |
int | ar_num_camera_rails = 0 |
bool | ar_hide_in_actor_list = false |
Hide in list of spawned actors (available in top menubar). Useful for fixed-place machinery, i.e. cranes. More... | |
Ogre::String | ar_design_name |
Name of the vehicle/machine/object this actor represents. More... | |
float | ar_anim_previous_crank = 0.f |
For 'animator' with flag 'torque'. More... | |
float | alb_ratio = 0.f |
Anti-lock brake attribute: Regulating force. More... | |
float | alb_minspeed = 0.f |
Anti-lock brake attribute;. More... | |
bool | alb_mode = false |
Anti-lock brake state; Enabled? {1/0}. More... | |
float | alb_pulse_time = 0.f |
Anti-lock brake attribute;. More... | |
bool | alb_pulse_state = false |
Anti-lock brake state;. More... | |
bool | alb_nodash = false |
Anti-lock brake attribute: Hide the dashboard indicator? More... | |
bool | alb_notoggle = false |
Anti-lock brake attribute: Disable in-game toggle? More... | |
float | alb_timer = 0.f |
Anti-lock brake state;. More... | |
float | tc_ratio = 0.f |
Traction control attribute: Regulating force. More... | |
bool | tc_mode = false |
Traction control state; Enabled? {1/0}. More... | |
float | tc_pulse_time = 0.f |
Traction control attribute;. More... | |
bool | tc_pulse_state = 0.f |
Traction control state;. More... | |
bool | tc_nodash = false |
Traction control attribute; Hide the dashboard indicator? More... | |
bool | tc_notoggle = false |
Traction control attribute; Disable in-game toggle? More... | |
float | tc_timer = 0.f |
Traction control state;. More... | |
float | ar_anim_shift_timer = 0.f |
For 'animator' with flag 'shifter'. More... | |
bool | cc_mode = false |
Cruise Control. More... | |
bool | cc_can_brake = false |
Cruise Control. More... | |
float | cc_target_rpm = 0.f |
Cruise Control. More... | |
float | cc_target_speed = 0.f |
Cruise Control. More... | |
float | cc_target_speed_lower_limit = 0.f |
Cruise Control. More... | |
std::deque< float > | cc_accs |
Cruise Control. More... | |
bool | sl_enabled = false |
Speed limiter;. More... | |
float | sl_speed_limit = 0.f |
Speed limiter;. More... | |
ExtCameraMode | ar_extern_camera_mode = ExtCameraMode::CLASSIC |
NodeNum_t | ar_extern_camera_node = NODENUM_INVALID |
NodeNum_t | ar_exhaust_pos_node = 0 |
Old-format exhaust (one per vehicle) emitter node. More... | |
NodeNum_t | ar_exhaust_dir_node = 0 |
Old-format exhaust (one per vehicle) backwards direction node. More... | |
ActorInstanceID_t | ar_instance_id = ACTORINSTANCEID_INVALID |
Static attr; session-unique ID. More... | |
unsigned int | ar_vector_index = 0 |
Sim attr; actor element index in std::vector<m_actors> More... | |
ActorType | ar_driveable = NOT_DRIVEABLE |
Sim attr; marks vehicle type and features. More... | |
EngineSim * | ar_engine = nullptr |
NodeNum_t | ar_cinecam_node [MAX_CAMERAS] = {NODENUM_INVALID} |
Sim attr; Cine-camera node indexes. More... | |
int | ar_num_cinecams = 0 |
Sim attr;. More... | |
Autopilot * | ar_autopilot = nullptr |
float | ar_brake_force = 0.f |
Physics attr; filled at spawn. More... | |
Ogre::Vector3 | ar_origin = Ogre::Vector3::ZERO |
Physics state; base position for softbody nodes. More... | |
int | ar_num_cameras = 0 |
Ogre::Quaternion | ar_main_camera_dir_corr = Ogre::Quaternion::IDENTITY |
Sim attr;. More... | |
NodeNum_t | ar_main_camera_node_pos = 0 |
Sim attr; ar_camera_node_pos[0] >= 0 ? ar_camera_node_pos[0] : 0. More... | |
NodeNum_t | ar_main_camera_node_dir = 0 |
Sim attr; ar_camera_node_dir[0] >= 0 ? ar_camera_node_dir[0] : 0. More... | |
NodeNum_t | ar_main_camera_node_roll = 0 |
Sim attr; ar_camera_node_roll[0] >= 0 ? ar_camera_node_roll[0] : 0. More... | |
NodeNum_t | ar_camera_node_pos [MAX_CAMERAS] = {NODENUM_INVALID} |
Physics attr; 'camera' = frame of reference; origin node. More... | |
NodeNum_t | ar_camera_node_dir [MAX_CAMERAS] = {NODENUM_INVALID} |
Physics attr; 'camera' = frame of reference; back node. More... | |
NodeNum_t | ar_camera_node_roll [MAX_CAMERAS] = {NODENUM_INVALID} |
Physics attr; 'camera' = frame of reference; left node. More... | |
bool | ar_camera_node_roll_inv [MAX_CAMERAS] = {false} |
Physics attr; 'camera' = frame of reference; indicates roll node is right instead of left. More... | |
float | ar_posnode_spawn_height = 0.f |
VehicleAIPtr | ar_vehicle_ai |
float | ar_scale = 1.f |
Physics state; scale of the actor (nominal = 1.0) More... | |
Ogre::Real | ar_brake = 0.f |
Physics state; braking intensity. More... | |
float | ar_wheel_speed = 0.f |
Physics state; wheel speed in m/s. More... | |
float | ar_wheel_spin = 0.f |
Physics state; wheel speed in radians/s. More... | |
float | ar_avg_wheel_speed = 0.f |
Physics state; avg wheel speed in m/s. More... | |
float | ar_hydro_dir_command = 0.f |
float | ar_hydro_dir_state = 0.f |
Ogre::Real | ar_hydro_dir_wheel_display = 0.f |
float | ar_hydro_aileron_command = 0.f |
float | ar_hydro_aileron_state = 0.f |
float | ar_hydro_rudder_command = 0.f |
float | ar_hydro_rudder_state = 0.f |
float | ar_hydro_elevator_command = 0.f |
float | ar_hydro_elevator_state = 0.f |
float | ar_sleep_counter = 0.f |
Sim state; idle time counter. More... | |
ground_model_t * | ar_submesh_ground_model = nullptr |
bool | ar_parking_brake = false |
bool | ar_trailer_parking_brake = false |
float | ar_left_mirror_angle = 0.52f |
Sim state; rear view mirror angle. More... | |
float | ar_right_mirror_angle = -0.52f |
Sim state; rear view mirror angle. More... | |
float | ar_elevator = 0.f |
Sim state; aerial controller. More... | |
float | ar_rudder = 0.f |
Sim state; aerial/marine controller. More... | |
float | ar_aileron = 0.f |
Sim state; aerial controller. More... | |
int | ar_aerial_flap = 0 |
Sim state; state of aircraft flaps (values: 0-5) More... | |
Ogre::Vector3 | ar_fusedrag = Ogre::Vector3::ZERO |
Physics state. More... | |
int | ar_current_cinecam = -1 |
Sim state; index of current CineCam (-1 if using 3rd-person camera) More... | |
NodeNum_t | ar_custom_camera_node = NODENUM_INVALID |
Sim state; custom tracking node for 3rd-person camera. More... | |
std::string | ar_filename |
Attribute; filled at spawn. More... | |
std::string | ar_filehash |
Attribute; filled at spawn. More... | |
int | ar_airbrake_intensity = 0 |
Physics state; values 0-5. More... | |
int | ar_net_source_id = 0 |
Unique ID of remote player who spawned this actor. More... | |
int | ar_net_stream_id = 0 |
std::map< int, int > | ar_net_stream_results |
Ogre::Timer | ar_net_timer |
unsigned long | ar_net_last_update_time = 0 |
DashBoardManager * | ar_dashboard = nullptr |
float | ar_collision_range = DEFAULT_COLLISION_RANGE |
Physics attr. More... | |
float | ar_top_speed = 0.f |
Sim state. More... | |
ground_model_t * | ar_last_fuzzy_ground_model = nullptr |
GUI state. More... | |
CollisionBoxPtrVec | m_potential_eventboxes |
std::vector< std::pair< collision_box_t *, NodeNum_t > > | m_active_eventboxes |
bool | ar_guisettings_use_engine_max_rpm = false |
float | ar_guisettings_speedo_max_kph = 0.f |
float | ar_guisettings_shifter_anim_time = 0.4f |
ActorState | ar_state = ActorState::LOCAL_SIMULATED |
ActorPtrVec | ar_linked_actors |
BEWARE: Includes indirect links, see DetermineLinkedActors() ; Other actors linked using 'hooks/ties/ropes/slidenodes'; use MSG_SIM_ACTOR_LINKING_REQUESTED More... | |
Ogre::Vector3 | m_rotation_request_center = Ogre::Vector3::ZERO |
float | m_rotation_request = 0.f |
Accumulator. More... | |
int | m_anglesnap_request = 0 |
Accumulator. More... | |
Ogre::Vector3 | m_translation_request = Ogre::Vector3::ZERO |
Accumulator. More... | |
bool | ar_nb_initialized = false |
std::vector< float > | ar_nb_optimum |
Temporary storage of the optimum search result. More... | |
std::vector< float > | ar_nb_reference |
Temporary storage of the reference search result. More... | |
int | ar_nb_skip_steps = 0 |
Amount of physics steps to be skipped before measuring. More... | |
int | ar_nb_measure_steps = 500 |
Amount of physics steps to be measured. More... | |
float | ar_nb_mass_scale = 1.f |
Global mass scale (affects all nodes the same way) More... | |
std::pair< float, float > | ar_nb_beams_scale |
Scales for springiness & damping of regular beams. More... | |
std::pair< float, float > | ar_nb_shocks_scale |
Scales for springiness & damping of shock beams. More... | |
std::pair< float, float > | ar_nb_wheels_scale |
Scales for springiness & damping of wheel / rim beams. More... | |
std::pair< float, float > | ar_nb_beams_d_interval |
Search interval for springiness & damping of regular beams. More... | |
std::pair< float, float > | ar_nb_beams_k_interval |
Search interval for springiness & damping of regular beams. More... | |
std::pair< float, float > | ar_nb_shocks_d_interval |
Search interval for springiness & damping of shock beams. More... | |
std::pair< float, float > | ar_nb_shocks_k_interval |
Search interval for springiness & damping of shock beams. More... | |
std::pair< float, float > | ar_nb_wheels_d_interval |
Search interval for springiness & damping of wheel / rim beams. More... | |
std::pair< float, float > | ar_nb_wheels_k_interval |
Search interval for springiness & damping of wheel / rim beams. More... | |
bool | ar_update_physics:1 |
Physics state; Should this actor be updated (locally) in the next physics step? More... | |
bool | ar_disable_aerodyn_turbulent_drag:1 |
Physics state. More... | |
bool | ar_engine_hydraulics_ready:1 |
Sim state; does engine have enough RPM to power hydraulics? More... | |
bool | ar_hydro_speed_coupling:1 |
bool | ar_collision_relevant:1 |
Physics state;. More... | |
bool | ar_is_police:1 |
Gfx/sfx attr. More... | |
bool | ar_rescuer_flag:1 |
Gameplay attr; defined in truckfile. TODO: Does anybody use this anymore? More... | |
bool | ar_forward_commands:1 |
Sim state. More... | |
bool | ar_import_commands:1 |
Sim state. More... | |
bool | ar_toggle_ropes:1 |
Sim state. More... | |
bool | ar_toggle_ties:1 |
Sim state. More... | |
bool | ar_physics_paused:1 |
Sim state. More... | |
Data Fields inherited from RefCountingObject< Actor > | |
int | m_refcount |
std::mutex | m_refcount_mtx |
Private Member Functions | |
bool | CalcForcesEulerPrepare (bool doUpdate) |
void | CalcAircraftForces (bool doUpdate) |
void | CalcForcesEulerCompute (bool doUpdate, int num_steps) |
void | CalcAnimators (hydrobeam_t const &hydrobeam, float &cstate, int &div) |
void | CalcBeams (bool trigger_hooks) |
void | CalcBeamsInterActor () |
void | CalcBuoyance (bool doUpdate) |
void | CalcCommands (bool doUpdate) |
void | CalcCabCollisions () |
void | CalcDifferentials () |
void | CalcForceFeedback (bool doUpdate) |
void | CalcFuseDrag () |
void | CalcHooks () |
void | CalcHydros () |
void | CalcMouse () |
void | CalcNodes () |
void | CalcEventBoxes () |
void | CalcReplay () |
void | CalcRopes () |
void | CalcShocks (bool doUpdate, int num_steps) |
void | CalcShocks2 (int i, Ogre::Real difftoBeamL, Ogre::Real &k, Ogre::Real &d, Ogre::Real v) |
void | CalcShocks3 (int i, Ogre::Real difftoBeamL, Ogre::Real &k, Ogre::Real &d, Ogre::Real v) |
void | CalcTriggers (int i, Ogre::Real difftoBeamL, bool update_hooks) |
void | CalcTies () |
void | CalcTruckEngine (bool doUpdate) |
void | CalcWheels (bool doUpdate, int num_steps) |
void | DetermineLinkedActors () |
void | RecalculateNodeMasses (Ogre::Real total) |
Previously 'calc_masses2()'. More... | |
void | calcNodeConnectivityGraph () |
void | AddInterActorBeam (beam_t *beam, ActorPtr other, ActorLinkingRequestType type) |
Do not call directly - use MSG_SIM_ACTOR_LINKING_REQUESTED More... | |
void | RemoveInterActorBeam (beam_t *beam, ActorLinkingRequestType type) |
Do not call directly - use MSG_SIM_ACTOR_LINKING_REQUESTED More... | |
void | DisjoinInterActorBeams () |
Helper for MSG_ handlers, do not invoke by hand. More... | |
void | autoBlinkReset () |
Resets the turn signal when the steering wheel is turned back. More... | |
void | ResetAngle (float rot) |
void | calculateLocalGForces () |
Derive the truck local g-forces from the global ones. More... | |
Ogre::Vector3 | calculateCollisionOffset (Ogre::Vector3 direction) |
Virtually moves the actor at most 'direction.length()' meters towards 'direction' trying to resolve any collisions Returns a minimal offset by which the actor needs to be moved to resolve any collisions. More... | |
std::pair< RailGroup *, Ogre::Real > | GetClosestRailOnActor (ActorPtr actor, const SlideNode &node) |
Private Attributes | |
std::vector< std::shared_ptr< Task > > | m_flexbody_tasks |
Gfx state. More... | |
RigDef::DocumentPtr | m_definition |
std::unique_ptr< GfxActor > | m_gfx_actor |
PerVehicleCameraContext | m_camera_context |
Ogre::String | m_section_config |
std::vector< SlideNode > | m_slidenodes |
all the SlideNodes available on this actor More... | |
std::vector< RailGroup * > | m_railgroups |
all the available RailGroups for this actor More... | |
std::vector< Ogre::Entity * > | m_deletion_entities |
For unloading vehicle; filled at spawn. More... | |
std::vector< Ogre::SceneNode * > | m_deletion_scene_nodes |
For unloading vehicle; filled at spawn. More... | |
int | m_proped_wheel_pairs [MAX_WHEELS] = {} |
Physics attr; For inter-differential locking. More... | |
int | m_num_proped_wheels = 0 |
Physics attr, filled at spawn - Number of propelled wheels. More... | |
float | m_avg_proped_wheel_radius = 0.f |
Physics attr, filled at spawn - Average proped wheel radius. More... | |
float | m_avionic_chatter_timer = 11.f |
Sound fx state (some pseudo random number, doesn't matter) More... | |
PointColDetector * | m_inter_point_col_detector = nullptr |
Physics. More... | |
PointColDetector * | m_intra_point_col_detector = nullptr |
Physics. More... | |
Ogre::Vector3 | m_avg_node_position = Ogre::Vector3::ZERO |
average node position More... | |
Ogre::Real | m_min_camera_radius = 0.f |
Ogre::Vector3 | m_avg_node_position_prev = Ogre::Vector3::ZERO |
Ogre::Vector3 | m_avg_node_velocity = Ogre::Vector3::ZERO |
average node velocity (compared to the previous frame step) More... | |
float | m_stabilizer_shock_sleep = 0.f |
Sim state. More... | |
Replay * | m_replay_handler = nullptr |
float | m_total_mass = 0.f |
Physics state; total mass in Kg. More... | |
NodeNum_t | m_mouse_grab_node = NODENUM_INVALID |
Sim state; node currently being dragged by user. More... | |
Ogre::Vector3 | m_mouse_grab_pos = Ogre::Vector3::ZERO |
float | m_mouse_grab_move_force = 0.f |
float | m_spawn_rotation = 0.f |
Ogre::Timer | m_reset_timer |
Ogre::Vector3 | m_camera_gforces_accu = Ogre::Vector3::ZERO |
Accumulator for 'camera' G-forces. More... | |
Ogre::Vector3 | m_camera_gforces = Ogre::Vector3::ZERO |
Physics state (global) More... | |
Ogre::Vector3 | m_camera_local_gforces_cur = Ogre::Vector3::ZERO |
Physics state (camera local) More... | |
Ogre::Vector3 | m_camera_local_gforces_max = Ogre::Vector3::ZERO |
Physics state (camera local) More... | |
float | m_stabilizer_shock_ratio = 0.f |
Physics state. More... | |
int | m_stabilizer_shock_request = 0 |
Physics state; values: { -1, 0, 1 }. More... | |
Differential * | m_axle_diffs [1+MAX_WHEELS/2] = {} |
Physics. More... | |
int | m_num_axle_diffs = 0 |
Physics attr. More... | |
Differential * | m_wheel_diffs [MAX_WHEELS/2] = {} |
Physics. More... | |
int | m_num_wheel_diffs = 0 |
Physics attr. More... | |
TransferCase * | m_transfer_case = nullptr |
Physics. More... | |
int | m_wheel_node_count = 0 |
Static attr; filled at spawn. More... | |
int | m_previous_gear = 0 |
Sim state; land vehicle shifting. More... | |
float | m_handbrake_force = 0.f |
Physics attr; defined in truckfile. More... | |
Airfoil * | m_fusealge_airfoil = nullptr |
Physics attr; defined in truckfile. More... | |
node_t * | m_fusealge_front = nullptr |
Physics attr; defined in truckfile. More... | |
node_t * | m_fusealge_back = nullptr |
Physics attr; defined in truckfile. More... | |
float | m_fusealge_width = 0.f |
Physics attr; defined in truckfile. More... | |
float | m_odometer_total = 0.f |
GUI state. More... | |
float | m_odometer_user = 0.f |
GUI state. More... | |
int | m_num_command_beams = 0 |
TODO: Remove! Spawner context only; likely unused feature. More... | |
float | m_load_mass = 0.f |
Physics attr; predefined load mass in Kg. More... | |
int | m_masscount = 0 |
Physics attr; Number of nodes loaded with l option. More... | |
float | m_dry_mass = 0.f |
Physics attr;. More... | |
std::unique_ptr< Buoyance > | m_buoyance |
Physics. More... | |
CacheEntryPtr | m_used_actor_entry |
CacheEntryPtr | m_used_skin_entry |
Graphics. More... | |
TuneupDefPtr | m_working_tuneup_def |
Each actor gets unique instance, even if loaded from .tuneup file in modcache. More... | |
Skidmark * | m_skid_trails [MAX_WHEELS *2] = {} |
bool | m_antilockbrake = false |
GUI state. More... | |
bool | m_tractioncontrol = false |
GUI state. More... | |
bool | m_ongoing_reset = false |
Hack to prevent position/rotation creep during interactive truck reset. More... | |
bool | m_has_axles_section = false |
Temporary (legacy parsing helper) until central diffs are implemented. More... | |
TyrePressure | m_tyre_pressure |
std::vector< std::string > | m_description |
std::vector< PropAnimKeyState > | m_prop_anim_key_states |
bool | m_hud_features_ok:1 |
Gfx state; Are HUD features matching actor's capabilities? More... | |
bool | m_slidenodes_locked:1 |
Physics state; Are SlideNodes locked? More... | |
bool | m_net_initialized:1 |
bool | m_water_contact:1 |
Scripting state. More... | |
bool | m_water_contact_old:1 |
Scripting state. More... | |
bool | m_has_command_beams:1 |
Physics attr;. More... | |
bool | m_custom_particles_enabled:1 |
Gfx state. More... | |
bool | m_preloaded_with_terrain:1 |
Spawn context (TODO: remove!) More... | |
bool | m_beam_break_debug_enabled:1 |
Logging state. More... | |
bool | m_beam_deform_debug_enabled:1 |
Logging state. More... | |
bool | m_trigger_debug_enabled:1 |
Logging state. More... | |
bool | m_disable_default_sounds:1 |
Spawner context; TODO: remove. More... | |
bool | m_disable_smoke:1 |
Stops/starts smoke particles (i.e. exhausts, turbojets). More... | |
struct RoR::Actor::VehicleForceSensors | m_force_sensors |
Data for ForceFeedback devices. More... | |
std::deque< NetUpdate > | m_net_updates |
Incoming stream of NetUpdates. More... | |
Light states | |
GfxFlaresMode | m_flares_mode = GfxFlaresMode::NONE |
Snapshot of cvar 'gfx_flares_mode' on spawn. More... | |
BitMask_t | m_lightmask = 0 |
RoRnet::Lightmask. More... | |
bool | m_blinker_autoreset = false |
When true, we're steering and blinker will turn off automatically. More... | |
bool | m_blinker_left_lit = false |
Blinking state of left turn signal. More... | |
bool | m_blinker_right_lit = false |
Blinking state of right turn signal. More... | |
Friends | |
class | ActorSpawner |
class | ActorManager |
class | GfxActor |
class | OutGauge |
Networking | |
size_t | m_net_node_buf_size = 0 |
For incoming/outgoing traffic; calculated on spawn. More... | |
size_t | m_net_wheel_buf_size = 0 |
For incoming/outgoing traffic; calculated on spawn. More... | |
size_t | m_net_propanimkey_buf_size = 0 |
For incoming/outgoing traffic; calculated on spawn. More... | |
size_t | m_net_total_buffer_size = 0 |
For incoming/outgoing traffic; calculated on spawn. More... | |
float | m_net_node_compression = 0.f |
For incoming/outgoing traffic; calculated on spawn. More... | |
int | m_net_first_wheel_node = 0 |
Network attr; Determines data buffer layout; calculated on spawn. More... | |
Ogre::UTFString | m_net_username |
int | m_net_color_num = 0 |
void | sendStreamSetup () |
void | sendStreamData () |
Send outgoing data. More... | |
void | pushNetwork (char *data, int size) |
Process incoming data; fills actor's data buffers and flips them. Called by the network thread.//! More... | |
void | calcNetwork () |
Additional Inherited Members | |
Static Public Member Functions inherited from RefCountingObject< Actor > | |
static void | RegisterRefCountingObject (AS_NAMESPACE_QUALIFIER asIScriptEngine *engine, const char *name) |
Softbody object; can be anything from soda can to a space shuttle Constructed from a truck definition file, see https://docs.rigsofrods.org/vehicle-creation/fileformat-truck/ To spawn in-game, use MSG_SIM_SPAWN_ACTOR_REQUESTED
, see GameContext::PushMessage()
, in AngelScript use game.pushMessage();
Gameplay states are described by enum ActorState
.
For additional state vars see "Gameplay state" section below.
Actor::Actor | ( | ActorInstanceID_t | actor_id, |
unsigned int | vector_index, | ||
RigDef::DocumentPtr | def, | ||
RoR::ActorSpawnRequest | rq | ||
) |
|
private |
void Actor::antilockbrakeToggle | ( | ) |
void Actor::applyNodeBeamScales | ( | ) |
For GUI::NodeBeamUtils.
Definition at line 1754 of file Actor.cpp.
|
private |
void Actor::beaconsToggle | ( | ) |
|
private |
Definition at line 103 of file ActorForcesEuler.cpp.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Definition at line 163 of file ActorForcesEuler.cpp.
|
private |
|
private |
|
private |
Definition at line 46 of file ActorForcesEuler.cpp.
|
private |
|
private |
|
private |
|
private |
|
private |
Definition at line 94 of file ActorForcesEuler.cpp.
void Actor::calcNetwork | ( | ) |
|
private |
|
private |
|
private |
Definition at line 1091 of file ActorForcesEuler.cpp.
|
private |
Definition at line 1769 of file ActorForcesEuler.cpp.
|
private |
Definition at line 491 of file ActorForcesEuler.cpp.
|
private |
|
private |
|
private |
Definition at line 1052 of file ActorForcesEuler.cpp.
|
private |
|
private |
Definition at line 1083 of file ActorForcesEuler.cpp.
void Actor::calculateAveragePosition | ( | ) |
|
private |
|
private |
|
private |
Definition at line 262 of file ActorForcesEuler.cpp.
int Actor::countCustomLights | ( | int | control_number | ) |
int Actor::countFlaresByType | ( | FlareType | type | ) |
void Actor::cruisecontrolToggle | ( | ) |
Defined in 'gameplay/CruiseControl.cpp'.
Definition at line 31 of file CruiseControl.cpp.
|
private |
|
private |
void Actor::displayAxleDiffMode | ( | ) |
void Actor::displayTransferCaseMode | ( | ) |
void Actor::displayWheelDiffMode | ( | ) |
void Actor::dispose | ( | ) |
void Actor::engineTriggerHelper | ( | int | engineNumber, |
EngineTriggerType | type, | ||
float | triggerValue | ||
) |
void Actor::ensureWorkingTuneupDef | ( | ) |
void Actor::forceAllFlaresOff | ( | ) |
void Actor::ForceFeedbackStep | ( | int | steps | ) |
std::vector< authorinfo_t > Actor::getAuthors | ( | ) |
|
inline |
|
inline |
|
inline |
BlinkType Actor::getBlinkType | ( | ) |
|
inline |
|
inline |
|
inline |
|
private |
actor | which actor to retrieve the closest Rail from |
node | which SlideNode is being checked against |
Definition at line 73 of file ActorSlideNode.cpp.
bool Actor::getCustomLightVisible | ( | int | number | ) |
bool Actor::getCustomParticleMode | ( | ) |
std::vector< std::string > Actor::getDescription | ( | ) |
Vector3 Actor::getDirection | ( | ) |
|
inline |
|
inline |
|
inline |
|
inline |
float Actor::getHeightAboveGround | ( | bool | skip_virtual_nodes = true | ) |
float Actor::getHeightAboveGroundBelow | ( | float | height, |
bool | skip_virtual_nodes = true |
||
) |
|
inline |
|
inline |
|
inline |
Ogre::MaterialPtr Actor::getManagedMaterialInstance | ( | const std::string & | orig_name | ) |
std::vector< std::string > Actor::getManagedMaterialNames | ( | ) |
|
inline |
float Actor::getMaxHeight | ( | bool | skip_virtual_nodes = true | ) |
|
inline |
float Actor::getMinHeight | ( | bool | skip_virtual_nodes = true | ) |
Ogre::Real Actor::getMinimalCameraRadius | ( | ) |
Vector3 Actor::getNodePosition | ( | int | nodeNumber | ) |
int Actor::GetNumActiveConnectedBeams | ( | int | nodeid | ) |
|
inline |
Vector3 Actor::getPosition | ( | ) |
Replay * Actor::getReplay | ( | ) |
float Actor::getRotation | ( | ) |
Ogre::Vector3 Actor::getRotationCenter | ( | ) |
|
inline |
|
inline |
|
inline |
float Actor::getTotalMass | ( | bool | withLocked = true | ) |
|
inline |
String Actor::getTransferCaseName | ( | ) |
|
inline |
std::string Actor::getTruckFileResourceGroup | ( | ) |
|
inline |
|
inline |
|
inline |
|
inline |
CacheEntryPtr & Actor::getUsedActorEntry | ( | ) |
CacheEntryPtr & Actor::getUsedSkinEntry | ( | ) |
|
inline |
|
inline |
int Actor::getWheelNodeCount | ( | ) | const |
|
inline |
TuneupDefPtr & Actor::getWorkingTuneupDef | ( | ) |
void Actor::HandleAngelScriptEvents | ( | float | dt | ) |
|
inline |
void Actor::hookToggle | ( | int | group = -1 , |
ActorLinkingRequestType | mode = ActorLinkingRequestType::HOOK_TOGGLE , |
||
NodeNum_t | mousenode = NODENUM_INVALID , |
||
ActorInstanceID_t | forceunlock_filter = ACTORINSTANCEID_INVALID |
||
) |
bool Actor::Intersects | ( | ActorPtr | actor, |
Ogre::Vector3 | offset = Ogre::Vector3::ZERO |
||
) |
|
inline |
bool Actor::isLocked | ( | ) |
bool Actor::isNodeWheelRim | ( | int | nodeNumber | ) |
Is node marked as wheel rim? Note some wheel models use only tire nodes. See https://docs.rigsofrods.org/vehicle-creation/fileformat-truck/#wheels.
bool Actor::isNodeWheelTire | ( | int | nodeNumber | ) |
Is node marked as wheel tire? Note some wheel models use only tire nodes. See https://docs.rigsofrods.org/vehicle-creation/fileformat-truck/#wheels.
|
inline |
bool Actor::isTied | ( | ) |
void Actor::mouseMove | ( | NodeNum_t | node, |
Ogre::Vector3 | pos, | ||
float | force | ||
) |
void Actor::muteAllSounds | ( | ) |
void Actor::NotifyActorCameraChanged | ( | ) |
void Actor::parkingbrakeToggle | ( | ) |
void Actor::prepareInside | ( | bool | inside | ) |
void Actor::pushNetwork | ( | char * | data, |
int | size | ||
) |
|
private |
|
private |
void Actor::removeWorkingTuneupDef | ( | ) |
|
inline |
|
inline |
|
inline |
|
inline |
void Actor::reset | ( | bool | keep_position = false | ) |
void Actor::resetPosition | ( | float | px, |
float | pz, | ||
bool | setInitPosition, | ||
float | miny | ||
) |
void Actor::resetPosition | ( | Ogre::Vector3 | translation, |
bool | setInitPosition | ||
) |
void Actor::resetSlideNodePositions | ( | ) |
Recalculate SlideNode positions.
Definition at line 112 of file ActorSlideNode.cpp.
void Actor::resetSlideNodes | ( | ) |
Reset all the SlideNodes.
Definition at line 122 of file ActorSlideNode.cpp.
void Actor::resolveCollisions | ( | float | max_distance, |
bool | consider_up | ||
) |
void Actor::resolveCollisions | ( | Ogre::Vector3 | direction | ) |
void Actor::ropeToggle | ( | int | group = -1 , |
ActorLinkingRequestType | mode = ActorLinkingRequestType::ROPE_TOGGLE , |
||
ActorInstanceID_t | forceunlock_filter = ACTORINSTANCEID_INVALID |
||
) |
void Actor::searchBeamDefaults | ( | ) |
void Actor::sendStreamData | ( | ) |
void Actor::sendStreamSetup | ( | ) |
void Actor::setAirbrakeIntensity | ( | float | intensity | ) |
|
inline |
void Actor::setBlinkType | ( | BlinkType | blink | ) |
void Actor::setCustomLightVisible | ( | int | number, |
bool | visible | ||
) |
|
inline |
|
inline |
|
inline |
void Actor::setLightStateMask | ( | BitMask_t | lightmask | ) |
|
inline |
|
inline |
void Actor::SoftReset | ( | ) |
void Actor::SyncReset | ( | bool | reset_position | ) |
void Actor::tieToggle | ( | int | group = -1 , |
ActorLinkingRequestType | mode = ActorLinkingRequestType::TIE_TOGGLE , |
||
ActorInstanceID_t | forceunlock_filter = ACTORINSTANCEID_INVALID |
||
) |
void Actor::toggleAxleDiffMode | ( | ) |
void Actor::toggleBlinkType | ( | BlinkType | blink | ) |
void Actor::toggleCustomParticles | ( | ) |
void Actor::toggleHeadlights | ( | ) |
void Actor::toggleSlideNodeLock | ( | ) |
Definition at line 34 of file ActorSlideNode.cpp.
void Actor::toggleTransferCaseGearRatio | ( | ) |
void Actor::toggleTransferCaseMode | ( | ) |
void Actor::toggleWheelDiffMode | ( | ) |
void Actor::tractioncontrolToggle | ( | ) |
void Actor::unmuteAllSounds | ( | ) |
void Actor::UpdateBoundingBoxes | ( | ) |
void Actor::UpdateCruiseControl | ( | float | dt | ) |
Defined in 'gameplay/CruiseControl.cpp'.
Definition at line 48 of file CruiseControl.cpp.
void Actor::updateDashBoards | ( | float | dt | ) |
void Actor::updateInitPosition | ( | ) |
void Actor::UpdatePropAnimInputEvents | ( | ) |
void Actor::updateSkidmarks | ( | ) |
void Actor::updateSlideNodeForces | ( | const Ogre::Real | delta_time_sec | ) |
calculate and apply Corrective forces
Definition at line 103 of file ActorSlideNode.cpp.
void Actor::updateSlideNodePositions | ( | ) |
incrementally update the position of all SlideNodes
Definition at line 130 of file ActorSlideNode.cpp.
void Actor::updateSoundSources | ( | ) |
void Actor::updateVisual | ( | float | dt = 0 | ) |
void Actor::WriteDiagnosticDump | ( | std::string const & | filename | ) |
|
friend |
|
friend |
float RoR::Actor::alb_minspeed = 0.f |
bool RoR::Actor::alb_mode = false |
bool RoR::Actor::alb_nodash = false |
bool RoR::Actor::alb_notoggle = false |
bool RoR::Actor::alb_pulse_state = false |
float RoR::Actor::alb_pulse_time = 0.f |
float RoR::Actor::alb_ratio = 0.f |
int RoR::Actor::ar_aerial_flap = 0 |
AeroEngine* RoR::Actor::ar_aeroengines[MAX_AEROENGINES] = {} |
float RoR::Actor::ar_aileron = 0.f |
int RoR::Actor::ar_airbrake_intensity = 0 |
float RoR::Actor::ar_anim_previous_crank = 0.f |
float RoR::Actor::ar_anim_shift_timer = 0.f |
float RoR::Actor::ar_avg_wheel_speed = 0.f |
Ogre::AxisAlignedBox RoR::Actor::ar_bounding_box |
Ogre::Real RoR::Actor::ar_brake = 0.f |
float RoR::Actor::ar_brake_force = 0.f |
NodeNum_t RoR::Actor::ar_camera_node_dir[MAX_CAMERAS] = {NODENUM_INVALID} |
NodeNum_t RoR::Actor::ar_camera_node_pos[MAX_CAMERAS] = {NODENUM_INVALID} |
NodeNum_t RoR::Actor::ar_camera_node_roll[MAX_CAMERAS] = {NODENUM_INVALID} |
bool RoR::Actor::ar_camera_node_roll_inv[MAX_CAMERAS] = {false} |
NodeNum_t RoR::Actor::ar_camera_rail[MAX_CAMERARAIL] = {} |
NodeNum_t RoR::Actor::ar_cinecam_node[MAX_CAMERAS] = {NODENUM_INVALID} |
std::vector<Ogre::AxisAlignedBox> RoR::Actor::ar_collision_bounding_boxes |
float RoR::Actor::ar_collision_range = DEFAULT_COLLISION_RANGE |
CmdKeyArray RoR::Actor::ar_command_key |
int RoR::Actor::ar_current_cinecam = -1 |
NodeNum_t RoR::Actor::ar_custom_camera_node = NODENUM_INVALID |
cparticle_t RoR::Actor::ar_custom_particles[MAX_CPARTICLES] = {} |
DashBoardManager* RoR::Actor::ar_dashboard = nullptr |
Ogre::String RoR::Actor::ar_design_name |
bool RoR::Actor::ar_disable_aerodyn_turbulent_drag |
ActorType RoR::Actor::ar_driveable = NOT_DRIVEABLE |
float RoR::Actor::ar_elevator = 0.f |
bool RoR::Actor::ar_engine_hydraulics_ready |
Ogre::AxisAlignedBox RoR::Actor::ar_evboxes_bounding_box |
NodeNum_t RoR::Actor::ar_exhaust_dir_node = 0 |
NodeNum_t RoR::Actor::ar_exhaust_pos_node = 0 |
ExtCameraMode RoR::Actor::ar_extern_camera_mode = ExtCameraMode::CLASSIC |
NodeNum_t RoR::Actor::ar_extern_camera_node = NODENUM_INVALID |
std::string RoR::Actor::ar_filehash |
std::string RoR::Actor::ar_filename |
Ogre::Vector3 RoR::Actor::ar_fusedrag = Ogre::Vector3::ZERO |
bool RoR::Actor::ar_has_active_shocks = false |
bool RoR::Actor::ar_hide_in_actor_list = false |
std::vector<hydrobeam_t> RoR::Actor::ar_hydros |
std::vector<std::pair<float, float> > RoR::Actor::ar_initial_beam_defaults |
std::vector<Ogre::Vector3> RoR::Actor::ar_initial_node_positions |
ActorInstanceID_t RoR::Actor::ar_instance_id = ACTORINSTANCEID_INVALID |
std::vector<beam_t*> RoR::Actor::ar_inter_beams |
collcab_rate_t RoR::Actor::ar_inter_collcabrate[MAX_CABS] = {} |
collcab_rate_t RoR::Actor::ar_intra_collcabrate[MAX_CABS] = {} |
ground_model_t* RoR::Actor::ar_last_fuzzy_ground_model = nullptr |
float RoR::Actor::ar_left_mirror_angle = 0.52f |
ActorPtrVec RoR::Actor::ar_linked_actors |
BEWARE: Includes indirect links, see DetermineLinkedActors()
; Other actors linked using 'hooks/ties/ropes/slidenodes'; use MSG_SIM_ACTOR_LINKING_REQUESTED
Ogre::Quaternion RoR::Actor::ar_main_camera_dir_corr = Ogre::Quaternion::IDENTITY |
NodeNum_t RoR::Actor::ar_main_camera_node_dir = 0 |
NodeNum_t RoR::Actor::ar_main_camera_node_pos = 0 |
NodeNum_t RoR::Actor::ar_main_camera_node_roll = 0 |
std::map<std::string, Ogre::MaterialPtr> RoR::Actor::ar_managed_materials |
std::vector<float> RoR::Actor::ar_minimass |
std::pair<float, float> RoR::Actor::ar_nb_beams_d_interval |
std::pair<float, float> RoR::Actor::ar_nb_beams_k_interval |
std::pair<float, float> RoR::Actor::ar_nb_beams_scale |
float RoR::Actor::ar_nb_mass_scale = 1.f |
int RoR::Actor::ar_nb_measure_steps = 500 |
std::vector<float> RoR::Actor::ar_nb_optimum |
std::vector<float> RoR::Actor::ar_nb_reference |
std::pair<float, float> RoR::Actor::ar_nb_shocks_d_interval |
std::pair<float, float> RoR::Actor::ar_nb_shocks_k_interval |
std::pair<float, float> RoR::Actor::ar_nb_shocks_scale |
int RoR::Actor::ar_nb_skip_steps = 0 |
std::pair<float, float> RoR::Actor::ar_nb_wheels_d_interval |
std::pair<float, float> RoR::Actor::ar_nb_wheels_k_interval |
std::pair<float, float> RoR::Actor::ar_nb_wheels_scale |
int RoR::Actor::ar_net_source_id = 0 |
std::vector<std::vector<int> > RoR::Actor::ar_node_to_beam_connections |
std::vector<std::vector<int> > RoR::Actor::ar_node_to_node_connections |
int* RoR::Actor::ar_nodes_id = nullptr |
std::string* RoR::Actor::ar_nodes_name = nullptr |
int RoR::Actor::ar_nodes_name_top_length = 0 |
int RoR::Actor::ar_num_contactable_nodes = 0 |
int RoR::Actor::ar_num_contacters = 0 |
int RoR::Actor::ar_num_shocks = 0 |
Ogre::Vector3 RoR::Actor::ar_origin = Ogre::Vector3::ZERO |
std::vector<Ogre::AxisAlignedBox> RoR::Actor::ar_predicted_coll_bounding_boxes |
bool RoR::Actor::ar_rescuer_flag |
float RoR::Actor::ar_right_mirror_angle = -0.52f |
float RoR::Actor::ar_rudder = 0.f |
float RoR::Actor::ar_scale = 1.f |
Screwprop* RoR::Actor::ar_screwprops[MAX_SCREWPROPS] = {} |
float RoR::Actor::ar_sleep_counter = 0.f |
soundsource_t RoR::Actor::ar_soundsources[MAX_SOUNDSCRIPTS_PER_TRUCK] = {} |
ActorState RoR::Actor::ar_state = ActorState::LOCAL_SIMULATED |
ground_model_t* RoR::Actor::ar_submesh_ground_model = nullptr |
std::vector<UniqueCommandKeyPair> RoR::Actor::ar_unique_commandkey_pairs |
bool RoR::Actor::ar_update_physics |
unsigned int RoR::Actor::ar_vector_index = 0 |
VehicleAIPtr RoR::Actor::ar_vehicle_ai |
float RoR::Actor::ar_wheel_speed = 0.f |
float RoR::Actor::ar_wheel_spin = 0.f |
std::vector<wheeldetacher_t> RoR::Actor::ar_wheeldetachers |
wheel_t RoR::Actor::ar_wheels[MAX_WHEELS] = {} |
std::vector<authorinfo_t> RoR::Actor::authors |
float RoR::Actor::cc_target_speed_lower_limit = 0.f |
std::vector<std::pair<collision_box_t*, NodeNum_t> > RoR::Actor::m_active_eventboxes |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Data for ForceFeedback devices.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
CollisionBoxPtrVec RoR::Actor::m_potential_eventboxes |
|
private |
|
private |
|
private |
|
private |
|
private |
Ogre::Vector3 RoR::Actor::m_rotation_request_center = Ogre::Vector3::ZERO |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Ogre::Vector3 RoR::Actor::m_translation_request = Ogre::Vector3::ZERO |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
bool RoR::Actor::tc_mode = false |
bool RoR::Actor::tc_nodash = false |
bool RoR::Actor::tc_notoggle = false |
bool RoR::Actor::tc_pulse_state = 0.f |
float RoR::Actor::tc_pulse_time = 0.f |
float RoR::Actor::tc_ratio = 0.f |