Commit graph

1174 commits

Author SHA1 Message Date
Spike
fe4b224c7d Added support for simple csqc.
This is a subset of csqc, with alternative entry points that can be invoked by compat wrappers.

Also added sv_gameplayfix_setmodelrealbox cvar. Default value of 1 matches QuakeSpasm, whereas a value of 0 matches vanilla quake's behaviour.
2021-08-31 04:59:11 +01:00
Spike
58655ebd99 Fix issue that eric previously spotted and fixed on maps with missing textures. 2021-08-31 04:59:11 +01:00
Spike
66b486472b Some documentation and stuff. 2021-08-31 04:59:11 +01:00
Spike
afb6583375 Added lightmap scaling. 2021-08-31 04:59:11 +01:00
Spike
fe63ebc870 Windows... Messed up access modes. 2021-08-31 04:59:11 +01:00
Spike
d76ca606bf All changes present in QSS-R7, plus
md3 support
quoth/etc bug fix
strzone bug fix
png/jpg replacement wall textures
rewrote mdl rendering to always use arrays, relaxing vertex+tri limits.
removed static ents limit
fixed ambient_level not working at high framerates.
2021-08-31 04:59:11 +01:00
Eric Wasylishen
ad3aadb373 Replace some uses of 9999/-9999, and 999999/-999999 with FLT_MAX/-FLT_MAX
Was sent a sample map where the texture scale was such that the
CalcSurfaceExtents mins/maxs were calculated incorrectly because of the
use of 999999 not being large enough magnitude, leading to a crash later
(maxs-mins was negative).

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1671 af15c1b1-3010-417e-b628-4374ebc0bcbd
2020-03-28 05:09:09 +00:00
Eric Wasylishen
be4dbdb29c Mod_LoadAliasFrame, Mod_LoadAliasGroup: error if posenum >= MAXALIASFRAMES
See: https://sourceforge.net/p/quakespasm/bugs/37/

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1670 af15c1b1-3010-417e-b628-4374ebc0bcbd
2020-03-28 05:09:07 +00:00
Eric Wasylishen
bda9912002 gl_sky.c (skybox_name): lazily increase array size from 32 to 1024.
See: https://sourceforge.net/p/quakespasm/bugs/38/

Also move its initializer to Sky_Init() and use q_strlcpy() instead
of strcpy() for copying to it in Sky_LoadSkyBox().

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1669 af15c1b1-3010-417e-b628-4374ebc0bcbd
2020-03-28 05:09:06 +00:00
Ozkan Sezer
65825de11a snd_mp3tag.c: check for false positives if id3v1 is not at file's end.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1665 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-12-29 16:50:06 +00:00
Ozkan Sezer
a1eff43d80 snd_mp3tags: let it consume all the tags at file end.
We do not know the order of ape, or lyrics3, or musicmatch tags,
so we loop until we consume all, scanning for each tag type once.
I don't yet care about freaky broken mp3 files with double tags.

<rant> MP3 standard has no metadata format, so everyone invented
their own thing, even with extensions, until ID3v2 became dominant:
Hence the impossible mess there.</rant>

Also remove inline directive from a few detection procedures there.

(updates from my code in SDL_mixer.)

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1664 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-12-23 21:35:16 +00:00
Eric Wasylishen
42c0491e92 r_world.c: workaround Intel UHD 600 driver bug
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1662 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-12-15 23:52:13 +00:00
Ozkan Sezer
e0e2d16ca2 snd_mpg123.c: use mp3_skiptags(). tidy-up a little.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1661 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-12-12 14:10:14 +00:00
Ozkan Sezer
17209fd330 snd_mp3tag.c: tidy-up return code. add a failsafe for fshandle_t.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1660 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-12-12 14:04:01 +00:00
Ozkan Sezer
386e56258d snd_mp3.c: move skiptags() call to codecopen(), print error if it fails.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1659 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-12-12 14:01:02 +00:00
Ozkan Sezer
ffe43cf024 snd_mp3.c: moved mp3 tag stuff into a separate module snd_mp3tag.c
so that it can be used in snd_mpg123.c, too, if needed.

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1658 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-12-12 11:37:32 +00:00
Ozkan Sezer
b2bf251a32 snd_mp3.c: removed unnecessary file rewind calls in tag detection code.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1657 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-12-12 08:23:12 +00:00
Ozkan Sezer
3b4a07ca87 snd_mp3.c: Tag detection fixes, updates, and clean-ups:
- Updates from my code in SDL_mixer:
- Fix APE header presence detection: APEv2 doesn't guarantee header.
  We rely on bit31 of the flags field of the header/footer, instead.
