Commit Graph

215 Commits

Author SHA1 Message Date
Ricardo Garcia f601ffddfc Use the real anisotropic filtering value in Vulkan
When creating the Vulkan texture samplers, make them have the real
anisotropic filtering value selected by the user. This has two side
effects:

* We no longer need two sets of texture samplers in Vulkan (one with and
  another one without anisotropic filtering).

* The anisotropic filter value in Vulkan is no longer an on/off switch
  and we use the value as chosen by the user.
2021-03-21 11:08:09 +01:00
Ricardo Garcia 15e9c5499d Remove documentation for nonexisting vk_aniso variable 2021-03-21 00:33:16 +01:00
Yamagi f1b6b82721 Pull the major release card and switch the semantics of `vid_fullscreen`
One of the most common bug reports is, that the fullscreen mode doesn't
behave like users expect. This is caused by `vid_fullscreen 1` setting
desktop fullscreen mode (a fullscreen windows) and not the native
fullscreen mode. This commits switches the semantics:

* 1: Native fullscreen, like Vanilla Quake II.
* 2: Desktop fullscreen.

With this alt-tab reverts to native fullscreen. While at it improve the
documentation, suggest setting `r_mode -2` when using `vid_fullscreen
2`. Change the menu strings to make things clearer, set `r_mode -2` when
selecting 'fullscreen window' in the menu.

I pondered several other options:

* Introducing a second cvar for the desktop fullscreen, like we did in
  dhewm3. This has the problem, that in Quake II vi_fullscreen is
  special and used to communicate changed to the renderer configuration
  between the client and renderer. A second fullscreen cvar would
  complicate this already shaky mechanism even more.
* Setting `r_mode -2` when `vid_fullscreen 2`. This might not be what
  the user wants and causes problems when we're unable to get the
  desktop resolution.
2021-03-10 10:30:21 +01:00
Yamagi ae9a248e9e Add a cvar `g_footsteps` to control the generation of footstep sound.
1: The Vanilla Quake II behaviour, footsteps are generated when the
   player is faster than 255.
0: Footstep sounds are never generated.
2: Footstep sounds are always generated.

Defaults to `1`, cheat protected to `1`.

Closes #666.
2021-03-02 15:08:23 +01:00
Yamagi 9a17eb9ac3 Make limiting power screen sounds to 16 optional.
This was added in e3e5bd1 as a work around for some openal-soft bug.
When too many audio samples got played at the same time, the global
volume dropped. This was fixed in openal-soft 0.19.0, released more
than two years ago. We're keeping the work around, because some
distros may still ship with buggy openal-soft versions and some
players may like the changed behavior. It's disabled by default.
2021-01-30 13:51:02 +01:00
Yamagi 449776d3f6
Merge pull request #654 from 0lvin/ref_vk
Sync variable names for msaa, retexturing and anisotropic filtering
2021-01-22 12:27:18 +01:00
Denis Pauk 46c24d4d18 Sync variable names for msaa, retexturing and anisotropic filtering #646 2021-01-19 21:39:44 +02:00
Hugo Locurcio 08d59ee8e8
Rename `cl_anglekicks` to `cl_kickangles` for consistency with Q2PRO 2021-01-18 04:41:57 +01:00
Yamagi 2fae58d56b Implement `singleplayer` in the dedicated server.
When set to `1`, both `deathmatch` and `coop` are forced to `0`.
`maxclients` is forced to `1`. This makes it possible to play single
player campaigns over the dedicated server.

Closes #614.
2021-01-17 11:07:46 +01:00
Yamagi f01998896f Hide the fix for sky surfaces missused for indoor lighting begind cvar.
All renderers had the fix, but it was only optional in the GL renderers.
And there it was missimplemented, cvars must be defined in the renderers
main() function. Otherwise they aren't available at startup.

