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;
370 fresh_actor_seat_player =
true;
374 if (fresh_actor_seat_player)
420 fmt::format(
_LC(
"GameContext",
"Cannot reload '{}' ({}) - the associated modcache entry was deleted."),
428 srq->
asr_rotation = Ogre::Quaternion(Ogre::Degree(270) - Ogre::Radian(actor->
getRotation()), Ogre::Vector3::UNIT_Y);
484 actorx->hookToggle();
508 if (prev_player_actor && prev_player_actor->
ar_dashboard)
518 if (prev_player_actor)
530 if (prev_player_actor)
541 float rotation = prev_player_actor->
getRotation() - Ogre::Math::HALF_PI;
542 Ogre::Vector3 position = prev_player_actor->
getPosition();
546 Ogre::Vector3 l = position - 2.0f * prev_player_actor->
GetCameraRoll();
547 Ogre::Vector3 r = position + 2.0f * prev_player_actor->
GetCameraRoll();
550 position = std::abs(r.y - r_h) * 1.2f < std::abs(l.y - l_h) ? r : l;
555 if (player_character)
558 player_character->
setRotation(Ogre::Radian(rotation));
583 if (player_character)
619 ev_src_instance_name, box_name);
679 for (
int i = 0; i < actor->ar_num_nodes; i++)
717 bool spawn_now =
false;
769 if (!entry->
guid.empty())
782 default_skin_entry = res.cqr_entry;
784 if (!default_skin_entry)
787 fmt::format(
_L(
"Default skin '{}' for actor '{}' not found!"), entry->
default_skin, entry->
dname));
789 if (default_skin_entry && num_skins == 1)
797 default_skin_entry->
dname =
"Default skin";
798 default_skin_entry->
description =
"Original, unmodified skin";
857 Ogre::Degree spawn_rot(0.f);
902 for (
int i = 0; i < 100; i++)
929 std::vector<ActorPtr> actorsToBeamUp;
933 float src_agl = std::numeric_limits<float>::max();
934 float dst_agl = std::numeric_limits<float>::max();
935 for (
ActorPtr& actor : actorsToBeamUp)
937 for (
int i = 0; i < actor->ar_num_nodes; i++)
939 Ogre::Vector3 pos = actor->ar_nodes[i].AbsPosition;
946 translation += Ogre::Vector3::UNIT_Y * (std::max(0.0f, src_agl) - dst_agl);
948 for (
ActorPtr& actor : actorsToBeamUp)
950 actor->resetPosition(actor->ar_nodes[0].AbsPosition + translation,
false);
1043 Ogre::Vector3 position(Ogre::Vector3::ZERO);
1044 Ogre::Radian rotation(0);
1055 Ogre::String pos = Ogre::StringUtil::format(
"%8.3f, %8.3f, %8.3f" , position.x, position.y, position.z);
1056 Ogre::String rot = Ogre::StringUtil::format(
"% 6.1f, % 6.1f, % 6.1f", 0.0f, rotation.valueDegrees() , 0.0f);
1057 LOG(
"Position: " + pos +
", " + rot);
1085 float mindist = 1000.0;
1089 if (!actor->ar_driveable)
1093 LOG(
"cinecam missing, cannot enter the actor!");
1099 len = actor->ar_nodes[actor->ar_cinecam_node[0]].AbsPosition.distance(this->
GetPlayerCharacter()->getPosition() + Ogre::Vector3(0.0, 2.0, 0.0));
1104 nearest_actor = actor;
1115 if (this->
GetPlayerActor()->ar_nodes[0].Velocity.squaredLength() < 1.0f ||
1117 this->GetPlayerActor()->ar_driveable ==
AI)
1157 ActorPtr actor_to_reset_commandkeys;
1163 float min_squared_distance = std::numeric_limits<float>::max();
1166 float squared_distance = position.squaredDistance(actor->ar_nodes[0].AbsPosition);
1167 if (squared_distance < min_squared_distance)
1169 min_squared_distance = squared_distance;
1170 nearest_actor = actor;
1175 if (nearest_actor !=
nullptr &&
1191 if (eventVal != nearest_actor->
ar_command_key[i].playerInputValue
1219 if (actor_to_reset_commandkeys)
1223 actor_to_reset_commandkeys->
ar_command_key[i].playerInputValue = 0.f;
1225 actor_to_reset_commandkeys =
nullptr;
1231 if (
m_timer.getMilliseconds() > 1000)
1240 if (waypoint.
speed < 5)
1242 waypoint.
speed = -1;
1273 float time_factor = 1.0f;
1277 time_factor = 1000.0f;
1281 time_factor = 10000.0f;
1285 time_factor = -1000.0f;
1289 time_factor = -10000.0f;
1489 if (rescuer ==
nullptr)
1535 linked_actor->ar_physics_paused = !linked_actor->ar_physics_paused;
1611 else if (ref < value)
1626 float commandrate = 4.0;
1631 float sum_steer = -tmp_left + tmp_right;
1637 float sum_pitch = tmp_pitch_down - tmp_pitch_up;
1642 float sum_rudder = tmp_rudder_left - tmp_rudder_right;
1783 if (tmp_throttle > 0)
1862 float sum_steer = (tmp_steer_left - tmp_steer_right) * dt;
1864 if (fabs(sum_steer) > 0 && stime <= 0)
1874 sum_steer = (tmp_steer_left - tmp_steer_right);
1898#ifdef USE_ANGELSCRIPT
1921 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_)
void setHighBeamsVisible(bool val)
bool ar_import_commands
Sim state.
bool isEventDefined(int eventID)
bool getEventBoolValueBounce(int eventID, float time=0.2f)
int ar_airbrake_intensity
Physics state; values 0-5.
void toggleTransferCaseGearRatio()
bool ar_forward_commands
Sim state.
void toggleSlideNodeLock()
CacheEntryPtr & getUsedSkinEntry()
void antilockbrakeToggle()
bool hasEventSimulatedValue(int eventID)
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
Gfx state; Dashboard manager (HUD element manager)
void prepareInside(bool inside)
Prepares vehicle for in-cabin camera use.
void displayTransferCaseMode()
Gets the current transfer case mode name (4WD Hi, ...)
bool getEventBoolValue(int eventID)
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 getEventBounceTime(int eventID)
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; aircraft elevator.
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)
float getEventValue(int eventID, bool pure=false, InputSourceType valueSource=InputSourceType::IST_ANY)
AeroEnginePtr ar_aeroengines[MAX_AEROENGINES]
bool isBeingReset() const
void toggleAxleDiffMode()
bool isEventAnalog(int eventID)
ActorInstanceID_t ar_instance_id
Static attr; session-unique ID.
void setCustomLightVisible(int number, bool visible)
float ar_rudder
Sim state; aircraft rudder (boat rudders are controlled in RoR::Screwprop)
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; aircraft aileron.
AutopilotPtr ar_autopilot
void resolveCollisions(Ogre::Vector3 direction)
Moves the actor at most 'direction.length()' meters towards 'direction' to resolve any collisions.
bool ar_rescuer_flag
Gameplay attr; defined in truckfile. TODO: Does anybody use this anymore?
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()
bool ar_hydro_speed_coupling_active
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
bool IsHornButtonActive() 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)
void UpdateBoatInputEvents(float dt, ActorPtr boat)
void UpdateCommonInputEvents(float dt, ActorPtr actor)
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
Ogre::String m_last_section_config
void UpdateAirplaneInputEvents(float dt, ActorPtr airplane)
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 UpdateTruckInputEvents(float dt, ActorPtr truck)
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 SetVideoCamState(VideoCamState state)
void UpdateSimDataBuffer()
Copies sim. data from Actor to GfxActor for later update.
VideoCamState GetVideoCamState() const
void SetDebugView(DebugViewType dv)
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.
@ LOCAL_SCRIPT
Not actually connected to network, but running server script locally.
@ 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