* Cosmetic changes.
* Add volume safeguards.
* Use device setting for reverb and chorus by default.
* Clean up volume change behavior.
* Move "all notes off" and "reset all controllers" to reset function.
* Optimize set of reset messages depending on device and reset type.
* Ignore SysEx resets from MIDI files for MS GS Wavetable Synth.
* Check for Roland master volume combined with master tune, etc.
* Check for Yamaha master volume combined with master tune, etc.
* Don't replace master volume message; send a new one.
* Change order of volume check.
* Switch from master volume to channel volume control for better compatibility with MIDI devices.
* Change default `winmm_reset_delay` to 0.
* Change default winmm_reset_delay to 0.
* Remove unused variable.
* Add GS instrument fallback support.
* Cast `event_type` as `int`
* Fix switch/case.
* Fix hot swapping.
* Remove unneeded `return`.
* Add instrument fallback support for all devices in GS mode.
* Assign reset defaults to all devices.
* Fix formatting.
* hot swap of music modules
* get a list of Windows MIDI devices
* move "MIDI Player" menu item only on Windows build
* increase MAX_MIDI_PLAYERS, index fixes
* fix hot swapping with UMAPINFO music, init OPL on song change
* initialize OPL only when necessary
* call I_ShutdownMusic in exit sequence
* don't send SysEx reset for MS GS Synth
* introduce `I_DeviceList` function, rearrange code
* `midi_player_strings` must be NULL at the end
* Color crosshair by target health
* Add missing element to `crosshealth_t`
* Second implementation
* Introduce `ColorByHealth()`
* Change `ColorByHealth()`'s arguments
* Disable "Highlight Color" item when appropriate
This is meant to add support for non-exactly 21:9 screens, such as
3840x1600 (WQHD+). Unlikely to get ever increased further than that, though.
Fixes#819
* Implement crosshair target lock-on
* Calculate lock-on offset in `R_ProjectSprite()`
* Introduce `HU_UpdateCrosshairLock()`
* A couple of changes
* More changes
* Update lock offset just once per tic
In paticular, if less time than required for a full shading sequence has passed,
don't start a new one. This allows to skip a gametic between two rendered frames,
which apparently happens sometimes.
* fix most cppcheck 2.9 warnings
* simplify matters
* simplify a bit more
* simplify
* more/better fixes
* whitespace cosmetic
* use I_Realloc() in u_mapinfo.c
* Revert "add parallel same-sound limit from DSDA-Doom (#796)"
This reverts commit d7849c8fa7ba4b2c92a1784b92127df267f4e8db.
* first shot at sorting sounds by priority
* fix build
* our S_AdjustSoundParams() already mangles volume into priority
* add/fix comments
* newer same-priority sounds are supposed to stop older ones
* use qsort() instead of undocumented (whoops\!) SDL_qsort()
* back to newer same-priority sounds let older ones finish
* keep the singularity concept alive
* get rid of the lowestpriority concept, we already ordered channels by priority
* keep the "snd_channels = 16" default
* Revert "keep the "snd_channels = 16" default"
This reverts commit 79fc9b3332304aa7cd9f7ac687c46089f1d40918.
* Update s_sound.c
* maintain a stable sort (newer sounds have precedence)
* fix typo/thinko
* fix sort order
* fix comparison function return value
* Update s_sound.c
* last nit-pick (hopefully!)