Commit graph

497 commits

Author SHA1 Message Date
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
59ac327aba Solve some layer violations
- Handling of key combinations like Alt + Return or Shift + Escape
  clearly belong into the frontend. Now that the client won't clear
  the keystates any more it's save to handle them there.

- The 'force_centerview' command belongs into the client move stuff.
  I guess it was part of the backend sinces it messes with mouse
  handling. Since the renderer is now part of the client that's not
  necessary anymore.

- One can argue that +mlook and -mlook belong into client move stuff,
  too. But since we need there calculations in the backend anyway,
  leave things like they are.
2015-01-18 09:31:37 +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
47634e64e8 Rename the 'ogg volume' functions to 'ogg enable'
These functions never set the OGG volume, the just enables or disabled
OGG playback. Rename them to match their purpose.
2014-10-25 09:40:13 +02:00
Yamagi Burmeister
4d5cb5686d Rename the "cdvolume" functions to "cdenable"
Historicaly this functions were used to adjust the cd music volume. In
YQ2 they were converted to enable or disable the cd music. Change their
name to match their current purpose.
2014-10-25 09:31:44 +02:00
Yamagi Burmeister
7742cd4893 Fix indention 2014-08-24 10:26:50 +02:00
Yamagi
637aae9021 Merge pull request #50 from bibendovsky/lpf
Fix underwater sfx in demos
2014-08-23 16:42:07 +02:00
bibendovsky
74c8c60e38 Turn off underwater sfx on disconnect 2014-08-17 18:58:26 +03:00
Yamagi Burmeister
f6a48b44bf Use the correct abs() flavor 2014-08-03 10:49:33 +02:00
Yamagi Burmeister
3fc549ca42 Implement scaling of several non-menu elements
- The loading plaque
- The pause plaque
- The "Quit Screen"
2014-06-24 19:39:18 +02:00
Yamagi Burmeister
af70f276a9 Implement scaling of the menu
This commit has some drawbacks:
- It's rather hacky. The Quake II menu is crap and was never intended
  to be scaled. My approach was to add scaling to most of the generic
  functions and handle all the special cases in the non generic parts
  of the menu. A better solution would require to rewrite at least
  parts of the menu. And like it's said in qmenu.c: I won't do that.
- Some menu elements are aligned to the right, others to the left. In
  many places magic numbers are used to align elements by hand. This
  makes it very hard to impossible to implement a scaling logic which
  works in all situations. With this approach most menus look good up
  to at least a scaling factor of 3. Especially the "Player Setup"
  menu is very problematic at small disalignements are unavoidable.

Please note, that only the menu system itself is scaled. Some elements
like the the "Quit Screen" or the loading plaque are still missing. They
will be done in a later commit.
2014-06-24 19:39:10 +02:00
Yamagi Burmeister
2795088e86 Initialize the screen handling code before the renderer
This change is needed to break a otherwise fatal cycle:
- The renderer calls VID_MenuInit()
- VID_MenuInit() calls SCR_GetMenuScale()
- SCR_GetMenuScale() relies on gl_menuscale which is still
  uninitialized at this time.
