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