857 Commits

Author SHA1 Message Date
Fabian Greffrath
fe43614c28 always rebuild too short blockmaps 2020-03-23 13:19:42 +01:00
Alex Mayfield
68e6203d97
Only use SDL2main if needed (#81) 2020-03-22 23:06:07 +01:00
Fabian Greffrath
4b75b904d0 add a -nooptions parameter to avoid loading OPTIONS lumps embedded into WAD files 2020-03-17 13:25:51 +01:00
Fabian Greffrath
f2e4320419
Precache sounds (#78)
* pre-cache all sound SFX

Fixes #75

* use stdlib's malloc() for storing precached sounds effects

* uniform comments

* enable sound effects precaching by default
2020-03-13 11:28:24 +01:00
Fabian Greffrath
53503df36b
add some more shields widgets to the README page 2020-03-13 09:16:40 +01:00
Fabian Greffrath
16d4f9b79d let this be Woof! 1.1.0
Another Friday 13th release. ;)
woof_1.1.0
2020-03-13 08:52:23 +01:00
Fabian Greffrath
471ca2f004
add a short version history section 2020-03-12 14:54:45 +01:00
Fabian Greffrath
243519bd77 minor optimization to the blitting code 2020-03-12 14:22:38 +01:00
Fabian Greffrath
9fe83a7cbe dlopen() is not used anymore, remove any mention of it 2020-03-12 14:05:38 +01:00
Fabian Greffrath
2ac195369c
depend on SDL2_Image for saving PNG screenshots (#77)
Instead of dlopen()ing the library at run-time, add it as a hard
dependency and make PNG screnshots the default, fixes #69.
2020-03-12 13:52:29 +01:00
Alex Mayfield
7673f246b2
CMake build fixes (#65)
* Only expose DLL directory instead of globbing all of them

The old way didn't work when mingw libraries were installed from
packages, like with MSYS2.  Not quite done yet, though, since I don't
know which DLL files we need from SDL2_mixer.

* Fix dl_FOUND not being properly set

* Revert "Fix dl_FOUND not being properly set"

This reverts commit 832eb25f826ca88063a87585a373156e37fe364e.

* Add DLL files for SDL_mixer

* Download SDL libraries automatically on Windows

* Add SDL2_image and link against zlib

On Windows, we compile our own zlib.  Still need to get mingw worked
out, though.

* Fixes for the SDL_image finder

Missed a few instances of NET in my copy-paste.

* Fix mingw compilation

* Use our compiled zlib instead of SDL_image's

Also do some general cleanup and fixes, too many to enumerate.

* Remove unneeded error

* MSVC fixes

- Don't avoid the external project on subsequent cache generations.
- If no toolchain is in use, don't attempt to make an absolute path to
  it.

* Add a hash for zlib

* Properly handle multi-config build systems with zlib

* Ignore unused cache vars with zlib build

* Build and install only the zlib dynamic library

* Fix up zlib installer to work on MSVC

* Update README, move cross-compile toolchains

Moving them to the root directory makes it more obvious they're intended
to be used by end-users.

Fixes #61
2020-03-12 13:51:22 +01:00
Fabian Greffrath
bf8ae27180 fix blitting on non-32bpp screens
Thanks @wellslutw.

https://github.com/chocolate-doom/chocolate-doom/pull/1255
2020-03-12 12:21:31 +01:00
Fabian Greffrath
c078dfcbe7 substitute missing patches in textures with "TNT1A0"
Also, initialize composite background so that missing patches
appear as black areas.
2020-03-12 12:16:15 +01:00
Fabian Greffrath
a1ae302ca7 minor code clean-up 2020-03-12 10:17:25 +01:00
Fabian Greffrath
33af43d5ba updates to README.md 2020-03-11 12:37:52 +01:00
Fabian Greffrath
67b72e8c25 prevent crashes for levels without name graphics
This allows for finishing e.g. MAP33.
2020-03-11 12:27:23 +01:00
Fabian Greffrath
815f44ef40 add some more fixed to the Changelog 2020-03-11 09:35:25 +01:00
Fabian Greffrath
a5da11adfb Boom did never have the 3-key door bug
Enable the fix unconditionally if a Boom demo is detected.
2020-03-11 09:22:01 +01:00
Fabian Greffrath
0cdea720b2 fix demo compatibility with Boom 2.02
Adapt compatibility maze in P_Move() from PrBoom+.

This fixes playback of 20ydoom.wad demo1, closes #76.
2020-03-10 12:58:30 +01:00
Fabian Greffrath
57a93cdcb7
initialize 16-bit sample variable 2020-03-07 15:53:40 +01:00
Fabian Greffrath
e62651d772 proper spelling of the Freedoom project name
Thanks @chungy
2020-03-07 14:03:51 +01:00
Fabian Greffrath
5f31f1a339 update the README documentation with some recent feature additions 2020-03-06 10:46:18 +01:00
Fabian Greffrath
727a6041d5 include "d_io.h" in p_extnodes.c for strcasecmp()
Fixes #74, thanks @AlexMax.
2020-03-06 08:31:13 +01:00
Fabian Greffrath
719c988433
fix rendering glitches (#73)
This commit introduces:

* Vertex coordinates only used for rendering. These get moved in P_RemoveSlimeTrails(), the actual vertex coordinates are moved only if not in compatibility mode, and the rendering coordinates are moved back to their original location if a Linguortal is detected.
* Seg lengths and angles only used for rendering. These get recalculated after the vertices were moved.
* A fix for the "Long Line Wobble" based on the seg lengths introduced above.
* An overflow-safe variant of SlopeDiv(). This is only used in R_PointToAngleCrispy(), which in turn is an overflow-safe variant of R_PointToAngle(), which in turn is only used for rendering in R_CheckBBox(), R_AddLine() and P_SegLengthsAngles().
* Fixes for the Automap to cope with huge level dimensions which span the entire INT range.

All of the above fix the rendering glitches found in extreme maps such as e.g. planisf2. They were taken from Crispy Doom (and thus mostly from PrBoom+), where they have been introduced years ago and have proven to work. Fixes #70
2020-03-05 12:10:51 +01:00
Fabian Greffrath
1892141334 fix flat distortion towards the right of the screen 2020-03-05 12:00:05 +01:00
Fabian Greffrath
3d2fda3edd calculate flat coordinates relative to screen center
visplanes with the same flats now match up far better than before
2020-03-05 08:33:33 +01:00
Fabian Greffrath
2b9b04354a entirely disable mouse acceleration
Apparently, some people have very strong opinions about this.
Thanks @ice44.
2020-03-03 22:52:49 +01:00
Fabian Greffrath
2da75c00fe render missing flats as SKY
Fixes #72, thanks @ice44.
2020-03-03 22:05:59 +01:00
Fabian Greffrath
6df32ddee9
provide a project summary 2020-03-03 13:58:16 +01:00
Fabian Greffrath
86befb5fcb re-release this as Woof! 1.0.1 woof_1.0.1 2020-03-03 12:33:08 +01:00
Fabian Greffrath
dd8ce324e8 use stdlib's free() to free a string returned by M_StringDuplicate()
This fixes drag-n-drop on Windows, thanks valkiriforce.
2020-03-03 11:32:45 +01:00
Fabian Greffrath
8f0197be4d document earliest supported IWAD version 2020-03-03 08:32:36 +01:00
Fabian Greffrath
23372914ef allow playing with the Doom v1.2 IWAD which is missing the STTMINUS lump
Fixes #68, thanks @ice44.
2020-03-02 11:06:56 +01:00
Fabian Greffrath
30a721f757 fix buffer size calculation for maxstrlen in d_deh.c 2020-03-02 11:05:40 +01:00
Fabian Greffrath
1e35565e02
Last pre-release update woof_1.0.0 2020-02-28 08:30:04 +01:00
Fabian Greffrath
0a690dc10e
support maps with NODES in compressed or uncompressed ZDBSP format or DeePBSP format (#67)
* support maps with NODES in compressed or uncompressed ZDBSP format or DeePBSP format (Fixes #63)

* move some stuff around

* fix loading DeepBSP nodes

* support maps with NODES in compressed or uncompressed ZDBSP format or DeePBSP format

* move some stuff around

* fix loading DeepBSP nodes
2020-02-28 08:20:47 +01:00
Fabian Greffrath
4ad5a3b012
add the current changes to texture composition 2020-02-27 12:31:01 +01:00
Fabian Greffrath
d7f1dc26ff treat missing patches as non-fatal in texture generation
This fixes loading of Lilywhite Lilith, thanks redfain.
2020-02-26 12:56:06 +01:00
Fabian Greffrath
dab74b9c1f include d_io.h in d_iwad.c for strcasecmp()
Fixes #66, thanks @AlexMax!
2020-02-26 08:27:53 +01:00
Fabian Greffrath
7a0d09993d prepare m_FOUND definition in config.h.in 2020-02-21 15:14:02 +01:00
Fabian Greffrath
e8f0e7f879 move configure_file() invocation lower after the libraries were all found
This fixes the issue that Linux builds were configured without PNG
screenshot support, although the dl library has been found. Thanks
@AlexMax for figuring this out.

Also, this will eventually become Woof! 1.0. Thanks @JNechaevsky for
performing a series of demo playback tests confirming the port's
stability after the sound system overhaul.

Interestingly, these checks wouldn't have been possible without vastly
improving the port's Vanilla demo playback capabilities before. These
were, in turn, hard to compare against the original WinMBF, because
the latter would occasionally crash due to the fragile sound channel
locking... I am really glad that this mess has been figured out now!
2020-02-21 09:15:23 +01:00
Fabian Greffrath
52a64cde48 some recent updates to the changelog 2020-02-20 15:49:04 +01:00
Fabian Greffrath
43f666a088 disable menu control by mouse
I always found this misleading and error-prone.

Also, this incidently fixes #25.
2020-02-20 15:03:50 +01:00
Fabian Greffrath
b281cf5fa2 allocate 32 MiB by default
This is for the zone memory and by today's standard still a conservative choice.
2020-02-17 13:52:51 +01:00
Fabian Greffrath
9658ece4f3 actually call Z_Free() on pitch-shifted samples
Turns out that merely calling Z_ChangeTag(,PU_CACHE) leaves enough
zone memory fragmentation so that the dsbossit sound doesn't fit anymore.
2020-02-17 13:45:58 +01:00
Fabian Greffrath
7141b415f8
major overhaul of the sound SFX system (#62)
This commit contains the following changes:

- let SDL_Mixer do the actual sound mixing
- do not connect pitch-shifted samples to a sound SFX
- immediately free samples not connected to a sound SFX
- linear stereo volume separation
- pimp pitch shifting amplitude

This finally gets rid of the fragile sound channel locking and thus hopefully fixes #58 .
2020-02-17 12:08:33 +01:00
Fabian Greffrath
e9a0945bc8 change default movement key binding to WASD scheme
but allow to use menu up/down keys as an alternative scheme
2020-02-16 16:11:24 +01:00
Fabian Greffrath
777e845111 fix a potential format string vulnerability
through dehacked QSPROMPT and QLPROMPT strings
2020-02-07 22:50:05 +01:00
Fabian Greffrath
f53d10eccb bring project descriptions in line
Now we have the same one sentence synapsis in CMakeLists.txt,
README.md and on the GitHub project page.
2020-02-06 09:58:58 +01:00
Fabian Greffrath
a44d01180f allow PWADs to override TITLEPIC if the BFG Edition IWAD is loaded 2020-02-05 14:34:41 +01:00