2191 Commits

Author SHA1 Message Date
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
Fabian Greffrath
a30f5e3c11 explicitly set the CMake generator to "Unix Makefiles"
For some odd reason it defaults to "NMake Makefiles" in my MSYS2 environment.
2020-02-04 08:29:36 +01:00
Simon Howard
99d4bd2718 Change default vertical mouse sensitivity to zero.
I'm hazarding a guess this is probably what most people want.
2020-02-04 08:23:25 +01:00
Simon Howard
e8d4a022e6 Change default for hud_msg_lines to 4.
It seems pointless to have a default of 1 if it's just showing the
exact same thing that gets shown in normal mode.
2020-02-04 08:22:59 +01:00
Mike Swanson
04120ef245
remove ancillary pkg/* files left over from automake purge (#60) 2020-02-03 22:47:51 +01:00
Fabian Greffrath
b1016a0f7c take account of the most recent changes 2020-02-03 12:50:36 +01:00
Fabian Greffrath
5e2c0f65bd
document updates to the build system 2020-02-03 12:16:12 +01:00
Alex Mayfield
b13b8fc415
CMake Build System (#48)
* First stab at CMake

It builds on Linux, and cross-compiles to Windows as well using the
provided toolchain files.  convert-icon is also fixed up with argument
count checking and modern format strings, along with all flake8 warnings
fixed.

* Fix Visual Studio compilation

* Add a newline to gitignore

* Build system updates

- Add documentation.
- Add options for defines.
- Automatically copy DLL files to binary directory.
- Add preliminary CPack support which packages the binary plus docs and
  DLL files.

* Fix SDL2_FILES conditional

* Build Windows and Linux packages

We use our own Python script instead of unix2dos.  Also, a few other
random fixes came along for the ride.

* Fix up warnings and defines on MSVC

* Update Travis to use CMake

* Remove automake and autoconf files

* Yet more build system updates

- Add docs, examples, and desktop stuff to binary packages.
- Get rid of HAVE_CONFIG_H.
- Change HAVE_DLOPEN to something more CMake-like.
- Add optional targets for most of the tools.

* Ignore files for source package

* Add to README file

* Get rid of BETA, DOGS, and fix another Automake straggler

* Prevent in-tree builds

Fixes #21
2020-02-03 12:11:31 +01:00
Fabian Greffrath
b66f8b89f7 fix the (hopefully) last remaining misguided pointers in the menu code 2020-02-01 00:29:59 +01:00
Fabian Greffrath
e5458b62e6 fix some oversights in the legalese paragraph 2020-01-31 12:27:31 +01:00
Fabian Greffrath
719336d57b update license information in README.md in debian/copyright style 2020-01-31 11:40:18 +01:00
Fabian Greffrath
ce4e04cccc unconditionally enable support for helper dogs and beta emulation
No reason anymore to disable them at all, now that we have free replacement
sprites and sounds available.
2020-01-31 11:14:39 +01:00
Fabian Greffrath
1b1f190ae4
remove or replace all non-free embedded lumps (#59)
This commit removes all embedded lumps that are suspected to be based on unlicensed artwork and thus might impose copyright infringement.

Menu graphics lumps that are composed of Doom's own IWAD font are removed. Now, the more complex menus are rendered in the HU font if at least one menu graphics lump is missing.

Additional lumps that were included for Doom v1.1 compatibility were also removed.

The dogs sprites and sounds were replaced with the versions found in GZDoom's repository.

For the dogs sprites (`Source/dogs.c:dogs*[]`) the following applies:

```
// German Shepherd Dog Sprite
//
// Modeled from scratch and rendered in Blender by Nash Muhandes.
//
// Copyright © 2017 Nash Muhandes. All Rights Reserved.
//
// Forum thread - https://forum.zdoom.org/viewtopic.php?f=59&t=58035
//
// Released under CC-BY - https://creativecommons.org/licenses/by/3.0/
```

For the dogs sounds (`Source/dogs.c:dsdg*[]`) the following applies:

For `dsdgact[]` and `dsdgatk[]`:

```
// Edited from "Mr Dog_01.wav" by apolloaiello
// http://freesound.org/people/apolloaiello/sounds/276267/
// http://creativecommons.org/publicdomain/zero/1.0/
```

For `dsdgdth[]`, `dsdgpain[]` and `dsdgsit[]`:

```
// Edited from "DogYelp.wav" by TobiasKosmos
// http://freesound.org/people/TobiasKosmos/sounds/163280/
// https://creativecommons.org/licenses/by/3.0/
```

The plasma ball sprites were replaced with sprites found in the FreeDoom project.

For the plasma ball sprites (`Source/beta.c:pls[12]*[]`) the following applies:

```
// Copyright © 2001-2019
// Contributors to the Freedoom project. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
// * Neither the name of the Freedoom project nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS
// IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// For a list of contributors to the Freedoom project, see the file
// CREDITS.
```

Fixes #54 .
2020-01-31 08:50:49 +01:00
Fabian Greffrath
ff1a64514a fix compilation on MacOS
Fixes https://github.com/fragglet/DietBoom/issues/3
Thanks @fragglet.
2020-01-29 08:41:57 +01:00
Fabian Greffrath
cf1d1ea24d now fix cppcheck warnings in toolsrc code, yay! 2020-01-28 15:00:40 +01:00
Fabian Greffrath
05030c76f3 include toolsrc in cppcheck CI 2020-01-28 14:50:52 +01:00
Fabian Greffrath
f23229cb2c fix compiler warnings in toolsrc code 2020-01-28 14:45:51 +01:00