* Don't add blank paths to wad list
* Simplify GOG paths
Removes redundant/invalid paths. Adds paths to original IWADs which are now included with DOOM + DOOM II.
* Simplify Steam paths
Removes invalid paths. Paths to wads are generated based on registry entries, like GOG.
* Add `const`
* Separate CE and GOG
* Update Linux Steam paths
Some of these games may be installed due to the popularity of modern Proton support. So it doesn't hurt to include their paths.
* Remove extra `steampath`
* Rename `disable_endoom` to `fast_exit`
* Rename `D_AllowQuitSound` to `D_QuitSoundEnabled`
* Add separate `D_EndDoomEnabled` function
* Move all ENDOOM checks to `D_AllowEndDoom`
* Free/destroy SDL video resources on shutdown
* Simplify
* add a "prev map" key binding
Fixes#2007
* simplify
* add safety measures
* simplify again
* fix
* simplify logic
* add to key binding menu instead of player specific chat keys
* start with gamemap 99 when crossing gameepisodes
* start new episode with gamemap = cur_map to allow a full gamemap circle
* fix UMAPINFO
* reset gamemap outside the while() condition
* do not let linear and UMAPINFO maps cross
* prevent G_GotoNextLevel() from cycling across levels that end the game
* check either UMAPINFO or linear progression in G_GotoNextLevel()
* don't report the map we couldn't find, but the map that we couldn't find a previous map for
* complevel/demo_version checks now de-macroized
* new `side` arg on ShootSpecialLine for two-sided activations
* new `rotation` floors and ceiling property
* 6 new W/S/G inventory-restting exits
* 24 new W/S/G music changer specials
* 9 new static rotation and offset specials
* 5 new static two-sided scroller specials
---------
Co-authored-by: Roman Fomin <rfomin@gmail.com>
* implement SKYDEFS flatmapping feature (floor and ceiling at once)
* separate floor and ceiling sky
* fix comment
* call R_GetSkyColor() on each flatmapped sky texture
* comment on PL_FLATMAPPING composition
* Remove unused idnum tracking
* Seamlessly pause and resume sounds
Side effect: No more chainsaw "rev up" sound when pausing game.
* Update listener before updating sound sources
Make sure the sound sources are fed the latest listener data. This shouldn't matter with the call to I_DeferSoundUpdates, but just in case.
* Skip unnecessary listener calculations
No need to constantly update the listener when the menu is open (single player only), the game is paused, or no game is being played.
* Fix initial mobj->oldz when spawning mobj
mobj->oldz should be set after mobj->z is initialized. See Crispy Doom.
* Improve doppler effect for listener
Uses the correct velocity calculation.
* Improve doppler effect for sources
Uses the correct velocity calculation.
* Adjust doppler effect scaling range
With the changes made to the velocity calculations, the doppler effect thermo should be linear (0.0 to 2.0, 0.2 steps).
* Defer doppler effect thermo action
Resetting the OpenAL 3D sound module is slow.
* Use a standard map units to meters conversion factor
16 map units per foot or 0.01905 meters per map unit (https://www.doomworld.com/idgames/docs/editing/metrics). Same as the speedometer widget.
* Misc. sound refactoring
* Use parameters structure for sound functions
* Improve sound curve
Sound attenuation over distance is now more gradual when using the OpenAL 3D sound module. Previously, there was a more pronounced drop off near the sound distance limit. This uses a different roll-off factor, so the air absorption factor has been adjusted to preserve the same effect as before.
* Reduce PC speaker square wave amplitude
It was way too loud in comparison to the other sound modules.
PrBoom+/DSDA-Doom has this split into three switches:
* Change Palette On Pain
* Change Palette On Bonus
* Change Palette On Powers
Crispy Doom (Setup) has a single switch for this called "Palette
Changes" but this merely reveals an implementation detail and is
just as ambigious as "Screen flashes" otherwise.
I think our our old menu switch is still the best description.
* fix use-button timer widget
* decrease timer even if the widget is not visible
* show use button timer widget even if level time widget is not visible
Fixes#2204
* move "Show Use-Button Timer" back to "Widget Types" section