diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index 5ccb951..0000000 --- a/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -vavoom-1.27.1.tar.bz2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fa92122 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +vavoom-1.30.tar.bz2 +/vavoom-1.33.tar.bz2 diff --git a/Makefile b/Makefile deleted file mode 100644 index f0b8757..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: vavoom -# $Id$ -NAME := vavoom -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/doom-shareware.appdata.xml b/doom-shareware.appdata.xml new file mode 100644 index 0000000..d5e5297 --- /dev/null +++ b/doom-shareware.appdata.xml @@ -0,0 +1,28 @@ + + + doom-shareware.desktop + CC0-1.0 + proprietary + Doom shareware installer + Doom, id Software's classic first person shooter, shareware installer + +

+ Doom is id Software's classic first person shooter follow-up to + Wolfenstein 3D. The Doom engine is Open Source. The original Doom datafiles + however are not Open Source. There is a gratis, but not Open Source + shareware version available on the internet. +

+

+ This package contains an applications menu entry for playing Doom shareware + using the vavoom engine. The first time you click this menu entry, it will + offer to download and install the Doom shareware datafiles for you. +

+
+ https://en.wikipedia.org/wiki/Doom_%281993_video_game%29 + + http://vavoom-engine.com/images/shots/shot00.jpg + http://vavoom-engine.com/images/shots/shot01.jpg + http://vavoom-engine.com/images/shots/shot02.jpg + + jwrdegoede_at_fedoraproject.org +
diff --git a/doom-shareware.desktop b/doom-shareware.desktop index 6e994ea..5b3d1ef 100644 --- a/doom-shareware.desktop +++ b/doom-shareware.desktop @@ -1,9 +1,9 @@ [Desktop Entry] -Encoding=UTF-8 Name=Doom Comment=Doom Shareware launcher, will automatically download the needed data-files Exec=doom-shareware -Icon=doom-logo.png +Icon=doom-logo Terminal=false Type=Application Categories=Game;ActionGame; +Keywords=game;fps;first;person;shooter;doom; diff --git a/doom-shareware.sh b/doom-shareware.sh index b7c11ab..5c8be79 100644 --- a/doom-shareware.sh +++ b/doom-shareware.sh @@ -2,6 +2,14 @@ set -e +# First check if a system-wide doom1.wad is installed and if it is +# use that instead of downloading +if [ -f /usr/share/games/doom/doom1.wad ]; then + exec /usr/bin/vavoom -iwaddir /usr/share/games/doom -doom "$@" +elif [ -f /usr/share/doom/doom1.wad ]; then + exec /usr/bin/vavoom -iwaddir /usr/share/doom -doom "$@" +fi + if [ ! -f ~/.vavoom/doom-shareware/doom1.wad ]; then set +e /usr/share/autodl/AutoDL.py /usr/share/vavoom/doom.autodlrc diff --git a/doom.autodlrc b/doom.autodlrc index 0ed372f..0983454 100644 --- a/doom.autodlrc +++ b/doom.autodlrc @@ -39,7 +39,8 @@ ID SOFTWARE LICENSE [MD5]244d181457c9be5f28b91b488e67e042[/MD5] [PATH]$HOME/.vavoom/doom-shareware[/PATH] [MIRRORS] - [URL]http://www.parkerinfo.com/dmdo/downloads/doom19s.zip[/URL] + [URL]http://downloads.sourceforge.net/salix-sbo/doom19s.zip[/URL] + [URL]http://mirrors.syringanetworks.net/idgames/idstuff/doom/doom19s.zip[/URL] [URL]ftp://ftp.fu-berlin.de/pc/msdos/games/idgames/idstuff/doom/doom19s.zip[/URL] [URL]ftp://ftp.idsoftware.com/idstuff/doom/doom19s.zip[/URL] [/MIRRORS] diff --git a/heretic-shareware.appdata.xml b/heretic-shareware.appdata.xml new file mode 100644 index 0000000..71b7fd4 --- /dev/null +++ b/heretic-shareware.appdata.xml @@ -0,0 +1,27 @@ + + + heretic-shareware.desktop + CC0-1.0 + proprietary + Heretic shareware installer + Heretic, classic dark fantasy first person shooter, shareware installer + +

+ Heretic is Raven's classic dark fantasy first person shooter using a + modified Doom engine. The Heretic engine is Open Source. The original + Heretic datafiles however are not Open Source. There is a gratis, but not + Open Source shareware version available on the internet. +

+

+ This package contains an applications menu entry for playing Heretic + shareware using the vavoom engine. The first time you click this menu + entry, it will offer to download and install the Heretic shareware + datafiles for you. +

