Rigs of Rods 2023.09
Soft-body Physics Simulation
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches
InputEngine.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 2013-2023 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
26
27#pragma once
28
29#include "Application.h"
30#include "ForceFeedback.h"
31
32#include "OISEvents.h"
33#include "OISForceFeedback.h"
34#include "OISInputManager.h"
35#include "OISJoyStick.h"
36#include "OISKeyboard.h"
37#include "OISMouse.h"
38
39#define MAX_JOYSTICKS 10
40#define MAX_JOYSTICK_POVS 4
41#define MAX_JOYSTICK_SLIDERS 4
42#define MAX_JOYSTICK_AXIS 32
43
44namespace RoR {
45
48
65
67{
68 IST_ANY,
71};
72
74{
75 // has to start at zero, since we iterate over it at times
295
372
373 // Savegames
384
395
397
403
404 // the end, DO NOT MODIFY
409
411{
412 Ogre::String name;
414 Ogre::String defaultKey;
415 std::string description;
416};
417
419{
420 // general
423 // keyboard
426 bool ctrl;
427 bool shift;
428 bool alt;
429 //mouse
431 //joystick buttons
434 // joystick axis
442
443 // POVs
446
447 // Sliders
451
452 //others
453 char configline[256];
454 char group[128];
455 char tmp_eventname[128];
456 char comments[1024];
457};
458
461{
462public:
463 typedef std::vector<event_trigger_t> TriggerVec;
464 typedef std::map<int, TriggerVec> EventMap;
465
466 static const std::string DEFAULT_MAPFILE;
467 static const int DEFAULT_MAPFILE_DEVICEID = -1;
468 static const int BUILTIN_MAPPING_DEVICEID = -2;
469
470 InputEngine();
471 ~InputEngine();
472
475 void SetKeyboardListener(OIS::KeyListener* obj);
476 OIS::Keyboard* GetOisKeyboard() { return mKeyboard; }
477 void SetMouseListener(OIS::MouseListener* obj);
478 void SetJoystickListener(OIS::JoyStickListener* obj);
479 void destroy();
481
484 void Capture();
485 void updateKeyBounces(float dt);
486 void processMouseMotionEvent(const OIS::MouseEvent& arg);
487 void processMousePressEvent(const OIS::MouseEvent& arg, OIS::MouseButtonID _id);
488 void processMouseReleaseEvent(const OIS::MouseEvent& arg, OIS::MouseButtonID _id);
489 void ProcessKeyPress(const OIS::KeyEvent& arg);
490 void ProcessKeyRelease(const OIS::KeyEvent& arg);
491 void ProcessJoystickEvent(const OIS::JoyStickEvent& arg);
493 void setEventSimulatedValue(events eventID, float value);
494 void setEventStatusSupressed(events eventID, bool supress);
496
499 Ogre::String getKeyForCommand(int eventID);
500 Ogre::String getModifierKeyName(OIS::KeyCode key);
501 Ogre::String getDeviceName(event_trigger_t const& evt);
502 Ogre::String getEventCommand(int eventID);
503 std::string getEventCommandTrimmed(int eventID);
504 Ogre::String getTriggerCommand(event_trigger_t const& evt);
505 Ogre::String getEventConfig(int eventID);
506 Ogre::String getEventDefaultConfig(int eventID);
507 bool isEventDefined(int eventID);
508 int getKeboardKeyForCommand(int eventID);
509 int getJoyComponentCount(OIS::ComponentType type, int joystickNumber);
510 std::string getJoyVendor(int joystickNumber);
512 EventMap& getEvents() { return events; };
514
517 bool loadConfigFile(int deviceID = -1);
518 bool saveConfigFile(int deviceID = -1);
519 std::string const& getLoadedConfigFile(int deviceID = -1);
520 bool processLine(const char* line, int deviceID = -1);
523
526 void addEvent(int eventID, event_trigger_t& t);
527 void addEvent(int eventID);
528 void addEventDefault(int eventID, int deviceID = -1);
529 void updateEvent(int eventID, const event_trigger_t& t);
530 void eraseEvent(int eventID, const event_trigger_t* t);
531 void clearEvents(int eventID);
532 void clearEventsByDevice(int deviceID);
533 void clearAllEvents();
535
539 float getEventValue(int eventID, bool pure = false, InputSourceType valueSource = InputSourceType::IST_ANY);
540 bool getEventBoolValue(int eventID);
541 bool isEventAnalog(int eventID);
542 bool getEventBoolValueBounce(int eventID, float time = 0.2f);
543 float getEventBounceTime(int eventID);
544 bool isKeyDownEffective(OIS::KeyCode mod);
545 bool isKeyDownValueBounce(OIS::KeyCode mod, float time = 0.2f);
547
550 OIS::JoyStickState* getCurrentJoyState(int joystickNumber);
551 OIS::MouseState getMouseState();
552 bool isKeyDown(OIS::KeyCode mod);
553 int getCurrentKeyCombo(Ogre::String* combo);
554 int getCurrentJoyButton(int& joystickNumber, int& button);
555 int getCurrentPovValue(int& joystickNumber, int& pov, int& povdir);
556 Ogre::Vector2 getMouseNormalizedScreenPos();
558
561 static const char* getEventTypeName(eventtypes type);
562 static int resolveEventName(Ogre::String eventName);
563 static Ogre::String eventIDToName(int eventID);
564 static Ogre::String eventIDToDescription(int eventID);
565 std::string getKeyNameForKeyCode(OIS::KeyCode keycode);
567
570 void windowResized(Ogre::RenderWindow* rw);
571 OIS::ForceFeedback* getForceFeedbackDevice() { return mForceFeedback; };
573
574protected:
575
576 //OIS Input devices
577 OIS::InputManager* mInputManager;
578 OIS::Mouse* mMouse;
579 OIS::Keyboard* mKeyboard;
580 OIS::JoyStick* mJoy[MAX_JOYSTICKS];
582 OIS::ForceFeedback* mForceFeedback;
584
585 // this stores the key/button/axis values
586 std::map<int, bool> keyState;
587 OIS::JoyStickState joyState[MAX_JOYSTICKS];
588 OIS::MouseState mouseState;
589
590 // define event aliases
591 std::map<int, std::vector<event_trigger_t>> events;
592 std::map<int, float> event_values_simulated;
593 std::map<int, float> event_times;
594 std::map<int, bool> event_states_supressed;
596 bool loadMapping(Ogre::String fileName, int deviceID);
597 bool saveMapping(Ogre::String fileName, int deviceID);
599
600 void initAllKeys();
601 void setup();
602 std::map<std::string, OIS::KeyCode> allkeys;
603 std::map<std::string, OIS::KeyCode>::iterator allit;
604
605 float deadZone(float axis, float dz);
606 float axisLinearity(float axisValue, float linearity);
607
608 float logval(float val);
609 std::string getEventGroup(Ogre::String eventName);
610 std::string composeEventConfigString(event_trigger_t const& trig);
611 std::string composeEventCommandString(event_trigger_t const& trig);
612
614
615 // OIS WORKAROUND: After a window focus is restored for the 2nd+ time, OIS delivers a fabricated 'LMB pressed' event,
616 // without ever sending matching 'LMB released', see analysis: https://github.com/RigsOfRods/rigs-of-rods/pull/3184#issuecomment-2380397463
617 // This has a very prominent negative effect, see https://github.com/RigsOfRods/rigs-of-rods/issues/2468
618 // There's no way to recognize the event as fake, we must track number of frames and LMB presses since last reset.
621};
622
624
625} // namespace RoR
Central state/object manager and communications hub.
#define MAX_JOYSTICKS
Definition InputEngine.h:39
Manages controller configuration, evaluates input events.
Ogre::String getEventConfig(int eventID)
std::map< std::string, OIS::KeyCode > allkeys
OIS::ForceFeedback * getForceFeedbackDevice()
std::string getEventCommandTrimmed(int eventID)
Omits 'EXPL' modifier.
std::string composeEventCommandString(event_trigger_t const &trig)
float getEventBounceTime(int eventID)
static const int DEFAULT_MAPFILE_DEVICEID
virtual device ID for "input.map" entries
std::string m_loaded_configs[MAX_JOYSTICKS]
int getCurrentJoyButton(int &joystickNumber, int &button)
void clearEventsByDevice(int deviceID)
Clears all bindings with given deviceID (-1 is no exception).
std::string composeEventConfigString(event_trigger_t const &trig)
Ogre::String getTriggerCommand(event_trigger_t const &evt)
std::map< std::string, OIS::KeyCode >::iterator allit
Ogre::String getDeviceName(event_trigger_t const &evt)
static const char * getEventTypeName(eventtypes type)
Enum to string helper.
int getCurrentPovValue(int &joystickNumber, int &pov, int &povdir)
bool isKeyDown(OIS::KeyCode mod)
Asks OIS directly.
static int resolveEventName(Ogre::String eventName)
std::map< int, float > event_values_simulated
float axisLinearity(float axisValue, float linearity)
std::map< int, bool > event_states_supressed
void SetKeyboardListener(OIS::KeyListener *obj)
std::map< int, float > event_times
static Ogre::String eventIDToDescription(int eventID)
void ProcessKeyRelease(const OIS::KeyEvent &arg)
OIS::Keyboard * GetOisKeyboard()
int getKeboardKeyForCommand(int eventID)
Returns -1 if not Keyboard.
EventMap & getEvents()
std::string const & getLoadedConfigFile(int deviceID=-1)
Returns filename from loadConfigFile() call.
int getJoyComponentCount(OIS::ComponentType type, int joystickNumber)
void clearEvents(int eventID)
Clears all bindings for given event.
void updateEvent(int eventID, const event_trigger_t &t)
bool loadMapping(Ogre::String fileName, int deviceID)
std::string getEventGroup(Ogre::String eventName)
void processMouseMotionEvent(const OIS::MouseEvent &arg)
void addEventDefault(int eventID, int deviceID=-1)
Adds a new trigger with builtin value for this event.
bool getEventBoolValue(int eventID)
Ogre::String getModifierKeyName(OIS::KeyCode key)
bool isEventDefined(int eventID)
OIS::Mouse * mMouse
void SetJoystickListener(OIS::JoyStickListener *obj)
bool loadConfigFile(int deviceID=-1)
Loads config file specific to a device and OS (or default config if deviceID is -1).
OIS::MouseState mouseState
bool saveConfigFile(int deviceID=-1)
Wites events with matching deviceID to loaded file with matching deviceID (or default file if deviceI...
bool saveMapping(Ogre::String fileName, int deviceID)
int getCurrentKeyCombo(Ogre::String *combo)
Returns number of non-modifier keys pressed (or modifier count as negative number).
OIS::JoyStickState joyState[MAX_JOYSTICKS]
void updateKeyBounces(float dt)
OIS::ForceFeedback * mForceFeedback
event_trigger_t newEvent()
size_t m_oisworkaround_frames_since_reset
size_t m_oisworkaround_lmbdowns_since_reset
OIS::MouseState getMouseState()
std::string getKeyNameForKeyCode(OIS::KeyCode keycode)
bool isKeyDownValueBounce(OIS::KeyCode mod, float time=0.2f)
void clearAllEvents()
Purges all configured bindings.
static Ogre::String eventIDToName(int eventID)
bool isKeyDownEffective(OIS::KeyCode mod)
Reads RoR internal buffer.
static const std::string DEFAULT_MAPFILE
= "input.map";
void ProcessJoystickEvent(const OIS::JoyStickEvent &arg)
void windowResized(Ogre::RenderWindow *rw)
void processMouseReleaseEvent(const OIS::MouseEvent &arg, OIS::MouseButtonID _id)
bool processLine(const char *line, int deviceID=-1)
void resetKeysAndMouseButtons()
void ProcessKeyPress(const OIS::KeyEvent &arg)
OIS::JoyStick * mJoy[MAX_JOYSTICKS]
float deadZone(float axis, float dz)
std::map< int, TriggerVec > EventMap
Ogre::String getEventDefaultConfig(int eventID)
void setEventSimulatedValue(events eventID, float value)
Ogre::String getKeyForCommand(int eventID)
void addEvent(int eventID, event_trigger_t &t)
Registers new trigger for this event.
void setEventStatusSupressed(events eventID, bool supress)
std::map< int, bool > keyState
Ogre::String getEventCommand(int eventID)
float logval(float val)
void eraseEvent(int eventID, const event_trigger_t *t)
OIS::Keyboard * mKeyboard
OIS::InputManager * mInputManager
std::vector< event_trigger_t > TriggerVec
Ogre::Vector2 getMouseNormalizedScreenPos()
Returns XY position in range from 0 (top/left) to 1 (bottom/right)
bool updateConfigline(event_trigger_t *t)
std::map< int, std::vector< event_trigger_t > > events
void SetMouseListener(OIS::MouseListener *obj)
static const int BUILTIN_MAPPING_DEVICEID
virtual device ID for builtin defaults
bool getEventBoolValueBounce(int eventID, float time=0.2f)
float getEventValue(int eventID, bool pure=false, InputSourceType valueSource=InputSourceType::IST_ANY)
valueSource: IST_ANY=digital and analog devices, IST_DIGITAL=only digital, IST_ANALOG=only analog
int free_joysticks
Number of detected game controllers.
bool isEventAnalog(int eventID)
std::string getJoyVendor(int joystickNumber)
OIS::JoyStickState * getCurrentJoyState(int joystickNumber)
void processMousePressEvent(const OIS::MouseEvent &arg, OIS::MouseButtonID _id)
const events EV_INVALID
InputSourceType
Definition InputEngine.h:67
eventtypes
Definition InputEngine.h:50
@ ET_END
Definition InputEngine.h:63
@ ET_MouseButton
Definition InputEngine.h:53
@ ET_JoystickAxisRel
Definition InputEngine.h:59
@ ET_MouseAxisX
Definition InputEngine.h:54
@ ET_JoystickPov
Definition InputEngine.h:60
@ ET_JoystickAxisAbs
Definition InputEngine.h:58
@ ET_JoystickSliderX
Definition InputEngine.h:61
@ ET_MouseAxisZ
Definition InputEngine.h:56
@ ET_JoystickSliderY
Definition InputEngine.h:62
@ ET_JoystickButton
Definition InputEngine.h:57
@ ET_Keyboard
Definition InputEngine.h:52
@ ET_NONE
Definition InputEngine.h:51
@ ET_MouseAxisY
Definition InputEngine.h:55
@ EV_BOAT_CENTER_RUDDER
center the rudder
@ EV_TRUCK_ACCELERATE
accelerate the truck
@ EV_AIRPLANE_THROTTLE
Definition InputEngine.h:93
@ EV_COMMON_TOGGLE_RESET_MODE
toggle truck reset truck mode (soft vs. hard)
@ EV_COMMANDS_01
Command 1.
@ EV_COMMANDS_73
Command 73.
@ EV_CAMERA_DOWN
@ EV_COMMON_REPLAY_BACKWARD
@ EV_COMMON_QUICKSAVE_08
@ EV_COMMANDS_62
Command 62.
@ EV_COMMON_ROPELOCK
connect hook node to a node in close proximity
@ EV_COMMANDS_10
Command 10.
@ EV_COMMANDS_66
Command 66.
@ EV_COMMANDS_43
Command 43.
@ EV_TRUCK_LIGHTTOGGLE02
toggle custom light 2
@ EV_TRUCK_TOGGLE_PHYSICS
toggle physics simulation
@ EV_MENU_RIGHT
select next category
@ EV_COMMON_ENTER_CHATMODE
enter the chat mode
@ EV_COMMON_FOV_MORE
increases the current FOV value
@ EV_TRUCK_HORN
truck horn
@ EV_COMMANDS_28
Command 28.
@ EV_TRUCK_MANUAL_CLUTCH_MODIFIER_50
manual clutch with 50 percent pedal input
@ EV_TRUCK_SHIFT_GEAR01
shift directly into this gear
@ EV_COMMON_SCREENSHOT_BIG
take a BIG screenshot
@ EV_TRUCK_SHIFT_MIDRANGE
select middle range (7-12) for H-shaft
@ EV_AIRPLANE_THROTTLE_FULL
full thrust
Definition InputEngine.h:96
@ EV_CAMERA_ZOOM_IN_FAST
zoom camera in faster
@ EV_TRUCK_TOGGLE_VIDEOCAMERA
toggle videocamera update
@ EV_AIRPLANE_THROTTLE_UP
increase the airplane thrust
Definition InputEngine.h:98
@ EV_CAMERA_ROTATE_LEFT
rotate camera left
@ EV_COMMANDS_46
Command 46.
@ EV_TRUCK_TOGGLE_TCASE_GEAR_RATIO
toggle the transfer case gear ratio
@ EV_COMMANDS_47
Command 47.
@ EV_COMMON_REPLAY_FORWARD
@ EV_TRUCK_SHIFT_GEAR10
shift directly into this gear
@ EV_AIRPLANE_BRAKE
normal brake for an aircraft.
Definition InputEngine.h:80
@ EV_CHARACTER_ROT_UP
@ EV_COMMON_QUICKSAVE
quicksave scene to the disk
@ EV_COMMON_TOGGLE_MAT_DEBUG
debug purpose - dont use (currently not used)
@ EV_SURVEY_MAP_CYCLE
cycle overview-map mode
@ EV_COMMON_QUICKSAVE_05
@ EV_COMMON_LOCK
connect hook node to a node in close proximity
@ EV_TRUCK_BLINK_RIGHT
toggle right direction indicator (blinker)
@ EV_COMMANDS_65
Command 65.
@ EV_COMMON_FOV_LESS
decreases the current FOV value
@ EV_AIRPLANE_THROTTLE_AXIS
throttle axis. Only use this if you have fitting hardware :) (i.e. a Slider)
Definition InputEngine.h:94
@ EV_COMMANDS_29
Command 29.
@ EV_TRUCK_TOGGLE_INTER_AXLE_DIFF
toggle the inter axle differential mode
@ EV_MENU_UP
select previous element in current category
@ EV_TRUCK_LEFT_MIRROR_LEFT
@ EV_TRUCK_LIGHTTOGGLE04
toggle custom light 4
@ EV_BOAT_THROTTLE_UP
increase throttle
@ EV_COMMANDS_25
Command 25.
@ EV_COMMON_ACCELERATE_SIMULATION
accelerate the simulation speed
@ EV_TRUCK_LIGHTTOGGLE08
toggle custom light 8
@ EV_TRUCK_SHIFT_HIGHRANGE
select high range (13-18) for H-shaft
@ EV_COMMANDS_53
Command 53.
@ EV_AIRPLANE_STEER_RIGHT
steer right
Definition InputEngine.h:92
@ EV_TRUCK_SHIFT_GEAR15
shift directly into this gear
@ EV_COMMON_QUICKLOAD_10
@ EV_AIRPLANE_AIRBRAKES_LESS
Definition InputEngine.h:77
@ EV_COMMON_OUTPUT_POSITION
write current position to log (you can open the logfile and reuse the position)
@ EV_COMMON_TOGGLE_TRUCK_FOG_LIGHTS
toggle truck fog lights (on/off); doesn't need low beams, doesn't use 't' lights.
@ EV_CAMERA_ZOOM_OUT_FAST
zoom camera out faster
@ EV_TRUCK_SHIFT_GEAR13
shift directly into this gear
@ EV_COMMON_QUICKLOAD_07
@ EV_SKY_INCREASE_TIME
increase day-time
@ EV_TRUCK_SHIFT_LOWRANGE
select low range (1-6) for H-shaft
@ EV_COMMANDS_34
Command 34.
@ EV_CAMERA_ROTATE_DOWN
rotate camera down
@ EV_AIRPLANE_PARKING_BRAKE
airplane parking brake.
Definition InputEngine.h:87
@ EV_BOAT_STEER_LEFT_AXIS
steer left (analog value!)
@ EV_COMMANDS_15
Command 15.
@ EV_TRUCK_MANUAL_CLUTCH_MODIFIER_25
manual clutch with 25 percent pedal input
@ EV_GRASS_MOST
EXPERIMENTAL: set maximum amount of grass.
@ EV_COMMON_REMOVE_CURRENT_TRUCK
remove current truck
@ EV_MODE_BEFORELAST
@ EV_COMMANDS_84
Command 84.
@ EV_COMMANDS_82
Command 82.
@ EV_CAMERA_RESET
reset the camera position
@ EV_COMMANDS_44
Command 44.
@ EV_TRUCK_SHIFT_GEAR17
shift directly into this gear
@ EV_COMMANDS_40
Command 40.
@ EV_TRUCK_BLINK_LEFT
toggle left direction indicator (blinker)
@ EV_COMMON_QUICKLOAD_04
@ EV_ROAD_EDITOR_POINT_SET_POS
@ EV_COMMON_QUICKLOAD_02
@ EV_COMMON_TOGGLE_TRUCK_HIGH_BEAMS
toggle truck high beams (on/off); doesn't need low beams, doesn't use 't' lights.
@ EV_CAMERA_ZOOM_OUT
zoom camera out
@ EV_TRUCK_AUTOSHIFT_UP
shift automatic transmission one gear up
@ EV_AIRPLANE_REVERSE
reverse the turboprops
Definition InputEngine.h:88
@ EV_TRUCK_ACCELERATE_MODIFIER_50
accelerate with 50 percent pedal input
@ EV_MENU_LEFT
select previous category
@ EV_COMMON_QUICKSAVE_07
@ EV_TRUCK_PARKING_BRAKE
toggle parking brake
@ EV_COMMANDS_42
Command 42.
@ EV_BOAT_THROTTLE_DOWN
decrease throttle
@ EV_TRUCK_SHIFT_GEAR16
shift directly into this gear
@ EV_TRUCK_LIGHTTOGGLE05
toggle custom light 5
@ EV_SURVEY_MAP_ZOOM_OUT
decrease survey map scale
@ EV_GRASS_NONE
EXPERIMENTAL: remove grass completely.
@ EV_COMMON_QUICKLOAD_03
@ EV_TRUCK_MANUAL_CLUTCH
manual clutch (for manual transmission)
@ EV_AIRPLANE_FLAPS_MORE
one step more flaps.
Definition InputEngine.h:85
@ EV_COMMANDS_63
Command 63.
@ EV_TRUCK_SHIFT_UP
shift one gear up in manual transmission mode
@ EV_ROAD_EDITOR_REBUILD_MESH
@ EV_AIRPLANE_TOGGLE_ENGINES
switch all engines on / off
Definition InputEngine.h:99
@ EV_BOAT_THROTTLE_AXIS
throttle axis. Only use this if you have fitting hardware :) (i.e. a Slider)
@ EV_COMMON_DECELERATE_SIMULATION
decelerate the simulation speed
@ EV_BOAT_STEER_RIGHT_AXIS
steer right (analog value!)
@ EV_COMMON_NETCHATDISPLAY
@ EV_CHARACTER_SIDESTEP_LEFT
sidestep to the left
@ EV_COMMON_QUICKLOAD_09
@ EV_COMMANDS_41
Command 41.
@ EV_COMMON_CONSOLE_TOGGLE
show / hide the console
@ EV_TRUCK_TOGGLE_CONTACT
toggle ignition
@ EV_COMMON_TOGGLE_PHYSICS
toggle physics on/off
@ EV_COMMANDS_12
Command 12.
@ EV_AIRPLANE_RUDDER_RIGHT
rudder right
Definition InputEngine.h:90
@ EV_TRUCK_LIGHTTOGGLE07
toggle custom light 7
@ EV_COMMON_QUICKSAVE_09
@ EV_COMMON_PRESSURE_LESS
decrease tire pressure (note: only very few trucks support this)
@ EV_TRUCK_TRACTION_CONTROL
toggle antilockbrake system
@ EV_COMMON_PRESSURE_MORE
increase tire pressure (note: only very few trucks support this)
@ EV_GRASS_SAVE
EXPERIMENTAL: save changes to the grass density image.
@ EV_AIRPLANE_FLAPS_NONE
no flaps.
Definition InputEngine.h:86
@ EV_COMMANDS_71
Command 71.
@ EV_COMMON_QUICKSAVE_06
@ EV_CHARACTER_RUN
let the character run
@ EV_COMMANDS_72
Command 72.
@ EV_BOAT_STEER_RIGHT
steer right a step
@ EV_COMMON_QUICKLOAD
quickload scene from the disk
@ EV_COMMANDS_23
Command 23.
@ EV_COMMANDS_04
Command 4.
@ EV_CHARACTER_RIGHT
rotate character right
@ EV_TRUCK_CRUISE_CONTROL_READJUST
match target speed / rpm with current truck speed / rpm
@ EV_AIRPLANE_ELEVATOR_DOWN
pull the elevator down in an aircraft.
Definition InputEngine.h:81
@ EV_COMMON_CYCLE_DEBUG_VIEWS
cycle debug view mode
@ EV_TRUCK_LIGHTTOGGLE10
toggle custom light 10
@ EV_CHARACTER_FORWARD
step forward with the character
@ EV_TRUCK_BLINK_WARN
toggle all direction indicators
@ EV_TRUCK_RIGHT_MIRROR_LEFT
@ EV_COMMON_RESET_SIMULATION_PACE
reset the simulation speed
@ EV_COMMANDS_17
Command 17.
@ EV_COMMANDS_52
Command 52.
@ EV_COMMON_TRUCK_INFO
toggle truck HUD
@ EV_COMMON_HIDE_GUI
hide all GUI elements
@ EV_TRUCK_CRUISE_CONTROL_DECL
decrease target speed / rpm
@ EV_COMMON_QUICKSAVE_01
@ EV_COMMANDS_70
Command 70.
@ EV_CAMERA_ROTATE_UP
rotate camera up
@ EV_COMMON_REPLAY_FAST_FORWARD
@ EV_COMMON_SCREENSHOT
take a screenshot
@ EV_COMMON_RESCUE_TRUCK
teleport to rescue truck
@ EV_COMMON_TOGGLE_DASHBOARD
display or hide the dashboard overlay
@ EV_TRUCK_AUTOSHIFT_DOWN
shift automatic transmission one gear down
@ EV_COMMANDS_51
Command 51.
@ EV_AIRPLANE_FLAPS_FULL
full flaps in an aircraft.
Definition InputEngine.h:83
@ EV_COMMON_QUICKLOAD_06
@ EV_CAMERA_ZOOM_IN
zoom camera in
@ EV_COMMANDS_50
Command 50.
@ EV_AIRPLANE_FLAPS_LESS
one step less flaps.
Definition InputEngine.h:84
@ EV_COMMANDS_08
Command 8.
@ EV_TRUCK_SHIFT_GEAR12
shift directly into this gear
@ EV_COMMON_SEND_CHAT
send the chat text
@ EV_COMMON_TOGGLE_STATS
toggle Ogre statistics (FPS etc.)
@ EV_COMMON_QUICKSAVE_02
@ EV_AIRPLANE_AIRBRAKES_MORE
Definition InputEngine.h:78
@ EV_CHARACTER_LEFT
rotate character left
@ EV_COMMANDS_48
Command 48.
@ EV_COMMON_SECURE_LOAD
tie a load to the truck
@ EV_COMMANDS_68
Command 68.
@ EV_COMMON_QUIT_GAME
exit the game
@ EV_COMMON_QUICKSAVE_10
@ EV_COMMANDS_77
Command 77.
@ EV_COMMANDS_83
Command 83.
@ EV_COMMON_QUICKLOAD_05
@ EV_COMMANDS_09
Command 9.
@ EV_TRUCK_TRAILER_PARKING_BRAKE
toggle trailer parking brake
@ EV_COMMANDS_79
Command 79.
@ EV_CHARACTER_JUMP
let the character jump
@ EV_SKY_DECREASE_TIME_FAST
decrease day-time a lot faster
@ EV_TRUCK_SHIFT_GEAR14
shift directly into this gear
@ EV_COMMANDS_45
Command 45.
@ EV_COMMANDS_59
Command 59.
@ EV_TRUCK_SHIFT_GEAR11
shift directly into this gear
@ EV_SURVEY_MAP_TOGGLE_ICONS
toggle map icons
@ EV_COMMON_NETCHATMODE
@ EV_AIRPLANE_THROTTLE_DOWN
decreases the airplane thrust
Definition InputEngine.h:95
@ EV_AIRPLANE_ELEVATOR_UP
pull the elevator up in an aircraft.
Definition InputEngine.h:82
@ EV_TRUCK_SHIFT_NEUTRAL
shift to neutral gear in manual transmission mode
@ EV_COMMON_QUICKSAVE_03
@ EV_COMMON_REPLAY_FAST_BACKWARD
@ EV_COMMON_GET_NEW_VEHICLE
get new vehicle
@ EV_MODE_LAST
@ EV_TRUCK_SWITCH_SHIFT_MODES
toggle between transmission modes
@ EV_SKY_DECREASE_TIME
decrease day-time
@ EV_TRUCK_STEER_LEFT
steer left
@ EV_COMMON_TRUCK_DESCRIPTION
toggle truck description
@ EV_SKY_INCREASE_TIME_FAST
increase day-time a lot faster
@ EV_GRASS_MORE
EXPERIMENTAL: add some grass.
@ EV_BOAT_STEER_LEFT
steer left a step
@ EV_COMMON_RESET_TRUCK
reset truck to original starting position
@ EV_COMMANDS_03
Command 3.
@ EV_COMMANDS_11
Command 11.
@ EV_COMMON_REPAIR_TRUCK
repair truck to original condition
@ EV_BOAT_REVERSE
no thrust
@ EV_COMMON_TOGGLE_TRUCK_BEACONS
toggle truck beacons
@ EV_COMMANDS_22
Command 22.
@ EV_COMMANDS_56
Command 56.
@ EV_COMMANDS_21
Command 21.
@ EV_COMMON_ENTER_PREVIOUS_TRUCK
enter previous truck
@ EV_CAMERA_UP
@ EV_COMMANDS_24
Command 24.
@ EV_COMMANDS_60
Command 50.
@ EV_COMMANDS_55
Command 55.
@ EV_COMMON_TOGGLE_REPLAY_MODE
toggle replay mode
@ EV_COMMON_QUICKLOAD_08
@ EV_COMMANDS_02
Command 2.
@ EV_TRUCK_BRAKE
brake
@ EV_TRUCK_SHIFT_GEAR_REVERSE
shift directly into this gear
@ EV_GRASS_LESS
EXPERIMENTAL: remove some grass.
@ EV_TRUCK_CYCLE_GEAR_RANGES
cycle through the ranges
@ EV_TRUCK_RIGHT_MIRROR_RIGHT
@ EV_COMMANDS_32
Command 32.
@ EV_COMMON_FOV_RESET
reset the FOV value
@ EV_COMMON_ENTER_NEXT_TRUCK
enter next truck
@ EV_COMMANDS_64
Command 64.
@ EV_TRUCK_LIGHTTOGGLE06
toggle custom light 6
@ EV_TRUCK_SHIFT_GEAR08
shift directly into this gear
@ EV_COMMANDS_74
Command 74.
@ EV_TRUCK_TOGGLE_FORWARDCOMMANDS
toggle forwardcommands
@ EV_COMMANDS_19
Command 19.
@ EV_COMMON_SAVE_TERRAIN
save terrain mesh to file
@ EV_COMMANDS_76
Command 76.
@ EV_CAMERA_FREE_MODE
@ EV_CAMERA_LOOKBACK
look back (toggles between normal and lookback)
@ EV_COMMANDS_49
Command 49.
@ EV_COMMANDS_06
Command 6.
@ EV_COMMANDS_05
Command 5.
@ EV_AIRPLANE_THROTTLE_NO
no thrust
Definition InputEngine.h:97
@ EV_TRUCK_SHIFT_GEAR07
shift directly into this gear
@ EV_ROAD_EDITOR_POINT_INSERT
@ EV_AIRPLANE_AIRBRAKES_NONE
Definition InputEngine.h:79
@ EV_COMMANDS_67
Command 67.
@ EV_TRUCK_CRUISE_CONTROL
toggle cruise control
@ EV_COMMON_FULLSCREEN_TOGGLE
@ EV_SURVEY_MAP_TOGGLE
toggle overview-map mode
@ EV_COMMANDS_78
Command 78.
@ EV_TRUCK_TOGGLE_TCASE_4WD_MODE
toggle the transfer case 4wd mode
@ EV_COMMON_CYCLE_TRUCK_LIGHTS
cycle truck front light mode (off -> running light -> low beams -> off).
@ EV_COMMANDS_54
Command 54.
@ EV_CHARACTER_ROT_DOWN
@ EV_TRUCK_STEER_RIGHT
steer right
@ EV_COMMON_TOGGLE_TRUCK_LOW_BEAMS
toggle truck low beams (on/off); also toggles running lights.
@ EV_TRUCK_SHIFT_GEAR06
shift directly into this gear
@ EV_COMMON_QUICKLOAD_01
@ EV_TRUCK_STARTER
hold to start the engine
@ EV_TRUCK_LIGHTTOGGLE09
toggle custom light 9
@ EV_COMMANDS_20
Command 20.
@ EV_COMMANDS_31
Command 31.
@ EV_AIRPLANE_STEER_LEFT
steer left
Definition InputEngine.h:91
@ EV_COMMANDS_16
Command 16.
@ EV_TRUCK_SHIFT_GEAR05
shift directly into this gear
@ EV_COMMON_AUTOLOCK
unlock autolock hook node
@ EV_AIRPLANE_RUDDER_LEFT
rudder left
Definition InputEngine.h:89
@ EV_CHARACTER_SIDESTEP_RIGHT
sidestep to the right
@ EV_TRUCK_SHIFT_GEAR04
shift directly into this gear
@ EV_MENU_SELECT
select focussed item and close menu
@ EV_TRUCK_SHIFT_DOWN
shift one gear down in manual transmission mode
@ EV_COMMON_LIVE_REPAIR_MODE
toggles live repair and recovery mode, controlled by keyboard
@ EV_TRUCK_SHIFT_GEAR18
shift directly into this gear
@ EV_COMMON_TOGGLE_CUSTOM_PARTICLES
toggle particle cannon
@ EV_CAMERA_ROTATE_RIGHT
rotate camera right
@ EV_SURVEY_MAP_ZOOM_IN
increase survey map scale
@ EV_COMMON_QUICKSAVE_04
@ EV_COMMON_RESPAWN_LAST_TRUCK
respawn last truck
@ EV_COMMANDS_26
Command 26.
@ EV_COMMANDS_81
Command 81.
@ EV_ROAD_EDITOR_POINT_GOTO
@ EV_COMMANDS_39
Command 39.
@ EV_COMMANDS_36
Command 36.
@ EV_COMMANDS_69
Command 69.
@ EV_TRUCK_SHIFT_GEAR09
shift directly into this gear
@ EV_COMMANDS_57
Command 57.
@ EV_MENU_DOWN
select next element in current category
@ EV_CHARACTER_BACKWARDS
step backwards with the character
@ EV_COMMANDS_61
Command 61.
@ EV_COMMANDS_18
Command 18.
@ EV_COMMANDS_38
Command 38.
@ EV_TRUCK_ANTILOCK_BRAKE
toggle antilockbrake system
@ EV_TRUCK_TOGGLE_IMPORTCOMMANDS
toggle importcommands
@ EV_ROAD_EDITOR_POINT_DELETE
@ EV_CAMERA_CHANGE
change camera mode
@ EV_TRUCK_CRUISE_CONTROL_ACCL
increase target speed / rpm
@ EV_COMMANDS_07
Command 7.
@ EV_TRUCK_LIGHTTOGGLE01
toggle custom light 1
@ EV_TRUCK_BRAKE_MODIFIER_25
brake with 25 percent pedal input
@ EV_COMMON_ENTER_OR_EXIT_TRUCK
enter or exit a truck
@ EV_COMMANDS_80
Command 80.
@ EV_COMMANDS_13
Command 13.
@ EV_COMMON_TOGGLE_TERRAIN_EDITOR
toggle terrain editor
@ EV_COMMANDS_75
Command 75.
@ EV_COMMANDS_33
Command 33.
@ EV_TRUCK_LIGHTTOGGLE03
toggle custom light 3
@ EV_TRUCK_LEFT_MIRROR_RIGHT
@ EV_TRUCK_BRAKE_MODIFIER_50
brake with 50 percent pedal input
@ EV_TRUCK_TOGGLE_INTER_WHEEL_DIFF
toggle the inter wheel differential mode
@ EV_COMMANDS_14
Command 14.
@ EV_AIRPLANE_AIRBRAKES_FULL
Definition InputEngine.h:76
@ EV_TRUCKEDIT_RELOAD
@ EV_COMMON_TRUCK_REMOVE
@ EV_COMMANDS_37
Command 37.
@ EV_COMMANDS_35
Command 35.
@ EV_TRUCK_SHIFT_GEAR03
shift directly into this gear
@ EV_COMMANDS_27
Command 27.
@ EV_CAMERA_FREE_MODE_FIX
@ EV_COMMON_TOGGLE_DEBUG_VIEW
toggle debug view mode
@ EV_COMMANDS_58
Command 58.
@ EV_TRUCK_ACCELERATE_MODIFIER_25
accelerate with 25 percent pedal input
@ EV_TRUCK_SHIFT_GEAR02
shift directly into this gear
@ EV_COMMANDS_30
Command 30.
Ogre::String defaultKey
Ogre::String name
std::string description
int configDeviceID
For which device (which config file) was this binding defined?
char configline[256]
Mixed use: keyboard=key, joyButton=buttonNum, POV=direction, joyAxes=options.
enum eventtypes eventtype