Commit graph

45 commits

Author SHA1 Message Date
Valery Guskov
294a4dfbb9 cleaning up
removed non-minimal changes from porting stereo-quake
2016-04-04 00:25:20 +03:00
Valery Guskov
b3bea99597 added new code for 3d crosshair
original meat can be thrown out
2016-04-03 00:26:35 +03:00
Valery Guskov
0f8bda3c33 first attempt at porting separation support
ported from stereo-quake
http://www.benryves.com/products/stereoquake
2016-04-01 08:51:11 +03:00
Daniel Gibson
b5d810e5d8 Merge pull request #74 from yquake2/fix-max_ospath
Set MAX_OSPATH to 4096 for !Windows + Fixes for that
2015-05-31 18:28:57 +02:00
Daniel Gibson
d19cace026 Set MAX_OSPATH to 4096 for !Windows + fixes for that
sounds easy, right?
Except some genius decided to save CVAR_LATCH cvars in buffers of
MAX_OSPATH length into savegames.. so just changing MAX_OSPATH
breaks savegame compatibility.
Fortunately, this assumption only matters in SV_WriteServerFile() and
SV_ReadServerFile() so I worked around it by introducing a
platform-specific LATCH_CVAR_SAVELENGTH (because MAX_OSPATH was 256 on
Windows but 128 on other systems..)
2015-05-23 02:02:27 +02:00
Daniel Gibson
1ce9bdba51 Implemented a persistent, per game/mod console history
it's saved in $HOME/.yq2/$mod/history.txt

While I was at it, I made the max number of lines in the history
configurable at compiletime by introducing a NUM_KEY_LINES #define
2015-05-20 14:59:32 +02:00
Yamagi Burmeister
9bda84299c Mark all keys as "up" when the refresher is restarted
This is a less intrusive variant of the old Key_ClearState() function.
When the refresher is restarted or the menu is left, this function is
called to mark all keys as "up". That works around some corner cases
where a key is still marked "down" and thus the first stroke is detected
as a repetition.
2015-01-28 20:55:28 +01:00
Yamagi Burmeister
30fa1c5407 Use character events for some input subsystems
Until now Quake 2 used keysyms aka key events for everything, including
the console and the chat window. Since key events don't reflect if the
shift key is pressed, Quake 2 needed to convert the lower case chars to
upper case char through a hardcoded table. That lead to the problem that
the keyboard layout was utilised for lower case characters only.

Solve this long standing problem by refactoring both the input backend
and the frontends Key_Event() funktion to use character events for most
input subsystem. Character events are generated by SDL and send the
real character.

An example:
- On german keyboards shift and . is : but Quake 2 generated <.
- Now a character event with : is generated and used.

There are at least 3 disadvantes by this approach:
- The backend needs to tell the frontend if a normal character (ASCII
  32 to 126) or a special character is send. Only normal characters can
  be treated as character events.
- There may be some differences between the binding of a key seen
  through the console and seen by the game. If you have a german
  keyboard and bind :, the game may not react to :. This can be worked
  around by editing the config file.
- Users may need to rebind some keys.

Please note that Quake 2 can handle ASCII characters only!
2015-01-18 09:30:53 +01:00
Yamagi Burmeister
db10e0db87 Untangle the input system from the refresher
In the old times the refresher was a stand alone DLL. For performance
reasons and to avoid laggy input parts of the input system were
implemented in this DLL. Now that the renfresher is part of the main
binary and initialized at client startup we can remove most of the
abstractions between input system, refresher and client. Also the
input system can be treated as a normal subsystem.

Changes:
- Untangle the VID_* stuff and the IN_* stuff. The functions
  called by function pointers in in_state are now called directly
  and 'struct in_state' was removed.

- Remove input.h and rename the appropriate backend functions.
  There's no longer a need for an abstraction layer between the
  input backend and the input frontend.

- Move input initialization and shutdown into CL_Init(), like it's
  already done for all other subsystems.

- Remove Key_ClearStates(). I'm pretty sure that's a left over from
  the old Win 9x backends and unnecessary.