2014-06-24 19:11:53 +02:00
Yamagi Burmeister
97139029b0 Implement gl_menuscale 2014-06-24 19:11:46 +02:00
Yamagi Burmeister
61667bd03d Decouple gl_hudscale and gl_consolescale 2014-06-23 08:09:01 +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
Yamagi Burmeister
074891a8a2 Implement gl_hudscale for the console
After this change the HUD scaling is applied to the console and notify
messages. This was requested by many users.
2014-06-21 18:17:12 +02:00
bibendovsky
c1a3526a67 Add underwater sfx for SDL backend 2014-06-16 08:45:39 +03:00
bibendovsky
e4bb8b25a3 Fix compiling under Visual C++ when OggVorbis playback enabled 2014-06-13 14:07:56 +03:00
bibendovsky
8a28470a7a Enable TGA sky textures when retexturing is disabled 2014-06-10 10:45:49 +03:00
bibendovsky
5d4c165b19 Stop Visual C++ to complain about uninitialized variable 2014-06-10 10:42:44 +03:00
bibendovsky
1ee09e3c20 Fix compiling under Visual C++ 2014-06-10 10:35:28 +03:00
bibendovsky
a53f321bed Use proper API to get pointers to OpenAL EFX extensions 2014-06-10 10:23:43 +03:00
svdijk
013ad4aa45 screen: simplify SCR_GetHUDScale. 2014-05-08 04:12:39 +02:00
svdijk
9ae8192f04 video: revert commit 97e149ba9e, implement a better fix for this. 2014-05-07 18:21:12 +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
svdijk
9be6a7ec46 videomenu: minor tweak regarding the aniso filtering option. 2014-05-05 18:31:08 +02:00
svdijk
092e7e1888 SCR_ExecuteLayoutString: also apply scale to xl and yt to avoid overlap. 2014-05-04 21:07:23 +02:00
svdijk
d823940370 Also apply gl_hudscale cvar to the inventory. 2014-05-04 21:05:56 +02:00
svdijk
ba16e501d2 videomenu: minor cvar ordering change. 2014-05-04 20:47:52 +02:00
svdijk
4e8a5565a9 videomenu: remove obsolete options, some cleanup. 2014-05-04 20:44:29 +02:00
svdijk
af852ea5bd videomenu: add an "aniso filtering" option. 2014-05-04 20:26:12 +02:00
svdijk
97e149ba9e video: avoid artefacts when resizing the viewsize when paused. 2014-05-04 16:05:32 +02:00
svdijk
6b79e31d8d videomenu: correct the "screensize" slider range. 2014-05-04 13:39:05 +02:00
svdijk
a7edd7c466 video: apply changes to gl_anisotropic immediately. 2014-05-01 21:20:00 +02:00
svdijk
3bb9f49f19 videomenu: readd 16x MSAA option, check what we got after setting mode. 2014-05-01 20:52:25 +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
svdijk
a2b6f1b7af videomenu.c: remove unsupported "16x" option from MSAA list. 2014-04-20 03:12:13 +02:00
svdijk
a0ca33901e videomenu.c: minor fix regarding the multisampling option. 2014-04-19 13:00:12 +02:00
svdijk
0973c1de10 videomenu.c: consistent capitalization. 2014-04-17 20:25:39 +02:00
svdijk
04c5b881a2 Video menu: add msaa option. 2014-04-16 22:47:23 +02:00
svdijk
ec8edb5d3b Video menu: add vsync option. 2014-04-12 15:03:40 +02:00
svdijk
4d201b3ff0 OpenAL: fix lagging audio when leaving the menu. 2014-04-12 14:27:10 +02:00
svdijk
3d2ff6795d R_ScreenShot: set GL_PACK_ALIGNMENT to 1 for glReadPixels. 2014-03-30 17:30:58 +02:00
svdijk
1fd8a853d1 R_ScreenShot: add another sanity check. 2014-03-30 16:32:36 +02:00
svdijk
ded9ed51ea R_ScreenShot: abort if malloc fails. 2014-03-29 19:52:24 +01:00
svdijk
e86aabc949 Menu: make sure spincontrols don't start out of range. 2014-03-29 18:50:48 +01:00
svdijk
219882dafa Make default video mode consistent, some comment/whitespace changes. 2014-03-28 21:12:15 +01:00
Yamagi Burmeister
5ce3a266e9 Force OpenGL path for light primitives
This fixes a long standing and until now unnoticed bug with negative
colored dynamic lights. Since we never set the OpenGL renderer as out
renderer, remaining softrenderer code was executed and the corresponding
effects never rendered. This manifested itself in missing darkness
around the "gravity well" in rogue.
2014-02-12 19:39:23 +01:00
Yamagi Burmeister
d0d81cf3ac Revert "Define HAVE_BOOLEAN on Windows"
This reverts commit 5e1419e6ba. It was a
bad idea, breaking 64 bit compatiblity on Windows. It should have never
been committed...
2014-01-28 08:13:21 +01:00
Yamagi Burmeister
eb879bb9b6 Rename VERSION to YQ2VERSION to prevent collisions
Newer jpeg versions (I guess starting with 9) define an macro
"VERSION", colliding with ours. While wie could #undef it, take
the less hacky route and rename it.
2014-01-27 18:14:36 +01:00
Yamagi Burmeister
5e1419e6ba Define HAVE_BOOLEAN on Windows
Without this define newer versions of jpeg define a type "bool" as char,
while the MinGW headers define it as "unsigned short". Automake should
have detected that, but...
2014-01-27 17:28:59 +01:00
Yamagi Burmeister
93b38c6312 Define macros needed by 26bbfea.
The code used build fine on my workstation, since Mesa3D has the
required macros since ever. But on Windows gl.h is still limited
to OpenGL 1 (really?).
2014-01-27 17:26:33 +01:00
Yamagi Burmeister
26bbfead45 Add support for MSAA.
MSAA was a long wanted and often requested feature. Just set set the
desired number of samples with gl_msaa_samples and do a vid_restart.
This code is based upon work done in Hecatomb.
2014-01-26 09:53:10 +01: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
Yamagi Burmeister
e7ac0653b2 Merge branch 'sdl2' 2013-11-09 13:21:39 +01:00
Yamagi Burmeister
5e85fbc8b9 Allow arbitrary screen sizes.
Without this change the width of the render windows was required to be a
multiple of 8, making it unable to use strange resolutions like 1366x768.
This change is based upon an idea submitted by "tmcp" in pull request
27.
2013-10-12 09:29:19 +02:00
Daniel Gibson
51b7607548 SDL2 support (mostly)
Makefile is adjusted, it compiles and works mostly, but
* For some reason (bug in SDL_GetRelativeMouseState() ?)
  mouse input doesn't work properly.. it seems to be bound
  to window borders, even if input is grabbed
