Commit graph

40 commits

Author SHA1 Message Date
Bill Currie
12c84046f3 [cvar] Make cvars properly typed
This is an extremely extensive patch as it hits every cvar, and every
usage of the cvars. Cvars no longer store the value they control,
instead, they use a cexpr value object to reference the value and
specify the value's type (currently, a null type is used for strings).
Non-string cvars are passed through cexpr, allowing expressions in the
cvars' settings. Also, cvars have returned to an enhanced version of the
original (id quake) registration scheme.

As a minor benefit, relevant code having direct access to the
cvar-controlled variables is probably a slight optimization as it
removed a pointer dereference, and the variables can be located for data
locality.

The static cvar descriptors are made private as an additional safety
layer, though there's nothing stopping external modification via
Cvar_FindVar (which is needed for adding listeners).

While not used yet (partly due to working out the design), cvars can
have a validation function.

Registering a cvar allows a primary listener (and its data) to be
specified: it will always be called first when the cvar is modified. The
combination of proper listeners and direct access to the controlled
variable greatly simplifies the more complex cvar interactions as much
less null checking is required, and there's no need for one cvar's
callback to call another's.

nq-x11 is known to work at least well enough for the demos. More testing
will come.
2022-04-24 19:15:22 +09:00
Bill Currie
ec54c54226 [build] Fix some windows bitrot 2021-08-02 14:02:41 +09:00
Bill Currie
2a3986368e Use callbacks for key repeat control. 2013-01-16 19:48:54 +09:00
Bill Currie
78f7604efc Evil hack to handle duplicated sdl key syms. 2012-08-18 21:44:51 +09:00
Bill Currie
8fa92bf206 Add 32 button support to sdl and win as well.
The world isn't x11 (much as I'd like it to be)
2012-07-02 16:51:14 +09:00
Bill Currie
bc1b483525 Nuke the rcsid stuff.
It's pretty useless in git.
2012-04-22 10:56:32 +09:00
Sander van Dijk
197481bdbb in_sdl.c: default to "have_focus" to "1". 2012-01-21 09:27:35 +09:00
Bill Currie
2b81eaea6c console.h include cleanup 2007-11-06 12:40:38 +00:00
Ragnvald Maartmann-Moe IV
42d51bc486 Remove SDLK_WORLD_*, as they are no longer supported. Add SDLK_UNDO. 2006-12-01 06:58:23 +00:00
Bill Currie
3fb03fc2be hah, should have been using __attribute__((used)) all that time (rather
than __attribute__((unused))). fixes the missing console in -x11
2005-08-04 15:27:09 +00:00
Bill Currie
1a1d461f0c "debounce" (Despair's term:) focus handling in X. Seems multiple focusout
events can arrive when switching workplaces, but only one focusin when
returning. Not good...
2005-03-06 08:22:15 +00:00
Bill Currie
255a7522bd merge IN_SendKeyEvents and IN_Commands into IN_ProcessEvents 2003-04-08 18:45:12 +00:00
Bill Currie
c731afa957 hopefully fix the input grabbing (and evem more hopefully, without driving
Despair to ... um... ;)
2003-03-07 03:55:51 +00:00
Ragnvald Maartmann-Moe IV
646f875a34 Add return value checking for in_grab. Also some dead code removal, dangling comment and white space cleanup. 2003-02-13 19:03:48 +00:00
Bill Currie
c103d77157 make SND_ClearBuffer get called directly by Block/UnblockSound and remove
S_ClearBuffer from the api
2003-01-31 19:55:21 +00:00
Bill Currie
c788a2ea57 remove a redundant call to S_Init_Cvars and call S_ClearBuffer when sound
is blocked and unblocked.
2003-01-31 17:56:05 +00:00
Bill Currie
761a7546dd re-arrange things so __attribute__ and __builtin_expect are properly
autoconfiscated so rcsid will continue to work with gcc 3.3
2003-01-15 15:31:36 +00:00
Bill Currie
6917d2c1a3 fix a silly pointed out by sixk@ifrance.com 2002-10-05 02:21:44 +00:00
Ragnvald Maartmann-Moe IV
e7f6930efa Hacky key repeat handling, just like in_x11.c! 2002-08-29 04:00:30 +00:00
Ragnvald Maartmann-Moe IV
9bf3ccd813 SDL-using targets are now aware if the cursor is in the window or not. in_snd_block now works for them.
(Also cursor hiding when in window was fixed for -sgl, already committed)
2002-08-21 06:06:05 +00:00
Ragnvald Maartmann-Moe IV
ee7e3326e0 Merging common SDL video code into context_sdl.c, to make adding SDL features easier. 2002-08-21 00:05:27 +00:00
Bill Currie
78a3e398d5 * taniwha gets medieval on extern 2001-10-28 04:23:37 +00:00
Bill Currie
b5341f0d13 we now compile and link with -fno-common. this cleans up the multiple,
uninitialized declarations of variables.
2001-10-23 16:55:23 +00:00
Bill Currie
2d068c0745 massive windows.h and WIN32 cleanup. 2001-10-16 21:40:45 +00:00
Ragnvald Maartmann-Moe IV
fce4b903eb Fix double joystick init in sdl targets. 2001-10-01 21:50:35 +00:00
Bill Currie
b1f4a778f9 the rcsid commit from hell }:> 2001-09-28 06:26:31 +00:00
Bill Currie
7aa5ab75de header dep cleanup and IN_LL_Commands is /gone/ 2001-08-30 20:32:27 +00:00
Bill Currie
822e637e11 s/_windowed_mouse/in_grab/ and in_grab and in_dga now use callbacks 2001-08-30 20:04:13 +00:00
Ragnvald Maartmann-Moe IV
793efd6976 Whitespace. 2001-08-27 01:00:03 +00:00
Bill Currie
79be73f507 we now require sdl 1.2 for sdl support 2001-08-23 20:28:41 +00:00
Bill Currie
015fe8071a sdl 1.1.4 doesn't have SDLK_COMPOSE 2001-08-22 04:01:50 +00:00
Zephaniah E. Hull
20adccc9e4 A few things, first is that I removed the (rather broken) serial
networking support.