- General cleanup.
2015-01-16 18:23:39 +01:00
Yamagi Burmeister
97139029b0 Implement gl_menuscale 2014-06-24 19:11:46 +02:00
Yamagi Burmeister
869ce24922 Hide console scaling behin gl_consolescale
With this change it's possible to scale the HUD but not the console.
And vice versa.
2014-06-21 18:54:57 +02:00
svdijk
2b66ce0372 screen: move the SCR_DrawCrosshair declaration to the header. 2014-05-06 19:55:43 +02:00
svdijk
1d81f2e2b6 screen: auto-scale the HUD when gl_hudscale < 0. 2014-05-06 19:45:11 +02:00
Daniel Gibson
7ace8c9116 Implementing gl_hudscale cvar to scale the HUD
because it's so small in high resolutions and I'm an old man with bad
eyes.
2014-04-25 21:24:26 +02:00
Yamagi Burmeister
18733b68ce Do not allow input devices to write to command buffer
Input devices should send key events and nothing more. The ability to
add commands into the input buffer was used by the joystick code
(removed long time ago) and as a dirty hack to work around limitations
of DirectInput.
2014-01-05 18:51:27 +01:00
Yamagi Burmeister
8102e1a021 Move entitycmpfnc() to cl_view.c an reimplement it
This function is only used in cl_view.c, so no need for external
declaration. Reimplement it in a sane and on all platform 64 bit
clean way. This allows us to finally remove the horible INT macro.
2013-12-31 12:47:18 +01:00
Alejandro Ricoveri
2b0974822c Client refactoring
Some stuff being reordered
2013-06-15 10:37:11 +02:00
Alejandro Ricoveri
3e45c5e363 Refresh API refactoring
Analog functions of the former refexport_t are now public for the client
to access.
2013-06-15 10:27:30 +02:00
Alejandro Ricoveri
a7f02a5b0e The refresher is linked statically into the client, no more 'ref_gl.so'. 2013-06-15 10:27:30 +02:00
svdijk
3c6a57129e cinematics: force 4:3 aspect ratio (new cvar cin_force43) 2013-04-22 20:44:47 +02:00
svdijk
e78a18c5ca Fix the "help computer" keybinding option; some whitespace cleanup. 2012-12-09 17:56:47 +01:00
Joshua Scoggins
a578fff56a Extended the arch check in src/client/header/client.h to include ia64
For ia64 it's necessary to define int as long long instead of long int. I know
this for a fact because pointers that were encoded as long int in my LLVM and
CLIPS bridge would fail horribly when passed out of clips back into LLVM. long
long fixed it.
2012-11-30 20:30:28 -08:00
Ricardo Garcia
74beca0d11 Add "horplus" cvar to get Hor+ behavior with default FOV
If "horplus" is set, the "fov" cvar is interpreted as the horizontal FOV
in a 4:3 screen, and is adapted automatically to the current screen
aspect ratio accordingly. If not set, use the old Vert- approach.

In addition, "horplus" can also be set from the video menu by selecting
the "Auto" option for aspect ratio, which also resets the FOV value to the
standard 90 degrees.

Finally, add a 5:4 aspect ratio (1280x1024) and correct the 16:9 angle
slightly.
2012-10-28 10:20:46 +01:00
Yamagi Burmeister
f89bb3265e Combine qgl.c glwindow.h into one generic file 2012-08-01 15:51:39 +02:00
Christoph Mallon
ab034114b4 Whitespace fixes. 2012-04-30 08:25:59 +02:00
Yamagi Burmeister
ff360644fc Löse das Verzeichnis client/console auf 2010-11-25 15:32:39 +00:00
Yamagi Burmeister
b859cec1e2 Löse das Verzeichnis client/input auf 2010-11-25 15:28:41 +00:00
Yamagi Burmeister
fa23a3e516 Ein Versuch Screenshots zu ermöglichen ohne den halben Client in den
Renderer linken zu müssen
2010-10-23 09:52:39 +00:00
Yamagi Burmeister
0677833560 Fixe die gemeinsamen Symbole von Client und Refresh 2010-10-23 06:54:05 +00:00
Yamagi Burmeister
c2e06a2682 - qcommon.h -> header/common.h
- qfiles.h -> header/files.h
2010-09-01 08:45:26 +00:00
Yamagi Burmeister
b554afa486 Headerguqards für den Client 2010-07-13 18:30:43 +00:00
Yamagi Burmeister
787686a976 Dateiheader neu formatiert und "particles.h" entfernt 2010-07-13 18:19:42 +00:00
Yamagi Burmeister
afc0a66495 Noch mehr Kommandobackups für shcnelle Maschinen 2010-07-13 08:46:25 +00:00
Yamagi Burmeister
517e0f366c Besser 128 CMD-Backups 2010-06-22 16:06:04 +00:00
Yamagi Burmeister
0c961f00bf CL_ParseMuzzleFlash* zu CL_AddMuzzleFlash* umbenannt 2010-06-22 15:38:09 +00:00
Yamagi Burmeister
7841c910ca Die letzten Header neu formatiert und in Sachen Komponenten aufgeräumt 2010-06-22 15:33:23 +00:00
Yamagi Burmeister
65230953f0 Erster Schritt im Aufräumen des Headers 2010-06-19 19:58:06 +00:00
Yamagi Burmeister
33cae7f36a console.h in ein eigenes Verzeichnis 2010-06-19 19:24:58 +00:00
Yamagi Burmeister
b73a9c782c Die Input-Header in ein eigenes Verzeichnis 2010-06-19 19:18:14 +00:00
Yamagi Burmeister
82b038590d Die Sound-Header in ein eigenes verzeichnis 2010-06-19 19:04:39 +00:00
Yamagi Burmeister
ca7d174d57 Benenne cl_fx.c nach cl_effects.c um 2010-06-18 15:41:29 +00:00
Yamagi Burmeister
5708130e49 Verschiebe generisches Lichthandling aus cl_fx.c in eine eigene Datei 2010-06-18 15:27:55 +00:00
Yamagi Burmeister
e4818d35d5 Speichern funktioniert nun wieder. Das Menü spinnt aber noch 2009-10-04 09:26:46 +00:00
Yamagi Burmeister
b6f5dadf4c Merge in den Trunk:
- OGG/Vorbis Support
 - pk3 Support (ungetestet)
2009-10-03 16:06:45 +00:00
Yamagi Burmeister
05e630158a Dateien des Clients neu angeordnet 2009-03-03 13:43:32 +00:00