Commit graph

3482 commits

Author SHA1 Message Date
Jaime Moreira
b11937980b Gamepad Sticks submenu
Sticks layout and expo options moved there
Includes deadzone sliders
2022-11-08 08:13:13 -03:00
Yamagi
57db0df752 Force the GL1 overbrightbits slider to full integers.
The cvar is accepting full integers only.
2022-11-06 18:08:49 +01:00
Yamagi
dfd154b533 Merge remote-tracking branch 'devnexen/gl1_videomenuupd' 2022-11-06 18:05:25 +01:00
Daniel Gibson
17728f12c3 Workaround for #910 (explosions sometimes not drawn when in water)
Sometimes, when half-submerged in opaque water (head/camera still
above water), explosions and similar weren't drawn, because
1. The check whether a client gets a message to draw an explosion (etc)
   uses the clients origin, not the camera position
2. Apparently the map compiler was buggy and (only in some places!)
   didn't correctly mark areas in the PVS/PHS (PHS is for hearing) as
   connected even though they should be (when underwater you should be
   able to hear things in the region above the water, even if the water
   is opaque and you can't see it).

This is an experimental(!) workaround that does a second check with a
higher origin if the first check fails and the client is currently
(considered) under water.
It's totally possible that this breaks other things, I don't know..
By the way, a good place to test this is the first water area in jail1
2022-11-06 17:56:44 +01:00
David Carlier
575ea06b9d gl1 and gl3 having their own menu data 2022-11-06 16:18:53 +00:00
Yamagi
96aafef55a
Merge pull request #928 from devnexen/va_fn_sig_chang
va little signature change
2022-11-05 09:58:10 +01:00
Yamagi
5d6b56b103
Merge pull request #927 from protocultor/rumble
Controller rumble support
2022-11-05 09:56:03 +01:00
Yamagi
d58116d717
Merge pull request #916 from 0lvin/color_console
Unix: Add color output for console
2022-11-05 09:49:00 +01:00
Jaime Moreira
6998509a85 Fixed annoying rumble effect
A cool effect used in 'mine2' map ("train2"), ruined 'train' map; fixed
Player pain readjusted by type, resulting intensity is now almost equal for all
 instead of the "higher health" ones being bigger, which didn't make sense
2022-11-04 11:53:10 -03:00
Jaime Moreira
7b5f80cfc4 Rumble effects readjusted
Player pain slightly downplayed
Ambient effects can be felt from further distance
2022-11-03 15:39:00 -03:00
Jaime Moreira
1ec0a28369 Disconnecting controller hides haptic slider
CenterPrint messages must be 40 characters or lower
2022-10-24 23:46:39 -03:00
David CARLIER
0bc3ac6079 va little signature change 2022-10-23 22:27:39 +01:00
Denis Pauk
c890e59aaa Reset to default font settings instead white on black 2022-10-23 22:44:30 +03:00
Denis Pauk
66d0751caf Linux: Add color output for console
Usecase: show map name on level load.

Add colorterminal cvar for disable.

xfce4-terminal has:
 * TERM=xterm-256color
 * COLORTERM=truecolor
2022-10-23 22:44:30 +03:00
Jaime Moreira
303a627d10 Rumble workaround for SDL audio backend
Cache length is different from OpenAL, it must be greatly reduced for
a proper length to be used as the duration of the rumble effect.
2022-10-23 12:06:55 -03:00
Jaime Moreira
5a22720735 Controller Rumble / force feedback
Replaces classic "haptic" implementation, no longer available for
game controllers as of SDL 2.0.14.
2022-10-23 12:05:06 -03:00
Jaime Moreira
5c560039d8 Pause when controller is disconnected
Controller battery warnings added
2022-10-23 11:48:07 -03:00
Yamagi
1a450ef23d Add some more alignement to the video menu.
It looks better this way and is more in line with the other menus.
2022-10-23 14:56:04 +02:00
Yamagi
eab0f90289
Merge pull request #915 from devnexen/renderer_new_options
gl3/gl3es renderer display intensity/colorlight sub options.
2022-10-23 14:54:44 +02:00
Yamagi
871292934d Work around wrong palette after skiping cinematic whith developer 1.
Quake II has two palettes. One static palette used for the world and one
dynamic palette used by cinematics. Switching from the cinematic back to
the world palette is handled by putting up the loading plaque. Since a
cinematic always ends with loading somehting else this generally works.

Unfortunatly setting `developer 1` skips the loading plaque. The palette
never gets reset and the world looks like a bad LSD trip. ;) A correct
fix is complicated, because the loading plaque logic is messed up and
working by luck. Reworking the logic has a high propability breaking
corner cased exploited by mods.

Therefor take the easy route and uncoditionally switch to the world
palette when bringing up the loading plaque with `developer 1`.

Closes #925.
2022-10-23 14:50:47 +02:00
David Carlier
1a8f05b3ca gl3/gl3es renderer display intensity/colorlight sub options. 2022-10-22 21:19:28 +01:00
Daniel Gibson
690e46512e Restore stair step smoothing code for step sizes != 16
commit 93e9633382 "Port step smoothing code from r1q2." ported
r1q2 stair step smoothing for ranges that are equivalent to 8, 12 and 16
units/step.
Later in commit 7f996cc "Don't smooth half height steps" we removed
step sizes 8 and 12, because it appeared to make an elevator in hangar2
(over the water, after jump'n'run sequency) stutter.
However, in reality what made them stutter was the broken comparison
for velocity with an illegal cast, that we later fixed in
e30f82494 "Don't cast the array itself but it's content."

