Hotkeys

Hi!

We have been playing EE for quite a while now and I remember that Artemis had some support for Hotkeys (like wasd for helms). Is there any config file in EE where I can add this?

Thanks
Julian
«1

Comments

  • edited April 2016
    options.ini has the settings for Hotkeys.

    Here's my work in progress HotKey equivalent for Artemis
    https://gist.github.com/kwadroke/4d7890b50058a84014ca
    It might be a little bit out of date. I haven't check it in a while.

    I need to update it as I'm going to use it for an event next month.
  • I tried the key binding. But I couldn't get it to work,
  • I was able to use the hotkey file I posted briefly for helms and the keys worked for me on Linux.

    Just realized (or I can't find) that there isn't a way to steer the ship (turn left & right)

    I haven't dug into hotkeys enough lately to tell if all the features are there. It could be that the code for hotkeys needs a little love.
  • The code for hotkeys needs a lot of love. The idea behind it does not really work in reality. So it needs a complete think-over.
  • I'll have to rethink how I was going to build my consoles, if that's the case.
  • Just tell me what you wanted to build.

    What I did, I made every button have a possible hotkey. Which sort of works, but does not give access to every single function in the game. It also pollutes the options.ini file like crazy...
  • Since I don't use touch screens as they are expensive, I was going to map the functions to a keyboard. Right now, we aren't even using the keyboards, just the mouse. To me that doesn't feel very realistic, plus players automatically reach for the keyboard if it's on the table. I was going to get some slimline keyboards, like the kind Apple uses, and make labels for each key. Possibly make an overlay to hide the non used buttons.
    I'd like to be able to do anything you can do with the screen buttons.
    Input is what's currently holding up the build. If I had touch screens, then this wouldn't be an issue.
  • daid said:

    It also pollutes the options.ini file like crazy...

    Since we have an hardware.ini, why not move the keys into another file like input.ini or keyboard.ini? Since this can be optional, the file wouldn't have to exist if it's not needed, or generated on the fly like options.ini.
  • kwadroke said:

    Since I don't use touch screens as they are expensive

    Same here.

    Having Hotkeys would be a nice improvement, especially for switching the shields on and off, or steering the ship,...

    On the same note, in Artemis, there are "presetings" that are use by engineering to prepare the ship for specific situation. Like in combat : max power for the shield, weapon and maenuvering and no power for reactor,...

    It would be nice to have something like that linked to specific keys/button in the game.
  • Does every station have it's own key binding, or is one set of bindings used for every station?
  • Oldar said:

    kwadroke said:

    Since I don't use touch screens as they are expensive

    Same here.
    We payed 80 euro per touch screen. Including wood and paint we spend about 600 euros on our setup. All the computers and rest of equipment where gifts.


    I'll have a few looks at how I can improve the whole hotkey mess.
  • New touch screens are around $150 US for the cheapest I can find. When you multiply that times 5, it gets a bit expensive. That's especially true when I'm trying to upgrade computers. I have 2 computers left to upgrade. I should be ordering one computer this week.
    If I had a reliable source for good used touchscreen's, I'd go that route.
  • Yeah, we where lucky for find a quality 2nd hand source. While the resolution is only 1024x786, they are glass panels, most likely they game from ATMs or something. So really tough. (Low resolution does mean we need less GPU power) Only VGA connectors, most likely that's why they are replaced.

    Anyhow, writing down what we need key bindings for. Initial list for helms:
    Hotkeys for helms: * Increase impulse * Decrease impulse * Zero impulse * Max impulse * Max reverse impulse * Turn left * Turn right * Warp 0 * Warp 1 * Warp 2 * Warp 3 * Warp 4 * Dock request/abort/undock * Dock request * Dock abort * Undock * Jump distance increase * Jump distance decrease * Initiate jump * Combat maneuver left * Combat maneuver right * Combat maneuver boost
  • More work done on the hotkey list:
    General hotkeys:
    * Switch next station
    * Switch to station X
    
    Hotkeys for helms:
    * Increase impulse
    * Decrease impulse
    * Zero impulse
    * Max impulse
    * Max reverse impulse
    * Turn left
    * Turn right
    * Warp 0
    * Warp 1
    * Warp 2
    * Warp 3
    * Warp 4
    * Dock request/abort/undock
    * Dock request
    * Dock abort
    * Undock
    * Jump distance increase
    * Jump distance decrease
    * Initiate jump
    * Combat maneuver left
    * Combat maneuver right
    * Combat maneuver boost
    
    Hotkeys for weapons:
    * Select weapon X
    * Load tube X
    * Unload tube X
    * Load/Unload tube X
    * Fire tube X
    * Select next enemy target
    * Select next target
    * Toggle shields
    * Enable shields
    * Disable shields
    * Next beam subsystem target type
    * Previous beam subsystem target type
    * Increase beam frequency
    * Decrease beam frequency
    * Toggle missile aim lock
    * Enable missile aim lock
    * Disable missile aim lock
    * Turn missile aim to the left
    * Turn missile aim to the right
    
    Hotkeys for engineering:
    * Select system X
    * Increase power
    * Decrease power
    * Increase coolant
    * Decrease coolant
    * Select next repair crew member
    * Order repair crew movement (up/down/left/right)
    * Increase shield frequency target
    * Decrease shield frequency target
    * Start shield calibration
    * Start self-destruct
    * Confirm self-destruct
    * Cancel self-destruct
    
    I don't think science would be playable with just the keyboard, so not sure what to do there with hotkeys. Relay has kind of the same problem.
  • edited April 2016
    Some ideas for keys for science & relay. We'll still need mouse for these as well, but keys will help.
    Science:
    Select Nearest target
    Select Next Nearest Target
    Select Farthest Target
    Scan
    Scan Slider 1 UP
    Scan Slider 1 Down
    Scan Slider 2 UP
    Scan Slider 2 Down
    Close/Cancel slider screen
    Database Screen
    Zoom In
    Zoom Out
    Relay:
    Select Nearest target
    Select Next Nearest Target
    Select Farthest Target
    Open Comms
    Close
    Back
    Comms options 1-10(?)
    Link to Science
    Zoom in
    Zoom out
    Red Alert
    Yellow Alert
    Normal Alert

    Won't work for Relay with a keyboard:
    Placing/Deleting Waypoint
    Launching Probes

  • I'm digging in hotkey and pereference manager code now to add support for Joystick buttons/button events and mousebuttons. I'm thinking I might be able to even add support for assigining relative (rotate Left/right), absolute (Impulse, coolant,power) and binary value (+=1 button ==another button) functionality.. I'm actively working this daily at current, but I think it'll require some modification of the hotkeystructt to allow for the different eventTypes and assignment of functions to the hotkey events
  • Ok, If I stick to Single joystick support, there is significantly less rewrite involved. Given that configurable, and using joysick buttons is already an improvement, are there any objections to me submitting such (1 fully usable, configurable joystick) or should I shoot for the full monty? The next phase is to make the axis configurable as well.. which will mean a few new hotkey defs like IMPULSE_DIRECT_THROTTLE and, IMPULSE_DIFF_THROTTLE, TURN_DIRECT TURN_DIFF, POWER_DIRECT, POWER_DIF, COOLANT_DIRECT and COOLANT_DIFF, SLIDER_DIRECT and SLIDER_DIFF. DIRECT would set the Sliders to the joystick axis value whereas DIFF would increment/decrement the sliders current value by set amounts just like the increase/up and decrease/down hotkeys.
    Thoughts?

  • And nope, 1 joystick versus 8 makes no difference at all. Also I used the term Differential (DIFF) when I should have been using the term Relative (Rel).. meaning the Relative analog inputs would add/subtract from the current status of a slider or direction (in the case of turning).
    ... I also need to get a better understanding (or confirm my understanding) of the line in HotKeyConfigItem class which reads:
    HotkeyConfigItem(string key, std:tuple);
  • A tuple is just a collection of 2 "things", in this case 2 strings.

    The first string is the description, the second is the default binding.
  • Thanks! That's what I needed!
  • Note that the keybinding code of SP2 allows for both joystick and key bindings:
    https://github.com/daid/SeriousProton2/blob/master/include/sp2/io/keybinding.h
    https://github.com/daid/SeriousProton2/blob/master/src/io/keybinding.cpp

    And allows for analog as well as digital logic.

    But I'm not sure if I will ever port EE over to SP2, as there are a lot of differences in... everything. But we could backport some of the keybinding stuff.
  • yeah currently what I have is looking like a huge reworking of EE input... and I'm only toe deep into it so far...
  • Daid, given what an amateur I feel I am, I'm a bit trepidatious on this.. what I'm looking at is almost a complete rewrite of all input handling.. I'm willing to continue and do it, but it will also require lot's of review before acceptance. If you're cool with that, I'll continue.. if not.. well, I'll find another way so that it's only a rewrite of some of the hotkey assignment and Joystick input handling.
  • Best way to learn is by doing :-)

    The current hotkey system was an afterthought, which already had a whole bunch of patches on it. And as I'm only playing on touchscreens, it doesn't get the love it deserves from me.

    Whenever you feel like you want me to look at something, just ask, and I will have a look.
  • Deal then, I shall continue!
  • I am ok too to test and review it. I will be a huge user of hotkeys, so thanks !
  • Then it might be good to list what you really would want to do with the hotkeys? To make sure we cover it all?
  • Ok, I will do it.
    Now, I think about all the available command into each screen, and some hotkeys for custom button created by the GM (the best could be :

    addCustomButton(ECrewPosition position, string name, string caption, ScriptSimpleCallback callback,string hotkey)

    I will do some exhaustive list this week.
  • But I'm not sure if I will ever port EE over to SP2, as there are a lot of differences in... everything.
    While this is unfortunate on the one hand, it makes me curious, are there plans for other projects that will use SP2 eventually?
  • I currently have a whole bunch of experiments that are using SP2. But nothing worth your attention yet.
Sign In or Register to comment.