Rename gl_fixsurfsky to r_fixsurfsky, implement it for all renderers and
enable it by default.
2021-01-17 10:25:09 +01:00
Yamagi 531cbdcdae Mention the Vulkan renderer on all appropriate places. 2021-01-17 10:05:04 +01:00
Yamagi a9914efde7 Implement `vk_underwater`, make the underwater warp effect optional.
This was requested in #505.
2021-01-13 21:46:15 +01:00
Yamagi 023a012e82 Change the hyperblaster back to yellow for Vanilla Q2 lightning.
In Vanilla Q2 (without any point releases) the hyperblaster projectiles
emitted white light. In the 3.21 sources it's yellow. It likely changed
in on of the (early) point releases. Change it to yellow, the code now
matches 3.21.
2021-01-11 07:34:30 +01:00
Yamagi 462a0ddff5
Merge pull request #636 from rg3/vk_resolution_scaling
Add resolution scaling to Vulkan renderer
2021-01-10 19:02:51 +01:00
Yamagi a98d533ae1 Add `cl_r1q2_lighstyle`, set to `0` for Vanilla Q2 dlight colors.
Since the first release Yamagi Quake II used the more fanzy R1Q2 colors
for some dynamic lights:

* In R1Q2 the rocket has orange light, matching the color of the fire
  trail and the generic explosion. Vanilla Quake II had yellow light,
  the same as the blaster and several muzzle flashs.
* In R1Q2 hyperblaster projectiles are emitting yellow light, like the
  normal blaster. That matches the projectile colors, the muzzle flash
  and the effect when hitting a wall. And it's more logical, since the
  hyperblaster is just a blaster on steroids. Vanilla Quake II had white
  / uncolored lights.

Add an option to revert to Vanilla Quake II colors, leave the R1Q2
colors as default. Closes #640.
2021-01-10 18:30:49 +01:00
Ricardo Garcia 930872b358 Add resolution scaling to Vulkan renderer
This commit adds a new cvar called vk_pixel_size that represents how big
pixels should look in the rendered world in order to simulate lower
screen resolutions. With its default value of 1 everything looks normal,
but with bigger sizes (e.g. 4) the rendered world starts to look
"pixelated" due to pixels appearing bigger.

To implement the effect, the viewport and scissor are modified when
drawing the world so the rendering results cover a smaller area in the
top-left corner of the image.

The post-processing fragment shader is used to scale the image back to
the swapchain size before drawing UI elements on top of it.

The UI is not affected by this change, so the existing UI scaling
options continue to work as before with no changes, adding some
flexibility to the mix.

Related to feature request #588.
2020-12-24 10:14:39 +01:00
Denis Pauk b7bdd0be72 Add vk_nolerp_list support 2020-12-12 14:45:04 +01:00
Denis Pauk 539fea96bb add vk_retexturing force flag 2020-12-12 14:45:04 +01:00
Denis Pauk 8e5f68bb68 Remove vk_round_down as regressed visual quality 2020-12-12 14:45:04 +01:00
Denis Pauk 832d9666d4 Merge vk_point_particles with vk_particle_square to vk_custom_particles 2020-12-12 14:45:04 +01:00
Denis Pauk a69c97f046 Add vk_particle_square support 2020-12-12 14:45:04 +01:00
Denis Pauk 2add32b5a8 Add documentation 2020-12-12 14:45:04 +01:00
Denis Pauk db20a6ce18 Add ioquake3 vstr/nextdemo support 2020-10-06 23:38:12 +03:00
Daniel Gibson 1d42dbc541 doc/090_filelists.md: Fix GOG music filelist
for GOG it's TrackXY.ogg, not just XY.ogg
2020-08-20 16:01:54 +02:00
Yamagi 0fdc3750e0
Merge pull request #589 from JoBergeron/listmap-cmd
added listmaps command
2020-08-20 07:19:27 +02:00
JBerg ffe9997735 Documented the new listmaps console command 2020-08-19 21:14:53 -04:00
Yamagi 1f3f796322 Add `cl_anglekick`, when set to 0 angle kicks are ignored.
Angle kicks are used for weapon recoil, damage kicks and the like.
Setting the `cl_anglekicks` to `0` ignored them, they're read from
the network but not displayed. The cvar is cheat protected, it's
reset to `1` on server connect.