* some keys can't be used anymore because there's no SDLK_*
  for them anymore (gotta find out if this is important)
* Maybe some of the changes need cleanup
2013-08-26 00:55:31 +02:00
Yamagi Burmeister
005fea6c94 Call GLimp_GetProcAddress directly 2013-07-27 08:50:20 +02:00
Yamagi Burmeister
88bd357231 Remove support for old SGI Opengl extensions
Those extensions have become part of ARB about 15 years ago and most if
not all video cards still in use should support the ARB versions. I
believe that at least parts of this code were disfunctional.
2013-07-27 08:47:28 +02:00
Yamagi Burmeister
ad52c5c888 Rename all qgl* functions top their OpenGL counterparts
This removes the need to define the old qgl function names to the
official OpenGL names. The OpenGL functions are now called directly
without any abstraction.
2013-07-27 08:47:21 +02:00
Yamagi Burmeister
ecc4302f94 Alter Makefile and header pathes following the refresh move
With this change the "refresh" make target doesn't any longer exists.
It was merged into the "client" target. One will need a "make clean"
before building yQ2 after this change.
2013-06-15 10:37:11 +02:00
Yamagi Burmeister
8a17f20e64 Move refresher to client/refresh
This is the more appropriate place now that the refresher is merged into
the client
2013-06-15 10:37:11 +02:00
Yamagi Burmeister
9af9f54f36 Remove QGL pointers
This is a manual merge of Hecatomb Q2 ref b8952d5. Manual since git
couldn't do an automerge for some reasons... Notable changes are:
- QGL function pointers are removed, libGL is linked directly
- The OpenGL log framework is removed. It was disfunctional
- The gl_driver cvar is finaly gone
This change is currently untested on Windows and OS. There should
be no problems but a better Makefile integration of libGL is needed.
2013-06-15 10:37:11 +02: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
8e69d9dc5c Remove vid_ref cvar
Normally setting gl_mode cvar would result in VID_LoadRefresh because
of vid_ref being "modified". After removing vid_ref out of the picture
it will "modify" vid_fullscreen to replicate the same behaviour.

Variable "name" (who used to hold refresh dll name) is now left unused

All references to vid_ref cvar has been taken out ...
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
55d6a601c9 Fix default video mode.
Revert "The default video mode is 5 (640x480). Spotted by svdijk."
This reverts commit a76d7d5cfb.
2013-05-28 20:42:57 +02:00
svdijk
1251fde6e4 credits 2013-05-24 18:21:11 +02:00
svdijk
9564b7b55e fix aspect ratio menu option 2013-05-19 18:42:44 +02:00
svdijk
6472514c8f Lets not do the last two commits just before 5.11
Revert "change several strcat calls to Q_strlcat calls"
This reverts commit ab879f1bc7.

