120 Str<200> msg; msg <<
_L(
"Terrain not found: ") << filename_part;
131 std::string
const& filename = terrn_entry->
fname;
134 Ogre::DataStreamPtr stream = Ogre::ResourceGroupManager::getSingleton().openResource(filename);
135 LOG(
" ===== LOADING TERRAIN " + filename);
143 catch (Ogre::Exception& e)
150 for (std::string
const& assetpack_filename: terrn2->assetpack_files)
215 rq.
asr_rotation = Ogre::Quaternion(Ogre::Degree(180) - player_character->
getRotation(), Ogre::Vector3::UNIT_Y);
276 bool fresh_actor_seat_player =
false;
279 if (def->slide_nodes_connect_instantly)
289 fresh_actor_seat_player =
true;
303 fresh_actor_seat_player =
true;
355 fresh_actor_seat_player =
true;
359 if (fresh_actor_seat_player)
405 fmt::format(
_LC(
"GameContext",
"Cannot reload '{}' ({}) - the associated modcache entry was deleted."),
413 srq->
asr_rotation = Ogre::Quaternion(Ogre::Degree(270) - Ogre::Radian(actor->
getRotation()), Ogre::Vector3::UNIT_Y);
469 actorx->hookToggle();
493 if (prev_player_actor && prev_player_actor->
ar_dashboard)
503 if (prev_player_actor)
517 if (prev_player_actor)
528 float rotation = prev_player_actor->
getRotation() - Ogre::Math::HALF_PI;
529 Ogre::Vector3 position = prev_player_actor->
getPosition();
533 Ogre::Vector3 l = position - 2.0f * prev_player_actor->
GetCameraRoll();
534 Ogre::Vector3 r = position + 2.0f * prev_player_actor->
GetCameraRoll();
537 position = std::abs(r.y - r_h) * 1.2f < std::abs(l.y - l_h) ? r : l;
542 if (player_character)
545 player_character->
setRotation(Ogre::Radian(rotation));
572 if (player_character)
608 ev_src_instance_name, box_name);
668 for (
int i = 0; i < actor->ar_num_nodes; i++)
706 bool spawn_now =
false;
758 if (!entry->
guid.empty())
771 default_skin_entry = res.cqr_entry;
773 if (!default_skin_entry)
776 fmt::format(
_L(
"Default skin '{}' for actor '{}' not found!"), entry->
default_skin, entry->
dname));
778 if (default_skin_entry && num_skins == 1)
786 default_skin_entry->
dname =
"Default skin";
787 default_skin_entry->
description =
"Original, unmodified skin";
846 Ogre::Degree spawn_rot(0.f);
891 for (
int i = 0; i < 100; i++)
918 std::vector<ActorPtr> actorsToBeamUp;
922 float src_agl = std::numeric_limits<float>::max();
923 float dst_agl = std::numeric_limits<float>::max();
924 for (
ActorPtr& actor : actorsToBeamUp)
926 for (
int i = 0; i < actor->ar_num_nodes; i++)
928 Ogre::Vector3 pos = actor->ar_nodes[i].AbsPosition;
935 translation += Ogre::Vector3::UNIT_Y * (std::max(0.0f, src_agl) - dst_agl);
937 for (
ActorPtr& actor : actorsToBeamUp)
939 actor->resetPosition(actor->ar_nodes[0].AbsPosition + translation,
false);
1032 Ogre::Vector3 position(Ogre::Vector3::ZERO);
1033 Ogre::Radian rotation(0);
1044 Ogre::String pos = Ogre::StringUtil::format(
"%8.3f, %8.3f, %8.3f" , position.x, position.y, position.z);
1045 Ogre::String rot = Ogre::StringUtil::format(
"% 6.1f, % 6.1f, % 6.1f", 0.0f, rotation.valueDegrees() , 0.0f);
1046 LOG(
"Position: " + pos +
", " + rot);
1074 float mindist = 1000.0;
1078 if (!actor->ar_driveable)
1082 LOG(
"cinecam missing, cannot enter the actor!");
1088 len = actor->ar_nodes[actor->ar_cinecam_node[0]].AbsPosition.distance(this->
GetPlayerCharacter()->getPosition() + Ogre::Vector3(0.0, 2.0, 0.0));
1093 nearest_actor = actor;
1104 if (this->
GetPlayerActor()->ar_nodes[0].Velocity.squaredLength() < 1.0f ||
1106 this->GetPlayerActor()->ar_driveable ==
AI)
1146 ActorPtr actor_to_reset_commandkeys;
1152 float min_squared_distance = std::numeric_limits<float>::max();
1155 float squared_distance = position.squaredDistance(actor->ar_nodes[0].AbsPosition);
1156 if (squared_distance < min_squared_distance)
1158 min_squared_distance = squared_distance;
1159 nearest_actor = actor;
1164 if (nearest_actor !=
nullptr &&
1180 if (eventVal != nearest_actor->
ar_command_key[i].playerInputValue
1208 if (actor_to_reset_commandkeys)
1212 actor_to_reset_commandkeys->
ar_command_key[i].playerInputValue = 0.f;
1214 actor_to_reset_commandkeys =
nullptr;
1220 if (
m_timer.getMilliseconds() > 1000)
1229 if (waypoint.
speed < 5)
1231 waypoint.
speed = -1;
1262 float time_factor = 1.0f;
1266 time_factor = 1000.0f;
1270 time_factor = 10000.0f;
1274 time_factor = -1000.0f;
1278 time_factor = -10000.0f;
1473 if (actor->ar_rescuer_flag)
1478 if (rescuer ==
nullptr)
1598 else if (ref < value)
1614 float commandrate = 4.0;
1617 float sum_steer = -tmp_left + tmp_right;
1625 float sum_pitch = tmp_pitch_down - tmp_pitch_up;
1631 float sum_rudder = tmp_rudder_left - tmp_rudder_right;
1731 if (tmp_throttle > 0)
1818 float sum_steer = (tmp_steer_left - tmp_steer_right) * dt;
1820 if (fabs(sum_steer) > 0 && stime <= 0)
1830 sum_steer = (tmp_steer_left - tmp_steer_right);
1854#ifdef USE_ANGELSCRIPT
1877 float sum = -std::max(tmp_left_digital, tmp_left_analog) + std::max(tmp_right_digital, tmp_right_analog);
System integration layer; inspired by OgreBites::ApplicationContext.
#define ROR_ASSERT(_EXPR)
void LOG(const char *msg)
Legacy alias - formerly a macro.
#define BITMASK_IS_1(VAR, FLAGS)
A database of user-installed content alias 'mods' (vehicles, terrains...)
void smoothValue(float &ref, float value, float rate)
Game state manager and message-queue provider.
static const int MAX_CLIGHTS
See RoRnet::Lightmask and enum events in InputEngine.h.
static const int MAX_COMMANDS
maximum number of commands per actor
#define SOUND_TOGGLE(_ACTOR_, _TRIG_)
#define SOUND_START(_ACTOR_, _TRIG_)
#define SOUND_STOP(_ACTOR_, _TRIG_)
bool ar_hydro_speed_coupling
void setHighBeamsVisible(bool val)
bool ar_import_commands
Sim state.
int ar_airbrake_intensity
Physics state; values 0-5.
void toggleTransferCaseGearRatio()
bool ar_forward_commands
Sim state.
void toggleSlideNodeLock()
CacheEntryPtr & getUsedSkinEntry()
void antilockbrakeToggle()
CmdKeyArray ar_command_key
BEWARE: commandkeys are indexed 1-MAX_COMMANDS!
void hookToggle(int group=-1, ActorLinkingRequestType mode=ActorLinkingRequestType::HOOK_TOGGLE, NodeNum_t mousenode=NODENUM_INVALID, ActorInstanceID_t forceunlock_filter=ACTORINSTANCEID_INVALID)
DashBoardManagerPtr ar_dashboard
void prepareInside(bool inside)
Prepares vehicle for in-cabin camera use.
void displayTransferCaseMode()
Gets the current transfer case mode name (4WD Hi, ...)
float getWheelSpeed() const
float getMaxHeight(bool skip_virtual_nodes=true)
int ar_aerial_flap
Sim state; state of aircraft flaps (values: 0-5)
bool getHighBeamsVisible() const
float ar_sleep_counter
Sim state; idle time counter.
float getMinHeight(bool skip_virtual_nodes=true)
void toggleWheelDiffMode()
ScrewpropPtr ar_screwprops[MAX_SCREWPROPS]
void tieToggle(int group=-1, ActorLinkingRequestType mode=ActorLinkingRequestType::TIE_TOGGLE, ActorInstanceID_t forceunlock_filter=ACTORINSTANCEID_INVALID)
void setAirbrakeIntensity(float intensity)
Ogre::Vector3 getRotationCenter()
bool ar_is_police
Gfx/sfx attr.
bool getSideLightsVisible() const
bool ar_physics_paused
Actor physics individually paused by user.
float ar_left_mirror_angle
Sim state; rear view mirror angle.
void toggleBlinkType(BlinkType blink)
Ogre::Vector3 getPosition()
void toggleTransferCaseMode()
bool ar_toggle_ropes
Sim state.
float ar_hydro_dir_command
float ar_elevator
Sim state; aerial controller.
void displayAxleDiffMode()
Cycles through the available inter axle diff modes.
void displayWheelDiffMode()
Cycles through the available inter wheel diff modes.
int ar_net_source_id
Unique ID of remote player who spawned this actor.
void setHeadlightsVisible(bool val)
int countFlaresByType(FlareType type)
float ar_right_mirror_angle
Sim state; rear view mirror angle.
void setSideLightsVisible(bool val)
bool getCustomLightVisible(int number)
float getHeightAboveGroundBelow(float height, bool skip_virtual_nodes=true)
AeroEnginePtr ar_aeroengines[MAX_AEROENGINES]
bool isBeingReset() const
void toggleAxleDiffMode()
ActorInstanceID_t ar_instance_id
Static attr; session-unique ID.
void setCustomLightVisible(int number, bool visible)
float ar_rudder
Sim state; aerial/marine controller.
ActorPtrVec ar_linked_actors
BEWARE: Includes indirect links, see DetermineLinkedActors(); Other actors linked using 'hooks/ties/r...
void SyncReset(bool reset_position)
this one should be called only synchronously (without physics running in background)
Ogre::Real ar_brake
Physics state; braking intensity.
TyrePressure & getTyrePressure()
void parkingbrakeToggle()
float getMinCameraRadius()
VehicleAIPtr ar_vehicle_ai
Ogre::String getSectionConfig()
float ar_aileron
Sim state; aerial controller.
AutopilotPtr ar_autopilot
void resolveCollisions(Ogre::Vector3 direction)
Moves the actor at most 'direction.length()' meters towards 'direction' to resolve any collisions.
bool getFogLightsVisible() const
void tractioncontrolToggle()
CacheEntryPtr & getUsedActorEntry()
The actor entry itself.
Ogre::Vector3 GetCameraRoll()
NodeNum_t ar_cinecam_node[MAX_CAMERAS]
Sim attr; Cine-camera node indexes.
void toggleCustomParticles()
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...
void setFogLightsVisible(bool val)
bool ar_trailer_parking_brake
bool ar_toggle_ties
Sim state.
TuneupDefPtr & getWorkingTuneupDef()
ActorType ar_driveable
Sim attr; marks vehicle type and features.
void cruisecontrolToggle()
Defined in 'gameplay/CruiseControl.cpp'.
bool getHeadlightsVisible() const
ActorPtrVec & GetActors()
void UpdateSleepingState(ActorPtr player_actor, float dt)
RigDef::DocumentPtr FetchActorDef(RoR::ActorSpawnRequest &rq)
void RestoreSavedState(ActorPtr actor, rapidjson::Value const &j_entry)
void DeleteActorInternal(ActorPtr actor)
Do not call directly; use GameContext::DeleteActor()
const ActorPtr & FetchNextVehicleOnList(ActorPtr player, ActorPtr prev_player)
const ActorPtr & FetchPreviousVehicleOnList(ActorPtr player, ActorPtr prev_player)
ActorPtr FindActorInsideBox(Collisions *collisions, const Ogre::String &inst, const Ogre::String &box)
void UpdateActors(ActorPtr player_actor)
const ActorPtr & GetActorById(ActorInstanceID_t actor_id)
ActorPtr CreateNewActor(ActorSpawnRequest rq, RigDef::DocumentPtr def)
std::vector< ActorPtr > GetLocalActors()
virtual void toggleReverse()=0
virtual void setThrottle(float val)=0
virtual void flipStart()=0
virtual float getThrottle()=0
RoR::ForceFeedback & GetForceFeedback()
float getThrottle(float thrtl, float dt)
void setStr(std::string const &str)
Terrn2DocumentPtr terrn2_def
Cached terrain definition document.
std::vector< Ogre::String > sectionconfigs
Ogre::String fname
filename
Ogre::String dname
name parsed from the file
SkinDocumentPtr skin_def
Cached skin info, added on first use or during cache rebuild.
TuneupDefPtr tuneup_def
Cached tuning info, added on first use or during cache rebuild.
bool deleted
is this mod deleted?
Ogre::String guid
global unique id; Type "addonpart" leaves this empty and uses addonpart_guids; Always lowercase.
void LoadAssetPack(CacheEntryPtr &t_dest, Ogre::String const &assetpack_filename)
Adds asset pack to the requesting cache entry's resource group.
CacheEntryPtr FindEntryByFilename(RoR::LoaderType type, bool partial, const std::string &_filename_maybe_bundlequalified)
Returns NULL if none found; "Bundle-qualified" format also specifies the ZIP/directory in modcache,...
size_t Query(CacheQuery &query)
void LoadResource(CacheEntryPtr &t)
Loads the associated resource bundle if not already done.
void NotifyVehicleChanged(ActorPtr new_vehicle)
void UpdateInputEvents(float dt)
Ogre::SceneNode * GetCameraNode()
Ogre::Camera * GetCamera()
Character * CreateLocalCharacter()
void UndoRemoteActorCoupling(ActorPtr actor)
Character * GetLocalCharacter()
void setPosition(Ogre::Vector3 position)
Ogre::Vector3 getPosition()
void setRotation(Ogre::Radian rotation)
void SetActorCoupling(bool enabled, ActorPtr actor)
Ogre::Radian getRotation() const
collision_box_t * getBox(const Ogre::String &inst, const Ogre::String &box)
float getSurfaceHeightBelow(float x, float z, float height)
Ogre::Vector3 getPosition(const Ogre::String &inst, const Ogre::String &box)
Ogre::Quaternion getDirection(const Ogre::String &inst, const Ogre::String &box)
float getSurfaceHeight(float x, float z)
bool isInside(Ogre::Vector3 pos, const Ogre::String &inst, const Ogre::String &box, float border=0)
@ CONSOLE_MSGTYPE_ACTOR
Parsing/spawn/simulation messages for actors.
@ CONSOLE_MSGTYPE_INFO
Generic message.
void putMessage(MessageArea area, MessageType type, std::string const &msg, std::string icon="")
void setVisible3d(bool visibility)
void autoShiftSet(int mode)
void UpdateInputEvents(float dt)
void setAutoMode(SimGearboxMode mode)
void AnalyzeFlexbodies()
populates the combobox
void SetVisible(bool visible)
void Show(LoaderType type, std::string const &filter_guid="", CacheEntryPtr advertised_entry=nullptr)
void SetVisible(bool visible)
CommandkeyID_t GetActiveCommandKey() const
GUI::RepositorySelector RepositorySelector
GUI::MultiplayerSelector MultiplayerSelector
GUI::MainSelector MainSelector
GUI::GameSettings GameSettings
GUI::VehicleInfoTPanel VehicleInfoTPanel
GUI::TopMenubar TopMenubar
void ShowMessageBox(const char *title, const char *text, bool allow_close=true, const char *btn1_text="OK", const char *btn2_text=nullptr)
GUI::FrictionSettings FrictionSettings
GUI::GameControls GameControls
GUI::FlexbodyDebug FlexbodyDebug
void SetPrevPlayerActor(ActorPtr actor)
Message * m_msg_chain_end
ActorPtr m_last_spawned_actor
Last actor spawned by user and still alive.
void UpdateGlobalInputEvents()
ActorPtr SpawnActor(ActorSpawnRequest &rq)
ActorPtr FindActorByCollisionBox(std::string const &ev_src_instance_name, std::string const &box_name)
void UpdateSkyInputEvents(float dt)
ActorSpawnRequest m_current_selection
Context of the loader UI.
const ActorPtr & FetchNextVehicleOnList()
ActorPtr m_player_actor
Actor (vehicle or machine) mounted and controlled by player.
void OnLoaderGuiApply(RoR::LoaderType type, CacheEntryPtr entry, std::string sectionconfig)
GUI callback.
const ActorPtr & FetchPrevVehicleOnList()
CacheEntryPtr m_last_skin_selection
CharacterFactory m_character_factory
Character * GetPlayerCharacter()
const ActorPtr & GetPlayerActor()
void ShowLoaderGUI(int type, const Ogre::String &instance, const Ogre::String &box)
ActorManager m_actor_manager
void UpdateTruckInputEvents(float dt)
Ogre::String m_last_section_config
void UpdateCommonInputEvents(float dt)
CacheEntryPtr m_last_tuneup_selection
void ChangePlayerActor(ActorPtr actor)
void PushMessage(Message m)
Doesn't guarantee order! Use ChainMessage() if order matters.
void SpawnPreselectedActor(std::string const &preset_vehicle, std::string const &preset_veh_config)
needs Character to exist
bool LoadTerrain(std::string const &filename_part)
CacheEntryPtr m_dummy_cache_selection
void CreatePlayerCharacter()
Terrain must be loaded.
ActorPtr m_actor_remotely_receiving_commands
Actor close enough to import command keys.
void UpdateSimInputEvents(float dt)
void ChainMessage(Message m)
Add to last pushed message's chain.
void DeleteActor(ActorPtr actor)
void ModifyActor(ActorModifyRequest &rq)
void TeleportPlayer(float x, float z)
void UpdateBoatInputEvents(float dt)
ActorPtr m_prev_player_actor
Previous actor (vehicle or machine) mounted and controlled by player.
ActorManager * GetActorManager()
CacheEntryPtr m_last_cache_selection
Vehicle/load.
void OnLoaderGuiCancel()
GUI callback.
void UpdateAirplaneInputEvents(float dt)
void SetVideoCamState(VideoCamState state)
void UpdateSimDataBuffer()
Copies sim. data from Actor to GfxActor for later update.
void SetRenderdashActive(bool active)
VideoCamState GetVideoCamState() const
DebugViewType GetDebugView() const
void UpdateEnvMap(Ogre::Vector3 center, GfxActor *gfx_actor, bool full=false)
void ForceUpdateSingleGfxActor(RoR::GfxActor *gfx_actor)
void RemoveGfxActor(RoR::GfxActor *gfx_actor)
GameContextSB & GetSimDataBuffer()
RoRnet::UserInfo GetLocalUserData()
void showDashboardOverlays(bool show, ActorPtr actor)
void setRudder(float val)
void setThrottle(float val)
Wrapper for classic c-string (local buffer) Refresher: strlen() excludes '\0' terminator; strncat() A...
const char * ToCStr() const
SkyXManager * getSkyXManager()
Ogre::Vector3 getMaxTerrainSize()
bool HasPredefinedActors()
SkyManager * getSkyManager()
float getHeightAt(float x, float z)
Collisions * GetCollisions()
Ogre::Vector3 getSpawnPos()
Terrn2DocumentPtr GetDef()
Terrn2DocumentPtr LoadTerrn2(Ogre::DataStreamPtr &ds)
void UpdateInputEvents(float dt)
bool isActive()
Returns the status of the AI.
void setTimeMultiplier(const Ogre::Real &TimeMultiplier)
Set time multiplier.
@ TRUCK
its a truck (or other land vehicle)
@ NOT_DRIVEABLE
not drivable at all
@ AIRPLANE
its an airplane
@ AI
machine controlled by an Artificial Intelligence
@ VCSTATE_ENABLED_OFFLINE
@ MSG_GUI_OPEN_MENU_REQUESTED
@ MSG_GUI_CLOSE_MENU_REQUESTED
@ MSG_SIM_PAUSE_REQUESTED
@ MSG_SIM_UNPAUSE_REQUESTED
@ MSG_SIM_HIDE_NET_ACTOR_REQUESTED
Payload = ActorPtr* (owner)
@ MSG_GUI_REFRESH_TUNING_MENU_REQUESTED
@ MSG_APP_DISPLAY_WINDOWED_REQUESTED
@ MSG_EDI_ENTER_TERRN_EDITOR_REQUESTED
@ MSG_SIM_ACTOR_LINKING_REQUESTED
Payload = RoR::ActorLinkingRequest* (owner)
@ MSG_SIM_SPAWN_ACTOR_REQUESTED
Payload = RoR::ActorSpawnRequest* (owner)
@ MSG_GUI_OPEN_SELECTOR_REQUESTED
Payload = LoaderType* (owner), Description = GUID | empty.
@ MSG_SIM_SEAT_PLAYER_REQUESTED
Payload = RoR::ActorPtr (owner) | nullptr.
@ MSG_APP_SHUTDOWN_REQUESTED
@ MSG_APP_DISPLAY_FULLSCREEN_REQUESTED
@ MSG_SIM_MUTE_NET_ACTOR_REQUESTED
Payload = ActorPtr* (owner)
@ MSG_EDI_MODIFY_PROJECT_REQUESTED
Payload = RoR::UpdateProjectRequest* (owner)
@ MSG_SIM_DELETE_ACTOR_REQUESTED
Payload = RoR::ActorPtr* (owner)
@ MSG_SIM_MODIFY_ACTOR_REQUESTED
Payload = RoR::ActorModifyRequest* (owner)
@ MSG_APP_SCREENSHOT_REQUESTED
@ MSG_EDI_RELOAD_BUNDLE_REQUESTED
Payload = RoR::CacheEntryPtr* (owner)
@ LOCAL_SIMULATED
simulated (local) actor
@ LOCAL_SLEEPING
sleeping (local) actor
@ NETWORKED_OK
not simulated (remote) actor
@ NETWORKED_HIDDEN
not simulated, not updated (remote)
void TRIGGER_EVENT_ASYNC(scriptEvents type, int arg1, int arg2ex=0, int arg3ex=0, int arg4ex=0, std::string arg5ex="", std::string arg6ex="", std::string arg7ex="", std::string arg8ex="")
Asynchronously (via MSG_SIM_SCRIPT_EVENT_TRIGGERED) invoke script function eventCallbackEx(),...
std::shared_ptr< Document > DocumentPtr
AppContext * GetAppContext()
CVar * gfx_sky_time_cycle
OverlayWrapper * GetOverlayWrapper()
InputEngine * GetInputEngine()
CVar * gfx_sky_time_speed
CameraManager * GetCameraManager()
CVar * diag_preset_spawn_pos
GUIManager * GetGuiManager()
GameContext * GetGameContext()
CVar * sim_tuning_enabled
CVar * sim_soft_reset_mode
CVar * cli_preset_spawn_pos
CVar * diag_preset_spawn_rot
CacheSystem * GetCacheSystem()
CVar * diag_preset_veh_enter
CVar * cli_preset_spawn_rot
static const NodeNum_t NODENUM_INVALID
void Log(const char *msg)
The ultimate, application-wide logging function. Adds a line (any length) in 'RoR....
LoaderType
< Search mode for ModCache::Query() & Operation mode for GUI::MainSelector
@ TUNEUP_USE_ADDONPART_SET
'subject' is addonpart filename.
std::shared_ptr< Terrn2Document > Terrn2DocumentPtr
void LogFormat(const char *format,...)
Improved logging utility. Uses fixed 2Kb buffer.
RefCountingObjectPtr< Actor > ActorPtr
@ SE_TRUCK_TELEPORT
triggered when the user teleports the truck, the argument refers to the actor ID of the vehicle
@ SE_TRUCK_EXIT
triggered when switching from vehicle mode to person mode, the argument refers to the actor ID of the...
@ SE_TRUCK_ENTER
triggered when switching from person mode to vehicle mode, the argument refers to the actor ID of the...
@ SE_GENERIC_DELETED_TRUCK
triggered when the user deletes an actor, the argument refers to the actor ID
@ CAELUM
Caelum (best looking, slower)
@ SKYX
SkyX (best looking, slower)
std::string tryConvertUTF(const char *buffer)
RefCountingObjectPtr< CacheEntry > CacheEntryPtr
static const CommandkeyID_t COMMANDKEYID_INVALID
@ PEEROPT_HIDE_ACTORS
Spawn actors hidden and immediatelly hide existing actors.
@ PEEROPT_MUTE_ACTORS
Spawn actors muted and immediatelly mute existing actors.
Estabilishing a physics linkage between 2 actors modifies a global linkage table and triggers immedia...
ActorLinkingRequestType alr_type
ActorInstanceID_t alr_actor_instance_id
ActorInstanceID_t amr_actor
Ogre::Quaternion amr_softrespawn_rotation
Rotation to use with SOFT_RESPAWN; use TObjParser::CalcRotation() to calculate quaternion from XYZ li...
Ogre::Vector3 amr_softrespawn_position
Position to use with SOFT_RESPAWN.
std::shared_ptr< rapidjson::Document > amr_saved_state
@ RELOAD
Full reload from filesystem, requested by user.
@ SOFT_RESPAWN
Like hard reset, but positions the actor like spawn process does - using the relative positions from ...
@ REFRESH_VISUALS
Forces a synchronous update of visuals from any context - i.e. from terrain editor mode or with sleep...
std::string asr_net_username
CacheEntryPtr asr_cache_entry
Optional, overrides 'asr_filename' and 'asr_cache_entry_num'.
TuneupDefPtr asr_working_tuneup
Only filled when editing tuneup via Tuning menu.
bool asr_terrn_machine
This is a fixed machinery.
Ogre::Vector3 asr_position
CacheEntryPtr asr_skin_entry
std::string asr_filename
Can be in "Bundle-qualified" format, i.e. "mybundle.zip:myactor.truck".
Ogre::Quaternion asr_rotation
@ CONFIG_FILE
'Preselected vehicle' in RoR.cfg or command line
@ NETWORK
Remote controlled.
@ USER
Direct selection by user via GUI.
@ SAVEGAME
User spawned and part of a savegame.
@ TERRN_DEF
Preloaded with terrain.
BitMask_t asr_net_peeropts
RoRnet::PeerOptions to be applied after spawn.
collision_box_t * asr_spawnbox
CacheEntryPtr asr_tuneup_entry
Only filled when user selected a saved/downloaded .tuneup mod in SelectorUI.
std::shared_ptr< rapidjson::Document > asr_saved_state
Pushes msg MODIFY_ACTOR (type RESTORE_SAVED) after spawn.
std::string cqy_filter_guid
Exact match (case-insensitive); leave empty to disable.
std::vector< CacheQueryResult > cqy_results
RoR::LoaderType cqy_filter_type
ActorPtr simbuf_player_actor
Unified game event system - all requests and state changes are reported using a message.
std::vector< Message > chain
Posted after the message is processed.
ModifyProjectRequestType mpr_type
ActorPtr mpr_target_actor
Ogre::Vector3 AbsPosition
absolute position in the world (shaky)
char username[RORNET_MAX_USERNAME_LEN]
the nickname of the user (UTF-8)
int32_t colournum
colour set by server