GZDoom is a feature centric port for all Doom engine games, based on ZDoom, adding an OpenGL renderer and powerful scripting capabilities
Find a file
Sally Coolatta 15521e5181 Fix a very rare crash with complex Polyobjects
If all of the worst stars align when compiling Polyobject BSP and splitting a seg into two sets:
- The very first seg in the current set fails all of the metrics for determining which side of a split it is on, and doesn't know which side it should go to. Since there are 0 are in front, it goes to front by default.
- Every other seg in the same set don't fail their metrics, and they all decide they are meant to go to the front side.
- Oops! Now there's nothing in the back side!
I've fixed this by collecting all of the undecided segs in a split, and setting the new side after the other segs. Doing it in the normal loop means there's a non-zero chance the crash prevention will fail depending on how the segs are in memory.

This can technically happen with even the most simplistic Polyobjects, but it becomes more common the more complex it is (add tons of lines, move and rotate it at the same time, so on). Quite an annoying crash since it doesn't always replicate consistently.
2023-09-15 00:13:22 +02:00
.devcontainer Added GitHub CodeSpaces development environment. 2023-01-24 07:19:45 -05:00
.github - bump vcpkg version in continuous integration 2023-09-14 08:45:39 -04:00
bin/windows - fixed some GCC warnings 2022-06-01 08:37:00 +02:00
cmake - fix libVPX detection 2022-04-26 20:50:35 +02:00
docs add changeskill command 2023-05-14 07:20:09 +02:00
fm_banks Updated the WOPN banks collection 2023-01-02 08:19:11 +01:00
libraries - updated zlib to 1.3 2023-09-13 12:50:42 +03:00
soundfont - added a small default sound font that needs to be installed with the project. 2017-05-13 12:38:19 +02:00
specs Update ZDRay UDMF specs and remove deleted features. 2023-09-11 20:09:16 +02:00
src Fix a very rare crash with complex Polyobjects 2023-09-15 00:13:22 +02:00
tools - removed obsolete CMake version requirements. 2023-09-03 09:04:17 +02:00
unused - create an intermediate structure between sectors and subsectors. 2018-11-04 20:10:51 +01:00
wadsrc - put DTA_Localize at the end of the enum for backwards compat with integer usage 2023-09-14 23:24:42 +02:00
wadsrc_bm - removed obsolete CMake version requirements. 2023-09-03 09:04:17 +02:00
wadsrc_extra - removed obsolete CMake version requirements. 2023-09-03 09:04:17 +02:00
wadsrc_lights lights: update for Freedoom. 2023-09-07 10:18:04 -04:00
wadsrc_widepix - removed obsolete CMake version requirements. 2023-09-03 09:04:17 +02:00
.gitattributes - fix icon in .gitattributes, it must always be checked out as binary 2021-09-21 11:52:36 -04:00
.gitignore - use stb-image for JPEG decoding. 2023-09-03 08:34:58 +02:00
AppImageBuilder.yml - add recipe files for appimagebuilder 2023-08-03 13:21:20 -04:00
auto-setup-windows.cmd - fix paths in previous commit 2023-08-25 22:46:22 -04:00
CMakeLists.txt - use stb-image for JPEG decoding. 2023-09-03 08:34:58 +02:00
LICENSE - add LICENSE file for GitHub's info displays 2018-07-21 07:03:52 -04:00
options.checklist - sprite lightlevel cleanup and fixes. 2022-06-01 08:37:13 +02:00
README.md Update README.md 2023-07-05 09:20:16 -04:00
vcpkg.json - update vcpkg base to address vulnerability [CVE-2023-4863](https://nvd.nist.gov/vuln/detail/CVE-2023-4863) 2023-09-14 08:36:48 -04:00

Welcome to GZDoom!

Continuous Integration

GZDoom is a modder-friendly OpenGL and Vulkan source port based on the DOOM engine

Copyright (c) 1998-2023 ZDoom + GZDoom teams, and contributors

Doom Source (c) 1997 id Software, Raven Software, and contributors

Please see license files for individual contributor licenses

Special thanks to Coraline of the EDGE team for allowing us to use her README.md as a template for this one.

Licensed under the GPL v3

https://www.gnu.org/licenses/quick-guide-gplv3.en.html

How to build GZDoom

To build GZDoom, please see the wiki and see the "Programmer's Corner" on the bottom-right corner of the page to build for your platform.

Resources