• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

data/H24-Jan-2008-183,340182,849

src/H03-May-2022-152,361107,860

Makefile.amH A D27-Dec-200719 21

Makefile.inH A D24-Jan-200819.6 KiB647569

READMEH A D27-Dec-200721.5 KiB435382

aclocal.m4H A D24-Jan-2008262.3 KiB7,4856,721

config.guessH A D27-Apr-200743.5 KiB1,5171,305

config.h.inH A D24-Jan-20081.9 KiB8053

config.subH A D27-Apr-200731.9 KiB1,6231,479

configureH A D03-May-2022691.5 KiB21,89717,367

configure.inH A D27-Dec-20076 KiB292222

depcompH A D24-Jan-200817.2 KiB585370

install-shH A D24-Jan-200812.9 KiB508340

ltmain.shH A D14-Aug-2007194.6 KiB6,9395,483

missingH A D24-Jan-200810.9 KiB368275

README

1SUMMARY
2
3Quetoo: Quake2 for deathmatch haX0rs
4
5This is a source port of id Software's Quake II.  Initially a fork of the
6Quake2Forge project, this engine aims to provide security and performance
7enhancements.  If you're looking for visual effect updates and gimmick
8features, run something else..
9
10Quetoo is meant to build and run on GNU/Linux.  It is also fully supported
11on FreeBSD.  Quetoo uses Simple Direct Medialayer (SDL) for sound and OpenGL
12context management.  If your platform has SDL, Quetoo might run for you.
13
14INSTALL
15
16Quetoo builds with GNU Automake.  To build it, do the following:
17
18./configure && sudo make install
19
20Your Quake II game data should reside in $PREFIX/share/quake2.  To specify
21an alternate path, use --datadir=/some/path.  A quake2 directory is
22automatically appended to the path you provide.  See ./configure --help for
23more information.
24
25RUNNING
26
27Quetoo can be executed from any path.  To set your video mode, use vid_width,
28vid_height, and vid_fullscreen.  You must issue vid_restart for your changes
29to take effect.
30
31vid_width 1024; vid_height 768; vid_fullscreen 1; vid_restart
32
33F11 toggles fullscreen quickly, for switching to other windows.
34
35Mouse cvars are universally prefixed with "m_."  So use m_sensitvity,
36m_invert, and m_filter to adjust your mouse.
37
38To adjust brightness levels, use vid_gamma.  You may also play with
39gl_modulate and gl_intensity, but you must issue gl_reload for these changes
40to take effect.
41
42To change rail trail color, adjust cl_railtrailcolor.  "Tan" and "blue" are
43recognized strings.  Integers from 1-255 are also valid.
44
45Use cl_showfps to view your framerate on screen, and cl_maxfps to cap it.
4660 is a good number for LCD monitors, 124 provides optimal physics for
47jumping.  You can also use cl_showspeed to view your player's horizontal
48velocity, which can be helpful for practicing jumps.
49
50High color Targa (.tga) image support is available for textures, status
51bar pics, crosshairs, and model skins.  You may wish to download our
52Retexture pak from http://jdolan.dyndns.org/trac/wiki/Retexture.
53
54Location files (.loc) are fully supported, and should reside in your maps
55directory, alongside their respective .bsp file.  e.g. baseq2/maps/q2dm1.loc.
56You may create your own .loc files using the addloc and savelocs commands.
57The tokens $loc_here and $loc_there are expanded in your chat messages to
58your current location, and the location you're looking at, respectively.
59
60Wildcard Pakfiles (*.pak) are also supported, so you're not limited to
61pak0-9.pak for your Pakfiles.  Meaningful names like retexture.pak and
62qmass-sounds.pak will help keep your baseq2 folder organized.
63
64There's quite a bit more to this engine.  Cvarlist and cmdlist are your
65friends, so use them.  You may also find the CHANGES section of this
66file interesting.  Enjoy.
67
68CREDITS
69
70Jay Dolan, http://jaydolan.com/quetoo.html
71The QuakeForge Project, http://quakeforge.net
72id Software, http://idsoftware.com
73
74ADDITIONAL CREDITS
75
76Alexey Dokuchaev, danfe at nsu dot ru
77  FreeBSD support, railtrail cvar, and other invaluable patches.
78Eddie Pettis, npettis at ecn dot purdue dot edu
79  Profiling support.
80Ragnvald "Despair" Maartmann-Moe IV
81  Particles drawing, relentless criticism ;)
82Richard "R1CH" Stanway, http://r1ch.net
83  Protocol 35 support, security enhancements.
84
85LICENSE
86
87Quetoo is released under the GNU General Public License (GPL) v2.0.
88
89TODO
90
91-Re-add Xatrix/Rogue stuff?
92-Bundle quetoo rc/init.d script?
93
94CHANGES
95
960.6.1 (Revision 203)
97
98-Added asynchronous video/sound and network framing.  Video and sound updates
99are now run independently of network updates (CL_SendCommand).  This allows
100clients to run at desirable (high) video framerates (i.e. vsync) without
101saturating their connection or flooding the server.  The cvar cl_maxfps now
102limits video/sound/input frames, while cl_maxpps (default value 30) caps
103network frames.
104-Added facilities to immediately send network packets containing urgent
105information (weapon firing, inventory use, begin, new, ..).  This helps
106clients with low cl_maxpps stay competitive, and provides a nice edge for
107the rest.
108-Added bright player skins support via cl_brightskins.  Red boys, green girls.
109-Added call to CL_Drop in SV_Map.  Fixes several small issues when joining a
110local server.
111
1120.6.0 (Revision 191)
113
114-R1Q2 Protocol 35 support.  Enjoy bandwidth savings and faster downloads.
115-Fixed connectionless vulnerabilities in client discovered by R1CH.
116-Server now prevents malformed skins (e.g. male/../female/athena).
117-Ability to build dedicated server only.  Client object code is not compiled
118or linked into binary.  Pass --without-client to ./configure.
119-Removed setenv and prog client commands.  These were not used.
120-Changed cl_forcefov to simply use fov->value when set.  Value is archived.
121-Added instagib and arena gameplay modes to qmass mod.  Gameplay may be
122changed on the fly.  Clients are respawned and items are toggled accordingly.
123-Added player voting system to qmass mod.  Map, gameplay, fraglimit,
124timelimit, kick, and other commands may all be voted upon.
125-Added Lithium II style offhand hook to qmass mod.  Bind a key to +hook.
126May be toggled via hook cvar, and is votable.  Defaults to off.
127-Added client connect and disconnect MySQL logging to qmass mod.
128-Added teamplay to qmass mod.  Uses new scoreboard layout when enabled.
129-The zlib cvar has been superceded by a quetoo cvar, which uses an integer
130value to bitmap various Quetoo-specific protocol extensions (like zlib).
131-Zlib is never considered for messages smaller than 200 bytes.
132-New extension QUETOO_PLAYERSTATE makes optimizations for Quetoo client
133playerstate messages.  Saves a significant amount of bandwidth.
134-Client records demos with the current server's protocol.  Quetoo server
135has been modified to handle Protocol 35 demo playback.
136-Removed attractloop boolean from server, this functionality can be
137resolved by examining sv.state.  Client maintains this field as demoserver.
138-Removed loadgame boolean from server.  No longer needed.
139-Removed disable screen boolean from client.  No longer needed.
140-Game progs are never reloaded, nor their frames run, for demo playback.
141-Game for demos is set immediately, rather than latched as before.  This
142allows immediate playback of demos requiring game-specific data (e.g. ctf).
143-Sound updates are no longer performed if a client is less than fully
144connected and active (i.e. no more stuttering during map changes).
145-Removed server sided demo recording.  It was never used.
146-Functionality in q_shared.c is built as a libtool library, and is made
147available to game mods at linktime.  No more duplicate code.
148-Game mods to be built are now specified with --with-games='mods'.  Ctf is
149no longer built by default.  Try --with-games='baseq2 ctf qmass'.
150-Reverted cvar structure.  Quetoo game mods will run on other engines, and
151vise-versa.  Try the qmass mod on r1q2ded.
152-Removed CL_PrecacheModels.  Was rather uneccessary.
153-Removed all dlsym glue for sound and video refreshes.  Removed software
154renderer.  Quetoo now requires OpenGL and SDL.
155-Client now sleeps briefly when at fullscreen console.
156-SV_DemoCompleted now sends friendly message to clients and shuts server
157down cleanly.  Removed killserver muck.
158-Existence of maps and demos is checked before a SV_SpawnServer is tried.
159-Only calc screen vrect when dirty.
160-Added signal handling for clean(er) exits.
161-Because no refresh library is dlopen'ed, vid_restart only applies video
162mode changes.  In order to manipulate game textures (gl_modulate,
163gl_intensity, gl_loadtga, etc) use gl_reload.
164-Bundled the Vanilla CTF mod source code, cleaned up for gcc4 and fitted with
165Autoconf build scripts.  Ah, the memories..
166
1670.5.1 (Security fixes inspired by r1q2, Revision 147)
168
169-Refuse connections for clients with empty or invalid userinfo strings.
170-Refuse connections for clients stuffing xFF in userinfo strings.
171-Refuse connections for clients stuffing IP address in userinfo strings.
172-Fix bug where valid clients can be overwritten by reconnect challenges.
173-Drop clients who provide empty or invalid userinfo.
174-Drop clients who stuff xFF into userinfo or stringcmd.
175-Drop clients who request negative baselines or configstrings offset.
176-Drop clients who request illegal download offset or filename.
177-Drop clients who issue multiple begins when spawned.
178-Drop clients who issue illegal player movement commands.
179-Catch buffer overflows in command token parsing.
180-Added SV_KickClient(client_t *cl, char *msg).  NULL msg is fine.
181-Added SV_ClientAdrToString(client_t *cl) for printing client IPs.
182-Removed checksum validation of player movement.
183-Dedicated servers may now host demos.
184-Added s_ambient to toggle ambient (world) sounds.  Defaults to 1 (on).
185-Fixed gl_texturemode default value.
186
1870.5.0 (Revision 141)
188
189-Added .loc file support for reporting player's location to teammates
190in-game.  $loc_here and $loc_there are chat macros which expand to the
191player's current location and targetted location, respectively.
192-Added addloc and savelocs commands for manipulating .loc files.
193-Added wildcard pak file support, use meaningful names for your pak files.
194-Added positioned console editing.  Backspace, delete, and left arrow each
195act as you'd expect in any text editor.
196-Bundled new conchars and ch4 Targas for GL renderer.  Set cl_crosshair 4.
197-Removed savegame support.  Quetoo is not recommended for SP.
198-Setenv and getenv calls are #ifdef'ed out for Windows builds.
199-Removed all renderer conditionals from GL path.  Chipsets and drivers
200requiring special case handling are _broken_, and very old.
201-Removed SGIS multitexture support.  It is deprecated.
202-Removed 3dfx shared palette support.  It is deprecated.
203-Removed support for broken 3dlabs drivers.
204-Removed RF_DEPTHHACK.  Was only used for viewmodel.
205-Removed mutable palette.  Was only used by cinematics.
206-Fixed non-multitexture lighting path.  Was broken some time ago.
207-Added datarootdir to appease autoconf 2.60.
208-Removed zlib header from zlib datagrams, saves a few bytes.
209
2100.4.0 (Revision 107)
211
212-Cvars now print their current value when tab-completing.
213-Use quetoo.cfg instead of config.cfg, no longer exec default.cfg on startup.
214-TGA support for crosshairs and conchars (console font).
215-gl_monolightmap provides a neutral, white lightmap for all surfaces.
216-zlib compression for network datagrams when playing on Quetoo server.
217-cl_precachemodels allows clients to specify a set of player models
218to precache.  This can be used to avoid initial model and sound loading
219stutter on machines with slow drives (laptops).  Defaults to "male
220female cyborg".  See #10.
221-cl_ignore is a whitespace-delimited string containing chat strings to
222be ignored.  Messages containing an ignorable string are simply dropped.
223This can be used to ignore a player, a team or clan, etc.  See #11.
224-cl_chatsound specifies the wav file to be played for chat alerts.  Defaults
225to "misc/talk.wav".  Set to "" to silence chat alerts.  See #11.
226-cl_forcefov overrides fov directives in player state packets.  Useful
227for watching demos at fov > 90.  Defaults to 0 (disabled).
228-s_mixahead now defaults to 0.05 instead of 0.2.
229-SDL sound driver has been refactored, and no longer causes Sig11 when
230switching back and forth with the ALSA driver.  See #9.
231-SDL sound driver chooses more sane sample rates.
232-ALSA driver is a little better at setting requested sample rates.
233-ALSA default period and buffer are now 2048 and 8192, respectively.
234-Added configurable speed cheat detection via SV_GiveMsec.  sv_enforcetime
235threshold now defaults to MSEC_ERROR_MAX (30).  Bad movements increase
236clients error threshold by 10, normal movements decrement by 1.
237-Removed lightlevel hack.  Monsters now attack player even if in dark places.
238Client packets are 128-padded to maintain protocol 34 compatibility.
239-Fixed a long-standing Quake2 bug where servers running on a level for more
240than 9 hours would enter twilight zone (plats go through ceilings, doors fall
241through floors, lasers trigger every other frame, etc..).  This was caused
242by a failed check in g_phys.c, SV_RunThink.  Fixed in all game modules.
243-Fixed another original Quake2 bug, some calls to gi.error burried in g_main.c
244and g_phys.c erroneously passed a print level constant, altho the signature
245for the function calls for just a string format.
246-Fixed a bug in the ctf scoreboard which caused the left half of the board to
247be transmitted and drawn twice on each scoreboard request.  Saves a bit of
248bandwidth for ctf games.
249-Renamed R_LightPoint to GL_LightPoint in GL render path, to avoid name
250collision.  Was previously linking from software renderer.
251-Fully removed all polyblend code from render paths.  Note that the player
252state struct still requires this for protocol compatibility.  However, the
253software renderer is significantly faster now that the blend is completely
254ignored.
255-Removed sky rotation support, as it was horribly inefficient.
256-Removed timerefresh, as it's a worthless benchmark.
257-Removed togglechat function, it's never called.
258-Only update netgraph values when scr_netgraph is enabled
259-Re-added beam entity creation and drawing (ctf grapple, etc..)
260-Sound info struct is now snddef_s, typedef snddef_t.
261-Removed nextserver nonsense, as Quetoo does not support cinematics.  Server
262will gracefully skip over intermissions and procede to next level.
263-Refactored demomap command to simply demo, and .dm2 suffix is no longer
264necessary, (e.g. demo demo1).
265-Cleaned up server downloading checks, there were several length errors.
266-Major namespace changes; SNDDMA functions are now simply SND.  snd_dma.c
267has been renamed snd_ref.c.  REF functions are now VID.  ref_*.c have each
268been renamed to vid_*.c accordingly.
269-Many cvar and cmd name changes:
270	CHANGED cl_drawfps->cl_showfps, sensitivity->m_sensitivity, sndspeed->s_rate,
271		sndbits->s_bits, sndchannels->s_channels, play->s_play, soundstop->s_stop,
272		soundlist->s_list, soundinfo->s_info, netgraph->scr_netgraph
273	REMOVED cl_lookstrafe, cl_lookspring, cl_add_lights, cl_add_blend, cl_gun,
274		demomap, m_forward, m_side
275	NEW m_invert, gl_monolightmap, cl_chatsound, cl_ignore, cl_precachemodels,
276		cl_showspeed, demo, cl_forcefov, zlib
277
2780.3.4
279
280-Killed off acinclude.m4, contained paranoid vararg and SDL checks.
281-More cleanups to configure.in #2 #3 and #4.
282-Removed #ifdefs for dlopen.  If you don't have it, Quetoo won't work.
283-Added MYSQL_LIBS to src/qmass/Makefile.am #5.
284-Merged patches from Eddie to enable profiling.
285-Merged patches from Alexey for FreeBSD support #6.
286-Merged patches from Alexey for configurable railtrail color #7.
287-Added .tga texture loading support for all bmodels to gl renderer.
288-Tga texture loading can be toggled by gl_loadtga, defaults to 1.
289-Removed (unused) .tga loading code from software renderer.
290-Broke PCX and Targa loading/writing into separate source files.
291
2920.3.3
293
294-Massive cleanups to config.in.  OpenGL no longer relies on X11.
295-Added checks for SSE (i686) floating point optimizations.
296-Added -fno-strict-aliasing to src/Makefile.am.  Corrects compilation
297issues with gcc 4.1.x (Fedora 5).
298-Screenshots now named quetooXX.tga.
299-Removed gl_swapinterval, gl_ext_swapinterval.  This was a Windows-
300centric vsync feature.  Use nvidia-settings or driconf to control vsync.
301-Mousewheel scrolls console.
302-Changed (broken) gl_showtris to a working gl_wireframe.
303-Small optimizations to cl_screen.c, only calculate vrect when dirty.
304-Small optimizations to snd_mix.c, only calculate snd_vol when dirty.
305-s_volume may never exceed 1.0.
306-F10/F11 fullscreen/windowed mouse toggles were added to ref_sdl.c.
307Previous Alt-Enter, Ctrl-G were removed.  ref_sdl.c was also refactored
308to more closely resemble ref_glx.c.
309-Added README to src/qmass for qmass deathmatch mod.
310
3110.3.2
312
313-Relaxed failed client parse attempts for illegible server messages
314(e.g. Rogue/Xatrix effects).  Client simply drops packet.
315-Fixed dynamic world light lightmap loading.  Polys intended to
316be lit by world dlights no longer appear dark.
317-Fixed gcc4 compilation issues with snd_alsa.c.
318
3190.3.1
320
321-Fixed source defines in Makefile.am so that make dist bundles
322icon.xbm into distribution tarball.
323-Fixed compilation issue with ref_glx.c when XF86VidMode
324is not present.
325
3260.3
327
328-Killed off block*.h, d_ifacea.h, these were ASM leftovers.
329-Killed off glw.h, in.c, sv_null.c, and other stale source files.
330-Renamed rw_*.c to ref_*.c, as this better describes their function.
331-Merged rw.h to ref.h, which became vid_ref.h.  Software and GL renderers
332now share the same header file.
333-Merged vid.h to vid_so.c, which became vid_ref.c.
334-Renamed RW_* renderer functions to REF_*.
335-Merged snd_loc.h to sound.h.
336-Removed [broken] oss sound driver.  OSS is officially deprecated.  If
337this is a problem for you, get a new kernel.
338-Sound driver now defaulted to "alsa".
339-Removed s_khz cvar, redundant to sndspeed.
340-Dedicated server loads q2dm1 when no map is provided on startup.
341-Sounds may now be precached with global index "#" prefix.
342-Removed GL_EXT_POINT check and GL_DrawParticles function.  This
343actually tested to be significantly slower than the software implementation.
344-Scaled particle texture to 1/2 size, particles are now smaller.
345-Updated copyrights and GNU/GPL header comments.
346-Removed IPX protocol support.  I hear the Internet is here to stay.
347-Removed dynamic lighting from software and gl renderers.
348-Removed shadows from gl renderer.
349-Removed explosions.
350-Removed cl_newfx.c and other rogue/xatric code.
351-Relaxed Com_Error calls on unrecognized muzzleflashes to simply Com_Printf.
352-Added proper male sound precaching to qmass game.
353-Fixed random skin support in qmass game.
354-Fixed vweap in qmass game.
355-Much more desirable map rotation in qmass game.  sv_maplist now
356specifies a plain text file (e.g. maps.lst) which lists levels, one per line.  This
357map is parsed in InitGame, and loaded into a maplist_t struct.  The list is
358iterated by EndDMLevel.  The list is randomized if sv_rmap is set.
359-BFG 2d sprite effect has been removed.
360-Removed all lightstyles support (world dynamic lights, flickering,
361candle effects, etc).  Removed all dlight caches.  Optimized lightmap
362loading.
363-Removed gl_monolightmap.  Use gl_lightmap instead.
364-Added configurable sv_maxrate, defaulted to 5000.
365-F10 now toggles vid_fullscreen.
366-Added XVidMode support (fullscreen) to ref_softx.c.
367-Merged uint32.h to mdfour.h.
368
3690.2
370
371-Removed .asm, .S, and .inc assembler files, removed all [m]asm code.  The
372assembler only benefits the software renderer, and provides only a 10%
373performance increase.  A pure c implementation is easier on my eyes.
374-Fixed software renderer unresolved symbols.
375-Sound mixing is a bit smarter.  Volume is scaled down when more than 2
376sounds are being mixed simultaneously.  Levels are also more aggressively
377clipped for stereo samples, resulting in a cleaner sound experience.
378-ALSA driver is much more forgiving of cards which do not honor period
379and buffer requests.
380-Fixed old glx segfault when pressing F11.
381-Killed off quakeio.*, ndga.*, and newt.*.  These were no longer used.
382-qmass mod is no longer built by default.  --enable-qmass to build it.
383-Removed all monster and singleplayer code from qmass.
384-Fixed qmass MySQL support
385-Fixed qmass deathmatch intermission.
386-Added random male skin selection on connect to qmass.  Players may only
387change skin if teamplay is enabled in dmflags.
388
3890.1, initial release
390
391-Brand new ALSA sound driver (actually works)
392-Netgraph is slightly smaller, with transparent background, and is drawn
393behind the player stats.  Graph data is only updated when graph is visible.
394-fs_basedir honors PKGDATADIR and PKGLIBDIR, so mods can be installed like
395everyone is used to (e.g. /usr/local/share/quake2/ctf)
396-fs_gamedir is exported to environment as QUAKE2_HOME on startup.  Mods may
397safely use this variable to perform file io in their respective homes.
398-Timedemo is disabled in deathmatch and coop modes, and readonly for
399dedicated servers.  Timedemo in multiplayer is not only stupid, but it
400crashes the server :)
401-The rocket launcher is now elegible for selection when a player is out of
402ammo.  It was previously skipped.  This is a long-standing bug from id's
403original game source.  Affects baseq2, ctf, and qmass games.
404-FS_OpenFile now ensures a file is a regular file before returning it.  This
405fixes a known server crash (e.g. cmd download maps).
406-Fixed unchecked strcpy in Cmd_TokenizeString which could allow arbitrary
407code execution.
408-Link command is now jailed to fs_gamedir, fixing an exploit that allowed
409random filesystem access to players with rcon (e.g. rcon link /etc foo;
410download foo/passwd).
411-Fixed unchecked memcpy in Cbuf_Execute which could allow arbitrary code
412execution.
413-Unix-like cmd/cvar completion.  All potential matches for commands and cvars
414are printed on tab.  Nothing is appended to the input buffer unless it is an
415exact, or only, match.  Commands are printed in green, cvars in white.
416-Removed superfluous fopen/fclose when resolving sexed (per-model) sounds.
417This fixes a hiccup in gameplay when such a sound is first loaded on machines
418with slower harddrives (i.e. notebooks).
419-Video mode is now controlled by two cvars: vid_width and vid_height.  This is
420significantly better than any list of hard-coded modes.
421-Removed in-game menus
422-Removed cd audio support
423-Removed .cin and .pcx support
424-Removed camera separation (3d vr headset) support
425-Removed console show/hide animation
426-Removed tiled screen background
427-Fixed gl_ztrick bug with 2d display
428-No longer start demo on startup (go straight to fullscreen console)
429-Removed most explosion effects in deathmatch mode, in favor of simple
430particle effects.  This should lighten the load on older machines when in
431busy firefights, and allows the player to see what's going on.
432-Simplified some particle effects for better visual clarity.
433-New QMass game mod, found in src/qmass.  Features MySQL frag logging.
434./configure --with-mysql=$prefix to enable.
435