Commit graph

989 commits

Author SHA1 Message Date
sezero
54aad595c8 moved Host_Game_f to common.c, made it to use COM_AddGameDirectory(). moved in-memory pak structures, searchpatch structure and searchpath global declarations to common.h. adjusted affected extra patches.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1003 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 21:10:33 +00:00
svdijk
ba9eebd4e8 in_sdl.c: Rename the mouse filter functions for consistency.
Also surround the SDL version by "#if defined(USE_SDL2)" and "#endif", this
suppresses an unused function warning when building for SDL1. (Building for
SDL2 still gives an unused variable "modstate" warning though.)


git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1002 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 20:29:16 +00:00
ewasylishen
057e1494f7 Update README.sgml with some new 0.85.10 features and clarify the description of the sfx filter. Oz: sorry, I couldn't get sgml2rawtxt to work, so I'll leave it for you to regenerate the html/txt files
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1001 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 19:48:49 +00:00
sezero
604a0cef6f make Sander's FS search patch compatible with on-the-fly gamedir changing
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1000 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 18:47:50 +00:00
sezero
a8199034c2 make homedir patch to support on-the-fly game directory switching
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@999 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 18:37:24 +00:00
sezero
ce6e04fd6e add the com_base_searchpaths thing of qw and use it in Host_Game_f(), kill the no longer needed com_nummissionpacks, KillGameDir() and NumGames().
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@998 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 18:20:47 +00:00
sezero
e9a6da6b0b tighten Host_Game_f() a bit more
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@997 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 16:02:58 +00:00
sezero
78fb4b0de5 Host_Game_f(): simplify
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@996 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 14:29:12 +00:00
sezero
bba00c335c fix the homedir patch (the 2nd pass sholud use host_parms->userdir, not host_parms->basedir)
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@995 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 12:33:22 +00:00
sezero
b46affa562 add Sander's FS search order patch as an optional patch
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@994 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 09:30:51 +00:00
sezero
0730834b0c revert r988
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@993 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 09:10:27 +00:00
ewasylishen
a5dffbb059 gl_screen.c: make the console speed independent of the current resolution. Before, switching to a really high (e.g. 2880x1800) resolution would make the colsole take several seconds to open/close
Not totally sure about this but i think it's a decent idea. I'm using 800x600 as a reference screen size (arbitrary choice but it's the default QS resolution). So if your resolution is 600 pixels tall this will make no difference. On higher resolutions this will make the console a bit faster than before.

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@992 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 06:25:59 +00:00
ewasylishen
9330762c8c R_CullSurfaces: small optimization. Avoid doing (s->visframe == r_visframecount) test on all world surfaces, instead, use the surfaces in the world texture chains, which already passed that test in R_MarkSurfaces.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@991 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 04:31:26 +00:00
svdijk
6ec776bad5 gl_rmain.c: make gl_zfix default to 0, no longer save it to config.cfg
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@990 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-07 19:35:52 +00:00
svdijk
70a0884752 quakespasm.pak: add several .ent files to prevent z-fighting
fixed so far:
e1m1: quad secret elevator (when down)
e1m2: exit doors (when open)
e2m3: rockets secret doors (when open)
e2m7: bars in front of the exit doors (when raised)



git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@989 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-07 19:33:38 +00:00
svdijk
049e34a3f6 common.c: make plain files overrule files inside a PAK file
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@988 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-07 12:32:27 +00:00
ewasylishen
5e8102e1e6 SDL2 support, if USE_SDL2 defined.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@987 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-05 19:34:43 +00:00
sezero
7a762fbb66 restore compilability with g++. some whitespace tidy-ups.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@986 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-02 05:40:41 +00:00
ewasylishen
a166d40de2 PF_VarString: raise buffer size to 1024. I checked all buffers that the resulting string could end up in, and they're all at least 1024 bytes (even with an unmodified quake client).
PF_VarString is only called on the server, in:
- PF_error, PF_objerror, PF_dprint to print error / debugging messages
- PF_bprint, which calls SV_BroadcastPrintf which copies the string into a 1024-byte buffer, then sends that to clients in a svc_print message
- PF_sprint, which sends the string in a svc_print message using MSG_WriteString (without copying into an intermediate buffer)
- PF_centerprint, which sends the return value of PF_VarString in a svc_centerprint message (without copying into an intermediate buffer)

On the client:
- svc_print reads the payload string with MSG_ReadString (2048-byte buffer), then Con_Printf is called (4096-byte buffer)
- svc_centerprint uses MSG_ReadString then calls SCR_CenterPrint (1024-byte buffer)

I also checked the original quake source and the client-side buffers for MSG_ReadString, Con_Printf, and SCR_CenterPrint are all the same sizes as in QS.

Admittedly I want to support sock's ITS mod, but as far as I can see, it's a totally safe to increase this to 1024.

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@985 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-01 07:30:23 +00:00
sezero
b408ccf949 dropped support for GL_SGIS_multitexture
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@984 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-30 08:00:34 +00:00
ewasylishen
75723a3f7b Revert r981 "Simple use of vertex arrays in R_DrawTextureChains_Multitexture."
It caused a dramatic slowdown on my machine on windows (50% slower)

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@983 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-30 06:30:49 +00:00
ewasylishen
516271e393 Silence warning about vid_fsaa requiring restart when parsing config.cfg at startup. Add missing newline to warning message.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@982 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-30 03:22:36 +00:00
ewasylishen
63b813cb06 Simple use of vertex arrays in R_DrawTextureChains_Multitexture.
The glBegin(GL_POLYGON), for() loop with GL_MTexCoord2fFunc()/glVertex3fv() calls, and glEnd () per polygon is replaced by a memcpy() and a glDrawArrays() call per poly.

My guess is this only saves function call overhead, but it gives a decent ~20% speedup (36 -> 42fps) on my machine on orl’s map.

Note: glDrawArrays() is in OpenGL 1.1, but the glClientActiveTextureARB function is part of the GL_ARB_multitexture extension but not GL_SGIS_multitexture. Instead of splitting into two code paths, I just dropped support for GL_SGIS_multitexture.

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@981 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-30 03:22:26 +00:00
sezero
9e8e99e858 update README files to reflect further 0.85.10 changes so far.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@980 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-29 08:55:19 +00:00
ewasylishen
65db1b5a32 Remove R_DrawSequentialPoly and use texture chains for drawing brush models.
To make this work with the drawing order we use in gl_rmain (world excluding water, opaque ents, world water, transparent ents), I made each texture_t have two texture chains, one for world and one for bmodels. This way they can be cleared during entity drawing without having to regenerate the world ones.

Other than this the changes are mostly minor adjustments to the R_DrawTextureChains_* functions so they can work for things other than the world.

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@979 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-29 08:27:22 +00:00
ewasylishen
97e9b4e473 Revert r968, optimization in R_DrawSequentialPoly. Going to try a deeper change that uses the world drawing code for bmodels.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@978 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-29 08:27:16 +00:00
sezero
63761bad8f update README files to reflect further 0.85.10 changes so far.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@977 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-27 09:15:58 +00:00
ewasylishen
9eda6a4c7d Apply Baker's fix for cross-map demo playback (http://forums.inside3d.com/viewtopic.php?f=3&t=2397).
With that alone, the console would come down and slide up when the map changes in a demo.
I added a SCR_BeginLoadingPlaque() call in CL_ParseServerInfo, only done during demo playback, which shows the loading plaque and prevents the console from appearing and sliding up.

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@976 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-25 02:55:25 +00:00
ewasylishen
3f50c55d3a Revert Pa3PyX support for cross-map demos
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@975 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-25 02:55:16 +00:00
ewasylishen
b517b3d4fc cl_parse.c: hack so demos playback at the correct speed even if they contain a lot of svc_stufftext messages (e.g. one every frame).
for a test case, play a demo from: http://www.quaketastic.com/upload/files/demos/otp_honey100.zip
for the honey map pack: http://www.quaketastic.com/upload/files/single_player/maps/honey.zip
on a slow pc that gets signifigantly less than 72fps, or with host_maxfps lowered (e.g. set to 33).

with QS 0.85.9, the demo will play in slow-motion; with QS 0.85.6 (without the cross-map demo support) it plays normally.

admittedly this is a fringe scenario, but it's imo a legitimate bug in the Pa3PyX cross-map demo playback code.

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@974 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-24 18:37:28 +00:00
stevenaaus
cb024b2ed5 Add links to Erics automatic win builds. (I'll also update the webpage).
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@973 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-22 21:52:34 +00:00
ewasylishen
573c876d0f Fence textures: also support on world polys. From Fitzquake Mark V
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@972 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-22 01:10:58 +00:00
sezero
024abc5d82 set executable property on mkpak.sh
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@971 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-20 09:20:03 +00:00
ewasylishen
1afac37661 Fence texture support on brush models, e.g. for rmqdemo2 e1m6rq.bsp. Based on Baker's implementation in Fitz Mark V. Consistent with Fitz Mark V, RMQEngine, FTEQW rendering.
Not implemented for world polys (afaik it's useless for world polys) but could be added if needed.

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@970 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-19 02:20:12 +00:00
ewasylishen
3cb4226ddc Change Cvar_Cycle_f to use Q_atof to be consistent with other cvar code. Q_atof("0.3"), a float, does not == atof("0.3"), a double.
Fixes "cycle r_wateralpha 0.3 0.6 1" not working reported by AAS.

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@969 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-18 17:12:39 +00:00
ewasylishen
6e48bea4d9 r_brush.c: small optimization in R_DrawSequentialPoly; move the drawing of fullbrights to a separate function, and draw them in a separate pass through the polys of the brush mode. This reduces the amount of texture binding. The extreme case would be, e.g. 1000 polys with one texture (with fullbrights), before would require 2000 binds, after would require 2 binds. This gets part way to the performance of https://sourceforge.net/p/quakespasm/patches/14/ with much less code change
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@968 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-17 21:12:54 +00:00
ewasylishen
4f6b138921 Raise MAX_ENT_LEAFS from 16 to 32, fixes disappearing/flickering bmodels in some situations. In particular fixes an elevator in fort_driant-fullvis.bsp, and a grate (func_door) in jam1_ionous.bsp.
From what I understand, if an entity touches more than MAX_ENT_LEAFS, it will only be visible
if the player happens to be standing in one of the first 'MAX_ENT_LEAFS' (so essentially random).

See discussion of MAX_ENT_LEAFS here:
http://celephais.net/board/view_thread.php?id=60310

For more detail (mh has an alternate fix, used in DirectQ/RMQEngine, haven't looked in to what he did):
http://forums.inside3d.com/viewtopic.php?t=2376&postdays=0&postorder=asc&start=23

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@967 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-13 06:40:07 +00:00
ewasylishen
fff78c696a new fsaa support patch. commandline flag is -fsaa, cvar is vid_fsaa. cvar is only read in VID_Init, changing it prints a message that the new value will only be used upon restart
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@966 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-12 19:39:20 +00:00
ewasylishen
34bc355f9e revert r962 and r963 (first attempt at multisampling)
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@965 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-12 19:25:14 +00:00
svdijk
e6c61b562b Add a Bourne Shell PAK file writer (remove qpakman dependency).
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@964 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-11 19:59:52 +00:00
ewasylishen
faf85380af cleanup fsaa patch, from szo. removes sdl version checks because qs requires sdl >= 1.2.10
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@963 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-11 08:08:15 +00:00
ewasylishen
53c7b3a1e8 fsaa support, borrowing from uhexen2. cvar is vid_multisample, cmdline arg is -fsaa (inconsistent..)
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@962 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-11 06:58:42 +00:00
sezero
0e53d9edfd fix broken libFLAC builds from previous commit.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@961 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-10 11:00:26 +00:00
sezero
4aed68b149 recompile libflac and libmodplug (again.)
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@960 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-10 07:47:33 +00:00
ewasylishen
c5690fbb78 bump MAX_EFRAGS to 4096 (from 2048) and MAX_CHANNELS to 1024 (from 512). For ijed's map - has over 500 ambient sounds, causing it to hit the channel limit, and a lot of static entities, which I guess cause it to exceed the old efrags limit. For future reference, according to mh, the efrags array can be removed entirely in glquake (http://forums.inside3d.com/viewtopic.php?t=1930) and each efrag allocated in the hunk memory.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@959 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-10 03:33:59 +00:00
ewasylishen
77b3403561 sv_aim: change default to 1 (autoaim off) and CVAR_NONE
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@958 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-07 18:47:37 +00:00
ewasylishen
55bb3124c4 Image_LoadImage: read pixel data in 1K chunks instead of calling getc in a loop
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@957 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-05 20:41:47 +00:00
ewasylishen
accee1263e AllocBlock: cache index of last used lightmap, start search there
Can speed up map loading by multiple seconds on levels with a lot of lightmaps, at a cost of using slightly more lightmaps (about 5% more).

https://sourceforge.net/p/quakespasm/patches/20/


git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@956 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-05 18:22:58 +00:00
sezero
7a02718fb9 cd_sdl: add back the informative message (was accidentally reverted in r953.)
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@955 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-05 18:20:29 +00:00
sezero
d868716c4e ... apply a CD device stops workaround only for linux for now.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@954 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-05 17:45:22 +00:00