Rquested by Martin via mail.
2020-08-17 14:18:51 +02:00
Daniel Gibson fd0c058b2e Implemented `coop_elevator_delay` cvar (for func_plat)
In coop it's often hard to get on the same elevator together, because
they're immediately triggered once the first player steps on it.
This cvar sets a delay (1 second by default) for the elevator to wait
before moving, so other players have some time to get on it.
If you like elevators/platforms that suck, just set it to `0` :-P

Currently only used in func_plat, if it turns out that other entities
are used for automatically triggered platforms, we'll have to adapt
those as well (I guess wait_and_change() is generally useful for that).

We're not bumping the savegame version because they should only break in
an uncommon corner case: *Coop* savegames created with clients including
this change will not work on older clients - SP savegames are not
affected and old savegames on new clients also still work.
2020-08-10 14:27:35 +02:00
Yamagi 1a6dea5a0b Add `coop_pickup_weapons`, allow a weapon to be taken several times.
In coop a weapon can be picked up only once. That's annoying, because in
coop ammunition is sparse and not getting the ammunition that comes with
a weapons make things worse. When `coop_pickup_weapons` is set to `1` a
weapon may be picked up if:

1) The player doesn't have the weapon in their inventory.
2) No other player has already picked it up.
2020-08-10 13:52:33 +02:00
Yamagi 5455ffa96f `s_doppler` should default to `0`.
The doppler effect is a game play change. And it's rather badly
implemented. Discussed in yquake2/xatrix#51.

Closes yquake2/xatrix#51.
2020-04-21 13:58:58 +02:00
Yamagi beadebbdec Document `aimfix`. 2020-04-21 13:00:00 +02:00
BjossiAlfreds 975298b3f2 Added doc entry for g_disruptor cvar in GroundZero 2020-04-21 00:28:51 +00:00
Yamagi 19214d6049 Implement adaptive vsync.
Adaptive vsync is a often requested feauture and easy to implement. Set
`r_vsync` to `2` to enable. This is untested because my system doesn't
support it.
2020-04-20 12:31:25 +02:00
Yamagi fc99e5456f Make the gun fov optional.
Set r_gunfov to force the gun fov to be the same as the global fov.
While here finally commit somes missed parts of 50d442c.
2020-04-20 11:57:27 +02:00
Con Huevos Guey df54d89fae
Document aynsc configuration correction.
Document stated setting 'async 1' disabled asynchronization.  This has been corrected.
2020-03-18 06:42:35 -05:00
Yamagi 8114748018 Document gl1_particle_square. 2020-01-12 11:05:15 +01:00
Yamagi fbf103b9c5 Update URL to the Windows build envs. 2019-11-17 12:42:13 +01:00
BjossiAlfreds 2b27665446 coop_baseq2 documentation added under General section in cvar docs 2019-11-04 16:40:44 +00:00
BjossiAlfreds c7b412e768 Added some text to cycleweap doc and added name to credits 2019-10-12 23:51:56 +00:00
Yamagi b24a75ec32 Document how map rotations are configured.
This closes #457.
2019-10-12 16:45:55 +02:00
Yamagi d4a914644c Document the commands added by YQ2. 2019-10-12 16:39:42 +02:00
Yamagi e3c3875bda Explain how option strings with quotation marks are given at cmd-line.
This is part of #457.
2019-10-12 16:25:19 +02:00
Yamagi 08a905b6b2 Update the document index to match our new filenames. 2019-10-12 16:24:56 +02:00
Yamagi e77a8efa77 Reorder documentation files and make room for future additions. 2019-10-12 16:17:18 +02:00
Yamagi Burmeister fc5c2788a1 Put the client into pause mode when loading save games.
This prevenits the worlds from advancing during client connect. The
player won't get attacked by monsters or hurt by the environment. Note
that in baseq2 there're still 4 world frames processed by the game and
100 world frames if the player enters a level that he or she already
visited. Both aren't a big problem, 4 world frames are hardly enough
for monsters starting to attack and in most levels the starting area
can't be reached by monsters and is free from environmental effects.

Pause mode is only entered for local servers and only in single player
mode. This should prevent problems with coop and deathmatch games.