+
+ https://en.wikipedia.org/wiki/Heretic_%28video_game%29 + + http://vavoom-engine.com/images/shots/shot03.jpg + + jwrdegoede_at_fedoraproject.org +
diff --git a/heretic-shareware.desktop b/heretic-shareware.desktop index cfaf645..34c3c9f 100644 --- a/heretic-shareware.desktop +++ b/heretic-shareware.desktop @@ -1,9 +1,9 @@ [Desktop Entry] -Encoding=UTF-8 Name=Heretic Comment=Heretic Shareware launcher, will automatically download the needed data-files Exec=heretic-shareware -Icon=tux-b2f.png +Icon=tux-b2f Terminal=false Type=Application Categories=Game;ActionGame; +Keywords=game;fps;first;person;shooter;heretic; diff --git a/heretic.autodlrc b/heretic.autodlrc index a28140b..b045919 100644 --- a/heretic.autodlrc +++ b/heretic.autodlrc @@ -55,7 +55,8 @@ f. In any manner and through any medium whatsoever commercially exploit the sof [MD5]420b23b3d8f2cbd164c121369eaa2b09[/MD5] [PATH]$HOME/.vavoom/heretic-shareware[/PATH] [MIRRORS] - [URL]http://www.parkerinfo.com/dmdo/downloads/htic_v12.zip[/URL] + [URL]http://downloads.sourceforge.net/salix-sbo/htic_v12.zip[/URL] + [URL]http://mirrors.syringanetworks.net/idgames/idstuff/heretic/htic_v12.zip[/URL] [URL]ftp://ftp.fu-berlin.de/pc/msdos/games/idgames/idstuff/heretic/htic_v12.zip[/URL] [URL]ftp://ftp.idsoftware.com/idstuff/heretic/htic_v12.zip[/URL] [/MIRRORS] diff --git a/hexen-demo.appdata.xml b/hexen-demo.appdata.xml new file mode 100644 index 0000000..1108837 --- /dev/null +++ b/hexen-demo.appdata.xml @@ -0,0 +1,29 @@ + + + hexen-demo.desktop + CC0-1.0 + proprietary + Hexen demo installer + Hexen, classic dark fantasy first person shooter, demo installer + +

+ Hexen: Beyond Heretic is Raven's classic dark fantasy first person shooter + follow-up to Heretic. The Hexen engine is Open Source. The original Hexen + datafiles however are not Open Source. There is a gratis, but not Open + Source demo version available on the internet. +

+

+ This package contains an applications menu entry for playing Hexen + demo using the vavoom engine. The first time you click this menu + entry, it will offer to download and install the Hexen demo + datafiles for you. +

+
+ https://en.wikipedia.org/wiki/Hexen:_Beyond_Heretic + + http://vavoom-engine.com/images/shots/shot04.jpg + http://vavoom-engine.com/images/shots/shot05.jpg + http://vavoom-engine.com/images/shots/shot06.jpg + + jwrdegoede_at_fedoraproject.org +
diff --git a/hexen-demo.desktop b/hexen-demo.desktop index b4f44b2..2909dd1 100644 --- a/hexen-demo.desktop +++ b/hexen-demo.desktop @@ -1,9 +1,9 @@ [Desktop Entry] -Encoding=UTF-8 Name=Hexen Comment=Hexen Demo launcher, will automatically download the needed data-files Exec=hexen-demo -Icon=tux-b2f.png +Icon=tux-b2f Terminal=false Type=Application Categories=Game;ActionGame; +Keywords=game;fps;first;person;shooter;hexen; diff --git a/hexen.autodlrc b/hexen.autodlrc index 2cae36d..b2ccd9c 100644 --- a/hexen.autodlrc +++ b/hexen.autodlrc @@ -38,7 +38,8 @@ id Software, inc.[/TEXT] [MD5]b30672df8b41fd35fafe40ce0c3855c3[/MD5] [PATH]$HOME/.vavoom/hexen-demo[/PATH] [MIRRORS] - [URL]http://www.parkerinfo.com/dmdo/downloads/hexndemo.zip[/URL] + [URL]http://downloads.sourceforge.net/salix-sbo/hexndemo.zip[/URL] + [URL]http://mirrors.syringanetworks.net/idgames/idstuff/hexen/hexndemo.zip[/URL] [URL]ftp://ftp.fu-berlin.de/pc/msdos/games/idgames/idstuff/hexen/hexndemo.zip[/URL] [URL]ftp://ftp.idsoftware.com/idstuff/hexen/hexndemo.zip[/URL] [/MIRRORS] diff --git a/sources b/sources index 2aee70e..674ae59 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -0a0d3781cfeb5625d54abf6a1f4da4bc vavoom-1.27.1.tar.bz2 +f3b40df71eeb2f1c8956b81c995dfc28 vavoom-1.33.tar.bz2 diff --git a/strife-demo.appdata.xml b/strife-demo.appdata.xml new file mode 100644 index 0000000..d3ea25f --- /dev/null +++ b/strife-demo.appdata.xml @@ -0,0 +1,27 @@ + + + strife-demo.desktop + CC0-1.0 + proprietary + Strife demo installer + Strife, classic first person shooter, demo installer + +