- Add code to skip Lyrics3 v1 / v2 tags.
- Remove the non-standard 'Extended ID3v1' tag support: None of the
  significant libraries like getID3, taglib or libid3tag support it.
  Not supported in most, if not all mp3 players, either.
- The 'APE before ID3v1' was duplicated code because we removed the
  TAG+ support: removed it.
- Add a FIXME note about handling possible double-ID3v1 tags.
- Add a FIXME note about order of tags at the end of the file.
- A few minor tidy-ups.

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1656 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-12-08 14:00:50 +00:00
Eric Wasylishen
361c66d06a Reject lit files if they're the wrong size (eg hipnotic/start.bsp vs id1/start.lit or just a bsp that no longer has any coloured lits, etc).
From Spike.

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1654 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-11-20 02:47:04 +00:00
Ozkan Sezer
6abf2afbe6 lodepng.c: fix LODEPNG_RESTRICT for gcc
previously, it ignored any gcc with __GNUC_MINOR__ == 0.
(patch submitted to upstream at github as PR/120)

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1652 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-11-18 09:47:04 +00:00
Ozkan Sezer
c2dbafef4b lodepng.c: minor update (cf. mainstream PR/119)
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1648 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-11-11 22:14:22 +00:00
Ozkan Sezer
8ebb9dc117 lodepng.c (lodepng_zlib_compress): Fix alloc fail check.
From https://github.com/lvandeve/lodepng/pull/118

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1646 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-11-11 09:37:06 +00:00
Ozkan Sezer
da43c6a57b r_brush.c (AllocBlock): add a FIXME note about a valgrind warning.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1645 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-11-11 09:35:19 +00:00
Ozkan Sezer
21915e956c snd_sdl.c: pass NULL as the 'obtained' spec to SDL_OpenAudio():
this way, SDL will convert to hardware format for us if needed.
most of the times we do get what we want. however, for example,
the WASAPI backend of SDL2 returns AUDIO_F32LSB as the obtained
format (which is not an SDL thing but a WASAPI thing) and we do
not support that. the SDL2.dll we ship with has WASAPI disabled,
but if the user replaces our dll with a one with WASAPI enabled
(official libsdl.org build or his own build) then we refuse the
obtained AUDIO_F32LSB format and run without sound.  after this
patch, such a thing is transparent to us.

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1639 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-09-20 18:40:00 +00:00
Ozkan Sezer
e04c0b49af remove Steve's name from quit menu message too, per his request.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1638 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-09-18 09:39:00 +00:00
Ozkan Sezer
196f89a239 GL_BuildLightmaps: minor warning fixes. more accurate developer warning.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1637 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-09-18 09:17:24 +00:00
Ozkan Sezer
57ad299dfa r_brush.c (AllocBlock): add casts to malloc and realloc
( in case someone wants to build using C++ compilers. )

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1634 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-09-16 11:00:38 +00:00
Ozkan Sezer
13d8e8f704 bump version to 0.93.2, update changelog.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1631 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-09-12 12:36:59 +00:00
Ozkan Sezer
39b4fccb44 move LMBLOCK_WIDTH/HEIGHT from bspfile.h to glquake.h
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1630 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-09-12 12:34:12 +00:00
Ozkan Sezer
0a6a5c62c8 minor simplification
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1629 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-09-12 12:33:02 +00:00
Eric Wasylishen
e041b958c7 r_brush.c: dynamically allocate lightmaps, from QuakeSpasm-Spike
This raises LMBLOCK_WIDTH/HEIGHT from 128 to 256 which should
be supported everywhere and decrease draw calls

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1628 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-09-12 06:49:35 +00:00
Eric Wasylishen
f2930ef460 r_brush.c: rename BLOCK_WIDTH/HEIGHT to LMBLOCK_WIDTH/HEIGHT to match QSS
(no other changes)

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1627 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-09-12 06:49:27 +00:00
Eric Wasylishen
12e781ba46 raise MAXALIASTRIS from 2048 to 4096 so SlayerTest mdl's load.
TODO: look at switching to Spike's mdl code from QSS
TODO: add "exceeds standard limit" warnings

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1626 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-09-12 04:06:57 +00:00
Eric Wasylishen
6924a94fa6 Mod_LoadAliasModel: don't corrupt memory if MAXALIASTRIS exceeded
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1625 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-09-12 04:06:55 +00:00
Eric Wasylishen
429b29a669 Sky_NewMap: avoid stack buffer underflow on the "remove trailing spaces"
line that happened if a map had an empty string worldspawn key,
detected by ASan on macOS with demo_map.bsp from SlayerTest.