So now restore the smoothing for step sizes 8 and 12, which hopefully
fixes bug #923, and definitely does *not* break the elevater in hangar2.
2022-10-22 17:09:49 +02:00
Yamagi
898b87f0f4
Merge pull request #908 from 0lvin/shared_model_load
Shared model load
2022-10-19 18:58:29 +02:00
Yamagi
bd97725a3d Fix savegame backward compatibility after cfb86ac.
The steps when loading a savegame are:

1. The server loads the map.
2. Loading the map spawns all entities, i.e. their spawn func is called.
   This loads the models, precaches the sounds, etc.
3. The savegame is loaded and all the entities in the edict are replaced
   by the entities read from game.ssv.

When the monster footstep sound were added in cfb86ac, new sounds were
added to the spawn functions of most monster entities. This alters the
sound indices of all sounds precached at a later time. When a savegame
from an older version is loaded, the entities read from game.svv still
reference the old sound indices. This leads to the wrong sound getting
played.

Work around this by lazy loading the footstep sounds. Instead of loading
(precaching) them in the spawn function, load them at their first use.
This has the nice side effect of preventing the "missing sound" messages
when running without the footsteps.pkz file in baseq2/. It might lead to
short stuttering when the sound is played for the first time, though.

Closes #917.
2022-10-18 07:40:47 +02:00
Denis Pauk
b628fa9133 Share Mod_ReLoadSkins for reload images on model load 2022-10-17 22:43:40 +03:00
Denis Pauk
b2e8fbb086 Use quake style for types naming 2022-10-17 22:43:40 +03:00
Denis Pauk
f6e4f17c0a Mod_Load*: use pointer to image find 2022-10-17 22:43:40 +03:00
Denis Pauk
1dc617dee6 Mod_LoadMD2: Set max/min 2022-10-17 22:43:39 +03:00
Denis Pauk
e01e5273f8 {gl1,gl3,soft}_model.c fix const parameters 2022-10-17 22:43:39 +03:00
Denis Pauk
ae13c7e034 Share MD2/SP2 files 2022-10-17 22:43:39 +03:00
Yamagi
caab3864c6
Merge pull request #921 from BjossiAlfreds/ogg
Fixed ignoretrack0 and ogg menu option bugs
2022-10-16 18:57:35 +02:00
Yamagi
0b41a83410
Merge pull request #919 from protocultor/playerskins
Fix for crash with long player skin name
2022-10-16 18:57:16 +02:00
Jaime Moreira
f0d985dfb9 Deleted unneeded string terminators
Redundant after the usage of Q_strlcpy
2022-10-15 10:41:38 -03:00
Jaime Moreira
cc45e20bac Replaced strncpy with Q_strlcpy 2022-10-12 14:53:33 -03:00
BjossiAlfreds
e1efbecc82 Fixed ignoretrack0 and ogg menu option bugs 2022-10-12 13:42:48 +00:00
Jaime Moreira
7ca0ba4c11 Allows controller to select skin in menu 2022-10-11 17:13:26 -03:00
Jaime Moreira
b96734b9ee Skin names can have a length of 32 total
Fixes crash when entering "multiplayer" -> "player setup" menu with a skin name len > 16
Fixes "playermodels" cmd, which showed "(null)" as a final skin for every model
2022-10-11 16:58:44 -03:00
Yamagi
72ec12f8df Fix two 'comparison will always be false' warnings:
* Check the return value for `_wfullpath()`, not the returned pointer.
* Check first byte of char array, not the array itself.
2022-10-09 11:21:21 +02:00
Yamagi
658b6543ed Add fotosteps.pkz to the filelist. 2022-10-09 11:05:42 +02:00
Yamagi
4648f1f520
Merge pull request #914 from protocultor/ordered
Mods ordered by priority in menu
2022-10-09 10:50:25 +02:00
Yamagi
c5e87f5c74 Update the URL for the retexturing pack. 2022-10-09 10:47:23 +02:00
Yamagi
f03906e91f Explain were to get the optional monster footsteps assets from. 2022-10-09 10:46:49 +02:00
Yamagi
805ffac105 Give a hint that the GOG music track need a capital T on Unix.
Because Linux and Unix are case sensitive. Second half of #877.
Closes #877.
2022-10-09 10:21:23 +02:00
Yamagi
2780bf41ee Add a warning that addons need their own game.dll.
First half of #877.
2022-10-09 10:19:22 +02:00
Jaime Moreira
5c7bf732df Player skins in menu sorted alphabetically
Mods in menu are now ordered: baseq2, xatrix, rogue, ctf, the rest
2022-10-08 17:21:50 -03:00
Yamagi
746f5ad21e
Merge pull request #913 from devnexen/sdl_windowmin_pause
pause the game when window is minimized.
2022-10-08 19:44:24 +02:00
David Carlier
9298c3abc8 pause the game when window is minimized.
closes #911
2022-10-08 18:03:03 +01:00
Yamagi
75f7f7092e The always_inline does not inline the function...
...it just forces inline functions to be inlined, regardless of
restrictions.
2022-10-08 17:02:43 +02:00
Yamagi
66dcc8edf3
Merge pull request #898 from devnexen/sdl_cpupauseinstr
Sys_CpuPause uses the new SDL_CPUPauseInstruction macro if available.
2022-10-08 16:37:23 +02:00
Daniel Gibson
4d6bdcc853 If CM_LeafCluster() returned -1, don't use that as array index, fix #894
It seems to return -1 if the leaf is in the void; sometimes it
also seems to happen when you're just close to a wall, maybe due to
(mis)prediction.
ASan complains about this, but in practice it probably can't cause
issues, as the byte left to the mask array (from CM_ClusterPVS() or
CM_ClusterPHS()) will either belong to another global variable or
padding between them. Fixed it anyway.
2022-10-08 16:34:28 +02:00