The behaviour can be controlled by `cl_loadpaused`:
* `0`: Do not enter pause mode, Vanilla Quake I behaviour.
* `1`: Enter pause mode at load and leave it at first regular server
       frame.
* `2`: Enter pause mode at load, never leave it. The player must leave
       it by hand.

This was requested in issue #417.
2019-09-03 08:42:05 +02:00
Yamagi Burmeister 81a36bb3ad Add 'dec' and 'inc' operations.
'dec' decrements and 'inc' increments a given cvar either by 1 or a
given value.

The code was taken from q2pro.

This closes issue #414.
2019-09-02 17:57:02 +02:00
Yamagi Burmeister d1981e7edf Add 'toggle' cvar operation.
The 'toggle' operation allows toggling a cvar between `0` and `1` or two
custom values.

This code was taken from q2pro.

This is part of issue #414.
2019-09-02 17:29:00 +02:00
Yamagi Burmeister 66ca44e040 Add new cvar operation 'reset' and 'resetall'.
cvar operations are special commands that allow the programmatic
manipulation of cvar values. 'reset' resets a given cvar to it's
default value, e.g. `reset r_mode' would reset `r_mode` to `4`.
'resetall' resets all known cvar with the exception of `game`.

The code is based upon q2pro.

This is part of issue #414.
2019-09-02 17:28:41 +02:00
Lou Rinaldi 9a68f1f52e
Update 03_configuration.md
typo fix
2019-08-21 09:40:21 -04:00
Yamagi Burmeister 44e8088f7d Document gl_fixsurfsky. 2019-05-04 17:35:19 +02:00
Yamagi Burmeister f240799e6d Some clarifications and annotations to the file lists. 2019-04-08 13:56:19 +02:00
Yamagi Burmeister 5386e73af9 Add file listsings.
"What file goes were?" is an often asked question, so give a listing of
the complete kit. While at it provide checksums for the paks.
2019-04-03 21:17:13 +02:00
Yamagi Burmeister 9df2311df0 Bring the multiplayer docs inline with other docs.
* Break at 72 chars.
* It's Quake II and not quake2
* It's HTTP and not http
* Don't use german placeholders
2019-04-03 21:08:07 +02:00
Yamagi Burmeister 4f20ac97d1 Some clarifications, typo and grammar fixes to the documentation.
Make some things clearer and fix some small miss informations, overhaul
the timing guide. While at it fix typos and grammar mistakes.
2019-04-03 11:33:20 +02:00
Daniel Gibson f0d848d3d3 Documentation for HTTP downloading 2019-01-03 16:54:22 -01:00
Hugo Locurcio 2bf45a4750 Fix some typos in documentation 2018-11-10 18:16:30 +01:00
Yamagi Burmeister 4c63f7893c Update links. 2018-11-07 16:43:54 +01:00
Yamagi Burmeister 3b71e8d309 Transform the CONTRIBUTE file into a Contributing Guide 2018-11-07 16:38:41 +01:00
Yamagi Burmeister be7d532b06 Add an index page to the new documentation. 2018-11-07 16:38:41 +01:00
Yamagi Burmeister 22ade5dc7f Add a "configuration guide", explaining the most common options. 2018-11-07 16:38:41 +01:00
Yamagi Burmeister 544787a6b3 Update the packaging guide to be generic.
The packaging guide contained a lot if informations for the 6.x -> 7.x
migration. Since 7.x has long been done remove that instructions and
clarify the generic ones.
2018-11-07 16:38:41 +01:00
Yamagi Burmeister 9f65dcb679 Move the packaging guide into our new doc/ directory. 2018-11-07 16:38:41 +01:00
Yamagi Burmeister edd3b1da8a Update the cvarlist to match reality. 2018-11-07 16:38:41 +01:00
Yamagi Burmeister 1a6c1f5227 Move the cvar list into the new doc/ directory. 2018-11-07 16:38:41 +01:00
Yamagi Burmeister ba4d17b300 Add our new installation guide.
It's heavly based on the old README.md, but reworked and clarified.
2018-11-07 16:38:41 +01:00