No description
Find a file
Bill Currie 62f592b92c [input] Create an automatic imt switcher
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.
2021-11-25 20:23:18 +09:00
config.d [x11] Use barriers to trap the pointer in the window 2021-11-22 14:59:27 +09:00
debian [build] Move to non-recursive make 2020-06-25 11:35:37 +09:00
desktop [build] Move to non-recursive make 2020-06-25 11:35:37 +09:00
doc [doc] Fix some typos 2021-03-29 19:02:22 +09:00
hw Merge branch 'master' into vulkan 2020-06-25 14:03:52 +09:00
include [input] Create an automatic imt switcher 2021-11-25 20:23:18 +09:00
libs [input] Create an automatic imt switcher 2021-11-25 20:23:18 +09:00
m4 [build] Update for autoconf 2.71 2021-11-20 12:54:05 +09:00
nq [client] Reimplement legacy bind and unbind commands 2021-11-25 13:36:02 +09:00
pkg-config [build] Move to non-recursive make 2020-06-25 11:35:37 +09:00
qtv [ui] Create library for UI support code 2021-06-12 22:50:51 +09:00
qw [client] Reimplement legacy bind and unbind commands 2021-11-25 13:36:02 +09:00
RPM [build] Move to non-recursive make 2020-06-25 11:35:37 +09:00
ruamoko [input] Add broadcast events for app focus gain/loss 2021-11-22 14:59:32 +09:00
tools [vulkan] Pick up vulkan.h from correct location 2021-11-19 22:36:19 +09:00
.gitignore Update .gitignore yet again 2021-07-24 10:12:24 +09:00
bootstrap [build] Relax autoconf version requirement 2021-11-22 07:41:16 +09:00
configure.ac [build] Relax autoconf version requirement 2021-11-22 07:41:16 +09:00
COPYING initial checkin of most recent newtree and nuq(?) source 2001-02-19 21:15:25 +00:00
INSTALL [build] Update for autoconf 2.71 2021-11-20 12:54:05 +09:00
Makefile.am [qwaq] Create a commandline-only version of qwaq 2021-07-06 12:25:24 +09:00
NEWS Update for 0.7.2. 2013-01-23 12:01:36 +09:00
README.cygwin audit the usage of "only" 2010-01-13 06:42:26 +00:00
TODO Detect the silent death of the jack client thread. 2011-09-07 15:16:27 +09:00

This file gives instruction for compiling QF with cygwin to run in MS Windows(R).

DISCLAIMER: Use at your own risk, NO WARRANTY of any kind. NO GUARANTEE of correctness or usability.

If you have problems with these instructions please let me know.

email: wildcode@users.sourceforge.net
IRC: irc.xiph.org #quakeforge
==========================================================================

WARNING: This is not intended for inexperienced users, binaries are available on request.

         QuakeForge may take several hours from bootstrap to the completion
         of make install on some systems

To build win32(mingw) QuakeForge bins you will need to download and install cygwin, and the Microsoft DirectX SDK. Cygwin can be found at http://www.cygwin.org

Once cygwin is installed along with the appropriate developement modules, copy dinput.h from the DirectX SDK and place it in /usr/include/w32api/

If you want to use DirectSound also copy dsound.h to the same spot.

in the quakeforge source dir, within cygwin, type
./bootstrap
./configure --host=i386-mingw32 --build=i386-cygwin --target=i386-mingw32 --program-prefix= --with-static-plugins --disable-shared --disable-oss --disable-vorbis --disable-Werror --enable-optimize --enable-asmopt --disable-debug --enable-zlib
make
make install

--disable-Werror is needed as some versions of the DX SDK are buggy.

Go to the /usr/local/bin directory and copy the qw-* and nq-* files to your dos
quake dir

Let us know how it works for you.

NOTE: At the time of writing qw-server.exe was not working correctly. Please refrain from using it unless you are willing to fix it.

Special Note: QuakeForge supplies only our own version of the programs for Quake. To get the game data, you still need to have purchased Quake or get the shareware version from Id Software.

Chris Ison (WildCode) for QuakeForge
March 11, 2003