mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-23 12:52:46 +00:00
62f592b92c
An imt switcher automatically changes the context's active imt based on a user specified list of binary inputs. The inputs may be either buttons (indicated as +button) or cvars (bare name). For buttons, the pressed/not pressed state is used, and cvars are interpreted as ints being 0 or not 0. The order of the inputs determines the bit number of the input, with the first input being bit 0, second bit 1, third bit 2 etc. A default imt is given so large switchers do not need to be fully configured (the default imt is written to all states). A context can have any number of switchers attached. The switchers can wind up fighting over the active imt, but this seems to be something for the "user" (eg, configuration system) to sort out rather than the switcher code enforcing anything. As a result of the inputs being treated as bits, a switcher with N inputs will have 2**N states, thus there's a maximum of 16 inputs for now as 65536 states is a lot of configuration. Using a switcher, setting up a standard strafe/mouse look configuration is fairly easy. imt_create key_game imt_mod imt_create key_game imt_mod_strafe imt_mod imt_create key_game imt_mod_freelook imt_create key_game imt_mod_lookstrafe imt_mod_freelook imt_switcher_create mouse key_game imt_mod_strafe +strafe lookstrafe +mlook freelook imt_switcher 0 imt_mod 2 imt_mod 4 imt_mod_freelook 8 imt_mod_freelook 12 imt_mod_freelook imt_switcher 6 imt_mod_lookstrafe 10 imt_mod_lookstrafe 14 imt_mod_lookstrafe in_bind imt_mod mouse axis 0 move.yaw in_bind imt_mod mouse axis 1 move.forward in_bind imt_mod_strafe mouse axis 0 move.side in_bind imt_mod_lookstrafe mouse axis 0 move.side in_bind imt_mod_freelook mouse axis 1 move.pitch This takes advantage of imt chaining and the default imt for the switcher (there are 8 states that use imt_mod_strafe). The switcher name must be unique across all contexts, and every imt used in a switcher must be in the switcher's context. |
||
---|---|---|
.. | ||
audio | ||
client | ||
console | ||
gamecode | ||
gib | ||
image | ||
input | ||
models | ||
net | ||
qw | ||
ruamoko | ||
scene | ||
ui | ||
util | ||
video | ||
Makemodule.am |