Yamagi Quake II with Q2 Remaster support
Find a file
Yamagi 9136c8705a Fix lithium2 crashing at startup.
This is one these constructs which makes you wonder how it could ever
work. When querying a cvar by calling Cvar_Get(), the default value
(given in `var_value`) is copied into `cvar_t->default_string`. If a
NULL pointer is given in `var_value`, the NULL pointer is passed to
CopyString() and dereferenced. The game crashes. There's already a NULL
pointer check in the 'cvar wasn't found' branch, but none in the 'cvar
was found' branch... Moving the check to the beginning of the function
isn't an option, because at least lithium2 doesn't implement a NULL
pointer check either. We would just move the crash from the server into
the game.dll. Therefore copy an empty string into
cvar_t->default_string` when a NULL pointer was passed in `cvar_value`
and the cvar was found. Pass the empty string trough `CopyString()` to
get an Z_MAlloc() allocation for it, otherwise we would call `Z_Free()`
on an unallocated object further down below.

Reported by Chris Stewart.
2020-07-11 09:32:11 +02:00
doc s_doppler should default to 0. 2020-04-21 13:58:58 +02:00
src Fix lithium2 crashing at startup. 2020-07-11 09:32:11 +02:00
stuff Add a Dockerfile, submitted by @Opvolger in #498. 2020-01-21 17:26:29 +01:00
.gitignore Also ignore .d files as they got generated every time. 2015-11-12 19:15:37 +01:00
CHANGELOG Mention the gun Z offset in the CHANGELOG. 2020-02-24 17:15:09 +01:00
CMakeLists.txt Haiku porting proposal. 2020-06-20 19:05:55 +00:00
LICENSE Add cURL to the LICENSE file. 2019-05-13 18:02:50 +02:00
Makefile Translate changes to the Makefile build too 2020-06-26 12:43:06 +00:00
README.md Fix link to docs. 2019-12-04 19:35:43 +01:00

Yamagi Quake II

Yamagi Quake II is an enhanced client for id Software's Quake II with focus on offline and coop gameplay. Both the gameplay and the graphics are unchanged, but many bugs in the last official release were fixed and some nice to have features like widescreen support and a modern OpenGL 3.2 renderer were added. Unlike most other Quake II source ports Yamagi Quake II is fully 64-bit clean. It works perfectly on modern processors and operating systems. Yamagi Quake II runs on nearly all common platforms; including FreeBSD, Linux, OpenBSD, Windows and macOS (experimental).

This code is built upon Icculus Quake II, which itself is based on Quake II 3.21. Yamagi Quake II is released under the terms of the GPL version 2. See the LICENSE file for further information.

Documentation

Before asking any question, read through the documentation! The current version can be found here: doc/010_index.md

Releases

The official releases (including Windows binaries) can be found at our homepage: https://www.yamagi.org/quake2
Unsupported preview builds for Windows can be found at https://deponie.yamagi.org/quake2/misc/