About
@@ -139,6 +139,22 @@ QuakeSpasm 0.94 has support for playing the 2021 re-release content: Copy the qu
Changes
+Changes in 0.96.2
+
+- Fix stack buffer overrun Mod_PolyForUnlitSurface: fixes crash when loading lim_daviddg.bsp from Liminal Spaces Jam.
+
- Fix potential buffer overflow in progs global string functions.
+
- Fix potential buffer overflow in Mod_LoadAliasFrame()
+
- Optimize BoxOnPlaneSide()
+
- Reserve enough space in PF_makestatic() for worst case scenarios.
+
- Improve handling of huge entities in SV_FindTouchedLeafs()
+
- Apply FOV gun scaling for r_showtris
+
- Sliders with visible values in options menu.
+
- Fix build in C23 mode.
+
- Minor code cleanups. Updated third party code, e.g. SDL, music codecs, etc.
+
- Thanks to Andrei Drexler, Alexey Lysiuk, Diordany van Hemert, and Jaime Moreira for patches.
+
+
+
Changes in 0.96.1
- Fix demo recording as client-only after connection to server (was broken by signon changes in 0.96.0. Thanks to Jozsef Szalontai for issue report.)
diff --git a/MacOSX/English.lproj/InfoPlist.strings b/MacOSX/English.lproj/InfoPlist.strings
index 9866b7f4f..97a706f9c 100644
Binary files a/MacOSX/English.lproj/InfoPlist.strings and b/MacOSX/English.lproj/InfoPlist.strings differ
diff --git a/MacOSX/Info.plist b/MacOSX/Info.plist
index e2378c2a2..17f90513f 100644
--- a/MacOSX/Info.plist
+++ b/MacOSX/Info.plist
@@ -17,7 +17,7 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 0.96.1
+ 0.96.2
CFBundleSignature
????
LSApplicationCategoryType
diff --git a/Quake/console.c b/Quake/console.c
index 3fc8eefac..759c13a1d 100644
--- a/Quake/console.c
+++ b/Quake/console.c
@@ -840,7 +840,7 @@ FindCompletion -- stevenaaus
*/
const char *FindCompletion (const char *partial, filelist_item_t *filelist, int *nummatches_out)
{
- static char matched[32];
+ static char matched[40];
char *i_matched, *i_name;
filelist_item_t *file;
int init, match, plen;
diff --git a/Quake/gl_model.c b/Quake/gl_model.c
index 3439fe827..6e5cfd78b 100644
--- a/Quake/gl_model.c
+++ b/Quake/gl_model.c
@@ -1150,38 +1150,28 @@ TODO: merge this into BuildSurfaceDisplayList?
*/
static void Mod_PolyForUnlitSurface (msurface_t *fa)
{
- vec3_t verts[64];
- int numverts, i, lindex;
+ const int numverts = fa->numedges;
+ int i, lindex;
float *vec;
glpoly_t *poly;
float texscale;
if (fa->flags & (SURF_DRAWTURB | SURF_DRAWSKY))
- texscale = (1.0/128.0); //warp animation repeats every 128
+ texscale = (1.0f/128.0f); //warp animation repeats every 128
else
- texscale = (1.0/32.0); //to match r_notexture_mip
+ texscale = (1.0f/32.0f); //to match r_notexture_mip
- // convert edges back to a normal polygon
- numverts = 0;
- for (i=0 ; inumedges ; i++)
- {
- lindex = loadmodel->surfedges[fa->firstedge + i];
-
- if (lindex > 0)
- vec = loadmodel->vertexes[loadmodel->edges[lindex].v[0]].position;
- else
- vec = loadmodel->vertexes[loadmodel->edges[-lindex].v[1]].position;
- VectorCopy (vec, verts[numverts]);
- numverts++;
- }
-
- //create the poly
poly = (glpoly_t *) Hunk_Alloc (sizeof(glpoly_t) + (numverts-4) * VERTEXSIZE*sizeof(float));
poly->next = NULL;
fa->polys = poly;
poly->numverts = numverts;
- for (i=0, vec=(float *)verts; isurfedges[fa->firstedge + i];
+ vec = (lindex > 0) ?
+ loadmodel->vertexes[loadmodel->edges[lindex].v[0]].position :
+ loadmodel->vertexes[loadmodel->edges[-lindex].v[1]].position;
+
VectorCopy (vec, poly->verts[i]);
poly->verts[i][3] = DotProduct(vec, fa->texinfo->vecs[0]) * texscale;
poly->verts[i][4] = DotProduct(vec, fa->texinfo->vecs[1]) * texscale;
diff --git a/Quake/quakedef.h b/Quake/quakedef.h
index 9968bed77..61cb73fb3 100644
--- a/Quake/quakedef.h
+++ b/Quake/quakedef.h
@@ -37,7 +37,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define FITZQUAKE_VERSION 0.85 //johnfitz
#define QUAKESPASM_VERSION 0.96
-#define QUAKESPASM_VER_PATCH 1 // helper to print a string like 0.94.7
+#define QUAKESPASM_VER_PATCH 2 // helper to print a string like 0.94.7
#ifndef QUAKESPASM_VER_SUFFIX
#define QUAKESPASM_VER_SUFFIX // optional version suffix string literal like "-beta1"
#endif
diff --git a/Quakespasm.html b/Quakespasm.html
index 12ce9279d..82d9224ba 100644
--- a/Quakespasm.html
+++ b/Quakespasm.html
@@ -7,7 +7,7 @@
QuakeSpasm
-Page last edited: September 2023.
+Page last edited: June 2024.
@@ -30,35 +30,36 @@
+
+5.2 Changes in 0.96.1
-5.2 Changes in 0.96.0
+5.3 Changes in 0.96.0
-5.3 Changes in 0.95.1
+5.4 Changes in 0.95.1
-5.4 Changes in 0.95.0
+5.5 Changes in 0.95.0
-5.5 Changes in 0.94.7
+5.6 Changes in 0.94.7
-5.6 Changes in 0.94.6
+5.7 Changes in 0.94.6
-5.7 Changes in 0.94.5
+5.8 Changes in 0.94.5
-5.8 Changes in 0.94.4
+5.9 Changes in 0.94.4
-5.9 Changes in 0.94.3
+5.10 Changes in 0.94.3
-5.10 Changes in 0.94.2
+5.11 Changes in 0.94.2
-5.11 Changes in 0.94.1
+5.12 Changes in 0.94.1
-5.12 Changes in 0.94.0
+5.13 Changes in 0.94.0
-5.13 Changes in 0.93.2
+5.14 Changes in 0.93.2
-5.14 Changes in 0.93.1
+5.15 Changes in 0.93.1
-5.15 Changes in 0.93.0
+5.16 Changes in 0.93.0
-5.16 Changes in 0.92.1
+5.17 Changes in 0.92.1
-5.17 Changes in 0.92.0
+5.18 Changes in 0.92.0
-5.18 Changes in 0.91.0
+5.19 Changes in 0.91.0
Bugfixes
@@ -549,7 +568,7 @@
Raised limits
-5.19 Changes in 0.90.1
+5.20 Changes in 0.90.1
Bugfixes
@@ -599,7 +618,7 @@
Code cleanup
-5.20 Changes in 0.90.0
+5.21 Changes in 0.90.0
-5.21 Changes in 0.85.9
+5.22 Changes in 0.85.9
-5.22 Changes in 0.85.8
+5.23 Changes in 0.85.8
-5.23 Changes in 0.85.7
+5.24 Changes in 0.85.7
-5.24 Changes in 0.85.6
+5.25 Changes in 0.85.6
-5.25 Changes in 0.85.5
+5.26 Changes in 0.85.5
-5.26 Changes in 0.85.4
+5.27 Changes in 0.85.4
-5.27 Changes in 0.85.3
+5.28 Changes in 0.85.3
-5.28 Changes in 0.85.2
+5.29 Changes in 0.85.2
-5.29 Changes in 0.85.1
+5.30 Changes in 0.85.1
diff --git a/Quakespasm.txt b/Quakespasm.txt
index 5780bf79b..073c53f69 100644
--- a/Quakespasm.txt
+++ b/Quakespasm.txt
@@ -3,7 +3,7 @@
______________________________________________________________________
- Page last edited: September 2023.
+ Page last edited: June 2024.
1. About
@@ -221,6 +221,34 @@
5. Changes
+ Changes in 0.96.2:
+
+ - Fix stack buffer overrun Mod_PolyForUnlitSurface: fixes crash when
+ loading lim_daviddg.bsp from Liminal Spaces Jam.
+
+ - Fix potential buffer overflow in progs global string functions.
+
+ - Fix potential buffer overflow in Mod_LoadAliasFrame()
+
+ - Optimize BoxOnPlaneSide()
+
+ - Reserve enough space in PF_makestatic() for worst case scenarios.
+
+ - Improve handling of huge entities in SV_FindTouchedLeafs()
+
+ - Apply FOV gun scaling for r_showtris
+
+ - Sliders with visible values in options menu.
+
+ - Fix build in C23 mode.
+
+ - Minor code cleanups. Updated third party code, e.g. SDL, music
+ codecs, etc.
+
+ - Thanks to Andrei Drexler, Alexey Lysiuk, Diordany van Hemert, and
+ Jaime Moreira for patches.
+
+
Changes in 0.96.1:
- Fix demo recording as client-only after connection to server (was