+ Strife is Rogue Entertainment's classic first person shooter with + role-playing game elements. The Strife engine is Open Source. The original + Strife datafiles however are not Open Source. There is a gratis, but not + Open Source demo version available on the internet. +

+

+ This package contains an applications menu entry for playing Strife + demo using the vavoom engine. The first time you click this menu + entry, it will offer to download and install the Strife demo + datafiles for you. +

+
+ https://en.wikipedia.org/wiki/Strife_%28video_game%29 + + http://vavoom-engine.com/images/shots/shot07.jpg + + jwrdegoede_at_fedoraproject.org +
diff --git a/strife-demo.desktop b/strife-demo.desktop index c23af96..118d21c 100644 --- a/strife-demo.desktop +++ b/strife-demo.desktop @@ -1,9 +1,9 @@ [Desktop Entry] -Encoding=UTF-8 Name=Strife Comment=Strife Demo launcher, will automatically download the needed data-files Exec=strife-demo -Icon=tux-b2f.png +Icon=tux-b2f Terminal=false Type=Application Categories=Game;ActionGame; +Keywords=game;fps;first;person;shooter;strife; diff --git a/strife.autodlrc b/strife.autodlrc index e030b9e..1e7e1d1 100644 --- a/strife.autodlrc +++ b/strife.autodlrc @@ -17,10 +17,8 @@ Please click Accept to allow access to the internet to download the necessary da [MD5]972070afb30c96fc3c69d954dfab2424[/MD5] [PATH]$HOME/.vavoom/strife-demo[/PATH] [MIRRORS] - [URL]http://www.gamers.org/pub/games/strife/strife11.zip[/URL] + [URL]http://mirrors.syringanetworks.net/idgames/roguestuff/strife11.zip[/URL] [URL]ftp://ftp.fu-berlin.de/pc/msdos/games/idgames/roguestuff/strife11.zip[/URL] - [URL]http://downloads.planetmirror.com/pub/idgames/roguestuff/strife11.zip[/URL] - [URL]ftp://archives.3dgamers.com/pub/games/strife/strife11.zip[/URL] [/MIRRORS] [/FILE] [/FILELIST] diff --git a/vavoom-1.26-mikmod32.patch b/vavoom-1.26-mikmod32.patch deleted file mode 100644 index e3fb4d5..0000000 --- a/vavoom-1.26-mikmod32.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -up vavoom-1.26/source/s_mikmod.cpp~ vavoom-1.26/source/s_mikmod.cpp ---- vavoom-1.26/source/s_mikmod.cpp~ 2008-02-17 20:10:24.000000000 +0100 -+++ vavoom-1.26/source/s_mikmod.cpp 2008-02-17 20:10:24.000000000 +0100 -@@ -97,6 +97,9 @@ MDRIVER VMikModAudioCodec::Driver = - 255, - #if (LIBMIKMOD_VERSION > 0x030106) - "vavoom", -+#if (LIBMIKMOD_VERSION >= 0x030200) -+ "", -+#endif - NULL, - #endif - VMikModAudioCodec::Drv_IsThere, diff --git a/vavoom-1.33-cmake4.patch b/vavoom-1.33-cmake4.patch new file mode 100644 index 0000000..ac4e123 --- /dev/null +++ b/vavoom-1.33-cmake4.patch @@ -0,0 +1,35 @@ +diff -up vavoom-1.33/CMakeLists.txt~ vavoom-1.33/CMakeLists.txt +--- vavoom-1.33/CMakeLists.txt~ 2010-12-13 22:58:25.000000000 +0100 ++++ vavoom-1.33/CMakeLists.txt 2026-02-13 16:38:52.528113329 +0100 +@@ -2,10 +2,7 @@ project(vavoom) + + option(ENABLE_ZONE_DEBUG "Enable memory allocation debuging") + +-cmake_minimum_required(VERSION 2.4) +-if(COMMAND cmake_policy) +- cmake_policy(SET CMP0003 NEW) +-endif(COMMAND cmake_policy) ++cmake_minimum_required(VERSION 3.5) + + if(NOT DEFINED DATADIR) + set(DATADIR share/vavoom) +diff -up vavoom-1.33/basev/CMakeLists.txt~ vavoom-1.33/basev/CMakeLists.txt +--- vavoom-1.33/basev/CMakeLists.txt~ 2009-11-13 22:42:38.000000000 +0100 ++++ vavoom-1.33/basev/CMakeLists.txt 2026-02-13 16:38:00.031421478 +0100 +@@ -1,5 +1,5 @@ +-get_target_property(VLUMPY vlumpy LOCATION) +-get_target_property(ACC acc LOCATION) ++set (VLUMPY $) ++set (ACC $) + + add_subdirectory(common) + add_subdirectory(doom) +diff -up vavoom-1.33/progs/CMakeLists.txt~ vavoom-1.33/progs/CMakeLists.txt +--- vavoom-1.33/progs/CMakeLists.txt~ 2008-09-11 22:10:51.000000000 +0200 ++++ vavoom-1.33/progs/CMakeLists.txt 2026-02-13 16:36:57.736787137 +0100 +@@ -1,4 +1,4 @@ +-get_target_property(VCC vcc LOCATION) ++set (VCC $) + + add_subdirectory(common) + add_subdirectory(doom) diff --git a/vavoom-1.33-crash-on-exit.patch b/vavoom-1.33-crash-on-exit.patch new file mode 100644 index 0000000..0445933 --- /dev/null +++ b/vavoom-1.33-crash-on-exit.patch @@ -0,0 +1,12 @@ +--- vavoom-1.33/source/vc_object.cpp~ 2016-08-09 12:35:44.000000000 +0200 ++++ vavoom-1.33/source/vc_object.cpp 2016-08-09 12:55:12.565307581 +0200 +@@ -187,7 +187,8 @@ void VObject::StaticExit() + GObjObjects.Clear(); + GObjAvailable.Clear(); + GObjInitialised = false; +- VMemberBase::StaticExit(); ++ // This causes vavoom to crash on exit when build with -std=c++11 ++ // VMemberBase::StaticExit(); + } + + //========================================================================== diff --git a/vavoom-1.33-cx11.patch b/vavoom-1.33-cx11.patch new file mode 100644 index 0000000..730d017 --- /dev/null +++ b/vavoom-1.33-cx11.patch @@ -0,0 +1,74 @@ +--- vavoom-1.33/libs/core/exception.h 2010-04-03 18:27:57.000000000 +0200 ++++ vavoom-1.33.new/libs/core/exception.h 2016-08-09 12:20:12.901732326 +0200 +@@ -23,7 +23,7 @@ + //** + //************************************************************************** + +-#define DO_GUARD 1 ++#define DO_GUARD 0 + #define DO_CHECK 1 + + #ifdef PARANOID +@@ -95,9 +95,9 @@ + #endif + + #if defined(_DEBUG) || !DO_GUARD +-#define guard(name) {static const char __FUNC_NAME__[] = #name; { +-#define unguard }} +-#define unguardf(msg) }} ++#define guard(name) { ++#define unguard } ++#define unguardf(msg) } + #elif defined(USE_GUARD_SIGNAL_CONTEXT) + #define guard(name) {static const char __FUNC_NAME__[] = #name; \ + __Context __LOCAL_CONTEXT__; try { if (setjmp(__Context::Env)) { \ +--- vavoom-1.33/source/sys_bsd.cpp 2010-04-03 16:16:11.000000000 +0200 ++++ vavoom-1.33.new/source/sys_bsd.cpp 2016-08-09 12:27:56.608952461 +0200 +@@ -270,7 +270,7 @@ + signal(s, SIG_IGN); + + // Exit with error message +-#ifdef __linux__ ++#if defined __linux__ && DO_GUARD + switch (s) + { + case SIGABRT: +--- vavoom-1.33/source/vc_object.cpp 2016-08-09 12:31:16.124337565 +0200 ++++ vavoom-1.33.new/source/vc_object.cpp 2016-08-09 12:15:13.828657354 +0200 +@@ -135,7 +135,7 @@ + // + //========================================================================== + +-void VObject::operator delete(void* Object) ++void VObject::operator delete(void* Object) noexcept + { + Z_Free(Object); + } +@@ -146,7 +146,12 @@ + // + //========================================================================== + +-void VObject::operator delete(void* Object, const char*, int) ++void VObject::operator delete(void* Object, const char*, int) noexcept ++{ ++ Z_Free(Object); ++} ++ ++void VObject::operator delete(void* Object, std::size_t size) noexcept + { + Z_Free(Object); + } +--- vavoom-1.33/source/vc_object.h 2010-04-03 16:16:11.000000000 +0200 ++++ vavoom-1.33.new/source/vc_object.h 2016-08-09 12:15:25.499738024 +0200 +@@ -147,8 +147,9 @@ + #endif + void* operator new(size_t); + void* operator new(size_t, const char*, int); +- void operator delete(void*); +- void operator delete(void*, const char*, int); ++ void operator delete(void*) noexcept; ++ void operator delete(void*, const char*, int) noexcept; ++ void operator delete(void*, std::size_t size) noexcept; + #ifdef ZONE_DEBUG_NEW + #define new ZONE_DEBUG_NEW + #endif diff --git a/vavoom-1.33-default-iwaddir.patch b/vavoom-1.33-default-iwaddir.patch new file mode 100644 index 0000000..1c64b3c --- /dev/null +++ b/vavoom-1.33-default-iwaddir.patch @@ -0,0 +1,23 @@ +Subject: Add support for system iwad dirs +Author: Hans de Goede + +Make vavoom check /usr/share/games/doom and /usr/share/doom for wads +when no iwaddir is specified on the commandline. + +Signed-off-by: Hans de Goede +diff -up vavoom-1.33/source/files.cpp~ vavoom-1.33/source/files.cpp +--- vavoom-1.33/source/files.cpp~ 2016-01-04 21:09:15.000000000 +0100 ++++ vavoom-1.33/source/files.cpp 2016-01-04 21:16:04.440620918 +0100 +@@ -487,6 +487,12 @@ void FL_Init() + } + } + ++ // If no dirs were specified look in the system default dir ++ if (IWadDirs.Num() == 0) { ++ IWadDirs.Append("/usr/share/games/doom"); ++ IWadDirs.Append("/usr/share/doom"); ++ } ++ + AddGameDir("basev/common"); + + p = GArgs.CheckValue("-iwad"); diff --git a/vavoom-1.33-dont-override-delete.patch b/vavoom-1.33-dont-override-delete.patch new file mode 100644 index 0000000..aaf499e --- /dev/null +++ b/vavoom-1.33-dont-override-delete.patch @@ -0,0 +1,151 @@ +Subject: Don't override the global new and delete operators +Author: Hans de Goede + +vavoom used to override the global new and delete operators, this is a +bad idea and leads to e.g. crashes inside mesa. + +Some code paths in vavoom rely on Z_Malloc / new resp. Z_Free / delete +to be interchangable, e.g. source/vc_type.cpp VScriptArray::Clear +sometimes calls delete[] on memory allocated with Z_Malloc. + +So we cannot simply just remove the custom new / delete operator +implementations, in stead this patch removes these operator overrides, +and re-implements Z_Malloc / Z_Free as wrappers around new / delete, +keeping the interchangability, while dropping the troublesome override +of the global new / delete operators. + +Signed-off-by: Hans de Goede +--- vavoom-1.33/libs/core/zone.cpp 2010-04-21 15:15:40.000000000 +0200 ++++ vavoom-1.33.new/libs/core/zone.cpp 2016-01-03 20:38:07.029914648 +0100 +@@ -33,6 +33,8 @@ + + #include "core.h" + ++#if 0 ++ + // MACROS ------------------------------------------------------------------ + + #define SMALLID 0x22 +@@ -516,3 +518,4 @@ + } + + #endif ++#endif +--- vavoom-1.33/libs/core/zone.h 2010-12-23 20:47:55.000000000 +0100 ++++ vavoom-1.33.new/libs/core/zone.h 2016-01-03 20:39:57.420007907 +0100 +@@ -27,88 +27,20 @@ + //** + //************************************************************************** + +-//#define ZONE_DEBUG 1 +- + void Z_Shutdown(); + +-#ifdef ZONE_DEBUG +- +-void* Z_Malloc(int size, const char* FileName, int LineNumber); +-void* Z_Calloc(int size, const char* FileName, int LineNumber); +-void Z_Free(void* ptr, const char* FileName, int LineNumber); +- +-inline void* operator new(size_t Size, const char* FileName, int LineNumber) +-{ +- return Z_Malloc(Size, FileName, LineNumber); +-} +- +-inline void operator delete(void* Ptr, const char* FileName, int LineNumber) +-{ +- Z_Free(Ptr, FileName, LineNumber); +-} +- +-inline void* operator new[](size_t Size, const char* FileName, int LineNumber) +-{ +- return Z_Malloc(Size, FileName, LineNumber); +-} +- +-inline void operator delete[](void* Ptr, const char* FileName, int LineNumber) +-{ +- Z_Free(Ptr, FileName, LineNumber); +-} +- +-inline void* operator new(size_t Size) +-{ +- return Z_Malloc(Size, "", 0); +-} +- +-inline void operator delete(void* Ptr) ++static inline void* Z_Malloc(int size) + { +- Z_Free(Ptr, "", 0); ++ return static_cast(operator new(size)); + } + +-inline void* operator new[](size_t Size) ++static inline void* Z_Calloc(int size) + { +- return Z_Malloc(Size, "", 0); ++ return memset(Z_Malloc(size), 0, size); + } + +-inline void operator delete[](void* Ptr) ++static inline void Z_Free(void* ptr) + { +- Z_Free(Ptr, "", 0); ++ char *p = (char *)ptr; ++ delete p; + } +- +-#define Z_Malloc(size) Z_Malloc(size, __FILE__, __LINE__) +-#define Z_Calloc(size) Z_Calloc(size, __FILE__, __LINE__) +-#define Z_Free(ptr) Z_Free(ptr, __FILE__, __LINE__) +- +-#define ZONE_DEBUG_NEW new(__FILE__, __LINE__) +-#undef new +-#define new ZONE_DEBUG_NEW +- +-#else +- +-void* Z_Malloc(int size); +-void* Z_Calloc(int size); +-void Z_Free(void* ptr); +- +-inline void* operator new(size_t Size) +-{ +- return Z_Malloc(int(Size)); +-} +- +-inline void operator delete(void* Ptr) +-{ +- Z_Free(Ptr); +-} +- +-inline void* operator new[](size_t Size) +-{ +- return Z_Malloc(int(Size)); +-} +- +-inline void operator delete[](void* Ptr) +-{ +- Z_Free(Ptr); +-} +- +-#endif +--- vavoom-1.33/source/host.cpp 2010-06-04 23:20:22.000000000 +0200 ++++ vavoom-1.33.new/source/host.cpp 2016-01-03 20:42:04.898651198 +0100 +@@ -706,5 +706,5 @@ + + SAFE_SHUTDOWN(VObject::StaticExit, ()) + SAFE_SHUTDOWN(VName::StaticExit, ()) +- SAFE_SHUTDOWN(Z_Shutdown, ()) ++// SAFE_SHUTDOWN(Z_Shutdown, ()) + } +--- vavoom-1.33/source/sys_sdl.cpp~ 2010-09-07 22:05:19.000000000 +0200 ++++ vavoom-1.33/source/sys_sdl.cpp 2016-01-03 20:52:32.566259819 +0100 +@@ -530,7 +530,7 @@ int main(int argc,char** argv) + catch (VavoomError &e) + { + Host_Shutdown(); +- stack_trace(); ++// stack_trace(); + + printf("\n%s\n", e.message); + dprintf("\n\nERROR: %s\n", e.message); diff --git a/vavoom-1.33-format-security.patch b/vavoom-1.33-format-security.patch new file mode 100644 index 0000000..28d04c2 --- /dev/null +++ b/vavoom-1.33-format-security.patch @@ -0,0 +1,51 @@ +diff -up vavoom-1.33/utils/vcc/vcc.cpp~ vavoom-1.33/utils/vcc/vcc.cpp +--- vavoom-1.33/utils/vcc/vcc.cpp~ 2010-04-21 15:15:40.000000000 +0200 ++++ vavoom-1.33/utils/vcc/vcc.cpp 2014-06-20 15:15:47.297819212 +0200 +@@ -122,7 +122,7 @@ int main(int argc, char **argv) + } + catch (VException& e) + { +- FatalError(e.What()); ++ FatalError("%s", e.What()); + } + return 0; + } +diff -up vavoom-1.33/source/misc.cpp~ vavoom-1.33/source/misc.cpp +--- vavoom-1.33/source/misc.cpp~ 2010-09-01 20:26:05.000000000 +0200 ++++ vavoom-1.33/source/misc.cpp 2014-06-20 15:23:18.803404958 +0200 +@@ -119,7 +119,7 @@ void FOutputDevice::Logf(EName Type, con + + void VLogSysError::Serialise(const char* V, EName) + { +- Sys_Error(V); ++ Sys_Error("%s", V); + } + + //========================================================================== +@@ -130,7 +130,7 @@ void VLogSysError::Serialise(const char* + + void VLogHostError::Serialise(const char* V, EName) + { +- Host_Error(V); ++ Host_Error("%s", V); + } + + //========================================================================== +diff -up vavoom-1.33/source/vc_object.cpp~ vavoom-1.33/source/vc_object.cpp +--- vavoom-1.33/source/vc_object.cpp~ 2010-06-04 23:20:21.000000000 +0200 ++++ vavoom-1.33/source/vc_object.cpp 2014-06-20 15:27:33.178529910 +0200 +@@ -477,12 +477,12 @@ IMPLEMENT_FUNCTION(VObject, IsDestroyed) + + IMPLEMENT_FUNCTION(VObject, Error) + { +- Host_Error(*PF_FormatString()); ++ Host_Error("%s", *PF_FormatString()); + } + + IMPLEMENT_FUNCTION(VObject, FatalError) + { +- Sys_Error(*PF_FormatString()); ++ Sys_Error("%s", *PF_FormatString()); + } + + //************************************************************************** diff --git a/vavoom-1.33-gcc6.patch b/vavoom-1.33-gcc6.patch new file mode 100644 index 0000000..32a53b9 --- /dev/null +++ b/vavoom-1.33-gcc6.patch @@ -0,0 +1,23 @@ +diff -up vavoom-1.33/source/vc_dehacked.cpp~ vavoom-1.33/source/vc_dehacked.cpp +--- vavoom-1.33/source/vc_dehacked.cpp~ 2010-06-04 23:20:22.000000000 +0200 ++++ vavoom-1.33/source/vc_dehacked.cpp 2016-02-22 14:25:53.611745006 +0100 +@@ -128,8 +128,8 @@ static const VDehFlag DehFlags[] = + { 0, "TRANSLUC75", 0x20000000 }, + { 0, "STEALTH", 0x40000000 }, + { 0, "UNUSED4", 0x40000000 }, +- { 0, "TRANSLUCENT", 0x80000000 }, +- { 0, "TRANSLUC50", 0x80000000 }, ++ { 0, "TRANSLUCENT", (int)0x80000000 }, ++ { 0, "TRANSLUC50", (int)0x80000000 }, + { 1, "LOGRAV", 0x00000001 }, + { 1, "WINDTHRUST", 0x00000002 }, + { 1, "FLOORBOUNCE", 0x00000004 }, +@@ -161,7 +161,7 @@ static const VDehFlag DehFlags[] = + { 1, "DORMANT", 0x10000000 }, + { 1, "ICEDAMAGE", 0x20000000 }, + { 1, "SEEKERMISSILE", 0x40000000 }, +- { 1, "REFLECTIVE", 0x80000000 }, ++ { 1, "REFLECTIVE", (int)0x80000000 }, + // Ignored flags + { 0, "SLIDE", 0 }, + { 0, "UNUSED2", 0 }, diff --git a/vavoom-1.33-misc-fixes.patch b/vavoom-1.33-misc-fixes.patch new file mode 100644 index 0000000..b96213c --- /dev/null +++ b/vavoom-1.33-misc-fixes.patch @@ -0,0 +1,44 @@ +--- vavoom-1.33/source/host.cpp~ 2016-08-09 12:31:16.000000000 +0200 ++++ vavoom-1.33/source/host.cpp 2016-08-09 12:42:15.942913575 +0200 +@@ -522,8 +522,8 @@ void Host_Error(const char *error, ...) + + COMMAND(Version) + { +- GCon->Log("VAVOOM version " VERSION_TEXT" (r" SVN_REVISION_STRING ")."); +- GCon->Log("Compiled "__DATE__" "__TIME__"."); ++ GCon->Log("VAVOOM version " VERSION_TEXT " (r" SVN_REVISION_STRING ")."); ++ GCon->Log("Compiled " __DATE__ " " __TIME__ "."); + } + + //========================================================================== +--- vavoom-1.33/source/vc_expr_invoke.cpp~ 2010-09-01 20:26:05.000000000 +0200 ++++ vavoom-1.33/source/vc_expr_invoke.cpp 2016-08-09 12:41:08.959449151 +0200 +@@ -740,7 +740,7 @@ void VInvocation::CheckParams(VEmitConte + if (!Args[i]->Type.Equals(Func->ParamTypes[i])) + { + //FIXME This should be error. +- if (!Func->ParamFlags[NumArgs] & FPARM_Optional) ++ if (!(Func->ParamFlags[NumArgs] & FPARM_Optional)) + { + Args[i]->Type.CheckMatch(Args[i]->Loc, Func->ParamTypes[i]); + //ParseError(Args[i]->Loc, "Out parameter types must be equal"); +@@ -750,7 +750,7 @@ void VInvocation::CheckParams(VEmitConte + } + else + { +- if (!Func->ParamFlags[NumArgs] & FPARM_Optional) ++ if (!(Func->ParamFlags[NumArgs] & FPARM_Optional)) + { + Args[i]->Type.CheckMatch(Args[i]->Loc, Func->ParamTypes[i]); + } +--- vavoom-1.33/utils/vcc/vcc.cpp~ 2016-08-09 12:31:16.000000000 +0200 ++++ vavoom-1.33/utils/vcc/vcc.cpp 2016-08-09 12:43:16.904336245 +0200 +@@ -171,7 +171,7 @@ static void DisplayUsage() + { + // Print usage. + printf("\n"); +- printf("VCC Version 1.%d. Copyright (c)2000-2001 by JL. ("__DATE__" "__TIME__")\n", PROG_VERSION); ++ printf("VCC Version 1.%d. Copyright (c)2000-2001 by JL. (" __DATE__ " " __TIME__ ")\n", PROG_VERSION); + printf("Usage: vcc [options] source[.c] [object[.dat]]\n"); + printf(" -d Output debugging information into specified file\n"); + printf(" -a Output function's ASM statements into debug file\n"); diff --git a/vavoom-1.33-wxwidgets3.0.patch b/vavoom-1.33-wxwidgets3.0.patch new file mode 100644 index 0000000..d51556a --- /dev/null +++ b/vavoom-1.33-wxwidgets3.0.patch @@ -0,0 +1,23 @@ +diff -up vavoom-1.33/utils/vlaunch/CMakeLists.txt.wx3 vavoom-1.33/utils/vlaunch/CMakeLists.txt +--- vavoom-1.33/utils/vlaunch/CMakeLists.txt.wx3 2010-12-13 16:01:21.000000000 -0500 ++++ vavoom-1.33/utils/vlaunch/CMakeLists.txt 2018-10-28 20:53:27.545594859 -0400 +@@ -1,5 +1,7 @@ + if(ENABLE_LAUNCHER) + ++ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") ++ + find_package(wxWidgets REQUIRED) + include(${wxWidgets_USE_FILE}) + +diff -up vavoom-1.33/utils/vlaunch/vlaunch.cpp.wx3 vavoom-1.33/utils/vlaunch/vlaunch.cpp +--- vavoom-1.33/utils/vlaunch/vlaunch.cpp.wx3 2011-01-01 06:51:56.000000000 -0500 ++++ vavoom-1.33/utils/vlaunch/vlaunch.cpp 2018-10-28 20:32:37.076595864 -0400 +@@ -133,7 +133,7 @@ IMPLEMENT_APP(VLaunchApp) + + VMain::VMain() + : wxFrame(NULL, wxID_ANY, wxT("Vavoom launcher"), wxDefaultPosition, wxDefaultSize, +- wxDEFAULT_FRAME_STYLE & ~ (wxRESIZE_BORDER | wxRESIZE_BOX | wxMAXIMIZE_BOX)) ++ wxDEFAULT_FRAME_STYLE & ~ (wxRESIZE_BORDER | wxMAXIMIZE_BOX)) + { + SetIcon(wxICON(vlaunch)); + diff --git a/vavoom.6 b/vavoom.6 new file mode 100644 index 0000000..106b0d6 --- /dev/null +++ b/vavoom.6 @@ -0,0 +1,133 @@ +.TH vavoom 6 games +.SS NAME +vavoom \- The most advanced Doom/Heretic/Hexen/Strife source port around! +.SH SYNOPSIS +.B vavoom +[ \-opengl ] [ \-d3d ] [ \-particles \fIn\fR ] [ \-surfcachesize \fIn\fR ] [ \-nosound ] [ \-no3dsound ] [ \-nomusic ] [ \-cddev \fIfile\fR ] [ \-openal ] [ \-nomouse ] [ \-nojoy ] [ \-nolan ] [ \-noudp ] [ \-ip \fIip_addr\fR ] [ \-noipx ] [ \-mpath ] [ \-port \fIn\fR ] { [ \-freedoom] | [ \-doom ] | [ \-doom2 ] | [ \-tnt ] | [ \-plutonia ] | [ \-heretic ] | [ \-hexen ] | [ \-strife ] } [ \-game \fIdirectory\fR ] [ \-devgame \fIdirectory\fR ] [ \-devsnd \fIsndinfo_script\fR ] [ \-progs \fIdirectory\fP ] + +.SH DESCRIPTION + +.B Vavoom +is a source port based on sources of Doom, Heretic, Hexen and +a little bit from Quake. Supported platforms are Windows and Linux. +Vavoom has a graphical launcher (vlaunch). + +.SH Graphic Options +.TP +.BI \-opengl +selects OpenGL driver +.TP +.BI \-d3d +selects Direct3D driver +.TP +.BI \-particles\ +specifies number of particles to use, default is 2048, but you can't have less than 512 (i.e. you can't disable them) +.TP +.BI \-surfcachesize\ +specifies size of surface cache memory, in kilobytes +.SH Sound Options +.TP +.BI \-nosound +disables all sound, music and CD-Audio +.TP +.BI \-nosfx +disables sound +.TP +.BI \-no3dsound +disables 3D sound, use original mode, Windows version only +.TP +.BI \-nomusic +disables music +.TP +.BI \-nocdaudio +disables CD music +.TP +.BI \-cddev\ +specifies CD device \fIfile\fP, default /dev/cdrom, LINUX version only +.TP +.BI \-openal +enabled OpenAL driver. +.SH Input Options +.BI \-nomouse +disables mouse +.TP +.BI \-nojoy +disables joystick +.SH Network Options +.BI \-nolan +disables all LAN drivers +.TP +.BI \-noudp +disables TCP/IP driver +.TP +.BI \-ip\
+specifies IP address, Windows version only +.TP +.BI \-noipx +disables IPX driver +.TP +.BI \-mpath +enables MPATH TCP/IP driver, DOS version only +.TP +.BI \-port\ +sets default LAN port +.SH Game selection +.BI \-freedoom +look only for FreeDoom IWAD files +.TP +.BI \-doom +look only for Doom IWAD files +.TP +.BI \-doom2 +look only for Doom 2: Hell On Earth IWAD files +.TP +.BI \-tnt +look only for Doom TNT: Evilution IWAD files +.TP +.BI \-plutonia +look only for Doom: The Plutionia Experiment IWAD files +.TP +.BI \-heretic +look only for Heretic IWAD files +.TP +.BI \-hexen +look only for Hexen IWAD files +.TP +.BI \-strife +look only for Strife IWAD files +.SH Custom games and development +.BI \-game\ +specifies custom game. +.TP +.BI \-devgame\ +like \fI-game\fR, but also sets Vavoom in development mode. +.TP +.BI \-devsound\ +sets sound development mode, uses given SNDINFO script, sounds and music are loaded form archive \fIdirectory\fP, which is specified in script. +.TP +.BI \-progs\ +specifies \fIdirectory\fP where to look for progs. Server progs are loaded from \fIfile\fP svprogs.dat, client progs - clprogs.dat. Path must include ending slash. + Example: \-progs progs/myprogs/ +.TP +.BI \-file\ [ \.\.\.] +specifies additional files. +.TP +.BI \-iwaddir\ [ \.\.\.] +specifies additional directories where to look for IWAD files. +.SH Debugging Options +.BI \-debug +creates a debug \fIfile\fP basev/debug.txt with all console messages. +.TP +.BI \-starttime\