173 Commits

Author SHA1 Message Date
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
Fabian Greffrath
2637885d90 name the static data array after the file name in bin2c 2020-01-28 14:29:09 +01:00
Fabian Greffrath
562f2e58e3 build but do not install the tools in the toolsrc directory 2020-01-28 14:18:10 +01:00
Fabian Greffrath
04736c0555 Fix memory leak when iwad not found 2020-01-28 08:49:03 +01:00
Fabian Greffrath
681a6ee1a6 search for betagrph.wad in the standard search directories 2020-01-27 12:27:33 +01:00
Fabian Greffrath
240db982ac add plain HOME directory to the IWAD search path 2020-01-27 11:31:40 +01:00
Fabian Greffrath
b6e3c5382d search for PWADs by their filename
Search in all search directories, including DOOMWADDIR and
DOOMWADPATH, thanks maxmanium for the suggestion.
2020-01-27 10:35:04 +01:00
Fabian Greffrath
2250d95b7f print a blinking "arrow" next to the currently highlighted menu item
Thanks again Redneckerz.
2020-01-27 09:50:12 +01:00
Fabian Greffrath
7667b1c017 fix HOM when ceilingplane and floorplane are the same visplane
This fixes the visual glitches in Eviternity MAP30, thanks Redneckerz.

Code taken from PrBoom+, slightly adapted.
2020-01-27 08:47:40 +01:00
Fabian Greffrath
b94f7b5abd repair savegame loading
This was accidently destroyed during the compiler warning clean-up.
2020-01-26 13:41:11 +01:00
Mike Swanson
27f21eddf5 automake: go down into the data directory (#56)
Should make both `make dist` and `make install` include these files
properly.
2020-01-24 16:35:54 +01:00
Mike Swanson
dff3d81a09 Include docs and examples directories in win32 packages (#55)
* Convert all DOS-format text files to Unix-format

* pkg/win32: fix clean target to remove staging directory

* pkg/win32: Include docs and examples directories
2020-01-24 12:57:36 +01:00
Fabian Greffrath
2921c7e513 add some more fixed bugs to README.md 2020-01-23 08:52:12 +01:00
Fabian Greffrath
b5f2786d73 Merge branch 'master' of https://github.com/fabiangreffrath/woof 2020-01-22 13:31:46 +01:00
Fabian Greffrath
d15548b1a4 improvements to the README.md document 2020-01-22 13:31:31 +01:00
Mike Swanson
775594c469 pkg: get needed ldflags and copy woof.exe to staging (#53)
* pkg: get needed ldflags and copy woof.exe to staging

Repairs actual operation of the win32 packaging script

* Include the pkg subdirectory so it gets included in `make dist`
2020-01-22 12:45:10 +01:00
Mike Swanson
452970d0b2 configure: stop using AC_FUNC_MALLOC/REALLOC (#52)
These are apparently mostly useless and worse, break
cross-compilation.  See:
https://sourceforge.net/p/mingw-w64/mailman/message/36424004/

Really resolves #50
2020-01-22 12:44:26 +01:00
Fabian Greffrath
81c920c96c review code changes, add or adapt comments where appropriate
Fixes #41.
2020-01-22 12:42:33 +01:00
Fabian Greffrath
92d8eeb7a8 include z_zone.h before config.h in doomdef.h
Gosh, there is even a comment for this. Fixes #50, thanks @chungy.
2020-01-22 10:47:38 +01:00