Rigs of Rods 2026.01
Soft-body Physics Simulation
Loading...
Searching...
No Matches
Actor.h
Go to the documentation of this file.
1/*
2 This source file is part of Rigs of Rods
3 Copyright 2005-2012 Pierre-Michel Ricordel
4 Copyright 2007-2012 Thomas Fischer
5 Copyright 2016-2024 Petr Ohlidal
6
7 For more information, see http://www.rigsofrods.org/
8
9 Rigs of Rods is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License version 3, as
11 published by the Free Software Foundation.
12
13 Rigs of Rods is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with Rigs of Rods. If not, see <http://www.gnu.org/licenses/>.
20*/
21
22#pragma once
23
24#include "AeroEngine.h"
25#include "Application.h"
26#include "AutoPilot.h"
27#include "CmdKeyInertia.h"
28#include "DashBoardManager.h"
29#include "Differentials.h"
30#include "Engine.h"
31#include "GfxActor.h"
34#include "RoRnet.h"
35#include "RefCountingObject.h"
37#include "ScrewProp.h"
38#include "SimData.h"
39#include "SoundScriptManager.h"
40#include "TyrePressure.h"
41#include "VehicleAI.h"
42
43#include <Ogre.h>
44
45namespace RoR {
46
49
54class Actor : public RefCountingObject<Actor>
55{
56 friend class ActorSpawner;
57 friend class ActorManager;
58 friend class GfxActor; // Temporary until all visuals are moved there. ~ only_a_ptr, 2018
59 friend class OutGauge;
60public:
61
62 Actor(
63 ActorInstanceID_t actor_id
64 , unsigned int vector_index
67 );
68
69 virtual ~Actor() override;
70
71 void dispose();
72
75 void sendStreamSetup();
76 void sendStreamData();
77 void pushNetwork(char* data, int size);
78 void calcNetwork();
80
83 // PLEASE maintain the same order as in 'scripting/bindings/ActorAngelscript.cpp' and 'doc/angelscript/.../BeamClass.h'
85 Ogre::Vector3 getPosition();
86 // AngelScript alias: `getVehiclePosition()`
87 float getRotation();
88 // AngelScript alias: `getHeadingDirectionAngle()`
89 Ogre::Quaternion getOrientation();
90 float getSpeed() { return m_avg_node_velocity.length(); };
91 Ogre::Vector3 getGForces() { return m_camera_local_gforces_cur; };
92 float getTotalMass(bool withLocked = true);
93 float getDryMass() { return ar_dry_mass; }
94 float getLoadedMass() { return ar_load_mass; }
97 int getNodeCount() { return ar_num_nodes; }
98 Ogre::Vector3 getNodePosition(int nodeNumber);
99 float getNodeInitialMass(int nodeNumber);
100 float getNodeMass(int nodeNumber);
101 Ogre::Vector3 getNodeVelocity(int nodeNumber);
102 Ogre::Vector3 getNodeForces(int nodeNumber);
103 void getNodeMassOptions(int nodeNumber, bool& loaded, bool& overrideMass);
104 bool isNodeWheelRim(int nodeNumber);
105 bool isNodeWheelTire(int nodeNumber);
106 int getWheelNodeCount() const;
107 float getWheelSpeed() const { return ar_wheel_speed; }
108 void reset(bool keep_position = false);
109 float getShockSpringRate(int shock_number);
110 float getShockDamping(int shock_number);
111 float getShockVelocity(int shock_number);
112 int getShockNode1(int shock_number);
113 int getShockNode2(int shock_number);
116 // not exported to scripting:
117 void resetPosition(Ogre::Vector3 translation, bool setInitPosition);
118 void resetPosition(float px, float pz, bool setInitPosition, float miny);
119 void softRespawn(Ogre::Vector3 spawnpos, Ogre::Quaternion spawnrot);
120 void requestRotation(float rotation, Ogre::Vector3 center) { m_rotation_request += rotation; m_rotation_request_center = center; };
121 void requestAngleSnap(int division) { m_anglesnap_request = division; };
122 void requestTranslation(Ogre::Vector3 translation) { m_translation_request += translation; };
123 int getShockCount() { return ar_num_shocks; }
124 Ogre::Vector3 getVelocity() const { return m_avg_node_velocity; };
125 Ogre::Vector3 getDirection();
126 Ogre::Vector3 getRotationCenter();
127 float getMinHeight(bool skip_virtual_nodes=true);
128 float getMaxHeight(bool skip_virtual_nodes=true);
129 float getHeightAboveGround(bool skip_virtual_nodes=true);
130 float getHeightAboveGroundBelow(float height, bool skip_virtual_nodes=true);
131 Ogre::Vector3 getMaxGForces() { return m_camera_local_gforces_max; };
132 bool hasSlidenodes() { return !m_slidenodes.empty(); };
134 void updateSlideNodeForces(const Ogre::Real delta_time_sec);
136 void resetSlideNodes();
138
141 // PLEASE maintain the same order as in 'scripting/bindings/ActorAngelscript.cpp' and 'doc/angelscript/.../BeamClass.h'
142 void scaleTruck(float value);
143 void setMass(float m);
144 void setLoadedMass(float m);
145 void setNodeMass(int nodeNumber, float m);
146 void setNodeMassOptions(int nodeNumber, bool loaded, bool overrideMass);
147 void setSimAttribute(ActorSimAttr attr, float val);
148 void setIndexedSimAttribute(ActorSimAttr attr, float val, int index);
149 float getSimAttribute(ActorSimAttr attr);
150 float getIndexedSimAttribute(ActorSimAttr attr, int index);
152 void setAirbrakeIntensity(float intensity);
153 void setAircraftFlaps(int flapsLevel);
154 void wakeUp();
155 void sendToSleep();
156 // not exported to scripting:
157 void applyNodeBeamScales();
158 void searchBeamDefaults();
159 void updateInitPosition();
161 bool shouldSetSimAttribute(ActorSimAttr attr, float val, int index = -1);
163
166 // PLEASE maintain the same order as in 'scripting/bindings/ActorAngelscript.cpp' and 'doc/angelscript/.../BeamClass.h'
168 bool getTractionControl() { return tc_mode; }
169 bool getAntiLockBrake() { return alb_mode; }
170 bool getCruiseControl() { return cc_mode; }
171 void parkingbrakeToggle();
173 void antilockbrakeToggle();
174 void cruisecontrolToggle();
177 bool isLocked();
178 void setForcedCinecam(CineCameraID_t cinecam_id, BitMask_t flags);
179 void clearForcedCinecam();
180 bool getForcedCinecam(CineCameraID_t& cinecam_id, BitMask_t& flags);
183 int getCameraPosNode(int camIndex) { return camIndex >= 0 && camIndex < ar_num_cameras ? ar_camera_node_pos[camIndex] : NODENUM_INVALID; }
184 int getCameraDirNode(int camIndex) { return camIndex >= 0 && camIndex < ar_num_cameras ? ar_camera_node_dir[camIndex] : NODENUM_INVALID; }
185 int getCameraRollNode(int camIndex) { return camIndex >= 0 && camIndex < ar_num_cameras ? ar_camera_node_roll[camIndex] : NODENUM_INVALID; }
186 // not exported to scripting:
187 void mouseMove(NodeNum_t node, Ogre::Vector3 pos, float force);
189 bool isTied();
192 void engineTriggerHelper(int engineNumber, EngineTriggerType type, float triggerValue);
193 void toggleSlideNodeLock();
194 void toggleAxleDiffMode();
195 void displayAxleDiffMode();
197 void toggleWheelDiffMode();
198 void displayWheelDiffMode();
203 Ogre::String getTransferCaseName();
205 void setSmokeEnabled(bool enabled) { m_disable_smoke = !enabled; }
206 bool getSmokeEnabled() const { return !m_disable_smoke; }
208
211 float getEventValue(int eventID, bool pure = false, InputSourceType valueSource = InputSourceType::IST_ANY);
212 bool getEventBoolValue(int eventID);
213 bool getEventBoolValueBounce(int eventID, float time = 0.2f);
215 bool hasEventSimulatedValue(int eventID);
216 float getEventSimulatedValue(int eventID);
217 void setEventSimulatedValue(int eventID, float value);
218 void resetEventSimulatedValue(int eventID);
219
220 // not exported to scripting:
221
222 // Determines whether input event values for this actor must be read from
223 // the simulated values map. This allows us to send simulated inputs to actors
224 // other than the player actor, without it being affected by InputEngine
225 // values.
227 bool isEventAnalog(int eventID);
228 bool isEventDefined(int eventID);
229 float getEventBounceTime(int eventID);
231
234 // PLEASE maintain the same order as in 'scripting/bindings/ActorAngelscript.cpp' and 'doc/angelscript/.../BeamClass.h'
236 void setBlinkType(BlinkType blink);
237 void toggleBlinkType(BlinkType blink);
238 bool getCustomLightVisible(int number);
239 void setCustomLightVisible(int number, bool visible);
241 void beaconsToggle();
244 int countCustomLights(int control_number);
246 // not exported to scripting:
247 void toggleHeadlights();
249 void setLightStateMask(BitMask_t lightmask);
250 void importLightStateMask(BitMask_t lightmask);
254 void setHeadlightsVisible(bool val) { if (val != this->getHeadlightsVisible()) { this->toggleHeadlights(); } }
261
264 void updateSkidmarks();
265 void prepareInside(bool inside);
266 void updateFlareStates(float dt);
267 void updateVisual(float dt=0);
268 void updateDashBoards(float dt);
269 void forceAllFlaresOff();
271
274 void updateSoundSources();
275 void muteAllSounds();
276 void unmuteAllSounds();
278
285 AeroEnginePtr getTurbojet(int index);
286 AeroEnginePtr getTurboprop(int index);
289 ScrewpropPtr getScrewprop(int index);
290 Ogre::MaterialPtr getManagedMaterialInstance(const std::string& orig_name);
291 std::vector<std::string> getManagedMaterialNames();
292 // not exported to scripting:
293 Replay* getReplay();
297
300 // PLEASE maintain the same ordering as in 'scripting/bindings/ActorAngelscript.cpp' and 'doc/angelscript/.../BeamClass.h'
301 std::string getTruckName() { return ar_design_name; }
302 std::string getTruckFileName() { return ar_filename; }
303 std::string getTruckFileResourceGroup();
304 int getTruckType() { return ar_driveable; }
305 Ogre::String getSectionConfig() { return m_section_config; }
307 // not exported to scripting:
316 std::vector<authorinfo_t> getAuthors();
317 std::vector<std::string> getDescription();
319
320 void ForceFeedbackStep(int steps);
321 void HandleInputEvents(float dt);
322 void HandleAngelScriptEvents(float dt);
323 void UpdateCruiseControl(float dt);
324 bool Intersects(ActorPtr actor, Ogre::Vector3 offset = Ogre::Vector3::ZERO);
326 void resolveCollisions(Ogre::Vector3 direction);
329 void resolveCollisions(float max_distance, bool consider_up);
330 float getSteeringAngle();
332 int GetNumActiveConnectedBeams(int nodeid);
335 void UpdateBoundingBoxes();
337 void UpdatePhysicsOrigin();
338 void SoftReset();
339 void SyncReset(bool reset_position);
340 void WriteDiagnosticDump(std::string const& filename);
341 Ogre::Vector3 GetCameraDir() { return (ar_nodes[ar_main_camera_node_pos].RelPosition - ar_nodes[ar_main_camera_node_dir].RelPosition).normalisedCopy(); }
342 Ogre::Vector3 GetCameraRoll() { return (ar_nodes[ar_main_camera_node_pos].RelPosition - ar_nodes[ar_main_camera_node_roll].RelPosition).normalisedCopy(); }
343 Ogre::Vector3 GetFFbBodyForces() const { return m_force_sensors.out_body_forces; }
344 GfxActor* GetGfxActor() { return m_gfx_actor.get(); }
346 Ogre::Real getMinimalCameraRadius();
348 bool isBeingReset() const { return m_ongoing_reset; };
350
351 // -------------------- Public data -------------------- //
352
355 float ar_dry_mass = 0.f;
357 float ar_load_mass = 0.f;
359 int ar_masscount = 0;
360 float ar_total_mass = 0.f;
363
364 // Node data (split to layers)
365 node_t* ar_nodes = nullptr;
366 int* ar_nodes_id = nullptr;
367 std::string* ar_nodes_name = nullptr;
368 std::vector<float> ar_nodes_default_loadweights;
369 std::vector<float> ar_nodes_override_loadweights;
370 Ogre::Vector3* ar_nodes_spawn_offsets = nullptr;
371 std::vector<BitMask_t> ar_nodes_options;
372 std::vector<float> ar_minimass;
373 std::vector<float> ar_orig_minimass;
374 std::vector<float> ar_initial_node_masses;
375 std::vector<Ogre::Vector3> ar_initial_node_positions;
376
377 // Node additional info
381
382 // Beam data (split to layers)
383 beam_t* ar_beams = nullptr;
385 std::vector<std::pair<float, float>> ar_initial_beam_defaults;
386 std::vector<bool> ar_beams_invisible;
387 std::vector<bool> ar_beams_user_defined;
388
389 std::vector<beam_t*> ar_inter_beams;
390 shock_t* ar_shocks = nullptr;
392 bool ar_has_active_shocks = false;
395 wing_t* ar_wings = nullptr;
397 std::vector<authorinfo_t> authors;
398 std::vector<rope_t> ar_ropes;
399 std::vector<ropable_t> ar_ropables;
400 std::vector<tie_t> ar_ties;
401 std::vector<hook_t> ar_hooks;
402 std::vector<flare_t> ar_flares;
403 std::vector<Airbrake*> ar_airbrakes;
405 Ogre::AxisAlignedBox ar_bounding_box;
406 Ogre::AxisAlignedBox ar_evboxes_bounding_box;
407 Ogre::AxisAlignedBox ar_predicted_bounding_box;
408
409 std::vector<wheeldetacher_t> ar_wheeldetachers;
410 std::vector<std::vector<int>> ar_node_to_node_connections;
411 std::vector<std::vector<int>> ar_node_to_beam_connections;
412 std::vector<Ogre::AxisAlignedBox> ar_collision_bounding_boxes;
413 std::vector<Ogre::AxisAlignedBox> ar_predicted_coll_bounding_boxes;
414 std::map<std::string, Ogre::MaterialPtr> ar_managed_materials;
415 std::vector<UniqueCommandKeyPair> ar_unique_commandkey_pairs;
416
427 int ar_cabs[MAX_CABS * 3] = {};
429 int ar_num_cabs = 0;
430 std::vector<hydrobeam_t> ar_hydros;
441 Ogre::String ar_design_name;
443 float alb_ratio = 0.f;
444 float alb_minspeed = 0.f;
445 bool alb_mode = false;
446 float alb_pulse_time = 0.f;
447 bool alb_pulse_state = false;
448 bool alb_nodash = false;
449 bool alb_notoggle = false;
450 float alb_timer = 0.f;
452 bool cc_mode = false;
453 bool cc_can_brake = false;
454 float cc_target_rpm = 0.f;
455 float cc_target_speed = 0.f;
457 std::deque<float> cc_accs;
458 bool sl_enabled = false;
459 float sl_speed_limit = 0.f;
465 unsigned int ar_vector_index = 0;
471 float ar_brake_force = 0.f;
472
473 Ogre::Vector3 ar_origin = Ogre::Vector3::ZERO;
475 Ogre::Quaternion ar_main_camera_dir_corr = Ogre::Quaternion::IDENTITY;
483
486
487 // Overrides the input event values from InputEngine with custom values
488 // for this actor.
489 // As soon as an event-value pair is added to this map, values from the
490 // InputEngine are ignored.
492
493 float ar_scale = 1.f;
494 Ogre::Real ar_brake = 0.f;
495 float ar_wheel_speed = 0.f;
496 float ar_wheel_spin = 0.f;
497 float ar_avg_wheel_speed = 0.f;
507 float ar_sleep_counter = 0.f;
509 bool ar_parking_brake = false;
511 float ar_left_mirror_angle = 0.52f;
512 float ar_right_mirror_angle = -0.52f;
513 float ar_elevator = 0.f;
514 float ar_rudder = 0.f;
515 float ar_aileron = 0.f;
517 Ogre::Vector3 ar_fusedrag = Ogre::Vector3::ZERO;
518 std::string ar_filename;
519 std::string ar_filehash;
523 std::map<int,int> ar_net_stream_results;
524 Ogre::Timer ar_net_timer;
525 unsigned long ar_net_last_update_time = 0;
527 float ar_top_speed = 0.f;
530 std::vector<std::pair<collision_box_t*, NodeNum_t>> m_active_eventboxes;
531 std::unique_ptr<Buoyance> m_buoyance;
532
533 // Player camera 'cameras & cinecam'
534 // * 'cinecam#' creates dedicated node to dictate camera position + 6 attachment beams.
535 // * 'camera#' specifies a reference frame for the cinecam by referencing 3 preexisting nodes: ref, x, y.
536 // NOTE camera#0 is special - serves a general orientation frame for the whole actor. Cinecam#0 isn't required to exist, but camera#0 is.
542
543 // TractionControl
544 float tc_ratio = 0.f;
545 bool tc_mode = false;
546 float tc_pulse_time = 0.f;
547 bool tc_pulse_state = 0.f;
548 bool tc_nodash = false;
549 bool tc_notoggle = false;
550 float tc_timer = 0.f;
551 float tc_wheelslip_constant = 0.25f;
552
553 // Guisettings
560
561 // Dashboards
562 bool m_hud_features_ok = false;
564
565
566 // Gameplay state
569 bool m_ongoing_reset = false;
570 bool ar_physics_paused = false;
571 bool ar_muted_by_peeropt = false;
572
573 // Repair state
574 Ogre::Vector3 m_rotation_request_center = Ogre::Vector3::ZERO;
575 float m_rotation_request = 0.f;
577 Ogre::Vector3 m_translation_request = Ogre::Vector3::ZERO;
578
579 // Realtime node/beam structure editing helpers
580 bool ar_nb_initialized = false;
581 std::vector<float> ar_nb_optimum;
582 std::vector<float> ar_nb_reference;
586 std::pair<float, float> ar_nb_beams_scale;
587 std::pair<float, float> ar_nb_shocks_scale;
588 std::pair<float, float> ar_nb_wheels_scale;
589 std::pair<float, float> ar_nb_beams_d_interval;
590 std::pair<float, float> ar_nb_beams_k_interval;
591 std::pair<float, float> ar_nb_shocks_d_interval;
592 std::pair<float, float> ar_nb_shocks_k_interval;
593 std::pair<float, float> ar_nb_wheels_d_interval;
594 std::pair<float, float> ar_nb_wheels_k_interval;
595
596 // Bit flags
611
612private:
613
614 bool CalcForcesEulerPrepare(bool doUpdate);
615 void CalcAircraftForces(bool doUpdate);
616 void CalcForcesEulerCompute(bool doUpdate, int num_steps);
617 void CalcAnimators(hydrobeam_t const& hydrobeam, float &cstate, int &div);
618 void CalcBeams(bool trigger_hooks);
619 void CalcBeamsInterActor();
620 void CalcBuoyance(bool doUpdate);
621 void CalcCommands(bool doUpdate);
622 void CalcCabCollisions();
623 void CalcDifferentials();
624 void CalcForceFeedback(bool doUpdate);
625 void CalcFuseDrag();
626 void CalcHooks();
627 void CalcHydros();
628 void CalcMouse();
629 void CalcNodes();
630 void CalcEventBoxes();
631 void CalcReplay();
632 void CalcRopes();
633 void CalcShocks(bool doUpdate, int num_steps);
634 void CalcShocks2(int i, Ogre::Real difftoBeamL, Ogre::Real &k, Ogre::Real &d, Ogre::Real v);
635 void CalcShocks3(int i, Ogre::Real difftoBeamL, Ogre::Real &k, Ogre::Real &d, Ogre::Real v);
636 void CalcTriggers(int i, Ogre::Real difftoBeamL, bool update_hooks);
637 void CalcTies();
638 void CalcTruckEngine(bool doUpdate);
639 void CalcWheels(bool doUpdate, int num_steps);
640
646 void autoBlinkReset();
647 void ResetAngle(float rot);
648 void calculateLocalGForces();
651 // Both PointColDetectors need to be updated accordingly before calling this
652 Ogre::Vector3 calculateCollisionOffset(Ogre::Vector3 direction);
656 std::pair<RailGroup*, Ogre::Real> GetClosestRailOnActor( ActorPtr actor, const SlideNode& node);
657
658 // -------------------- data -------------------- //
659
660 std::vector<std::shared_ptr<Task>> m_flexbody_tasks;
661 std::unique_ptr<GfxActor> m_gfx_actor;
662 std::vector<SlideNode> m_slidenodes;
663 std::vector<RailGroup*> m_railgroups;
664 std::vector<Ogre::Entity*> m_deletion_entities;
665 std::vector<Ogre::SceneNode*> m_deletion_scene_nodes;
672
673 Ogre::Vector3 m_avg_node_position = Ogre::Vector3::ZERO;
674 Ogre::Real m_min_camera_radius = 0.f;
675 Ogre::Vector3 m_avg_node_position_prev = Ogre::Vector3::ZERO;
676 Ogre::Vector3 m_avg_node_velocity = Ogre::Vector3::ZERO;
680 Ogre::Vector3 m_mouse_grab_pos = Ogre::Vector3::ZERO;
682 float m_spawn_rotation = 0.f;
683 Ogre::Timer m_reset_timer;
684 Ogre::Vector3 m_camera_gforces_accu = Ogre::Vector3::ZERO;
685 Ogre::Vector3 m_camera_gforces = Ogre::Vector3::ZERO;
686 Ogre::Vector3 m_camera_local_gforces_cur = Ogre::Vector3::ZERO;
687 Ogre::Vector3 m_camera_local_gforces_max = Ogre::Vector3::ZERO;
697 float m_handbrake_force = 0.f;
701 float m_fusealge_width = 0.f;
702 float m_odometer_total = 0.f;
703 float m_odometer_user = 0.f;
705
707 bool m_antilockbrake = false;
708 bool m_tractioncontrol = false;
709 bool m_has_axles_section = false;
711 std::vector<std::string> m_description;
712 std::vector<PropAnimKeyState> m_prop_anim_key_states;
713
716 std::string m_section_config;
718 // cache entries
724
733
734 std::string m_net_username;
737
743 bool m_blinker_autoreset = false;
744 bool m_blinker_left_lit = false;
745 bool m_blinker_right_lit = false;
747
748
760
762 {
763 inline void Reset()
764 {
765 accu_body_forces = Ogre::Vector3::ZERO;
767 out_body_forces = Ogre::Vector3::ZERO;
769 };
770
771 Ogre::Vector3 accu_body_forces;
773 Ogre::Vector3 out_body_forces;
776
778 {
779 std::vector<char> veh_state;
780 std::vector<char> node_data;
781 std::vector<float> wheel_data;
782 };
783
784 std::deque<NetUpdate> m_net_updates;
785};
786
788
789} // namespace RoR
Central state/object manager and communications hub.
void BITMASK_SET(BitMask_t &mask, BitMask_t flag, bool val)
Definition BitFlags.h:19
uint32_t BitMask_t
Definition BitFlags.h:7
Manager for all visuals belonging to a single actor.
static const int MAX_CABS
maximum number of cabs per actor
static const int MAX_CAMERAS
maximum number of cameras per actor
static const int MAX_AEROENGINES
maximum number of aero engines per actor
static const int MAX_WHEELS
maximum number of wheels per actor
static const int MAX_SOUNDSCRIPTS_PER_TRUCK
maximum number of soundsscripts per actor
static const int MAX_CAMERARAIL
maximum number of camera rail points
static const int MAX_SCREWPROPS
maximum number of boat screws per actor
Core data structures for simulation; Everything affected by by either physics, network or user intera...
Wheel 'pressure adjustment' logic (only for 'wheels2')
Simple waypoint AI.
Self reference-counting objects, as requred by AngelScript garbage collector.
Softbody object; can be anything from soda can to a space shuttle Constructed from a truck definition...
Definition Actor.h:55
bool ar_parking_brake
Definition Actor.h:509
Ogre::String getTransferCaseName()
Toggles between Hi and Lo mode.
Definition Actor.cpp:1536
bool alb_mode
Anti-lock brake state; Enabled? {1/0}.
Definition Actor.h:445
BlinkType getBlinkType()
Definition Actor.cpp:4761
std::pair< float, float > ar_nb_wheels_k_interval
Search interval for springiness & damping of wheel / rim beams.
Definition Actor.h:594
float m_odometer_user
GUI state.
Definition Actor.h:703
std::vector< std::vector< int > > ar_node_to_beam_connections
Definition Actor.h:411
wing_t * ar_wings
Definition Actor.h:395
int ar_num_screwprops
Definition Actor.h:426
int ar_num_wings
Definition Actor.h:396
float getInitialLoadedMass()
Definition Actor.h:96
void setHighBeamsVisible(bool val)
Definition Actor.h:256
int getCameraDirNode(int camIndex)
Definition Actor.h:184
BitMask_t ar_forced_cinecam_flags
Sim state; flags for forced CineCam supplied by script.
Definition Actor.h:541
bool ar_import_commands
Sim state.
Definition Actor.h:606
std::pair< float, float > ar_nb_shocks_k_interval
Search interval for springiness & damping of shock beams.
Definition Actor.h:592
std::vector< float > ar_orig_minimass
minimum node mass in Kg - original unscaled values
Definition Actor.h:373
NodeNum_t ar_custom_camera_node
Sim state; custom tracking node for 3rd-person camera.
Definition Actor.h:538
Ogre::AxisAlignedBox ar_bounding_box
standard bounding box (surrounds all nodes of an actor)
Definition Actor.h:405
ActorState getTruckState()
Definition Actor.h:84
int ar_nb_measure_steps
Amount of physics steps to be measured.
Definition Actor.h:584
int m_wheel_node_count
Static attr; filled at spawn.
Definition Actor.h:695
bool shouldSetSimAttribute(ActorSimAttr attr, float val, int index=-1)
Definition Actor.cpp:5109
bool isEventDefined(int eventID)
Definition Actor.cpp:3119
int m_num_command_beams
TODO: Remove! Spawner context only; likely unused feature.
Definition Actor.h:704
bool ar_update_physics
Physics state; Should this actor be updated (locally) in the next physics step?
Definition Actor.h:597
bool getEventBoolValueBounce(int eventID, float time=0.2f)
Definition Actor.cpp:3034
size_t m_net_total_buffer_size
For incoming/outgoing traffic; calculated on spawn.
Definition Actor.h:730
EnginePtr ar_engine
Definition Actor.h:467
void requestAngleSnap(int division)
Definition Actor.h:121
void resetSlideNodePositions()
Recalculate SlideNode positions.
float ar_collision_range
Physics attr.
Definition Actor.h:526
void updateSlideNodeForces(const Ogre::Real delta_time_sec)
calculate and apply Corrective forces
bool m_antilockbrake
GUI state.
Definition Actor.h:707
std::vector< Ogre::AxisAlignedBox > ar_predicted_coll_bounding_boxes
Definition Actor.h:413
BitMask_t getLightStateMask() const
Definition Actor.h:248
std::vector< float > ar_minimass
minimum node mass in Kg - can be scaled in-game via NBUtil
Definition Actor.h:372
TransferCase * m_transfer_case
Physics.
Definition Actor.h:694
float ar_guisettings_speedo_max_kph
Definition Actor.h:555
float ar_dry_mass
User-defined (editable via NBUtil); from 'globals' arg#1 - default for all nodes.
Definition Actor.h:355
void CalcCommands(bool doUpdate)
std::map< int, int > ar_net_stream_results
Definition Actor.h:523
int ar_airbrake_intensity
Physics state; values 0-5.
Definition Actor.h:520
void toggleTransferCaseGearRatio()
Definition Actor.cpp:1522
bool m_blinker_left_lit
Blinking state of left turn signal.
Definition Actor.h:744
float ar_hydro_elevator_state
Definition Actor.h:506
std::pair< float, float > ar_nb_beams_scale
Scales for springiness & damping of regular beams.
Definition Actor.h:586
bool ar_forward_commands
Sim state.
Definition Actor.h:605
int m_proped_wheel_pairs[MAX_WHEELS]
Physics attr; For inter-differential locking.
Definition Actor.h:666
void toggleSlideNodeLock()
void engineTriggerHelper(int engineNumber, EngineTriggerType type, float triggerValue)
Definition Actor.cpp:4551
void resetSlideNodes()
Reset all the SlideNodes.
CacheEntryPtr & getUsedSkinEntry()
Definition Actor.cpp:5030
void antilockbrakeToggle()
Definition Actor.cpp:3967
bool m_ongoing_reset
Hack to prevent position/rotation creep during interactive truck reset (aka LiveRepair).
Definition Actor.h:569
NodeNum_t ar_camera_node_dir[MAX_CAMERAS]
Physics attr; 'camera' = frame of reference; back node.
Definition Actor.h:480
void calcNodeConnectivityGraph()
Definition Actor.cpp:907
void CalcBeams(bool trigger_hooks)
float m_mouse_grab_move_force
Definition Actor.h:681
void sendStreamData()
Send outgoing data.
Definition Actor.cpp:2026
float ar_wheel_speed
Physics state; wheel speed in m/s.
Definition Actor.h:495
bool hasEventSimulatedValue(int eventID)
Definition Actor.cpp:3053
void updateSkidmarks()
Creates or updates skidmarks.
Definition Actor.cpp:3135
collcab_rate_t ar_intra_collcabrate[MAX_CABS]
Definition Actor.h:433
bool m_net_initialized
Definition Actor.h:750
std::vector< float > ar_nodes_override_loadweights
'nodes': 'l' flag and number.
Definition Actor.h:369
std::pair< RailGroup *, Ogre::Real > GetClosestRailOnActor(ActorPtr actor, const SlideNode &node)
CacheEntryPtrVec & getUsedAddonpartEntries()
Definition Actor.cpp:5035
Ogre::AxisAlignedBox ar_evboxes_bounding_box
bounding box around nodes eligible for eventbox triggering
Definition Actor.h:406
std::string ar_filehash
Attribute; filled at spawn.
Definition Actor.h:519
float ar_nb_minimass_scale
scale of 'set_default_minimass' (affects all nodes the same way)
Definition Actor.h:585
int GetNumActiveConnectedBeams(int nodeid)
Returns the number of active (non bounded) beams connected to a node.
Definition Actor.cpp:4049
std::vector< bool > ar_beams_invisible
Used only by the exporter (for rendering, invisible beams simply get no mesh).
Definition Actor.h:386
std::vector< ropable_t > ar_ropables
Definition Actor.h:399
BuoyCachedNodeID_t ar_cabs_buoy_cache_ids[MAX_CABS]
Definition Actor.h:428
float ar_top_speed
Sim state.
Definition Actor.h:527
CmdKeyArray ar_command_key
BEWARE: commandkeys are indexed 1-MAX_COMMANDS!
Definition Actor.h:404
wheel_t ar_wheels[MAX_WHEELS]
Definition Actor.h:419
std::vector< float > ar_nb_reference
Temporary storage of the reference search result.
Definition Actor.h:582
std::vector< rope_t > ar_ropes
Definition Actor.h:398
int getNumCinecams()
Definition Actor.h:181
void hookToggle(int group=-1, ActorLinkingRequestType mode=ActorLinkingRequestType::HOOK_TOGGLE, NodeNum_t mousenode=NODENUM_INVALID, ActorInstanceID_t forceunlock_filter=ACTORINSTANCEID_INVALID)
Definition Actor.cpp:3813
NodeNum_t m_mouse_grab_node
Sim state; node currently being dragged by user.
Definition Actor.h:679
DashBoardManagerPtr ar_dashboard
Gfx state; Dashboard manager (HUD element manager)
Definition Actor.h:563
float m_odometer_total
GUI state.
Definition Actor.h:702
float getSimAttribute(ActorSimAttr attr)
Definition Actor.cpp:5208
std::vector< wheeldetacher_t > ar_wheeldetachers
Definition Actor.h:409
void clearEventSimulatedValues()
Definition Actor.cpp:3048
int getScrewpropCount()
Definition Actor.h:288
int getCameraRollNode(int camIndex)
Definition Actor.h:185
void prepareInside(bool inside)
Prepares vehicle for in-cabin camera use.
Definition Actor.cpp:3159
void displayTransferCaseMode()
Gets the current transfer case mode name (4WD Hi, ...)
Definition Actor.cpp:1477
bool getEventBoolValue(int eventID)
Definition Actor.cpp:3029
bool ar_camera_node_roll_inv[MAX_CAMERAS]
Physics attr; 'camera' = frame of reference; indicates roll node is right instead of left.
Definition Actor.h:482
float getWheelSpeed() const
Definition Actor.h:107
int ar_num_camera_rails
Definition Actor.h:439
int getWheelNodeCount() const
Definition Actor.cpp:902
float getMaxHeight(bool skip_virtual_nodes=true)
Definition Actor.cpp:1581
float tc_pulse_time
Definition Actor.h:546
bool getCustomParticleMode()
Definition Actor.cpp:4769
Ogre::Vector3 getNodeVelocity(int nodeNumber)
Definition Actor.cpp:4878
void ropeToggle(int group=-1, ActorLinkingRequestType mode=ActorLinkingRequestType::ROPE_TOGGLE, ActorInstanceID_t forceunlock_filter=ACTORINSTANCEID_INVALID)
Definition Actor.cpp:3736
float getInitialDryMass()
Definition Actor.h:95
void setSmokeEnabled(bool enabled)
Writes info to console/notify area.
Definition Actor.h:205
node_t * ar_nodes
Definition Actor.h:365
Ogre::Vector3 m_camera_gforces
Physics state (global)
Definition Actor.h:685
void calcNetwork()
Definition Actor.cpp:471
int ar_aerial_flap
Sim state; state of aircraft flaps (values: 0-5)
Definition Actor.h:516
void beaconsToggle()
Definition Actor.cpp:3985
void dispose()
Effectively destroys the object but keeps it in memory to satisfy shared pointers.
Definition Actor.cpp:89
float ar_original_load_mass
Un-edited value from 'globals' arg#2.
Definition Actor.h:358
bool ar_hydro_speed_coupling_enabled
Should we use hydro coupling? This gets updated for the player actor according to 'io_hydro_coupling'...
Definition Actor.h:601
void resetEventSimulatedValue(int eventID)
Definition Actor.cpp:3089
void updateVisual(float dt=0)
Definition Actor.cpp:3421
int ar_buoycabs[MAX_CABS]
Definition Actor.h:435
float getSpeed()
Definition Actor.h:90
GfxActor * GetGfxActor()
Definition Actor.h:344
bool isNodeWheelRim(int nodeNumber)
Is node marked as wheel rim? Note some wheel models use only tire nodes. See https://docs....
Definition Actor.cpp:4916
Ogre::AxisAlignedBox ar_predicted_bounding_box
Definition Actor.h:407
void setNodeMass(int nodeNumber, float m)
Definition Actor.cpp:4674
std::vector< BitMask_t > ar_nodes_options
merged options from 'nodes' and 'set_node_defaults'
Definition Actor.h:371
Ogre::String ar_design_name
Name of the vehicle/machine/object this actor represents.
Definition Actor.h:441
void calculateLocalGForces()
Derive the truck local g-forces from the global ones.
Definition Actor.cpp:4529
int m_num_wheel_diffs
Physics attr.
Definition Actor.h:693
std::deque< float > cc_accs
Cruise Control.
Definition Actor.h:457
std::vector< bool > ar_beams_user_defined
True for 'beams', false for wheels/cinecam/hooknode/wings/rotators etc...
Definition Actor.h:387
bool ar_muted_by_peeropt
Muted by user in multiplayer (see RoRnet::PEEROPT_MUTE_ACTORS).
Definition Actor.h:571
DashBoardManagerPtr getDashboardManager()
Definition Actor.h:281
int getCameraPosNode(int camIndex)
Definition Actor.h:183
void updateFlareStates(float dt)
Definition Actor.cpp:3228
float getRotation()
Definition Actor.cpp:355
int m_num_proped_wheels
Physics attr, filled at spawn - Number of propelled wheels.
Definition Actor.h:667
bool m_disable_default_sounds
Spawner context; TODO: remove.
Definition Actor.h:758
bool isTied()
Definition Actor.cpp:4060
std::vector< Ogre::SceneNode * > m_deletion_scene_nodes
For unloading vehicle; filled at spawn.
Definition Actor.h:665
bool getHighBeamsVisible() const
Definition Actor.h:255
Ogre::Vector3 m_camera_local_gforces_max
Physics state (camera local)
Definition Actor.h:687
void CalcForceFeedback(bool doUpdate)
Ogre::Vector3 GetFFbBodyForces() const
Definition Actor.h:343
std::vector< tie_t > ar_ties
Definition Actor.h:400
Ogre::Vector3 m_avg_node_velocity
average node velocity (compared to the previous frame step)
Definition Actor.h:676
TyrePressure m_tyre_pressure
Definition Actor.h:710
void NotifyActorCameraChanged()
Logic: sound, display; Notify this vehicle that camera changed;.
Definition Actor.cpp:4029
float ar_hydro_rudder_state
Definition Actor.h:504
float ar_sleep_counter
Sim state; idle time counter.
Definition Actor.h:507
std::pair< float, float > ar_nb_wheels_scale
Scales for springiness & damping of wheel / rim beams.
Definition Actor.h:588
bool m_water_contact_old
Scripting state.
Definition Actor.h:752
void toggleHeadlights()
Definition Actor.cpp:3198
void sendToSleep()
Definition Actor.cpp:3007
void mouseMove(NodeNum_t node, Ogre::Vector3 pos, float force)
Definition Actor.cpp:1400
float getEventBounceTime(int eventID)
Definition Actor.cpp:3124
int m_anglesnap_request
Accumulator.
Definition Actor.h:576
void CalcBuoyance(bool doUpdate)
float ar_original_dry_mass
Un-edited value from 'globals' arg#1.
Definition Actor.h:356
int m_num_axle_diffs
Physics attr.
Definition Actor.h:691
bool getSmokeEnabled() const
Definition Actor.h:206
float m_stabilizer_shock_ratio
Physics state.
Definition Actor.h:688
float ar_posnode_spawn_height
Definition Actor.h:484
CineCameraID_t ar_current_cinecam
Sim state; index of current CineCam (CINECAMERAID_INVALID if using 3rd-person camera)
Definition Actor.h:537
ground_model_t * ar_submesh_ground_model
Definition Actor.h:508
void updateDashBoards(float dt)
Definition Actor.cpp:4076
Replay * getReplay()
Definition Actor.cpp:4815
void CalcShocks(bool doUpdate, int num_steps)
std::vector< SlideNode > m_slidenodes
all the SlideNodes available on this actor
Definition Actor.h:662
float tc_wheelslip_constant
use ACTORSIMATTR_TC_WHEELSLIP_CONSTANT
Definition Actor.h:551
void DisjoinInterActorBeams()
Helper for MSG_ handlers, do not invoke by hand.
Definition Actor.cpp:3594
void importLightStateMask(BitMask_t lightmask)
Only for linked (locked/tied) actors forwarding flare states; see 'flaregroups_no_import' in ....
Definition Actor.cpp:3383
bool m_slidenodes_locked
Physics state; Are SlideNodes locked?
Definition Actor.h:749
void clearForcedCinecam()
Definition Actor.cpp:5288
float ar_initial_total_mass
Calculated; total mass in Kg (snapshot at spawn)
Definition Actor.h:361
int * ar_nodes_id
Number in truck file, -1 for nodes generated by wheels/cinecam.
Definition Actor.h:366
void updateInitPosition()
Definition Actor.cpp:1285
float getMinHeight(bool skip_virtual_nodes=true)
Definition Actor.cpp:1568
bool m_preloaded_with_terrain
Spawn context (TODO: remove!)
Definition Actor.h:754
void toggleWheelDiffMode()
Definition Actor.cpp:1407
std::vector< std::pair< float, float > > ar_initial_beam_defaults
Definition Actor.h:385
NodeNum_t ar_camera_node_roll[MAX_CAMERAS]
Physics attr; 'camera' = frame of reference; left node.
Definition Actor.h:481
Differential * m_axle_diffs[1+MAX_WHEELS/2]
Physics.
Definition Actor.h:690
ScrewpropPtr ar_screwprops[MAX_SCREWPROPS]
Definition Actor.h:425
unsigned int ar_vector_index
Sim attr; actor element index in std::vector<m_actors>
Definition Actor.h:465
void removeWorkingTuneupDef()
Deletes the working tuneup def object if it exists.
Definition Actor.cpp:5059
bool getBrakeLightVisible() const
Definition Actor.h:242
float m_spawn_rotation
Definition Actor.h:682
float m_net_node_compression
For incoming/outgoing traffic; calculated on spawn.
Definition Actor.h:731
void tieToggle(int group=-1, ActorLinkingRequestType mode=ActorLinkingRequestType::TIE_TOGGLE, ActorInstanceID_t forceunlock_filter=ACTORINSTANCEID_INVALID)
Definition Actor.cpp:3619
bool m_disable_smoke
Stops/starts smoke particles (i.e. exhausts, turbojets).
Definition Actor.h:759
Replay * m_replay_handler
Definition Actor.h:678
bool getParkingBrake()
Definition Actor.h:167
void setIndexedSimAttribute(ActorSimAttr attr, float val, int index)
Definition Actor.cpp:5186
void setAirbrakeIntensity(float intensity)
Definition Actor.cpp:2974
NodeNum_t ar_main_camera_node_pos
Sim attr; ar_camera_node_pos[0] >= 0 ? ar_camera_node_pos[0] : 0.
Definition Actor.h:476
bool getTractionControl()
Definition Actor.h:168
bool ar_nb_initialized
Definition Actor.h:580
Ogre::Vector3 getRotationCenter()
Definition Actor.cpp:1550
bool ar_is_police
Gfx/sfx attr.
Definition Actor.h:603
bool getSideLightsVisible() const
Definition Actor.h:251
int getCameraCount()
Definition Actor.h:182
std::vector< Airbrake * > ar_airbrakes
Definition Actor.h:403
void ResetAngle(float rot)
Definition Actor.cpp:1263
bool m_beam_break_debug_enabled
Logging state.
Definition Actor.h:755
bool ar_physics_paused
Actor physics individually paused by user.
Definition Actor.h:570
float ar_left_mirror_angle
Sim state; rear view mirror angle.
Definition Actor.h:511
AeroEnginePtr getTurbojet(int index)
Definition Actor.cpp:4784
int getShockNode2(int shock_number)
Definition Actor.cpp:5100
std::vector< float > ar_nodes_default_loadweights
'set_node_defaults': load weight.
Definition Actor.h:368
void CalcCabCollisions()
Definition Actor.cpp:2553
std::string getTruckName()
Definition Actor.h:301
Ogre::Timer ar_net_timer
Definition Actor.h:524
void toggleBlinkType(BlinkType blink)
Definition Actor.cpp:3289
float getShockSpringRate(int shock_number)
Definition Actor.cpp:5064
Ogre::Vector3 getPosition()
Definition Actor.cpp:370
bool m_tractioncontrol
GUI state.
Definition Actor.h:708
void toggleTransferCaseMode()
Definition Actor.cpp:1491
void ForceFeedbackStep(int steps)
Definition Actor.cpp:1837
bool ar_toggle_ropes
Sim state.
Definition Actor.h:607
float ar_hydro_dir_command
Definition Actor.h:498
Ogre::Vector3 getNodeForces(int nodeNumber)
Definition Actor.cpp:4890
NodeNum_t ar_camera_rail[MAX_CAMERARAIL]
Nodes defining camera-movement spline.
Definition Actor.h:438
void pushNetwork(char *data, int size)
Process incoming data; fills actor's data buffers and flips them. Called by the network thread....
Definition Actor.cpp:383
std::vector< float > ar_nb_optimum
Temporary storage of the optimum search result.
Definition Actor.h:581
int ar_buoycab_types[MAX_CABS]
Definition Actor.h:436
float m_fusealge_width
Physics attr; defined in truckfile.
Definition Actor.h:701
Airfoil * m_fusealge_airfoil
Physics attr; defined in truckfile.
Definition Actor.h:698
float ar_elevator
Sim state; aircraft elevator.
Definition Actor.h:513
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 o...
Definition Actor.h:412
void displayAxleDiffMode()
Cycles through the available inter axle diff modes.
Definition Actor.cpp:1423
void CalcShocks3(int i, Ogre::Real difftoBeamL, Ogre::Real &k, Ogre::Real &d, Ogre::Real v)
Definition Actor.cpp:2685
int m_net_color_num
Definition Actor.h:735
std::vector< authorinfo_t > getAuthors()
Definition Actor.cpp:4654
soundsource_t ar_soundsources[MAX_SOUNDSCRIPTS_PER_TRUCK]
Definition Actor.h:421
node_t * m_fusealge_front
Physics attr; defined in truckfile.
Definition Actor.h:699
std::vector< Ogre::Vector3 > ar_initial_node_positions
Absolute world positions, for resetting to pristine state.
Definition Actor.h:375
void ensureWorkingTuneupDef()
Creates a working tuneup def if it doesn't exist yet.
Definition Actor.cpp:5050
std::pair< float, float > ar_nb_wheels_d_interval
Search interval for springiness & damping of wheel / rim beams.
Definition Actor.h:593
void UpdatePhysicsOrigin()
Definition Actor.cpp:1250
void displayWheelDiffMode()
Cycles through the available inter wheel diff modes.
Definition Actor.cpp:1451
int ar_net_source_id
Unique ID of remote player who spawned this actor.
Definition Actor.h:521
bool ar_disable_aerodyn_turbulent_drag
Physics state.
Definition Actor.h:598
float ar_wheel_spin
Physics state; wheel speed in radians/s.
Definition Actor.h:496
void recalculateNodeMasses()
Definition Actor.cpp:701
std::vector< flare_t > ar_flares
Definition Actor.h:402
std::pair< float, float > ar_nb_beams_d_interval
Search interval for springiness & damping of regular beams.
Definition Actor.h:589
bool tc_mode
Enabled?
Definition Actor.h:545
std::vector< Ogre::Entity * > m_deletion_entities
For unloading vehicle; filled at spawn.
Definition Actor.h:664
std::unique_ptr< Buoyance > m_buoyance
Definition Actor.h:531
int getNodeCount()
Definition Actor.h:97
std::string m_net_username
Definition Actor.h:734
int ar_num_cabs
Definition Actor.h:429
bool getAntiLockBrake()
Definition Actor.h:169
bool alb_nodash
Anti-lock brake attribute: Hide the dashboard indicator?
Definition Actor.h:448
AeroEnginePtr getAircraftEngine(int index)
Definition Actor.cpp:4779
Ogre::Vector3 calculateCollisionOffset(Ogre::Vector3 direction)
Virtually moves the actor at most 'direction.length()' meters towards 'direction' trying to resolve a...
Definition Actor.cpp:992
void setHeadlightsVisible(bool val)
Definition Actor.h:254
int countFlaresByType(FlareType type)
Definition Actor.cpp:4750
bool sl_enabled
Speed limiter;.
Definition Actor.h:458
std::vector< std::string > getManagedMaterialNames()
Definition Actor.cpp:4832
unsigned long ar_net_last_update_time
Definition Actor.h:525
ExtCameraMode ar_extern_camera_mode
Definition Actor.h:460
float getAvgPropedWheelRadius()
Definition Actor.h:334
float ar_load_mass
User-defined (editable via NBUtil); from 'globals' arg#2 - only applies to nodes with 'l' flag.
Definition Actor.h:357
node_t * m_fusealge_back
Physics attr; defined in truckfile.
Definition Actor.h:700
float ar_right_mirror_angle
Sim state; rear view mirror angle.
Definition Actor.h:512
NodeNum_t ar_exhaust_dir_node
Old-format exhaust (one per vehicle) backwards direction node.
Definition Actor.h:463
void setSideLightsVisible(bool val)
Definition Actor.h:252
int ar_masscount
Calculated; Number of nodes loaded with l option.
Definition Actor.h:359
float getHeightAboveGround(bool skip_virtual_nodes=true)
Definition Actor.cpp:1594
void updateSoundSources()
Definition Actor.cpp:3404
bool m_blinker_right_lit
Blinking state of right turn signal.
Definition Actor.h:745
bool getCruiseControl()
Definition Actor.h:170
PointColDetector * m_inter_point_col_detector
Physics.
Definition Actor.h:670
float ar_hydro_elevator_command
Definition Actor.h:505
BitMask_t m_flaregroups_no_import
RoRnet::Lightmask.
Definition Actor.h:742
int m_stabilizer_shock_request
Physics state; values: { -1, 0, 1 }.
Definition Actor.h:689
void setSimAttribute(ActorSimAttr attr, float val)
HAZARDOUS - values may not be checked; Pay attention to 'safe values' at each attribute description.
Definition Actor.cpp:5132
AutopilotPtr getAutopilot()
Definition Actor.h:287
std::vector< RailGroup * > m_railgroups
all the available RailGroups for this actor
Definition Actor.h:663
Ogre::Vector3 getVelocity() const
Definition Actor.h:124
float m_handbrake_force
Physics attr; defined in truckfile.
Definition Actor.h:697
float ar_hydro_dir_state
Definition Actor.h:499
NodeNum_t ar_extern_camera_node
Definition Actor.h:461
bool ar_engine_hydraulics_ready
Sim state; does engine have enough RPM to power hydraulics?
Definition Actor.h:599
Ogre::Vector3 ar_origin
Physics state; base position for softbody nodes.
Definition Actor.h:473
float ar_guisettings_shifter_anim_time
Definition Actor.h:556
int getWheelDiffMode()
Writes info to console/notify box.
Definition Actor.h:199
int getInstanceId()
Definition Actor.h:306
ActorState ar_state
Definition Actor.h:567
float m_stabilizer_shock_sleep
Sim state.
Definition Actor.h:677
bool getCustomLightVisible(int number)
Definition Actor.cpp:4691
float ar_brake_force
Physics attr; filled at spawn.
Definition Actor.h:471
size_t m_net_wheel_buf_size
For incoming/outgoing traffic; calculated on spawn.
Definition Actor.h:728
std::unique_ptr< GfxActor > m_gfx_actor
Definition Actor.h:661
void RemoveInterActorBeam(beam_t *beam, ActorLinkingRequestType type)
Do not call directly - use MSG_SIM_ACTOR_LINKING_REQUESTED
Definition Actor.cpp:3541
void updateSlideNodePositions()
incrementally update the position of all SlideNodes
void sendStreamSetup()
Definition Actor.cpp:1996
Ogre::Vector3 getDirection()
average actor velocity, calculated using the actor positions of the last two frames
Definition Actor.cpp:365
float getLoadedMass()
Definition Actor.h:94
float getHeightAboveGroundBelow(float height, bool skip_virtual_nodes=true)
Definition Actor.cpp:1608
float getEventValue(int eventID, bool pure=false, InputSourceType valueSource=InputSourceType::IST_ANY)
Definition Actor.cpp:3015
NodeNum_t ar_exhaust_pos_node
Old-format exhaust (one per vehicle) emitter node.
Definition Actor.h:462
Ogre::Vector3 m_translation_request
Accumulator.
Definition Actor.h:577
size_t m_net_propanimkey_buf_size
For incoming/outgoing traffic; calculated on spawn.
Definition Actor.h:729
float tc_timer
Definition Actor.h:550
TransferCase * getTransferCaseMode()
Toggles between 2WD and 4WD mode.
Definition Actor.h:201
AeroEnginePtr ar_aeroengines[MAX_AEROENGINES]
Definition Actor.h:423
float ar_hydro_aileron_command
Definition Actor.h:501
std::string getTruckFileName()
Definition Actor.h:302
bool isBeingReset() const
Definition Actor.h:348
int ar_num_shocks
Number of shock absorbers.
Definition Actor.h:391
void setNodeMassOptions(int nodeNumber, bool loaded, bool overrideMass)
Definition Actor.cpp:4682
float m_avionic_chatter_timer
Sound fx state (some pseudo random number, doesn't matter)
Definition Actor.h:669
void forceAllFlaresOff()
Definition Actor.cpp:3220
float ar_total_mass
Calculated; total mass in Kg.
Definition Actor.h:360
void setLightStateMask(BitMask_t lightmask)
Does all the necessary toggling.
Definition Actor.cpp:3360
void applyNodeBeamScales()
For GUI::NodeBeamUtils.
Definition Actor.cpp:1814
void propagateNodeBeamChangesToDef()
Back-propagates changes done by N/B-utils UI to the def-document.
void HandleInputEvents(float dt)
Definition Actor.cpp:1949
Ogre::Vector3 getNodePosition(int nodeNumber)
Returns world position of node.
Definition Actor.cpp:4842
float ar_hydro_aileron_state
Definition Actor.h:502
int getAxleDiffMode()
Writes info to console/notify box.
Definition Actor.h:196
std::map< int, float > ar_actor_event_simulated_values
Definition Actor.h:491
int ar_num_aeroengines
Definition Actor.h:424
float ar_anim_shift_timer
For 'animator' with flag 'shifter'.
Definition Actor.h:451
void setForcedCinecam(CineCameraID_t cinecam_id, BitMask_t flags)
Definition Actor.cpp:5282
void WriteDiagnosticDump(std::string const &filename)
Definition Actor.cpp:4940
void SoftReset()
Definition Actor.cpp:1633
void wakeUp()
Definition Actor.cpp:2998
float alb_ratio
Anti-lock brake attribute: Regulating force.
Definition Actor.h:443
float cc_target_speed_lower_limit
Cruise Control.
Definition Actor.h:456
Ogre::MaterialPtr getManagedMaterialInstance(const std::string &orig_name)
Definition Actor.cpp:4823
float GetFFbHydroForces() const
Definition Actor.h:347
std::map< std::string, Ogre::MaterialPtr > ar_managed_materials
Definition Actor.h:414
void searchBeamDefaults()
Searches for more stable beam defaults.
Definition Actor.cpp:1858
int ar_num_beams
Definition Actor.h:384
float getShockVelocity(int shock_number)
Definition Actor.cpp:5082
void getNodeMassOptions(int nodeNumber, bool &loaded, bool &overrideMass)
Definition Actor.cpp:4902
void requestRotation(float rotation, Ogre::Vector3 center)
Definition Actor.h:120
std::vector< authorinfo_t > authors
Definition Actor.h:397
bool m_beam_deform_debug_enabled
Logging state.
Definition Actor.h:756
float getSteeringAngle()
Definition Actor.cpp:4649
PerVehicleCameraContext ar_camera_context
Definition Actor.h:539
int countCustomLights(int control_number)
Definition Actor.cpp:4733
std::vector< std::string > getDescription()
Definition Actor.cpp:4659
void UpdatePropAnimInputEvents()
Definition Actor.cpp:4998
void toggleAxleDiffMode()
Definition Actor.cpp:1415
bool isEventAnalog(int eventID)
Definition Actor.cpp:3109
ActorInstanceID_t ar_instance_id
Static attr; session-unique ID.
Definition Actor.h:464
void autoBlinkReset()
Resets the turn signal when the steering wheel is turned back.
Definition Actor.cpp:3331
void requestTranslation(Ogre::Vector3 translation)
Definition Actor.h:122
void muteAllSounds()
Definition Actor.cpp:4001
void setCustomLightVisible(int number, bool visible)
Definition Actor.cpp:4713
float ar_rudder
Sim state; aircraft rudder (boat rudders are controlled in RoR::Screwprop)
Definition Actor.h:514
ActorPtrVec ar_linked_actors
BEWARE: Includes indirect links, see DetermineLinkedActors(); Other actors linked using 'hooks/ties/r...
Definition Actor.h:568
std::vector< std::shared_ptr< Task > > m_flexbody_tasks
Gfx state.
Definition Actor.h:660
bool alb_notoggle
Anti-lock brake attribute: Disable in-game toggle?
Definition Actor.h:449
void SyncReset(bool reset_position)
this one should be called only synchronously (without physics running in background)
Definition Actor.cpp:1657
int getAircraftEngineCount()
Definition Actor.h:283
float ar_avg_wheel_speed
Physics state; avg wheel speed in m/s.
Definition Actor.h:497
std::vector< PropAnimKeyState > m_prop_anim_key_states
Definition Actor.h:712
bool m_has_axles_section
Temporary (legacy parsing helper) until central diffs are implemented.
Definition Actor.h:709
rotator_t * ar_rotators
Definition Actor.h:393
Ogre::Real ar_brake
Physics state; braking intensity.
Definition Actor.h:494
bool isPreloadedWithTerrain() const
Definition Actor.h:315
Ogre::Vector3 m_camera_gforces_accu
Accumulator for 'camera' G-forces.
Definition Actor.h:684
bool ar_minimass_skip_loaded_nodes
Definition Actor.h:378
std::string ar_filename
Attribute; filled at spawn.
Definition Actor.h:518
std::string * ar_nodes_name
Name in truck file, only if defined with 'nodes2'.
Definition Actor.h:367
void RequestUpdateHudFeatures()
Definition Actor.h:345
bool ar_cparticles_active
Gfx state.
Definition Actor.h:609
bool ShouldAllowNonSimulatedInputs()
Definition Actor.cpp:3098
float cc_target_rpm
Cruise Control.
Definition Actor.h:454
void CalcShocks2(int i, Ogre::Real difftoBeamL, Ogre::Real &k, Ogre::Real &d, Ogre::Real v)
Definition Actor.cpp:2574
void setEventSimulatedValue(int eventID, float value)
Definition Actor.cpp:3073
NodeNum_t ar_camera_node_pos[MAX_CAMERAS]
Physics attr; 'camera' = frame of reference; origin node.
Definition Actor.h:479
Ogre::Real m_min_camera_radius
Definition Actor.h:674
virtual ~Actor() override
Definition Actor.cpp:82
VehicleAIPtr getVehicleAI()
Definition Actor.h:282
Ogre::Vector3 getMaxGForces()
Definition Actor.h:131
int ar_num_cinecams
Sim attr;.
Definition Actor.h:469
bool getBeaconMode() const
Definition Actor.h:240
CacheEntryPtr m_used_actor_entry
Required.
Definition Actor.h:719
GfxFlaresMode m_flares_mode
Snapshot of cvar 'gfx_flares_mode' on spawn.
Definition Actor.h:740
collcab_rate_t ar_inter_collcabrate[MAX_CABS]
Definition Actor.h:432
TyrePressure & getTyrePressure()
Definition Actor.h:294
std::string m_section_config
Classic 'sectionconfig' in truck file.
Definition Actor.h:716
bool cc_mode
Cruise Control.
Definition Actor.h:452
bool isNodeWheelTire(int nodeNumber)
Is node marked as wheel tire? Note some wheel models use only tire nodes. See https://docs....
Definition Actor.cpp:4928
void CalcAnimators(hydrobeam_t const &hydrobeam, float &cstate, int &div)
Definition Actor.cpp:2164
float getEventSimulatedValue(int eventID)
Definition Actor.cpp:3061
Differential * m_wheel_diffs[MAX_WHEELS/2]
Physics.
Definition Actor.h:692
bool ar_hide_in_actor_list
Hide in list of spawned actors (available in top menubar). Useful for fixed-place machinery,...
Definition Actor.h:440
int getAircraftFlaps()
Definition Actor.h:115
void unmuteAllSounds()
Definition Actor.cpp:4015
std::deque< NetUpdate > m_net_updates
Incoming stream of NetUpdates.
Definition Actor.h:784
float alb_pulse_time
Anti-lock brake attribute;.
Definition Actor.h:446
int ar_cabs[MAX_CABS *3]
Definition Actor.h:427
void parkingbrakeToggle()
Definition Actor.cpp:3952
Ogre::Real getMinimalCameraRadius()
Definition Actor.cpp:4774
bool m_water_contact
Scripting state.
Definition Actor.h:751
int ar_num_collcabs
Definition Actor.h:434
float ar_hydro_rudder_command
Definition Actor.h:503
int ar_num_nodes
Definition Actor.h:380
void CalcAircraftForces(bool doUpdate)
Skidmark * m_skid_trails[MAX_WHEELS *2]
Definition Actor.h:706
bool tc_pulse_state
Definition Actor.h:547
std::vector< beam_t * > ar_inter_beams
Beams connecting 2 actors.
Definition Actor.h:389
float alb_minspeed
Anti-lock brake attribute;.
Definition Actor.h:444
float getMinCameraRadius()
Definition Actor.h:331
void CalcForcesEulerCompute(bool doUpdate, int num_steps)
Ogre::Quaternion ar_main_camera_dir_corr
Sim attr;.
Definition Actor.h:475
Ogre::Vector3 m_mouse_grab_pos
Definition Actor.h:680
std::pair< float, float > ar_nb_shocks_scale
Scales for springiness & damping of shock beams.
Definition Actor.h:587
std::string ar_guisettings_speedo_material
Used on 'renderdash'.
Definition Actor.h:558
bool m_has_command_beams
Physics attr;.
Definition Actor.h:753
void setBlinkType(BlinkType blink)
Definition Actor.cpp:3297
std::vector< std::string > m_description
Definition Actor.h:711
CineCameraID_t ar_forced_cinecam
Sim state; index of CineCam forced by script (CINECAMERAID_INVALID if not forced)
Definition Actor.h:540
std::string ar_guisettings_tacho_material
Used on 'renderdash'.
Definition Actor.h:557
ground_model_t * ar_last_fuzzy_ground_model
GUI state.
Definition Actor.h:528
bool m_blinker_autoreset
When true, we're steering and blinker will turn off automatically.
Definition Actor.h:743
VehicleAIPtr ar_vehicle_ai
Definition Actor.h:485
BitMask_t m_lightmask
RoRnet::Lightmask.
Definition Actor.h:741
float getTotalMass(bool withLocked=true)
Definition Actor.cpp:843
int getShockNode1(int shock_number)
Definition Actor.cpp:5091
float getShockDamping(int shock_number)
Definition Actor.cpp:5073
void scaleTruck(float value)
Definition Actor.cpp:315
float ar_anim_previous_crank
For 'animator' with flag 'torque'.
Definition Actor.h:442
std::string ar_guisettings_help_material
Used on 'renderdash'.
Definition Actor.h:559
void CalcTriggers(int i, Ogre::Real difftoBeamL, bool update_hooks)
Definition Actor.cpp:2717
Ogre::String getSectionConfig()
Definition Actor.h:305
std::string getTruckFileResourceGroup()
Definition Actor.cpp:5020
Ogre::Vector3 ar_fusedrag
Physics state.
Definition Actor.h:517
bool tc_notoggle
Disable in-game toggle?
Definition Actor.h:549
float ar_aileron
Sim state; aircraft aileron.
Definition Actor.h:515
EnginePtr getEngine()
Definition Actor.h:295
void HandleAngelScriptEvents(float dt)
Definition Actor.cpp:1846
int getShockCount()
Definition Actor.h:123
AutopilotPtr ar_autopilot
Definition Actor.h:470
float ar_scale
Physics state; scale of the actor (nominal = 1.0)
Definition Actor.h:493
float tc_ratio
Regulating force.
Definition Actor.h:544
float alb_timer
Anti-lock brake state;.
Definition Actor.h:450
void CalcTruckEngine(bool doUpdate)
bool hasSlidenodes()
Definition Actor.h:132
int ar_num_soundsources
Definition Actor.h:422
void resolveCollisions(Ogre::Vector3 direction)
Moves the actor at most 'direction.length()' meters towards 'direction' to resolve any collisions.
Definition Actor.cpp:1108
int ar_num_contacters
Total number of nodes which can selfcontact cabs.
Definition Actor.h:418
std::vector< hydrobeam_t > ar_hydros
Definition Actor.h:430
int ar_nodes_name_top_length
For nicely formatted diagnostic output.
Definition Actor.h:379
bool ar_rescuer_flag
Gameplay attr; defined in truckfile. TODO: Does anybody use this anymore?
Definition Actor.h:604
std::vector< std::pair< collision_box_t *, NodeNum_t > > m_active_eventboxes
Definition Actor.h:530
NodeNum_t ar_main_camera_node_dir
Sim attr; ar_camera_node_dir[0] >= 0 ? ar_camera_node_dir[0] : 0.
Definition Actor.h:477
Ogre::Vector3 GetCameraDir()
Definition Actor.h:341
std::vector< std::vector< int > > ar_node_to_node_connections
Definition Actor.h:410
int ar_num_cameras
Definition Actor.h:474
void calculateAveragePosition()
Definition Actor.cpp:1166
bool getFogLightsVisible() const
Definition Actor.h:257
std::pair< float, float > ar_nb_shocks_d_interval
Search interval for springiness & damping of shock beams.
Definition Actor.h:591
Ogre::Quaternion getOrientation()
Definition Actor.cpp:375
std::vector< hook_t > ar_hooks
Definition Actor.h:401
void UpdateBoundingBoxes()
Definition Actor.cpp:1201
bool ar_collision_relevant
Physics state;.
Definition Actor.h:602
void tractioncontrolToggle()
Definition Actor.cpp:3976
PointColDetector * m_intra_point_col_detector
Physics.
Definition Actor.h:671
int ar_num_wheels
Definition Actor.h:420
void setMass(float m)
Definition Actor.cpp:4664
float getNodeMass(int nodeNumber)
Definition Actor.cpp:4866
void AddInterActorBeam(beam_t *beam, ActorPtr other, ActorLinkingRequestType type)
Do not call directly - use MSG_SIM_ACTOR_LINKING_REQUESTED
Definition Actor.cpp:3500
void UpdateCruiseControl(float dt)
Defined in 'gameplay/CruiseControl.cpp'.
CacheEntryPtr m_used_skin_entry
Optional, only graphics.
Definition Actor.h:720
int m_previous_gear
Sim state; land vehicle shifting.
Definition Actor.h:696
std::pair< float, float > ar_nb_beams_k_interval
Search interval for springiness & damping of regular beams.
Definition Actor.h:590
ScrewpropPtr getScrewprop(int index)
Definition Actor.cpp:4810
float m_rotation_request
Accumulator.
Definition Actor.h:575
shock_t * ar_shocks
Shock absorbers.
Definition Actor.h:390
int m_net_first_wheel_node
Network attr; Determines data buffer layout; calculated on spawn.
Definition Actor.h:732
Ogre::Vector3 m_camera_local_gforces_cur
Physics state (camera local)
Definition Actor.h:686
CacheEntryPtr & getUsedActorEntry()
The actor entry itself.
Definition Actor.cpp:5025
Ogre::Vector3 GetCameraRoll()
Definition Actor.h:342
bool CalcForcesEulerPrepare(bool doUpdate)
bool tc_nodash
Hide the dashboard indicator?
Definition Actor.h:548
NodeNum_t ar_cinecam_node[MAX_CAMERAS]
Sim attr; Cine-camera node indexes.
Definition Actor.h:468
Ogre::Vector3 * ar_nodes_spawn_offsets
Relative positions (incl. Tuning system tweaks) from the definition file, for spawn-like resetting (i...
Definition Actor.h:370
bool alb_pulse_state
Anti-lock brake state;.
Definition Actor.h:447
Ogre::Vector3 m_avg_node_position
average node position
Definition Actor.h:673
bool getReverseLightVisible() const
Definition Actor.h:243
bool Intersects(ActorPtr actor, Ogre::Vector3 offset=Ogre::Vector3::ZERO)
Slow intersection test.
Definition Actor.cpp:926
void toggleCustomParticles()
Definition Actor.cpp:3393
CacheEntryPtrVec m_used_addonpart_entries
Optional, assigned by player via Tuning menu (.tuneup files).
Definition Actor.h:721
bool m_hud_features_ok
Gfx state; Are HUD features matching actor's capabilities?
Definition Actor.h:562
Ogre::Real ar_hydro_dir_wheel_display
Definition Actor.h:500
float m_avg_proped_wheel_radius
Physics attr, filled at spawn - Average proped wheel radius.
Definition Actor.h:668
size_t m_net_node_buf_size
For incoming/outgoing traffic; calculated on spawn.
Definition Actor.h:727
float getAirbrakeIntensity()
Definition Actor.h:114
int getTruckType()
Definition Actor.h:304
bool ar_hydro_speed_coupling_active
Definition Actor.h:600
void softRespawn(Ogre::Vector3 spawnpos, Ogre::Quaternion spawnrot)
Use MSG_SIM_MODIFY_ACTOR_REQUESTED with type SOFT_RESPAWN; Resets the actor to given position as if s...
Definition Actor.cpp:1376
void setFogLightsVisible(bool val)
Definition Actor.h:258
bool m_trigger_debug_enabled
Logging state.
Definition Actor.h:757
beam_t * ar_beams
Definition Actor.h:383
void DetermineLinkedActors()
Definition Actor.cpp:861
bool ar_trailer_parking_brake
Definition Actor.h:510
void reset(bool keep_position=false)
call this one to reset a truck from any context
Definition Actor.cpp:1622
int ar_num_buoycabs
Definition Actor.h:437
struct RoR::Actor::VehicleForceSensors m_force_sensors
Data for ForceFeedback devices.
bool ar_toggle_ties
Sim state.
Definition Actor.h:608
CacheEntryPtrVec m_used_assetpack_entries
Optional, specified by mod author in truck file via 'assetpacks' section.
Definition Actor.h:722
Ogre::Timer m_reset_timer
Definition Actor.h:683
int ar_collcabs[MAX_CABS]
Definition Actor.h:431
void setAircraftFlaps(int flapsLevel)
Definition Actor.cpp:2988
float getNodeInitialMass(int nodeNumber)
Definition Actor.cpp:4854
float getDryMass()
Definition Actor.h:93
int ar_nb_skip_steps
Amount of physics steps to be skipped before measuring.
Definition Actor.h:583
bool ar_has_active_shocks
Are there active stabilizer shocks?
Definition Actor.h:392
CacheEntryPtrVec & getUsedAssetpackEntries()
Definition Actor.cpp:5040
int ar_num_contactable_nodes
Total number of nodes which can contact ground or cabs.
Definition Actor.h:417
TuneupDefPtr m_working_tuneup_def
Each actor gets unique instance, even if loaded from .tuneup file in modcache.
Definition Actor.h:717
std::vector< float > ar_initial_node_masses
Definition Actor.h:374
void resetPosition(Ogre::Vector3 translation, bool setInitPosition)
Moves the actor to given world coords (pivot point is node 0).
Definition Actor.cpp:1351
TuneupDefPtr & getWorkingTuneupDef()
Definition Actor.cpp:5045
bool ar_guisettings_use_engine_max_rpm
Definition Actor.h:554
CollisionBoxPtrVec m_potential_eventboxes
Definition Actor.h:529
void CalcWheels(bool doUpdate, int num_steps)
bool getForcedCinecam(CineCameraID_t &cinecam_id, BitMask_t &flags)
Definition Actor.cpp:5293
float cc_target_speed
Cruise Control.
Definition Actor.h:455
bool isLocked()
Are hooks locked?
Definition Actor.cpp:4068
float sl_speed_limit
Speed limiter;.
Definition Actor.h:459
int ar_num_rotators
Definition Actor.h:394
Ogre::Vector3 m_avg_node_position_prev
Definition Actor.h:675
ActorType ar_driveable
Sim attr; marks vehicle type and features.
Definition Actor.h:466
int ar_net_stream_id
Definition Actor.h:522
void setLoadedMass(float m)
Definition Actor.cpp:4669
void setBeaconMode(bool val)
Definition Actor.h:259
Ogre::Vector3 getGForces()
Definition Actor.h:91
NodeNum_t ar_main_camera_node_roll
Sim attr; ar_camera_node_roll[0] >= 0 ? ar_camera_node_roll[0] : 0.
Definition Actor.h:478
AeroEnginePtr getTurboprop(int index)
Definition Actor.cpp:4797
bool cc_can_brake
Cruise Control.
Definition Actor.h:453
void cruisecontrolToggle()
Defined in 'gameplay/CruiseControl.cpp'.
float getIndexedSimAttribute(ActorSimAttr attr, int index)
Definition Actor.cpp:5259
std::vector< UniqueCommandKeyPair > ar_unique_commandkey_pairs
UI helper for displaying command control keys to user (must be built at spawn).
Definition Actor.h:415
bool ar_arcade_controls
Should we use arcade controls? This gets updated for the player actor according to 'io_arcade_control...
Definition Actor.h:610
bool getHeadlightsVisible() const
Definition Actor.h:253
Ogre::Vector3 m_rotation_request_center
Definition Actor.h:574
Builds and manages softbody actors (physics on background thread, networking)
Processes a RigDef::Document (parsed from 'truck' file format) into a simulated gameplay object (Acto...
Represents an airfoil http://en.wikipedia.org/wiki/Airfoil.
Definition Airfoil.h:32
For backwards compatibility of the 'triggers' feature, the commandkey array must support negative ind...
Definition SimData.h:632
Land vehicle feat Simulates tyre pressurization by adjusting springness of in-wheel beams.
std::vector< collision_box_t * > CollisionBoxPtrVec
Definition SimData.h:700
BlinkType
< Turn signal
Definition SimData.h:114
ActorType
< Aka 'Driveable'
Definition SimData.h:81
EngineTriggerType
Definition SimData.h:212
@ NOT_DRIVEABLE
not drivable at all
Definition SimData.h:84
InputSourceType
Definition InputEngine.h:67
static const float DEFAULT_COLLISION_RANGE
static const float DEFAULT_SPEEDO_MAX_KPH
ActorState
Definition SimData.h:239
@ LOCAL_SIMULATED
simulated (local) actor
std::shared_ptr< Document > DocumentPtr
static const NodeNum_t NODENUM_INVALID
std::vector< ActorPtr > ActorPtrVec
GfxFlaresMode
@ NONE
None (fastest)
int ActorInstanceID_t
Unique sequentially generated ID of an actor in session. Use ActorManager::GetActorById()
int CineCameraID_t
Index into Actor::ar_cinecam_node and Actor::ar_camera_node_* arrays; use RoR::CINECAMERAID_INVALID a...
ActorLinkingRequestType
Definition SimData.h:886
ActorSimAttr
Parameter to Actor::setSimAttribute() and Actor::setIndexedSimAttribute() (and their get counterparts...
Definition SimData.h:925
static const ActorInstanceID_t ACTORINSTANCEID_INVALID
std::vector< CacheEntryPtr > CacheEntryPtrVec
static const CineCameraID_t CINECAMERAID_INVALID
ExtCameraMode
int BuoyCachedNodeID_t
uint16_t NodeNum_t
Node position within Actor::ar_nodes; use RoR::NODENUM_INVALID as empty value.
@ LIGHTMASK_REVERSE
reverse light on
Definition RoRnet.h:121
@ LIGHTMASK_BEACONS
beacons on
Definition RoRnet.h:122
@ LIGHTMASK_BRAKES
brake lights on
Definition RoRnet.h:120
@ LIGHTMASK_FOGLIGHTS
Definition RoRnet.h:118
@ LIGHTMASK_HEADLIGHT
Definition RoRnet.h:116
@ LIGHTMASK_HIGHBEAMS
Definition RoRnet.h:117
@ LIGHTMASK_SIDELIGHTS
Definition RoRnet.h:119
std::vector< char > veh_state
Actor properties (engine, brakes, lights, ...)
Definition Actor.h:779
std::vector< char > node_data
Compressed node positions.
Definition Actor.h:780
std::vector< float > wheel_data
Wheel rotations.
Definition Actor.h:781
Ogre::Vector3 out_body_forces
Definition Actor.h:773
Ogre::Vector3 accu_body_forces
Definition Actor.h:771
Simulation: An edge in the softbody structure.
Definition SimData.h:305
Surface friction properties.
Definition SimData.h:704
< beams updating length based on simulation variables, generally known as actuators.
Definition SimData.h:571
Physics: A vertex in the softbody structure.
Definition SimData.h:260