Revert "change (v)sprintf calls to (v)snprintf calls"
This reverts commit b46e210d76.
2013-05-18 18:59:39 +02:00
svdijk
ab879f1bc7 change several strcat calls to Q_strlcat calls 2013-05-17 22:25:18 +02:00
svdijk
b46e210d76 change (v)sprintf calls to (v)snprintf calls 2013-05-17 21:50:31 +02:00
svdijk
4bef586e67 remove unnecessary fileHandle_t typecasts 2013-05-13 18:49:16 +02:00
svdijk
b08fbb7cbf replace remaining strncat calls with memcpy calls 2013-05-13 18:38:37 +02:00
svdijk
8fad0a9008 change some more (mostly wrong) strncpy calls to Q_strlcpy calls 2013-05-12 20:25:00 +02:00
svdijk
7c1d2b4219 fix incorrect typecasts in FS_* calls 2013-05-11 15:22:27 +02:00
svdijk
e07294b6b1 replace most strncpy calls (several of them wrong) by Q_strlcpy calls 2013-05-11 14:44:36 +02:00
svdijk
3c62c2be5a ogg/cda: move defaults from yq2.cfg to engine 2013-05-08 20:06:53 +02:00
svdijk
1c431e14ac make the load/save statusbar a bit more informative 2013-05-08 20:01:44 +02:00
Yamagi
b58b78714b Merge pull request #23 from alericoveri/osx-aluwf
AL_InitUnderwaterFilter wasn't being compiled conditionally
2013-04-28 08:46:42 -07:00
svdijk
fa9548fcad M_Popup: some more tuning 2013-04-28 12:31:51 +02:00
Alejandro Ricoveri
1c84805c1f AL_InitUnderwaterFilter wasn't being compiled conditionallyi 2013-04-27 17:21:15 -04:30
svdijk
8e1bb70932 M_Popup: align the same as the old popups 2013-04-26 18:55:23 +02:00
svdijk
082c2d454f cinematics: minor rewriting of cin_force43 behaviour 2013-04-24 20:33:12 +02:00
svdijk
3c6a57129e cinematics: force 4:3 aspect ratio (new cvar cin_force43) 2013-04-22 20:44:47 +02:00
svdijk
b9deabd86a videomenu: fix CUSTOM_MODE 2013-04-21 18:44:50 +02:00
Yamagi Burmeister
277c2b9567 Use the same default volume on all platforms again
Testing showed that after the last round of sound changes FreeBSD is the
only platform with distorted sound when s_volume is set too high. I'm
pretty sure that it's caused by a bug in the OSS backend of openal-soft.
I'll need to analyze this more and maybe write a problem report. Since
FreeBSD users should be experienced enough to lower the volume when
there are problem (there's a FAQ in our README!), use the same default
volume on all platforms.
2013-04-21 12:02:38 +02:00
Yamagi Burmeister
3ac88e1bda Rename snd_wav.c to wave.c to get in line with other files 2013-04-21 11:32:20 +02:00
Yamagi Burmeister
84020e4d8e Rename snd_vorbis.c to ogg.c. This name is more appropriate 2013-04-21 11:30:07 +02:00
Yamagi Burmeister
fb7b97d868 Minor cleanups to snd_vorbis.c
- Remove any forward declarations
- Tightens checks for SDL
2013-04-21 11:27:31 +02:00
Yamagi Burmeister
78ce1e491c Rename snd_al.c to openal.c 2013-04-21 11:19:01 +02:00
Yamagi Burmeister
1d6aaca68e Whitespace cleanup 2013-04-21 11:14:00 +02:00
Yamagi Burmeister
a1f5ccfcac Update header comment 2013-04-21 11:13:26 +02:00
Yamagi Burmeister
92be8c75e3 Rework volume handling 2013-04-21 11:06:18 +02:00
Yamagi Burmeister
b9e71913ae Restructure and refactor snd_al.c 2013-04-21 10:40:00 +02:00
Yamagi Burmeister
e5505f90d7 Rename snd_dma.c to sound.c. yq2 never used DMA. 2013-04-20 15:09:57 +02:00
Yamagi Burmeister
957e4d4735 Whitespace cleanup 2013-04-20 15:06:47 +02:00
Yamagi Burmeister
242a62384c Update header comment 2013-04-20 15:06:15 +02:00
Yamagi Burmeister
b9a62ff34b Cleanup snd_dma.c 2013-04-20 15:01:31 +02:00
Yamagi Burmeister
720db15de9 Cleanup local.h of the sound system 2013-04-20 14:20:58 +02:00
Yamagi Burmeister
ef7c85bbcd yq2 never had a dma based soundengine. Let's call it just "sound". 2013-04-20 13:40:54 +02:00
Yamagi Burmeister
b45876ffdd Refactor the SDL part of S_Update() into the backend 2013-04-20 13:32:58 +02:00
Yamagi Burmeister
d9643e8b76 Refactor the SDL part of S_RawSamples into the backend 2013-04-20 13:16:40 +02:00
Yamagi Burmeister
2c356d142e Refactor the SDL part of S_LoadSound into the SDL backend 2013-04-20 10:26:31 +02:00
Yamagi Burmeister
0c93ecbddb Print the number of OpenAL sources in the backend 2013-04-20 10:26:19 +02:00
Yamagi Burmeister
cbecc5b2dc Retire snd_mem.c and integrate it into snd_dma.c and the backends 2013-04-20 09:19:59 +02:00
Yamagi Burmeister
3989ff73b2 Retire snd_mix.c and incorporate it into the SDL backend 2013-04-20 09:03:47 +02:00
Yamagi Burmeister
35ba5b0de1 Move all generic function used only by the SDL backend into it
Additionally rename those function to SDL_ prefix and refactor
them a little.
2013-04-20 08:40:53 +02:00
Yamagi Burmeister
f1ce0c0c00 Move all SDL backend function to the SDL backend and use SDL_ as prefix 2013-04-20 08:02:13 +02:00
svdijk
20110faeed Some minor cleanup/tuning/commenting 2013-04-14 18:46:08 +02:00
svdijk
4465d7e045 menu: some style syncing between savegame/server listing 2013-04-14 16:17:00 +02:00
svdijk
d297b97c12 menu: Rework the save/load menu a bit using M_Popup (get rid of excessive green) 2013-04-14 16:13:58 +02:00
svdijk
f9cda84d6e menu: Use M_Popup for the server search message 2013-04-14 16:07:37 +02:00
svdijk
1d86145f7f menu: Use M_Popup for the sound system restart message 2013-04-14 16:03:59 +02:00
svdijk
5daee97e2a menu: Add a generic popup function M_Popup 2013-04-14 14:49:45 +02:00
Yamagi Burmeister
9def7d908f Silence another 2 gcc48 warnings due to creative array usage
This is nearly the same case as in 1bee58840d and should be a no-op.
2013-04-07 13:54:24 +02:00
svdijk
41d89c7171 Whitespace 2013-03-24 18:12:14 +01:00
svdijk
346d9873f0 Fix double server entries in multiplayes menu.
Also display netadr in statusbar instead of in the list (lowres compatible).
2013-03-24 18:08:06 +01:00
svdijk
f36f708b24 Unbind default bindings before loading stored bindings (new cvar cfg_unbindall) 2013-03-16 22:49:48 +01:00
Yamagi
2300a547a8 Merge pull request #19 from JayWalker512/stupid-laptop-res
Added support for 1366x768 laptop resolution in video menu. This will break existing configs one again if a mode of 1440x900 or higher is used.
2013-01-20 03:08:00 -08:00
Yamagi Burmeister
56d920162e Reduce default volume to 0.3 on non-linux-platforms
If the volume is set too high the OpenAL backend preamplification leads
to overdriven sound samples. It's not quite understandable to me why
that only happen on platforms other than Linux (maybe a bug in OpenAL?)
and there's not much we can do against it besides reducing the volume.
As the side note: Simmilar behavior can be seen at least in ioQ3 and
dhewm3...
2013-01-20 12:01:10 +01:00
Yamagi Burmeister
bc5c308684 Add a cvar "s_openal_maxgain" to clamp AL_GAIN
This cvar is a last resort if all other measures to prevent overdriven
preamplifation fail. Setting it to lower value than 1.0 limits the
overall dynamic range, so sound quality is lost. This is especially
hearable when low volume samples are encountered, like the shotgun
combined with the silencer.
2013-01-20 12:01:10 +01:00
Yamagi Burmeister
1f5012aec3 Calculate the AL_GAIN by s_volume and don't set a global AL_GAIN 2013-01-20 12:01:10 +01:00
Yamagi Burmeister
548bbeb129 Pass raw "float" volume to OpenAL
The client uses float values between 0.0 and 1.0 to represent the volume
of sound samples. This is the range required by OpenAL. But the generic
part of the sound system multiplied the raw float value with 374 and
clamped it to a full integer. That worked by luck withth the OpenAL
backend but broke at least the silencer powerup. Solve this problem by
adding a new field "float oal_vol" to the channel_t struct and use it to
pass the raw float value to OpenAL.

This fixes issue #18
2013-01-20 12:00:29 +01:00
Brandon Foltz
d6feeeff8d Added support for 1366x768 laptop resolution in video menu. 2013-01-18 14:59:44 -05:00
Yamagi Burmeister
2890dafbda Divide effect volume by 3 when using the OpenAL backend
Since OpenAL 1.15 AL_GAIN has much more weight than before. That leeds
to overdriven effect samples unless the volume control is set to a very
low level. With this change volume can be set to a high level without
distorting. But there's one problem. A division by 2 is to low to rule
distortion out and by 3 the game is a little bit quieter than before. A
value of 2.5 would be optimal but is not applicable since the volume is
represented by an integer. I've choosen 3 to be aon the save side.

As a side note: This problem was very less worse on Linux than on
Windows and FreeBSD. Maybe Linux guys need to pump there volume up
to compensate this work-around.
2013-01-06 17:09:30 +01:00
svdijk
0f985d3e45 Cleanup the keybindings menu code. 2012-12-29 18:21:46 +01:00
svdijk
4f5ba24003 Some more load/save menu tuning (better QMF_GRAYED use). 2012-12-29 17:18:30 +01:00
svdijk
83037ace88 Some load/save menu tuning. 2012-12-29 17:16:53 +01:00
svdijk
74f244801f Fix game saving on page 2(+).
Fixes issue #16.
2012-12-26 09:30:16 +01:00
svdijk
bcc6f62b61 Make the Load/Save menu multi-page (support low-res). 2012-12-09 17:57:00 +01: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
svdijk
561add00a8 cl_main:CL_UpdateWindowedMouse() optimization. 2012-11-16 20:30:59 +01:00
Yamagi Burmeister
a76d7d5cfb The default video mode is 5 (640x480). Spotted by svdijk. 2012-11-14 21:12:21 +01:00
svdijk
247e2baa3a More mouse grab/release tuning. 2012-11-14 21:08:07 +01:00
svdijk
eb8a2d792f Minor console mouse release tweak. 2012-11-05 21:33:44 +01:00
Yamagi Burmeister
86ca73754d Silence a compiler warning on OS X 2012-11-04 09:18:37 +01:00
svdijk
64632bbc3b client/cl_main.c:UpdateWindowedMouse(): release mouse in menu. 2012-10-30 20:36:23 +01:00
svdijk
76e3480ccb Some rewriting of windowed_mouse setting, in preparation of releasing the mouse in the menu. 2012-10-30 20:36:15 +01:00
svdijk
a1adac8ba9 client/menu/menu.c: make ConsoleFunc() consistent with cl_console:Con_ToggleConsole_f(). 2012-10-30 20:36:10 +01: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
a79b705c13 Make cl_maxfps persistent 2012-10-06 09:15:32 +02:00
Yamagi Burmeister
ba10009aa5 Add support for Mac OS X
These are the code changes and Makefile changes necessary to build and
run Yamagi Quake II on Max OS X. OS X 10.6 or higher is required, older
version may work but we cannot guarantee it. The documentation will be
added in another commit. This patch was contributed by W. Beser, I made
only some small cosmetical changes.
2012-09-14 11:21:02 +02:00
Sander van Dijk
f292c1e22d Fix custom resolution handling in the video menu. 2012-08-06 14:04:12 +02:00
Sander van Dijk
3d4bbe6c31 Fix aspect menu options. 2012-08-03 08:05:09 +02:00