2816 Commits

Author SHA1 Message Date
ceski
4fcf30323d
Sound tweaks (#2215)
* 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.
2025-03-02 07:45:30 -08:00
Fabian Greffrath
4681e5aeb2
make menu entry for "palette_changes" less ambigious (#2218)
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.
2025-03-02 11:44:12 +01:00
Fabian Greffrath
0df430ad78
fix indicators flashing when invulnerability powerup fades out (#2217)
* fix indicators flashing when invulnerability powerup fades out

https://www.doomworld.com/forum/topic/112333-this-is-woof-1520-jan-31-2025/?page=106&tab=comments#comment-2902657

* use player_t instead of struct player_s
2025-03-01 14:00:33 +01:00
Roman Fomin
40d413183c
interpolate MBF sky rotation (#2214) 2025-02-25 17:48:48 +07:00
Roman Fomin
23d7987614
implement "scalex" SKYDEFS field (#2213) 2025-02-25 16:28:05 +07:00
Alaux
873e736f84
Fix ghost monsters being blood-colored (#2210) 2025-02-22 08:10:18 +01:00
Roman Fomin
926c90b2cb
don't autoload from doom-all for unknown IWADs (#2208) 2025-02-19 12:47:22 +07:00
Fabian Greffrath
e3d74f9e5e Merge branch 'master' of github.com:fabiangreffrath/woof 2025-02-18 07:42:37 +01:00
Arsinikk
c8f0ea32da Fix Vanilla Weapon Switch Logic (Example: Dehacked Chainsaw with Ammo) (#605) 2025-02-18 07:42:22 +01:00
Fabian Greffrath
a629f57a83
fix use-button timer widget (#2206)
* 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
2025-02-17 20:20:07 +01:00
ceski
0f2363c19d
Fix mouse driven thermos (#2207)
* Deactivate mouse driven thermo when clearing menu

* Restore value of mouse driven, deferred action thermos when canceled
2025-02-16 22:31:34 -08:00
ceski
2f21b4e7cf Check first device on gamepad init 2025-02-15 07:08:44 -08:00
ceski
30c14be3ed
More menu tweaks (#2203)
* Change color of inactive tabs to gray

* Conditionally disable "use-button timer", move to "widget appearance"

* Conditionally disable "pwad endoom only"
2025-02-14 17:45:18 -08:00
ceski
bead4eefea Rename "Invert" to "Invert Gyro" 2025-02-13 09:26:43 -08:00
ceski
d986f989f0
Add reset camera options for gyro button (#2200)
* Add reset camera options for gyro button

* Speed up view centering
2025-02-13 09:22:45 -08:00
Fabian Greffrath
b760605a51
fix next/prev weapon without carousel (#2201)
* fix next/prev weapon without carousel

Fixes #2196

* reset currently_active state to false in G_NextWeaponReset()
2025-02-13 18:11:48 +01:00
Fabian Greffrath
d14083f946 fix missing newline at eof 2025-02-13 15:21:56 +01:00
ceski
2a4eff0d59
Add gamepad device selection to menu (#2197)
* Add gamepad device selection to menu

* Prevent accidentally disabling gamepad when it's being used
2025-02-12 21:57:58 -08:00
ceski
703e9e4aaa Fix restore defaults for advanced gamepad menu 2025-02-12 13:45:52 -08:00
Roman Fomin
4faa2833f5
if announce string is too long, draw author on next line (#2195)
* if announce string is too long, draw author on next line

* fix redeclaration
2025-02-11 11:05:17 +01:00
Fabian Greffrath
2bf26395b8 consistent coloring for menu sections and tab headers 2025-02-11 08:11:30 +01:00
elf-alchemist
1e5f4c8db4
Add NyanDoom widescreen patch support (#2191) 2025-02-10 22:21:40 +07:00
MelodicSpaceship
6240a6eb0f
Some improvements to Chex support. (#2190)
* Some improvements to Chex support.

* Remove chex3v-all autoloads.
2025-02-09 14:15:03 +01:00
ceski
823a4235fe
Add option to use SysEx messages to control midi volume (#2185)
See `midi_sysex_volume` in woof.cfg.
2025-02-07 01:16:09 -08:00
Roman Fomin
9e627cb2a4
45 max pitch angle when direct aim is enabled (#2187) 2025-02-06 19:18:58 +01:00
MelodicSpaceship
1a8b2adbc0
Make Freedoom its own mission pack and add "freedoom-all" autoloads. (#2184)
* Make the Freedoom IWADs their own mission pack and add support for the freedoom-all autoload directory.

* Add freedoom1-all and freedoom2-all directories.

* Space after comma.
2025-02-06 13:46:30 +01:00
ceski
f91cec4e26
Disable SysEx for FluidSynth (#2186)
Fixes DBP37_AUGZEN.wad MAP22.
2025-02-06 01:09:14 -08:00
ceski
09d13995cb
Improve looping for older midi hardware devices (#2180)
* Improve looping for older midi hardware devices

When the song loops, only reset the used channels.
2025-02-04 13:03:01 -08:00
Fabian Greffrath
73a2f72e4e
fix some minor UB indications (#2178) 2025-02-04 10:30:39 +01:00
Roman Fomin
bba0c59454
replace UMAPINFO with DEHACKED for E1M4b and E1M8b (#2176) 2025-02-02 01:10:14 +07:00
Fabian Greffrath
e0ebe4237c
Next/Prev weapon deactivate requires prior activate (#2175)
Fixes #2174
2025-02-01 13:25:22 +01:00
Fabian Greffrath
e896ac183b report SDL release and platform in verbose mode 2025-01-31 09:31:50 +01:00
Fabian Greffrath
48bcf43a82 This is Woof! 15.2.0 woof_15.2.0 2025-01-31 08:30:37 +01:00
Roman Fomin
49ddd0a24d
update CHANGELOG.md (#2169)
* mention vertical widget option
2025-01-31 14:10:44 +07:00
Roman Fomin
6afcfb206e
fix sdl2_compat build (#2173) 2025-01-31 12:13:57 +07:00
Roman Fomin
7615b58c45 add array_delete() macro, fix double free 2025-01-31 10:18:28 +07:00
Roman Fomin
38ec090964 fix memory leak 2025-01-30 17:07:24 +07:00
Roman Fomin
bb74e0584c
implement vertical option for monsec and coord widgets
* fix memory leak (clang-tidy warning)
2025-01-30 16:01:39 +07:00
Roman Fomin
c3c3bcb7dc add type checking 2025-01-29 21:14:34 +07:00
Alaux
a4f5382ec9
Fix rendering of voxels on top/bottom of screen (#2134) 2025-01-29 04:27:39 -03:00
Fabian Greffrath
2a0b5c05c5
add support for alternative music tracks for Final Doom (#2167)
as introduced in DoomMetalVol5.wad

Taken from Crispy Doom.
2025-01-29 06:38:37 +01:00
Roman Fomin
d8e40de9a7
fix config strings, alternative config_t UB fix (#2166) 2025-01-29 01:28:20 +07:00
Fabian Greffrath
9a889301e0
save button states in savegames (#2165)
* save button states in savegames

Mostly taken from Doom Retro.

* simplify loop

* simplify restoring button state
2025-01-28 13:55:01 +01:00
Fabian Greffrath
4089139a7a
simplify demo file name attempt counter implementation (#2164)
* always record demos with an attempt counter appended to the file name

* keep first attempt without counter in the file name
2025-01-28 13:47:23 +01:00
Fabian Greffrath
1ab18dcff4
prevent G_ReadOptions() overriding netgame settings (#2163)
* prevent G_ReadOptions() overriding netgame settings

* reorder commands

Co-Authored-By: Roman Fomin <rfomin@gmail.com>

---------

Co-authored-by: Roman Fomin <rfomin@gmail.com>
2025-01-28 13:35:20 +01:00
Fabian Greffrath
12bd1fed68
fix evil grin getting triggered at level start (and by ID(K)FA) (#2162)
* fix evil grin getting triggered at level start (and by ID(K)FA)

* ad one extra ST_Start() call to prevent triggering from savegames
2025-01-28 13:18:00 +01:00
Fabian Greffrath
793d5fc4a1
rename "FPS Limit" to "Target FPS" (#2161)
The term "limit" sounds like an upper bound only. However, this value
is also used by DRS to decide to decrease screen resolution if it
cannot be kept. Thus, I find "target" to fit better.
2025-01-28 13:17:02 +01:00
Roman Fomin
c24d5c57ab
fix UB related to config_t union (#2158) 2025-01-28 08:25:44 +07:00
Roman Fomin
344d86d61b
fix linearsky calculation for large sky texture width (#2160) 2025-01-28 08:24:00 +07:00
Roman Fomin
4ebaddec41
fix various UB issues (#2159)
* Fix "applying non-zero offset to NULL pointer".

* Fix "non-aligned access to struct members" (maptexture_t).
2025-01-27 09:53:23 +07:00