Commit graph

368 commits

Author SHA1 Message Date
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
Yamagi Burmeister
efd1ddb1c5 Initialze vid_gamma 2012-08-02 15:33:42 +02:00
Yamagi Burmeister
8141380030 Allow to set the aspect ratio via the menu 2012-08-02 15:18:58 +02:00
Yamagi Burmeister
de9dda7432 Restart the refresher when certain values are changed via the menu 2012-08-02 14:59:51 +02:00
Yamagi Burmeister
3ab4e58df5 Cleanup the video menu, remove support for different refresher 2012-08-02 14:39:33 +02:00
Yamagi Burmeister
c6eaf5c876 Mobe LIBGL makro to common.h and replace all hardcoded libGL calls with it 2012-08-02 14:06:32 +02:00
Yamagi Burmeister
f89bb3265e Combine qgl.c glwindow.h into one generic file 2012-08-01 15:51:39 +02:00
Yamagi Burmeister
e5f70fcf40 Merge qal.c into one generic file for all platforms
To archive this, 3 new functions Sys_GetProcAddress(), Sys_LoadLibrary()
and Sys_FreeLibrary() were added to abstract the library loading code
into a platform independend API.
2012-08-01 14:54:18 +02:00
Yamagi Burmeister
399c581f06 Move src/windows to src/backends/windows 2012-08-01 14:12:05 +02:00
Yamagi Burmeister
3fb8492398 Move src/unix to src/backends/unix 2012-08-01 13:58:10 +02:00
Yamagi Burmeister
3918d3ba34 Change the VERSION number from float to string
Using a float number as version number is a bad idea. Correct this long
standing problem by changing it to a string. If we ever want to compare
version numbers, 2 integer constants "MAJOR_VERSION" and "MINOR_VERSION"
should be added.
2012-07-27 08:57:52 +02:00
Yamagi Burmeister
b52336850f Reformat the client 2012-07-22 15:34:45 +02:00
Yamagi Burmeister
7bbfa01a87 Fix a unlogical statement 2012-07-22 12:51:53 +02:00
Yamagi Burmeister
590baaa3e9 Remove some potential harmfull "long"
While the use of "long" was harmless in this case, it's unnecessary and
we try to keep Quake II free from longs.
2012-06-22 09:44:26 +02:00
Yamagi Burmeister
7b54f3d668 Merge branch 'master' into windows
Conflicts:
	src/client/sound/snd_al.c
2012-06-14 12:27:09 +02:00
Yamagi Burmeister
61b10f12da Fix a crash when entering water with s_openal = 0 2012-06-14 12:24:29 +02:00
Yamagi Burmeister
47707a728e Use Windows headers on Windows 2012-06-11 10:18:44 +02:00
Yamagi Burmeister
e8eea857e4 Fix another buffer overflow, this time when writing the config.cfg
This overflow is a problem on all platforms but manifested itself
especially on a german Windows XP due to it's long profile path.
2012-06-10 18:45:14 +02:00
Yamagi Burmeister
d8e35b82c7 Reformat the sound system code
caedes and some other people will probably kill me for this, but I'm the
idiot who has to maintain the code. And that's much easier if it's in a
readable und writeable state.
2012-06-06 11:13:07 +02:00
Yamagi Burmeister
51cc3369b1 Provide an optimized case for mixing 16 bit / 2 chan sound
With sound quality "high" nearly all sound is provided as 16 bit PCM
with 2 channels. Since most players use this setting, provide an optimed
case for it. This should also solve the cracking due to overshot
soundbuffers, which was especially noticeable on Windows. This changes
only effects the old SDL soundbackend and not OpenAL.
2012-06-06 10:34:36 +02:00
Yamagi Burmeister
15400b2133 Use memset() instead of array magic 2012-06-06 10:02:55 +02:00
Yamagi Burmeister
272b897919 Reformat snd_mix.c 2012-06-06 09:58:06 +02:00
Yamagi Burmeister
5d272eeab8 strsep() is a FreeBSDism. Switch over to strtok(). 2012-06-04 10:53:55 +02:00
Yamagi Burmeister
9823a23a91 Initialize sounds[] to avoid garbage branch conditions down below 2012-06-04 09:13:29 +02:00
Yamagi Burmeister
35e5bbb48b Convert rand(), crand() and frand() to randk(), crandk() and frandk() 2012-06-04 09:13:29 +02:00
Yamagi Burmeister
edae2b0473 Change atof() to strtod() 2012-06-04 09:13:28 +02:00
Yamagi Burmeister
e9c90e16a9 Change atoi() to strtol() 2012-06-04 09:13:28 +02:00
Yamagi Burmeister
0aa75f8704 Explicit cast 2012-06-04 09:13:28 +02:00
Yamagi Burmeister
32fe0ba21f Prevent a buffer overflow. 2012-06-01 18:13:30 +02:00
Yamagi Burmeister
0e1520d29a Remove dead code and assignments 2012-06-01 17:05:40 +02:00