Second, I moves keys.c from qw and nq to libs/video/targets when I did
the next thing.

Existing user configs which do binds, sledge hammer. Sledge hammer,
existing user configs which do binds. *WHACK* *WHACK* *WHACK*

See, much nicer now.

Someone should document it, and fix all targets which don't use SDL for
input. (I honestly don't expect svgalib and the like to ever be fixed.)
2001-08-16 09:19:36 +00:00
Zephaniah E. Hull
8f7918d4ad Fix the other keypad keys for SDL input.
Ditch sensitivity as a name, we now have in_mouse_accel,
in_mouse_filter, and in_mouse_pre_accel.
2001-08-15 23:04:54 +00:00
Bill Currie
b33b9fc58a remove a redundant call to JOY_Command 2001-08-14 22:10:55 +00:00
Zephaniah E. Hull
ebb03c1c65 Fixed the sdl and sgl targets to work a bit better. 2001-08-06 00:16:48 +00:00
Bill Currie
22dbc62c71 damn magic numbers. sdl didn't like the key num shift either 2001-07-20 05:18:46 +00:00
Bill Currie
323015b11a include/QF header cleanup. including config.h (or any file from include) is
a nono because headers in include/QF get installed, but include don't and thus
would break quakeforge-dev.
2001-05-31 05:33:13 +00:00
Bill Currie
527471a7de *-wgl finally links (who knows if it works?:) and some more conceptual
cleanup
2001-04-17 15:55:33 +00:00
Bill Currie
f9c9e4fba7 everything except *-3dfx (unknown status) now builds 2001-04-16 03:55:44 +00:00
Ragnvald Maartmann-Moe IV
66fafd3e0e First stage of video and input system merge. The city has collapsed, wreckage sifting ensues... 2001-04-15 04:18:22 +00:00