This also adds the `r_actorspriteshadowalpha` and `r_actorspriteshadowfadeheight`
cvars for greater control (only effective in hardware renderers).
These are set to 0.5 and 0 by default, which means this fading behavior
is disabled by default.
When enabled, this has two benefits:
- It becomes easier for the player to judge an entity's height since
the shadow opacity now gives this information.
- Entities that are far high above the ground no longer cast a shadow,
which looked strange.
This implements a bruteforce approach for 2D line antialiasing.
It's not perfect by any means, but it seems to do its job well enough.
Since it draws 9 lines instead of 1 line per segment, it's significantly
more expensive but should still be usable on modern hardware (except
on very complex maps).
Automap line antialiasing is disabled by default and can be enabled
with the `am_lineantialiasing 1` cvar.
M_GetConfigPath uses GAMENAMELOWERCASE_portable.ini, but IsPortable() checks for GAMENAME_portable.ini. Doesn't have much of an impact on base GZDoom since it's case-insensitive, but can matter for engine forks -- IMO it should just be consistent either way.
The minimum value was increased from 30 to 35 to reflect the lowest
value you can actually use in `vid_maxfps`. Values lower than 35
are silently clamped to 35.
The maximum value is chosen to cater to the fastest commercially
available display as of writing (500 Hz).
Being able to specify maximum FPS with a more precise slider has
several benefits:
- This adds support for monitors with less common refresh rates
(138 Hz, 165 Hz, ...).
- This adds support for monitors with very high refresh rates
(240 Hz or more).
- This allows catering to variable refresh rate setups with a FPS cap
chosen to avoid V-Sync input lag, while also avoiding tearing.
For example, choosing a FPS cap of 117 on a 120 Hz display will prevent
the display from reaching its maximum refresh rate.
More information: https://blurbusters.com/howto-low-lag-vsync-on/
- The value no longer displays a "Unknown" if customized in the console
using the `vid_maxfps` cvar.
This now treats all pitch methods equally instead of the preferential treatment of Doom's original pitch hack. Most importantly, the sound channel now stores the pitch as a floating point value instead of 9.7 fixed point.
snd_pitched now also gets checked in the sound engine, not the low level interface.