2860 Commits

Author SHA1 Message Date
Fabian Greffrath
cc0dc9af62 restrict screenblocks to maxscreenblocks boundaries 2025-05-15 22:30:59 +02:00
Fabian Greffrath
a6956ccac7 more elegant solution: append note to error message 2025-05-15 22:09:31 +02:00
Fabian Greffrath
d8c7ce1a69 distinguish error exits from success exits 2025-05-15 18:18:35 +02:00
Fabian Greffrath
dd94081ac0
make EV_VerticalDoor() consistent with DSDA-Doom (#2268)
Corresponding code:
ca3f4b1731/prboom2/src/p_doors.c (L679-L739)
2025-05-15 09:53:20 +02:00
Fabian Greffrath
cfe4431875 clarify that an error message is *not a crash* 2025-05-15 09:45:26 +02:00
Fabian Greffrath
81bf1e70c7
break quit messages after at most 42 chars (#2267)
if they do not contain explicit line breaks themselves

Fixes #2263
2025-05-14 06:33:13 +02:00
Fabian Greffrath
d28289ca1f
prepend function name to error messages (#2266)
* prepend function name to error messages

* adjust error messages accordingly
2025-05-14 06:32:17 +02:00
Fabian Greffrath
40e3447805 simplify check for PL_FLATMAPPING in do_draw_plane() 2025-05-13 21:47:07 +02:00
Alaux
4d4d91de0a
Consistently use pixel_t for screen buffer (#2262) 2025-05-10 13:42:32 -03:00
ceski
0ef7f192e3 Update README.md 2025-05-09 20:07:19 -07:00
ceski
f52e7728a9
Simplify IWAD list building, add more search locations (#2260)
* 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`
2025-05-08 12:07:30 -07:00
ceski
17e318b91b
Improve sound limiter (#2256) 2025-05-08 09:42:33 -07:00
Roman Fomin
ca5a4aef94 CI: continue of error 2025-05-08 15:36:33 +07:00
ceski
7530deae79
Free/destroy SDL video resources on shutdown (#2259)
* 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
2025-05-07 22:13:18 -07:00
Fabian Greffrath
232c1e478f
add a "prev map" key binding (#2046)
* 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
2025-05-08 07:06:04 +02:00
Roman Fomin
7bc3712cfd CI: always update cache 2025-05-08 12:04:36 +07:00
Fabian Greffrath
7bfc01ff69
reset weapon carousel for zombie players (#2253)
Fixes #2252
2025-04-29 13:33:18 +02:00
Fabian Greffrath
0a789c7783 do not redefine deh_flag_t struct type in deh_mobjflags[] declaration 2025-04-28 15:06:44 +02:00
Roman Fomin
2361f851de fix buffer overflow in d_deh.c 2025-04-28 17:45:08 +07:00
Roman Fomin
550ceb4b3f CI: x-gha extension is deprecated, so we cache the vcpkg build ourselves. 2025-04-28 11:14:48 +07:00
Fabian Greffrath
b271de8949 replace a bool instance with proper boolean 2025-04-24 18:02:29 +07:00
Roman Fomin
4c6e114939
update TRAKINFO records (#2248) 2025-04-18 11:01:12 +07:00
Fabian Greffrath
48402d9d9c
handle extras.wad auto-loads between IWAD and all other PWADs (#2246)
Fixes #2241
2025-04-17 07:34:04 +07:00
Roman Fomin
742e091534
TRAKINFO: don't exit if lump is not found, refactoring (#2239) 2025-04-14 00:01:58 +07:00
Jack Li
6db48e1506 Prevent P_LookForPlayers from retrying sighting a player who failed (#528)
Mitigates the poor performance in Necromantic Thirst MAP25.

From Eternity Engine: 857826ba3e
2025-04-09 17:34:45 +02:00
Roman Fomin
4a057a6deb
enable ANIMATE feature for default sky and SKYDEFS (#2236) 2025-04-05 23:11:35 +07:00
Roman Fomin
4b8e9f7cd2
move savegame buffer size check to saveg_write* functions (#2235)
* Inline `saveg_write*` and `saveg_read*` functions for minor speedup.

* Simplify save buffer size checks.
2025-04-04 13:42:30 +07:00
elf-alchemist
bea52a7cf9
Partial ID24 line specials implementation (#2230)
* 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>
2025-04-04 08:25:12 +07:00
Fabian Greffrath
a58fa465f6
turn max_pitch_angle into a config variable (#2234)
Fixes #2232
2025-04-02 09:20:22 +02:00
Roman Fomin
a59843fcfc CI: install CMake 3.31.6 for now 2025-04-02 11:28:32 +07:00
Roman Fomin
e2d6043f88 umapinfo: fix crash in bossaction parser 2025-03-30 12:43:11 +07:00
Roman Fomin
277fa46a61 fix save buffer size calculation 2025-03-27 21:38:56 +07:00
Roman Fomin
c4998a2e02 fix typo 2025-03-27 21:38:23 +07:00
Roman Fomin
8735e76a85
bring back original fuzz mode option (#2228)
* fix reset to default
2025-03-24 16:25:09 +07:00
Roman Fomin
472cc85b62
save floor/ceiling offsets, fix interpolation (#2226) 2025-03-24 15:23:10 +07:00
Fabian Greffrath
1885278d4d show widescreen selection in verbose mode 2025-03-22 19:13:20 +01:00
Fabian Greffrath
6c185768cc don't repeat yourself R_InitPlanes() 2025-03-22 11:52:06 +01:00
Fabian Greffrath
8cd06b0d69
remove "Animated Health/Armor Count" feature (#2222)
I expect that people who value this kind of feature are already running Nugget Doom anyway.
2025-03-18 08:08:26 +01:00
Fabian Greffrath
c529f82f0f remove a remnant of the "blinking keys on status bar" feature 2025-03-17 11:47:24 +01:00
Fabian Greffrath
c25757267e
implement SKYDEFS flatmapping feature (#2221)
* 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
2025-03-14 13:48:46 +01:00
Fabian Greffrath
b89a6ae954
Merge pull request #2220 from fabiangreffrath/volatile_div64_32
remove ASM div64_32() implementation
2025-03-04 13:02:42 +01:00
Fabian Greffrath
1b0b2f7599 remove ASM div64_32() implementation
* Prone to miscompilation
* Only helps with very old PCs
* Really only helps with voxel rendering
2025-03-04 10:02:57 +01:00
Fabian Greffrath
3034f5d2c4 declare lo and hi in div64_32() as volatile
Fixes #2219
2025-03-03 06:59:09 +01:00
Fabian Greffrath
21ca1580ef avoid truncating alternative music lump names 2025-03-03 00:28:40 +01:00
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