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.
Armor was missing ARM2B0 light - reusing GREENARMOR2 since both of them have the blinky red thing.
Armor bonus shouldn't have "dontlightself" because it's not coming out from under an opaque helmet anymore.
Burning barrel has a yellow flame again.
Mega, invulnerability and blur spheres now match their respective colours.
Column is yellow now rather than green.
Tall tech lamp should be red, at least if you consider the light source to be the big red thing on top.
Blue keys now get their own definition instead of relying on the id blue health potion.
Serpentipede balls are less red before exploding and more red after.
Hatchlings have a distinct brighter glow when attacking.