From 01fb0115f46b50f5cbf43a055022c0164d855dee Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 9 Feb 2016 14:38:42 +0100 Subject: [PATCH 01/12] - allow optional terrain definitions ... because any Doom terrain WAD would otherwise spam the logfile with messages when running an error log batch. --- src/p_terrain.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/p_terrain.cpp b/src/p_terrain.cpp index af8de5cab20..d30354c1ed4 100644 --- a/src/p_terrain.cpp +++ b/src/p_terrain.cpp @@ -627,13 +627,19 @@ static void ParseFloor (FScanner &sc) FTextureID picnum; int terrain; + bool opt = sc.CheckString("optional"); sc.MustGetString (); + picnum = TexMan.CheckForTexture (sc.String, FTexture::TEX_Flat, FTextureManager::TEXMAN_Overridable|FTextureManager::TEXMAN_TryAny); + if (!picnum.Exists()) { - Printf ("Unknown flat %s\n", sc.String); - sc.MustGetString (); + sc.MustGetString(); + if (!opt) + { + Printf("Unknown flat %s\n", sc.String); + } return; } sc.MustGetString (); From c2666b1bb7ddeef37bb63799ecf128213ab4944a Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 9 Feb 2016 17:58:29 +0100 Subject: [PATCH 02/12] - fix of optional terrain (in master this was part of an incompatible commit. --- src/p_terrain.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/p_terrain.cpp b/src/p_terrain.cpp index d30354c1ed4..9d0b8456adf 100644 --- a/src/p_terrain.cpp +++ b/src/p_terrain.cpp @@ -635,11 +635,11 @@ static void ParseFloor (FScanner &sc) if (!picnum.Exists()) { - sc.MustGetString(); if (!opt) { Printf("Unknown flat %s\n", sc.String); } + sc.MustGetString(); return; } sc.MustGetString (); From 98cd9bd06de24a538cfc3d12876f543e3a8bbab5 Mon Sep 17 00:00:00 2001 From: Braden Obrzut Date: Tue, 9 Feb 2016 22:32:01 -0500 Subject: [PATCH 03/12] - Load OpenAL at runtime for all platforms because I can't think of a good reason not to handle them all the same right now. --- src/CMakeLists.txt | 11 +++++------ src/sound/oalload.h | 6 +++++- src/sound/oalsound.cpp | 21 ++++++++++++++++----- 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6de8feabc02..74b83e5fcf5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -216,13 +216,12 @@ endif( WIN32 ) if( NOT NO_OPENAL ) find_package( OpenAL ) - mark_as_advanced(CLEAR OPENAL_LIBRARY OPENAL_INCLUDE_DIR) - if( OPENAL_FOUND ) + mark_as_advanced(CLEAR OPENAL_INCLUDE_DIR) + if( OPENAL_INCLUDE_DIR ) include_directories( ${OPENAL_INCLUDE_DIR} ) - set( ZDOOM_LIBS ${OPENAL_LIBRARY} ${ZDOOM_LIBS} ) - else( OPENAL_FOUND ) - set( NO_OPENAL ON ) - endif( OPENAL_FOUND ) + else( OPENAL_INCLUDE_DIR ) + set( NO_OPENAL ON ) + endif( OPENAL_INCLUDE_DIR ) endif( NOT NO_OPENAL ) if( NOT NO_FMOD ) diff --git a/src/sound/oalload.h b/src/sound/oalload.h index 7d4e62287f4..986131b2c9c 100644 --- a/src/sound/oalload.h +++ b/src/sound/oalload.h @@ -1,7 +1,11 @@ #ifndef OALDEF_H #define OALDEF_H -#if defined _WIN32 && !defined NO_OPENAL +#ifndef NO_OPENAL + +#ifndef _WIN32 +typedef void* FARPROC; +#endif #define DEFINE_ENTRY(type, name) static type p_##name; #include "oaldef.h" diff --git a/src/sound/oalsound.cpp b/src/sound/oalsound.cpp index a5ec97f97e1..6030c9142c7 100644 --- a/src/sound/oalsound.cpp +++ b/src/sound/oalsound.cpp @@ -36,6 +36,8 @@ #define WIN32_LEAN_AND_MEAN #include #define USE_WINDOWS_DWORD +#else +#include #endif #include "except.h" @@ -61,14 +63,23 @@ CVAR (Bool, snd_efx, true, CVAR_ARCHIVE|CVAR_GLOBALCONFIG) #ifdef _WIN32 static HMODULE hmodOpenAL; +#define OPENALLIB "openal32.dll" +#else +static void* hmodOpenAL; +#ifdef __APPLE__ +#define OPENALLIB "OpenAL.framework/OpenAL" +#else +#define OPENALLIB "libopenal.so" +#endif +#define LoadLibrary(x) dlopen((x), RTLD_LAZY) +#define GetProcAddress(a,b) dlsym((a),(b)) +#define FreeLibrary(x) dlclose((x)) #endif bool IsOpenALPresent() { #ifdef NO_OPENAL return false; -#elif !defined _WIN32 - return true; #else static bool cached_result = false; static bool done = false; @@ -78,10 +89,10 @@ bool IsOpenALPresent() done = true; if (hmodOpenAL == NULL) { - hmodOpenAL = LoadLibrary(NicePath("$PROGDIR/openal32.dll")); + hmodOpenAL = LoadLibrary(NicePath("$PROGDIR/" OPENALLIB)); if (hmodOpenAL == NULL) { - hmodOpenAL = LoadLibrary("openal32.dll"); + hmodOpenAL = LoadLibrary(OPENALLIB); if (hmodOpenAL == NULL) { return false; @@ -90,7 +101,7 @@ bool IsOpenALPresent() for(int i = 0; oalfuncs[i].name != NULL; i++) { *oalfuncs[i].funcaddr = GetProcAddress(hmodOpenAL, oalfuncs[i].name); - if (oalfuncs[i].funcaddr == NULL) + if (*oalfuncs[i].funcaddr == NULL) { FreeLibrary(hmodOpenAL); hmodOpenAL = NULL; From edc84409e096834feb582239cec69cd6fc3d4edd Mon Sep 17 00:00:00 2001 From: Braden Obrzut Date: Tue, 9 Feb 2016 23:33:31 -0500 Subject: [PATCH 04/12] - Fixed: Heretic powered firemace balls didn't seek their target. --- src/g_heretic/a_hereticweaps.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/g_heretic/a_hereticweaps.cpp b/src/g_heretic/a_hereticweaps.cpp index c6ccc6ae6a2..92cffd64b61 100644 --- a/src/g_heretic/a_hereticweaps.cpp +++ b/src/g_heretic/a_hereticweaps.cpp @@ -626,7 +626,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_DeathBallImpact) } else { // Seek - self->angle = self->AngleTo(target); + angle = self->AngleTo(target); newAngle = true; } } From 1c57704b4ea6d5967d5cd651d2d6b87926cbb1d3 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Thu, 11 Feb 2016 22:03:09 +0100 Subject: [PATCH 05/12] - fixed: instant sector movement actions must actually delete the created interpolation right away and not wait until it deletes itself. --- src/dsectoreffect.cpp | 4 ++-- src/dsectoreffect.h | 2 +- src/fragglescript/t_func.cpp | 14 +++++++++++--- src/p_ceiling.cpp | 2 +- src/p_floor.cpp | 2 +- src/r_data/r_interpolate.cpp | 17 ++--------------- src/r_data/r_interpolate.h | 2 +- src/r_defs.h | 1 - 8 files changed, 19 insertions(+), 25 deletions(-) diff --git a/src/dsectoreffect.cpp b/src/dsectoreffect.cpp index 6732a19dc8b..7bc9fc400e8 100644 --- a/src/dsectoreffect.cpp +++ b/src/dsectoreffect.cpp @@ -95,11 +95,11 @@ void DMover::Serialize (FArchive &arc) arc << interpolation; } -void DMover::StopInterpolation() +void DMover::StopInterpolation(bool force) { if (interpolation != NULL) { - interpolation->DelRef(); + interpolation->DelRef(force); interpolation = NULL; } } diff --git a/src/dsectoreffect.h b/src/dsectoreffect.h index 95e1178aa3f..3788c6d88fa 100644 --- a/src/dsectoreffect.h +++ b/src/dsectoreffect.h @@ -36,7 +36,7 @@ class DMover : public DSectorEffect DMover (); void Serialize (FArchive &arc); void Destroy(); - void StopInterpolation(); + void StopInterpolation(bool force = false); inline EResult MoveFloor (fixed_t speed, fixed_t dest, int crush, int direction, bool hexencrush) { return MovePlane (speed, dest, crush, 0, direction, hexencrush); diff --git a/src/fragglescript/t_func.cpp b/src/fragglescript/t_func.cpp index 3060c65aa18..be838d54bc3 100644 --- a/src/fragglescript/t_func.cpp +++ b/src/fragglescript/t_func.cpp @@ -1571,7 +1571,7 @@ class DFloorChanger : public DFloor bool res = DMover::crushed != MoveFloor(speed, dest, crush, direction, false); Destroy(); m_Sector->floordata=NULL; - StopInterpolation(); + StopInterpolation(true); m_Sector=NULL; return res; } @@ -1656,6 +1656,14 @@ class DMoveFloor : public DFloor m_Speed=movespeed; m_Direction = _m_Direction; m_FloorDestDist = moveheight; + + // Do not interpolate instant movement floors. + fixed_t movedist = abs(-sec->floorplane.d - moveheight); + if (m_Speed >= movedist) + { + StopInterpolation(true); + } + StartFloorSound(); } }; @@ -1713,7 +1721,7 @@ class DCeilingChanger : public DCeiling bool res = DMover::crushed != MoveCeiling(speed, dest, crush, direction, false); Destroy(); m_Sector->ceilingdata=NULL; - StopInterpolation (); + StopInterpolation (true); m_Sector=NULL; return res; } @@ -1806,7 +1814,7 @@ class DMoveCeiling : public DCeiling fixed_t movedist = abs(sec->ceilingplane.d - m_BottomHeight); if (m_Speed >= movedist) { - StopInterpolation (); + StopInterpolation (true); m_Silent=2; } PlayCeilingSound(); diff --git a/src/p_ceiling.cpp b/src/p_ceiling.cpp index 3203cf77794..24ab121c41e 100644 --- a/src/p_ceiling.cpp +++ b/src/p_ceiling.cpp @@ -412,7 +412,7 @@ DCeiling *DCeiling::Create(sector_t *sec, DCeiling::ECeiling type, line_t *line, } if (ceiling->m_Speed >= movedist) { - ceiling->StopInterpolation(); + ceiling->StopInterpolation(true); } // set texture/type change properties diff --git a/src/p_floor.cpp b/src/p_floor.cpp index 013f0a78ff3..eb9aaa4f9ab 100644 --- a/src/p_floor.cpp +++ b/src/p_floor.cpp @@ -478,7 +478,7 @@ bool EV_DoFloor (DFloor::EFloor floortype, line_t *line, int tag, (floor->m_Direction<0 && floor->m_FloorDestDistfloorplane.d) || // moving down but going up (floor->m_Speed >= abs(sec->floorplane.d - floor->m_FloorDestDist))) // moving in one step { - floor->StopInterpolation(); + floor->StopInterpolation(true); // [Graf Zahl] // Don't make sounds for instant movement hacks but make an exception for diff --git a/src/r_data/r_interpolate.cpp b/src/r_data/r_interpolate.cpp index 4ce3a3c7b3a..ed12cbf4ecb 100644 --- a/src/r_data/r_interpolate.cpp +++ b/src/r_data/r_interpolate.cpp @@ -344,9 +344,10 @@ int DInterpolation::AddRef() // //========================================================================== -int DInterpolation::DelRef() +int DInterpolation::DelRef(bool force) { if (refcount > 0) --refcount; + if (force && refcount == 0) Destroy(); return refcount; } @@ -943,20 +944,6 @@ DInterpolation *sector_t::SetInterpolation(int position, bool attach) // //========================================================================== -void sector_t::StopInterpolation(int position) -{ - if (interpolations[position] != NULL) - { - interpolations[position]->DelRef(); - } -} - -//========================================================================== -// -// -// -//========================================================================== - DInterpolation *FPolyObj::SetInterpolation() { if (interpolation != NULL) diff --git a/src/r_data/r_interpolate.h b/src/r_data/r_interpolate.h index 29e8a61712d..92e74c3f291 100644 --- a/src/r_data/r_interpolate.h +++ b/src/r_data/r_interpolate.h @@ -25,7 +25,7 @@ class DInterpolation : public DObject public: int AddRef(); - int DelRef(); + int DelRef(bool force = false); virtual void Destroy(); virtual void UpdateInterpolation() = 0; diff --git a/src/r_defs.h b/src/r_defs.h index 4f0b5ed01cc..b6021a4878d 100644 --- a/src/r_defs.h +++ b/src/r_defs.h @@ -497,7 +497,6 @@ struct sector_t sector_t *GetHeightSec() const; DInterpolation *SetInterpolation(int position, bool attach); - void StopInterpolation(int position); ASkyViewpoint *GetSkyBox(int which); From cd6ce6074d5c69a74695193c605642a49ecfabb8 Mon Sep 17 00:00:00 2001 From: Gaerzi Date: Wed, 17 Feb 2016 16:08:40 +0100 Subject: [PATCH 06/12] fix duration according to vanilla --- wadsrc/static/actors/doom/revenant.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wadsrc/static/actors/doom/revenant.txt b/wadsrc/static/actors/doom/revenant.txt index ce072bec46a..1a5045f345e 100644 --- a/wadsrc/static/actors/doom/revenant.txt +++ b/wadsrc/static/actors/doom/revenant.txt @@ -31,7 +31,7 @@ ACTOR Revenant SKEL AABBCCDDEEFF 2 A_Chase Loop Melee: - SKEL G 1 A_FaceTarget + SKEL G 0 A_FaceTarget SKEL G 6 A_SkelWhoosh SKEL H 6 A_FaceTarget SKEL I 6 A_SkelFist From d7b863f08f4cf82d9a21339b17703c6f970e43a5 Mon Sep 17 00:00:00 2001 From: Edoardo Prezioso Date: Wed, 17 Feb 2016 21:44:33 +0100 Subject: [PATCH 07/12] - Fixed mismatching Mancubus missile sequence. --- wadsrc/static/actors/doom/fatso.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wadsrc/static/actors/doom/fatso.txt b/wadsrc/static/actors/doom/fatso.txt index 0b30393257e..88eaef39b33 100644 --- a/wadsrc/static/actors/doom/fatso.txt +++ b/wadsrc/static/actors/doom/fatso.txt @@ -34,7 +34,7 @@ ACTOR Fatso FATT H 10 BRIGHT A_FatAttack2 FATT IG 5 A_FaceTarget FATT H 10 BRIGHT A_FatAttack3 - FATT IG 5 + FATT IG 5 A_FaceTarget Goto See Pain: FATT J 3 From fcb59936c6d80d4f57bc5132499045c8cd352e80 Mon Sep 17 00:00:00 2001 From: Edoardo Prezioso Date: Wed, 17 Feb 2016 21:53:23 +0100 Subject: [PATCH 08/12] - Fixed wrong Pain Elemental missile sequence. --- wadsrc/static/actors/doom/painelemental.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wadsrc/static/actors/doom/painelemental.txt b/wadsrc/static/actors/doom/painelemental.txt index 5951afd6b50..b8ef795a866 100644 --- a/wadsrc/static/actors/doom/painelemental.txt +++ b/wadsrc/static/actors/doom/painelemental.txt @@ -29,8 +29,8 @@ ACTOR PainElemental Missile: PAIN D 5 A_FaceTarget PAIN E 5 A_FaceTarget - PAIN F 4 BRIGHT A_FaceTarget - PAIN F 1 BRIGHT A_PainAttack + PAIN F 5 BRIGHT A_FaceTarget + PAIN A 0 BRIGHT A_PainAttack Goto See Pain: PAIN G 6 From fb70039f659bb872aa4b31550f7f55c63223a156 Mon Sep 17 00:00:00 2001 From: Edoardo Prezioso Date: Thu, 18 Feb 2016 00:17:07 +0100 Subject: [PATCH 09/12] - Revert unneeded change to the frame letter. --- wadsrc/static/actors/doom/painelemental.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wadsrc/static/actors/doom/painelemental.txt b/wadsrc/static/actors/doom/painelemental.txt index b8ef795a866..ab0cd5cc9a8 100644 --- a/wadsrc/static/actors/doom/painelemental.txt +++ b/wadsrc/static/actors/doom/painelemental.txt @@ -30,7 +30,7 @@ ACTOR PainElemental PAIN D 5 A_FaceTarget PAIN E 5 A_FaceTarget PAIN F 5 BRIGHT A_FaceTarget - PAIN A 0 BRIGHT A_PainAttack + PAIN F 0 BRIGHT A_PainAttack Goto See Pain: PAIN G 6 From 2b9d15efaebf228236c26035b56a5cd581a06d39 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 14 Feb 2016 09:27:20 +0100 Subject: [PATCH 10/12] Updated console font by GFD. --- wadsrc/static/confont.lmp | Bin 10239 -> 10302 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/wadsrc/static/confont.lmp b/wadsrc/static/confont.lmp index 3d46a3ca4cd3acd1046a9e82360df64403285e36..6b68df2e3e3004a2752dc9b53f65d3a06d0a7ec0 100644 GIT binary patch delta 1774 zcmaJ>OKh7(5T5lrb`mFX9NY0Dc5KHu&a+8Ks}xm8aG?@OBt(&T9gqN_mgj*3RdJAd zBYR*tAt9g21w{_x3Qco?3zfwMf{^N#(l&4bL`%~6fAGz3Cqf`0dB?l+&&+=F&CJ@% zmsd7__A1S{yp^mDDXkSzt)}p^$W|^=>IUtTtv#eQ&-f-?+Tb^$5q{G*5Y`s;YsXw% zh}k#UqisdnB&+5oXuk2K%G7LHWI3VkB2bI$8Yz?Px~&Xcu}j!jvD4h|F9XSv|0Brn z{I~rGqwI#wjc}BI2y`opcLR%Ii_9%s`KZxQs?o4`wkw7&r@NBydZ{Z7d9mvp8=URPE#n3K?Gory%bIvyelf0_0L? z%8PUX^3~9cOSky5NZupq@YkVH{;kg!5R!14=DpBt+aT80BC~0bsrHHB?9#m2J<$pC zUiUP@hI+~Y1B~yJq4{Qa$x+Qgp6Z!_e7$F|Unw%0wz8>h*V6o9PkF$(N|MVchx>Y+ z|HzIE-3I_cNhp9UqDULV`#-d7)AmtgOFBX#z^f*~x}AojZ4bdU%1~9J zS21P)iX{^z3yjIS&f`O&l#C}9^v*i`MthR=>d?xfhA%7#6Rc`fqq?dqQo=i_+w_kV zaF!{RIkc3?KMg&7YWrW`WjakV>Lz)dkpXb0?nV<@G-QX4kl@2Bz)!_;0UK#cNqH@n z2XB{R7#n#Jcqf*}4qrZq&$KtZ5TAs}3vn6x_4rAj)~14IBYw<uF)IW3X;v7xnVpA>=N266mE2jJzRby;zvcvA zbo2z|@~FIV7e=QYtIg44otSqTWFkB5T3L5>@6{yz3=|n`?^V!Y@61kT9slSM9}o1m==o`UzCyupQI3xfDfW* zPw074ii@Bih_0Y-S~mqB)um7nQQWp@&=RbIwlVu({O0U#@kw^i?EJHHzM1)E=Ku1z zv+~K$UYG1Ek&UaqH(rn-A*CQ{wFJI4Il@IkT&G=fq=%$bP2Zf5>SMZzMd?FbX#zY_EfXi`o38vs7ye;e{U z|F)n1cDh1ECsOK%K+x?Hq_zV~kK&iCP6)Ew6#@s3JqM{;&~A~{LefBY+U#g{NEZPh zK_=WBGGV^W0nd!(5$ep?l)5l>3fj(C8FC_+N@!@54a}aYac`3?)kDGkaCjj&3wbeE zg6st6A;&}Ua3AOvuCFL-Ss6ghv9gCrP+Or=6eJ-LrqyB7AEEsN zm!!Hs9O8Q}sU8dO8zQWS7l8O-xC!}VxUThvnu`RXEk~MF25Fh7&T4DkIv~1>TJKi8 zOMR)%M;hKixGy3LF`XNsSA50=wcDiZNP+w6$dv9Y3)P#f1pa|ZmvSmvt`hZnr0H?Q zr~r=d8w>+-K#SEoMskLua{EV3*R4lO(DW|LK8B+Y&Mc{JM5~6}0}4(Xr-ReQ>EUP( z<}axp9FNs8U`{KF`6T2F5|Oxu6u;3G+Uq&AC%D0%o*N(YM71+hZ6hmF$ymlENo^Wc z&o1}$YHZevfrsXqdNP0^p}*Pu?9>S`yJJ*hs2cNWNzjU+#zeGD^=>p78rU5v;5QM^ zd88XkGrnBFO2Ex*fswZENM|_72;V~@>eYAwt{=o_j$S7Ij5fewTCg2xo#+wcLzB8P zL}rkm$e@i4;)9&AsOsTFKF9lt!#l_ajp628qdQ#4xx{h5geR|VH<2z*@OAu8FhDXd z$kff9i=`iH^62Gc0 zl@_$ut Date: Tue, 16 Feb 2016 15:46:35 +0300 Subject: [PATCH 11/12] Added #region / #endregion handling (should affect all text lumps, let me know if there are text lumps unaffected by this). # Conflicts: # src/sc_man_scanner.re --- src/sc_man_scanner.re | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/sc_man_scanner.re b/src/sc_man_scanner.re index 519ee4a1e7a..7f15d862e22 100644 --- a/src/sc_man_scanner.re +++ b/src/sc_man_scanner.re @@ -55,6 +55,8 @@ std2: /*!re2c "/*" { goto comment; } /* C comment */ "//" (any\"\n")* "\n" { goto newline; } /* C++ comment */ + ("#region"|"#endregion") (any\"\n")* "\n" + { goto newline; } /* Region blocks [mxd] */ /* C Keywords */ 'break' { RET(TK_Break); } @@ -241,6 +243,8 @@ std2: /*!re2c "/*" { goto comment; } /* C comment */ ("//"|";") (any\"\n")* "\n" { goto newline; } /* C++/Hexen comment */ + ("#region"|"#endregion") (any\"\n")* "\n" + { goto newline; } /* Region blocks [mxd] */ WSP+ { goto std1; } /* whitespace */ "\n" { goto newline; } @@ -259,6 +263,8 @@ std2: /*!re2c "/*" { goto comment; } /* C comment */ "//" (any\"\n")* "\n" { goto newline; } /* C++ comment */ + ("#region"|"#endregion") (any\"\n")* "\n" + { goto newline; } /* Region blocks [mxd] */ WSP+ { goto std1; } /* whitespace */ "\n" { goto newline; } From 1a9bc53d84b5cceb567fd8246c44984aac88388a Mon Sep 17 00:00:00 2001 From: Randy Heit Date: Sun, 21 Feb 2016 20:11:13 -0600 Subject: [PATCH 12/12] Bump version to 2.8.1 --- src/version.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/version.h b/src/version.h index 4ad79ac783c..0fb21c3c43b 100644 --- a/src/version.h +++ b/src/version.h @@ -41,12 +41,12 @@ const char *GetVersionString(); /** Lots of different version numbers **/ -#define VERSIONSTR "2.8.0" +#define VERSIONSTR "2.8.1" // The version as seen in the Windows resource -#define RC_FILEVERSION 2,8,0,0 -#define RC_PRODUCTVERSION 2,8,0,0 -#define RC_PRODUCTVERSION2 "2.8.0" +#define RC_FILEVERSION 2,8,1,0 +#define RC_PRODUCTVERSION 2,8,1,0 +#define RC_PRODUCTVERSION2 "2.8.1" // Version identifier for network games. // Bump it every time you do a release unless you're certain you