Also prevent the strcpy's from overflowing the buffers in case of long
keys.

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1624 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-09-12 04:06:54 +00:00
Ozkan Sezer
0e6c4f27cc update lodepng to 20190824 version from mainstream.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1623 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-08-28 00:10:02 +00:00
Ozkan Sezer
e4eae98ab4 watcom makefiles: make wlink quiet
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1622 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-08-28 00:01:04 +00:00
Ozkan Sezer
92758e8591 update lodepng to 20190814 version from mainstream.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1619 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-08-15 12:01:54 +00:00
Ozkan Sezer
9fc3408391 snd_mp3.c: better skipping of tags:
( also see: https://bugzilla.libsdl.org/show_bug.cgi?id=4728 )

Instead of doing it 'as-we-go' every time, skip the tags at file-open
time only once.

The former implementation had the chance of not having the full tag in
the frame, that includes a possibility of even not having the complete
tag magic in the frame leading to not identifying a tag.

The new implementation skips all the tags at file-start and file-end,
and does that only once.

Also added are detection and skipping of extended ID3v1 and APEv1 tags.

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1612 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-07-23 14:11:30 +00:00
Ozkan Sezer
ee831b2b48 lodepng: sync with mainstream, merged up to latest commit f6155a420604.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1611 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-07-15 09:20:05 +00:00
Eric Wasylishen
68faa57c6d CalcSurfaceExtents: adjust bogus initial "max" texture coord to match the
magnitude of the "min" one. It was possible to erroneously cause a
"bad surface extents" error with face around +/- 100K units from the origin,
since "max" was initalized to -99999.

TODO: These should probably both be changed to FLT_MAX/-FLT_MAX.

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1608 af15c1b1-3010-417e-b628-4374ebc0bcbd
2019-03-18 07:22:54 +00:00
Eric Wasylishen
c04be89a90 PR_UglyValueString: increase line[512] to 1024, use q_snprintf
Fixes writing past end of buffer (crashes on some OS'es) when saving xmasjam2018_qmaster1 


git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1607 af15c1b1-3010-417e-b628-4374ebc0bcbd
2018-12-30 05:24:36 +00:00
Ozkan Sezer
74810cd40e handle ssize_t issues with MSVC better
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1600 af15c1b1-3010-417e-b628-4374ebc0bcbd
2018-11-03 09:50:53 +00:00
Ozkan Sezer
92a3d910bd menu.c (M_ScanSaves): silence gcc8 -Wstringop-truncation:
just replaced strncpy() with q_strlcpy().

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1592 af15c1b1-3010-417e-b628-4374ebc0bcbd
2018-09-21 12:10:06 +00:00
Ozkan Sezer
ed6d5b0d20 gl_texmgr.h (struct gltexture_s): change 'pants' and 'shirt' to signed char
otherwise negative value checks wouldn't work if char is unsigned by
default. Fixes bug #28 (https://sourceforge.net/p/quakespasm/bugs/28/,
also see: https://github.com/Novum/vkQuake/issues/145 )

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1588 af15c1b1-3010-417e-b628-4374ebc0bcbd
2018-06-18 07:15:58 +00:00
Ozkan Sezer
32c80b20b0 pr_edict.c: replaced another strcpy() call with q_strlcpy(), tweaked a warning message.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1586 af15c1b1-3010-417e-b628-4374ebc0bcbd
2018-05-30 15:01:22 +00:00
Ozkan Sezer
0825fb705c lodepng.c: max 5552 instead of 5550 sums before adler32 overflow
(lorepng github mainstream commit 81cf5de55f)

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1585 af15c1b1-3010-417e-b628-4374ebc0bcbd
2018-05-30 04:04:47 +00:00
Ozkan Sezer
4dbd07fb9a bgmusic.c: mark *.opus files as cdrip types.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1579 af15c1b1-3010-417e-b628-4374ebc0bcbd
2018-04-27 17:30:38 +00:00
Ozkan Sezer
1ccd0b998a apply the same double precision change to PF_normalize() as was done to PF_vlen() in r1554.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1578 af15c1b1-3010-417e-b628-4374ebc0bcbd
2018-04-23 09:20:31 +00:00
Ozkan Sezer
39459b19cb net_udp.c (UDP_Init): lose the goto in OSX workaround, restrict the workaround to OSX builds only.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1577 af15c1b1-3010-417e-b628-4374ebc0bcbd
2018-04-20 14:35:32 +00:00