* Add sound module framework
* Add 3D sound module
* Remove test edits
* Use conservative defaults
* Fix build
* Check for `ALC_OUTPUT_MODE_SOFT`
* Add parenthesis
* Update copyright
* Remove `I_` prefix from `sound_module_t`
* Add additional parenthesis
* Add comment
* Add Doom Wiki citation
* Rename HRTF to Headphones Mode
* Use shared distance limits
* Fix typo
* Add warning to restart if extension is missing
* Remove unnecessary error checking
The critical checkpoints are initialization, caching, and starting playback.
* Don't reset parameters on reinitialization
OpenAL Soft only changes the settings defined in the attributes list so this is not necessary.
* Cosmetic changes
* Calculate velocity only if using Doppler effect
* Fix variable type
* Revert "Don't reset parameters on reinitialization"
This reverts commit 4fc925a64ee4b6c23f27fd65f3fbbb0418e62f1b.
* Fix 2D panning emulation
* Don't update source direction
Sources are currently omnidirectional (no cone effect), so updating direction isn't necessary.
* Use a descriptive sound module enum
* Explicitly disable effects when not using 3D sound
* Simplify by using `snd_module`
* Use `ALC_TRUE` where appropriate
* Use correct distance for priority calculation
* Fix range check typo
* Fix orientation calculations for mouselook
* Add comments about translating coordinates
* Move `forceFlipPan` into WinMBF sound module
* Update menu item after rebase
* Use `player->slope` for pitch angle calculation
* Remove unused macro
* Move defer/process updates to higher level
* Fix comment typo
* Prep for restoring channel assignment behavior
* Restore channel assignment behavior
In `S_StartSound()`, the handle to a channel should not be assigned until after calling `S_getChannel()`.
* Update listener only once per sound update
* Limit sound update rate
* Revert "Limit sound update rate"
This reverts commit 83512b69d5faf19c4ecb6ed668c67930f5ff83e2.
* Remove obsolete `I_UpdateSound()`
* Limit sound update rate
* Skip sound updates when returning early
Avoid midiOutUnprepareHeader() which contains use after free (tested with
ASan).
* manually unset `MHDR_INQUEUE` flag
* never delete buffer
* prepare header for new handle
* Revert "fix door interpolation in Doom2 MAP19 (#1100)"
This reverts commit 9b1ec60e3c1e69f26174f82b1b44f6245702a322.
* fix door interpolation in Doom2 MAP19
* force interpolation in second call to T_MovePlane()
---------
Co-authored-by: Roman Fomin <rfomin@gmail.com>
Fix variable "dist" in P_RadiusAttack depending on damage (like vanilla Doom), which causes attack radius to actually depend on damage. Now depends on distance arg (like dsda-doom).