Log in

View Full Version : [ISBoxer] Feature Request: Keymap Inheritance



Souca
06-05-2010, 11:40 AM
Feature Request: Keymap Inheritance

Apologies if this can be done currently.

I'd like to request a feature to allow Keymaps to behave in a manner similar to the OO Programming Inheritance model. The idea being you could have a base keymap from which you create a child keymap that can alter or add keys to it's parent. Here is an example of how I would use such a feature.

The 3 is setup to be sent to all my characters in my FTL setup and I use it in multiple teams. Unfortunately I have the 3 key set to Death Grip on my DK team. Ideally I want Death Grip to be round robin, but that would require me to either create a separate keymap for my Death Knights so that I could make that key round robin, or I would need to make a separate group of keymaps to handle keys that are round robin in some groups and not in others in addition to any keymaps that are shared between all groups.

Why don't I just make separate keymaps for all my groups? I tend to jump around my groups and it's annoying when I have added something like Jamba Item Use keys in one group, but I haven't added the keys into that groups keymaps in ISBoxer.

In the above example, the round robin wuld be solved with inherited keymaps in the following manner. There would be a master key map that would have the 3 key set to broadcast to all slaves. This would work on 90% of my teams. There would then be a second keymap derived from the master keymap. In this keymap there would we be a mapping for the 3 key that overrides the parent keymap's mapping of 3 and sets it to instead be a round robin. While I still need a separate keymap for the DKs, it would only need to contain the changes to key 3 as all the other keymappings are inherited. If I were to add a mapping for Ctrl-H for some reason, the DKs would get it for free. If I needed to make the 4 key round robin, I could simply change the DK map for the 4 key only.

I hope this makes sense. If you need clarification on anything, don't hesitate to ask.

- Souca -

Lax
06-05-2010, 01:27 PM
No need to apologize :)

I believe what you are wanting to do can be accomplished via Mapped Key Virtualization, at the Character Set level. The one caveat is you MUST have a "master" mapped key for the key you're going to virtualize, because the virtualization is interpreted by a Do Mapped Key Action (or anything that does the equivalent, like a click bar button) -- in other words, the Hotkey is still going to activate the original Mapped Key.

So what you do in the case of your 3 key... for example if you are using the FTL DPS Keys map, you have a DPS 3 Mapped Key, with the Hotkey set to 3. You would drop the Hotkey entirely from DPS 3, and make a new Mapped Key, with Hotkey 3, and a Do Mapped Key Action pointing to DPS 3 with target=self (note that the Target for a Do Mapped Key Action effectively controls who presses the Hotkey to activate the Mapped Key, NOT who gets the Actions mapped by the key, so if you were to set target=all, every window would tell the others to assist and press 3, instead of the current window telling the others to assist and press 3). Then you can effectively replace DPS 3 at will, for any particular Character Set (virtualization can also be done at the Character level, but you'd need to change the mapped key around a bit). To do so, go into your Character Set and click on Virtual Mapped Keys below Also Launch. Make it read, for example, DPS 3 in FTL DPS Keys is now RR DPS 3 in FTL DPS Keys. Neither of the Mapped Keys needs (or should have) a Hotkey. When you use the master key with the Hotkey that does Do Mapped Key DPS 3, it's going to do RR DPS 3 instead.

Hope that wasn't too hard to follow. Enjoy :)

Souca
06-05-2010, 01:54 PM
The way I'm reading this, it requires me to remove the hotkey for 3 from the main keymap, which I don't want to do since other character sets still use the 3 hotkey in the main keymap. Or am I missing something?

- Souca -

Lax
06-05-2010, 02:33 PM
I'll try to clear it up for you.

MASTER DPS 3: Hotkey set to 3. Do Mapped Key Action, DPS 3, Window:Current.
DPS 3: No Hotkey, otherwise same as original (FTL Assist Me to self, 3 to all)
RR DPS 3: No Hotkey, has multiple steps for round robin

Without any virtualization, pressing 3 will do DPS 3, having the original functionality.
If you virtualize it so "DPS 3 is now RR DPS 3", pressing 3 will do RR DPS 3 instead of DPS 3 -- only on the Character Set(s) you set up the virtualization for

Souca
06-05-2010, 03:44 PM
I'll try to clear it up for you.

MASTER DPS 3: Hotkey set to 3. Do Mapped Key Action, DPS 3, Window:Current.
DPS 3: No Hotkey, otherwise same as original (FTL Assist Me to self, 3 to all)
RR DPS 3: No Hotkey, has multiple steps for round robin

Without any virtualization, pressing 3 will do DPS 3, having the original functionality.
If you virtualize it so "DPS 3 is now RR DPS 3", pressing 3 will do RR DPS 3 instead of DPS 3 -- only on the Character Set(s) you set up the virtualization for

So in this case, I set up a MASTER DPS keymap, a DPS keymap for non RR groups, and a RR DPS keymap for the ones that need a RR on that key, correct? While I'd still like to see something like what I've outlined added, I'll play around tonight and see if I can get this to work. Thanks for all the clarification.

- Souca -