User Tools

Site Tools



This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
guide:bindings [2012-07-06 11:37]
skyjake /* Binding contexts */
guide:bindings [2015-11-15 11:22]
Line 1: Line 1:
 +The bindings subsystem is at the core of the engine'​s input handling. It determines what happens when input events are received.
 +There are two kinds of bindings:
 +  *  [[event_binding]]s map a specific input event (such as "​Control Key pressed"​) to a console command. When the correct event is received, the engine executes the bound command.
 +  *  [[control_binding]]s map input device state to player controls. For instance, the state of the Up Arrow key might be bound to the Walk control, which determines if the player is walking forward and backward.
 +====== Binding contexts ======
 +The bindings subsystem has a stack of binding contexts. Each context contains a set of event and control bindings. The contexts have a fixed priority order and can be activated and deactivated individually. The [[listbcontexts]] command shows you the context stack:
 +  >​listbcontexts
 +  11 binding contexts defined:
 +  [  0] "​global"​ (active)
 +  [  1] "​deui"​ (inactive)
 +  [  2] "​console"​ (active)
 +  [  3] "​message"​ (inactive)
 +  [  4] "​chat"​ (inactive)
 +  [  5] "​shortcut"​ (active)
 +  [  6] "​gameui"​ (active)
 +  [  7] "​menu"​ (inactive)
 +  [  8] "​finale"​ (active)
 +  [  9] "​map-freepan"​ (inactive)
 +  [ 10] "​map"​ (inactive)
 +  [ 11] "​game"​ (active)
 +When an input event is received from the windowing system, it is offered to each of the active contexts in the order shown above. When a binding is found matching the event, it will not be offered to any further contexts.
 +Some contexts use special "​acquire all" modes that prevent events from being offered to any further contexts. The "​console"​ context is one of these: if the console is open, all keyboard events are used up by it and none of the lower-priority contexts get the events.
 +Since [[version_1_9.7]] it is not possible to add new contexts.
 +====== See also ======
 +  *  [[bindings_1_8_6_and_1.9_betas)]]
 +  *  [[activatebcontext_cmd_]]
 +  *  [[deactivatebcontext_cmd_]]
guide/bindings.txt · Last modified: 2019-11-17 18:24 by skyjake