/* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "stdafx.h" #include "input/driverkeyboardinput.h" bool driverkeyboard_input::init() { default_bindings(); recall_bindings(); bind(); return true; } void driverkeyboard_input::default_bindings() { using enum user_command; m_bindingsetups = { { aidriverenable, {GLFW_KEY_Q | keymodifier::shift, ""} }, { aidriverdisable, {GLFW_KEY_Q, ""} }, // jointcontrollerset, { mastercontrollerincrease, {GLFW_KEY_KP_ADD, ""} }, { mastercontrollerincreasefast, {GLFW_KEY_KP_ADD | keymodifier::shift, ""} }, { mastercontrollerdecrease, {GLFW_KEY_KP_SUBTRACT, ""} }, { mastercontrollerdecreasefast, {GLFW_KEY_KP_SUBTRACT | keymodifier::shift, ""} }, // mastercontrollerset, { dynamicbrakecontrollerincrease, {GLFW_KEY_KP_3 | keymodifier::control, ""} }, { dynamicbrakecontrollerdecrease, {GLFW_KEY_KP_9 | keymodifier::control, ""} }, // mastercontrollerset, { dynamicbrakecontrollerincreasefast, {GLFW_KEY_KP_3 | keymodifier::control | keymodifier::shift, ""} }, { dynamicbrakecontrollerdecreasefast, {GLFW_KEY_KP_9 | keymodifier::control | keymodifier::shift, ""} }, { secondcontrollerincrease, {GLFW_KEY_KP_DIVIDE, ""} }, { secondcontrollerincreasefast, {GLFW_KEY_KP_DIVIDE | keymodifier::shift, ""} }, { secondcontrollerdecrease, {GLFW_KEY_KP_MULTIPLY, ""} }, { secondcontrollerdecreasefast, {GLFW_KEY_KP_MULTIPLY | keymodifier::shift, ""} }, // secondcontrollerset, { mucurrentindicatorothersourceactivate, {GLFW_KEY_Z | keymodifier::shift, ""} }, { independentbrakeincrease, {GLFW_KEY_KP_1, ""} }, { independentbrakeincreasefast, {GLFW_KEY_KP_1 | keymodifier::shift, ""} }, { independentbrakedecrease, {GLFW_KEY_KP_7, ""} }, { independentbrakedecreasefast, {GLFW_KEY_KP_7 | keymodifier::shift, ""} }, // independentbrakeset, { independentbrakebailoff, {GLFW_KEY_KP_4, ""} }, // universalbrakebutton1, // universalbrakebutton2, // universalbrakebutton3, { trainbrakeincrease, {GLFW_KEY_KP_3, ""} }, { trainbrakedecrease, {GLFW_KEY_KP_9, ""} }, // trainbrakeset, { trainbrakecharging, {GLFW_KEY_KP_DECIMAL, ""} }, { trainbrakerelease, {GLFW_KEY_KP_6, ""} }, { trainbrakefirstservice, {GLFW_KEY_KP_8, ""} }, { trainbrakeservice, {GLFW_KEY_KP_5, ""} }, { trainbrakefullservice, {GLFW_KEY_KP_2, ""} }, { trainbrakehandleoff, {GLFW_KEY_KP_5 | keymodifier::control, ""} }, { trainbrakeemergency, {GLFW_KEY_KP_0, ""} }, { trainbrakebasepressureincrease, {GLFW_KEY_KP_3 | keymodifier::control, ""} }, { trainbrakebasepressuredecrease, {GLFW_KEY_KP_9 | keymodifier::control, ""} }, { trainbrakebasepressurereset, {GLFW_KEY_KP_6 | keymodifier::control, ""} }, { trainbrakeoperationtoggle, {GLFW_KEY_KP_4 | keymodifier::control, ""} }, { manualbrakeincrease, {GLFW_KEY_KP_1 | keymodifier::control, ""} }, { manualbrakedecrease, {GLFW_KEY_KP_7 | keymodifier::control, ""} }, { alarmchaintoggle, {GLFW_KEY_B | keymodifier::shift | keymodifier::control, ""} }, // alarmchainenable, // alarmchaindisable, { wheelspinbrakeactivate, {GLFW_KEY_KP_ENTER, ""} }, { sandboxactivate, {GLFW_KEY_S | keymodifier::shift, ""} }, // autosandboxtoggle, // autosandboxactivate, // autosandboxdeactivate, { reverserincrease, {GLFW_KEY_D, ""} }, { reverserdecrease, {GLFW_KEY_R, ""} }, // reverserforwardhigh, // reverserforward, // reverserneutral, // reverserbackward, { waterpumpbreakertoggle, {GLFW_KEY_W | keymodifier::control, ""} }, // waterpumpbreakerclose, // waterpumpbreakeropen, { waterpumptoggle, {GLFW_KEY_W, ""} }, // waterpumpenable, // waterpumpdisable, { waterheaterbreakertoggle, {GLFW_KEY_W | keymodifier::control | keymodifier::shift, ""} }, // waterheaterbreakerclose, // waterheaterbreakeropen, { waterheatertoggle, {GLFW_KEY_W | keymodifier::shift, ""} }, // waterheaterenable, // waterheaterdisable, { watercircuitslinktoggle, {GLFW_KEY_H | keymodifier::shift, ""} }, // watercircuitslinkenable, // watercircuitslinkdisable, { fuelpumptoggle, {GLFW_KEY_F, ""} }, // fuelpumpenable, // fuelpumpdisable, { oilpumptoggle, {GLFW_KEY_F | keymodifier::shift, ""} }, // oilpumpenable, // oilpumpdisable, { linebreakertoggle, {GLFW_KEY_M, ""} }, // linebreakeropen, // linebreakerclose, { convertertoggle, {GLFW_KEY_X, ""} }, // converterenable, // converterdisable, { convertertogglelocal, {GLFW_KEY_X | keymodifier::shift, ""} }, { converteroverloadrelayreset, {GLFW_KEY_N | keymodifier::control, ""} }, { compressortoggle, {GLFW_KEY_C, ""} }, // compressorenable, // compressordisable, { compressortogglelocal, {GLFW_KEY_C | keymodifier::shift, ""} }, // compressorpresetactivatenext, // compressorpresetactivateprevious, // compressorpresetactivatedefault, { motoroverloadrelaythresholdtoggle, {GLFW_KEY_F | keymodifier::control, ""} }, // motoroverloadrelaythresholdsetlow, // motoroverloadrelaythresholdsethigh, { motoroverloadrelayreset, {GLFW_KEY_N, ""} }, // universalrelayreset1, // universalrelayreset2, // universalrelayreset3, { notchingrelaytoggle, {GLFW_KEY_G, ""} }, { epbrakecontroltoggle, {GLFW_KEY_Z | keymodifier::control, ""} }, // epbrakecontrolenable // epbrakecontroldisable { trainbrakeoperationmodeincrease, {GLFW_KEY_KP_2 | keymodifier::control, ""} }, { trainbrakeoperationmodedecrease, {GLFW_KEY_KP_8 | keymodifier::control, ""} }, { brakeactingspeedincrease, {GLFW_KEY_B | keymodifier::shift, ""} }, { brakeactingspeeddecrease, {GLFW_KEY_B, ""} }, // brakeactingspeedsetcargo, // brakeactingspeedsetpassenger, // brakeactingspeedsetrapid, { brakeloadcompensationincrease, {GLFW_KEY_H | keymodifier::shift | keymodifier::control, ""} }, { brakeloadcompensationdecrease, {GLFW_KEY_H | keymodifier::control, ""} }, { mubrakingindicatortoggle, {GLFW_KEY_L | keymodifier::shift, ""} }, { alerteracknowledge, {GLFW_KEY_SPACE, ""} }, { hornlowactivate, {GLFW_KEY_A, ""} }, { hornhighactivate, {GLFW_KEY_S, ""} }, { whistleactivate, {GLFW_KEY_Z, ""} }, { radiotoggle, {GLFW_KEY_R | keymodifier::control, ""} }, // radioenable // radiodisable { radiochannelincrease, {GLFW_KEY_EQUAL, ""} }, { radiochanneldecrease, {GLFW_KEY_MINUS, ""} }, // radiochannelset { radiostopsend, {GLFW_KEY_PAUSE | keymodifier::shift | keymodifier::control, ""} }, // radiostopenable // radiostopdisable { radiostoptest, {GLFW_KEY_R | keymodifier::shift | keymodifier::control, ""} }, { radiocall3send, {GLFW_KEY_BACKSPACE, ""} }, // radiovolumeincrease, // radiovolumedecrease, // radiovolumeset, { cabchangeforward, {GLFW_KEY_HOME, ""} }, { cabchangebackward, {GLFW_KEY_END, ""} }, // viewturn, // movehorizontal, // movehorizontalfast, // movevertical, // moveverticalfast, { moveleft, {GLFW_KEY_LEFT, "Move left"} }, { moveright, {GLFW_KEY_RIGHT, "Move right"} }, { moveforward, {GLFW_KEY_UP, "Move forwards"} }, { moveback, {GLFW_KEY_DOWN, "Move backwards"} }, { moveup, {GLFW_KEY_PAGE_UP, "Move up"} }, { movedown, {GLFW_KEY_PAGE_DOWN, "Move down"} }, { nearestcarcouplingincrease, {GLFW_KEY_INSERT, ""} }, { nearestcarcouplingdisconnect, {GLFW_KEY_DELETE, ""} }, { nearestcarcoupleradapterattach, {GLFW_KEY_INSERT | keymodifier::control, ""} }, { nearestcarcoupleradapterremove, {GLFW_KEY_DELETE | keymodifier::control, ""} }, { occupiedcarcouplingdisconnect, {GLFW_KEY_DELETE | keymodifier::shift, ""} }, { doortoggleleft, {GLFW_KEY_COMMA, ""} }, { doortoggleright, {GLFW_KEY_PERIOD, ""} }, { doorpermitleft, {GLFW_KEY_COMMA | keymodifier::shift, ""} }, { doorpermitright, {GLFW_KEY_PERIOD | keymodifier::shift, ""} }, { doorpermitpresetactivatenext, {GLFW_KEY_PERIOD | keymodifier::shift | keymodifier::control, ""} }, { doorpermitpresetactivateprevious, {GLFW_KEY_COMMA | keymodifier::shift | keymodifier::control, ""} }, // dooropenleft, // dooropenright, { dooropenall, {GLFW_KEY_SLASH | keymodifier::shift, ""} }, // doorcloseleft, // doorcloseright, { doorcloseall, {GLFW_KEY_SLASH | keymodifier::control, ""} }, // doorsteptoggle, { doormodetoggle, {GLFW_KEY_SLASH | keymodifier::shift | keymodifier::control, ""} }, // mirrorstoggle, { departureannounce, {GLFW_KEY_SLASH, ""} }, { doorlocktoggle, {GLFW_KEY_S | keymodifier::control, ""} }, { pantographcompressorvalvetoggle, {GLFW_KEY_V | keymodifier::control, ""} }, // pantographcompressorvalveenable, // pantographcompressorvalvedisable, { pantographcompressoractivate, {GLFW_KEY_V | keymodifier::shift, ""} }, { pantographtogglefront, {GLFW_KEY_P, ""} }, { pantographtogglerear, {GLFW_KEY_O, ""} }, // pantographraisefront, // pantographraiserear, // pantographlowerfront, // pantographlowerrear, { pantographlowerall, {GLFW_KEY_P | keymodifier::control, ""} }, { pantographselectnext, {GLFW_KEY_P | keymodifier::shift, ""} }, { pantographselectprevious, {GLFW_KEY_O | keymodifier::shift, ""} }, { pantographtoggleselected, {GLFW_KEY_O | keymodifier::shift | keymodifier::control, ""} }, // pantographraiseselected, // pantographlowerselected, // pantographvalvesupdate, // pantographvalvesoff, { heatingtoggle, {GLFW_KEY_H, ""} }, // heatingenable, // heatingdisable, { lightspresetactivatenext, {GLFW_KEY_T | keymodifier::shift, ""} }, { lightspresetactivateprevious, {GLFW_KEY_T, ""} }, { headlighttoggleleft, {GLFW_KEY_Y, ""} }, // headlightenableleft, // headlightdisableleft, { headlighttoggleright, {GLFW_KEY_I, ""} }, // headlightenableright, // headlightdisableright, { headlighttoggleupper, {GLFW_KEY_U, ""} }, // headlightenableupper, // headlightdisableupper, { redmarkertoggleleft, {GLFW_KEY_Y | keymodifier::shift, ""} }, // redmarkerenableleft, // redmarkerdisableleft, { redmarkertoggleright, {GLFW_KEY_I | keymodifier::shift, ""} }, // redmarkerenableright, // redmarkerdisableright, { headlighttogglerearleft, {GLFW_KEY_Y | keymodifier::control, ""} }, // headlightenablerearleft // headlightdisablerearleft { headlighttogglerearright, {GLFW_KEY_I | keymodifier::control, ""} }, // headlightenablerearright // headlightdisablerearright { headlighttogglerearupper, {GLFW_KEY_U | keymodifier::control, ""} }, // headlightenablerearupper // headlightdisablerearupper { redmarkertogglerearleft, {GLFW_KEY_Y | keymodifier::control | keymodifier::shift, ""} }, // redmarkerenablerearleft // redmarkerdisablerearleft { redmarkertogglerearright, {GLFW_KEY_I | keymodifier::control | keymodifier::shift, ""} }, // redmarkerenablerearright // redmarkerdisablerearright { redmarkerstoggle, {GLFW_KEY_E | keymodifier::shift, ""} }, { endsignalstoggle, {GLFW_KEY_E, ""} }, { headlightsdimtoggle, {GLFW_KEY_L | keymodifier::control, ""} }, // headlightsdimenable, // headlightsdimdisable, { motorconnectorsopen, {GLFW_KEY_L, ""} }, // motorconnectorsclose, { motordisconnect, {GLFW_KEY_E | keymodifier::control, ""} }, { interiorlighttoggle, {GLFW_KEY_APOSTROPHE, ""} }, // interiorlightenable, // interiorlightdisable, { interiorlightdimtoggle, {GLFW_KEY_APOSTROPHE | keymodifier::control, ""} }, // interiorlightdimenable, // interiorlightdimdisable, // compartmentlightstoggle, // compartmentlightsenable, // compartmentlightsdisable, { instrumentlighttoggle, {GLFW_KEY_SEMICOLON, ""} }, // instrumentlightenable, // instrumentlightdisable, { dashboardlighttoggle, {GLFW_KEY_SEMICOLON | keymodifier::shift, ""} }, // dashboardlightenable // dashboardlightdisable { timetablelighttoggle, {GLFW_KEY_APOSTROPHE | keymodifier::shift, ""} }, // timetablelightenable // timetablelightdisable { generictoggle0, {GLFW_KEY_0, ""} }, { generictoggle1, {GLFW_KEY_1, ""} }, { generictoggle2, {GLFW_KEY_2, ""} }, { generictoggle3, {GLFW_KEY_3, ""} }, { generictoggle4, {GLFW_KEY_4, ""} }, { generictoggle5, {GLFW_KEY_5, ""} }, { generictoggle6, {GLFW_KEY_6, ""} }, { generictoggle7, {GLFW_KEY_7, ""} }, { generictoggle8, {GLFW_KEY_8, ""} }, { generictoggle9, {GLFW_KEY_9, ""} }, { batterytoggle, {GLFW_KEY_J, ""} }, // batteryenable, // batterydisable, // cabactivationtoggle, // cabactivationenable, // cabactivationdisable, { motorblowerstogglefront, {GLFW_KEY_N | keymodifier::shift, ""} }, { motorblowerstogglerear, {GLFW_KEY_M | keymodifier::shift, ""} }, { motorblowersdisableall, {GLFW_KEY_M | keymodifier::control, ""} }, // coolingfanstoggle, // tempomattoggle, // springbraketoggle, // springbrakeenable, // springbrakedisable, // springbrakeshutofftoggle, // springbrakeshutoffenable, // springbrakeshutoffdisable, // springbrakerelease, // distancecounteractivate, // speedcontrolincrease, // speedcontroldecrease, // speedcontrolpowerincrease, // speedcontrolpowerdecrease, // speedcontrolbutton0, // speedcontrolbutton1, // speedcontrolbutton2, // speedcontrolbutton3, // speedcontrolbutton4, // speedcontrolbutton5, // speedcontrolbutton6, // speedcontrolbutton7, // speedcontrolbutton8, // speedcontrolbutton9, // admin_timejump, { timejumplarge, {GLFW_KEY_F1 | keymodifier::control, "Big time jump (Debug Mode only)"} }, { timejumpsmall, {GLFW_KEY_F1 | keymodifier::shift, "Small time jump (Debug Mode only)"} }, // admin_vehiclemove, { vehiclemoveforwards, {GLFW_KEY_LEFT_BRACKET | keymodifier::control, "Move the train forwards (Debug Mode only)"} }, { vehiclemovebackwards, {GLFW_KEY_RIGHT_BRACKET | keymodifier::control, "Move the train backwards (Debug Mode only)"} }, { vehicleboost, {GLFW_KEY_TAB | keymodifier::control, "Boost the train (Debug Mode only)"} }, { debugtoggle, {GLFW_KEY_F12 | keymodifier::control | keymodifier::shift, "Toggle Debug Mode"} }, { pausetoggle, {GLFW_KEY_ESCAPE, "Pause the game"} } }; } //---------------------------------------------------------------------------