[quake3-commits] r2399 - trunk

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Mon Mar 18 09:17:34 EDT 2013


Author: tma
Date: 2013-03-18 09:17:34 -0400 (Mon, 18 Mar 2013)
New Revision: 2399

Added:
   trunk/REPOSITORY-MOVED
Removed:
   trunk/BUGS
   trunk/COPYING.txt
   trunk/ChangeLog
   trunk/Makefile
   trunk/NOTTODO
   trunk/README
   trunk/TODO
   trunk/code/
   trunk/cross-make-mingw.sh
   trunk/cross-make-mingw64.sh
   trunk/id-readme.txt
   trunk/make-macosx-ub.sh
   trunk/make-macosx.sh
   trunk/md4-readme.txt
   trunk/misc/
   trunk/rend2-readme.txt
   trunk/ui/
   trunk/voip-readme.txt
Log:
Note repository moved

Deleted: trunk/BUGS
===================================================================
--- trunk/BUGS	2013-01-01 20:20:38 UTC (rev 2398)
+++ trunk/BUGS	2013-03-18 13:17:34 UTC (rev 2399)
@@ -1,4 +0,0 @@
-- On Solaris/SPARC gcc optimizations higher than -O0 currently lead
-  to a segfault
-
-https://bugzilla.icculus.org/ for more.

Deleted: trunk/COPYING.txt
===================================================================
--- trunk/COPYING.txt	2013-01-01 20:20:38 UTC (rev 2398)
+++ trunk/COPYING.txt	2013-03-18 13:17:34 UTC (rev 2399)
@@ -1,281 +0,0 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                       51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-

-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-

-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-

-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-

-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-


Deleted: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2013-01-01 20:20:38 UTC (rev 2398)
+++ trunk/ChangeLog	2013-03-18 13:17:34 UTC (rev 2399)
@@ -1,3150 +0,0 @@
-2008-04-04 Various contributors
-	+ Solaris fixes
-	+ Replace vsprintf function in bg_lib.c with vsnprintf implementation started by Patrick Powell
-	+ Compile bg_* files separately for each game module, as originally intended
-	+ Write q3config_server.cfg for the server, to avoid reseting client variables
-		after running a dedicated server
-	+ Split image decoders into their own files
-	+ OS X build updates for most compatibility
-	+ Slackbuild
-	+ Detect available resolutions and offer them in the in game menus
-	+ A few botlib fixes
-	+ Fix poppy captured audio when recording videos
-	+ Extend console logging on crash errors
-	+ Merge *BSD platform definitions in q_platform.h
-	+ IRIX support
-	+ Remove all the old bat/sh QVM building scripts
-	+ Make master server used client configurable (cl_master)
-	+ Fix to QVM compilation on big endian architectures
-	+ OpenBSD support
-	+ Autocomplete key names
-	+ Don't build client command completion on the dedicated server
-	+ Don't apply colour escape chars on input fields
-	+ Rewrite of the win32 dedicated console
-	+ Improved Makefile startup time
-	+ Build dedicated server binary on Windows
-	+ Bump Q3_VERSION to 1.35
-	+ Replacement of platform specific backends with a generic SDL one
-	+ Merge win_net.c and unix_net.c to net_ip.c
-	+ Demote input related console information to developer only so that it doesn't
-		spam the console every time input settings are changed
-	+ PNG texture support
-	+ Cleanup of tabulation in R_LoadImage
-	+ Fixes to console scrolling
-	+ New x86_64 vm that doesn't use gas
-	+ Early out AABB collision optimisation
-	+ Generate QVM dependicies in a better way
-	+ Build process is quieter
-	+ Replace horrendously long list of Makefile build rules with set of inference rules
-	+ Allow CC to be overridden externally to the Makefile
-	+ Move storage of console history from a cvar to a file in order to alleviate
-		security concerns
-	+ Fix bug where transparent surfaces wouldn't draw over skyboxes
-	+ Add input sanitising to various sound playing functions called from mods
-	+ Explicitly set OpenAL distance attenuation model
-	+ Increased the number of registers used for the opStack in the PPC vm from
-		12 to 16
-	+ Fix endian issue in MDR loading
-	+ Add cURL support for HTTP/FTP downloading
-	+ Disable video command when not playing back a demo
-	+ Print the SVN version string in Com_Init()
-	+ OpenAL device enumeration support
-	+ Fix 100% CPU usage on idle dedicated servers
-	+ Windows home directory support
-	+ Improve correctness of AVI files created by video command
-	+ Better SDL joystick support
-	+ sv_minRate
-	+ [cl|sv]_packetdelay
-	+ Various security fixes
-	+ Fix JIT compiler code execution on NX-protected win32 OS
-	+ Fix r_overBrightBits variable getting ignored on Linux
-	+ cl_guid for semi-reliable server authentication
-	+ Anisotropic texture filtering
-	+ Video export doesn't crap out with sv_pure 1 anymore
-	+ Video export doesn't crap out when writing > 2Gb files anymore
-	+ Fix to a bug where servers with long uptimes (~27 days) would consume 100%
-		CPU if the running game did not set the nextmap cvar
-	+ Some OSes no longer requires a vid_restart when changing r_fullscreen
-
-2006-01-24 Various contributors
-	+ Persistent console history
-	+ Added code to sleep a bit when q3 has no focus and sleep a lot when it's
-		minimised (SDL only)
-	+ Cull excess speaker entities when using OpenAL
-	+ Fix the operation of the delete key in *nix
-	+ Only check the checksum on baseq3 pak0.pk3
-	+ Overhaul of console autocompletion
-		- No longer does weird stuff like move the cursor inappropriately
-		- Autocomplete works with compound commands
-		- Special autocomplete on some commands e.g. \map, \demo
-		- Removed various hacks used to counter the original autocomplete code
-	+ Fixed the ability to disable Ogg Vorbis
-	+ s/i686/i586/ - see bug #2578
-	+ Some sloppily coded mods call the Q3 sound API with NaNs -- sanitise this
-	+ Removed advertising clause from BSD license as per mailing list discussion
-	+ "make distclean" now does what you'd expect
-	+ "make clean toolsclean" now does what "make distclean" did before
-	+ GPL MD4 implementation
-
-2006-01-16 Various contributors
-	+ Move code/unix/Makefile to ./Makefile
-	+ x86 OS X support
-	+ "quake3" shell script as shipped with 1.32 (on linux) no longer needed
-	+ Ogg codec support from Joerg Dietrich
-	+ Fix to the gcc4/-O0 x86 JIT compiler bug
-	+ Up the defaults for zone and hunk memory since some mods (UT) have large
-		memory requirements that will have increased versus 1.32b due to some of the
-		alignment fixes
-	+ Dependency generation for the .asm files
-	+ Remove FS_SetRestrictions
-	+ Add FS_CheckPak0 for better error messages where dumb users are involved
-	+ Added cl_autoRecordDemo, which when enabled automatically records a new demo
-		on each map change
-	+ Only display the g_synchronousClients warning when it's appropriate
-	+ Remove custom memcpy/memset code
-	+ AVI video output
-		- Uses motion jpeg codec by default
-		- Use cl_aviFrameRate to set a framerate
-		- \video [filename] to start capture
-		- \stopvideo to stop capture
-		- Audio capture is a bit ropey
-	+ General Makefile improvements
-	+ Support for MinGW cross compilation
-	+ NetBSD support from optical
-	+ x86_64 JIT bytecode compiler no longer disabled by default
-	+ msvc project files updated and moved to win32/msvc
-	+ Various alignment fixes
-	+ Solaris (x86 and sparc) support from Vincent S. Cojot
-	+ Fixed Altivec-based mesh rendering
-	+ Ditch Mac OS 9 support
-	+ Added a Makefile option USE_LOCAL_HEADERS which can be disabled to use system
-		headers if desired
-	+ Detection of Altivec on Mac OS X
-	+ SMP support with sdl_glimp.c on Mac OS X.
-	+ Add "very high quality" option (patch from Pascal de Bruijn)
-	+ Support for RIFF files with zero length data chunks (yes they exist, and yes,
-		they're legal)
-	+ Support for ccache. If you want it, add USE_CCACHE=1 to Makefile.local
-	+ Mac OS X now uses SDL backend, all Objective C removed
-	+ Partial implementation of FS_Seek for files in pk3s
-	+ Implementation of r_dlightBacks from Shane Isley
-	+ OpenAL support, from BlackAura aka Stuart Dalton
-	+ An abstract codec system, simplifying support for new formats
-	+ Ignore in_dgamouse setting if dga isn't available
-	+ Removed hard coded mouse acceleration in *nix input code
-	+ Basically rewrote the lcc Makefile to be more sane
-	+ Removed various bits of lcc that weren't built/needed
-	+ General portability improvements
-	+ Various variables added that aid packaging, from vapier
-	+ Centralise architecture defines in q_platform.h
-	+ Replaced a bunch of inline and __inline with ID_INLINE
-	+ Replaced a bunch of __i386__ with id386
-	+ General tidy up of asm preprocessor decisions
-	+ Removed C_ONLY from the dedicated server build
-	+ Removed rule to build C++ (for splines) from the Makefile
-	+ General decrufting
-	+ Split USE_SDL into USE_SDL_VIDEO and USE_SDL_AUDIO
-	+ Various assorted bug fixes
-
-2005-10-29 Various contributors
-	+ nasm syntax asm ported to gas
-	+ Disabled-by-default MD4 support
-	+ cons build system removed
-	+ Better FreeBSD support
-	+ Makefile generates dependencies
-	+ Some SDL sound tweaks
-	+ qvm build tools and qvms are now built with the rest of the binaries
-	+ q3asm-turbo from Phaethon
-	+ Moved various displaced c and h files into more appropriate places
-	+ A shitload (can I say shit?) of bug fixes -- see the svn log for details
-
-2005-09-22 Tim Angus <tim at ngus.net>
-	+ MinGW port
-
-2005-09-??
-	+ SDL Stuff (icculus)
-	+ x86_64 (ludwig von angstenheimer)
-	+ patches from a cast of thousands
-
-2004-05-22 Timothee Besset <ttimo at idsoftware.com>
-	+ updated the xcode project from Apple's version
-		now with the latest vm_ppc code
-
-2004-05-21 Timothee Besset <ttimo at idsoftware.com>
-	+ fixed the Linux build to compile again on sid (glext.h and gcc3 warnings)
-	+ 2 weeks ago, hacked up the source to compile on panther / xcode 1.1
-		several cleanups were needed, and VM support seems broke (hangs or crashes)
-	+ got altivec optimisations from Apple (Kenneth Dyke)
-		merged back in
-	+ looks like with the new code merge the VM support is back in and working
-
-2003-09-15 Timothee Besset <ttimo at idsoftware.com>
-	+ import Q3 java master code, cleanups on monster
-
-2003-08-31 Timothee Besset <ttimo at idsoftware.com>
-	+ loki_setup hell
-		https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=626
-		http://zerowing.idsoftware.com/linux/q3a/index.html#glibc
-		text mode installer in loki_setup image built on Mandrake 7.2 crashes on
-		some glibc 2.3 systems such as RH9 etc.  need to move to a different
-		version of the installer, and update old installers to keep them still
-		'installing' moving to build the setup binaries on Debian Woody systems
-		(glibc 2.2, text mode installer will no longer work on 2.1 systems) hacked
-		together a new setup, using setup tree from RTCW. would need a complete
-		revamp if a new full setup with new binaries is needed
-
-2003-07-17 Timothee Besset <ttimo at idsoftware.com>
-	+ new cvsreport, testing per-module config
-
-2003-01-19 Timothee Besset <ttimo at idsoftware.com>
-	+ building on both gcc 2.x and 3.x
-		added conf modules to check gcc version
-		ccache support
-
-2003-01-13 Timothee Besset <ttimo at idsoftware.com>
-	+ tweaking around for gcc 3.x build
-		edit Conscript to change the compiler
-
-2002-12-16 Timothee Besset <ttimo at idsoftware.com>
-	+ added pbEmit class to auth code, emit CD keys to local PB master
-
-2002-11-14 Timothee Besset <ttimo at idsoftware.com>
-  + up to latest makeself.sh
-	+ add both quake3.x86 and quake3-smp.x86 to setup
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=573
-	  console setup crash / glibc 2.3 (Debian Sid)
-		investigated, put together a workaround		
-
-2002-11-5 Timothee Besset <ttimo at idsoftware.com>
-	+ Linux building both smp and non-smp again. Will have to put both in setup
-	+ added in_subframe to toggle X subframe event handling
-	+ reworked the timing code to be more reliable
-	+ cleaned up dgamouse/in_mouse code, removed unnecessary dgamouse var
-	+ made the mouse grabbing an in_nograb cvar, no longer a compile time option
-	  in_nograb 1 force in_dgamouse 0 and r_fullscreen 0 (any of those two will b0rk)
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=565
-	  mouse issues on Suze 8.1 - related to subframe event timing
-		added code chunk to detect broken X timing and disable subframe
-	+ tweaked the subframe/X bug workaround to be less paranoid	
-
-2002-10-28 Timothee Besset <ttimo at idsoftware.com>
-	+ no longer blocking demo recording if g_synchronous clients != 0
-		only sending out a warning (everyone does g_sync 1 ; record ; g_sync 0)
-
-2002-10-21 Timothee Besset <ttimo at idsoftware.com>
-	+ building final mod sdk setups (added lcc bins, added link to q3asm-turbo in readme)
-
-2002-10-8 Timothee Besset <ttimo at idsoftware.com>
-	+ quickfix cl_maxpackets > 125 brings back to 100
-
-1.32 release ---
-
-2002-10-7 Timothee Besset <ttimo at idsoftware.com>
-	+ made the 'demo' command case-insensitive on extension match (it was confused by demo FOUR.DM_68)
-	+ mouse wheel scrolling with in_mouse 1 + window mode was not working, fixed (DI didn't catch)
-	+ removing on-the-fly pk3 build from Linux setup, using the finalized ones now
-		added 'pk3' option to cons for toggle of pk3 building
-
-2002-10-5 Timothee Besset <ttimo at idsoftware.com>
-  + updated win32 mod sdk (in win32/mod-sdk-setup)
-    added q3asm and lcc source
-    updated the .bat to build VMs
-
-2002-10-3 Timothee Besset <ttimo at idsoftware.com>
-	+ linux mod sdk, wrote the bulk of the scripts
-
-2002-9-30 Timothee Besset <ttimo at idsoftware.com>
-	+ ATVI Quake 3 1.32 Patch #9
-		rolling back to the way it was before, leaving 1v1 force vote exploit, the fix was worse than the bug
-		from comment on bug #9 in tracker:
-		
-		actually the fix is worse than the original bug
-
-     after the fix, voting when you are alone on the server was no longer working
-     it was kinda intended in the fix, that you would have to be at least two to pass a vote .. but
-     it is an oversight.
-
-     calling a vote in a 1v1 game against a bot fails immediately
-     (calling a vote in any situation where there's only 1 live player fails)
-
-     Say a server's running some lame custom map that you have but a friend doesn't. You can't go
-     on the server and change it to the map you want to play, so he ends up having to auto-dl it at
-     8K a second just so you can switch from it.
-
-     This particular 2 clients, vote / quit exploit would involve too many changes to fix properly.
-     I am reverting back to the old version, and leaving as WNF 
-
-2002-9-29 Timothee Besset <ttimo at idsoftware.com>
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=50
-		added Wheel support to the DirectInput code IN_DIMouse (in_mouse 1)
-		tweaked the Wheel mouse reading for in_mouse -1 (old win32 input code)
-			handle correctly when zDelta is > 120
-			provide an in_logitechbug cvar to handle buggy Logitech MouseWare driver sending wheel events twice
-
-2002-9-26 Timothee Besset <ttimo at idsoftware.com>
-	+ ATVI Quake 3 1.32 Patch #38
-		adding trap_SetPbClStatus, reliably checks for PB presence before enabling PB in UI
-
-2002-9-25 Timothee Besset <ttimo at idsoftware.com>
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=551
-		SVF_CLIENTMASK, fixed a typo
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=555
-		pushed cl_maxpackets upper limit to 125 (from 100) per CPMA Arqon's request
-
-2002-9-24 Timothee Besset <ttimo at idsoftware.com>
-	+ ATVI Quake 3 1.32 Patch #33
-		PB reporting sv_paused cvar hacked, fixed SV_CheckPaused to use a Cvar_Set
-	+ ATVI Quake 3 1.32 Patch #24
-		added [skipnotify] from RTCW, use to display in the console only, but not on client screen
-		(also fixes pb_msgprefix and pb_sv_msgprefix)
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=553
-		using correct error message if listen server starting as cl_punkbuster 0 sv_punkbuster 1
-	+ ATVI Quake 3 1.32 Patch #35
-		text auto wrap in UI code was eating the last word if it was wrapping
-		fixed in Q3 and TA UI (this bug could have affected the server print message also)
-	+ some updates to the win32 cons post-build process	
-
-2002-9-21 Timothee Besset <ttimo at idsoftware.com>
-	+ adding bspc cons build script
-
-2002-9-19 Timothee Besset <ttimo at idsoftware.com>
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=552
-		disconnect reason is transmitted in the disconnect command and processed into com_errorMessage
-		(similar to RTCW behaviour)
-		added UI for com_errorMessage cvar in baseq3/, if client is kicked/dropped/disconnected for whatever reason
-		(this is already functional in TA)
-	+ ATVI Quake 3 1.32 Patch #9
-		failing vote if there's only one voting client (fixes exploit on 2-player server where one player votes then disconnects, forcing vote to pass)
-	+ ATVI Quake 3 1.32 Patch #5
-		removed the userInfoChanged message (was a debugging leftover)
-	+ ATVI Quake 3 1.32 Patch #18
-		rcon was not properly fixed yet, this only showed up for PB commands
-		changed the rcon parsing again to be more reliable
-	
-2002-9-18 Timothee Besset <ttimo at idsoftware.com>
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=549
-		the demo command has a list of compatible protocols, it will loop through 66 67 68
-		you can do '/demo four' and it will try four.dm_66 four.dm_67 four.dm_68
-		or you can explicitely give a '/demo demoname.dm_??'
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=551
-		added SVF_CLIENTMASK (0x00000002), works only with <= 32 players
-		set bitmask of players to which send entity
-
-2002-9-17 Timothee Besset <ttimo at idsoftware.com>
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=550
-		rcon bug fix
-	+ some scons updates for win32 (post build)
-	+ 1.32rc2
-
-2002-9-06 Timothee Besset <ttimo at idsoftware.com>
-	+ updated completely the setup system:
-		fixed cons stuff to build setup with cons -- release setup
-		working from new setup codebase with some custom patches:
-			https://bugzilla.icculus.org/show_bug.cgi?id=52
-			https://bugzilla.icculus.org/show_bug.cgi?id=53
-			checked that BSD support was still in (brandelfing and symlinks) .. will have to get tester feedback
-		bumped version to 1.32rc1	
-		TODO: update the windows .VCT (standalone setup and auto-update)
-
-2002-9-04 Timothee Besset <ttimo at idsoftware.com>
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=543
-		backport from RTCW 1.4 code
-		rcon commands where sent after being tokenized and rebuilt
-		that was breaking any quoting, for instance 'rcon g_motd "hooka pooka"'
-		added Cmd_Cmd() to retrieve the un-tokenized command and transmit as is on both ends
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=542
-		b0rked text wrapping in connect screen
-		was a missing sizeScale in q3_ui/, and a bad param in ui/
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=540
-		backport fix to pk3 reordering, happens when clearing the references, bad order from connection may break stuff		
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=527
-		TA ui/, quickfix to netSource (mod stuff, doesn't affect TA)
-	+ cleaned up broken old DO_WIN32 stuff in cons scripts
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=526
-		typo in models2.shader
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=443
-		Linux client: sub-frame timing of key/mouse events
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=453
-		added mousewheel support: wheel to scroll, ctrl+wheel to scroll faster, shift+wheel to scroll history
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=545
-		bumped server count to 4096
-	+ keep around: __asm__ __volatile__ ("int $0x03");		
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=516
-		moved screenshots to backend with a new RC_SCREENSHOT render command
-		fixes the r_smp 1 garbled screenshots
-
-2002-8-29 Timothee Besset <ttimo at idsoftware.com>
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=539
-		new VM code from Raven's Sof2
-	+ cons / qvmtools build system fixes	
-	+ had to get a new qe3.ico again (resource compiler error)
-		http://vasin.hypermart.net/eei.htm
-	+ updated, basic testing on win32, merging back in trunk
-	+ merged bug-539 branch back into trunk, officialize the new VM code
-
-2002-8-26 Timothee Besset <ttimo at idsoftware.com>
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=472
-		linux client: handle ctrl+space situations (could leave space locked on + space not working with ctrl on)
-	+ update the build system, build q3lcc and q3asm etc. on demand
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=62
-		fixed invisible players/entities
-
-2002-8-23 Timothee Besset <ttimo at idsoftware.com>
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=536
-		fixing donedl being ignored after autodl if map_restart'ed (propagate from RTCW)
-		ignoring multiple map_restart (propagated from RTCW)
-	+ reworked the server 'client text ignored' message to only trigger	when there's actually a message that doesn't get to the game VM
-
-2002-8-18 Timothee Besset <ttimo at idsoftware.com>
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=528
-		ydnar: reorg bits in the drawsurf sort index, push MAX_SHADERS to 2^12
-	+ commented out some debug stuff in java auth server
-	+ added FAQ item with Linux & BSD patch to handle broadcast on multiple interfaces
-
-2002-8-15 Timothee Besset <ttimo at idsoftware.com>
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=534
-		fixing rcon being broken on NT/XP with > 23 days uptime (or so)
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=525
-		changed the rcon buffer size to avoid overflows and dropping part of the message
-
-2002-8-14 Timothee Besset <ttimo at idsoftware.com>
-	+ hacked in some experimental win32 stuff to the cons files
-		(win32 recognition and pk3 installs .. very very experimental but I needed it for win32 dev)
-	+	https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=521
-		ui/ and q3_ui/ : added text auto wrapping in the connection screen drawing (server message)
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=531
-		removed the MPlayer stuff from the server browsers
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=505
-		enabled back the ignore if protocol is != (fixes Wolf servers showing in browser)
-
-2002-8-10 Timothee Besset <ttimo at idsoftware.com>
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=500
-    propagated IP banning fix from RTCW
-
-2002-8-08 Timothee Besset <ttimo at idsoftware.com>
-	+ propagate additional sv_lanForceRate fix from RTCW
-
-2002-8-07 Timothee Besset <ttimo at idsoftware.com>
-	+ added trap_FS_Seek
-
-2002-8-05 Timothee Besset <ttimo at idsoftware.com>
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=50
-    fixed the DI mouse init procedure
-		
-2002-8-05 Timothee Besset <ttimo at idsoftware.com>
-	+ removed sv_allowanonymous, was dummy and polluting the serverinfo
-		(sv_allowanonymous was designed to flag wether server was public or not, but that's replaced by g_needpass)
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=514
-		sv_strictAuth (default 1): server variable to control wether strict CDKEY auth should be performed
-			this is required if you want reliable cl_guid on the server
-		extended the getIpAuthorize (server->auth message) syntax
-		sending the fs_game at all times (default 'baseq3'), dummy sv_allowAnonymous 0, strict auth flag
-		NOTE: 1.31 server on baseq3 sends a getIpAuthorize packet like:
-			processing packet: getIpAuthorize -1230824753 217.128.77.195  0
-			the auth server will mistakenly read fs_game as '0'
-	+ TAGGED the master / auth source as pre-1_32
-		will need to go back to this to comment out all my debugging crap
-
-2002-8-04 Timothee Besset <ttimo at idsoftware.com>
-	+ cleaned master server stuff, client was prompting master.quake3arena.com, 
-		server was sending heartbeats to master3.idsoftware.com
-		both point to 192.246.40.56, unified to master.quake3arena.com
-		the MPlayer master, master.quake3world.com doesn't exist anymore, switched it to master.quake3arena.com
-
-2002-8-02 Timothee Besset <ttimo at idsoftware.com>
-	+ added auth server source, reorganized
-	+ auth server name / master key optionally set on command line for master and auth servers
-	+ auth and master config in build system
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=524
-		changed default GL driver from libGL.so to libGL.so.1
-		see LSB 1.2 spec: http://www.linuxbase.org/spec/refspecs/LSB_1.2.0/gLSB/libgl.html
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=480
-		applying the 'no cp command' experimental fix for beta phase
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=462
-		backported from RTCW, fix to packet fragmenting emission
-		FIXME: there is some verbose code that we have to take out in the final version (grep for #462)
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=475
-		backported from RTCW, don't get dropped if the server changes map while connecting (ignore outdated cp)
-	+ PROTOCOL BUMPED TO 68	
-
-2002-8-01 Timothee Besset <ttimo at idsoftware.com>
-	+ Linux: dedicated build was not setting up signal handler like the full client does
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=522
-		SplashDamage bugfix, now clearing client gentity before GAME_INIT call (instead of after)
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=498
-		fixed NET_AdrToString to print the port as unsigned int (for ports > 1^^15, was showing negative)
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=501
-		maintain IP in userinfo sent to game
-	+ checking in master server source	
-
-2002-7-31 Timothee Besset <ttimo at idsoftware.com>
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=513
-		https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=506
-		porting fix from RTCW codebase. client re-orders its pk3s to scan in the same order than the server
-		this eliminates several 'Invalid .PK3 file referenced' situations (caused by client not referencing the same thing as server)
-	+ fixed border remnants in ta ui
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=517
-		ERR_DROP if PB client off / server on conflict when starting local server
-	+ quickfix to q3 ui / punkbuster detect in server browser
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=458
-		code fix, no more taunt spam
-	+ cons install of PB .so files
-	+ correct MOD_KAMIKAZE and MOD_JUICED in TA games.log
-
-2002-7-29 Timothee Besset <ttimo at idsoftware.com>
-	+ q3 ui: completed confirmation prompts and messages (added UI_ConfirmMenu_Style & UI_Message)
-	+ ta ui: backported 'conditionalopen' from RTCW (conditionalopen <cvar> <menu1> <menu2>)
-	+ ta ui: confirmation prompt for punkbuster enable/disable etc.
-	+ added the win32 DLLs to pb/win32/
-	
-2002-7-28 Timothee Besset <ttimo at idsoftware.com>
-	+ ta ui: sv_punkbuster in StartServer menu
-	+ ta ui: added cl_punkbuster in server browser
-	+ view filters are in a modal dialog
-	+ new files: filter.menu menus.txt (pak3.pk3 updated)
-	+ fix broken link in Linux FAQ	
-
-2002-7-27 Timothee Besset <ttimo at idsoftware.com>
-	+ ta ui: PB display in the browser, in its additional tab, with sorting
-
-2002-7-26 Timothee Besset <ttimo at idsoftware.com>
-	+ PB UI: for baseq3/ AND missionpack/
-		q3_ui: Punkbuster: Enable/Disable in server broswer (cl_punkbuster)
-		q3_ui: PB logo, PB Yes/No in browser (TODO: validate this to be working)
-		q3_ui: added sv_punkbuster toggle in start server menu
-	+ automated building of the new PK3s, unix/Conscript-pk3
-
-2002-7-25 Timothee Besset <ttimo at idsoftware.com>
-	+ added PB build scripts on Linux, fixed the Linux build
-
-2002-7-12 Timothee Besset <ttimo at idsoftware.com>
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=511
-    fixing re.SetColor crash for widescreen displays (q3dm11)
-    was calling to the renderer while not registered
-
-2002-6-19 Timothee Besset <ttimo at idsoftware.com>
-  + r_roundImagesDown 0 + map q3dm16 -> tr_image.c ResampleTexture crash
-	  buffer overflow because of resample to 2048x..
-		xian_q3dm12_leftwall4fin.jpg 1152x384
-		bumped one buffer byte p1[1024] -> byte p1[2048], added a safe check
-
-2002-6-14 Timothee Besset <ttimo at idsoftware.com>
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=493
-	  propagate a renderer fix from RTCW. fixes a one-frame visual glitch when mod code 
-		registers a shader after drawsurfaces are generated but before the frame is rendered
-
-2002-6-12 Timothee Besset <ttimo at idsoftware.com>
-  + added cons and pcons to unix/, updated the build script
-
-2002-5-24 Timothee Besset <ttimo at idsoftware.com>
-	towards a new Q3 release?
-		some bug fixes require protocol change, or mod code/mod interface change to be fixed properly
-		this is a biz decision, dunno yet if we are going to want a new protocol (probably not)
-	-> have to create a branch for the 1.31b, i.e. backwards compatible with 1.31 'Stable-1_31'
-	  and put the 1.32 specific / protocol changes on trunk
-	no telling what will go in SOS in the end .. probably 1.32	
-
-2002-5-5 Timothee Besset <ttimo at idsoftware.com>
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=491
-	  adding a sv_lanForceRate (defaults to 1) to turn on/off server forcing rate of LAN clients
-		(only affects LAN dedicated clients - dedicated 1, default behaviour forces LAN clients to 99999 rate)
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=470
-	  fixing potential overflows with cl_cdkey (propagated from RTCW)
-	+ cons-based build system (imported from Wolf, was partly written for mod tools release already)
-	  building with SMP on by default
-	+ better #ifdef SMP handling ('disabled at compile time' message)	
-	+ https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=494	  
-		Q_vsnprintf for vsprintf calls in the core
-		not putting this in game code as we'd need a vsnprintf implementation in bg_lib.c
-
-2002-4-5 Timothee Besset <ttimo at idsoftware.com>
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=462
-    taking out the fix which was found broken and incomplete  
-
-2002-8-4  Timothee Besset <ttimo at idsoftware.com>
-  + adding NO_MOUSEGRAB define (select in the Makefile)
-
-2002-2-4  Timothee Besset <ttimo at idsoftware.com>
-  + applying Gareth's SMP patch
-  + count number of CPUs (Sys_ProcessorCount in unix_shared.c), default r_smp appropriately
-  + bumping version to 1.32
-  + if XInitThreads fails, set r_smp to zero
-
-2002-28-2  Timothee Besset <ttimo at idsoftware.com>
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=462
-    send potential remaining fragmented packets before sending a gamestate
-    
-2002-26-2  Timothee Besset <ttimo at idsoftware.com>
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=455
-  removed old libMesaVoodooGL.so loading code
-  Voodoo cards should use XF4/DRI, that load code was outdated and confusing people with broken OpenGL
-
-2002-16-1  Timothee Besset <ttimo at idsoftware.com>
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=441
-  adding brandelf calls to the setup building process so that our binaries run on BSD
-
-2002-1-1  Timothee Besset <ttimo at idsoftware.com>
-  + updated FAQ with BSD info (bug #441)
-  + FAQ update on CLIENT_UNKNOWN_TO_AUTH
-  + FAQ update for proper strace usage
-
-2001-12-12  Timothee Besset <ttimo at idsoftware.com>
-  + Q3 1.31 point release
-    updating build_setup.sh to new pk3 files
-    (baseq3/pak7.pk3 missionpack/pak2.pk3)
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=395
-    adding quake3.xpm icon, and modified the setup accordingly to put symlinks
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=390
-    ignoring SIGTTIN SIGTTOU
-
-2001-06-12  Timothee Besset <ttimo at idsoftware.com>
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=402
-    bug with full scene
-
-2001-04-12  Timothee Besset <ttimo at idsoftware.com>
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=398
-    cg_bobup cheat protect
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=399
-    fixed Setup > System > Driver info crash
-  + checked in code/spank.sh script, perform checksuming  
-	
-2001-18-09  Timothee Besset <ttimo at idsoftware.com>
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=371
-    propagating sound code fixes from Wolf to Q3
-	
-2001-11-08  Timothee Besset <ttimo at idsoftware.com>
-  + setup script was still broken, damn shell expansion
-    the exit code for Q3 was always zero instead of $?
-    propagating the fix to Wolf
-
-2001-11-04  Timothee Besset <ttimo at idsoftware.com>
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=382
-    modified challenge code for motd to be truly random
-	
-2001-10-31  Timothee Besset <ttimo at idsoftware.com>
-  Moved updated q3asm and lcc source at the toplevel, MissionPack/q3asm
-  and MissionPack/lcc
-
-2001-10-29  Timothee Besset <ttimo at idsoftware.com>
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=381
-    build system is now functional
-
-2001-10-21  Timothee Besset <ttimo at idsoftware.com>
-  + updated Sys_LoadDll code on linux to search in the following order:
-    #1 current directory
-    #2 fs_homepath
-    #3 fs_basepath
-    this was needed to make mod developement easier
-
-2001-10-09  Timothee Besset <ttimo at idsoftware.com>
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=51
-    the code to buffer the redirection was in there but disabled? (Com_Printf)
-    enabled it back
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=52
-    connection issues / userinfo
-    client side fix, instead of sending 'connect <userinfo>' packet
-    we now send 'connect "<userinfo>"'
-
-2001-10-08  Timothee Besset <ttimo at idsoftware.com>
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=371
-    added a PROT_READ to the mmap call
-    this was needed to go around a bug in glibc i586 i686, memset doing read access
-    since the audio_fd is opened O_RDWD this is harmless to Q3
-
-2001-10-07  Timothee Besset <ttimo at idsoftware.com>
-  + updating from SOS
-    S_WriteLinearBlastStereo16 C/asm is back in snd_mix.c (Graeme)
-    r_showtris r_shownormal cheat protections
-  + Sys_LoadDll changes:
-    removing -debug search when loading native dlls
-    changing the fatal aborts when not finding native from release only to debug only (was a misfeature)
-    used to search in cd_path which is bogus, now searching in pwd if basepath fails
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=275
-    fixed r_fullbright not being cheat protected / was a CVAR_LATCHED|CVAR_CHEAT issue
-
-2001-09-06  Timothee Besset <ttimo at idsoftware.com>
-  + updated from SOS, some changes to qcommon/unzip.c (statics)
-
-2001-08-27  Timothee Besset <ttimo at idsoftware.com>
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=3
-  Added some code in CL_InitDownloads to use FS_ComparePaks and print out information about server-referenced paks that are missing on the client. It is a first step, allows to get precise information about what can cause a connection to fail (typically when the user is sent back to the main screen).
-
-2001-08-22  Timothee Besset <ttimo at idsoftware.com>
-  + https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=86
-  fixed sound bug (with Graeme hints)
-
-2001-08-20  Timothee Besset <ttimo at idsoftware.com>
-  + made sure Sys_Printf doesn't get into an endless loop if logfile is on
-    fixed qconsole.log issues, +set logfile 1 +set fs_debug 1 was crashing (any OS)
-    fixed logfile 1 / ttycon 1 issue, didn't exit properly (same endless looping)
-    also fixes an issue reported by q3f team
-  + changed rcon commands from Com_DPrintf to Com_Printf so that they show up in the console
-  (with IP information)
-
-2001-08-19  Timothee Besset <ttimo at idsoftware.com>
-  + fixed https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=91
-  (autodownload toggle in q3 ui)
-  + fixed https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=76
-  g_password issue
-  + fixed https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=93
-  cheat protecting r_lodCurveError
-  + wontfix https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=92
-
-2001-08-18  Timothee Besset <ttimo at idsoftware.com>
-  + more fixes to the 7-button mouse code (linux only)
-  + updated faq about gamma slider
-  + added "servers don't show up in ingame browser" to faq
-  + added Alt+Enter toggle for fullscreen/windowed (linux)
-
-2001-08-16  Timothee Besset <ttimo at idsoftware.com>
-  reconfiguring CVS repository to give access to Gareth
-  + testin gareth's access
-
-2001-08-03  Timothee Besset <ttimo at idsoftware.com>
-  * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=85
-  fixes in the setup code for older bash versions
-  
-2001-08-02  Timothee Besset <ttimo at idsoftware.com>
-  * commented out assembly implementation of S_WriteLinearBlastStereo16, using modified C implementation from Zaphod
-    need to check performance: https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=88
-  * finished const declarations in CG_Trace calls, was needed in pmove_t declaration and some other functions
-    cgame/cg_local.h : CG_trace trap_CM_BoxTrace
-    game/bg_public.h : using const in pmove_t trace functions prototypes
-    (fixes gcc warnings: assignment from incompatible pointer type)
-
-2001-07-26  Timothee Besset <ttimo at idsoftware.com>
-  * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=78
-  mapped K_MOUSE4 K_MOUSE5
-
-2001-07-23  Timothee Besset <ttimo at idsoftware.com>
-  * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=5
-  more fixes, handling meta characters and various kinds of backspace
-
-2001-07-22  Timothee Besset <ttimo at idsoftware.com>
-  * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=5
-  after testing feedback, fixed more stuff:
-    better backspace, works with putty and potentially more terminals
-  * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=51
-  band aid fix to rcon status, incresed MAX_PUSHED_EVENTS from 256 to 1024
-  (adds 28kb of mem requirements)
-
-2001-07-21  Timothee Besset <ttimo at idsoftware.com>
-  * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=2
-  using XF86 Gamma extension to set the gamma in game from the menus
-  (previous behaviour was to set /r_gamma and restart, renderer relying on s_gammatable)
-  restoring initial gamma on GLimp_ShutDown
-
-2001-07-19  Timothee Besset <ttimo at idsoftware.com>
-  * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=5
-  first usable version of dedicated console
-  added history and completion functionality
-  ready for some testing
-  still some TODOs and FIXMEs:
-    keep the currently edited line when going back from history exploration
-    edit the current line with cursor, insert mode etc.
-
-2001-07-18  Timothee Besset <ttimo at idsoftware.com>
-  * starting TAB completion and history for the dedicated server (tty console)
-  removed Sys_ConsoleOutput (unused)
-  removing bogus nostdout variable
-  cleanup of a big chunk of code that Bernd commented out and scheduled for deletion
-  moved completion code from client/cl_keys.c stuff into qcommon/common.c, Field_CompleteCommand(field_t*)
-
-2001-07-13  Timothee Besset <ttimo at idsoftware.com>
-  * fixed https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=8
-  screenshots overwrites
-  * fixed https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=31
-  DOUBLE SIGNAL FAULT
-
-2001-07-11  Timothee Besset <ttimo at idsoftware.com>
-  * fix for french keybards / console toggle / bound to XK_twosuperior
-
-2001-07-10  Timothee Besset <ttimo at idsoftware.com>
-  * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=19
-  cleanup of the keyboard code, adding com_developer message in case XLookupString would fail
-
-2001-07-10  Timothee Besset <ttimo at idsoftware.com>
-  * https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=33
-  using our custom handlers for X errors, should make things more robust
-  (X docs say some X errors are not fatal, but the default X handler exits the app anyway)
-
-2001-07-08  Timothee Besset <ttimo at idsoftware.com>
-	* https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=19
-	keyboard state issues, fixed the sticking with ctrl key (thks relnev)
-
-2001-07-07  Timothee Besset <ttimo at idsoftware.com>
-	* closing https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=13
-	the fixes to bug #9 solved this one too
-	* checking in to SOS
-
-2001-07-05  Timothee Besset <ttimo at idsoftware.com>
-	* work on https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=9
-	filesystem code changes:
-	updated the documentation in files.c to the current system
-	added correct fs_homepath fs_basepath fs_cdpath scanning to FS_SV_FOpenFileRead
-	  (fixes description.txt not found, and probably a few other linux issues)
-
-2001-06-29  Timothee Besset <ttimo at idsoftware.com>
-	* fixed setup issues (graphical/console)
-	https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=6
-
-2001-06-26  Timothee Besset <ttimo at idsoftware.com>
-	* bug tracker is online at https://zerowing.idsoftware.com/bugzilla
-	  authentication, use login: bugs password: b00gies
-	  for now, using it as the linux bug tracker, possible use for more OSes and programs if anyone is interested.
-	* tweaked the graphical setup to send to bugs at idsoftware.com on errors instead of support at lokigames.com
-	  
-2001-06-19  Timothee Besset <ttimo at idsoftware.com>
-        * fixed generated launch script /usr/local/bin/quake3, exit $* should be exit
-
-2001-06-18  Timothee Besset <ttimo at idsoftware.com>
-        * rebuilt 1.29f setups, released as 1.29f-beta1 'Q3 1.29f linux-i386 Jun 19 2001'
-
-2001-06-10  Timothee Besset <ttimo at idsoftware.com>
-	* rebuilt against PR source, packaged 1.29b setups
-
-2001-05-25  Timothee Besset <ttimo at idsoftware.com>
-	* graphical setup, based on Loki's setup tool (GPL)
-
-2001-05-22  Timothee Besset <ttimo at idsoftware.com>
-	* changed fs_basepath to fs_homepath, according to Graeme's changes (probably missed this change?)
-	  this fixes the q3key prompting at each game startup
-
-2001-05-20  Timothee Besset <ttimo at idsoftware.com>
-	* rebuilding 1.28b, various fixes on linux build:
-	  - SetProgramPath was renamed to Sys_SetDefaultCDPath in unix_shared.c
-	    updated unix_main.c accordingly
-	  - some prototypes in qgl.h are guarded by #ifndef GL_VERSION_1_2 (ARB extentions)
-	    those prototypes are needed by linux_glimp for importing functions and casting, added a #ifdef __linux__
-	    (not a clean solution)
-	  - game/q_shared.h
-	    little endian / big endian functions have been added
-	    gcc generates warnings about functions being unused .. inlined them
-	   - cgame/cg_marks.c
-	     // TTimo
-	     // gcc warning: might be used uninitialized
-	     float sInc = 0.0;
-             float s = 0.0;
-
-2001-05-15  Timothee Besset <ttimo at idsoftware.com>
-	* fixes to linux Makefile for bspc 2.1h
-	* various updates to 1.28b on linux
-
-2001-05-09  Timothee Besset <ttimo at idsoftware.com>
-
-	* R. Duffy reverted game/bg_pmove.c PM_CheckDuck, was a merging screup on my side
-	* updated setup to 1.27z, removed the .so from the setup distribution (they were in 1.27g because of issues)
-	  FIXME: gotta get pk3's first
-
-2001-05-04  Timothee Besset <ttimo at idsoftware.com>
-
-	* fixes to gcc, building RC for 1.27s
-
-2001-05-01  Timothee Besset <ttimo at idsoftware.com>
-
-	* added qcommon/huffman.c to the Makefile
-	* gcc -Wall:
-	commenting out 
-	  CL_Netchan_Encode CL_Netchan_Decode (cl_net_chan.c)
-	  Netchan_ScramblePacket Netchan_UnScramblePacket (net_chan.c)
-	  SV_Netchan_Encode SV_Netchan_Decode (sv_net_chan.c)
-
-2001-04-26  Timothee Besset <ttimo at idsoftware.com>
-
-	* fixed dedicated server crash when entering the VM_COMPILED qagame on a mod (some statics lacked initialization)
-
-2001-04-25  Timothee Besset <ttimo at idsoftware.com>
-
-	* added $(Q3POBJ) to clean target (cleanup of platform-dependent objects)
-	* more make clean improvements
-
-2001-04-23  Timothee Besset <ttimo at idsoftware.com>
-
-	* cleanup the mod selection code, remove duplicates
-	* some issues with release builds, my main developement box doesn't build stable binaries with release settings
-	  removing -fomit-frame-pointer seems to fix (there's probably a performance hit)
-	  see OMIT-FRAME-POINTER.txt
-
-2001-04-13  Timothee Besset <ttimo at idsoftware.com>
-
-	* checked in a first set of merged files
-
-2001-04-06  Timothee Besset <ttimo at idsoftware.com>
-
-	* merged back the core linux parts to make 1.27g linux build from the Source Safe tree again
-
-2001-02-27  Bernd Kreimeier  <bk at lokigames.com>
-
-	* CVS: tag with changes as of today
-	  cvs tag id1-27j-loki01027
-
-	* code/qcommon/msg.c: numFields loop (SOS).
-	* code/qcommon/files.c: ue Q_stricmp (SOS uses stricmp, was strcmp).
-	* code/game/q_shared.h (Q3_VERSION): 1.27j. Also
-	MAX_STRING_TOKENS upped from 256 to 1024 (SOS).
-
-	* code/server/sv_snapshot.c (SV_AddEntitiesVisibleFromPoint): see below.
-	* code/game/g_public.h (SVF_NOTSINGLECLIENT): added (SOS).
-
-	* code/server/sv_ccmds.c: see below.
-	* code/game/g_main.c: g_gametype cvar now userinfo (SOS).
-
-	* code/game/g_active.c (SendPendingPredictableEvents): new (SOS).
-	* code/game/bg_misc.c: new SOS (sos010227)
-
-	* SOS: new update sos010227.
-	
-2001-02-22  Bernd Kreimeier  <bk at lokigames.com>
-
-	* CVS: now in sync with last SOS and cleanup up
- 	  cvs tag id1-27i-loki01022
-	
-	* code/ui/ui_shared.c: below.
-	* code/ui/ui_main.c: leftover code!
-	* code/server/sv_world.c: below.
-	* code/server/sv_snapshot.c: below.
-	* code/server/sv_init.c: below.
-	* code/server/sv_game.c: below.
-	* code/server/sv_client.c: below.
-	* code/server/sv_ccmds.c: below.
-	* code/server/sv_bot.c: below.
-	* code/server/server.h: below.
-	* code/renderer/tr_surface.c: below. 
-	* code/renderer/tr_shader.c: changed assert to early return.
-	* code/renderer/tr_shade_calc.c: below.
-	* code/renderer/tr_shade.c: below.
-	* code/renderer/tr_scene.c: below.
-	* code/renderer/tr_mesh.c: below.
-	* code/renderer/tr_local.h: below.
-	* code/qcommon/vm_x86.c: cleanup.
-	* code/qcommon/vm.c: below.
-	* code/qcommon/unzip.c: below.
-	* code/qcommon/qcommon.h: below.
-	* code/qcommon/files.c: below.
-	* code/qcommon/cvar.c: cleanup.
-
-2001-02-21  Bernd Kreimeier  <bk at lokigames.com>
-
-	* code/qcommon/common.c: cleanup.
-	* code/qcommon/cm_trace.c: cleanup.
-	* code/qcommon/cm_patch.c: cleanup.
-	* code/qcommon/cm_public.h: cleanup.
-	* code/game/q_shared.h: cleanup.
-	* code/game/q_shared.c: cleanup.
-	* code/game/q_math.c: cleanup.
-	* code/game/g_syscalls.asm: changed (once more) floor,ceil etc.
-	* code/game/g_spawn.c: cleanup.
-	* code/game/g_session.c: cleanup.
-	* code/game/g_cmds.c: cleanup.
-	* code/game/g_client.c: cleanup.
-	* code/game/g_arenas.c: cleanup.
-	* code/game/bg_slidemove.c: cleanup.
-	* code/game/bg_pmove.c (PM_CheckDuck): old call to trace?
-	* code/game/bg_misc.c: cleanup.
-	* code/game/be_aas.h: dead code.
-	* code/game/ai_dmq3.c: cleanup. One clear/copy switched?
-	* code/game/ai_dmnet.c: more //*/. Why oh why not DEBUG....
-
-	* code/client/snd_mix.c: below.
-	* code/client/snd_dma.c: below.
-	* code/client/keys.h: cleanup.
-	TODO: #error in q3_ui/keycodes.h ?
-
-	* code/client/client.h: cleanup.
-	* code/client/cl_main.c: misplaced bracket. Cleanup.
-	* code/client/cl_keys.c: below.
-	* code/client/cl_cin.c: below.
-	* code/client/cl_cgame.c: cleanup.
-	TODO: define assert for Win32 or guard my assertions.
-
-	* code/cgame/cg_syscalls.c: below.
-	* code/cgame/cg_servercmds.c: below.
-	* code/cgame/cg_players.c: cleanup.
-
-	* code/cgame/cg_newdraw.c: remember to diff against cg_newDraw.c
-	in SOS (mixed case).
-	TODO: get id to use cg_newdraw.c, and to remove cg_newDraw.c/cpp.
-
-	* code/cgame/cg_main.c: below.
-	* code/cgame/cg_local.h: below.
-	* code/cgame/cg_event.c: below.
-	* code/cgame/cg_drawtools.c: below.
-	* code/cgame/cg_draw.c: cleanup.
-	* code/cgame/cg_consolecmds.c: dead code.
-	* code/bspc/qbsp.h: below.
-	* code/bspc/l_poly.c: below. 
-	* code/bspc/l_math.c: cleanup.
-	* code/bspc/bspc.c: cleanup.
-	* code/bspc/be_aas_bspc.c: cleanup. 
-	* code/bspc/aas_map.c: kept comments - merge loss at their end?
-	* code/bspc/aas_file.c: cleanup. 
-
-	* code/botlib/be_interface.c: this file is plain impossible. There
-	are layers of code made dead with /* */ and the resurrected by
-	//* or // /* or variations of this. I reverted to exact mirror
-	image of SOS to be sure - short of removing it's too easy to mistake 
-	live code for dead one.
-	Later: have to change 5 occurences to avoid gcc complaints about
-	nested comment tokens.
-	TODO: somebody please get rid of the cruft in here.
-
-	* code/botlib/be_ai_move.c: redundant typedef.
-	* code/botlib/be_ai_chat.c: assertions on signed string index.
-	Note: this is not in my ChangeLog - ouch.
-	TODO: use  gcc -fsigned-char on all platsforms to enforce Win32
-	TODO  behavior (PPC has a default unsigned char, Intel has not).
-	* code/botlib/be_aas_sample.c (AAS_TraceClientBBox): one code block
-	was placed in different location, and one FPE hack not used. I would
-	expect that divide by zero will still occur here.
-
-	* code/botlib/be_aas_reach.c: below. 
-	* code/botlib/be_aas_cluster.c: cleanup. 
-	* CVS: the last tag (below) marks the version with a lot of history
-	and additional comments. I am now bringing the codebase in sync with
-	SOS as of yesterday, cleaning out comments, dead code and other
-	differences to minimize a diff - in a valiant if futile attempt to
-	roll back changes into the id codebase.
-	Note: I ignore the $SOS$ - these are unfortunate but will change
-	in the same awkward way at their end.
-	Note: I stick to #if 0 instead of C comments around dead code id
-	kept (nested comments issue). The commentary is changed to sosYYMMDD
-	and includes the token DEAD.
-
-2001-02-20  Bernd Kreimeier  <bk at lokigames.com>
-
-	* CVS: update, then tag current version as
-	 cvs tag id1-27i-loki010219
-
-	* SOS: patched up to sos010219.
-
-	* code/qcommon/cm_trace.c (CM_Trace): fabs on sphere offsets (SOS).
-	* code/game/bg_slidemove.c (PM_StepSlideMove): stepSize vs. STEPSIZE (SOS).
-	* code/game/bg_pmove.c (PM_CheckDuck): fix in stand up check (SOS).
-	* code/bspc/bspc.c (main): -capsule (SOS).
-	* code/bspc/qbsp.h: below (SOS).
-	* code/bspc/be_aas_bspc.c (capsule_collision): added (SOS).
-	* code/bspc/aas_map.c (CapsuleOriginDistanceFromPlane): added and used (SOS).
-	* code/bspc/aas_file.c (AAS_WriteAASFile): removed diagnostics recently
-	added. No matter how long you wait, they'll always get you ;-).
-	* code/botlib/be_aas_cluster.c: enabled LogWrites, different flood (SOS).
-
-	* SOS: patching up to snapshot sos010219. 
-	Note: For brevity, I use as marker sosYYMMDD now instead of bkYYMMDD, to 
-	distinguish from changes not in SOS.
-
-	*  CVS: tagged current version before patching up with SOS.
-         cvs tag id1-27i-loki010216-bsd
-
-2001-02-16  Bernd Kreimeier  <bk at lokigames.com>
-
-	* code/server/sv_init.c: DLL_ONLY sets sv_pure to 0 and ROM.
-	TODO: determine good sv_pure policy for DLL-only servers.
-
-	* code/renderer/tr_shade_calc.c: my_ftol implementation (BSD).
-
-	* code/unix/Makefile: FreeBSD sections.
-	TODO: include target-specific Make-freebsd etc.,
-	include a Make-local not in CVS for build preferences,
-	and generally clean up this mess.
-	* code/unix/unix_glw.h: guard #error
-	* code/unix/linux_snd.c: soundcard.h location (BSD).
-	* code/unix/linux_glimp.c: guard system headers.
-	Later: added Joystick stubs.
-	Note: linux_ etc. prefixes start to loose meaning as we
-	re-use most of this on UNIXes anyway. I didn't use Raf's
-	freebsd_joystick.c but instead put generic stubs here.
-	TODO: introduce generic -DNO_JOYSTICK flag.
-	* code/renderer/tr_local.h: my_ftol guard.
-	* code/renderer/qgl.h: FreeBSD guards.
-	* code/qcommon/vm_x86.c: sys/types include on FreeBSD.
-	* code/qcommon/md4.c: Win32 pragma guard.
-	* code/qcommon/common.c: Com_Memcpy/Memset external.
-	* code/game/q_shared.h: added FreeBSD defines. 
-	* code/game/q_math.c (BoxOnPlaneSide): FreeBSD conditional.
-	TODO: check whether we have/need the assembly version anyway.
-	* code/client/snd_mix.c: use C fallback on FreeBSD.
-	Note: all of the above changes from the original port by Rafael Barrero.
-
-	* CVS: tagged current version before merging FreeBSD related changes.
-         cvs tag id1-27i-loki010215-ppc
-
-2001-02-15  Bernd Kreimeier  <bk at lokigames.com>
-
-	* code/unix/Makefile: BSD related changes.
-	* code/cgame/cg_draw.c: hacked phone jack rendering check for Debug.
-	TODO: finish Debug, fix CG_DrawDisconnect !!!
-
-	* code/unix/vm_x86.c: error on compile attempts. Fight redundancy!
-	* code/qcommon/vm_x86.c (VM_CallCompiled): dummy for linkage on PPC.
-	Note: DLL_ONLY is the global Makefile option for DLL-only builts.
-	Currently only executed on Linux.
-	* code/unix/unix_main.c: *ppc postfix for DLLs. Ignored the changes
-	to redundant code (have to remove the unused Un/LoadDll/API calls).
-	* code/server/sv_game.c (VMA): changed macro (see below). PPC.
-	* code/qcommon/vm.c (VM_DllSyscall): see lengthy commentary by Ryan.
-	The existing VM code makes certain assumptions about the layout of
-	varargs on the stack, which fall apart with call conventions that
-	don't even put all parameters on the stack (gcc on PPC, register-rich).
-	Using a dedicated memory area as our own stack. This should actually
-	be the default behavior.
-	Later: make vm_* cvars INIT/ROM for DLL_ONLY target.
-
-	* code/qcommon/common.c: PPC change (from Ryan Gordon).
-
-2001-02-07  Bernd Kreimeier  <bk at lokigames.com>
-
-	* code/unix/unix_main.c: disabled FPE for debug for the time
-	being (that is, until I can figure out
-          Program received signal SIGFPE, Arithmetic exception.
-          RB_BeginSurface (shader=0x449572e0, fogNum=0) at ..//renderer/tr_shade.c:307
-          307 tess.shaderTime = backEnd.refdef.floatTime - tess.shader->timeOffset;
-        without any NaN's involved.
-	TODO: unmask other FPE's selectively (see Mike's Tribes2, no getenv though).
-
-2001-02-06  Bernd Kreimeier  <bk at lokigames.com>
-
-	* SOS: up to date with todays snapshot.
-	Note: got the date wrong, comment used was bk010205. Duh.
-
-	* code/server/sv_snapshot.c (SV_UpdateServerCommandsToClient): below. 
-	* code/server/sv_main.c (SV_ReplacePendingServerCommands): new (SOS).
-	* code/server/server.h: reliableSent (SOS).
-
-	* code/renderer/tr_shade.c (ProjectDlightTexture): see below.
-	* code/renderer/tr_scene.c: see below.
-	* code/renderer/tr_public.h: see below (SOS).
-	* code/renderer/tr_local.h: additive light support (SOS).
-
-	* code/qcommon/cm_trace.c (CM_Trace): new tw.sphere.use branch (SOS).
-
-	* code/game/g_spawn.c: notta, notq3a entities (SOS).
-	* code/game/ai_dmq3.c: MAX_ACTIVATEAREAS search (SOS).
-	
-	* code/client/cl_cgame.c: see below.
-	* code/cgame/cg_syscalls.c (trap_R_AddAdditiveLightToScene): below.
-	* code/cgame/cg_syscalls.asm: see below (trap_R_AddAdditiveLightToScene).
-	* code/cgame/cg_public.h: CG_R_ADDADDITIVELIGHTTOSCENE (SOS).
-	
-	* code/bspc/l_math.c: new VectorLengthSquared, removed rotate/matrix (SOS).
-	* code/bspc/bspc.c (BSPC_VERSION): was 2.1e, now?
-	* code/bspc/be_aas_bspc.c (BotImport_Trace): CM_BoxTrace sig. (SOS).
-	* code/bspc/aas_file.c (AAS_WriteAASFile): SOS.
-	* code/botlib/be_aas_sample.c (AAS_DeAllocAASLink): SOS.
-
-	* code/unix/unix_main.c (Sys_LoadDll): do not load from installdir
-	in NDEBUG (confusing relic from old Makefile). Postfix -debug.so
-	for debug binaries to let both builds coexist.
-
-	* code/unix/Makefile: updated install targets and VERSION.
-
-	* Win32: build from SOS snapshot.
-	Note: Unix CR/LF in *.dsw/*.dsp fucks up MSVC++.
-
-2001-02-02  Bernd Kreimeier  <bk at lokigames.com>
-
-	* SOS: all changes up to today.
-
-	* code/server/sv_init.c (SV_TouchCGame): added. Also memset
-	on reallocated client data (SOS).
-	* code/qcommon/qcommon.h: see below.
-	* code/qcommon/cvar.c (Cvar_SetLatched): new (SOS).
-	* code/qcommon/cm_trace.c: more sphere test fixes (SOS).
-	Note: SOS encryption key expired and updated by MrElusive.
-
-	* code/qcommon/cm_patch.c (CM_TraceThroughPatchCollide): 
-	fix from MrElusive, fall through curved corner floors (q3dm17).
-	Later: also in SOS (so is shadow FPE fix).
-
-	* Win32: can't get an unadulterated SOS snapshot to build.
-	First, fix CR/LF back again (Linux client converts all).
-	 find . -name '*.ds*' -print
-	 alias dos2unix='recode ibmpc..lat1' 
-	 alias unix2dos='recode lat1..ibmpc'
-        Next, find a *.dws that works? Nope, no cigar.
-	
-2001-02-01  Bernd Kreimeier  <bk at lokigames.com>
-
-	* Win32: have to update dsp/dsw/etc. files in CVS, too.
-
-	* CVS: tag previous version before update
-         cvs tag id1-27h-loki010131-beta3
-
-	* code/game/q_math.c (Q_rsqrt): guard, #ifndef __linux__ 
-	for assert (for Win32 build).
-	TODO: assert replacement for Win32?
-	* code/q3_ui/ui_qmenu.c: see below.
-	* code/q3_ui/ui_players.c: see below.
-	* code/q3_ui/ui_controls2.c: float const with f postfix
-	Note: Win32 C4305 warning. Somebody at id has been doing
-	a lot of these recently as well...
-
-	* code/cgame/cg_players.c (CG_PlayerShadow): applied fix by 
-	MrElusive, removed FPE hack (player shadows on zero mormals).
-	Prolly in this evenings' CVS.
-
-	* code/server/sv_game.c: new signatures (capsule again).
-	* code/server/server.h: new signatures (SV_Trace,ClipToEntity).
-	* code/server/sv_bot.c: new signatures (above).
-	* code/qcommon/cm_trace.c: a truckload of changes. Math
-	code added before moved upwards. Capsule traces added all
-	over the place, old box traces moved in conditional
-	branches, functions renamed and wrapped. Eliminated some
-	of the previous' versions deadcode to keep diffs smaller.
-	TODO: once a point release is out and reasonably bug
-	TODO  free, remove // bkYYMMDD annotations where SOS related.
-
-	* code/qcommon/cm_public.h: new signatures in prototypes.
-	* code/qcommon/cm_patch.c: dead code re-enabled, new
-	sections (conditional branches for spheres) added to 
-	several trace functions.
-	* code/qcommon/cm_local.h (CAPSULE_MODEL_HANDLE): added.
-	* code/qcommon/cm_load.c (CM_TempBoxModel): capsules.
-
-	* code/game/q_shared.h (Q3_VERSION): 1.27i now (new QVM traps).
-
-	* code/game/g_syscalls.asm: see below.
-	* code/game/g_public.h (SVF_CAPSULE): added (SOS). Also
-	G_ entry poiints for capsule traces.
-
-	* code/client/cl_cgame.c: see below.
-	* code/cgame/cg_syscalls.c: see below.
-	* code/cgame/cg_syscalls.asm: see below.
-	* code/cgame/cg_public.h: new capsule trace code (SOS).
-
-2001-01-31  Bernd Kreimeier  <bk at lokigames.com>
-
-	* Win32: test compile (WinCVS, MSVC++). Have to guard isnan.
-	Note: too much shit going on....
-
-2001-01-30  Bernd Kreimeier  <bk at lokigames.com>
-
-	* CVS: update for patching up (pre-1.27i).
-
-	* SOS: new changes (new collision detection primitives).
-	Now Version 1.27i. 
-	TODO: start testing using DLL's (QVM code is out of sync).
-
-2001-01-25  Bernd Kreimeier  <bk at lokigames.com>
-
-	* SOS: caught up till today (below).
-	* code/qcommon/cm_trace.c: new functions added: RotatePoint,	
-	TransposeMatrix, CreateRotationMatrix (SOS).
-	(CM_TransformedBoxTrace): new rotation code used here.
-
-	* code/q3_ui/ui_demo2.c: sizeof(extension). SOS.
-	* code/game/g_cmds.c (G_SayTo): CON_CONNECTED.
-	* code/game/ai_main.c: HOOK added (SOS).
-	* code/botlib/be_aas_move.c (AAS_HorizontalVelocityForJump): 
-	correct fix for FPE occuring (SOS).
-	* code/game/ai_dmq3.c: initmove.viewoffset (SOS).
-
-	* code/game/q_math.c: guard asser/isnan with Q3_VM (q3asm).
-	TODO: define Com_Error based assert macro? NDEBUG?
-
-2001-01-24  Bernd Kreimeier  <bk at lokigames.com>
-
-	* code/server/sv_ccmds.c (SV_MapRestart_f): some debug.
-	TODO: map_restart 0 disconnects external client in 1.27h?
-
-	* code/renderer/tr_image.c (LoadTGA): added some commentary 
-	and dead code based on fixes from GtkRadiant (Leonardo found
-	flipped TGA's).
-
-2001-01-23  Bernd Kreimeier  <bk at lokigames.com>
-
-	* BETA3: finished testing, ready to upload to id FTP.
-	Later: neither the FreeBSD beta not the Linux Beta3
-	uloaded. Beta2 not yet released, and clients get
-	disconnected with Beta2 and Beta3 on SV_MapRestart_f.
-
-2001-01-22  Bernd Kreimeier  <bk at lokigames.com>
-
-	* code/client/cl_main.c (CL_InitDownloads): undid yesterday (SOS).
-	* code/botlib/be_aas_sample.c (AAS_DeAllocAASLink): guard print (SOS).
-	* code/server/sv_client.c (SV_DirectConnect): VM_Call disconnect (SOS).
-	* code/qcommon/files.c (FS_ListFilteredFiles): trailing slashes (SOS).
-	* code/game/g_cmds.c (SetTeam): print change (SOS).
-	Note: the above plus VectorClear(v1) (below) are todays SOS changes.
-
-	* code/cgame/cg_players.c (CG_PlayerShadow): ignore bogus 
-	(all zero) planes. This caused FPE in ProjectPointOnPlane.
-	TODO: why does trace return zero normal planes?
-	Note: gdb seems totally at loss with vec3_t arrays....
-
-	* code/botlib/be_aas_sample.c (AAS_TraceAreas): FPE.
-	NaN in uninitialized v1 that wasn't supposed to be referred 
-	to in this branch. 
-
-	* code/botlib/be_aas_move.c (AAS_HorizontalVelocityForJump): 
-	FPE divide by zero (zero zvel, zero t) for jump estimates.
-
-	* code/client/cl_main.c (CL_Frame):1856. uivm==NULL on
-	client after server crashed.
-	TODO: check that uivm always non-NULL for client.
-	TODO: do setenv(FX_NO_SIGNALS) to avoid exit errors...
-
-	* code/unix/linux_glimp.c (GLW_SetMode): added "Indirect"
-	Mesa token to software rendering detection. Reworded error
-	output and added drivername.
-	TODO: measure framerate instead?
-
-2001-01-21  Bernd Kreimeier  <bk at lokigames.com>
-
-	* SOS: caught up with changes up until today. 
-
-	* code/server/sv_init.c (SV_SetConfigstring): gentity != NULL 
-
-	* code/server/sv_client.c: connect to "{all bots" server.
-	* code/renderer/tr_init.c: JPEG extension on  screenshots
-	* code/qcommon/files.c: modes based on mods, fs_basegame
-
-	* code/q3_ui/ui_demo2.c: dm3 extension (demo names, protocol).
-
-	* code/game/g_client.c: savedEvents[] removed.
-	* code/game/bg_misc.c: event sequence fixes.
-	* code/client/snd_dma.c (S_StopBackgroundTrack): different use.	
-	* code/client/cl_main.c: demo file handling changed (names).
-	Also CL_InitDownloads: always next download.
-
-	* code/cgame/cg_servercmds.c: cg_thirdPerson.
-	* code/cgame/cg_weapons.c: see below.
-	Also CG_ShotgunPattern: different call (seed parameter).
-
-	* code/cgame/cg_main.c: see below.
-	* code/cgame/cg_local.h: new cg_noProjectileTrail Cvar.
-	* code/cgame/cg_effects.c (CG_BubbleTrail): early out (above).
-
-	* code/bspc/l_poly.c (BOGUS_RANGE): increased.
-	* code/bspc/bspc.c: applied patch up to "2.1e"
-
-2001-01-18  Bernd Kreimeier  <bk at lokigames.com>
-
-	* code/ui/ui_main.c: below.
-	* code/q3_ui/ui_main.c: UI_HASUNIQUECDKEY comment.
-	Note: mods have to return qfalse. See Bug #2890 in Fenris.
-
-2001-01-17  Bernd Kreimeier  <bk at lokigames.com>
-	
-	* BETA2: finished testing, uploaded to id's FTP for release.
-	
-2001-01-16  Bernd Kreimeier  <bk at lokigames.com>
-
-	* CVS: checking in preparation for Beta2.
-         cvs tag id1-27h-loki010116-beta2
-
-	* SOS: new bspc "2.1e". No change on 1.27h.
-
-	* TEST: patch-up seems to work fine. No new files have been added
-	to the linkage (i.e. the ft2/ files now added), so we might not be
-	feature complete.
-
-	* code/game/g_active.c (ClientThink_real): id MISSIONPACK
-	conditional in addition to the ones I added earlier.
-	* code/qcommon/files.c: REJECT. Linux hack for userdir threw it off.
-	* code/qcommon/unzip.c: REJECT. CRC-32 section removed.
-	Later: unused tempB
-
-	* code/q3_ui/ui_syscalls.asm: REJECT. Start/StopBackgroundTrack.
-	* code/ui/ui_syscalls.asm: REJECT. syscalls ids from 1.27h 
-	as of SOS (floor/ceil - will this ever get straightened out)
-	* code/win32/win_input.c: REJECT. g_pMouse edit.
-	* ui/menus.txt: REJECT. Replaced with 1.27h version.
-        Note: some more due to $SOS$.
-	
-	* ui/: new scripts.
-	cinematicmenu.menu, demo_quit.menu, ingame.txt, serverinfo_old.menu
-        vid_restart.menu
-
-	* code/ft2/ttconfig.h: below.
-	* code/ft2/sfconfig.h: below.
-	* code/ft2/pstables.h: below.
-	* code/ft2/psnames.c: below.
-	* code/ft2/psdriver.h/c: below. 
-	* code/ft2/keys.h: below. 
-	* code/ft2/ftbbox.c: new in 1.27h
-	
-	* code/cgame/cg_newdraw.c: beware: cg_newDraw.c gets lost in diff easily.
-
-	* code/cgame/cg_rankings.c: file removed from SOS.
-	
-2001-01-15  Bernd Kreimeier  <bk at lokigames.com>
-
-	* Patch-up: patching up from RC4 to 1.27h current.
-	No changes since 010112 snapshot.
-	ln -s sos010112/ work
- 	diff -urbB sos001204-rc4/ work > work.diff
- 	ln -s cvs-1.27g/ work
- 	patch -p0 < work.diff  > work.patch
- 	find cvs1.27g/ -name '*.rej' -print
-
-	* SOS: adding the remaining SOS snapshots to CVS.
-         cvs import Quake3_sos sos001211 pr1-27g-win32-001211
-	Note: at this point id warned about repository corruption.
-	Watch out for the syscall stuff in particular.
-	 cvs import Quake3_sos sos010104 pr1-27g-win32-010104
-	 cvs import Quake3_sos sos010108 pr1-27h-win32-010108
-         cvs import Quake3_sos sos010110 pr1-27h-win32-010110
-	 cvs import Quake3_sos sos010112 pr1-27h-win32-010112
-	Note: the first 1.27h might be the public (server only) 
-	beta released, the second one was post release. Beware
-	of source files added and removed (botlib headers, FT2).
-	Note: why so late? Don't ask...
-
-2001-01-08  Bernd Kreimeier  <bk at lokigames.com>
-
-	* SOS: id's working up to 1.27h (server side fix for
-	Guard exploit seems to force earlier release). Updating
-	CVS (most of the changes are debug code put in and
-	then disabled, plus some fixes as below). Next patching
-	up to current SOS.
-
-2001-01-07  Bernd Kreimeier  <bk at lokigames.com>
-
-	* Makefile: need to rework this for multiple platforms.
-	We also need null/null_vm.c for platforms where we don't
-	have JIT (assembly emit).
-
-2001-01-04  Bernd Kreimeier  <bk at lokigames.com>
-
-	* code/q3_ui/ui_connect.c (UI_DisplayDownloadInfo): time
-	information for current (vs. start of download) is wrong,
-	thus negative 1 "estimated time", as well as transfer
-	rate just negative downloadSize. Not fixed.
-	
-	* code/unix/unix_main.c (Sys_ParseArgs): added.
-	Note: for support/us, to identify builts. This is only
-	a skeleton right now - if I ever feel the need to support
-	more than "-v" and "--version" I'll have to flesh this out.
-
-	* code/unix/linux_glimp.c (signal_handler): see below.
-	* code/unix/unix_main.c (Sys_Exit): added an abstraction
-	layer for exit/_exit/assert/raise issues.
-	Note: need both a better debug/backtrace handling, and
-	have to find a way to determine why/where the alleged
-	startup/exit errors happen...
-
-2001-01-03  Bernd Kreimeier  <bk at lokigames.com>
-
-	* code/game/g_mem.c (G_Alloc): ERR_DROP initiated by
-	addbot commands for large sv_maxclients, allegedly
-	caused segfaults in 1.17. Not reproducible.
-	TODO: recover more gracefully from failure to add bot?
-
-	* code/renderer/tr_light.c (R_LightForPoint): Tim Angus
-	reports a crashbug with nolight maps. Also assertion in
-	R_SetupEntityLightingGrid, might want conditional there.
-	DONE: fixed crash on LightForPoint for nolight maps.
-
-	* code/qcommon/qcommon.h: NUM_SERVER_PORTS. A feature 
-	request to increase this, or make it more flexible
-	otherwise (Fenris).
-	TODO: id decision on more flexible NUM_SERVER_PORTS.
-
-2001-01-02  Bernd Kreimeier  <bk at lokigames.com>
-
-	* code/unix/snapvector.nasm: fixed FPU bit (the current
-	one had reserved bits off, behavior should not change).
-	* code/qcommon/vm_x86.c: fixed symbols (below).
-	* code/unix/ftol.nasm: FPU bits weren't correct (duh).
-	DONE: shoot-though floor (q3dm5)
-	DONE: cursor-in-rect off  (TA/Player model selection)
-	Note: in gdb, "disassemble <funcname>" is your friend.
-
-	* code/cgame/cg_public.h:  CG_MEMSET is set to 100. In
-	cg_syscalls.asm it's 101. If I change it I get Bad trap 100
-	from the cgame VM code, so the 1.27g "official" VM code
-	uses it.
-
-	* code/unix/linux_common.c: have to fall back to C, the
-	current assembly is buggy...
-	* code/unix/Makefile (linux_common.o): added.
-	Later: also for dedicated. Less portable this way.
-	TODO: C_ONLY for dedicated on non-i386 only?
-
-	* code/qcommon/common.c: do not use memcpy/memset under Linux.
-	* code/unix/linux_common.c: added Andrew's assembly port.
-	TODO: C_ONLY for Com_Memset/Memcpy? Conditionals are fubared.
-
-	* code/qcommon/vm.c (VM_Init): use Win32 defaults (do not
-	use DLL's by default). This exposes DLL rounding errors
-	(damage through floors), and we don't want DLL's used by
-	default anyway.
-	TODO: why vm_ui default of 1?
-
-	* code/botlib/l_precomp.c (SourceWarning): removed assert.
-
-	* code/game/bg_lib.c (acos): defined, but we don't actually
-	use it except where the cg_syscalls.asm trap is used.
-
-	* code/game/g_public.h: missing lots of trap tokens.
-	* code/game/g_syscalls.c: missing lots of traps.
-	* code/game/g_syscalls.asm: more inconsistent hooks, were:
-	 equ floor					-111
-         equ ceil					-112
-	 equ testPrintInt			        -113
-         equ testPrintFloat			        -114
-	now changed to match cg_syscalls.
-	Note: fixed this in UI earlier, how did this slip through 
-	the diffs against SOS?
-	
-	* code/game/g_syscalls.c: no acos hook.
-	* code/cgame/cg_syscalls.c: no acos hook.
-	* code/cgame/cg_syscalls.asm: has acos hook as -112
-	Note: report from Tim Angus. The acos function is in bg_lib.c
-	which is linked only into ui (not q3_ui). That means we are
-	using libc acos right now?
-	Note: QVM traps are negative?
-
-	* BSD/Irix: tagged current CVS (not all of the below) as
-	 cvs tag id1-27g-loki010102-bsd1
-	for BSD work (Rafael Barrero). Also be used for Irix update.
-
-2001-01-01  Bernd Kreimeier  <bk at lokigames.com>
-
-	* SOS: adding the remaining SOS snapshots to CVS.
-         cvs import Quake3_sos sos001201-rc3 pr1-27f-win32-001201-rc3
-         cvs import Quake3_sos sos001202 pr1-27f-win32-001202
-         cvs import Quake3_sos sos001204 pr1-27g-win32-001204-rc4
-	This is the codebase to which the Linux branch has been patched
-	up. I can't verify whether this is identical to the RC4 codebase
-	as the tag doesn't work (but can check against the ZIP file..)
-	 cvs import Quake3_sos sos001211 pr1-27g-win32-001211
-	The above snapshot contains a (post-release?) fix to ui_syscalls
-	in ui/ and q3_ui/. This change has been used in Linux (Beta1 and
-	above). At this point, id discouraged further use of SOS due to
-	repository corruption on their end. No further snapshots were
-	taken since.
-
-	* Fenris: since the release of the Beta1 bugs have been
-	maintained at http://fenris.lokigames.com/. I am going to
-	list issues here as they get fixed.
-	
-2000-12-21  Bernd Kreimeier  <bk at lokigames.com>
-
-	* code/renderer/tr_font.c: graceful silence with old mods?
-	* code/botlib/l_precomp.c (SourceWarning): graceful exit if old mod?
-
-2000-12-20  Bernd Kreimeier  <bk at lokigames.com>
-	
-	* code/server/sv_ccmds.c (SV_MapRestart_f): see below.
-	* code/qcommon/vm.c: currentVM is 0x0 in VM_ArgPtr.
-	In VM_Call, oldVM was NULL - made conditional the
-	reset of currentVM to oldVM.
-
-2000-12-18  Bernd Kreimeier  <bk at lokigames.com>
-
-	* BETA1: closed Linux beta release. Stripped debug
-	and release binaries, DLL's, and pak4.pk3. CVS checkin,
-	will be tagged as 
-            cvs tag id1-27g-loki001218-beta1
-	Later: id added a pak5.pk3 to the Win32 point release,
-	added this to the BETA1 best.
-
-	* code/qcommon/vm_x86.c: C37F.
-	* code/unix/snapvector.nasm: C37F.
-	Note: short of any real evidence, I gamble and use max. 
-	precision (as well as default Linux precision, but NOT 
-	Win32 precision). It seems that precision change is not 
-	really an issue (despite Graeme's claim that the cursor
-	in the menu was/is off). I also pick the roundiung behavior
-	that is seemingly used by ANSI and gcc (but possibly not
-	Win32 _ftol depending on build).
-
-2000-12-15  Bernd Kreimeier  <bk at lokigames.com>
-
-	* code/unix/Makefile: added snapvector.o
-	* code/unix/unix_shared.c: #if 0'ed the old snapvector code.
-	* code/unix/snapvector.nasm (Sys_SnapVectorCW): two new
-	assembly functions from AndrewH that explicitely set the 
-	FPU control word to convert vec3_t, to ensure cross-platform 
-	behavior for both DLL and QVM.
-
-	* code/unix/ftol.nasm (Q_ftolC37F): for globals. 
-
-	* code/unix/unix_main.c: took out global FPU manipulation.
-	For clarity this should be VM only.
-	* code/qcommon/vm_x86.c: added prototypes for the ftol
-	library. To select a specific behavior for the entire VM,
-	set ftolPtr accordingly.
-	Later: the GCC ftol function of course affect the stack
-	(there is no "declspec naked"). The problem seems to be 
-	that the VM never handles the stack in a way compatible 
-	to regular gcc C functions. For some odd reason _ftol seems 
-	to do the right thing under Win32. All 4 control words 
-	implemented at the moment work just fine with the menus.
-
-	* code/unix/ftol.nasm: added a small library of "safe" qftol
-	variations that explicitely set the control word to the
-	relevant (4) possibilities.
-
-2000-12-13  Bernd Kreimeier  <bk at lokigames.com>
-
-	* code/qcommon/vm_x86.c: an entire day spent trying to nail
-	the ftol issues. It breaks down like this: id used to use
-	an unsafe (no setting FPU control word) fistp. That seemingly
-	caused subtle physics bugs which nobody cared about in 1.17.
-	They then changed the UI code, and ran into the UI bugs:
-	menu entries shifted to the right, fonts vanishing. Then
-	they switched to using _ftol. Then they had to reproduce 
-	the old behavior for the physics code due to public outrage.
-	My original port used a simple (long)float cast, which gcc
-	seemingly compiles to code that does OR 0C00 on whatever
-	current control word (precision unchanged). This breaks the
-	menus. If I use the unprotected fistp instead, which should
-	(Linux 037F default) use "nearest/even", then my menus are
-	correct. That would mean Win32 _ftol in id's compile does
-	the same, only that would require /qifist or some equivalent
-	compile flag, which I can't find. Two disassemblies of _ftol
-	I got from others showed OR 0C00 as part of the default (ANSI)
-	behavior.
-
-2000-12-13  Bernd Kreimeier  <bk at lokigames.com>
-
-	* code/game/bg_pmove.c (PmoveSingle): trap_SnapVector.
-	The one true and single call to snap velocity.
-	Note: bspc/map.c:void SnapVector(vec3_t normal)
-        qcommon/cm_patch.c:void CM_SnapVector(vec3_t normal)
-	game/q_shared.h: #define SnapVector(v) {v[0]=((int)(v[0]));...
-
-	* code/client/cl_cgame.c: CG_SNAPVECTOR. 
-	* code/server/sv_game.c:  G_SNAPVECTOR.
-	Note: these go through trap_SnapVector in syscalls.
-
-	* code/unix/unix_shared.c (Sys_SnapVector): sticking to
-	old Linux version for now...
-	* code/win32/win_shared.c (Sys_SnapVector): changed.
-	Note: Graeme points out this was changed to fix ftol
-	artifacts?
-	TODO: calculate errors for various ftol variants...
-
-	* code/qcommon/vm_x86.c: both the old fistp code (1.17)
-	and the new qftol function apparatently work. Using the
-	ftol.nasm code for now.
-
-	* code/unix/Makefile: DO_NASM and ftol.o. 
-
-	* code/unix/ftol.nasm (qftol): created from Mike's SoF
-	replacements, with Andrew's help to satify the VM
-	stack/call requirements.
-	TODO: use Q_ftol herein to replace myftol elsewhere.
-
-	* code/unix/unix_main.c (Sys_ConfigureFPU): SIGFPE. 
-	TODO: divide by zero in botlib. Disable this for now.
-	Note: we can't introduce calculation differences between
-	versions, so fixing these will have to wait.
-
-	* code/qcommon/vm_x86.c: two new lines in Win32 branch 
-	missing from Linux assembly in AsmCall:
-	 mov eax, dword ptr [edi] 
-	 and eax, [callMask]      
-        Added, doesn't seem to affect UI etc. bugs.
-	Later: no FTOL_PTR, use fistp non-IEEE assembly as in old
-	version. This seems to work for Q3 and TA, while qftol 
-	(simple cast) does not - for Win32 Graeme says the reverse 
-	is true.
-
-	* code/qcommon/vm_x86_old.c: used the old cvs-1.17 version.
-	Two fixes (Hunk_Alloc, Com_Memcpy), and it works:
-	  +set vm_game 2 +set vm_ui 2 +set vm_cgame 2 
-        UI, cgame and game w/o apparent problems.
-
-2000-12-12  Bernd Kreimeier  <bk at lokigames.com>
-
-	* code/unix/Makefile: cleanup of redundant flags.
-	Removed bogus MALLOC_CHECK (note to self: export MALLOC_CHECK_=2).  
-	Also DO_SHLIB_CC on all UI DLL's.
-	Added and removed DEBUG_VM flag.
-	TODO: figure out whether Zoid did UI this way intentionally.
-	Note: this seemingly fixed the botimport problem, although
-	most of the changes were just redundant CFLAGS removed. Given
-	our wanker toolchain, should have been more paranoid. All
-	DLL's can now be used w/o apparent problems.
-
-	* code/server/sv_main.c: gvm init.
-	* code/server/sv_game.c: gvm assertions.
-	* code/unix/unix_main.c (Sys_LoadDll): print vmMain
-	Note: top no avail. There is some odd ld/gdb problem here
-	that prevents examining globals and obfuscates part of
-	the stack between VM_Call and lower level code, through
-	G_InitGame. This is not just DLL's being loaded and unloaded.
-	Wromg flags during build? The vmCvar for "bot_developer"
-	ends up overlapping global botimport in memory, which
-	thus zero-fills part of the function pointer table.
-
-	* code/server/sv_bot.c (SV_BotInitBotLib): this (by way of
-	GetBotLibAPI) is responsible for setting botimport, which,
-	if using the game DLL, is not properly set up. Called in
-	SV_Init().
-
-	* code/game/q_shared.c: Q_strncpyz does zero padding (duh).
-	Note: calls strncpy, which does a zero fill up to destsize.
-	If destsize exceeds memory size, zero padding will overwrite
-	adjacent memory. Suspicion was this happend to botimport.
-
-	* code/qcommon/cvar.c: possible problem in Q_strncpyz call.
-
-	* code/botlib/be_ai_weap.c (weaponinfo_fields): made this static.
-	Note: it seems that the "number" string got replaced by
-	 p def.fields[0]
-         {name = 0x40000000 "\177ELF\001\001\001", offset = 2, type = 50, ..
-        Memory corruption?
-
-	* code/game/inv.h (WEAPONINDEX_GAUNTLET): defined here. 
-	* botfiles/weapons.c (Gauntlet): the baseq3/qagamei386.so parser
-	breaks here:
-	 number				WEAPONINDEX_GAUNTLET
-	* code/botlib/l_precomp.c (SourceWarning): added assertion to
-	trap botlib parsing problem..
-
-	* RC1: for beta test. Using my own vm/ui.qvm files in this case.
-	TODO: Setup with nouninstall.
-	TODO: fix game DLL/ botlib setup problem (so all DLL's work)
-	TODO: SIGFPE
-	TODO: profile?
-	
-	* code/unix/Makefile (ai_vcmd.o): added to game DLL linkage. 
-	How the fuck did this happen?
-	DONE: "qagamei386.so: undefined symbol: BotVoiceChat_Defend"
-
-	* TEST:  +set vm_ui 2 (vm_x86, not interpreter). Breaks!
-	Further: qagame had undefined, but seemingly gets reloaded 
-	second try (I hate the Linux linker).
-	* TODO: never reload fail DLL, abort engine
-
-
-2000-12-11  Bernd Kreimeier  <bk at lokigames.com>
-
-	* TEST: recompile QVM/DLL and executable to test new UI code.
-	The UI QVMs from the paks still do not work.
-
-	* SOS: changes in UI code!
-	* code/q3_ui/ui_public.h: this file is deprecated
-	Note: e.g. it does not contain the background track calls.
-	* code/ui/ui_public.h: the uiImport_t enum here determines
-	the values.
-	* code/ui/ui_syscalls.asm: same as q3_ui now, were:
-         equ floor					-111
-	 equ ceil					-112
-	* code/q3_ui/ui_syscalls.asm: these are now switched, were:
-	 equ trap_S_StartBackgroundTrack			-63
-         equ trap_S_StopBackgroundTrack				-64
-	The new values match the ui/ equivalent. Also, floor (-108) 
-	and ceil (-109) are different in ui/.
-	
-	* CVS: going to check in this snapshot and tag it as
-	    cvs tag id1-27g-loki001209-rc4
-	Presumed equivalent to SOS tag "1.27g RC4" (master). As I can't
-	obtain the tagged code using SOS (neither Win32 nor Linux client)
-	I can only guess.
-
-	* TEST: use my own VM code, ion baseq3/vm/*.qvm and missionpack/vm/.
-	This works - in other words, the menu bug seems in the UI code, and
-	is fixed in my codebase.
-
-	* TEST: make release. 
-	Note: I can postpone DLL specific problems. Bad performance is not
-	as important as outright bugs. Thus the UI QVM issue is the only
-	one that stops me from creating an RC.
-	TODO: Q3 UI QVM code from pak file does not work (neither does TA).
-	TODO: sound with video playback still awful. Threaded sound, I guess.
-	TODO: ERROR: couldn't open demos/DEMO002.dm3.dm_48 (same demo001.dm3.dm_48)
-	
-	TODO: do not show Q3 demos in TA menu?
-	TODO: new demos for Q3? Or at least error message?
-	
-	* code/game/bg_lib.c: itrinsics excluded by Q3_VM (another -O
-	compile). Uninitialized variable.
-	* code/unix/Makefile: -O for uninit on patched code. Also shortcuts. 
-	TODO: DC_ONLY seems an obsolete flag, used in Makefiles, not source.
-
-	* TEST: +set sv_pure 0 +set vm_game 1 +set vm_cgame 1 +set vm_ui 0
-	Turns out that the pak0.pk3 UI QVM code is seemingly broken in TA
-	and Q3, but my UI DLL is not. In reverse, the QVM game/cgame for
-	Q3 seems to work quite well (including bots). The TA game/cgame
-	also works, including botlib init.
-	TODO: BotLib Init using game DLL gives: 
-	TODO:  Error: file weapons.c, line 38: unknown structure field number
-        TODO:  Fatal: couldn't load the weapon config
-        TODO:  Error: BotLoadMap: bot library used before being setup
-	
-	* TEST: checked the rc4winstlr.zip CD tree against
-	my test install. baseq3/pak4.pl3 and missionpack/pak0.pk3
-	are identical, but I finally recognized that there was
-	a missionpack/pak1.pk3 not in the final install - left over 
-	from an earlier update from id. Doesn't seem to affect the
-	DLL based runs at all.
-	Note: I still do not have the final CD snapshot Robert
-	promised me mid last week, they haven't even fixed the
-	FTP account they took down. Communication with id is as
-	abyssmal as ever. 
-
-2000-12-08  Bernd Kreimeier  <bk at lokigames.com>
-
-	* TEST: running with RC4 data files.
-	TODO: "bot library used before setup" (Q3+TA)
-	TODO: Q3 old mods wreak havoc (graceful bounce)
-	TODO: supress "FreeType code not available" in renderer
-	TODO: can't move in Q3
-	TODO: items flicker in Q3
-	TODO: no decals in Q3
-	TODO: VM UI code still broken (Q3+TA)
-	TODO: sound code is awful
-	TODO: video playback inferior to earlier builds
-
-	* code/q3_ui/ui_local.h: prototype trap_VerifyCDKey(..)
-	* code/game/g_active.c ( StuckInOtherClient): TA only.
-	* code/cgame/cg_draw.c: 4x unbalanced `#endif' - from patch?
-	* code/null/null_client.c (CL_CDKeyValidate): dummy added.
-	* code/qcommon/common.c: Q_acos missing, changed conditionals
-	
-	* code/qcommon/vm_x86.c: unreacheable _asm instruction that
-	gcc doesn't quite like... #if 0'ed for now
- 	TODO: understand _asm { mov eax,[ebx] }, fix it for gcc
-
-	* TEST: compile...
-
-	* code/ui/ui_main.c: full REJECT. Manual merge.
-	Note: preserved debug_protocol lines, who knows what it's good for.
-
-	* code/qcommon/files.c: REJECT. SafeMode, demo server FS_Restart.
-
-	* code/client/snd_mem.c: REJECT: $SOS$.
-	* code/client/snd_dma.c: REJECT: $SOS$.
-	* code/client/cl_cin.c: REJECT. com_timescale, $SOS$.
-
-	* code/cgame/cg_draw.c: REJECT. Lots, but virtually all either
-	float postfix (on some, not all places), or #ifndef MISSIONPACK
-	that I had already put in during -Werror (conditional unused).
-
-	* code/cgame/cg_consolecmds.c: REJECT. id commented unused code
-	that I had #if 0'ed earlier.
-
-	* code/game/: three REJECT for $SOS$.
-	* code/botlib/: lots REJECT for $SOS$.
-
-	* Patch: patching up from demo source.
-	ln -s sos001204-rc4 work
- 	diff -urbB sos001122-demo/ work > work.diff
- 	ln -s cvs-1.27b/ work
- 	patch -p0 < work.diff  > work.patch
- 	find cvs1.27b/ -name '*.rej' -print
-
-	* CVS: going to check in this snapshot and tag it as
-	    cvs tag id1-27b-loki001208-demo
-	Then patching up to RC4, as of sos001204-rc4 (no changes since,
-	should be equivalent to SOS tag "1.27g RC4" (raduffy), i.e. master.
-
-	* TEST: installed demota/ from Win32 distribution. Binary
-	fails claiming "Corrupted pak0.pk3". Abandoned.
-	Note: a Linux demo for Q3TA has no priority. Most important is
-	the Q3A point release in time for Q3TA hitting shelves, followed
-	by testing for Q3TA. The source is in CVS and tagged (see above)
-	in case a demo matching the released files has to be provided
-	later.
-	
-
-2000-12-07  Bernd Kreimeier  <bk at lokigames.com>
-
-	* TEST: compile and link - succeeds.
-
-	* code/ui/ui_main.c: UI_StopServerRefresh now uaws. 
-	New unused variables.
-	
-	* code/unix/unix_main.c: added  Sys_LowPhysicalMemory() stub.
-	TODO: write Linux equivalent to GlobalMemoryStatus.
-
-	* code/qcommon/common.c: Com_Memset/Com_Memcpy. Neither assembly 
-	nor C versions included if not on Win32 i386. 
-	TODO: using/porting assembly?
-
-	* code/qcommon/files.c: unused variable.
-	TODO: fs_scrambledProductId unused if 0 for now.
-	Note: -DFS_MISSING for id's pak cleanup, not used.
-
-	* TEST: compile and link - fails.
-
-	* code/macosx/Client/Makefile.postamble: empty ORIG.
-	* code/macosx/Client/Makefile.preamble: ORIG. $(BOTLIB_OBJS) added.
-
-	* code/server/sv_client.c: ORIG. Com_Memset.
-	* code/renderer/tr_shader.c: ORIG. Com_Memset, CIN_Shader.
-	* code/qcommon/vm_x86.c:  ORIG. Com_Memcpy. 
-	* code/qcommon/unzip.c: REJECT. Com_Memcpy, $SOS$. 
-	* code/qcommon/qcommon.h: ORIG. PROTOCOL 47, plus Sys_LowPhysicalMemory.
-	* code/qcommon/md4.c: Com_Memset,Com_Memcpy (ORIG).
-	* code/qcommon/files.c (Sys_ConcatenateFileList): REJECT.
-	Our additons threw it off, plus $SOS$. 
-	* code/qcommon/common.c: they fixed same unused variables (REJECT).
-
-	* code/ui/ui_shared.c: additions (ORIG).
-	* code/ui/ui_gameinfo.c: COM_Compress added (ORIG).
-	* code/ui/ui_atoms.c: print statements removed (ORIG).
-	* code/ui/ui_main.c (UI_DoServerRefresh): REJECT on comment edit... 
-
-	* code/game/g_cmds.c (Cmd_VoiceTaunt_f): logic changed heavily. ORIG.
-	* code/game/q_shared.h: Q3_VERSION "Q3 Team Arena Demo 1.27b"
-	plus Com_Memset, Com_Memcpy, CIN_shader, COM_Compress.
-	* code/game/g_main.c: Cvar change only
-	* code/game/ai_dmq3.c: $SOS$.
-
-	* code/client/snd_mix.c: Com_Memset
-	* code/client/client.h: additions (ORIG).
-	* code/client/snd_mem.c: see below.
-	* code/client/snd_dma.c: $SOS$ (CVS keyword).
-
-	* code/client/cl_cin.c: they removed unused (REJECT).
-	* code/cgame/cg_servercmds.c: ORIG. compress, noTaunt etc.
-	* code/cgame/cg_main.c: ORIG. Conditonal branch, COM_Compress.
-	* code/cgame/cg_consolecmds.c: ORIG. Cvar values changed.
-	* code/cgame/cg_draw.c (CG_DrawTeamBackground): ORIG. 
-	no reject but *.orig file created. I just mark spots were 
-	code changed after verifying the patch succeeded.
-
-	* code/cgame/cg_event.c: fixed reject (REJECT).
-	* code/botlib/: all *.rej here due to SOS/CVS $Keyword$.
-	TODO: preserve SOS comments/rev history somehow.
-
-	* Patch: patching up to demo source.
-	ln -s sos001122-demo work
- 	diff -urbB sos001119/ work > work.diff
- 	ln -s cvs-1.26/ work
- 	patch -p0 < work.diff  > work.patch
- 	find cvs1.26/ -name '*.rej' -print           
-	
-	* CVS: going to check in this snapshot and tag it as
-	  cvs tag id1-26w-loki001207
-	to prepare for upgrading to RC4. I have already made
-	many more changes than I wanted to w/o getting any 
-	closer to pinpointing the problem, I might as well
-	patch up to id's more current sources.
-
-	* code/botlib/be_interface.c: initialize by memset. Turns
-	out that this fails in Export_BotLibSetup on BotSetupWeaponAI
-	loading "weapons.c" (from the pak, presumably) with an unknown
-	structure field number. Mismatch of datafiles vs. source again.
-	
-	TODO: id replaced memsets in later source.
-	TODO: have memsets on all exports and imports.
-
-	* SOS: RC4 source should be tagged "1.27g RC4" (raduffy).
-	Unfortunately the Linux client doesn't care a bit. Show
-	History does work if from/to date differ by at least a
-	day, and it shows the tag on code/ (only that subtree),
-	but recursive get aborts halfway.
-	Manual: http://www.sourcegear.com/SOS/Doc/
-
-2000-12-06  Bernd Kreimeier  <bk at lokigames.com>
-
-	* TEST: accepting missing shaders now. No bots, but I can
-	actually enter the game and play (more than can be said for
-	classic Q3 right now).
-	TODO: Error: BotStartFrame: bot library used before being setup
-
-	* code/renderer/tr_shader.c: took out assertion for now...
-	* TEST: now missiopack/cgame loads
-	TODO: tr_shader.c:2275: R_FindShaderByName: failed 
-	TODO: searches ui/assets/3_cursor2.TGA, has ui/assets/3_cursor3.tga
-	
-	* code/unix/Makefile (MPCGOBJ): ui_shared.o (duh).
-	DONE: /cgamei386.so: undefined symbol: PC_Float_Parse
-	
-	* code/botlib/be_ai_goal.c: initialize campspots etc. This
-	might or might not fix this one (didn't get back to gdb due
-	to mouse-only navigation).
-	DONE: 0x80d1d5b in BotFreeInfoEntities () at be_ai_goal.c:447	
-
-	* TEST: this time with missionpack/cgame loading... noy
-	TODO: TA menu blocked after end of intro movie
-	TODO: console in_mouse 1 doesn't grap pointer even on vid_start?
-
-	* code/cgame/cg_newdraw.c: -Werror.
-	* code/unix/Makefile (MPCGOBJ): cg_newdraw.o was missing (duh).
-	DONE: missionpack/cgamei386.so: undefined symbol: CG_OwnerDrawVisible"
-
-	* code/ui/ui_shared.c:1309 assign after bail on NULL.
-	DONE: segfault in Item_SetFocus (item=0x0, x=0, y=0)
-
-	* TEST: new set of DLL's (this time hopefully correct).
-	All baseq3/ DLL's load, as does the missionpack/ UI DLL.
-	The menus now work in both (TA seems mouse-only on everything 
-	but "Quit"). Segfault on delayed TA "Quit" (stack fubared):
-	#5  0x809fc28 in VM_Call (vm=0x88408a0, callnum=3) at ..//qcommon/vm.c:617
-	#6  0x805aafc in CL_KeyEvent (key=9, down=qtrue, time=128644) cl_keys.c:1194
-	TODO: TA menu's w/o mouse? 
-	TODO: Win32 goes submenus but does not unfold
-	TODO: Linux does not go submenus
-	
-	* code/ui/ui_main.c: see below. 
-	TODO: LCC gets fits -  operands of = have illegal types 
-	TODO: 'pointer to const unsigned char' and 'pointer to const char'
-	* code/ui/ui_shared.c: see below.
-	* code/ui/ui_gameinfo.c: see below.
-	* code/ui/ui_atoms.c: see below.
-	* code/game/g_bot.c: more cruft.
-	* code/cgame/cg_draw.c: loads of functions modified for
-	MISSIONPACK that aren't used at all for MISSIONPACK anymore.
-	Development relics.
-
-	* code/cgame/cg_consolecmds.c: -Werror.
-	Note: due to Makefile error never ever compiled...
-
-	* code/unix/Makefile: fixed various dependency errors
-	for game and ui library.
-	TODO: create a new Makefile with patsubst and rules.
-	TODO: why C_ONLY in the i386 dedicated server?
-
-	* code/unix/unix_main.c: use dlerror() excessively.
-	Littered more unused DLL related functions with assert(0).
-	TODO: clean up Sys_Load/UnloadDll (a real mess)
-	TODO: remove Zoid code cruft (unused per-DLL functions)
-	
-	* code/game/bg_misc.c: changed G_Printf for Com_Printf.
-	This was undefined in baseq3/uii386.so preventing loading.
-
-	* TEST: +set sv_pure 0 +set vm_game 0 +set vm_cgame 0 +set vm_ui 0
-	Note: so far I used only the game DLL..  duh.
-	UI DLL fails to load: missing G_Printf.
-
-	* code/unix/Makefile:  -DMALLOC_CHECK in addition to
-	the -DZONE_DEBUG I have used since switching to calloc.
-	Using MALLOC_CHECK=1 for now, might use 2 if something
-	comes up.
-
-	* code/renderer/tr_init.c (GL_SetDefaultState): it does get 
-	called, but does not show up in the log.
-	
-	* TEST: tried executing a script - get bounced.
-	TODO: is there any way to jump into a map?
-	TODO: cl_cinematics 0 (supress all fullscreen RoQ)
-	Next: used r_logfile 200 in Win32 (RC4) and Linux.
-	There is a buckload of setup code seemingly not done
-	at all in Linux? Either that, or logging is enabled
-	with a delay in Linux.
-
-	* code/unix/linux_glimp.c: fixed autorepeat (H2/Fakk2 way). 
-
-2000-12-05  Bernd Kreimeier  <bk at lokigames.com>
-
-	* code/renderer/tr_mesh.c: added assert there.
-	* TEST: menus and in-game drawing are just as they were with 
-	the initial SOS001119 port. In addition:
-	  R_AddMD3Surfaces: no such frame 0 to -2147483477 
-	     for 'models/players/xaero/upper.md3'
-          R_AddMD3Surfaces: no such frame -2147483477 to 171 
-	  R_AddMD3Surfaces: no such frame 171 to -2147483498
-        ad nauseam (used as my player model).
-	Triggered: haveing a trRefEntity_t *) 0x41dbbd00 with 
-	frame = -2147483477. Might be a red herring (PRINT_DEVELOPER), 
-	ignore for now.
-
-	* code/ui/ui_main.c: missing return.
-	* code/ui/ui_shared.c: excess byte in initializer (which gcc
-	did not caught, but LCC did). Also LCC complains about
-	missing returns, but gcc doesn't (neither says unreacheable
-	code though). If necessary (MsVC?) guard with Q3_VM.
-
-	* code/q3_ui/ui_ingame.c: see below.
-	* code/q3_ui/ui_atoms.c: voidfunc_f. LCC warns about conversion 
-	from `pointer to void' to `pointer to void function(void)' 
-	being compiler dependent. Casting NULL. Guess what, doesn't fix 
-	it either.
-	TODO: do not use these cursed scripts to generate VM code,
-	we do not have proper rules for LCC/q3asm, thus the files never
-	get updated.
-
-	* code/unix/Makefile: for paranoia's sake recreated the 1.17
-	compile for the UI DLL (where only q_shared/math were actually
-	compiled as DO_SHLIB_CC.
-	Later: switched to different gcc. 
-
-	* STATIC: remaining problems are vmMain (same entry point for all
-	DLL's), could use cgMain, uiMain and gMain here for HARD_LINKED. 
-	Note: I don't think id has used this in ages.
-	Plus all the collisions in *_syscalls.c, which simply can't be
-	fixed cheaply. None is the superset of 2 others, neither seems
-	w/o overlap to others. Full stop.
-
-	* code/botlib/be_aas_move.c: see below.
-	* code/game/ai_dmq3.c: VEC_UP/DOWN, MOVEDIR_UP/DOWN now static.
-	See also game/g_utils.c for existing static duplicates.
-
-	* code/game/q_shared.h: #define stricmp strcasecmp 
-	* code/unix/Makefile:  no mo'  -Dstricmp=strcasecmp, see q_shared.h
-	Also: no mo'  -I/usr/include/glide, no FX
-	TODO: are we building against system GL headers? ../Mesa/?
-
-	* code/q3_ui/ui_atoms.c: comment on duplication
-	* code/cgame/cg_drawtools.c: use UI/CGAME_HARD_LINKED on UI duplicates 
-	TODO: does this UI_ code in cg_drawtools/ui_atoms belong into ui_shared?
-
-	* code/unix/Makefile: use -DQ3_STATIC 
-	* code/game/q_shared.h (*_HARD_LINKED): trigger on Q3_STATIC 
-	Later: collision between UI and CGAME is still there. This fixed
-	the Com_Error, Com_Printf issues though
-
-	* code/unix/Makefile ($(B)/q3static/ai_vcmd.o): this file was
-	missing, hence undefined symbol.
-	($(B)/baseq3/game/ai_vcmd.o): same here.
-	($(B)/missionpack/game/ai_vcmd.o): same here.
-
-	* STATIC: cg_syscalls.c, g_syscalls.c and ui_syscalls.c alias.
-	Multiply defined symbols:
-	 Com_Error, Com_Printf
-         VEC_UP, VEC_DOWN
-	 MOVEDIR_UP, MOVEDIR_DOWN
-	 vmMain
-	 dllEntry
-	 PASSFLOAT
-	 trap_Error
-	 trap_Milliseconds
-	 trap_Argc
-	 trap_Argv
-         trap_FS_FOpenFile
-	 trap_FS_Read
-	 trap_FS_Write
-         trap_FS_FCloseFile
-         trap_FS_GetFileList
-	 trap_R_RegisterModel
-	 trap_R_RegisterSkin
-	 trap_R_RegisterFont
-	 trap_R_RegisterShaderNoMip
-	 trap_R_ClearScene
-	 trap_R_AddRefEntityToScene
-	 trap_R_AddPolyToScene
-         trap_R_AddLightToScene
-	 trap_R_RenderScene
-	 trap_R_SetColor
-         trap_R_DrawStretchPic
-	 trap_R_ModelBounds
-	 trap_UpdateScree
-         trap_S_StartLocalSound
-	 trap_S_RegisterSound
-	 trap_Key_IsDown
-	 trap_Key_GetCatcher
-	 trap_Key_SetCatcher
-	 trap_GetGlconfig
-         trap_PC_AddGlobalDefine
-	 trap_PC_LoadSource
-	 trap_PC_FreeSource
-	 trap_PC_FreeSource
-	 trap_PC_ReadToken
-	 trap_PC_SourceFileAndLine
-	 trap_S_StopBackgroundTrack
-	 trap_S_StartBackgroundTrack
-	 trap_RealTime
-	 trap_CIN_PlayCinematic
-	 trap_CIN_StopCinematic
-	 trap_CIN_RunCinematic
-	 trap_CIN_DrawCinematic
-         trap_CIN_SetExtents
-	 trap_MemoryRemaining
-         trap_SendConsoleCommand
-	 trap_Cvar_Register
-	 trap_Cvar_Update
-         trap_Cvar_Set
-  	 trap_Cvar_VariableValue
-         trap_Cvar_VariableStringBuffer
-	 trap_RealTime
-	 trap_SnapVector  // used in game/bg_*.c, needs conditional
-	More aliasing between ui_atoms.c and cg_drawtools.c:
-         UI_DrawBannerString
-         UI_ProportionalStringWidth
-	 UI_ProportionalSizeScale
-        Undefined symbol: ai_team.o: In function `FindHumanTeamLeader':
-         ai_team.c:1899: undefined reference to `BotVoiceChat_Defend'
-	Note: 
-	
-	* code/game/g_main.c: unused.
-	* code/game/g_arenas.c: unused.
-	* code/game/ai_team.c: init.
-	* code/game/ai_dmnet.c: /* in comment (odd).
-	Note: why do these come up now but not earlier?
-	TODO: the make dependencies might target wrong files.
-
-	* code/unix/Makefile (TARGETS): added q3static.
-	Note: this is baseq3/
-
-	* TEST: +set r_logfile 100. It seems that the addition of
-	code (add an assertion etc.) changes the behavio of the binary.
-	The intro cinematics code seems to suffer first - didn't play,
-	then played, then (another assert added) doesn't play. Watch
-	out for (missionpack):
-	  UI_CIN_PlayCinematic
-          SCR_PlayCinematic( mpintro.roq )
-          trFMV::play(), playing mpintro.roq
-	Also fails to exit cleanly: break gives
-	 #0  0x401919ee in __select ()
-         #1  0x400bbcb8 in __DTOR_END__ ()
-         #2  0x4004baa1 in _XSend ()
-         #3  0x452b009f in GLXRenderFlush ()
-         #4  0x804ce0c in _XRead ()
-         #5  0x40680813 in ?? ()
-	Stack is corrupted.
-        Note: ~/.q3a/gl.log
-	TODO: write per-frame files (see Heretic2)
-	TODO: add Heretic2 QGL (more detail)
-
-	* code/unix/linux_qgl.c (QGL_EnableLogging): fixed countdown
-	(i.e. propagated changes from win32/, see Fakk2).
-
-	* code/unix/linux_glimp.c: fixed QGL_EnableLogging argument
-	to avoid cast error (always qfalse).
-
-	* code/unix/Makefile (DEBUG_CFLAGS): use ZONE_DEBUG.
-
-	* code/qcommon/common.c: replaced malloc with calloc calls.
-
-	* code/q3_ui/ui_local.h: have to use ui/ui_public.h
-	* code/cgame/cg_servercmds.c: requires ../ui/menudef.h
-
-	* code/cgame/cg_consolecmds.c: ui/ui_shared.h is unique.
-	* code/q3_ui/ui_public.h: make sure this won't be compiled.	
-	* code/client/client.h: we have to include ui/ui_public.h.
-	Note: id is obviously maintaing only the ui/ headers, so the
-	headers in q3_ui/ are deprecated.
-
-	* code/renderer/tr_shader.c: added assertions (see Ryan's Fakk2
-	problems with missing shaders).
-
-	* code/game/g_cmds.c: below.
-	* code/game/ai_vcmd.c: below.
-	* code/game/ai_team.c: below.
-	* code/game/ai_dmnet.c: below.
-	* code/game/ai_dmq3.c: below.
-	* code/game/ai_chat.c: below.
-	* code/game/ai_cmd.c: ../../ui/menudef.h (new Q3TA script directory).
-
-	* code/cgame/cg_newdraw.c: make sure it won't compile w/o MISSIONPACK.
-
-	* code/cgame/cg_servercmds.c: below.
-	* code/cgame/cg_event.c: below.
-	* code/cgame/cg_consolecmds.c: below.
-	* code/client/keys.h: below.
-	* code/client/client.h: below.
-	* code/q3_ui/ui_local.h: include from ../q3_ui/ not ../ui/.
-	Note: id seems to intentionally use the header from the new ui/.
-
-	* Makefile: checked -I$(UIDIR), there is no such. That means all
-	files include directly, which means all (including Q3) are using
-	the new ui/ headers.
-
-2000-12-04  Bernd Kreimeier  <bk at lokigames.com> 
-
-	* RC4: released as 362101115 Dec  4 11:40 TA_Q3A_RC4.zip
-
-	* TEST: the corrupted menu problem is back :-(. Looks like I am in
-	for a static link next.
-	
-	* code/unix/Makefile (clean2): fixed (not all new OBJ covered).
-	* code/q3_ui/ui_teamorders.c: -Werror.
-	* code/q3_ui/ui_team.c: -Werror. 
-	* code/q3_ui/ui_qmenu.c (Bitmap_Draw): -Werror. 
-	* code/q3_ui/ui_mods.c (UI_Mods_LoadModsFromFile): unused. -Werror.
-	* code/q3_ui/ui_controls2.c: -Werror.
-	* code/q3_ui/ui_atoms.c: -Werror
-	* code/null/null_client.c: -Werror.
-	* code/unix/linux_joystick.c: -Werror.
-	* code/unix/linux_glimp.c: -Werror. 
-	* code/unix/linux_qgl.c: -Werror. 
-	* code/unix/unix_shared.c: -Werror. 
-	* code/unix/unix_net.c: -Werror.
-	* code/unix/linux_local.h: added missing prototypes.
-	* code/unix/unix_main.c: -Werror. Includes linux_local.h
-	* code/jpeg-6/jdmainct.c: see below.
-	* code/jpeg-6/jcmainct.c: variables called "main" (*moan*) 
-	* code/jpeg-6/jcdctmgr.c (forward_DCT): -Werror.
-	* code/botlib/l_script.c (PS_ReadLiteral): -Werror
-	* code/botlib/l_precomp.c (PC_AddBuiltinDefines): -Werror.
-	* code/botlib/be_interface.c: -Werror.
-	* code/botlib/be_aas_reach.c: -Werror
-	* code/botlib/be_aas_cluster.c: -Werror 
-	* code/game/be_aas.h: -Werror. 
-	Note: MrElusive accumulates a lot of code history in nested comments,
-	which gcc doesn't like at all. #if 0'ed to avoid.
-	* code/qcommon/vm_interpreted.c: -Werror.
-	* code/qcommon/unzip.c: -Werror.
-	* code/cgame/cg_servercmds.c: -Werror.
-	* code/cgame/cg_main.c: -Werror.
-	* code/cgame/cg_drawtools.c: -Werror.
-	* code/game/bg_misc.c: -Werror.
-	* code/game/be_ai_move.h (bot_avoidspot_s): added.
-	* code/botlib/be_ai_move.c: removed typedef struct bot_avoidspot_s
-	* code/client/snd_mix.c: -Werror.
-	* code/qcommon/md4.c: -Werror.
-	* code/qcommon/common.c: -Werror.
-	* code/client/cl_keys.c: -Werror.
-	* code/client/cl_cin.c: -Werror, init local variables.	
-	* code/unix/Makefile: -Werror. need -O for -Wall for uninitialized
-	Note: the above is the list of files that got touched during a pass
-	with -g -O -Werror -Wall flags (in the hope of finding uninitialized
-	memory and ambiguous statements). Most of the above are simply
-	unused variables (or even code).
-
-	TEST: RC3 data files, but DLL's.
-	TODO: TA gets stuck in initial sound, doesn't play cinematics (sometimes)
-	TODO: Q3 intro movie looses sound after Sarge gets teleported
-	TODO: Q3 ingame renders world, weapon, muzzleflash, hud, can shoot,
-	TODO:  but no movement, hud background is fubared. 
-
-	* code/cgame/cg_main.c: cg_singlePlayerActive
-
-	* code/q3_ui/ui_login.c: doesn't seem to be used?
-	* code/game/g_rankings.c (G_RankRunFrame): doesn't seem to be used.
-	* code/q3_ui/ui.sh: disabled this. 
-	* code/q3_ui/q3_ui.sh: changed include path to ../q3_ui/ (duh).
-
-	* code/game/game.sh: changed include path to ../q3_ui/ which 
-	is not in the Win32 batch file. 
-	* code/cgame/cg_rankings.c: this does not seem to be included. 
-	* code/cgame/cgame_ta.sh: added -DCGAME. Also added cg_syscalls.c
-	to build (also missing in Win32).
-
-	* code/cgame/cgame.sh: added -DCGAME (see cgame.bat). Also
-	changed include path to ../q3_ui/ which is not in the Win32
-	batch file.  Also added cg_syscalls.c to build (missing in 
-	Win32).
-
-2000-12-01  Bernd Kreimeier  <bk at lokigames.com>
-
-	* RC3: released as of sos001201 / Q3 1.27f
-
-	* code/unix/Makefile: more fixes with clean build. The
-	changes made fix the menu rendering for Q3 but not TA.
-	Ingame graphics still broken. 
-
-	* code/game/game_ta.sh: created. Use game_ta.q3asm here.
-	* code/game/game.sh: no -DMISSIONPACK 
-	* code/game/game_ta.q3asm: CR/LF, /.
-
-	* code/cgame/cgame_ta.sh: created. Use cgame_ta.q3asm here.
-	* code/cgame/cgame.sh:  no -DMISSIONPACK. No cg_newdraw, ui_shared.
-	* code/cgame/cgame.q3asm:  No cg_newdraw, ui_shared.
-	CR/LF, /, cg_newDraw, and the output path/name.
-	
-	* code/q3_ui/q3_ui.q3asm: output to ui not q3_ui...
-
-	* code/cgame/cg_event.c: cg_singlePlayerActive used here.
-	TODO: guard by MISSIONPACK
-	* code/cgame/cg_local.h: named q3print_t enum. Cvar
-	cg_singlePlayerActive for both Q3 and TA.
-
-
-	* code/unix/Makefile: cleanly separate B/baseq3/ and
-	B/missionpack/ subtrees during build. While new and old
-	UI are in separate directories, the cgame/ and game/
-	are shared, with conditional -DMISSIONPACK compile
-	and different files includeds (cd_draw, cg_newdraw).
-	That means twice the number of targets (3 DLL's, 3 QVM's,
-	times two), and different build rules.
-	TODO: carefully check Win32 build for (other) conditionals
-	TODO: carefully check Win32 build for link lists
-
-	* CVS:  ui/, code/ui, botfiles/ and subdirectories are added.
-	The code/macosx/ directory turned out to be a real pain that
-	had to be edited manually, throwing out CVS/ directories in
-	the tree that had been created by SOS as they are in id's
-	repository:
-	  code/macosx/Client/CVS
-	  code/macosx/Client/PBUserInfo/CVS 
-	  code/macosx/Client/Quake3.nib/CVS  
-	  code/macosx/Common/CVS
-	  code/macosx/DedicatedServer/CVS
-	  code/macosx/DedicatedServer/PBUserInfo/CVS  
-	Now tagged
-	  cvs tag id1-26y-loki001119
-	TODO: there are several new files not yet linked?
-
-	* ChangeLog: merged the Changelog from the bk00119 working
-	branch (initial Q3TA port) based on sos001119 snapshot. Also
-	merged the source tree with cvs-1.17.
-	In the ChangeLog below  *** MISSIONPACK *** indicates work
-	that was done on the branch (code-sos/ prefix in files).
-	The cvs update of this will be tagged with
-	 cvs tag id1-26y-loki001119
-	Use this tag to hunt for possible Linux fixes that got lost
-	(i.e. got dropped by id since id000516 and were thus not in
-	sos001119, but did not show in diff id000516 cvs1-17).
-	New directories in CVS: botfiles/, ui/.
-	Missing from SOS/Missionpack: SDK directories.
-	 common, lcc, libs, q3asm, q3data, q3map, q3radiant.
-
-
-	* ssreport.txt: below.
-        Note: watch for files called "ssreport.txt", that's id ChangeLog.
-	* ui/ui_syscalls.asm: below.
-	* q3_ui/ui_syscalls.asm: below.
-	* game/g_syscalls.asm: below.
-	* cgame/cg_syscalls.asm: below.
-	* bspc/linux-i386.mak: below.
-	* bspc/lcc.mak: below.
-	* botlib/linux-i386.mak: below.
-	* botlib/lcc.mak: below.
-	* A3D/a3d_console_variables.txt: CR/LF issue (minimize diffs).
-
-	* CVS: the checked bk001119 work copy of the sos001119 initial
-	checkout (completed with everything in the SOS "Missionpack"
-	tree, i.e. botfiles/ and botfiles.* added), copied over the
-	cvs-1.17 checkout.
-	Note: in these cases, BEWARE ui -> q3_ui/ links, and different
-	ChangeLogs. Also "make clean" helps.
-
-	* unix/unix_net.c: below. 
-	* unix/unix_main.c: below. 
-	* unix/matha.s: below.
-	* unix/linux_qgl.c: below.
-	* unix/linux_glimp.c: see also linux_joystick.c.
-	* server/sv_client.c: below.
-	* renderer/tr_surface.c: below.
-	* renderer/qgl.h: below.
-	* qcommon/qcommon.h: below.
-	* qcommon/files.c: below.
-	* qcommon/common.c: below.
-	* q3_ui/ui_demo2.c: below.
-	* mac/mac_net.c: below.
-	* mac/mac_glimp2.c: below.
-	* game/surfaceflags.h: below.
-	* game/bg_lib.c: checked against id00516/cvs-1.17a diff.
-	* bspc/bspc.c: TH_AASToTetrahedrons call removed since id000516.
-	Note: our final compare of id000516 against cvs-1.17a, making sure
-	that all these differences are in bk001119 (initial Q3TA port).
-	If id branched the Q3TA base off before id000516 we might be screwed.
-	Note: I do not diff against bk000520, which had some minor changes
-	against id000516 (check VectorArrayNormalize, OTConfiguration), which
-	seem consistent with me taking a pre-id000516 source snapshot for that
-	working branch.
-
-2000-11-30  Bernd Kreimeier  <bk at lokigames.com>
-
-	* TEST: compiled using the symbolic link ui/ -> q3_ui/.
-	Had to undo one CVS change, regarding
-	 code/cgame/cg_syscalls.asm
-	 code/game/g_syscalls.asm
-	 code/q3_ui/ui_syscalls.asm
-	These files are neither generated by Win32 cgame.bat
-	nor cgame.sh (etc.), thus seemingly maintained by hand.
-	 cvs tag pr1-17-loki001130b
-	should be used if somebody needs this 1.17 snapshot
-	(which, remember, is post-release, with additional fixes).
-	Later:
-	 cvs tag pr1-17-loki001130c
-        includes the full ChangeLog (duh).
-	
-	* CVS: up until cvs-1.17-001130, code/ui/ contained the
-	Q3 code for the UI QVM/DLL. In Q3TA, this code has been
-	moved to code/q3_ui/, while at the same time the new
-	(scripting driven) UI code for Q3TA was maintained in
-	code/ui/. To preserve the history of code/ui/, it has been
-	renamed to q3/ui/ in the CVSROOT.
-	Note: this will BREAK all cvs-1.17 and before checkouts.
-	To compile earlier versions, move or link q3_ui/ to ui/.
-	The code has been tagged
-	  cvs tag pr1-17-loki001130
-        after the change.
-	DONE: remove code/*/vm/*.asm from CVSROOT
-	Note: this includes code/*/*.asm files (from *_syscalls.c).
-	These were originally tracked in CVS, but if we need 
-	comparison of q3asm output or QVM files we can rely
-	on the Win32 and Linux SDK now. These files have been
-	physically removed from CVS now, followed by
-	  cvs tag pr1-17-loki001130a
-
-2000-11-30  Bernd Kreimeier  <bk at lokigames.com>      *** MISSIONPACK ***
-
-	* RC2: new ZIP file (another 360M for convenience).
-
-	* SOS: new CVS module, Quake3_sos. This will be used to track
-	the unchanged SOS checkouts from id. As their repository
-	is read-only, and there is no estimate on when changes might
-	be backpropagated there, I will track their changes in a
-	separate module, and update our local Quake3 module 
-	accordingly. This is effectively "tracking 3rd party"
-	w/o import and half-automated, forced mergers - in other
-	words, we now branch starting with our post-1.17 changes,
-	for the benefit of moving at all.
-	Baseline is a slightly changed PR-1.17 id000516 source dump
-	(essentially ui/ moved to q3_ui for continuity, and CR/LF etc.).
-	 cvs import Quake3_sos id000516 pr1-17-win32
-	 cvs import Quake3_sos sos001119 pr1-26-win32
-	 cvs import Quake3_sos sos001120 pr1-26-win32-001120
-         cvs import Quake3_sos sos001121 pr1-26-win32-001121
-         cvs import Quake3_sos sos001122 pr1-26-win32-001122
-         cvs import Quake3_sos sos001122-demo pr1-26-win32-demo
-        This is about the 1.26w Team Arena Win32 demo release, give or
-	take a couple of lines. Has Q3_VERSION "Q3 Team Arena Demo 1.27b".
-	 cvs import Quake3_sos sos001123 pr1-26-win32-001123
-         cvs import Quake3_sos sos001126 pr1-26-win32-001126
-        Now track id versions (see code/game/q_shared.h:Q3_VERSION)
-	 cvs import Quake3_sos sos001128 pr1-27c-win32-001128
-	With 1.27d they switched from Demo to full version (RC1).
-	 cvs import Quake3_sos sos001129 pr1-27d-win32-001129
-         cvs import Quake3_sos sos001130a pr1-27d-win32-001130a
-        Now switched to 1.27e. This import is done from the SOS
-	working directory.
-	 cvs import Quake3_sos sos001130b pr1-27e-win32-001130b
-	Note: SoS created rwx attributes which are luckily fixed
-	automagically during import. It is also seemingly incapable
-	to compare files, and leave files that have not changed the
-	hell alone. I can't do cvs update due to the $..$ tags in
-	the original files (which CVS can't be told to ignore), 
-	so I have to do import (creating a load of vendor tagged 
-	branches), but at least cvsweb and cvs get the revisions
-	right.
-
-	* code-sos/unix/Makefile: added linux_joystick
-	* code-sos/unix/linux_local.h: match mac/ and win32/, for prototypes.
-
-	* code-sos/unix/linux_joystick.c: new file, code from linux_glimp.c
-	Note: decided to separate this, as (a) we might edit/extend
-	a lot, (b), it's not in the id tree, (c) it's not GL, (d)
-	there might be even more oddball devices. Anything that
-	cuts down on diffs.
-
-	* code-sos/unix/linux_glimp.c (Q_stristr): const return (cvs1.17).
-	Also (XLateKey): added more keyboard mappings (ASCII on
-	upper row digits) (cvs1.17). Added in the minimal joystick
-	hooks (cvars, function calls). Fixed joystick cvar naming
-	to match win32 (kept joystick_threshold). 
-	TODO: joystick stubs for dedicated?
-
-	* CVS: I have to move up to 1.27d (data, Win32 networking).
-	With exception of linux_glimp.c (mostly joystick code), 
-	all cvs1.17 changes should now be in the work snapshot 
-	based on the first sos001119 we got from id. There are
-	also some additional changes in there already, thus I'll
-	move the (buggy) 1.26 snapshot into CVS before adding even
-	more differences.
-
-
-2000-11-29  Bernd Kreimeier  <bk at lokigames.com>     *** MISSIONPACK ***
-
-	* RC1: TeamArena_Q3A_RC1.zip. Source has moved from
-	Q3VERSION "Q3 Team Arena Demo 1.27c" to "Q3 1.27d" now.
-
-	* code-sos/qcommon/common.c: added Com_InitPushEvent(). Also
-	increased MAX_PUSHED_EVENTS to 256.
-	Note: this is another case of buffer memory not zero'ed.
-	Com_EventLoop, fixed evTime to evType in debug print.
-	
-	* TEST: baseq3/
-	 +set sv_pure 0 +set vm_game 0 +set in_mouse 0 +set developer 2
-        TODO: Team Arena in menu leads to RE_Shutdown(1) and locks
-	TODO: can't play game
-	TODO: shaders can't load *.tga, *.jpg files are there
-	TODO: DO_CC linking for DLL's, DO_SHLIB_CC only for export?
-	TODO: ERROR: Bad player movement angle
-        TODO: Warning: cvar "..." given initial values: "..." and "..."
- 	TODO: TA demo ERROR: CL_ParseServerMessage: Illegible server message
-        TODO: WARNING: Com_PushEvent overflow
-
-	* code-sos/qcommon/files.c: add NULL filter for our Sys_ListFiles calls.
-	* unix/unix_shared.c (Sys_ListFiles): signature has changed, 
-	additional Sys_ListFiles argument now.
-
-	* code-sos/unix/unix_net.c (Sys_GetPacket): see below (readcount=0).
-	* code-sos/unix/unix_main.c: see below (Mike's and my changes to DLL
-	loading, my event buffer clear fixes).
-	* code-sos/unix/linux_qgl.c (QGL_Init): see below (__FX__ guards).
-	TODO: abstract WGL/GLX and end unfortunate QGL duplication.
-	TODO: spice up QGL with Linux H2 full version.	
-	* code-sos/q3_ui/ui_demo2.c: fix on demo names  - no Q_strupr(demoname).
-	Note: in CVS this fix is in ui/ui_demo2.c. CVS is screwed by
-	id choosing the old name for new directory...
-	TODO: manual intervention on "ui goes q3_ui"  in CVSROOT?
-	* renderer/qgl.h: see below (__FX__ guards).
-	* qcommon/files.c: migrated in the 1.17cvs changes against the
-	id000516 code dump, i.e. the (not marked - boo hiss) mkv changes.
-	Note: all the above is based on a diff of the last id code dump
-	pre-1.17 against our CVS, with those fixes now migrated into the
-	sos1.26 snapshot.
-	TODO: move in joystick code.
-	TODO: replace XAutoRepeatOn/Off with filter (focus).
-	TODO: DGA 2.0 and such.
-	
-	* code-sos/game/q_shared.c: valid compare for NULL strings
-	* code-sos/unix/unix_main.c: QRTLD, and now using RTLD_NOW.
-	Note: it is a bad idea to load game DLL's that are missing symbols.
-
-	* code-sos/ui/ui_main.c: see below.
-	* code-sos/game/g_main.c: see below.
-	* code-sos/q3_ui/ui_main.c: see below.
-	* code-sos/cgame/cg_main.c: made cvarTable and cvarTableSize static. This resolved
-	a segfault related to traversing the UI table during Init.
-	Note: there is a segfault related to this variable being out of bounds. 
-	Different struct size in global variables possible aliasing between the 
-	DLL's.
-	
-	* code-sos/unix/unix_main.c (Sys_Error): assert(0), no exit in debug.
-	* code-sos/game/q_shared.c: now aborts on NULL destination. Also DPrintf's
-	on bogus excess copies.
-	TODO: make all those string functions safe, at least assert.
-	* code-sos/server/sv_init.c: comment in SV_Init
-	// init the botlib here because we need the pre-compiler in the UI
-	Called in qcommon/common.c:Com_Init, were CL_Init is called afterwards...
-	* code-sos/server/sv_bot.c: the botlib_import is filled here.
-	* code-sos/unix/unix_main.c (Sys_GetBotLibAPI): RTLD_NOW. Which is for naught,
-	as this code is not used and has never been used. assert(0)
-
-	* code-sos/botlib/be_interface.c: botimport supposed to be set here.
-	* code-sos/botlib/l_memory.c: segfault with q3_ui/ DLL.
-        #1  0x80e23ec in GetMemory (size=35) at ..//botlib/l_memory.c:331
-        331             ptr = botimport.GetMemory(size + sizeof(unsigned long int));
-	as botimport is completely NULL'ed.
-
-	* code-sos/q3_ui/q3_ui.sh: created from ui/ui.sh 1.17 
-
-	* code-sos/q3_ui/q3_ui.q3asm: unfubared (CR/LF, / path).
-
-	* code-sos/unix/Makefile: added q3_ui/ make targets (basically
-	ui/ targets from CVS 1.17 Makefile for starters).
-
-	* code-sos/q3_ui/: this is the old UI code, which does not use
-	../ui/menus.txt (see ui/ui_main.c). In other words,
-	the code in ui/ now has to be compiled or qvm'ed 
-	for missionpack/, but to create the necessary DLL or
-	QVM modules for baseq3/ we need to use q3_ui/. 
-	
-	
-2000-11-27  Bernd Kreimeier  <bk at lokigames.com>     *** MISSIONPACK ***
-
-	* code-sos/game/bg_lib.c: ld problem with a custom "tan(..)"
-	TODO: loooking forward to SIGFPE on this code base.
-	
-	* code-sos/ui/ui_util.c: this file is empty.
-
-	* code-sos/ui/ui.sh: new files:
-	  ui_shared.c
-	  ui_util.c
-	Replaced by the /ui/*.menu files:
-	 q3lcc: can't find `../ui_cdkey.c'
-	 q3lcc: can't find `../ui_ingame.c'
-	etc.
-
-	* code-sos/cgame/cgame.q3asm: added cg_newdraw entry.
-	Also added ui_shared entry.
-	* cgame/cgame.sh: added cg_newdraw.c entry.
-	Also added ../ui/ui_shared.c entry.
-
-	* code-sos/cgame/cg_newdraw.c: renamed (was cg_newDraw.c mixed case).
-	Note: the infidels have taken over.
-
-	* cgame/cgame.sh: added  -DMISSIONPACK.
-	Note: w/o, q3lcc complains
-	../cg_event.c:204: undeclared identifier `cg_singlePlayerActive'
-        ../cg_event.c:204: left operand of . has incompatible type `int'
-        which indicates that this source does not compile w/o MISSIONPACK
-	anymore. The baseq3/pak4.pk3 file in the Q3TA snapshot archives
-	are dated
-	     284464  11-10-00 14:02   vm/cgame.qvm
-             463940  11-14-00 14:47   vm/qagame.qvm
-             271596  11-14-00 14:48   vm/ui.qvm
-	the code dump is from 11-19. 
-	Note: Make does not abort on q3lcc complains
-
-	* code-sos/game/game.sh: also added ai_vcmd.c entry.
-
-	* code-sos/ui/ui.q3asm: fubared (below). In addition, this is 
-	the only one to have a 
-	 -o "/tmp/quake3/missionpack/vm/ui"
-	line in it. Given that the other 2 QVM modules are
-	also dependend on -DMISSIONPACK, this seems a real mess.
-	For now using the same path as the other 3.
-	* code-sos/cgame/cgame.q3asm: below.
-	* code-sos/game/game.q3asm: fubared. Fixed CR/LF and \ in paths
-	again (read by q3asm called by game.sh called by make).
-	* unix/Makefile: updated fpor DLL/QVM.
-	Note: also shell scripts to use q3lcc not lcc.
-
-	
-2000-11-27  Bernd Kreimeier  <bk at lokigames.com>
-
-	* code/unix/Makefile: now expects a run/ directory
-	relative (between this, the Loki standards, and the
-	utility code in the same repository, it's ever so
-	slightly less dorky).
-	TODO: fix broken copyfiles target etc.pp.
-
-	* code/game/bg_lib.c: turns out the changes I
-	undid 001120 were affecting original Zoid
-	Linux port related defines, which break VM
-	compile. Mike fixed those (which I unfixed
-	when referring to the latest id code that does
-	not contain these patches). However, they
-	duplicate ANSI libc symbols, so the guards might
-	be wrong. The symbols are missing when compiling
-	for VM, so I now use the existing lcc -DQ3_VM
-	flag:
-	  //#if !defined ( _MSC_VER ) && ! defined ( __linux__ )
-          #if defined ( Q3_VM )
-	This will break DLL compile on non-ANSI platforms,
-	which will have to be added to the conditional then.
-
-	* code/ui/ui.sh: below. 
-	* code/game/game.sh: below. 
-	* code/cgame/cgame.sh: Linux SDK installs q3lcc to
-	avoid collisions with regular lcc pre-installs. The
-	scripts fail with "lcc not found", but do not abort 
-	the Makefile.
-	Note: now that VM code gets actually built, there
-	are errors:
-	g_main:648 ERROR: symbol vsprintf undefined
-        bg_pmove:1221 ERROR: symbol abs undefined
-        q_math:4309 ERROR: symbol fabs undefined
-        q_shared:2801 ERROR: symbol tolower undefined
-        q_shared:2862 ERROR: symbol toupper undefined
-        ai_dmq3:208 ERROR: symbol atoi undefined
-        ai_cmd:4951 ERROR: symbol sscanf undefined
-
-
-2000-11-20  Bernd Kreimeier  <bk at lokigames.com>   
-	
-	* TEST: test compile of pr-1.17+cvs fixes segfaults due 
-	to new baseq3/pak4.pk3
-	Note: to self ... 1.17 is not compatible with new files.
-	Checking into CVS next.
-
-	* code/: changes applied by us that are not in id's code base
-	affect q_shared.c (NULL in Q_stricmp), files.c (FIXME fs_cdpath,
-	Sys_ConcatenateFileList, ui_demo2.c (demo no tolower on linux).
-	In unix/ linux_glimp.c (joystick code), qgl.h, linux_qgl.c (__FX__),
-        unix_main.c (dlopen bug and event buffers), unix_net.c (readcount),
-	matha.s (assembly warning).
-
-	* code/server/sv_client.c (SV_WriteDownloadToClient): 
-	No effective change  on FS_SV_FOpenFileRead call, they reworked 
-	autodownload some more seemingly.
-
-	* code/renderer/tr_surface.c: VectorArrayNormalize
-	
-	* code/qcommon/qcommon.h: see below.
-	* code/qcommon/files.c: Com_ReadConfigs removed.
-	* code/qcommon/common.c: removed Com_ReadConfigs, 
-	textual replacement of body in Com_Init.
-
-	* code/mac/mac_net.c: not applied (undone by id)
-	OTConfiguration *config <> OTConfigurationRef  config
-
-	* code/mac/mac_glimp2.c: r_colorbits->integer > 16
-	* code/game/surfaceflags.h (CONTENTS_BOTCLIP): added.
-
-	* code/game/q_shared.h: not applied (undone by id)
-	#if defined(ppc) || defined(__ppc) || defined(__ppc__) 
-        #define idppc 1 
-	#else 
-        #define idppc 0 
-        #endif 
-
-	* code/game/q_math.c: added another CPP line to guard
-	BoxOnPlaneSide, removed WIN32 guard. 
-	TODO: this could be broken code guarded in all current
-	compiles...
-
-	* code/game/bg_lib.c: left Q#_VM guard for typedef cmp_t
-	Added !defined( __linux__ ) for tolower and atoi.
-	Note: the changes above relate to the very last code update
-	from id prior to the 6 month blackout, which were not in
-	CVS when Michael made his updates. Needed to establish the
-	baseline for the new patch. Source dump 1.17.00520, against
-	SOS 1.26w-001119 version.
-	
-2000-11-20  Bernd Kreimeier  <bk at lokigames.com>       *** MISSIONPACK ***
-
-	* TEST: running against the data up to TeamArena_Q3A_001109.zip
-	Hunk_Clear: reset the hunk ok
-        Program received signal SIGBUS, Bus error.
-        "q3dm2", killBots==qtrue
-	#0  CM_ClearMap () at ..//qcommon/cm_load.c:644
-        #1  0x80884a7 in SV_Map_f () at ..//server/sv_ccmds.c:159
-        #2  0x8072579 in Cmd_ExecuteString (text=0xbffff4b0 "spmap q3dm2") at ..//qcommon/cmd.c:591
-        #3  0x8071dfe in Cbuf_Execute () at ..//qcommon/cmd.c:190
-        #4  0x80763f7 in Com_Frame () at ..//qcommon/common.c:2547
-        #5  0x8130d6b in main (argc=13, argv=0xbffff984) at ..//unix/unix_main.c:953
-        #6  0x40100cb3 in __libc_start_main (main=0x8130bc4 <main>
-	Not reproducible (screen stayed black).
-	
-	* TEST: +set developer 1, same for Win32 and Linux:
-	Can't find gfx/misc/flare.tga
-        Can't find gfx/misc/sun.tga
-        Can't find gfx/misc/console02.tga
-	Can't find vm/ui.map
-	Can't find textures/sfx/logo512.tga
-        Can't find gfx/colors/black.tga
-        Can't find models/mapobjects/banner/banner5_2.md3
-        Can't find models/mapobjects/banner/banner5_1.md3
-        Can't find textures/sfx/firegorre2.tga
-        Can't find textures/sfx/bolts.tga
-	Can't find menu/art/unknownmap.tga
-
-	* Q3TA: after nearly 6 months, a code update from id. SOS access 
-	even. Got it to compile, link and start, but it's currently broken
-	(menu doesn't render in full, can't get into game etc.). Need
-	a baseline 1.17 to diff against. Last code dump was May 16, with 
-	bspc code updated May 19. Checking working directory of bk000520
-	against CVS next (Mike's fixes never made it into id's codebase
-	or a post 1.17 release, neither did my fixes as released in the
-	point release version 1.17).
-
-2000-11-19  Bernd Kreimeier  <bk at lokigames.com>       *** MISSIONPACK ***
-
-	* TEST: Win32 install as tested with 1.26w. quake3.x86 (Q3A game)	
-	Warning: cvar "r_uifullscreen" given initial values: "1" and "0"
-        Warning: cvar "r_inGameVideo" given initial values: "1" and "0"
-        ^3WARNING: sound/feedback/hit.wav is a 8 bit wav file
-	(on windows, sound/weapons/weapon_hover.wav is missing...)
-	Menu only partially displayed in TA and baseq3 play, menu itself
-	seems to work. Freetype?
-	WARNING: Com_PushEvent overflow
-
-	* code-sos/game/game.sh: not in SOS, moved in from CVS snapshot.
-
-	* code-sos/qcommon/common.c: conditional DEDICATED to get rid off 
-	CL_ShutdownCGame/CL_ShutdownUI/CIN_CloseAllVideos.
-	Same for UI_usesUniqueCDKey: dedicated server does not
-	write CD key file.
-	TODO: check whether there is an unneeded "read CD key"
-	for dedicated server.
-
-	* code-sos/null/null_client.c (CL_ShutdownAll): added dummy.
-
-	* code-sos/unix/Makefile:  server/sv_net_chan.o for dedicated server.
-
-	* code-sos/null/null_snddma.c: fixed  S_RegisterSound signature.
-
-	* code-sos/client/snd_mix.c: snd_p, snd_linear_count, snd_out
-	can't be static, as used by unix/snd_mixa.s.
-
-	* code-sos/unix/Makefile: added to the executable target:
-	   renderer/tr_font.c
-	   client/cl_net_chan.c
-	   server/sv_net_chan.c 
-	Also added a lot of jc*.c files to build, to fix unresolved
-	symbol errors.
-	TODO: is there unused jpeg-6/jd*.o code linked in now?
-
-	* code-sos/ft2/smooth.c: includes ftgrays.c, ftsmooth.c
-	
-	* code-sos/ft2/truetype.c: ttdriver.c, ttpload.c, ttgload.c, ttobjs.c.
-        Also (see ftoption.h) TT_CONFIG_OPTION_BYTECODE_INTERPRETER ttinterp.c
-	
-	* code-sos/ft2/sfnt.c: includes ttload.c, ttcmap.c, sfobjs.c,
-	sfdriver.c. lso (see ftoption.h)
-        TT_CONFIG_OPTION_EMBEDDED_BITMAPS     ttsbit.c
-        TT_CONFIG_OPTION_POSTSCRIPT_NAMES     ttpost.c
-
-	* code-sos/ft2/ftbase.c: includes ftcalc.c, ftobjs.c, ftstream.c,
-	ftlist.c, ftoutln.c, ftextend.c, ftnames.c.
-	
-	* code-sos/ft2/autohint.c: includes ahangles.c, ahglyph.c, ahglobal.c,
-	ahhint.c, ahmodule.c.
-
-	* code-sos/unix/Makefile: added ft2/ to client objects, took out
-	ftraster.c/ftrend1.c (see below), added -DFT_FLAT_COMPILE.
-	* ft2/ftsmooth.c: -DFT_FLAT_COMPILE required.
-	* ft2/raster1.c: -DFT_FLAT_COMPILE required.
-	Note: this includes ftraster.c/ftrend1.c.
-
-	* code-sos/qcommon/vm_x86.c: _ftol is missing, ftolPtr only defined
-	for Win32, but used in generic code. Workaround for now.
-	TODO: find good Linux ftol, or use old solution. 
-
-	* SoS checkout. chown -R a+w *  recode ibmpc:lat1 */*.h */*.c
-	
-2000-06-30  Michael Vance <briraeos at lokigames.com>
-
-	* misc: Spoke with Leonardo about qvm mess.
-
-	* ui/ui.sh: Created to build much like the ui.bat script.
-
-	* ui/ui.q3asm: Use linux style paths.
-
-	* game/game.sh: Created to build much like the game.bat script.
-
-	* game/game.q3asm: Use linux style paths.
-
-	* cgame/cgame.sh: Created to build much like the cgame.bat script.
-
-	* cgame/cgame.q3asm: Use linux systel paths.
-
-	* unix/Makefile: Use the new .sh scripts to build the QVM files.
-
-	* lcc/etc/linux.c: Build .asm files instead of .s files.
-
-	* misc: QVMs now load properly, with minor glitches that should
-	hopefully be solvable. The new build scripts conflict with the
-	.asm files already in CVS, as the generated byte code is slightly
-	different in some cases.
-	
-2000-06-29  Michael Vance <briareos at lokigames.com>
-
-	* lcc/makefile: Tweaked to automatically include the system
-	compiler's header location. Added an install directory.
-
-	* lcc/custom.mk: Added a build directory.
-
-	* lcc/etc/linux.c: Numerous small tweaks to make compiling the VM
-	code a much simpler task.
-
-	* q3asm/Makefile: Created.
-
-	* q3asm/q3asm.c: Fixed uninitialized variable in
-	HashString(). Fixed off by one in argument parsing.
-	
-	* misc: Had Brian remove the Xmd.h include from glx.h so that we can
-	build Quake3 on XFree86 4.0 systems.
-
-	* wine: Attempted to build with lcc.exe and q3asm.exe using wine,
-	also did not work. This is in contrast to MikeP's .qvms, which
-	seem to work.
-	
-2000-06-28  Michael Vance <briareos at lokigames.com>
-
-	* common/files.c: Fixed Mods menu behaviour.
-
-	* unix/linux_qgl.c: Guarded references to fxMesa.
-
-	* renderer/qgl.h: Guarded references to fxMesa.
-
-	* ui/ui_demo2.c: Don't convert filename to uppercase.
-	
-2000-05-07  Bernd Kreimeier  <bk at lokigames.com>
-
-	* common/cmdlib.c: windowism, not guarded. Added WIN32 around "ATOM a".
-
-	* q3map/Makefile: Linux Makefile. 
-
-	* q3map/Makefile.irix: "makefile" in original code, Irix-only Makefile. 
-	Just fixed some redundant TAB that GNU make despises about as much as I 
-	despise GNU Make, and changed to a relative path.
-
-2000-05-01  Bernd Kreimeier  <bk at lokigames.com>
-
-	* q3radiant/: updated with Q3Radiant198b3-src.zip. 
-	Tagged (globally) as q3radiant-198b3.
-	Kept the old files 
-	  3DFXCamWnd.h
-	  3DFXCamWnd.cpp
-          MainFrm2.cpp
-        New files
-          Shaders.h
-          misc/      (contributed special TGA resources, don't relly belong)
-        Removed:
-	  pName
-        Changed filenames to previous case:
-         UNNAMED.MAP           -> unnamed.map
-         RES/BMP0002.BMP       -> RES/bmp00002.bmp
-	Changed:
-         changelog.txt         -> ChangeLog
-	
-2000-04-28  Bernd Kreimeier  <bk at lokigames.com>
-
-	* CVS: bk000425 modified sources. This replaces the unix/ directory
-	which is not yet in id's SourceSafe. Two check-ins, due to minor
-	changes in an attempt to nail the Voodoo3 related crashes (driver
-	problems, not a Q3 issue). Undid some of the QFL changes for PI
-	and the log bug fix - put back in (TODO). Also includes:
-	* Quake3/code/botlib/be_aas_sample.c: single file update from Robert.
-	
-	* CVS: id000423 code dumps (two of them). Applying Loki patches.
-	Tagged for the final version (all patches).
-
-	* CVS: id000422 code dump. This did not include the 1.16n fixes
-	used for Linux, and was the first dump for the 1.17 security fix
-	release.
-	Note: forgot to check in the ft2/ headers themselves, but they
-	are not used in the current codebase anyway. Are added in next
-	dump. Also there is use of CVS/CVS-like $Keyword$ patterns in
-	some files, and between their revisions and ours we fuck this up.
-	Also, id ZIP files create write protected sources, have to do
-	chmod -R a+w Quake3/ to work and overwrite files.
-
-	* CVS: bk000315 modified source. This version was the 1.16n release.
-	Note: the changes applied here are not in the subsequent code dumps
-	of id. If you want to compile the Linux version as released you
-	have to use bk-tagged versions until the patches are merged in by
-	Robert Duffy.
-
-	* CVS: id000314 engine code dump, same procedure as below, tag.
-	Note: this version added vm/ sudirectories with assembly files
-	for cgame, game, ui. CVS tag id000314.
-
-	* CVS: id000304 engine code dump. Now there is a problem, as CVS
-	was used in the Mac sources. Do
-	  find . -name 'CVS' -exec rm -r {} \;
-        before cvs update, then tagged:
-	 cvs -d /loki/cvsroot/ tag id000304 Quake3/
-
-	* CVS: checked in a source snapshot of the id00303 engine code
-	and the id0003029 tools code. The tool sources are not fully in 
-	sync, and we have only partial source from earlier engine revisions.
-        The engine source marks where Loki took over from Dave Kirsch.
-        This snapshot (with all temporary and bogus files) is imported
-        and tagged using:
-          cvs -d /loki/cvsroot import Quake3 id000303 initial
-
-        Modules:
-          code:      the Q3 engine code, including a jpeg-6/ copy
-          common:    code shared by tools
-          libs:      code shared by tools, inlcuding a jpeg6/ copy
-          q3asm:     VM bytecode assembly 
-          q3data:    misc. Q3 data conversions
-          q3map:     BSP builder
-          q3radiant: Win32 editor, as is
-          lcc:       C compiler for q3asm
-
-        The sources have not been cleaned up, and binary files have not been
-	removed. The Q3Radiant code base might exhibit mixed case asmbiguities
-	in the future, and future source dumps might come from SourceForge
-	instead.
-
-2000-04-25  Bernd Kreimeier  <bk at lokigames.com>
-
-	* q3code.id000425/unix/Makefile: relative path, relocatable.
-	Note: first code merge with id, finally :-).
-
-2000-04-24  Bernd Kreimeier  <bk at lokigames.com>
-
-	* q3code.bk000422/unix/matha.s: in C(BoxOnPlaneSide)
-	the following line triggers assembler warning: 
-	"missing prefix `*' in absolute indirect address, maybe misassembled!"
-	  jmp Ljmptab(,%eax,4)  
-	
-
-	* q3code.bk000422/unix/Makefile (MOUNT_DIR): rember to change.
-	TODO: fix this bloody Makefile to be relocatable, damnit.
-
-	* q3code.bk000422/cgame/cg_event.c: applied JCash fix again
-	(see EV_EVENT_BITS below). Send e-mail to verify.
-
-	* q3code.bk000422/renderer/tr_image.c: "../jpeg-6/jpeglib.h" again.
-	
-	* q3code.bk000422/: created from the id dump of today, lacking
-	all but one of my changes (sigh). Swapped unix/ competely, takes
-	care of 90%. Submitted all changes again to Robert...
-
-2000-04-19  Bernd Kreimeier  <bk at lokigames.com>
-
-	* q3code.bk000315/unix/linux_glimp.c (GLimp_EndFrame): 
-	QGL_EnableLogging( r_logFile->value ) doesn't work?
-
-	* q3code.bk000315/unix/linux_qgl.c:  GLimp_LogNewFrame() is 
-	obsolete. QGL_EnableLogging was out of sync with Win32 and
-	did not support the new framecounter decrement logic.
-
-2000-04-03  Bernd Kreimeier  <bk at lokigames.com>
-
-	* q3code.bk000315/server/sv_snapshot.c: svs.nextSnapshotEntities
-	is a signed integer unconditionally incremented, which gets
-	negative and causes a segfaulting indexing an array. Added reset
-	to counter. Might fail if snapshot numbers are supposed to
-	monotonically increase.
-
-2000-04-02  Bernd Kreimeier  <bk at lokigames.com>
-
-	* q3code.bk000315/client/cl_parse.c (CL_ParseServerMessage): 
-	assert(0) on Illegible message (remember to +set in_mouse 0).
-	TODO: have to add a dump message function, it's unreadable.
-
-	* botlib/be_ai_goal.c (InitLevelItemHeap): loop counter -2
-	left -2 with uninitialized next, and -1 disconnected. Removed
-	redundant memset. There is an item alloc leak I suspect, as
-	max_levelitems 1024 merely delayed the overflow error.
-
-2000-04-01  Bernd Kreimeier  <bk at lokigames.com>
-
-	* botlib/be_ai_goal.c (InitLevelItemHeap): still segfaults.
-	Not memsetting the entire item heap. As items are cleared
-	on return, that leaves only memory corruption?
-	Later: upped max_levelitems from 256 to 1024
-	Later: client dies on connect:
-	  Error: CL_ParseServerMessage: Illegible server message 255
-
-
-2000-03-31  Bernd Kreimeier  <bk at lokigames.com>
-
-	* botlib/be_ai_goal.c: initializing global vars.
-	Segfault in AllocLevelItem () 
-	  at /home/bk/Games/Quake3/q3code/botlib/be_ai_goal.c:364
-        I suspect that the initial freelevelitems setting is at
-	the end of the list and eventually exposed.
-
-	* cgame/cg_event.c: according to Johmn Cash: 
-	 itemNum = (es->event & ~EV_EVENT_BITS) - EV_USE_ITEM0
-        Quote: "This causes itemNum to be invalid about half the time, 
-	preventing any client side effect tied to the item from occurring."
-	
-2000-03-06  Bernd Kreimeier  <bk at lokigames.com>
-
-	* qcommon/common.c: set pushEvent buffer and indices
-	to zero in Com_Init().
-
-	* q3code/qcommon/qcommon.h: made SE_NONE (and for paranoia
-	also NA_BOT) explicitely set to zero.
-
-2000-02-27  Bernd Kreimeier  <bk at lokigames.com>
-
-	* unix/Makefile: added dmalloc in an attempt to get on
-	the Z_Free bug. Futile. Despite stripping dmalloc debug
-	token down to essentials, I get a (seemingly bogus or
-	unrelated):
-	  debug-malloc library: dumping program, fatal error
-          Error: possibly bad .c filename pointer (err 24)
-
-	
-2000-02-26  Bernd Kreimeier  <bk at lokigames.com>
-
-	* qcommon/common.c: various debug builts to isolate the
-	Z_Free bug. It reproducibly happens on some machines
-	with SE_PACKET, but the packets themselves look
-	thoroughly corrupted.
-
-2000-02-21  Bernd Kreimeier  <bk at lokigames.com>
-
-	* qcommon/common.c (Com_EventLoop): possible problem
-	here, pointer does not get cleared.
-
-	* unix/linux_glimp.c (InitSig): no signal handler.
-	* common/common.c: dump in Com_Error for debug.
-
-2000-02-17  Bernd Kreimeier  <bk at lokigames.com>
-
-	* q3code: new dump from Zoid. Repeat tr_image.c fix.
-
-	* unix/Makefile: added client/snd_adpcm.c (linkage errors).
-	Later: added entire JPDIR and rules, for tr_image.c. 
-	Later: had to fix fules for game/ai_*.c files.
-	Later: removed ui/ui_quit.o (n/a)
-	Later: took out -mpentiumpro -march=pentiumpro 
-
-	* renderer/tr_image.c: windowism in #include path (see below).
-         #include "..\jpeg-6\jpeglib.h"
-
-1999-12-27  Bernd Kreimeier  <bk at lokigames.com>
-
-	* Alpha: tried a dedicated server compile. Segfaults in
-	../qcommon/files.c:1682, a paksort function doing pointer
-	fiddling.
-
-	* Makefile.alpha: created.
-	Note: want to take the SDL/Setup autoconf ASAP.
-
-	* unix/unix_main.c: fixed __axp__ to __alpha__, guarded
-	_FPU_SETCW.
-
-	* qcommon/vm_alpha.c: dummy, created.
-	* qcommon/vm_null.c: dummy, created.
-
-1999-12-04  Bernd Kreimeier  <bk at lokigames.com>
-
-	* renderer/tr_image.c: windowism in #include path.
-         #include "..\jpeg-6\jpeglib.h"
-	
-	* Revision 1.11: from Zoid by e-mail.
-	Note: threw away my playground copy, starting with the
-	ZIP file. Zoid's using CVS now, but we can't remote
-	access it. Thus did the
-	 "find . -name 'CVS' -exec rm -rf {} \;"
-	and then track it as 3rd party source by
-	
-
-	* ChangeLog: created. Now starting to track Q3A source.
-
---------- q3code log ---------------------------------------------

Deleted: trunk/Makefile
===================================================================
--- trunk/Makefile	2013-01-01 20:20:38 UTC (rev 2398)
+++ trunk/Makefile	2013-03-18 13:17:34 UTC (rev 2399)
@@ -1,2691 +0,0 @@
-#
-# ioq3 Makefile
-#
-# GNU Make required
-#
-
-COMPILE_PLATFORM=$(shell uname|sed -e s/_.*//|tr '[:upper:]' '[:lower:]'|sed -e 's/\//_/g')
-
-COMPILE_ARCH=$(shell uname -m | sed -e s/i.86/i386/)
-
-ifeq ($(COMPILE_PLATFORM),sunos)
-  # Solaris uname and GNU uname differ
-  COMPILE_ARCH=$(shell uname -p | sed -e s/i.86/i386/)
-endif
-ifeq ($(COMPILE_PLATFORM),darwin)
-  # Apple does some things a little differently...
-  COMPILE_ARCH=$(shell uname -p | sed -e s/i.86/i386/)
-endif
-
-ifeq ($(COMPILE_PLATFORM),mingw32)
-  ifeq ($(COMPILE_ARCH),i386)
-    COMPILE_ARCH=x86
-  endif
-  ifeq ($(COMPILE_ARCH),x86_64)
-    COMPILE_ARCH=x64
-  endif
-endif
-
-ifndef BUILD_STANDALONE
-  BUILD_STANDALONE =
-endif
-ifndef BUILD_CLIENT
-  BUILD_CLIENT     =
-endif
-ifndef BUILD_CLIENT_SMP
-  BUILD_CLIENT_SMP =
-endif
-ifndef BUILD_SERVER
-  BUILD_SERVER     =
-endif
-ifndef BUILD_GAME_SO
-  BUILD_GAME_SO    =
-endif
-ifndef BUILD_GAME_QVM
-  BUILD_GAME_QVM   =
-endif
-ifndef BUILD_BASEGAME
-  BUILD_BASEGAME =
-endif
-ifndef BUILD_MISSIONPACK
-  BUILD_MISSIONPACK=
-endif
-ifndef BUILD_RENDERER_REND2
-  BUILD_RENDERER_REND2=
-endif
-
-ifneq ($(PLATFORM),darwin)
-  BUILD_CLIENT_SMP = 0
-endif
-
-#############################################################################
-#
-# If you require a different configuration from the defaults below, create a
-# new file named "Makefile.local" in the same directory as this file and define
-# your parameters there. This allows you to change configuration without
-# causing problems with keeping up to date with the repository.
-#
-#############################################################################
--include Makefile.local
-
-ifndef PLATFORM
-PLATFORM=$(COMPILE_PLATFORM)
-endif
-export PLATFORM
-
-ifeq ($(COMPILE_ARCH),powerpc)
-  COMPILE_ARCH=ppc
-endif
-ifeq ($(COMPILE_ARCH),powerpc64)
-  COMPILE_ARCH=ppc64
-endif
-
-ifndef ARCH
-ARCH=$(COMPILE_ARCH)
-endif
-export ARCH
-
-ifneq ($(PLATFORM),$(COMPILE_PLATFORM))
-  CROSS_COMPILING=1
-else
-  CROSS_COMPILING=0
-
-  ifneq ($(ARCH),$(COMPILE_ARCH))
-    CROSS_COMPILING=1
-  endif
-endif
-export CROSS_COMPILING
-
-ifndef VERSION
-VERSION=1.36
-endif
-
-ifndef CLIENTBIN
-CLIENTBIN=ioquake3
-endif
-
-ifndef SERVERBIN
-SERVERBIN=ioq3ded
-endif
-
-ifndef BASEGAME
-BASEGAME=baseq3
-endif
-
-ifndef BASEGAME_CFLAGS
-BASEGAME_CFLAGS=
-endif
-
-ifndef MISSIONPACK
-MISSIONPACK=missionpack
-endif
-
-ifndef MISSIONPACK_CFLAGS
-MISSIONPACK_CFLAGS=-DMISSIONPACK
-endif
-
-ifndef COPYDIR
-COPYDIR="/usr/local/games/quake3"
-endif
-
-ifndef COPYBINDIR
-COPYBINDIR=$(COPYDIR)
-endif
-
-ifndef MOUNT_DIR
-MOUNT_DIR=code
-endif
-
-ifndef BUILD_DIR
-BUILD_DIR=build
-endif
-
-ifndef TEMPDIR
-TEMPDIR=/tmp
-endif
-
-ifndef GENERATE_DEPENDENCIES
-GENERATE_DEPENDENCIES=1
-endif
-
-ifndef USE_OPENAL
-USE_OPENAL=1
-endif
-
-ifndef USE_OPENAL_DLOPEN
-USE_OPENAL_DLOPEN=1
-endif
-
-ifndef USE_CURL
-USE_CURL=1
-endif
-
-ifndef USE_CURL_DLOPEN
-  ifeq ($(PLATFORM),mingw32)
-    USE_CURL_DLOPEN=0
-  else
-    USE_CURL_DLOPEN=1
-  endif
-endif
-
-ifndef USE_CODEC_VORBIS
-USE_CODEC_VORBIS=0
-endif
-
-ifndef USE_MUMBLE
-USE_MUMBLE=1
-endif
-
-ifndef USE_VOIP
-USE_VOIP=1
-endif
-
-ifndef USE_FREETYPE
-USE_FREETYPE=0
-endif
-
-ifndef USE_INTERNAL_SPEEX
-USE_INTERNAL_SPEEX=1
-endif
-
-ifndef USE_INTERNAL_ZLIB
-USE_INTERNAL_ZLIB=1
-endif
-
-ifndef USE_INTERNAL_JPEG
-USE_INTERNAL_JPEG=1
-endif
-
-ifndef USE_LOCAL_HEADERS
-USE_LOCAL_HEADERS=1
-endif
-
-ifndef USE_RENDERER_DLOPEN
-USE_RENDERER_DLOPEN=1
-endif
-
-ifndef DEBUG_CFLAGS
-DEBUG_CFLAGS=-g -O0
-endif
-
-ifndef USE_OLD_VM64
-USE_OLD_VM64=0
-endif
-
-#############################################################################
-
-BD=$(BUILD_DIR)/debug-$(PLATFORM)-$(ARCH)
-BR=$(BUILD_DIR)/release-$(PLATFORM)-$(ARCH)
-CDIR=$(MOUNT_DIR)/client
-SDIR=$(MOUNT_DIR)/server
-RDIR=$(MOUNT_DIR)/renderer
-R2DIR=$(MOUNT_DIR)/rend2
-CMDIR=$(MOUNT_DIR)/qcommon
-SDLDIR=$(MOUNT_DIR)/sdl
-ASMDIR=$(MOUNT_DIR)/asm
-SYSDIR=$(MOUNT_DIR)/sys
-GDIR=$(MOUNT_DIR)/game
-CGDIR=$(MOUNT_DIR)/cgame
-BLIBDIR=$(MOUNT_DIR)/botlib
-NDIR=$(MOUNT_DIR)/null
-UIDIR=$(MOUNT_DIR)/ui
-Q3UIDIR=$(MOUNT_DIR)/q3_ui
-JPDIR=$(MOUNT_DIR)/jpeg-8c
-SPEEXDIR=$(MOUNT_DIR)/libspeex
-ZDIR=$(MOUNT_DIR)/zlib
-Q3ASMDIR=$(MOUNT_DIR)/tools/asm
-LBURGDIR=$(MOUNT_DIR)/tools/lcc/lburg
-Q3CPPDIR=$(MOUNT_DIR)/tools/lcc/cpp
-Q3LCCETCDIR=$(MOUNT_DIR)/tools/lcc/etc
-Q3LCCSRCDIR=$(MOUNT_DIR)/tools/lcc/src
-LOKISETUPDIR=misc/setup
-NSISDIR=misc/nsis
-SDLHDIR=$(MOUNT_DIR)/SDL12
-LIBSDIR=$(MOUNT_DIR)/libs
-
-bin_path=$(shell which $(1) 2> /dev/null)
-
-# We won't need this if we only build the server
-ifneq ($(BUILD_CLIENT),0)
-  # set PKG_CONFIG_PATH to influence this, e.g.
-  # PKG_CONFIG_PATH=/opt/cross/i386-mingw32msvc/lib/pkgconfig
-  ifneq ($(call bin_path, pkg-config),)
-    CURL_CFLAGS=$(shell pkg-config --silence-errors --cflags libcurl)
-    CURL_LIBS=$(shell pkg-config --silence-errors --libs libcurl)
-    OPENAL_CFLAGS=$(shell pkg-config --silence-errors --cflags openal)
-    OPENAL_LIBS=$(shell pkg-config --silence-errors --libs openal)
-    SDL_CFLAGS=$(shell pkg-config --silence-errors --cflags sdl|sed 's/-Dmain=SDL_main//')
-    SDL_LIBS=$(shell pkg-config --silence-errors --libs sdl)
-    FREETYPE_CFLAGS=$(shell pkg-config --silence-errors --cflags freetype2)
-  endif
-  # Use sdl-config if all else fails
-  ifeq ($(SDL_CFLAGS),)
-    ifneq ($(call bin_path, sdl-config),)
-      SDL_CFLAGS=$(shell sdl-config --cflags)
-      SDL_LIBS=$(shell sdl-config --libs)
-    endif
-  endif
-endif
-
-# Add svn version info
-USE_SVN=
-ifeq ($(wildcard .svn),.svn)
-  SVN_REV=$(shell LANG=C svnversion .)
-  ifneq ($(SVN_REV),)
-    VERSION:=$(VERSION)_SVN$(SVN_REV)
-    USE_SVN=1
-  endif
-else
-ifeq ($(wildcard .git/svn/.metadata),.git/svn/.metadata)
-  SVN_REV=$(shell LANG=C git svn info | awk '$$1 == "Revision:" {print $$2; exit 0}')
-  ifneq ($(SVN_REV),)
-    VERSION:=$(VERSION)_SVN$(SVN_REV)
-  endif
-endif
-endif
-
-
-#############################################################################
-# SETUP AND BUILD -- LINUX
-#############################################################################
-
-## Defaults
-LIB=lib
-
-INSTALL=install
-MKDIR=mkdir
-
-ifneq (,$(findstring "$(PLATFORM)", "linux" "gnu_kfreebsd" "kfreebsd-gnu"))
-
-  ifeq ($(ARCH),axp)
-    ARCH=alpha
-  else
-  ifeq ($(ARCH),x86_64)
-    LIB=lib64
-  else
-  ifeq ($(ARCH),ppc64)
-    LIB=lib64
-  else
-  ifeq ($(ARCH),s390x)
-    LIB=lib64
-  endif
-  endif
-  endif
-  endif
-
-  BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
-    -pipe -DUSE_ICON
-  CLIENT_CFLAGS += $(SDL_CFLAGS)
-
-  OPTIMIZEVM = -O3 -funroll-loops -fomit-frame-pointer
-  OPTIMIZE = $(OPTIMIZEVM) -ffast-math
-
-  ifeq ($(ARCH),x86_64)
-    OPTIMIZEVM = -O3 -fomit-frame-pointer -funroll-loops \
-      -falign-loops=2 -falign-jumps=2 -falign-functions=2 \
-      -fstrength-reduce
-    OPTIMIZE = $(OPTIMIZEVM) -ffast-math
-    HAVE_VM_COMPILED = true
-  else
-  ifeq ($(ARCH),i386)
-    OPTIMIZEVM = -O3 -march=i586 -fomit-frame-pointer \
-      -funroll-loops -falign-loops=2 -falign-jumps=2 \
-      -falign-functions=2 -fstrength-reduce
-    OPTIMIZE = $(OPTIMIZEVM) -ffast-math
-    HAVE_VM_COMPILED=true
-  else
-  ifeq ($(ARCH),ppc)
-    BASE_CFLAGS += -maltivec
-    HAVE_VM_COMPILED=true
-  endif
-  ifeq ($(ARCH),ppc64)
-    BASE_CFLAGS += -maltivec
-    HAVE_VM_COMPILED=true
-  endif
-  ifeq ($(ARCH),sparc)
-    OPTIMIZE += -mtune=ultrasparc3 -mv8plus
-    OPTIMIZEVM += -mtune=ultrasparc3 -mv8plus
-    HAVE_VM_COMPILED=true
-  endif
-  ifeq ($(ARCH),alpha)
-    # According to http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=410555
-    # -ffast-math will cause the client to die with SIGFPE on Alpha
-    OPTIMIZE = $(OPTIMIZEVM)
-  endif
-  endif
-  endif
-
-  SHLIBEXT=so
-  SHLIBCFLAGS=-fPIC -fvisibility=hidden
-  SHLIBLDFLAGS=-shared $(LDFLAGS)
-
-  THREAD_LIBS=-lpthread
-  LIBS=-ldl -lm
-
-  CLIENT_LIBS=$(SDL_LIBS)
-  RENDERER_LIBS = $(SDL_LIBS) -lGL
-
-  ifeq ($(USE_OPENAL),1)
-    ifneq ($(USE_OPENAL_DLOPEN),1)
-      CLIENT_LIBS += -lopenal
-    endif
-  endif
-
-  ifeq ($(USE_CURL),1)
-    ifneq ($(USE_CURL_DLOPEN),1)
-      CLIENT_LIBS += -lcurl
-    endif
-  endif
-
-  ifeq ($(USE_CODEC_VORBIS),1)
-    CLIENT_LIBS += -lvorbisfile -lvorbis -logg
-  endif
-
-  ifeq ($(USE_MUMBLE),1)
-    CLIENT_LIBS += -lrt
-  endif
-
-  ifeq ($(USE_FREETYPE),1)
-    BASE_CFLAGS += $(FREETYPE_CFLAGS)
-  endif
-
-  ifeq ($(ARCH),i386)
-    # linux32 make ...
-    BASE_CFLAGS += -m32
-  else
-  ifeq ($(ARCH),ppc64)
-    BASE_CFLAGS += -m64
-  endif
-  endif
-else # ifeq Linux
-
-#############################################################################
-# SETUP AND BUILD -- MAC OS X
-#############################################################################
-
-ifeq ($(PLATFORM),darwin)
-  HAVE_VM_COMPILED=true
-  LIBS = -framework Cocoa
-  CLIENT_LIBS=
-  RENDERER_LIBS=
-  OPTIMIZEVM=
-  
-  BASE_CFLAGS = -Wall -Wimplicit -Wstrict-prototypes
-
-  ifeq ($(ARCH),ppc)
-    BASE_CFLAGS += -arch ppc -faltivec -mmacosx-version-min=10.2
-    OPTIMIZEVM += -O3
-  endif
-  ifeq ($(ARCH),ppc64)
-    BASE_CFLAGS += -arch ppc64 -faltivec -mmacosx-version-min=10.2
-  endif
-  ifeq ($(ARCH),i386)
-    OPTIMIZEVM += -march=prescott -mfpmath=sse
-    # x86 vm will crash without -mstackrealign since MMX instructions will be
-    # used no matter what and they corrupt the frame pointer in VM calls
-    BASE_CFLAGS += -arch i386 -m32 -mstackrealign
-  endif
-  ifeq ($(ARCH),x86_64)
-    OPTIMIZEVM += -arch x86_64 -mfpmath=sse
-  endif
-
-  BASE_CFLAGS += -fno-strict-aliasing -DMACOS_X -fno-common -pipe
-
-  ifeq ($(USE_OPENAL),1)
-    ifneq ($(USE_OPENAL_DLOPEN),1)
-      CLIENT_LIBS += -framework OpenAL
-    endif
-  endif
-
-  ifeq ($(USE_CURL),1)
-    ifneq ($(USE_CURL_DLOPEN),1)
-      CLIENT_LIBS += -lcurl
-    endif
-  endif
-
-  ifeq ($(USE_FREETYPE),1)
-    BASE_CFLAGS += $(FREETYPE_CFLAGS)
-  endif
-
-  ifeq ($(USE_CODEC_VORBIS),1)
-    CLIENT_LIBS += -lvorbisfile -lvorbis -logg
-  endif
-
-  BASE_CFLAGS += -D_THREAD_SAFE=1
-
-  ifeq ($(USE_LOCAL_HEADERS),1)
-    BASE_CFLAGS += -I$(SDLHDIR)/include
-  endif
-
-  # We copy sdlmain before ranlib'ing it so that subversion doesn't think
-  #  the file has been modified by each build.
-  LIBSDLMAIN=$(B)/libSDLmain.a
-  LIBSDLMAINSRC=$(LIBSDIR)/macosx/libSDLmain.a
-  CLIENT_LIBS += -framework IOKit \
-    $(LIBSDIR)/macosx/libSDL-1.2.0.dylib
-  RENDERER_LIBS += -framework OpenGL $(LIBSDIR)/macosx/libSDL-1.2.0.dylib
-
-  OPTIMIZEVM += -falign-loops=16
-  OPTIMIZE = $(OPTIMIZEVM) -ffast-math
-
-  SHLIBEXT=dylib
-  SHLIBCFLAGS=-fPIC -fno-common
-  SHLIBLDFLAGS=-dynamiclib $(LDFLAGS) -Wl,-U,_com_altivec
-
-  NOTSHLIBCFLAGS=-mdynamic-no-pic
-
-  TOOLS_CFLAGS += -DMACOS_X
-
-else # ifeq darwin
-
-
-#############################################################################
-# SETUP AND BUILD -- MINGW32
-#############################################################################
-
-ifeq ($(PLATFORM),mingw32)
-
-  # Some MinGW installations define CC to cc, but don't actually provide cc,
-  # so explicitly use gcc instead (which is the only option anyway)
-  ifeq ($(call bin_path, $(CC)),)
-    CC=gcc
-  endif
-
-  ifndef WINDRES
-    WINDRES=windres
-  endif
-
-  BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
-    -DUSE_ICON
-
-  # In the absence of wspiapi.h, require Windows XP or later
-  ifeq ($(shell test -e $(CMDIR)/wspiapi.h; echo $$?),1)
-    BASE_CFLAGS += -DWINVER=0x501
-  endif
-
-  ifeq ($(USE_OPENAL),1)
-    CLIENT_CFLAGS += $(OPENAL_CFLAGS)
-    ifneq ($(USE_OPENAL_DLOPEN),1)
-      CLIENT_LDFLAGS += $(OPENAL_LDFLAGS)
-    endif
-  endif
-  
-  ifeq ($(ARCH),x64)
-    OPTIMIZEVM = -O3 -fno-omit-frame-pointer \
-      -falign-loops=2 -funroll-loops -falign-jumps=2 -falign-functions=2 \
-      -fstrength-reduce
-    OPTIMIZE = $(OPTIMIZEVM) --fast-math
-    HAVE_VM_COMPILED = true
-  endif
-  ifeq ($(ARCH),x86)
-    OPTIMIZEVM = -O3 -march=i586 -fno-omit-frame-pointer \
-      -falign-loops=2 -funroll-loops -falign-jumps=2 -falign-functions=2 \
-      -fstrength-reduce
-    OPTIMIZE = $(OPTIMIZEVM) -ffast-math
-    HAVE_VM_COMPILED = true
-  endif
-
-  SHLIBEXT=dll
-  SHLIBCFLAGS=
-  SHLIBLDFLAGS=-shared $(LDFLAGS)
-
-  BINEXT=.exe
-
-  LIBS= -lws2_32 -lwinmm -lpsapi
-  CLIENT_LDFLAGS += -mwindows
-  CLIENT_LIBS = -lgdi32 -lole32
-  RENDERER_LIBS = -lgdi32 -lole32 -lopengl32
-  
-  ifeq ($(USE_FREETYPE),1)
-    BASE_CFLAGS += -Ifreetype2
-  endif
-
-  ifeq ($(USE_CURL),1)
-    CLIENT_CFLAGS += $(CURL_CFLAGS)
-    ifneq ($(USE_CURL_DLOPEN),1)
-      ifeq ($(USE_LOCAL_HEADERS),1)
-        CLIENT_CFLAGS += -DCURL_STATICLIB
-        ifeq ($(ARCH),x64)
-          CLIENT_LIBS += $(LIBSDIR)/win64/libcurl.a
-        else
-          CLIENT_LIBS += $(LIBSDIR)/win32/libcurl.a
-        endif
-      else
-        CLIENT_LIBS += $(CURL_LIBS)
-      endif
-    endif
-  endif
-
-  ifeq ($(USE_CODEC_VORBIS),1)
-    CLIENT_LIBS += -lvorbisfile -lvorbis -logg
-  endif
-
-  ifeq ($(ARCH),x86)
-    # build 32bit
-    BASE_CFLAGS += -m32
-  else
-    BASE_CFLAGS += -m64
-  endif
-
-  # libmingw32 must be linked before libSDLmain
-  CLIENT_LIBS += -lmingw32
-  RENDERER_LIBS += -lmingw32
-  
-  ifeq ($(USE_LOCAL_HEADERS),1)
-    CLIENT_CFLAGS += -I$(SDLHDIR)/include
-    ifeq ($(ARCH), x86)
-    CLIENT_LIBS += $(LIBSDIR)/win32/libSDLmain.a \
-                      $(LIBSDIR)/win32/libSDL.dll.a
-    RENDERER_LIBS += $(LIBSDIR)/win32/libSDLmain.a \
-                      $(LIBSDIR)/win32/libSDL.dll.a
-    SDLDLL=SDL.dll
-    else
-    CLIENT_LIBS += $(LIBSDIR)/win64/libSDLmain.a \
-                      $(LIBSDIR)/win64/libSDL64.dll.a
-    RENDERER_LIBS += $(LIBSDIR)/win64/libSDLmain.a \
-                      $(LIBSDIR)/win64/libSDL64.dll.a
-    SDLDLL=SDL64.dll
-    endif
-  else
-    CLIENT_CFLAGS += $(SDL_CFLAGS)
-    CLIENT_LIBS += $(SDL_LIBS)
-    RENDERER_LIBS += $(SDL_LIBS)
-    SDLDLL=SDL.dll
-  endif
-
-  BUILD_CLIENT_SMP = 0
-
-else # ifeq mingw32
-
-#############################################################################
-# SETUP AND BUILD -- FREEBSD
-#############################################################################
-
-ifeq ($(PLATFORM),freebsd)
-
-  # flags
-  BASE_CFLAGS = $(shell env MACHINE_ARCH=$(ARCH) make -f /dev/null -VCFLAGS) \
-    -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
-    -DUSE_ICON -DMAP_ANONYMOUS=MAP_ANON
-  CLIENT_CFLAGS += $(SDL_CFLAGS)
-  HAVE_VM_COMPILED = true
-
-  OPTIMIZEVM = -O3 -funroll-loops -fomit-frame-pointer
-  OPTIMIZE = $(OPTIMIZEVM) -ffast-math
-
-  SHLIBEXT=so
-  SHLIBCFLAGS=-fPIC
-  SHLIBLDFLAGS=-shared $(LDFLAGS)
-
-  THREAD_LIBS=-lpthread
-  # don't need -ldl (FreeBSD)
-  LIBS=-lm
-
-  CLIENT_LIBS =
-
-  CLIENT_LIBS += $(SDL_LIBS)
-  RENDERER_LIBS = $(SDL_LIBS) -lGL
-
-  # optional features/libraries
-  ifeq ($(USE_OPENAL),1)
-    ifeq ($(USE_OPENAL_DLOPEN),1)
-      CLIENT_LIBS += $(THREAD_LIBS) -lopenal
-    endif
-  endif
-
-  ifeq ($(USE_CURL),1)
-    ifeq ($(USE_CURL_DLOPEN),1)
-      CLIENT_LIBS += -lcurl
-    endif
-  endif
-
-  ifeq ($(USE_CODEC_VORBIS),1)
-    CLIENT_LIBS += -lvorbisfile -lvorbis -logg
-  endif
-
-  # cross-compiling tweaks
-  ifeq ($(ARCH),i386)
-    ifeq ($(CROSS_COMPILING),1)
-      BASE_CFLAGS += -m32
-    endif
-  endif
-  ifeq ($(ARCH),amd64)
-    ifeq ($(CROSS_COMPILING),1)
-      BASE_CFLAGS += -m64
-    endif
-  endif
-
-else # ifeq freebsd
-
-#############################################################################
-# SETUP AND BUILD -- OPENBSD
-#############################################################################
-
-ifeq ($(PLATFORM),openbsd)
-
-  ARCH=$(shell uname -m)
-
-  BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
-    -DUSE_ICON -DMAP_ANONYMOUS=MAP_ANON
-  CLIENT_CFLAGS += $(SDL_CFLAGS)
-
-  ifeq ($(USE_CURL),1)
-    CLIENT_CFLAGS += $(CURL_CFLAGS)
-    USE_CURL_DLOPEN=0
-  endif
-
-  # no shm_open on OpenBSD
-  USE_MUMBLE=0
-
-  SHLIBEXT=so
-  SHLIBCFLAGS=-fPIC
-  SHLIBLDFLAGS=-shared $(LDFLAGS)
-
-  THREAD_LIBS=-pthread
-  LIBS=-lm
-
-  CLIENT_LIBS =
-
-  CLIENT_LIBS += $(SDL_LIBS)
-  RENDERER_LIBS = $(SDL_LIBS) -lGL
-
-  ifeq ($(USE_OPENAL),1)
-    ifneq ($(USE_OPENAL_DLOPEN),1)
-      CLIENT_LIBS += $(THREAD_LIBS) -lossaudio -lopenal
-    endif
-  endif
-
-  ifeq ($(USE_CODEC_VORBIS),1)
-    CLIENT_LIBS += -lvorbisfile -lvorbis -logg
-  endif
-
-  ifeq ($(USE_CURL),1) 
-    ifneq ($(USE_CURL_DLOPEN),1)
-      CLIENT_LIBS += -lcurl
-    endif
-  endif
-
-else # ifeq openbsd
-
-#############################################################################
-# SETUP AND BUILD -- NETBSD
-#############################################################################
-
-ifeq ($(PLATFORM),netbsd)
-
-  ifeq ($(shell uname -m),i386)
-    ARCH=i386
-  endif
-
-  LIBS=-lm
-  SHLIBEXT=so
-  SHLIBCFLAGS=-fPIC
-  SHLIBLDFLAGS=-shared $(LDFLAGS)
-  THREAD_LIBS=-lpthread
-
-  BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes
-
-  ifeq ($(ARCH),i386)
-    HAVE_VM_COMPILED=true
-  endif
-
-  BUILD_CLIENT = 0
-
-else # ifeq netbsd
-
-#############################################################################
-# SETUP AND BUILD -- IRIX
-#############################################################################
-
-ifeq ($(PLATFORM),irix64)
-
-  ARCH=mips
-
-  CC = c99
-  MKDIR = mkdir -p
-
-  BASE_CFLAGS=-Dstricmp=strcasecmp -Xcpluscomm -woff 1185 \
-    -I. -I$(ROOT)/usr/include
-  CLIENT_CFLAGS += $(SDL_CFLAGS)
-  OPTIMIZE = -O3
-  
-  SHLIBEXT=so
-  SHLIBCFLAGS=
-  SHLIBLDFLAGS=-shared
-
-  LIBS=-ldl -lm -lgen
-  # FIXME: The X libraries probably aren't necessary?
-  CLIENT_LIBS=-L/usr/X11/$(LIB) $(SDL_LIBS) \
-    -lX11 -lXext -lm
-  RENDERER_LIBS = $(SDL_LIBS) -lGL
-
-else # ifeq IRIX
-
-#############################################################################
-# SETUP AND BUILD -- SunOS
-#############################################################################
-
-ifeq ($(PLATFORM),sunos)
-
-  CC=gcc
-  INSTALL=ginstall
-  MKDIR=gmkdir
-  COPYDIR="/usr/local/share/games/quake3"
-
-  ifneq (,$(findstring i86pc,$(shell uname -m)))
-    ARCH=i386
-  else #default to sparc
-    ARCH=sparc
-  endif
-
-  ifneq ($(ARCH),i386)
-    ifneq ($(ARCH),sparc)
-      $(error arch $(ARCH) is currently not supported)
-    endif
-  endif
-
-  BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
-    -pipe -DUSE_ICON
-  CLIENT_CFLAGS += $(SDL_CFLAGS)
-
-  OPTIMIZEVM = -O3 -funroll-loops
-
-  ifeq ($(ARCH),sparc)
-    OPTIMIZEVM += -O3 \
-      -fstrength-reduce -falign-functions=2 \
-      -mtune=ultrasparc3 -mv8plus -mno-faster-structs
-    HAVE_VM_COMPILED=true
-  else
-  ifeq ($(ARCH),i386)
-    OPTIMIZEVM += -march=i586 -fomit-frame-pointer \
-      -falign-loops=2 -falign-jumps=2 \
-      -falign-functions=2 -fstrength-reduce
-    HAVE_VM_COMPILED=true
-    BASE_CFLAGS += -m32
-    CLIENT_CFLAGS += -I/usr/X11/include/NVIDIA
-    CLIENT_LDFLAGS += -L/usr/X11/lib/NVIDIA -R/usr/X11/lib/NVIDIA
-  endif
-  endif
-  
-  OPTIMIZE = $(OPTIMIZEVM) -ffast-math
-
-  SHLIBEXT=so
-  SHLIBCFLAGS=-fPIC
-  SHLIBLDFLAGS=-shared $(LDFLAGS)
-
-  THREAD_LIBS=-lpthread
-  LIBS=-lsocket -lnsl -ldl -lm
-
-  BOTCFLAGS=-O0
-
-  CLIENT_LIBS +=$(SDL_LIBS) -lX11 -lXext -liconv -lm
-  RENDERER_LIBS = $(SDL_LIBS) -lGL
-
-else # ifeq sunos
-
-#############################################################################
-# SETUP AND BUILD -- GENERIC
-#############################################################################
-  BASE_CFLAGS=
-  OPTIMIZE = -O3
-
-  SHLIBEXT=so
-  SHLIBCFLAGS=-fPIC
-  SHLIBLDFLAGS=-shared
-
-endif #Linux
-endif #darwin
-endif #mingw32
-endif #FreeBSD
-endif #OpenBSD
-endif #NetBSD
-endif #IRIX
-endif #SunOS
-
-ifneq ($(HAVE_VM_COMPILED),true)
-  BASE_CFLAGS += -DNO_VM_COMPILED
-  BUILD_GAME_QVM=0
-endif
-
-TARGETS =
-
-ifeq ($(USE_FREETYPE),1)
-  BASE_CFLAGS += -DBUILD_FREETYPE
-endif
-
-ifndef FULLBINEXT
-  FULLBINEXT=.$(ARCH)$(BINEXT)
-endif
-
-ifndef SHLIBNAME
-  SHLIBNAME=$(ARCH).$(SHLIBEXT)
-endif
-
-ifneq ($(BUILD_SERVER),0)
-  TARGETS += $(B)/$(SERVERBIN)$(FULLBINEXT)
-endif
-
-ifneq ($(BUILD_CLIENT),0)
-  ifneq ($(USE_RENDERER_DLOPEN),0)
-    TARGETS += $(B)/$(CLIENTBIN)$(FULLBINEXT) $(B)/renderer_opengl1_$(SHLIBNAME)
-    ifneq ($(BUILD_CLIENT_SMP),0)
-      TARGETS += $(B)/renderer_opengl1_smp_$(SHLIBNAME)
-    endif
-    ifneq ($(BUILD_RENDERER_REND2), 0)
-      TARGETS += $(B)/renderer_rend2_$(SHLIBNAME)
-      ifneq ($(BUILD_CLIENT_SMP),0)
-        TARGETS += $(B)/renderer_rend2_smp_$(SHLIBNAME)
-      endif
-    endif
-  else
-    TARGETS += $(B)/$(CLIENTBIN)$(FULLBINEXT)
-    ifneq ($(BUILD_RENDERER_REND2), 0)
-      TARGETS += $(B)/$(CLIENTBIN)_rend2$(FULLBINEXT)
-    endif
-    ifneq ($(BUILD_CLIENT_SMP),0)
-      TARGETS += $(B)/$(CLIENTBIN)-smp$(FULLBINEXT)
-      ifneq ($(BUILD_RENDERER_REND2), 0)
-        TARGETS += $(B)/$(CLIENTBIN)_rend2-smp$(FULLBINEXT)
-      endif
-    endif
-  endif
-endif
-
-ifneq ($(BUILD_GAME_SO),0)
-  ifneq ($(BUILD_BASEGAME),0)
-    TARGETS += \
-	$(B)/$(BASEGAME)/cgame$(SHLIBNAME) \
-	$(B)/$(BASEGAME)/qagame$(SHLIBNAME) \
-	$(B)/$(BASEGAME)/ui$(SHLIBNAME)
-  endif
-  ifneq ($(BUILD_MISSIONPACK),0)
-    TARGETS += \
-    $(B)/$(MISSIONPACK)/cgame$(SHLIBNAME) \
-    $(B)/$(MISSIONPACK)/qagame$(SHLIBNAME) \
-    $(B)/$(MISSIONPACK)/ui$(SHLIBNAME)
-  endif
-endif
-
-ifneq ($(BUILD_GAME_QVM),0)
-  ifneq ($(CROSS_COMPILING),1)
-    ifneq ($(BUILD_BASEGAME),0)
-      TARGETS += \
-      $(B)/$(BASEGAME)/vm/cgame.qvm \
-      $(B)/$(BASEGAME)/vm/qagame.qvm \
-      $(B)/$(BASEGAME)/vm/ui.qvm
-	endif
-    ifneq ($(BUILD_MISSIONPACK),0)
-      TARGETS += \
-      $(B)/$(MISSIONPACK)/vm/qagame.qvm \
-      $(B)/$(MISSIONPACK)/vm/cgame.qvm \
-      $(B)/$(MISSIONPACK)/vm/ui.qvm
-    endif
-  endif
-endif
-
-ifeq ($(USE_OPENAL),1)
-  CLIENT_CFLAGS += -DUSE_OPENAL
-  ifeq ($(USE_OPENAL_DLOPEN),1)
-    CLIENT_CFLAGS += -DUSE_OPENAL_DLOPEN
-  endif
-endif
-
-ifeq ($(USE_CURL),1)
-  CLIENT_CFLAGS += -DUSE_CURL
-  ifeq ($(USE_CURL_DLOPEN),1)
-    CLIENT_CFLAGS += -DUSE_CURL_DLOPEN
-  endif
-endif
-
-ifeq ($(USE_CODEC_VORBIS),1)
-  CLIENT_CFLAGS += -DUSE_CODEC_VORBIS
-endif
-
-ifeq ($(USE_RENDERER_DLOPEN),1)
-  CLIENT_CFLAGS += -DUSE_RENDERER_DLOPEN
-endif
-
-ifeq ($(USE_MUMBLE),1)
-  CLIENT_CFLAGS += -DUSE_MUMBLE
-endif
-
-ifeq ($(USE_VOIP),1)
-  CLIENT_CFLAGS += -DUSE_VOIP
-  SERVER_CFLAGS += -DUSE_VOIP
-  ifeq ($(USE_INTERNAL_SPEEX),1)
-    CLIENT_CFLAGS += -DFLOATING_POINT -DUSE_ALLOCA -I$(SPEEXDIR)/include
-  else
-    CLIENT_LIBS += -lspeex -lspeexdsp
-  endif
-endif
-
-ifeq ($(USE_INTERNAL_ZLIB),1)
-  BASE_CFLAGS += -DNO_GZIP
-  BASE_CFLAGS += -I$(ZDIR)
-else
-  LIBS += -lz
-endif
-
-ifeq ($(USE_INTERNAL_JPEG),1)
-  BASE_CFLAGS += -DUSE_INTERNAL_JPEG
-  BASE_CFLAGS += -I$(JPDIR)
-else
-  RENDERER_LIBS += -ljpeg
-endif
-
-ifeq ($(USE_FREETYPE),1)
-  RENDERER_LIBS += -lfreetype
-endif
-
-ifeq ("$(CC)", $(findstring "$(CC)", "clang" "clang++"))
-  BASE_CFLAGS += -Qunused-arguments
-endif
-
-ifdef DEFAULT_BASEDIR
-  BASE_CFLAGS += -DDEFAULT_BASEDIR=\\\"$(DEFAULT_BASEDIR)\\\"
-endif
-
-ifeq ($(USE_LOCAL_HEADERS),1)
-  BASE_CFLAGS += -DUSE_LOCAL_HEADERS
-endif
-
-ifeq ($(BUILD_STANDALONE),1)
-  BASE_CFLAGS += -DSTANDALONE
-endif
-
-ifeq ($(GENERATE_DEPENDENCIES),1)
-  DEPEND_CFLAGS = -MMD
-else
-  DEPEND_CFLAGS =
-endif
-
-ifeq ($(NO_STRIP),1)
-  STRIP_FLAG =
-else
-  STRIP_FLAG = -s
-endif
-
-BASE_CFLAGS += -DPRODUCT_VERSION=\\\"$(VERSION)\\\"
-BASE_CFLAGS += -Wformat=2 -Wno-format-zero-length -Wformat-security -Wno-format-nonliteral
-BASE_CFLAGS += -Wstrict-aliasing=2 -Wmissing-format-attribute
-BASE_CFLAGS += -Wdisabled-optimization
-BASE_CFLAGS += -Werror-implicit-function-declaration
-
-ifeq ($(V),1)
-echo_cmd=@:
-Q=
-else
-echo_cmd=@echo
-Q=@
-endif
-
-define DO_CC
-$(echo_cmd) "CC $<"
-$(Q)$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) $(CLIENT_CFLAGS) $(OPTIMIZE) -o $@ -c $<
-endef
-
-define DO_REF_CC
-$(echo_cmd) "REF_CC $<"
-$(Q)$(CC) $(SHLIBCFLAGS) $(CFLAGS) $(CLIENT_CFLAGS) $(OPTIMIZE) -o $@ -c $<
-endef
-
-define DO_REF_STR
-$(echo_cmd) "REF_STR $<"
-$(Q)rm -f $@
-$(Q)echo "const char *fallbackShader_$(notdir $(basename $<)) =" >> $@
-$(Q)cat $< | sed 's/^/\"/;s/$$/\\n\"/' >> $@
-$(Q)echo ";" >> $@
-endef
-
-define DO_SMP_CC
-$(echo_cmd) "SMP_CC $<"
-$(Q)$(CC) $(SHLIBCFLAGS) $(CFLAGS) $(CLIENT_CFLAGS) $(OPTIMIZE) -DSMP -o $@ -c $<
-endef
-
-define DO_BOT_CC
-$(echo_cmd) "BOT_CC $<"
-$(Q)$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) $(BOTCFLAGS) $(OPTIMIZE) -DBOTLIB -o $@ -c $<
-endef
-
-ifeq ($(GENERATE_DEPENDENCIES),1)
-  DO_QVM_DEP=cat $(@:%.o=%.d) | sed -e 's/\.o/\.asm/g' >> $(@:%.o=%.d)
-endif
-
-define DO_SHLIB_CC
-$(echo_cmd) "SHLIB_CC $<"
-$(Q)$(CC) $(BASEGAME_CFLAGS) $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) -o $@ -c $<
-$(Q)$(DO_QVM_DEP)
-endef
-
-define DO_GAME_CC
-$(echo_cmd) "GAME_CC $<"
-$(Q)$(CC) $(BASEGAME_CFLAGS) -DQAGAME $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) -o $@ -c $<
-$(Q)$(DO_QVM_DEP)
-endef
-
-define DO_CGAME_CC
-$(echo_cmd) "CGAME_CC $<"
-$(Q)$(CC) $(BASEGAME_CFLAGS) -DCGAME $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) -o $@ -c $<
-$(Q)$(DO_QVM_DEP)
-endef
-
-define DO_UI_CC
-$(echo_cmd) "UI_CC $<"
-$(Q)$(CC) $(BASEGAME_CFLAGS) -DUI $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) -o $@ -c $<
-$(Q)$(DO_QVM_DEP)
-endef
-
-define DO_SHLIB_CC_MISSIONPACK
-$(echo_cmd) "SHLIB_CC_MISSIONPACK $<"
-$(Q)$(CC) $(MISSIONPACK_CFLAGS) $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) -o $@ -c $<
-$(Q)$(DO_QVM_DEP)
-endef
-
-define DO_GAME_CC_MISSIONPACK
-$(echo_cmd) "GAME_CC_MISSIONPACK $<"
-$(Q)$(CC) $(MISSIONPACK_CFLAGS) -DQAGAME $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) -o $@ -c $<
-$(Q)$(DO_QVM_DEP)
-endef
-
-define DO_CGAME_CC_MISSIONPACK
-$(echo_cmd) "CGAME_CC_MISSIONPACK $<"
-$(Q)$(CC) $(MISSIONPACK_CFLAGS) -DCGAME $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) -o $@ -c $<
-$(Q)$(DO_QVM_DEP)
-endef
-
-define DO_UI_CC_MISSIONPACK
-$(echo_cmd) "UI_CC_MISSIONPACK $<"
-$(Q)$(CC) $(MISSIONPACK_CFLAGS) -DUI $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) -o $@ -c $<
-$(Q)$(DO_QVM_DEP)
-endef
-
-define DO_AS
-$(echo_cmd) "AS $<"
-$(Q)$(CC) $(CFLAGS) $(OPTIMIZE) -x assembler-with-cpp -o $@ -c $<
-endef
-
-define DO_DED_CC
-$(echo_cmd) "DED_CC $<"
-$(Q)$(CC) $(NOTSHLIBCFLAGS) -DDEDICATED $(CFLAGS) $(SERVER_CFLAGS) $(OPTIMIZE) -o $@ -c $<
-endef
-
-define DO_WINDRES
-$(echo_cmd) "WINDRES $<"
-$(Q)$(WINDRES) -i $< -o $@
-endef
-
-
-#############################################################################
-# MAIN TARGETS
-#############################################################################
-
-default: release
-all: debug release
-
-debug:
-	@$(MAKE) targets B=$(BD) CFLAGS="$(CFLAGS) $(BASE_CFLAGS) $(DEPEND_CFLAGS)" \
-	  OPTIMIZE="$(DEBUG_CFLAGS)" OPTIMIZEVM="$(DEBUG_CFLAGS)" \
-	  CLIENT_CFLAGS="$(CLIENT_CFLAGS)" SERVER_CFLAGS="$(SERVER_CFLAGS)" V=$(V)
-
-release:
-	@$(MAKE) targets B=$(BR) CFLAGS="$(CFLAGS) $(BASE_CFLAGS) $(DEPEND_CFLAGS)" \
-	  OPTIMIZE="-DNDEBUG $(OPTIMIZE)" OPTIMIZEVM="-DNDEBUG $(OPTIMIZEVM)" \
-	  CLIENT_CFLAGS="$(CLIENT_CFLAGS)" SERVER_CFLAGS="$(SERVER_CFLAGS)" V=$(V)
-
-# Create the build directories, check libraries and print out
-# an informational message, then start building
-targets: makedirs
-	@echo ""
-	@echo "Building $(CLIENTBIN) in $(B):"
-	@echo "  PLATFORM: $(PLATFORM)"
-	@echo "  ARCH: $(ARCH)"
-	@echo "  VERSION: $(VERSION)"
-	@echo "  COMPILE_PLATFORM: $(COMPILE_PLATFORM)"
-	@echo "  COMPILE_ARCH: $(COMPILE_ARCH)"
-	@echo "  CC: $(CC)"
-	@echo ""
-	@echo "  CFLAGS:"
-	- at for i in $(CFLAGS); \
-	do \
-		echo "    $$i"; \
-	done
-	- at for i in $(OPTIMIZE); \
-	do \
-		echo "    $$i"; \
-	done
-	@echo ""
-	@echo "  CLIENT_CFLAGS:"
-	- at for i in $(CLIENT_CFLAGS); \
-	do \
-		echo "    $$i"; \
-	done
-	@echo ""
-	@echo "  SERVER_CFLAGS:"
-	- at for i in $(SERVER_CFLAGS); \
-	do \
-		echo "    $$i"; \
-	done
-	@echo ""
-	@echo "  LDFLAGS:"
-	- at for i in $(LDFLAGS); \
-	do \
-		echo "    $$i"; \
-	done
-	@echo ""
-	@echo "  LIBS:"
-	- at for i in $(LIBS); \
-	do \
-		echo "    $$i"; \
-	done
-	@echo ""
-	@echo "  CLIENT_LIBS:"
-	- at for i in $(CLIENT_LIBS); \
-	do \
-		echo "    $$i"; \
-	done
-	@echo ""
-	@echo "  Output:"
-	- at for i in $(TARGETS); \
-	do \
-		echo "    $$i"; \
-	done
-	@echo ""
-ifneq ($(TARGETS),)
-	@$(MAKE) $(TARGETS) V=$(V)
-endif
-
-makedirs:
-	@if [ ! -d $(BUILD_DIR) ];then $(MKDIR) $(BUILD_DIR);fi
-	@if [ ! -d $(B) ];then $(MKDIR) $(B);fi
-	@if [ ! -d $(B)/client ];then $(MKDIR) $(B)/client;fi
-	@if [ ! -d $(B)/renderer ];then $(MKDIR) $(B)/renderer;fi
-	@if [ ! -d $(B)/rend2 ];then $(MKDIR) $(B)/rend2;fi
-	@if [ ! -d $(B)/rend2/glsl ];then $(MKDIR) $(B)/rend2/glsl;fi
-	@if [ ! -d $(B)/renderersmp ];then $(MKDIR) $(B)/renderersmp;fi
-	@if [ ! -d $(B)/ded ];then $(MKDIR) $(B)/ded;fi
-	@if [ ! -d $(B)/$(BASEGAME) ];then $(MKDIR) $(B)/$(BASEGAME);fi
-	@if [ ! -d $(B)/$(BASEGAME)/cgame ];then $(MKDIR) $(B)/$(BASEGAME)/cgame;fi
-	@if [ ! -d $(B)/$(BASEGAME)/game ];then $(MKDIR) $(B)/$(BASEGAME)/game;fi
-	@if [ ! -d $(B)/$(BASEGAME)/ui ];then $(MKDIR) $(B)/$(BASEGAME)/ui;fi
-	@if [ ! -d $(B)/$(BASEGAME)/qcommon ];then $(MKDIR) $(B)/$(BASEGAME)/qcommon;fi
-	@if [ ! -d $(B)/$(BASEGAME)/vm ];then $(MKDIR) $(B)/$(BASEGAME)/vm;fi
-	@if [ ! -d $(B)/$(MISSIONPACK) ];then $(MKDIR) $(B)/$(MISSIONPACK);fi
-	@if [ ! -d $(B)/$(MISSIONPACK)/cgame ];then $(MKDIR) $(B)/$(MISSIONPACK)/cgame;fi
-	@if [ ! -d $(B)/$(MISSIONPACK)/game ];then $(MKDIR) $(B)/$(MISSIONPACK)/game;fi
-	@if [ ! -d $(B)/$(MISSIONPACK)/ui ];then $(MKDIR) $(B)/$(MISSIONPACK)/ui;fi
-	@if [ ! -d $(B)/$(MISSIONPACK)/qcommon ];then $(MKDIR) $(B)/$(MISSIONPACK)/qcommon;fi
-	@if [ ! -d $(B)/$(MISSIONPACK)/vm ];then $(MKDIR) $(B)/$(MISSIONPACK)/vm;fi
-	@if [ ! -d $(B)/tools ];then $(MKDIR) $(B)/tools;fi
-	@if [ ! -d $(B)/tools/asm ];then $(MKDIR) $(B)/tools/asm;fi
-	@if [ ! -d $(B)/tools/etc ];then $(MKDIR) $(B)/tools/etc;fi
-	@if [ ! -d $(B)/tools/rcc ];then $(MKDIR) $(B)/tools/rcc;fi
-	@if [ ! -d $(B)/tools/cpp ];then $(MKDIR) $(B)/tools/cpp;fi
-	@if [ ! -d $(B)/tools/lburg ];then $(MKDIR) $(B)/tools/lburg;fi
-
-#############################################################################
-# QVM BUILD TOOLS
-#############################################################################
-
-TOOLS_OPTIMIZE = -g -Wall -fno-strict-aliasing
-TOOLS_CFLAGS += $(TOOLS_OPTIMIZE) \
-                -DTEMPDIR=\"$(TEMPDIR)\" -DSYSTEM=\"\" \
-                -I$(Q3LCCSRCDIR) \
-                -I$(LBURGDIR)
-TOOLS_LIBS =
-TOOLS_LDFLAGS =
-
-ifeq ($(GENERATE_DEPENDENCIES),1)
-	TOOLS_CFLAGS += -MMD
-endif
-
-define DO_TOOLS_CC
-$(echo_cmd) "TOOLS_CC $<"
-$(Q)$(CC) $(TOOLS_CFLAGS) -o $@ -c $<
-endef
-
-define DO_TOOLS_CC_DAGCHECK
-$(echo_cmd) "TOOLS_CC_DAGCHECK $<"
-$(Q)$(CC) $(TOOLS_CFLAGS) -Wno-unused -o $@ -c $<
-endef
-
-LBURG       = $(B)/tools/lburg/lburg$(BINEXT)
-DAGCHECK_C  = $(B)/tools/rcc/dagcheck.c
-Q3RCC       = $(B)/tools/q3rcc$(BINEXT)
-Q3CPP       = $(B)/tools/q3cpp$(BINEXT)
-Q3LCC       = $(B)/tools/q3lcc$(BINEXT)
-Q3ASM       = $(B)/tools/q3asm$(BINEXT)
-
-LBURGOBJ= \
-	$(B)/tools/lburg/lburg.o \
-	$(B)/tools/lburg/gram.o
-
-$(B)/tools/lburg/%.o: $(LBURGDIR)/%.c
-	$(DO_TOOLS_CC)
-
-$(LBURG): $(LBURGOBJ)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(TOOLS_CFLAGS) $(TOOLS_LDFLAGS) -o $@ $^ $(TOOLS_LIBS)
-
-Q3RCCOBJ = \
-  $(B)/tools/rcc/alloc.o \
-  $(B)/tools/rcc/bind.o \
-  $(B)/tools/rcc/bytecode.o \
-  $(B)/tools/rcc/dag.o \
-  $(B)/tools/rcc/dagcheck.o \
-  $(B)/tools/rcc/decl.o \
-  $(B)/tools/rcc/enode.o \
-  $(B)/tools/rcc/error.o \
-  $(B)/tools/rcc/event.o \
-  $(B)/tools/rcc/expr.o \
-  $(B)/tools/rcc/gen.o \
-  $(B)/tools/rcc/init.o \
-  $(B)/tools/rcc/inits.o \
-  $(B)/tools/rcc/input.o \
-  $(B)/tools/rcc/lex.o \
-  $(B)/tools/rcc/list.o \
-  $(B)/tools/rcc/main.o \
-  $(B)/tools/rcc/null.o \
-  $(B)/tools/rcc/output.o \
-  $(B)/tools/rcc/prof.o \
-  $(B)/tools/rcc/profio.o \
-  $(B)/tools/rcc/simp.o \
-  $(B)/tools/rcc/stmt.o \
-  $(B)/tools/rcc/string.o \
-  $(B)/tools/rcc/sym.o \
-  $(B)/tools/rcc/symbolic.o \
-  $(B)/tools/rcc/trace.o \
-  $(B)/tools/rcc/tree.o \
-  $(B)/tools/rcc/types.o
-
-$(DAGCHECK_C): $(LBURG) $(Q3LCCSRCDIR)/dagcheck.md
-	$(echo_cmd) "LBURG $(Q3LCCSRCDIR)/dagcheck.md"
-	$(Q)$(LBURG) $(Q3LCCSRCDIR)/dagcheck.md $@
-
-$(B)/tools/rcc/dagcheck.o: $(DAGCHECK_C)
-	$(DO_TOOLS_CC_DAGCHECK)
-
-$(B)/tools/rcc/%.o: $(Q3LCCSRCDIR)/%.c
-	$(DO_TOOLS_CC)
-
-$(Q3RCC): $(Q3RCCOBJ)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(TOOLS_CFLAGS) $(TOOLS_LDFLAGS) -o $@ $^ $(TOOLS_LIBS)
-
-Q3CPPOBJ = \
-	$(B)/tools/cpp/cpp.o \
-	$(B)/tools/cpp/lex.o \
-	$(B)/tools/cpp/nlist.o \
-	$(B)/tools/cpp/tokens.o \
-	$(B)/tools/cpp/macro.o \
-	$(B)/tools/cpp/eval.o \
-	$(B)/tools/cpp/include.o \
-	$(B)/tools/cpp/hideset.o \
-	$(B)/tools/cpp/getopt.o \
-	$(B)/tools/cpp/unix.o
-
-$(B)/tools/cpp/%.o: $(Q3CPPDIR)/%.c
-	$(DO_TOOLS_CC)
-
-$(Q3CPP): $(Q3CPPOBJ)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(TOOLS_CFLAGS) $(TOOLS_LDFLAGS) -o $@ $^ $(TOOLS_LIBS)
-
-Q3LCCOBJ = \
-	$(B)/tools/etc/lcc.o \
-	$(B)/tools/etc/bytecode.o
-
-$(B)/tools/etc/%.o: $(Q3LCCETCDIR)/%.c
-	$(DO_TOOLS_CC)
-
-$(Q3LCC): $(Q3LCCOBJ) $(Q3RCC) $(Q3CPP)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(TOOLS_CFLAGS) $(TOOLS_LDFLAGS) -o $@ $(Q3LCCOBJ) $(TOOLS_LIBS)
-
-define DO_Q3LCC
-$(echo_cmd) "Q3LCC $<"
-$(Q)$(Q3LCC) $(BASEGAME_CFLAGS) -o $@ $<
-endef
-
-define DO_CGAME_Q3LCC
-$(echo_cmd) "CGAME_Q3LCC $<"
-$(Q)$(Q3LCC) $(BASEGAME_CFLAGS) -DCGAME -o $@ $<
-endef
-
-define DO_GAME_Q3LCC
-$(echo_cmd) "GAME_Q3LCC $<"
-$(Q)$(Q3LCC) $(BASEGAME_CFLAGS) -DQAGAME -o $@ $<
-endef
-
-define DO_UI_Q3LCC
-$(echo_cmd) "UI_Q3LCC $<"
-$(Q)$(Q3LCC) $(BASEGAME_CFLAGS) -DUI -o $@ $<
-endef
-
-define DO_Q3LCC_MISSIONPACK
-$(echo_cmd) "Q3LCC_MISSIONPACK $<"
-$(Q)$(Q3LCC) $(MISSIONPACK_CFLAGS) -o $@ $<
-endef
-
-define DO_CGAME_Q3LCC_MISSIONPACK
-$(echo_cmd) "CGAME_Q3LCC_MISSIONPACK $<"
-$(Q)$(Q3LCC) $(MISSIONPACK_CFLAGS) -DCGAME -o $@ $<
-endef
-
-define DO_GAME_Q3LCC_MISSIONPACK
-$(echo_cmd) "GAME_Q3LCC_MISSIONPACK $<"
-$(Q)$(Q3LCC) $(MISSIONPACK_CFLAGS) -DQAGAME -o $@ $<
-endef
-
-define DO_UI_Q3LCC_MISSIONPACK
-$(echo_cmd) "UI_Q3LCC_MISSIONPACK $<"
-$(Q)$(Q3LCC) $(MISSIONPACK_CFLAGS) -DUI -o $@ $<
-endef
-
-
-Q3ASMOBJ = \
-  $(B)/tools/asm/q3asm.o \
-  $(B)/tools/asm/cmdlib.o
-
-$(B)/tools/asm/%.o: $(Q3ASMDIR)/%.c
-	$(DO_TOOLS_CC)
-
-$(Q3ASM): $(Q3ASMOBJ)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(TOOLS_CFLAGS) $(TOOLS_LDFLAGS) -o $@ $^ $(TOOLS_LIBS)
-
-
-#############################################################################
-# CLIENT/SERVER
-#############################################################################
-
-Q3OBJ = \
-  $(B)/client/cl_cgame.o \
-  $(B)/client/cl_cin.o \
-  $(B)/client/cl_console.o \
-  $(B)/client/cl_input.o \
-  $(B)/client/cl_keys.o \
-  $(B)/client/cl_main.o \
-  $(B)/client/cl_net_chan.o \
-  $(B)/client/cl_parse.o \
-  $(B)/client/cl_scrn.o \
-  $(B)/client/cl_ui.o \
-  $(B)/client/cl_avi.o \
-  \
-  $(B)/client/cm_load.o \
-  $(B)/client/cm_patch.o \
-  $(B)/client/cm_polylib.o \
-  $(B)/client/cm_test.o \
-  $(B)/client/cm_trace.o \
-  \
-  $(B)/client/cmd.o \
-  $(B)/client/common.o \
-  $(B)/client/cvar.o \
-  $(B)/client/files.o \
-  $(B)/client/md4.o \
-  $(B)/client/md5.o \
-  $(B)/client/msg.o \
-  $(B)/client/net_chan.o \
-  $(B)/client/net_ip.o \
-  $(B)/client/huffman.o \
-  \
-  $(B)/client/snd_adpcm.o \
-  $(B)/client/snd_dma.o \
-  $(B)/client/snd_mem.o \
-  $(B)/client/snd_mix.o \
-  $(B)/client/snd_wavelet.o \
-  \
-  $(B)/client/snd_main.o \
-  $(B)/client/snd_codec.o \
-  $(B)/client/snd_codec_wav.o \
-  $(B)/client/snd_codec_ogg.o \
-  \
-  $(B)/client/qal.o \
-  $(B)/client/snd_openal.o \
-  \
-  $(B)/client/cl_curl.o \
-  \
-  $(B)/client/sv_bot.o \
-  $(B)/client/sv_ccmds.o \
-  $(B)/client/sv_client.o \
-  $(B)/client/sv_game.o \
-  $(B)/client/sv_init.o \
-  $(B)/client/sv_main.o \
-  $(B)/client/sv_net_chan.o \
-  $(B)/client/sv_snapshot.o \
-  $(B)/client/sv_world.o \
-  \
-  $(B)/client/q_math.o \
-  $(B)/client/q_shared.o \
-  \
-  $(B)/client/unzip.o \
-  $(B)/client/ioapi.o \
-  $(B)/client/puff.o \
-  $(B)/client/vm.o \
-  $(B)/client/vm_interpreted.o \
-  \
-  $(B)/client/be_aas_bspq3.o \
-  $(B)/client/be_aas_cluster.o \
-  $(B)/client/be_aas_debug.o \
-  $(B)/client/be_aas_entity.o \
-  $(B)/client/be_aas_file.o \
-  $(B)/client/be_aas_main.o \
-  $(B)/client/be_aas_move.o \
-  $(B)/client/be_aas_optimize.o \
-  $(B)/client/be_aas_reach.o \
-  $(B)/client/be_aas_route.o \
-  $(B)/client/be_aas_routealt.o \
-  $(B)/client/be_aas_sample.o \
-  $(B)/client/be_ai_char.o \
-  $(B)/client/be_ai_chat.o \
-  $(B)/client/be_ai_gen.o \
-  $(B)/client/be_ai_goal.o \
-  $(B)/client/be_ai_move.o \
-  $(B)/client/be_ai_weap.o \
-  $(B)/client/be_ai_weight.o \
-  $(B)/client/be_ea.o \
-  $(B)/client/be_interface.o \
-  $(B)/client/l_crc.o \
-  $(B)/client/l_libvar.o \
-  $(B)/client/l_log.o \
-  $(B)/client/l_memory.o \
-  $(B)/client/l_precomp.o \
-  $(B)/client/l_script.o \
-  $(B)/client/l_struct.o \
-  \
-  $(B)/client/sdl_input.o \
-  $(B)/client/sdl_snd.o \
-  \
-  $(B)/client/con_log.o \
-  $(B)/client/sys_main.o
-
-ifeq ($(PLATFORM),mingw32)
-  Q3OBJ += \
-	$(B)/client/con_passive.o
-else
-  Q3OBJ += \
-	$(B)/client/con_tty.o
-endif
-
-Q3R2OBJ = \
-  $(B)/rend2/tr_animation.o \
-  $(B)/rend2/tr_backend.o \
-  $(B)/rend2/tr_bsp.o \
-  $(B)/rend2/tr_cmds.o \
-  $(B)/rend2/tr_curve.o \
-  $(B)/rend2/tr_extramath.o \
-  $(B)/rend2/tr_extensions.o \
-  $(B)/rend2/tr_fbo.o \
-  $(B)/rend2/tr_flares.o \
-  $(B)/rend2/tr_font.o \
-  $(B)/rend2/tr_glsl.o \
-  $(B)/rend2/tr_image.o \
-  $(B)/rend2/tr_image_png.o \
-  $(B)/rend2/tr_image_jpg.o \
-  $(B)/rend2/tr_image_bmp.o \
-  $(B)/rend2/tr_image_tga.o \
-  $(B)/rend2/tr_image_pcx.o \
-  $(B)/rend2/tr_init.o \
-  $(B)/rend2/tr_light.o \
-  $(B)/rend2/tr_main.o \
-  $(B)/rend2/tr_marks.o \
-  $(B)/rend2/tr_mesh.o \
-  $(B)/rend2/tr_model.o \
-  $(B)/rend2/tr_model_iqm.o \
-  $(B)/rend2/tr_noise.o \
-  $(B)/rend2/tr_postprocess.o \
-  $(B)/rend2/tr_scene.o \
-  $(B)/rend2/tr_shade.o \
-  $(B)/rend2/tr_shade_calc.o \
-  $(B)/rend2/tr_shader.o \
-  $(B)/rend2/tr_shadows.o \
-  $(B)/rend2/tr_sky.o \
-  $(B)/rend2/tr_surface.o \
-  $(B)/rend2/tr_vbo.o \
-  $(B)/rend2/tr_world.o \
-  \
-  $(B)/renderer/sdl_gamma.o
-  
-Q3R2STRINGOBJ = \
-  $(B)/rend2/glsl/bokeh_fp.o \
-  $(B)/rend2/glsl/bokeh_vp.o \
-  $(B)/rend2/glsl/calclevels4x_fp.o \
-  $(B)/rend2/glsl/calclevels4x_vp.o \
-  $(B)/rend2/glsl/depthblur_fp.o \
-  $(B)/rend2/glsl/depthblur_vp.o \
-  $(B)/rend2/glsl/dlight_fp.o \
-  $(B)/rend2/glsl/dlight_vp.o \
-  $(B)/rend2/glsl/down4x_fp.o \
-  $(B)/rend2/glsl/down4x_vp.o \
-  $(B)/rend2/glsl/fogpass_fp.o \
-  $(B)/rend2/glsl/fogpass_vp.o \
-  $(B)/rend2/glsl/generic_fp.o \
-  $(B)/rend2/glsl/generic_vp.o \
-  $(B)/rend2/glsl/lightall_fp.o \
-  $(B)/rend2/glsl/lightall_vp.o \
-  $(B)/rend2/glsl/pshadow_fp.o \
-  $(B)/rend2/glsl/pshadow_vp.o \
-  $(B)/rend2/glsl/shadowfill_fp.o \
-  $(B)/rend2/glsl/shadowfill_vp.o \
-  $(B)/rend2/glsl/shadowmask_fp.o \
-  $(B)/rend2/glsl/shadowmask_vp.o \
-  $(B)/rend2/glsl/ssao_fp.o \
-  $(B)/rend2/glsl/ssao_vp.o \
-  $(B)/rend2/glsl/texturecolor_fp.o \
-  $(B)/rend2/glsl/texturecolor_vp.o \
-  $(B)/rend2/glsl/tonemap_fp.o \
-  $(B)/rend2/glsl/tonemap_vp.o
-
-Q3ROBJ = \
-  $(B)/renderer/tr_animation.o \
-  $(B)/renderer/tr_backend.o \
-  $(B)/renderer/tr_bsp.o \
-  $(B)/renderer/tr_cmds.o \
-  $(B)/renderer/tr_curve.o \
-  $(B)/renderer/tr_flares.o \
-  $(B)/renderer/tr_font.o \
-  $(B)/renderer/tr_image.o \
-  $(B)/renderer/tr_image_png.o \
-  $(B)/renderer/tr_image_jpg.o \
-  $(B)/renderer/tr_image_bmp.o \
-  $(B)/renderer/tr_image_tga.o \
-  $(B)/renderer/tr_image_pcx.o \
-  $(B)/renderer/tr_init.o \
-  $(B)/renderer/tr_light.o \
-  $(B)/renderer/tr_main.o \
-  $(B)/renderer/tr_marks.o \
-  $(B)/renderer/tr_mesh.o \
-  $(B)/renderer/tr_model.o \
-  $(B)/renderer/tr_model_iqm.o \
-  $(B)/renderer/tr_noise.o \
-  $(B)/renderer/tr_scene.o \
-  $(B)/renderer/tr_shade.o \
-  $(B)/renderer/tr_shade_calc.o \
-  $(B)/renderer/tr_shader.o \
-  $(B)/renderer/tr_shadows.o \
-  $(B)/renderer/tr_sky.o \
-  $(B)/renderer/tr_surface.o \
-  $(B)/renderer/tr_world.o \
-  \
-  $(B)/renderer/sdl_gamma.o
-
-Q3RPOBJ_UP = \
-  $(B)/renderer/sdl_glimp.o
-
-Q3RPOBJ_SMP = \
-  $(B)/renderersmp/sdl_glimp.o
-
-ifneq ($(USE_RENDERER_DLOPEN), 0)
-  Q3ROBJ += \
-    $(B)/renderer/q_shared.o \
-    $(B)/renderer/puff.o \
-    $(B)/renderer/q_math.o \
-    $(B)/renderer/tr_subs.o
-
-  Q3R2OBJ += \
-    $(B)/renderer/q_shared.o \
-    $(B)/renderer/puff.o \
-    $(B)/renderer/q_math.o \
-    $(B)/renderer/tr_subs.o
-endif
-
-ifneq ($(USE_INTERNAL_JPEG),0)
-  JPGOBJ = \
-    $(B)/renderer/jaricom.o \
-    $(B)/renderer/jcapimin.o \
-    $(B)/renderer/jcapistd.o \
-    $(B)/renderer/jcarith.o \
-    $(B)/renderer/jccoefct.o  \
-    $(B)/renderer/jccolor.o \
-    $(B)/renderer/jcdctmgr.o \
-    $(B)/renderer/jchuff.o   \
-    $(B)/renderer/jcinit.o \
-    $(B)/renderer/jcmainct.o \
-    $(B)/renderer/jcmarker.o \
-    $(B)/renderer/jcmaster.o \
-    $(B)/renderer/jcomapi.o \
-    $(B)/renderer/jcparam.o \
-    $(B)/renderer/jcprepct.o \
-    $(B)/renderer/jcsample.o \
-    $(B)/renderer/jctrans.o \
-    $(B)/renderer/jdapimin.o \
-    $(B)/renderer/jdapistd.o \
-    $(B)/renderer/jdarith.o \
-    $(B)/renderer/jdatadst.o \
-    $(B)/renderer/jdatasrc.o \
-    $(B)/renderer/jdcoefct.o \
-    $(B)/renderer/jdcolor.o \
-    $(B)/renderer/jddctmgr.o \
-    $(B)/renderer/jdhuff.o \
-    $(B)/renderer/jdinput.o \
-    $(B)/renderer/jdmainct.o \
-    $(B)/renderer/jdmarker.o \
-    $(B)/renderer/jdmaster.o \
-    $(B)/renderer/jdmerge.o \
-    $(B)/renderer/jdpostct.o \
-    $(B)/renderer/jdsample.o \
-    $(B)/renderer/jdtrans.o \
-    $(B)/renderer/jerror.o \
-    $(B)/renderer/jfdctflt.o \
-    $(B)/renderer/jfdctfst.o \
-    $(B)/renderer/jfdctint.o \
-    $(B)/renderer/jidctflt.o \
-    $(B)/renderer/jidctfst.o \
-    $(B)/renderer/jidctint.o \
-    $(B)/renderer/jmemmgr.o \
-    $(B)/renderer/jmemnobs.o \
-    $(B)/renderer/jquant1.o \
-    $(B)/renderer/jquant2.o \
-    $(B)/renderer/jutils.o
-endif
-
-ifeq ($(ARCH),i386)
-  Q3OBJ += \
-    $(B)/client/snd_mixa.o \
-    $(B)/client/matha.o \
-    $(B)/client/snapvector.o \
-    $(B)/client/ftola.o
-endif
-ifeq ($(ARCH),x86)
-  Q3OBJ += \
-    $(B)/client/snd_mixa.o \
-    $(B)/client/matha.o \
-    $(B)/client/snapvector.o \
-    $(B)/client/ftola.o
-endif
-ifeq ($(ARCH),x86_64)
-  Q3OBJ += \
-    $(B)/client/snapvector.o \
-    $(B)/client/ftola.o
-endif
-ifeq ($(ARCH),amd64)
-  Q3OBJ += \
-    $(B)/client/snapvector.o \
-    $(B)/client/ftola.o
-endif
-ifeq ($(ARCH),x64)
-  Q3OBJ += \
-    $(B)/client/snapvector.o \
-    $(B)/client/ftola.o
-endif
-
-ifeq ($(USE_VOIP),1)
-ifeq ($(USE_INTERNAL_SPEEX),1)
-Q3OBJ += \
-  $(B)/client/bits.o \
-  $(B)/client/buffer.o \
-  $(B)/client/cb_search.o \
-  $(B)/client/exc_10_16_table.o \
-  $(B)/client/exc_10_32_table.o \
-  $(B)/client/exc_20_32_table.o \
-  $(B)/client/exc_5_256_table.o \
-  $(B)/client/exc_5_64_table.o \
-  $(B)/client/exc_8_128_table.o \
-  $(B)/client/fftwrap.o \
-  $(B)/client/filterbank.o \
-  $(B)/client/filters.o \
-  $(B)/client/gain_table.o \
-  $(B)/client/gain_table_lbr.o \
-  $(B)/client/hexc_10_32_table.o \
-  $(B)/client/hexc_table.o \
-  $(B)/client/high_lsp_tables.o \
-  $(B)/client/jitter.o \
-  $(B)/client/kiss_fft.o \
-  $(B)/client/kiss_fftr.o \
-  $(B)/client/lpc.o \
-  $(B)/client/lsp.o \
-  $(B)/client/lsp_tables_nb.o \
-  $(B)/client/ltp.o \
-  $(B)/client/mdf.o \
-  $(B)/client/modes.o \
-  $(B)/client/modes_wb.o \
-  $(B)/client/nb_celp.o \
-  $(B)/client/preprocess.o \
-  $(B)/client/quant_lsp.o \
-  $(B)/client/resample.o \
-  $(B)/client/sb_celp.o \
-  $(B)/client/smallft.o \
-  $(B)/client/speex.o \
-  $(B)/client/speex_callbacks.o \
-  $(B)/client/speex_header.o \
-  $(B)/client/stereo.o \
-  $(B)/client/vbr.o \
-  $(B)/client/vq.o \
-  $(B)/client/window.o
-endif
-endif
-
-ifeq ($(USE_INTERNAL_ZLIB),1)
-Q3OBJ += \
-  $(B)/client/adler32.o \
-  $(B)/client/crc32.o \
-  $(B)/client/inffast.o \
-  $(B)/client/inflate.o \
-  $(B)/client/inftrees.o \
-  $(B)/client/zutil.o
-endif
-
-ifeq ($(HAVE_VM_COMPILED),true)
-  ifeq ($(ARCH),i386)
-    Q3OBJ += \
-      $(B)/client/vm_x86.o
-  endif
-  ifeq ($(ARCH),x86)
-    Q3OBJ += \
-      $(B)/client/vm_x86.o
-  endif
-  ifeq ($(ARCH),x86_64)
-    ifeq ($(USE_OLD_VM64),1)
-      Q3OBJ += \
-        $(B)/client/vm_x86_64.o \
-        $(B)/client/vm_x86_64_assembler.o
-    else
-      Q3OBJ += \
-        $(B)/client/vm_x86.o
-    endif
-  endif
-  ifeq ($(ARCH),amd64)
-    ifeq ($(USE_OLD_VM64),1)
-      Q3OBJ += \
-        $(B)/client/vm_x86_64.o \
-        $(B)/client/vm_x86_64_assembler.o
-    else
-      Q3OBJ += \
-        $(B)/client/vm_x86.o
-    endif
-  endif
-  ifeq ($(ARCH),x64)
-    ifeq ($(USE_OLD_VM64),1)
-      Q3OBJ += \
-        $(B)/client/vm_x86_64.o \
-        $(B)/client/vm_x86_64_assembler.o
-    else
-      Q3OBJ += \
-        $(B)/client/vm_x86.o
-    endif
-  endif
-  ifeq ($(ARCH),ppc)
-    Q3OBJ += $(B)/client/vm_powerpc.o $(B)/client/vm_powerpc_asm.o
-  endif
-  ifeq ($(ARCH),ppc64)
-    Q3OBJ += $(B)/client/vm_powerpc.o $(B)/client/vm_powerpc_asm.o
-  endif
-  ifeq ($(ARCH),sparc)
-    Q3OBJ += $(B)/client/vm_sparc.o
-  endif
-endif
-
-ifeq ($(PLATFORM),mingw32)
-  Q3OBJ += \
-    $(B)/client/win_resource.o \
-    $(B)/client/sys_win32.o
-else
-  Q3OBJ += \
-    $(B)/client/sys_unix.o
-endif
-
-ifeq ($(PLATFORM),darwin)
-  Q3OBJ += \
-    $(B)/client/sys_osx.o
-endif
-
-ifeq ($(USE_MUMBLE),1)
-  Q3OBJ += \
-    $(B)/client/libmumblelink.o
-endif
-
-ifneq ($(USE_RENDERER_DLOPEN),0)
-$(B)/$(CLIENTBIN)$(FULLBINEXT): $(Q3OBJ) $(LIBSDLMAIN)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(CLIENT_CFLAGS) $(CFLAGS) $(CLIENT_LDFLAGS) $(LDFLAGS) \
-		-o $@ $(Q3OBJ) \
-		$(LIBSDLMAIN) $(CLIENT_LIBS) $(LIBS)
-
-$(B)/renderer_opengl1_$(SHLIBNAME): $(Q3ROBJ) $(Q3RPOBJ_UP) $(JPGOBJ)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(Q3ROBJ) $(Q3RPOBJ_UP) $(JPGOBJ) \
-		$(THREAD_LIBS) $(LIBSDLMAIN) $(RENDERER_LIBS) $(LIBS)
-
-$(B)/renderer_opengl1_smp_$(SHLIBNAME): $(Q3ROBJ) $(Q3RPOBJ_SMP) $(JPGOBJ)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(Q3ROBJ) $(Q3RPOBJ_SMP) $(JPGOBJ) \
-		$(THREAD_LIBS) $(LIBSDLMAIN) $(RENDERER_LIBS) $(LIBS)
-
-$(B)/renderer_rend2_$(SHLIBNAME): $(Q3R2OBJ) $(Q3R2STRINGOBJ) $(Q3RPOBJ_UP) $(JPGOBJ)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(Q3R2OBJ) $(Q3R2STRINGOBJ) $(Q3RPOBJ_UP) $(JPGOBJ) \
-		$(THREAD_LIBS) $(LIBSDLMAIN) $(RENDERER_LIBS) $(LIBS)
-
-$(B)/renderer_rend2_smp_$(SHLIBNAME): $(Q3R2OBJ) $(Q3R2STRINGOBJ) $(Q3RPOBJ_SMP) $(JPGOBJ)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(Q3R2OBJ) $(Q3R2STRINGOBJ) $(Q3RPOBJ_SMP) $(JPGOBJ) \
-		$(THREAD_LIBS) $(LIBSDLMAIN) $(RENDERER_LIBS) $(LIBS)
-
-else
-$(B)/$(CLIENTBIN)$(FULLBINEXT): $(Q3OBJ) $(Q3ROBJ) $(Q3RPOBJ_UP) $(JPGOBJ) $(LIBSDLMAIN)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(CLIENT_CFLAGS) $(CFLAGS) $(CLIENT_LDFLAGS) $(LDFLAGS) \
-		-o $@ $(Q3OBJ) $(Q3ROBJ) $(Q3RPOBJ_UP) $(JPGOBJ) \
-		$(LIBSDLMAIN) $(CLIENT_LIBS) $(RENDERER_LIBS) $(LIBS)
-
-$(B)/$(CLIENTBIN)-smp$(FULLBINEXT): $(Q3OBJ) $(Q3ROBJ) $(Q3RPOBJ_SMP) $(JPGOBJ) $(LIBSDLMAIN)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(CLIENT_CFLAGS) $(CFLAGS) $(CLIENT_LDFLAGS) $(LDFLAGS) $(THREAD_LDFLAGS) \
-		-o $@ $(Q3OBJ) $(Q3ROBJ) $(Q3RPOBJ_SMP) $(JPGOBJ) \
-		$(THREAD_LIBS) $(LIBSDLMAIN) $(CLIENT_LIBS) $(RENDERER_LIBS) $(LIBS)
-
-$(B)/$(CLIENTBIN)_rend2$(FULLBINEXT): $(Q3OBJ) $(Q3R2OBJ) $(Q3R2STRINGOBJ) $(Q3RPOBJ_UP) $(JPGOBJ) $(LIBSDLMAIN)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(CLIENT_CFLAGS) $(CFLAGS) $(CLIENT_LDFLAGS) $(LDFLAGS) \
-		-o $@ $(Q3OBJ) $(Q3R2OBJ) $(Q3R2STRINGOBJ) $(Q3RPOBJ_UP) $(JPGOBJ) \
-		$(LIBSDLMAIN) $(CLIENT_LIBS) $(RENDERER_LIBS) $(LIBS)
-
-$(B)/$(CLIENTBIN)_rend2-smp$(FULLBINEXT): $(Q3OBJ) $(Q3R2OBJ) $(Q3R2STRINGOBJ) $(Q3RPOBJ_SMP) $(JPGOBJ) $(LIBSDLMAIN)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(CLIENT_CFLAGS) $(CFLAGS) $(CLIENT_LDFLAGS) $(LDFLAGS) $(THREAD_LDFLAGS) \
-		-o $@ $(Q3OBJ) $(Q3R2OBJ) $(Q3R2STRINGOBJ) $(Q3RPOBJ_SMP) $(JPGOBJ) \
-		$(THREAD_LIBS) $(LIBSDLMAIN) $(CLIENT_LIBS) $(RENDERER_LIBS) $(LIBS)
-endif
-
-ifneq ($(strip $(LIBSDLMAIN)),)
-ifneq ($(strip $(LIBSDLMAINSRC)),)
-$(LIBSDLMAIN) : $(LIBSDLMAINSRC)
-	cp $< $@
-	ranlib $@
-endif
-endif
-
-
-
-#############################################################################
-# DEDICATED SERVER
-#############################################################################
-
-Q3DOBJ = \
-  $(B)/ded/sv_bot.o \
-  $(B)/ded/sv_client.o \
-  $(B)/ded/sv_ccmds.o \
-  $(B)/ded/sv_game.o \
-  $(B)/ded/sv_init.o \
-  $(B)/ded/sv_main.o \
-  $(B)/ded/sv_net_chan.o \
-  $(B)/ded/sv_snapshot.o \
-  $(B)/ded/sv_world.o \
-  \
-  $(B)/ded/cm_load.o \
-  $(B)/ded/cm_patch.o \
-  $(B)/ded/cm_polylib.o \
-  $(B)/ded/cm_test.o \
-  $(B)/ded/cm_trace.o \
-  $(B)/ded/cmd.o \
-  $(B)/ded/common.o \
-  $(B)/ded/cvar.o \
-  $(B)/ded/files.o \
-  $(B)/ded/md4.o \
-  $(B)/ded/msg.o \
-  $(B)/ded/net_chan.o \
-  $(B)/ded/net_ip.o \
-  $(B)/ded/huffman.o \
-  \
-  $(B)/ded/q_math.o \
-  $(B)/ded/q_shared.o \
-  \
-  $(B)/ded/unzip.o \
-  $(B)/ded/ioapi.o \
-  $(B)/ded/vm.o \
-  $(B)/ded/vm_interpreted.o \
-  \
-  $(B)/ded/be_aas_bspq3.o \
-  $(B)/ded/be_aas_cluster.o \
-  $(B)/ded/be_aas_debug.o \
-  $(B)/ded/be_aas_entity.o \
-  $(B)/ded/be_aas_file.o \
-  $(B)/ded/be_aas_main.o \
-  $(B)/ded/be_aas_move.o \
-  $(B)/ded/be_aas_optimize.o \
-  $(B)/ded/be_aas_reach.o \
-  $(B)/ded/be_aas_route.o \
-  $(B)/ded/be_aas_routealt.o \
-  $(B)/ded/be_aas_sample.o \
-  $(B)/ded/be_ai_char.o \
-  $(B)/ded/be_ai_chat.o \
-  $(B)/ded/be_ai_gen.o \
-  $(B)/ded/be_ai_goal.o \
-  $(B)/ded/be_ai_move.o \
-  $(B)/ded/be_ai_weap.o \
-  $(B)/ded/be_ai_weight.o \
-  $(B)/ded/be_ea.o \
-  $(B)/ded/be_interface.o \
-  $(B)/ded/l_crc.o \
-  $(B)/ded/l_libvar.o \
-  $(B)/ded/l_log.o \
-  $(B)/ded/l_memory.o \
-  $(B)/ded/l_precomp.o \
-  $(B)/ded/l_script.o \
-  $(B)/ded/l_struct.o \
-  \
-  $(B)/ded/null_client.o \
-  $(B)/ded/null_input.o \
-  $(B)/ded/null_snddma.o \
-  \
-  $(B)/ded/con_log.o \
-  $(B)/ded/sys_main.o
-
-ifeq ($(ARCH),i386)
-  Q3DOBJ += \
-      $(B)/ded/matha.o \
-      $(B)/ded/snapvector.o \
-      $(B)/ded/ftola.o
-endif
-ifeq ($(ARCH),x86)
-  Q3DOBJ += \
-      $(B)/ded/matha.o \
-      $(B)/ded/snapvector.o \
-      $(B)/ded/ftola.o 
-endif
-ifeq ($(ARCH),x86_64)
-  Q3DOBJ += \
-      $(B)/ded/snapvector.o \
-      $(B)/ded/ftola.o 
-endif
-ifeq ($(ARCH),amd64)
-  Q3DOBJ += \
-      $(B)/ded/snapvector.o \
-      $(B)/ded/ftola.o 
-endif
-ifeq ($(ARCH),x64)
-  Q3DOBJ += \
-      $(B)/ded/snapvector.o \
-      $(B)/ded/ftola.o 
-endif
-
-ifeq ($(USE_INTERNAL_ZLIB),1)
-Q3DOBJ += \
-  $(B)/ded/adler32.o \
-  $(B)/ded/crc32.o \
-  $(B)/ded/inffast.o \
-  $(B)/ded/inflate.o \
-  $(B)/ded/inftrees.o \
-  $(B)/ded/zutil.o
-endif
-
-ifeq ($(HAVE_VM_COMPILED),true)
-  ifeq ($(ARCH),i386)
-    Q3DOBJ += \
-      $(B)/ded/vm_x86.o
-  endif
-  ifeq ($(ARCH),x86)
-    Q3DOBJ += \
-      $(B)/ded/vm_x86.o
-  endif
-  ifeq ($(ARCH),x86_64)
-    ifeq ($(USE_OLD_VM64),1)
-      Q3DOBJ += \
-        $(B)/ded/vm_x86_64.o \
-        $(B)/ded/vm_x86_64_assembler.o
-    else
-      Q3DOBJ += \
-        $(B)/ded/vm_x86.o
-    endif
-  endif
-  ifeq ($(ARCH),amd64)
-    ifeq ($(USE_OLD_VM64),1)
-      Q3DOBJ += \
-        $(B)/ded/vm_x86_64.o \
-        $(B)/ded/vm_x86_64_assembler.o
-    else
-      Q3DOBJ += \
-        $(B)/ded/vm_x86.o
-    endif
-  endif
-  ifeq ($(ARCH),x64)
-    ifeq ($(USE_OLD_VM64),1)
-      Q3DOBJ += \
-        $(B)/ded/vm_x86_64.o \
-        $(B)/ded/vm_x86_64_assembler.o
-    else
-      Q3DOBJ += \
-        $(B)/ded/vm_x86.o
-    endif
-  endif
-  ifeq ($(ARCH),ppc)
-    Q3DOBJ += $(B)/ded/vm_powerpc.o $(B)/ded/vm_powerpc_asm.o
-  endif
-  ifeq ($(ARCH),ppc64)
-    Q3DOBJ += $(B)/ded/vm_powerpc.o $(B)/ded/vm_powerpc_asm.o
-  endif
-  ifeq ($(ARCH),sparc)
-    Q3DOBJ += $(B)/ded/vm_sparc.o
-  endif
-endif
-
-ifeq ($(PLATFORM),mingw32)
-  Q3DOBJ += \
-    $(B)/ded/win_resource.o \
-    $(B)/ded/sys_win32.o \
-    $(B)/ded/con_win32.o
-else
-  Q3DOBJ += \
-    $(B)/ded/sys_unix.o \
-    $(B)/ded/con_tty.o
-endif
-
-ifeq ($(PLATFORM),darwin)
-  Q3DOBJ += \
-    $(B)/ded/sys_osx.o
-endif
-
-$(B)/$(SERVERBIN)$(FULLBINEXT): $(Q3DOBJ)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(Q3DOBJ) $(LIBS)
-
-
-
-#############################################################################
-## BASEQ3 CGAME
-#############################################################################
-
-Q3CGOBJ_ = \
-  $(B)/$(BASEGAME)/cgame/cg_main.o \
-  $(B)/$(BASEGAME)/cgame/bg_misc.o \
-  $(B)/$(BASEGAME)/cgame/bg_pmove.o \
-  $(B)/$(BASEGAME)/cgame/bg_slidemove.o \
-  $(B)/$(BASEGAME)/cgame/bg_lib.o \
-  $(B)/$(BASEGAME)/cgame/cg_consolecmds.o \
-  $(B)/$(BASEGAME)/cgame/cg_draw.o \
-  $(B)/$(BASEGAME)/cgame/cg_drawtools.o \
-  $(B)/$(BASEGAME)/cgame/cg_effects.o \
-  $(B)/$(BASEGAME)/cgame/cg_ents.o \
-  $(B)/$(BASEGAME)/cgame/cg_event.o \
-  $(B)/$(BASEGAME)/cgame/cg_info.o \
-  $(B)/$(BASEGAME)/cgame/cg_localents.o \
-  $(B)/$(BASEGAME)/cgame/cg_marks.o \
-  $(B)/$(BASEGAME)/cgame/cg_particles.o \
-  $(B)/$(BASEGAME)/cgame/cg_players.o \
-  $(B)/$(BASEGAME)/cgame/cg_playerstate.o \
-  $(B)/$(BASEGAME)/cgame/cg_predict.o \
-  $(B)/$(BASEGAME)/cgame/cg_scoreboard.o \
-  $(B)/$(BASEGAME)/cgame/cg_servercmds.o \
-  $(B)/$(BASEGAME)/cgame/cg_snapshot.o \
-  $(B)/$(BASEGAME)/cgame/cg_view.o \
-  $(B)/$(BASEGAME)/cgame/cg_weapons.o \
-  \
-  $(B)/$(BASEGAME)/qcommon/q_math.o \
-  $(B)/$(BASEGAME)/qcommon/q_shared.o
-
-Q3CGOBJ = $(Q3CGOBJ_) $(B)/$(BASEGAME)/cgame/cg_syscalls.o
-Q3CGVMOBJ = $(Q3CGOBJ_:%.o=%.asm)
-
-$(B)/$(BASEGAME)/cgame$(SHLIBNAME): $(Q3CGOBJ)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(Q3CGOBJ)
-
-$(B)/$(BASEGAME)/vm/cgame.qvm: $(Q3CGVMOBJ) $(CGDIR)/cg_syscalls.asm $(Q3ASM)
-	$(echo_cmd) "Q3ASM $@"
-	$(Q)$(Q3ASM) -o $@ $(Q3CGVMOBJ) $(CGDIR)/cg_syscalls.asm
-
-#############################################################################
-## MISSIONPACK CGAME
-#############################################################################
-
-MPCGOBJ_ = \
-  $(B)/$(MISSIONPACK)/cgame/cg_main.o \
-  $(B)/$(MISSIONPACK)/cgame/bg_misc.o \
-  $(B)/$(MISSIONPACK)/cgame/bg_pmove.o \
-  $(B)/$(MISSIONPACK)/cgame/bg_slidemove.o \
-  $(B)/$(MISSIONPACK)/cgame/bg_lib.o \
-  $(B)/$(MISSIONPACK)/cgame/cg_consolecmds.o \
-  $(B)/$(MISSIONPACK)/cgame/cg_newdraw.o \
-  $(B)/$(MISSIONPACK)/cgame/cg_draw.o \
-  $(B)/$(MISSIONPACK)/cgame/cg_drawtools.o \
-  $(B)/$(MISSIONPACK)/cgame/cg_effects.o \
-  $(B)/$(MISSIONPACK)/cgame/cg_ents.o \
-  $(B)/$(MISSIONPACK)/cgame/cg_event.o \
-  $(B)/$(MISSIONPACK)/cgame/cg_info.o \
-  $(B)/$(MISSIONPACK)/cgame/cg_localents.o \
-  $(B)/$(MISSIONPACK)/cgame/cg_marks.o \
-  $(B)/$(MISSIONPACK)/cgame/cg_particles.o \
-  $(B)/$(MISSIONPACK)/cgame/cg_players.o \
-  $(B)/$(MISSIONPACK)/cgame/cg_playerstate.o \
-  $(B)/$(MISSIONPACK)/cgame/cg_predict.o \
-  $(B)/$(MISSIONPACK)/cgame/cg_scoreboard.o \
-  $(B)/$(MISSIONPACK)/cgame/cg_servercmds.o \
-  $(B)/$(MISSIONPACK)/cgame/cg_snapshot.o \
-  $(B)/$(MISSIONPACK)/cgame/cg_view.o \
-  $(B)/$(MISSIONPACK)/cgame/cg_weapons.o \
-  $(B)/$(MISSIONPACK)/ui/ui_shared.o \
-  \
-  $(B)/$(MISSIONPACK)/qcommon/q_math.o \
-  $(B)/$(MISSIONPACK)/qcommon/q_shared.o
-
-MPCGOBJ = $(MPCGOBJ_) $(B)/$(MISSIONPACK)/cgame/cg_syscalls.o
-MPCGVMOBJ = $(MPCGOBJ_:%.o=%.asm)
-
-$(B)/$(MISSIONPACK)/cgame$(SHLIBNAME): $(MPCGOBJ)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(MPCGOBJ)
-
-$(B)/$(MISSIONPACK)/vm/cgame.qvm: $(MPCGVMOBJ) $(CGDIR)/cg_syscalls.asm $(Q3ASM)
-	$(echo_cmd) "Q3ASM $@"
-	$(Q)$(Q3ASM) -o $@ $(MPCGVMOBJ) $(CGDIR)/cg_syscalls.asm
-
-
-
-#############################################################################
-## BASEQ3 GAME
-#############################################################################
-
-Q3GOBJ_ = \
-  $(B)/$(BASEGAME)/game/g_main.o \
-  $(B)/$(BASEGAME)/game/ai_chat.o \
-  $(B)/$(BASEGAME)/game/ai_cmd.o \
-  $(B)/$(BASEGAME)/game/ai_dmnet.o \
-  $(B)/$(BASEGAME)/game/ai_dmq3.o \
-  $(B)/$(BASEGAME)/game/ai_main.o \
-  $(B)/$(BASEGAME)/game/ai_team.o \
-  $(B)/$(BASEGAME)/game/ai_vcmd.o \
-  $(B)/$(BASEGAME)/game/bg_misc.o \
-  $(B)/$(BASEGAME)/game/bg_pmove.o \
-  $(B)/$(BASEGAME)/game/bg_slidemove.o \
-  $(B)/$(BASEGAME)/game/bg_lib.o \
-  $(B)/$(BASEGAME)/game/g_active.o \
-  $(B)/$(BASEGAME)/game/g_arenas.o \
-  $(B)/$(BASEGAME)/game/g_bot.o \
-  $(B)/$(BASEGAME)/game/g_client.o \
-  $(B)/$(BASEGAME)/game/g_cmds.o \
-  $(B)/$(BASEGAME)/game/g_combat.o \
-  $(B)/$(BASEGAME)/game/g_items.o \
-  $(B)/$(BASEGAME)/game/g_mem.o \
-  $(B)/$(BASEGAME)/game/g_misc.o \
-  $(B)/$(BASEGAME)/game/g_missile.o \
-  $(B)/$(BASEGAME)/game/g_mover.o \
-  $(B)/$(BASEGAME)/game/g_session.o \
-  $(B)/$(BASEGAME)/game/g_spawn.o \
-  $(B)/$(BASEGAME)/game/g_svcmds.o \
-  $(B)/$(BASEGAME)/game/g_target.o \
-  $(B)/$(BASEGAME)/game/g_team.o \
-  $(B)/$(BASEGAME)/game/g_trigger.o \
-  $(B)/$(BASEGAME)/game/g_utils.o \
-  $(B)/$(BASEGAME)/game/g_weapon.o \
-  \
-  $(B)/$(BASEGAME)/qcommon/q_math.o \
-  $(B)/$(BASEGAME)/qcommon/q_shared.o
-
-Q3GOBJ = $(Q3GOBJ_) $(B)/$(BASEGAME)/game/g_syscalls.o
-Q3GVMOBJ = $(Q3GOBJ_:%.o=%.asm)
-
-$(B)/$(BASEGAME)/qagame$(SHLIBNAME): $(Q3GOBJ)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(Q3GOBJ)
-
-$(B)/$(BASEGAME)/vm/qagame.qvm: $(Q3GVMOBJ) $(GDIR)/g_syscalls.asm $(Q3ASM)
-	$(echo_cmd) "Q3ASM $@"
-	$(Q)$(Q3ASM) -o $@ $(Q3GVMOBJ) $(GDIR)/g_syscalls.asm
-
-#############################################################################
-## MISSIONPACK GAME
-#############################################################################
-
-MPGOBJ_ = \
-  $(B)/$(MISSIONPACK)/game/g_main.o \
-  $(B)/$(MISSIONPACK)/game/ai_chat.o \
-  $(B)/$(MISSIONPACK)/game/ai_cmd.o \
-  $(B)/$(MISSIONPACK)/game/ai_dmnet.o \
-  $(B)/$(MISSIONPACK)/game/ai_dmq3.o \
-  $(B)/$(MISSIONPACK)/game/ai_main.o \
-  $(B)/$(MISSIONPACK)/game/ai_team.o \
-  $(B)/$(MISSIONPACK)/game/ai_vcmd.o \
-  $(B)/$(MISSIONPACK)/game/bg_misc.o \
-  $(B)/$(MISSIONPACK)/game/bg_pmove.o \
-  $(B)/$(MISSIONPACK)/game/bg_slidemove.o \
-  $(B)/$(MISSIONPACK)/game/bg_lib.o \
-  $(B)/$(MISSIONPACK)/game/g_active.o \
-  $(B)/$(MISSIONPACK)/game/g_arenas.o \
-  $(B)/$(MISSIONPACK)/game/g_bot.o \
-  $(B)/$(MISSIONPACK)/game/g_client.o \
-  $(B)/$(MISSIONPACK)/game/g_cmds.o \
-  $(B)/$(MISSIONPACK)/game/g_combat.o \
-  $(B)/$(MISSIONPACK)/game/g_items.o \
-  $(B)/$(MISSIONPACK)/game/g_mem.o \
-  $(B)/$(MISSIONPACK)/game/g_misc.o \
-  $(B)/$(MISSIONPACK)/game/g_missile.o \
-  $(B)/$(MISSIONPACK)/game/g_mover.o \
-  $(B)/$(MISSIONPACK)/game/g_session.o \
-  $(B)/$(MISSIONPACK)/game/g_spawn.o \
-  $(B)/$(MISSIONPACK)/game/g_svcmds.o \
-  $(B)/$(MISSIONPACK)/game/g_target.o \
-  $(B)/$(MISSIONPACK)/game/g_team.o \
-  $(B)/$(MISSIONPACK)/game/g_trigger.o \
-  $(B)/$(MISSIONPACK)/game/g_utils.o \
-  $(B)/$(MISSIONPACK)/game/g_weapon.o \
-  \
-  $(B)/$(MISSIONPACK)/qcommon/q_math.o \
-  $(B)/$(MISSIONPACK)/qcommon/q_shared.o
-
-MPGOBJ = $(MPGOBJ_) $(B)/$(MISSIONPACK)/game/g_syscalls.o
-MPGVMOBJ = $(MPGOBJ_:%.o=%.asm)
-
-$(B)/$(MISSIONPACK)/qagame$(SHLIBNAME): $(MPGOBJ)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(MPGOBJ)
-
-$(B)/$(MISSIONPACK)/vm/qagame.qvm: $(MPGVMOBJ) $(GDIR)/g_syscalls.asm $(Q3ASM)
-	$(echo_cmd) "Q3ASM $@"
-	$(Q)$(Q3ASM) -o $@ $(MPGVMOBJ) $(GDIR)/g_syscalls.asm
-
-
-
-#############################################################################
-## BASEQ3 UI
-#############################################################################
-
-Q3UIOBJ_ = \
-  $(B)/$(BASEGAME)/ui/ui_main.o \
-  $(B)/$(BASEGAME)/ui/bg_misc.o \
-  $(B)/$(BASEGAME)/ui/bg_lib.o \
-  $(B)/$(BASEGAME)/ui/ui_addbots.o \
-  $(B)/$(BASEGAME)/ui/ui_atoms.o \
-  $(B)/$(BASEGAME)/ui/ui_cdkey.o \
-  $(B)/$(BASEGAME)/ui/ui_cinematics.o \
-  $(B)/$(BASEGAME)/ui/ui_confirm.o \
-  $(B)/$(BASEGAME)/ui/ui_connect.o \
-  $(B)/$(BASEGAME)/ui/ui_controls2.o \
-  $(B)/$(BASEGAME)/ui/ui_credits.o \
-  $(B)/$(BASEGAME)/ui/ui_demo2.o \
-  $(B)/$(BASEGAME)/ui/ui_display.o \
-  $(B)/$(BASEGAME)/ui/ui_gameinfo.o \
-  $(B)/$(BASEGAME)/ui/ui_ingame.o \
-  $(B)/$(BASEGAME)/ui/ui_loadconfig.o \
-  $(B)/$(BASEGAME)/ui/ui_menu.o \
-  $(B)/$(BASEGAME)/ui/ui_mfield.o \
-  $(B)/$(BASEGAME)/ui/ui_mods.o \
-  $(B)/$(BASEGAME)/ui/ui_network.o \
-  $(B)/$(BASEGAME)/ui/ui_options.o \
-  $(B)/$(BASEGAME)/ui/ui_playermodel.o \
-  $(B)/$(BASEGAME)/ui/ui_players.o \
-  $(B)/$(BASEGAME)/ui/ui_playersettings.o \
-  $(B)/$(BASEGAME)/ui/ui_preferences.o \
-  $(B)/$(BASEGAME)/ui/ui_qmenu.o \
-  $(B)/$(BASEGAME)/ui/ui_removebots.o \
-  $(B)/$(BASEGAME)/ui/ui_saveconfig.o \
-  $(B)/$(BASEGAME)/ui/ui_serverinfo.o \
-  $(B)/$(BASEGAME)/ui/ui_servers2.o \
-  $(B)/$(BASEGAME)/ui/ui_setup.o \
-  $(B)/$(BASEGAME)/ui/ui_sound.o \
-  $(B)/$(BASEGAME)/ui/ui_sparena.o \
-  $(B)/$(BASEGAME)/ui/ui_specifyserver.o \
-  $(B)/$(BASEGAME)/ui/ui_splevel.o \
-  $(B)/$(BASEGAME)/ui/ui_sppostgame.o \
-  $(B)/$(BASEGAME)/ui/ui_spskill.o \
-  $(B)/$(BASEGAME)/ui/ui_startserver.o \
-  $(B)/$(BASEGAME)/ui/ui_team.o \
-  $(B)/$(BASEGAME)/ui/ui_teamorders.o \
-  $(B)/$(BASEGAME)/ui/ui_video.o \
-  \
-  $(B)/$(BASEGAME)/qcommon/q_math.o \
-  $(B)/$(BASEGAME)/qcommon/q_shared.o
-
-Q3UIOBJ = $(Q3UIOBJ_) $(B)/$(MISSIONPACK)/ui/ui_syscalls.o
-Q3UIVMOBJ = $(Q3UIOBJ_:%.o=%.asm)
-
-$(B)/$(BASEGAME)/ui$(SHLIBNAME): $(Q3UIOBJ)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(Q3UIOBJ)
-
-$(B)/$(BASEGAME)/vm/ui.qvm: $(Q3UIVMOBJ) $(UIDIR)/ui_syscalls.asm $(Q3ASM)
-	$(echo_cmd) "Q3ASM $@"
-	$(Q)$(Q3ASM) -o $@ $(Q3UIVMOBJ) $(UIDIR)/ui_syscalls.asm
-
-#############################################################################
-## MISSIONPACK UI
-#############################################################################
-
-MPUIOBJ_ = \
-  $(B)/$(MISSIONPACK)/ui/ui_main.o \
-  $(B)/$(MISSIONPACK)/ui/ui_atoms.o \
-  $(B)/$(MISSIONPACK)/ui/ui_gameinfo.o \
-  $(B)/$(MISSIONPACK)/ui/ui_players.o \
-  $(B)/$(MISSIONPACK)/ui/ui_shared.o \
-  \
-  $(B)/$(MISSIONPACK)/ui/bg_misc.o \
-  $(B)/$(MISSIONPACK)/ui/bg_lib.o \
-  \
-  $(B)/$(MISSIONPACK)/qcommon/q_math.o \
-  $(B)/$(MISSIONPACK)/qcommon/q_shared.o
-
-MPUIOBJ = $(MPUIOBJ_) $(B)/$(MISSIONPACK)/ui/ui_syscalls.o
-MPUIVMOBJ = $(MPUIOBJ_:%.o=%.asm)
-
-$(B)/$(MISSIONPACK)/ui$(SHLIBNAME): $(MPUIOBJ)
-	$(echo_cmd) "LD $@"
-	$(Q)$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(MPUIOBJ)
-
-$(B)/$(MISSIONPACK)/vm/ui.qvm: $(MPUIVMOBJ) $(UIDIR)/ui_syscalls.asm $(Q3ASM)
-	$(echo_cmd) "Q3ASM $@"
-	$(Q)$(Q3ASM) -o $@ $(MPUIVMOBJ) $(UIDIR)/ui_syscalls.asm
-
-
-
-#############################################################################
-## CLIENT/SERVER RULES
-#############################################################################
-
-$(B)/client/%.o: $(ASMDIR)/%.s
-	$(DO_AS)
-
-# k8 so inline assembler knows about SSE
-$(B)/client/%.o: $(ASMDIR)/%.c
-	$(DO_CC) -march=k8
-
-$(B)/client/%.o: $(CDIR)/%.c
-	$(DO_CC)
-
-$(B)/client/%.o: $(SDIR)/%.c
-	$(DO_CC)
-
-$(B)/client/%.o: $(CMDIR)/%.c
-	$(DO_CC)
-
-$(B)/client/%.o: $(BLIBDIR)/%.c
-	$(DO_BOT_CC)
-
-$(B)/client/%.o: $(SPEEXDIR)/%.c
-	$(DO_CC)
-
-$(B)/client/%.o: $(ZDIR)/%.c
-	$(DO_CC)
-
-$(B)/client/%.o: $(SDLDIR)/%.c
-	$(DO_CC)
-
-$(B)/renderersmp/%.o: $(SDLDIR)/%.c
-	$(DO_SMP_CC)
-
-$(B)/client/%.o: $(SYSDIR)/%.c
-	$(DO_CC)
-
-$(B)/client/%.o: $(SYSDIR)/%.m
-	$(DO_CC)
-
-$(B)/client/%.o: $(SYSDIR)/%.rc
-	$(DO_WINDRES)
-
-
-$(B)/renderer/%.o: $(CMDIR)/%.c
-	$(DO_REF_CC)
-
-$(B)/renderer/%.o: $(SDLDIR)/%.c
-	$(DO_REF_CC)
-
-$(B)/renderer/%.o: $(JPDIR)/%.c
-	$(DO_REF_CC)
-
-$(B)/renderer/%.o: $(RDIR)/%.c
-	$(DO_REF_CC)
-
-$(B)/rend2/glsl/%.c: $(R2DIR)/glsl/%.glsl
-	$(DO_REF_STR)
-
-$(B)/rend2/glsl/%.o: $(B)/rend2/glsl/%.c
-	$(DO_REF_CC)
-
-$(B)/rend2/%.o: $(R2DIR)/%.c
-	$(DO_REF_CC)
-
-
-$(B)/ded/%.o: $(ASMDIR)/%.s
-	$(DO_AS)
-
-# k8 so inline assembler knows about SSE
-$(B)/ded/%.o: $(ASMDIR)/%.c
-	$(DO_CC) -march=k8
-
-$(B)/ded/%.o: $(SDIR)/%.c
-	$(DO_DED_CC)
-
-$(B)/ded/%.o: $(CMDIR)/%.c
-	$(DO_DED_CC)
-
-$(B)/ded/%.o: $(ZDIR)/%.c
-	$(DO_DED_CC)
-
-$(B)/ded/%.o: $(BLIBDIR)/%.c
-	$(DO_BOT_CC)
-
-$(B)/ded/%.o: $(SYSDIR)/%.c
-	$(DO_DED_CC)
-
-$(B)/ded/%.o: $(SYSDIR)/%.m
-	$(DO_DED_CC)
-
-$(B)/ded/%.o: $(SYSDIR)/%.rc
-	$(DO_WINDRES)
-
-$(B)/ded/%.o: $(NDIR)/%.c
-	$(DO_DED_CC)
-
-# Extra dependencies to ensure the SVN version is incorporated
-ifeq ($(USE_SVN),1)
-  $(B)/client/cl_console.o : .svn/entries
-  $(B)/client/common.o : .svn/entries
-  $(B)/ded/common.o : .svn/entries
-endif
-
-
-#############################################################################
-## GAME MODULE RULES
-#############################################################################
-
-$(B)/$(BASEGAME)/cgame/bg_%.o: $(GDIR)/bg_%.c
-	$(DO_CGAME_CC)
-
-$(B)/$(BASEGAME)/cgame/%.o: $(CGDIR)/%.c
-	$(DO_CGAME_CC)
-
-$(B)/$(BASEGAME)/cgame/bg_%.asm: $(GDIR)/bg_%.c $(Q3LCC)
-	$(DO_CGAME_Q3LCC)
-
-$(B)/$(BASEGAME)/cgame/%.asm: $(CGDIR)/%.c $(Q3LCC)
-	$(DO_CGAME_Q3LCC)
-
-$(B)/$(MISSIONPACK)/cgame/bg_%.o: $(GDIR)/bg_%.c
-	$(DO_CGAME_CC_MISSIONPACK)
-
-$(B)/$(MISSIONPACK)/cgame/%.o: $(CGDIR)/%.c
-	$(DO_CGAME_CC_MISSIONPACK)
-
-$(B)/$(MISSIONPACK)/cgame/bg_%.asm: $(GDIR)/bg_%.c $(Q3LCC)
-	$(DO_CGAME_Q3LCC_MISSIONPACK)
-
-$(B)/$(MISSIONPACK)/cgame/%.asm: $(CGDIR)/%.c $(Q3LCC)
-	$(DO_CGAME_Q3LCC_MISSIONPACK)
-
-
-$(B)/$(BASEGAME)/game/%.o: $(GDIR)/%.c
-	$(DO_GAME_CC)
-
-$(B)/$(BASEGAME)/game/%.asm: $(GDIR)/%.c $(Q3LCC)
-	$(DO_GAME_Q3LCC)
-
-$(B)/$(MISSIONPACK)/game/%.o: $(GDIR)/%.c
-	$(DO_GAME_CC_MISSIONPACK)
-
-$(B)/$(MISSIONPACK)/game/%.asm: $(GDIR)/%.c $(Q3LCC)
-	$(DO_GAME_Q3LCC_MISSIONPACK)
-
-
-$(B)/$(BASEGAME)/ui/bg_%.o: $(GDIR)/bg_%.c
-	$(DO_UI_CC)
-
-$(B)/$(BASEGAME)/ui/%.o: $(Q3UIDIR)/%.c
-	$(DO_UI_CC)
-
-$(B)/$(BASEGAME)/ui/bg_%.asm: $(GDIR)/bg_%.c $(Q3LCC)
-	$(DO_UI_Q3LCC)
-
-$(B)/$(BASEGAME)/ui/%.asm: $(Q3UIDIR)/%.c $(Q3LCC)
-	$(DO_UI_Q3LCC)
-
-$(B)/$(MISSIONPACK)/ui/bg_%.o: $(GDIR)/bg_%.c
-	$(DO_UI_CC_MISSIONPACK)
-
-$(B)/$(MISSIONPACK)/ui/%.o: $(UIDIR)/%.c
-	$(DO_UI_CC_MISSIONPACK)
-
-$(B)/$(MISSIONPACK)/ui/bg_%.asm: $(GDIR)/bg_%.c $(Q3LCC)
-	$(DO_UI_Q3LCC_MISSIONPACK)
-
-$(B)/$(MISSIONPACK)/ui/%.asm: $(UIDIR)/%.c $(Q3LCC)
-	$(DO_UI_Q3LCC_MISSIONPACK)
-
-
-$(B)/$(BASEGAME)/qcommon/%.o: $(CMDIR)/%.c
-	$(DO_SHLIB_CC)
-
-$(B)/$(BASEGAME)/qcommon/%.asm: $(CMDIR)/%.c $(Q3LCC)
-	$(DO_Q3LCC)
-
-$(B)/$(MISSIONPACK)/qcommon/%.o: $(CMDIR)/%.c
-	$(DO_SHLIB_CC_MISSIONPACK)
-
-$(B)/$(MISSIONPACK)/qcommon/%.asm: $(CMDIR)/%.c $(Q3LCC)
-	$(DO_Q3LCC_MISSIONPACK)
-
-
-#############################################################################
-# MISC
-#############################################################################
-
-OBJ = $(Q3OBJ) $(Q3ROBJ) $(Q3R2OBJ) $(Q3RPOBJ_UP) $(Q3RPOBJ_SMP) $(Q3DOBJ) $(JPGOBJ) \
-  $(MPGOBJ) $(Q3GOBJ) $(Q3CGOBJ) $(MPCGOBJ) $(Q3UIOBJ) $(MPUIOBJ) \
-  $(MPGVMOBJ) $(Q3GVMOBJ) $(Q3CGVMOBJ) $(MPCGVMOBJ) $(Q3UIVMOBJ) $(MPUIVMOBJ)
-TOOLSOBJ = $(LBURGOBJ) $(Q3CPPOBJ) $(Q3RCCOBJ) $(Q3LCCOBJ) $(Q3ASMOBJ)
-STRINGOBJ = $(Q3R2STRINGOBJ)
-
-
-copyfiles: release
-	@if [ ! -d $(COPYDIR)/$(BASEGAME) ]; then echo "You need to set COPYDIR to where your Quake3 data is!"; fi
-ifneq ($(BUILD_GAME_SO),0)
-  ifneq ($(BUILD_BASEGAME),0)
-	-$(MKDIR) -p -m 0755 $(COPYDIR)/$(BASEGAME)
-  endif
-  ifneq ($(BUILD_MISSIONPACK),0)
-	-$(MKDIR) -p -m 0755 $(COPYDIR)/$(MISSIONPACK)
-  endif
-endif
-
-ifneq ($(BUILD_CLIENT),0)
-	$(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/$(CLIENTBIN)$(FULLBINEXT) $(COPYBINDIR)/$(CLIENTBIN)$(FULLBINEXT)
-  ifneq ($(USE_RENDERER_DLOPEN),0)
-	$(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/renderer_opengl1_$(SHLIBNAME) $(COPYBINDIR)/renderer_opengl1_$(SHLIBNAME)
-    ifneq ($(BUILD_RENDERER_REND2),0)
-	$(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/renderer_rend2_$(SHLIBNAME) $(COPYBINDIR)/renderer_rend2_$(SHLIBNAME)
-    endif
-  endif
-endif
-
-# Don't copy the SMP until it's working together with SDL.
-ifneq ($(BUILD_CLIENT_SMP),0)
-  ifneq ($(USE_RENDERER_DLOPEN),0)
-	$(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/renderer_opengl1_smp_$(SHLIBNAME) $(COPYBINDIR)/renderer_opengl1_smp_$(SHLIBNAME)
-  else
-	$(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/$(CLIENTBIN)-smp$(FULLBINEXT) $(COPYBINDIR)/$(CLIENTBIN)-smp$(FULLBINEXT)
-  endif
-endif
-
-ifneq ($(BUILD_SERVER),0)
-	@if [ -f $(BR)/$(SERVERBIN)$(FULLBINEXT) ]; then \
-		$(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/$(SERVERBIN)$(FULLBINEXT) $(COPYBINDIR)/$(SERVERBIN)$(FULLBINEXT); \
-	fi
-endif
-
-ifneq ($(BUILD_GAME_SO),0)
-  ifneq ($(BUILD_BASEGAME),0)
-	$(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/$(BASEGAME)/cgame$(SHLIBNAME) \
-					$(COPYDIR)/$(BASEGAME)/.
-	$(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/$(BASEGAME)/qagame$(SHLIBNAME) \
-					$(COPYDIR)/$(BASEGAME)/.
-	$(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/$(BASEGAME)/ui$(SHLIBNAME) \
-					$(COPYDIR)/$(BASEGAME)/.
-  endif
-  ifneq ($(BUILD_MISSIONPACK),0)
-	$(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/$(MISSIONPACK)/cgame$(SHLIBNAME) \
-					$(COPYDIR)/$(MISSIONPACK)/.
-	$(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/$(MISSIONPACK)/qagame$(SHLIBNAME) \
-					$(COPYDIR)/$(MISSIONPACK)/.
-	$(INSTALL) $(STRIP_FLAG) -m 0755 $(BR)/$(MISSIONPACK)/ui$(SHLIBNAME) \
-					$(COPYDIR)/$(MISSIONPACK)/.
-  endif
-endif
-
-clean: clean-debug clean-release
-ifeq ($(PLATFORM),mingw32)
-	@$(MAKE) -C $(NSISDIR) clean
-else
-	@$(MAKE) -C $(LOKISETUPDIR) clean
-endif
-
-clean-debug:
-	@$(MAKE) clean2 B=$(BD)
-
-clean-release:
-	@$(MAKE) clean2 B=$(BR)
-
-clean2:
-	@echo "CLEAN $(B)"
-	@rm -f $(OBJ)
-	@rm -f $(OBJ_D_FILES)
-	@rm -f $(STRINGOBJ)
-	@rm -f $(TARGETS)
-
-toolsclean: toolsclean-debug toolsclean-release
-
-toolsclean-debug:
-	@$(MAKE) toolsclean2 B=$(BD)
-
-toolsclean-release:
-	@$(MAKE) toolsclean2 B=$(BR)
-
-toolsclean2:
-	@echo "TOOLS_CLEAN $(B)"
-	@rm -f $(TOOLSOBJ)
-	@rm -f $(TOOLSOBJ_D_FILES)
-	@rm -f $(LBURG) $(DAGCHECK_C) $(Q3RCC) $(Q3CPP) $(Q3LCC) $(Q3ASM)
-
-distclean: clean toolsclean
-	@rm -rf $(BUILD_DIR)
-
-installer: release
-ifeq ($(PLATFORM),mingw32)
-	@$(MAKE) VERSION=$(VERSION) -C $(NSISDIR) V=$(V) \
-		SDLDLL=$(SDLDLL) \
-		USE_RENDERER_DLOPEN=$(USE_RENDERER_DLOPEN) \
-		USE_OPENAL_DLOPEN=$(USE_OPENAL_DLOPEN) \
-		USE_CURL_DLOPEN=$(USE_CURL_DLOPEN) \
-		USE_INTERNAL_SPEEX=$(USE_INTERNAL_SPEEX) \
-		USE_INTERNAL_ZLIB=$(USE_INTERNAL_ZLIB) \
-		USE_INTERNAL_JPEG=$(USE_INTERNAL_JPEG)
-else
-	@$(MAKE) VERSION=$(VERSION) -C $(LOKISETUPDIR) V=$(V)
-endif
-
-dist:
-	rm -rf $(CLIENTBIN)-$(VERSION)
-	svn export . $(CLIENTBIN)-$(VERSION)
-	tar --owner=root --group=root --force-local -cjf $(CLIENTBIN)-$(VERSION).tar.bz2 $(CLIENTBIN)-$(VERSION)
-	rm -rf $(CLIENTBIN)-$(VERSION)
-
-#############################################################################
-# DEPENDENCIES
-#############################################################################
-
-ifneq ($(B),)
-  OBJ_D_FILES=$(filter %.d,$(OBJ:%.o=%.d))
-  TOOLSOBJ_D_FILES=$(filter %.d,$(TOOLSOBJ:%.o=%.d))
-  -include $(OBJ_D_FILES) $(TOOLSOBJ_D_FILES)
-endif
-
-.PHONY: all clean clean2 clean-debug clean-release copyfiles \
-	debug default dist distclean installer makedirs \
-	release targets \
-	toolsclean toolsclean2 toolsclean-debug toolsclean-release \
-	$(OBJ_D_FILES) $(TOOLSOBJ_D_FILES)

Deleted: trunk/NOTTODO
===================================================================
--- trunk/NOTTODO	2013-01-01 20:20:38 UTC (rev 2398)
+++ trunk/NOTTODO	2013-03-18 13:17:34 UTC (rev 2399)
@@ -1 +0,0 @@
-http://wiki.ioquake3.org/NotToDo

Deleted: trunk/README
===================================================================
--- trunk/README	2013-01-01 20:20:38 UTC (rev 2398)
+++ trunk/README	2013-03-18 13:17:34 UTC (rev 2399)
@@ -1,739 +0,0 @@
-                   ,---------------------------------------.
-                   |   _                     _       ____  |
-                   |  (_)___  __ _ _  _ __ _| |_____|__ /  |
-                   |  | / _ \/ _` | || / _` | / / -_)|_ \  |
-                   |  |_\___/\__, |\_,_\__,_|_\_\___|___/  |
-                   |            |_|                        |
-                   |                                       |
-                   `---------- http://ioquake3.org --------'
-
-The intent of this project is to provide a baseline Quake 3 which may be used
-for further development and baseq3 fun. 
-Some of the major features currently implemented are:
-
-  * SDL backend
-  * OpenAL sound API support (multiple speaker support and better sound
-    quality)
-  * Full x86_64 support on Linux
-  * VoIP support, both in-game and external support through Mumble.
-  * MinGW compilation support on Windows and cross compilation support on Linux
-  * AVI video capture of demos
-  * Much improved console autocompletion
-  * Persistent console history
-  * Colorized terminal output
-  * Optional Ogg Vorbis support
-  * Much improved QVM tools
-  * Support for various esoteric operating systems
-  * cl_guid support
-  * HTTP/FTP download redirection (using cURL)
-  * Multiuser support on Windows systems (user specific game data
-    is stored in "%APPDATA%\Quake3")
-  * PNG support
-  * Many, many bug fixes
-
-The map editor and associated compiling tools are not included. We suggest you
-use a modern copy from http://www.qeradiant.com/.
-
-The original id software readme that accompanied the Q3 source release has been
-renamed to id-readme.txt so as to prevent confusion. Please refer to the
-web-site for updated status.
-
-
---------------------------------------------- Compilation and installation -----
-
-For *nix
-  1. Change to the directory containing this readme.
-  2. Run 'make'.
-
-For Windows,
-  1. Please refer to the excellent instructions here: 
-     http://wiki.ioquake3.org/Building_ioquake3
-
-For Mac OS X, building a Universal Binary
-  1. Install MacOSX SDK packages from XCode.  For maximum compatibility,
-     install MacOSX10.4u.sdk and MacOSX10.3.9.sdk, and MacOSX10.2.8.sdk.
-  2. Change to the directory containing this README file.
-  3. Run './make-macosx-ub.sh'
-  4. Copy the resulting ioquake3.app in /build/release-darwin-ub to your
-     /Applications/ioquake3 folder.
-
-Installation, for *nix
-  1. Set the COPYDIR variable in the shell to be where you installed Quake 3
-     to. By default it will be /usr/local/games/quake3 if you haven't set it.
-     This is the path as used by the original Linux Q3 installer and subsequent
-     point releases.
-  2. Run 'make copyfiles'.
-
-It is also possible to cross compile for Windows under *nix using MinGW. A
-script is available to build a cross compilation environment from
-http://www.libsdl.org/extras/win32/cross/build-cross.sh. The gcc/binutils
-version numbers that the script downloads may need to be altered.
-Alternatively, your distribution may have mingw32 packages available. On
-debian/Ubuntu, these are mingw32, mingw32-runtime and mingw32-binutils. Cross
-compiling is simply a case of using './cross-make-mingw.sh' in place of 'make',
-though you may find you need to change the value of the variables in this
-script to match your environment.
-
-The following variables may be set, either on the command line or in
-Makefile.local:
-
-  CFLAGS             - use this for custom CFLAGS
-  V                  - set to show cc command line when building
-  DEFAULT_BASEDIR    - extra path to search for baseq3 and such
-  BUILD_SERVER       - build the 'ioq3ded' server binary
-  BUILD_CLIENT       - build the 'ioquake3' client binary
-  BUILD_CLIENT_SMP   - build the 'ioquake3-smp' client binary
-  BUILD_BASEGAME     - build the 'baseq3' binaries
-  BUILD_MISSIONPACK  - build the 'missionpack' binaries
-  BUILD_GAME_SO      - build the game shared libraries
-  BUILD_GAME_QVM     - build the game qvms
-  BUILD_STANDALONE   - build binaries suited for stand-alone games
-  SERVERBIN          - rename 'ioq3ded' server binary
-  CLIENTBIN          - rename 'ioquake3' client binary
-  BASEGAME           - rename 'baseq3'
-  BASEGAME_CFLAGS    - custom CFLAGS for basegame
-  MISSIONPACK        - rename 'missionpack'
-  MISSIONPACK_CFLAGS - custom CFLAGS for missionpack (default '-DMISSIONPACK')
-  USE_OPENAL         - use OpenAL where available
-  USE_OPENAL_DLOPEN  - link with OpenAL at runtime
-  USE_CURL           - use libcurl for http/ftp download support
-  USE_CURL_DLOPEN    - link with libcurl at runtime
-  USE_CODEC_VORBIS   - enable Ogg Vorbis support
-  USE_MUMBLE         - enable Mumble support
-  USE_VOIP           - enable built-in VoIP support
-  USE_INTERNAL_SPEEX - build internal speex library instead of dynamically
-                       linking against system libspeex
-  USE_FREETYPE       - enable FreeType support for rendering fonts
-  USE_OLD_VM64       - use Ludwig Nussel's old JIT compiler implementation
-                       for x86_64
-  USE_INTERNAL_ZLIB  - build and link against internal zlib
-  USE_INTERNAL_JPEG  - build and link against internal JPEG library
-  USE_LOCAL_HEADERS  - use headers local to ioq3 instead of system ones
-  DEBUG_CFLAGS       - C compiler flags to use for building debug version
-  COPYDIR            - the target installation directory
-  TEMPDIR            - specify user defined directory for temp files
-
-The defaults for these variables differ depending on the target platform.
-
-
------------------------------------------------------------------- Console -----
-
-New cvars
-  cl_autoRecordDemo                 - record a new demo on each map change
-  cl_aviFrameRate                   - the framerate to use when capturing video
-  cl_aviMotionJpeg                  - use the mjpeg codec when capturing video
-  cl_guidServerUniq                 - makes cl_guid unique for each server
-  cl_cURLLib                        - filename of cURL library to load
-  cl_consoleKeys                    - space delimited list of key names or
-                                      characters that toggle the console
-  cl_mouseAccelStyle                - Set to 1 for QuakeLive mouse acceleration
-                                      behaviour, 0 for standard q3
-  cl_mouseAccelOffset               - Tuning the acceleration curve, see below
-
-  in_joystickUseAnalog              - Do not translate joystick axis events
-                                      to keyboard commands
-
-  j_forward                         - Joystick analogue to m_forward,
-                                      for forward movement speed/direction.
-  j_side                            - Joystick analogue to m_side,
-                                      for side movement speed/direction.
-  j_up                              - Joystick up movement speed/direction.
-  j_pitch                           - Joystick analogue to m_pitch,
-                                      for pitch rotation speed/direction.
-  j_yaw                             - Joystick analogue to m_yaw,
-                                      for yaw rotation speed/direction.
-  j_forward_axis                    - Selects which joystick axis
-                                      controls forward/back.
-  j_side_axis                       - Selects which joystick axis
-                                      controls left/right.
-  j_up_axis                         - Selects which joystick axis
-                                      controls up/down.
-  j_pitch_axis                      - Selects which joystick axis
-                                      controls pitch.
-  j_yaw_axis                        - Selects which joystick axis
-                                      controls yaw.
-
-  s_useOpenAL                       - use the OpenAL sound backend if available
-  s_alPrecache                      - cache OpenAL sounds before use
-  s_alGain                          - the value of AL_GAIN for each source
-  s_alSources                       - the total number of sources (memory) to
-                                      allocate
-  s_alDopplerFactor                 - the value passed to alDopplerFactor
-  s_alDopplerSpeed                  - the value passed to alDopplerVelocity
-  s_alMinDistance                   - the value of AL_REFERENCE_DISTANCE for
-                                      each source
-  s_alMaxDistance                   - the maximum distance before sounds start
-                                      to become inaudible.
-  s_alRolloff                       - the value of AL_ROLLOFF_FACTOR for each
-                                      source
-  s_alGraceDistance                 - after having passed MaxDistance, length
-                                      until sounds are completely inaudible
-  s_alDriver                        - which OpenAL library to use
-  s_alDevice                        - which OpenAL device to use
-  s_alAvailableDevices              - list of available OpenAL devices
-  s_alInputDevice                   - which OpenAL input device to use
-  s_alAvailableInputDevices         - list of available OpenAL input devices
-  s_sdlBits                         - SDL bit resolution
-  s_sdlSpeed                        - SDL sample rate
-  s_sdlChannels                     - SDL number of channels
-  s_sdlDevSamps                     - SDL DMA buffer size override
-  s_sdlMixSamps                     - SDL mix buffer size override
-  s_backend                         - read only, indicates the current sound
-                                      backend
-  s_muteWhenMinimized               - mute sound when minimized
-  s_muteWhenUnfocused               - mute sound when window is unfocused
-  sv_dlRate                         - bandwidth allotted to PK3 file downloads
-                                      via UDP, in kbyte/s
-
-  com_ansiColor                     - enable use of ANSI escape codes in the tty
-  com_altivec                       - enable use of altivec on PowerPC systems
-  com_standalone (read only)        - If set to 1, quake3 is running in
-                                      standalone mode
-  com_basegame                      - Use a different base than baseq3. If no
-                                      original Quake3 or TeamArena pak files
-                                      are found, this will enable running in
-                                      standalone mode
-  com_homepath                      - Specify name that is to be appended to the
-                                      home path
-  com_legacyprotocol                - Specify protocol version number for
-                                      legacy Quake3 1.32c protocol, see
-                                      "Network protocols" section below
-                                      (startup only)
-  com_maxfpsUnfocused               - Maximum frames per second when unfocused
-  com_maxfpsMinimized               - Maximum frames per second when minimized
-  com_busyWait                      - Will use a busy loop to wait for rendering
-                                      next frame when set to non-zero value
-  com_pipefile                      - Specify filename to create a named pipe 
-                                      through which other processes can control
-                                      the server while it is running. 
-                                      Nonfunctional on Windows.
-  com_gamename                      - Gamename sent to master server in
-                                      getservers[Ext] query and infoResponse
-                                      "gamename" infostring value. Also used
-                                      for filtering local network games.
-  com_protocol                      - Specify protocol version number for
-                                      current ioquake3 protocol, see
-                                      "Network protocols" section below
-                                      (startup only)
-
-  in_joystickNo                     - select which joystick to use
-  in_availableJoysticks             - list of available Joysticks
-  in_keyboardDebug                  - print keyboard debug info
-
-  sv_dlURL                          - the base of the HTTP or FTP site that
-                                      holds custom pk3 files for your server
-  sv_banFile                        - Name of the file that is used for storing
-                                      the server bans
-
-  net_ip6                           - IPv6 address to bind to
-  net_port6                         - port to bind to using the ipv6 address
-  net_enabled                       - enable networking, bitmask. Add up
-                                      number for option to enable it:
-                                      enable ipv4 networking:    1
-                                      enable ipv6 networking:    2
-                                      prioritise ipv6 over ipv4: 4
-                                      disable multicast support: 8
-  net_mcast6addr                    - multicast address to use for scanning for
-                                      ipv6 servers on the local network
-  net_mcastiface                    - outgoing interface to use for scan
-
-  r_allowResize                     - make window resizable (SDL only)
-  r_ext_texture_filter_anisotropic  - anisotropic texture filtering
-  r_zProj                           - distance of observer camera to projection
-                                      plane in quake3 standard units
-  r_greyscale                       - desaturate textures, useful for anaglyph,
-                                      supports values in the range of 0 to 1
-  r_stereoEnabled                   - enable stereo rendering for techniques
-                                      like shutter glasses (untested)
-  r_anaglyphMode                    - Enable rendering of anaglyph images
-                                      red-cyan glasses:    1
-                                      red-blue:            2
-                                      red-green:           3
-                                      green-magenta:       4
-                                      To swap the colors for left and right eye
-                                      just add 4 to the value for the wanted
-                                      color combination. For red-blue and
-                                      red-green you probably want to enable
-                                      r_greyscale
-  r_stereoSeparation                - Control eye separation. Resulting
-                                      separation is r_zProj divided by this
-                                      value in quake3 standard units.
-                                      See also
-                                      http://wiki.ioquake3.org/Stereo_Rendering
-                                      for more information
-  r_marksOnTriangleMeshes           - Support impact marks on md3 models, MOD
-                                      developers should increase the mark
-                                      triangle limits in cg_marks.c if they
-                                      intend to use this.
-  r_sdlDriver                       - read only, indicates the SDL driver
-                                      backend being used
-  r_noborder                        - Remove window decoration from window
-                                      managers, like borders and titlebar.
-  r_screenshotJpegQuality           - Controls quality of jpeg screenshots
-                                      captured using screenshotJPEG
-  r_aviMotionJpegQuality            - Controls quality of video capture when
-                                      cl_aviMotionJpeg is enabled
-  r_mode -2                         - This new video mode automatically uses the
-                                      desktop resolution.
-
-New commands
-  video [filename]        - start video capture (use with demo command)
-  stopvideo               - stop video capture
-  stopmusic               - stop background music
-  minimize                - Minimize the game and show desktop
-
-  print                   - print out the contents of a cvar
-  unset                   - unset a user created cvar
-
-  banaddr <range>         - ban an ip address range from joining a game on this
-                            server, valid <range> is either playernum or CIDR
-                            notation address range.
-  exceptaddr <range>      - exempt an ip address range from a ban.
-  bandel <range>          - delete ban (either range or ban number)
-  exceptdel <range>       - delete exception (either range or exception number)
-  listbans                - list all currently active bans and exceptions
-  rehashbans              - reload the banlist from serverbans.dat
-  flushbans               - delete all bans
-
-  net_restart             - restart network subsystem to change latched settings
-  game_restart <fs_game>  - Switch to another mod
-
-  which <filename/path>   - print out the path on disk to a loaded item
-
-  execq <filename>        - quiet exec command, doesn't print "execing file.cfg"
-
-  kicknum <client number> - kick a client by number, same as clientkick command
-  kickall                 - kick all clients, similar to "kick all" (but kicks
-                            everyone even if someone is named "all")
-  kickbots                - kick all bots, similar to "kick allbots" (but kicks
-                            all bots even if someone is named "allbots")
-
-  tell <client num> <msg> - send message to a single client (new to server)
-
-
---------------------------------------------------------- README for Users -----
-
-Using shared libraries instead of qvm
-  To force Q3 to use shared libraries instead of qvms run it with the following
-  parameters: +set sv_pure 0 +set vm_cgame 0 +set vm_game 0 +set vm_ui 0
-
-Using Demo Data Files
-  Copy demoq3/pak0.pk3 from the demo installer to your baseq3 directory. The
-  qvm files in this pak0.pk3 will not work, so you have to use the native
-  shared libraries or qvms from this project. To use the new qvms, they must be
-  put into a pk3 file. A pk3 file is just a zip file, so any compression tool
-  that can create such files will work. The shared libraries should already be
-  in the correct place. Use the instructions above to use them.
-
-  Please bear in mind that you will not be able to play online using the demo
-  data, nor is it something that we like to spend much time maintaining or
-  supporting.
-
-Help! Ioquake3 won't give me an fps of X anymore when setting com_maxfps!
-  Ioquake3 now uses the select() system call to wait for the rendering of the
-  next frame when com_maxfps was hit. This will improve your CPU load
-  considerably in these cases. However, not all systems may support a
-  granularity for its timing functions that is required to perform this waiting
-  correctly. For instance, ioquake3 tells select() to wait 2 milliseconds, but
-  really it can only wait for a multiple of 5ms, i.e. 5, 10, 15, 20... ms.
-  In this case you can always revert back to the old behaviour by setting the
-  cvar com_busyWait to 1.
-
-Using HTTP/FTP Download Support (Server)
-  You can enable redirected downloads on your server even if it's not
-  an ioquake3 server.  You simply need to use the 'sets' command to put
-  the sv_dlURL cvar into your SERVERINFO string and ensure sv_allowDownloads
-  is set to 1
-
-  sv_dlURL is the base of the URL that contains your custom .pk3 files
-  the client will append both fs_game and the filename to the end of
-  this value.  For example, if you have sv_dlURL set to
-  "http://ioquake3.org", fs_game is "baseq3", and the client is
-  missing "test.pk3", it will attempt to download from the URL
-  "http://ioquake3.org/baseq3/test.pk3"
-
-  sv_allowDownload's value is now a bitmask made up of the following
-  flags:
-    1 - ENABLE
-    4 - do not use UDP downloads
-    8 - do not ask the client to disconnect when using HTTP/FTP
-
-  Server operators who are concerned about potential "leeching" from their
-  HTTP servers from other ioquake3 servers can make use of the HTTP_REFERER
-  that ioquake3 sets which is "ioQ3://{SERVER_IP}:{SERVER_PORT}".  For,
-  example, Apache's mod_rewrite can restrict access based on HTTP_REFERER.
-
-  On a sidenote, downloading via UDP has been improved and yields higher data
-  rates now. You can configure the maximum bandwidth for UDP downloads via the
-  cvar sv_dlRate. Due to system-specific limits the download rate is capped
-  at about 1 Mbyte/s per client, so curl downloading may still be faster.
-
-Using HTTP/FTP Download Support (Client)
-  Simply setting cl_allowDownload to 1 will enable HTTP/FTP downloads
-  assuming ioquake3 was compiled with USE_CURL=1 (the default).
-  like sv_allowDownload, cl_allowDownload also uses a bitmask value
-  supporting the following flags:
-    1 - ENABLE
-    2 - do not use HTTP/FTP downloads
-    4 - do not use UDP downloads
-
-  When ioquake3 is built with USE_CURL_DLOPEN=1 (default on some platforms),
-  it will use the value of the cvar cl_cURLLib as the filename of the cURL
-  library to dynamically load.
-
-Multiuser Support on Windows systems
-  On Windows, all user specific files such as autogenerated configuration,
-  demos, videos, screenshots, and autodownloaded pk3s are now saved in a
-  directory specific to the user who is running ioquake3.
-
-  On NT-based such as Windows XP, this is usually a directory named:
-    "C:\Documents and Settings\%USERNAME%\Application Data\Quake3\"
-
-  Windows 95, Windows 98, and Windows ME will use a directory like:
-    "C:\Windows\Application Data\Quake3"
-  in single-user mode, or:
-    "C:\Windows\Profiles\%USERNAME%\Application Data\Quake3"
-  if multiple logins have been enabled.
-
-  In order to access this directory more easily, the installer may create a
-  Shortcut which has its target set to:
-    "%APPDATA%\Quake3\"
-  This Shortcut would work for all users on the system regardless of the
-  locale settings.  Unfortunately, this environment variable is only
-  present on Windows NT based systems.
-
-  You can revert to the old single-user behaviour by setting the fs_homepath
-  cvar to the directory where ioquake3 is installed.  For example:
-    ioquake3.exe +set fs_homepath "c:\ioquake3"
-  Note that this cvar MUST be set as a command line parameter.
-
-SDL Keyboard Differences
-  ioquake3 clients have different keyboard behaviour compared to the original
-  Quake3 clients.
-
-    * "Caps Lock" and "Num Lock" can not be used as normal binds since they
-      do not send a KEYUP event until the key is pressed again.
-
-    * SDL > 1.2.9 does not support disabling dead key recognition. In order to
-      send dead key characters (e.g. ~, ', `, and ^), you must key a Space (or
-      sometimes the same character again) after the character to send it on
-      many international keyboard layouts.
-
-    * The SDL client supports many more keys than the original Quake3 client.
-      For example the keys: "Windows", "SysReq", "ScrollLock", and "Break".
-      For non-US keyboards, all of the so called "World" keys are now supported
-      as well as F13, F14, F15, and the country-specific mode/meta keys.
-
-  On many international layouts the default console toggle keys are also dead
-  keys, meaning that dropping the console potentially results in
-  unintentionally initiating the keying of a dead key. Furthermore SDL 1.2's
-  dead key support is broken by design and Q3 doesn't support non-ASCII text
-  entry, so the chances are you won't get the correct character anyway.
-
-  If you use such a keyboard layout, you can set the cvar cl_consoleKeys. This
-  is a space delimited list of key names that will toggle the console. The key
-  names are the usual Q3 names e.g. "~", "`", "c", "BACKSPACE", "PAUSE",
-  "WINDOWS" etc. It's also possible to use ASCII characters, by hexadecimal
-  number. Some example values for cl_consoleKeys:
-
-    "~ ` 0x7e 0x60"           Toggle on ~ or ` (the default)
-    "WINDOWS"                 Toggle on the Windows key
-    "c"                       Toggle on the c key
-    "0x43"                    Toggle on the C character (Shift-c)
-    "PAUSE F1 PGUP"           Toggle on the Pause, F1 or Page Up keys
-
-  Note that when you elect a set of console keys or characters, they cannot
-  then be used for binding, nor will they generate characters when entering
-  text. Also, in addition to the nominated console keys, Shift-ESC is hard
-  coded to always toggle the console.
-
-QuakeLive mouse acceleration (patch and this text written by TTimo from id)
-  I've been using an experimental mouse acceleration code for a while, and
-  decided to make it available to everyone. Don't be too worried if you don't
-  understand the explanations below, this is mostly intended for advanced
-  players:
-  To enable it, set cl_mouseAccelStyle 1 (0 is the default/legacy behavior)
-
-  New style is controlled with 3 cvars:
-
-  sensitivity
-  cl_mouseAccel
-  cl_mouseAccelOffset
-
-  The old code (cl_mouseAccelStyle 0) can be difficult to calibrate because if
-  you have a base sensitivity setup, as soon as you set a non zero acceleration
-  your base sensitivity at low speeds will change as well. The other problem
-  with style 0 is that you are stuck on a square (power of two) acceleration
-  curve.
-
-  The new code tries to solve both problems:
-
-  Once you setup your sensitivity to feel comfortable and accurate enough for
-  low mouse deltas with no acceleration (cl_mouseAccel 0), you can start
-  increasing cl_mouseAccel and tweaking cl_mouseAccelOffset to get the
-  amplification you want for high deltas with little effect on low mouse deltas.
-
-  cl_mouseAccel is a power value. Should be >= 1, 2 will be the same power curve
-  as style 0. The higher the value, the faster the amplification grows with the
-  mouse delta.
-
-  cl_mouseAccelOffset sets how much base mouse delta will be doubled by
-  acceleration. The closer to zero you bring it, the more acceleration will
-  happen at low speeds. This is also very useful if you are changing to a new
-  mouse with higher dpi, if you go from 500 to 1000 dpi, you can divide your
-  cl_mouseAccelOffset by two to keep the same overall 'feel' (you will likely
-  gain in precision when you do that, but that is not related to mouse
-  acceleration).
-
-  Mouse acceleration is tricky to configure, and when you do you'll have to
-  re-learn your aiming. But you will find that it's very much forth it in the
-  long run.
-
-  If you try the new acceleration code and start using it, I'd be very
-  interested by your feedback.
-
-
----------------------------------------------------- README for Developers -----
-
-64bit mods
-  If you wish to compile external mods as shared libraries on a 64bit platform,
-  and the mod source is derived from the id Q3 SDK, you will need to modify the
-  interface code a little. Open the files ending in _syscalls.c and change
-  every instance of int to intptr_t in the declaration of the syscall function
-  pointer and the dllEntry function. Also find the vmMain function for each
-  module (usually in cg_main.c g_main.c etc.) and similarly replace the return
-  value in the prototype with intptr_t (arg0, arg1, ...stay int).
-
-  Add the following code snippet to q_shared.h:
-
-    #ifdef Q3_VM
-    typedef int intptr_t;
-    #else
-    #include <stdint.h>
-    #endif
-
-  Note if you simply wish to run mods on a 64bit platform you do not need to
-  recompile anything since by default Q3 uses a virtual machine system.
-
-Creating mods compatible with Q3 1.32b
-  If you're using this package to create mods for the last official release of
-  Q3, it is necessary to pass the commandline option '-vq3' to your invocation
-  of q3asm. This is because by default q3asm outputs an updated qvm format that
-  is necessary to fix a bug involving the optimizing pass of the x86 vm JIT
-  compiler.
-
-Creating standalone games
-  Have you finished the daunting task of removing all dependencies on the Q3
-  game data? You probably now want to give your users the opportunity to play
-  the game without owning a copy of Q3, which consequently means removing cd-key
-  and authentication server checks. In addition to being a straightforward Q3
-  client, ioquake3 also purports to be a reliable and stable code base on which
-  to base your game project.
-
-  However, before you start compiling your own version of ioquake3, you have to
-  ask yourself: Have we changed or will we need to change anything of importance
-  in the engine?
-
-  If your answer to this question is "no", it probably makes no sense to build
-  your own binaries. Instead, you can just use the pre-built binaries on the
-  website. Just make sure the game is called with:
-
-    +set com_basegame <yournewbase>
-    
-  in any links/scripts you install for your users to start the game. The
-  binary must not detect any original quake3 game pak files. If this
-  condition is met, the game will set com_standalone to 1 and is then running
-  in stand alone mode.
-  
-  If you want the engine to use a different directory in your homepath than
-  e.g. "Quake3" on Windows or ".q3a" on Linux, then set a new name at startup
-  by adding
-  
-    +set com_homepath <homedirname>
-  
-  to the command line. You can also control which game name to use when talking
-  to the master server:
-  
-    +set com_gamename <gamename>
-  
-  So clients requesting a server list will only receive servers that have a
-  matching game name.
-  
-  Example line:
-  
-    +set com_basegame basefoo +set com_homepath .foo
-    +set com_gamename foo
-
-
-  If you really changed parts that would make vanilla ioquake3 incompatible with
-  your mod, we have included another way to conveniently build a stand-alone
-  binary. Just run make with the option BUILD_STANDALONE=1. Don't forget to edit
-  the PRODUCT_NAME and subsequent #defines in qcommon/q_shared.h with
-  information appropriate for your project.
-
-  While a lot of work has been put into ioquake3 that you can benefit from free
-  of charge, it does not mean that you have no obligations to fulfill. Please be
-  aware that as soon as you start distributing your game with an engine based on
-  our sources we expect you to fully comply with the requirements as stated in
-  the GPL. That includes making sources and modifications you made to the
-  ioquake3 engine as well as the game-code used to compile the .qvm files for
-  the game logic freely available to everyone. Furthermore, note that the "QIIIA
-  Game Source License" prohibits distribution of mods that are intended to
-  operate on a version of Q3 not sanctioned by id software:
-
-    "with this Agreement, ID grants to you the non-exclusive and limited right
-    to distribute copies of the Software ... for operation only with the full
-    version of the software game QUAKE III ARENA"
-
-  This means that if you're creating a standalone game, you cannot use said
-  license on any portion of the product. As the only other license this code has
-  been released under is the GPL, this is the only option.
-
-  This does NOT mean that you cannot market this game commercially. The GPL does
-  not prohibit commercial exploitation and all assets (e.g. textures, sounds,
-  maps) created by yourself are your property and can be sold like every other
-  game you find in stores.
-
-Network protocols
-  There are now two cvars that give you some degree of freedom over the reported
-  protocol versions between clients and servers: "com_protocol" and
-  "com_legacyprotocol".
-  The reason for this is that some standalone games increased the protocol
-  number even though nothing really changed in their protocol and the ioquake3
-  engine is still fully compatible.
-
-  In order to harden the network protocol against UDP spoofing attacks a new
-  network protocol was introduced that defends against such attacks.
-  Unfortunately, this protocol will be incompatible to the original quake3 1.32c
-  which is the latest official release from id.
-  Luckily, ioquake3 has backwards compatibility, on the client as well as on the
-  server. This means ioquake3 players can play on old servers just as ioquake3
-  servers are able to service old clients.
-
-  The cvar "com_protocol" denotes the protocol version for the new hardened
-  protocol, whereas the "com_legacyprotocol" cvar denotes the protocol version
-  for the legacy protocol.
-  If the value for "com_protocol" and "com_legacyprotocol" is identical, then
-  the legacy protocol is always used. If "com_legacyprotocol" is set to 0, then
-  support for the legacy protocol is disabled.
-  
-  Mods that use a standalone engine obviously do not require dual protocol
-  support, and it is turned off if the engine is compiled with STANDALONE per
-  default. If you desire backwards compatibility to older versions of your
-  game you can still enable it in q_shared.h by defining
-  LEGACY_PROTOCOL.
-
-cl_guid Support
-  cl_guid is a cvar which is part of the client's USERINFO string.  Its value
-  is a 32 character string made up of [a-f] and [0-9] characters.  This
-  value is pseudo-unique for every player.  Id's Quake 3 Arena client also
-  sets cl_guid, but only if Punkbuster is enabled on the client.
-
-  If cl_guidServerUniq is non-zero (the default), then this value is also
-  pseudo-unique for each server a client connects to (based on IP:PORT of
-  the server).
-
-  The purpose of cl_guid is to add an identifier for each player on
-  a server.  This value can be reset by the client at any time so it's not
-  useful for blocking access.  However, it can have at least two uses in
-  your mod's game code:
-    1) improve logging to allow statistical tools to index players by more
-       than just name
-    2) granting some weak admin rights to players without requiring passwords
-
-PNG support
-  ioquake3 supports the use of PNG (Portable Network Graphic) images as
-  textures. It should be noted that the use of such images in a map will
-  result in missing placeholder textures where the map is used with the id
-  Quake 3 client or earlier versions of ioquake3.
-
-  Recent versions of GtkRadiant and q3map2 support PNG images without
-  modification. However GtkRadiant is not aware that PNG textures are supported
-  by ioquake3. To change this behaviour open the file 'q3.game' in the 'games'
-  directory of the GtkRadiant base directory with an editor and change the
-  line:
-
-    texturetypes="tga jpg"
-
-  to
-
-    texturetypes="tga jpg png"
-
-  Restart GtkRadiant and PNG textures are now available.
-
-Building with MinGW for pre Windows XP
-  IPv6 support requires a header named "wspiapi.h" to abstract away from
-  differences in earlier versions of Windows' IPv6 stack. There is no MinGW
-  equivalent of this header and the Microsoft version is obviously not
-  redistributable, so in its absence we're forced to require Windows XP.
-  However if this header is acquired separately and placed in the qcommon/
-  directory, this restriction is lifted.
-
-
-------------------------------------------------------------- Contributing -----
-
-Please send all patches to bugzilla (https://bugzilla.icculus.org), or join the
-mailing list (http://lists.ioquake.org/listinfo.cgi/ioquake3-ioquake.org) and 
-submit your patch there.  The best case scenario is that you submit your patch 
-to bugzilla, and then post the URL to the mailing list.
-
-The focus for ioq3 is to develop a stable base suitable for further development
-and provide players with the same Quake 3 experience they've had for years. As
-such ioq3 does not have any significant graphical enhancements and none are
-planned at this time. However, improved graphics and sound patches will be
-accepted as long as they are entirely optional, do not require new media and
-are off by default.
-
-
---------------------------------------------- Building Official Installers -----
-
-We need help getting automated installers on all the platforms that ioquake3
-supports. We don't necessarily care about all the installers being identical,
-but we have some general guidelines:
-
-  * Please include the id patch pk3s in your installer, which are available
-    from http://ioquake3.org/patch-data/ subject to agreement to the id
-    EULA. Your installer shall also ask the user to agree to this EULA (which
-    is in the /web/include directory for your convenience) and subsequently
-    refuse to continue the installation of the patch pk3s and pak0.pk3 if they
-    do not.
-
-  * Please don't require pak0.pk3, since not everyone using the engine
-    plans on playing Quake 3 Arena on it. It's fine to (optionally) assist the
-    user in copying the file or tell them how.
-
-  * It is fine to just install the binaries without requiring id EULA agreement,
-    providing pak0.pk3 and the patch pk3s are not referred to or included in the
-    installer.
-
-  * Please include at least an SDL so/dylib/dll on every platform.
-
-  * Please include an OpenAL so/dylib/dll, since every platform should be using
-    it by now.
-
-  * Please contact the mailing list when you've made your installer.
-
-  * Please be prepared to alter your installer on the whim of the maintainers.
-
-  * Your installer will be mirrored to an "official" directory, thus making it
-    a done deal.
-
------------------------------------------------------------------- Credits -----
-
-Maintainers
-  James Canete <use.less01 at gmail.com>
-  Ludwig Nussel <ludwig.nussel at suse.de>
-  Thilo Schulz <arny at ats.s.bawue.de>
-  Tim Angus <tim at ngus.net>
-  Tony J. White <tjw at tjw.org>
-  Zachary J. Slater <zachary at ioquake.org>
-  Zack Middleton <zturtleman at gmail.com>
-
-Significant contributions from
-  Ryan C. Gordon <icculus at icculus.org>
-  Andreas Kohn <andreas at syndrom23.de>
-  Joerg Dietrich <Dietrich_Joerg at t-online.de>
-  Stuart Dalton <badcdev at gmail.com>
-  Vincent S. Cojot <vincent at cojot dot name>
-  optical <alex at rigbo.se>
-  Aaron Gyes <floam at aaron.gy>

Added: trunk/REPOSITORY-MOVED
===================================================================
--- trunk/REPOSITORY-MOVED	                        (rev 0)
+++ trunk/REPOSITORY-MOVED	2013-03-18 13:17:34 UTC (rev 2399)
@@ -0,0 +1 @@
+https://github.com/ioquake/ioq3/

Deleted: trunk/TODO
===================================================================
--- trunk/TODO	2013-01-01 20:20:38 UTC (rev 2398)
+++ trunk/TODO	2013-03-18 13:17:34 UTC (rev 2399)
@@ -1 +0,0 @@
-http://wiki.ioquake3.org/Ioquake3_Road_Map

Deleted: trunk/cross-make-mingw.sh
===================================================================
--- trunk/cross-make-mingw.sh	2013-01-01 20:20:38 UTC (rev 2398)
+++ trunk/cross-make-mingw.sh	2013-03-18 13:17:34 UTC (rev 2399)
@@ -1,35 +0,0 @@
-#!/bin/sh
-
-# Note: This works in Linux and cygwin
-
-CMD_PREFIX="i586-mingw32msvc i686-w64-mingw32";
-
-if [ "X$CC" = "X" ]; then
-    for check in $CMD_PREFIX; do
-        full_check="${check}-gcc"
-        which "$full_check" > /dev/null 2>&1
-        if [ "$?" = "0" ]; then
-            export CC="$full_check"
-        fi
-    done
-fi
-
-if [ "X$WINDRES" = "X" ]; then
-    for check in $CMD_PREFIX; do
-        full_check="${check}-windres"
-        which "$full_check" > /dev/null 2>&1
-        if [ "$?" = "0" ]; then
-            export WINDRES="$full_check"
-        fi
-    done
-fi
-
-if [ "X$WINDRES" = "X" -o "X$CC" = "X" ]; then
-    echo "Error: Must define or find WINDRES and CC"
-    exit 1
-fi
-
-export PLATFORM=mingw32
-export ARCH=x86
-
-exec make $*

Deleted: trunk/cross-make-mingw64.sh
===================================================================
--- trunk/cross-make-mingw64.sh	2013-01-01 20:20:38 UTC (rev 2398)
+++ trunk/cross-make-mingw64.sh	2013-03-18 13:17:34 UTC (rev 2399)
@@ -1,35 +0,0 @@
-#!/bin/sh
-
-# Note: This works in Linux and cygwin
-
-CMD_PREFIX="amd64-mingw32msvc x86_64-w64-mingw32";
-
-if [ "X$CC" = "X" ]; then
-    for check in $CMD_PREFIX; do
-        full_check="${check}-gcc"
-        which "$full_check" > /dev/null 2>&1
-        if [ "$?" = "0" ]; then
-            export CC="$full_check"
-        fi
-    done
-fi
-
-if [ "X$WINDRES" = "X" ]; then
-    for check in $CMD_PREFIX; do
-        full_check="${check}-windres"
-        which "$full_check" > /dev/null 2>&1
-        if [ "$?" = "0" ]; then
-            export WINDRES="$full_check"
-        fi
-    done
-fi
-
-if [ "X$WINDRES" = "X" -o "X$CC" = "X" ]; then
-    echo "Error: Must define or find WINDRES and CC"
-    exit 1
-fi
-
-export PLATFORM=mingw32
-export ARCH=x64
-
-exec make $*

Deleted: trunk/id-readme.txt
===================================================================
--- trunk/id-readme.txt	2013-01-01 20:20:38 UTC (rev 2398)
+++ trunk/id-readme.txt	2013-03-18 13:17:34 UTC (rev 2399)
@@ -1,145 +0,0 @@
-Quake III Arena GPL source release
-==================================
-
-This file contains the following sections:
-
-LICENSE
-GENERAL NOTES
-
-LICENSE
-=======
-
-See COPYING.txt for the GNU GENERAL PUBLIC LICENSE
-
-Some source code in this release is not covered by the GPL:
-
-IO on .zip files using portions of zlib
------------------------------------------------------------------------------
-lines	file(s)
-4299	code/qcommon/unzip.c
-4546	libs/pak/unzip.cpp
-Copyright (C) 1998 Gilles Vollant
-zlib is Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-
-standard C library replacement routines
------------------------------------------------------------------------------
-lines	file(s)
-1324	code/game/bg_lib.c
-Copyright (c) 1992, 1993
-The Regents of the University of California. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. Neither the name of the University nor the names of its contributors
-   may be used to endorse or promote products derived from this software
-   without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-
-ADPCM coder/decoder
------------------------------------------------------------------------------
-lines	file(s)
-330		code/client/snd_adpcm.c
-Copyright 1992 by Stichting Mathematisch Centrum, Amsterdam, The
-Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-JPEG library
------------------------------------------------------------------------------
-code/jpeg-6
-libs/jpeg6
-Copyright (C) 1991-1995, Thomas G. Lane
-
-Permission is hereby granted to use, copy, modify, and distribute this
-software (or portions thereof) for any purpose, without fee, subject to these
-conditions:
-(1) If any part of the source code for this software is distributed, then this
-README file must be included, with this copyright and no-warranty notice
-unaltered; and any additions, deletions, or changes to the original files
-must be clearly indicated in accompanying documentation.
-(2) If only executable code is distributed, then the accompanying
-documentation must state that "this software is based in part on the work of
-the Independent JPEG Group".
-(3) Permission for use of this software is granted only if the user accepts
-full responsibility for any undesirable consequences; the authors accept
-NO LIABILITY for damages of any kind.
-
-These conditions apply to any software derived from or based on the IJG code,
-not just to the unmodified library.  If you use our work, you ought to
-acknowledge us.
-
-NOTE: unfortunately the README that came with our copy of the library has
-been lost, so the one from release 6b is included instead. There are a few
-'glue type' modifications to the library to make it easier to use from
-the engine, but otherwise the dependency can be easily cleaned up to a
-better release of the library.
-
-
-GENERAL NOTES
-=============
-
-A short summary of the file layout:
-
-code/			   		Quake III Arena source code ( renderer, game code, OS layer etc. )
-code/bspc				bot routes compiler source code
-lcc/					the retargetable C compiler ( produces assembly to be turned into qvm bytecode by q3asm )
-q3asm/					assembly to qvm bytecode compiler
-q3map/					map compiler ( .map -> .bsp ) - this is the version that comes with Q3Radiant 200f
-q3radiant/				Q3Radiant map editor build 200f ( common/ and libs/ are support dirs for radiant )
-
-While we made sure we were still able to compile the game on Windows, GNU/Linux
-and Mac, this build didn't get any kind of extensive testing so it may not work
-completely right. Whenever an id game is released under GPL, several projects
-start making the source code more friendly to nowaday's compilers and
-environements. If you are picking up this release weeks/months/years after we
-uploaded it, you probably want to look around on the net for cleaned up
-versions of this codebase as well.

Deleted: trunk/make-macosx-ub.sh
===================================================================
--- trunk/make-macosx-ub.sh	2013-01-01 20:20:38 UTC (rev 2398)
+++ trunk/make-macosx-ub.sh	2013-03-18 13:17:34 UTC (rev 2399)
@@ -1,215 +0,0 @@
-#!/bin/sh
-CC=gcc-4.0
-APPBUNDLE=ioquake3.app
-BINARY=ioquake3.ub
-DEDBIN=ioq3ded.ub
-PKGINFO=APPLIOQ3
-ICNS=misc/quake3.icns
-DESTDIR=build/release-darwin-ub
-BASEDIR=baseq3
-MPACKDIR=missionpack
-
-BIN_OBJ="
-	build/release-darwin-x86_64/ioquake3.x86_64
-	build/release-darwin-i386/ioquake3.i386
-	build/release-darwin-ppc/ioquake3.ppc
-"
-BIN_DEDOBJ="
-	build/release-darwin-x86_64/ioq3ded.x86_64
-	build/release-darwin-i386/ioq3ded.i386
-	build/release-darwin-ppc/ioq3ded.ppc
-"
-BASE_OBJ="
-	build/release-darwin-x86_64/$BASEDIR/cgamex86_64.dylib
-	build/release-darwin-i386/$BASEDIR/cgamei386.dylib
-	build/release-darwin-ppc/$BASEDIR/cgameppc.dylib
-	build/release-darwin-x86_64/$BASEDIR/uix86_64.dylib
-	build/release-darwin-i386/$BASEDIR/uii386.dylib
-	build/release-darwin-ppc/$BASEDIR/uippc.dylib
-	build/release-darwin-x86_64/$BASEDIR/qagamex86_64.dylib
-	build/release-darwin-i386/$BASEDIR/qagamei386.dylib
-	build/release-darwin-ppc/$BASEDIR/qagameppc.dylib
-"
-MPACK_OBJ="
-	build/release-darwin-x86_64/$MPACKDIR/cgamex86_64.dylib
-	build/release-darwin-i386/$MPACKDIR/cgamei386.dylib
-	build/release-darwin-ppc/$MPACKDIR/cgameppc.dylib
-	build/release-darwin-x86_64/$MPACKDIR/uix86_64.dylib
-	build/release-darwin-i386/$MPACKDIR/uii386.dylib
-	build/release-darwin-ppc/$MPACKDIR/uippc.dylib
-	build/release-darwin-x86_64/$MPACKDIR/qagamex86_64.dylib
-	build/release-darwin-i386/$MPACKDIR/qagamei386.dylib
-	build/release-darwin-ppc/$MPACKDIR/qagameppc.dylib
-"
-RENDER_OBJ="
-	build/release-darwin-x86_64/renderer_opengl1_smp_x86_64.dylib
-	build/release-darwin-i386/renderer_opengl1_smp_i386.dylib
-	build/release-darwin-ppc/renderer_opengl1_smp_ppc.dylib
-	build/release-darwin-x86_64/renderer_opengl1_x86_64.dylib
-	build/release-darwin-i386/renderer_opengl1_i386.dylib
-	build/release-darwin-ppc/renderer_opengl1_ppc.dylib
-	build/release-darwin-x86_64/renderer_rend2_smp_x86_64.dylib
-	build/release-darwin-i386/renderer_rend2_smp_i386.dylib
-	build/release-darwin-ppc/renderer_rend2_smp_ppc.dylib
-	build/release-darwin-x86_64/renderer_rend2_x86_64.dylib
-	build/release-darwin-i386/renderer_rend2_i386.dylib
-	build/release-darwin-ppc/renderer_rend2_ppc.dylib
-"
-
-cd `dirname $0`
-if [ ! -f Makefile ]; then
-	echo "This script must be run from the ioquake3 build directory"
-	exit 1
-fi
-
-Q3_VERSION=`grep '^VERSION=' Makefile | sed -e 's/.*=\(.*\)/\1/'`
-
-# We only care if we're >= 10.4, not if we're specifically Tiger.
-# "8" is the Darwin major kernel version.
-TIGERHOST=`uname -r |perl -w -p -e 's/\A(\d+)\..*\Z/$1/; $_ = (($_ >= 8) ? "1" : "0");'`
-
-# we want to use the oldest available SDK for max compatiblity. However 10.4 and older
-# can not build 64bit binaries, making 10.5 the minimum version.   This has been tested 
-# with xcode 3.1 (xcode31_2199_developerdvd.dmg).  It contains the 10.5 SDK and a decent
-# enough gcc to actually compile ioquake3
-# For PPC macs, G4's or better are required to run ioquake3.
-
-unset X86_64_SDK
-unset X86_64_CFLAGS
-unset X86_64_LDFLAGS
-unset X86_SDK
-unset X86_CFLAGS
-unset X86_LDFLAGS
-unset PPC_64_SDK
-unset PPC_CFLAGS
-unset PPC_LDFLAGS
-
-if [ -d /Developer/SDKs/MacOSX10.5.sdk ]; then
-	X86_64_SDK=/Developer/SDKs/MacOSX10.5.sdk
-	X86_64_CFLAGS="-arch x86_64 -isysroot /Developer/SDKs/MacOSX10.5.sdk \
-			-DMAC_OS_X_VERSION_MIN_REQUIRED=1050"
-	X86_64_LDFLAGS=" -mmacosx-version-min=10.5"
-
-	X86_SDK=/Developer/SDKs/MacOSX10.5.sdk
-	X86_CFLAGS="-arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk \
-			-DMAC_OS_X_VERSION_MIN_REQUIRED=1050"
-	X86_LDFLAGS=" -mmacosx-version-min=10.5"
-
-	PPC_SDK=/Developer/SDKs/MacOSX10.5.sdk
-	PPC_CFLAGS="-arch ppc -isysroot /Developer/SDKs/MacOSX10.5.sdk \
-			-DMAC_OS_X_VERSION_MIN_REQUIRED=1050"
-	PPC_LDFLAGS=" -mmacosx-version-min=10.5"
-fi
-
-if [ -z $X86_64_SDK ] || [ -z $X86_SDK ] || [ -z $PPC_SDK ]; then
-	echo "\
-ERROR: This script is for building a Universal Binary.  You cannot build
-       for a different architecture unless you have the proper Mac OS X SDKs
-       installed.  If you just want to to compile for your own system run
-       'make' instead of this script."
-	exit 1
-fi
-
-echo "Building X86_64 Client/Dedicated Server against \"$X86_64_SDK\""
-echo "Building X86 Client/Dedicated Server against \"$X86_SDK\""
-echo "Building PPC Client/Dedicated Server against \"$PPC_SDK\""
-echo
-
-if [ "$X86_64_SDK" != "/Developer/SDKs/MacOSX10.5.sdk" ] || \
-        [ "$X86_SDK" != "/Developer/SDKs/MacOSX10.5.sdk" ]; then
-	echo "\
-WARNING: in order to build a binary with maximum compatibility you must
-         build on Mac OS X 10.5 using Xcode 3.1 and have the MacOSX10.5
-         SDKs installed from the Xcode install disk Packages folder."
-sleep 3
-fi
-
-if [ ! -d $DESTDIR ]; then
-	mkdir -p $DESTDIR
-fi
-
-# For parallel make on multicore boxes...
-NCPU=`sysctl -n hw.ncpu`
-
-# x86_64 client and server
-if [ -d build/release-release-x86_64 ]; then
-	rm -r build/release-darwin-x86_64
-fi
-(ARCH=x86_64 CC=gcc-4.0 CFLAGS=$X86_64_CFLAGS LDFLAGS=$X86_64_LDFLAGS make -j$NCPU) || exit 1;
-
-echo;echo
-
-# i386 client and server
-if [ -d build/release-darwin-i386 ]; then
-	rm -r build/release-darwin-i386
-fi
-(ARCH=i386 CC=gcc-4.0 CFLAGS=$X86_CFLAGS LDFLAGS=$X86_LDFLAGS make -j$NCPU) || exit 1;
-
-echo;echo
-
-# PPC client and server
-if [ -d build/release-darwin-ppc ]; then
-	rm -r build/release-darwin-ppc
-fi
-(ARCH=ppc CC=gcc-4.0 CFLAGS=$PPC_CFLAGS LDFLAGS=$PPC_LDFLAGS make -j$NCPU) || exit 1;
-
-echo;echo
-
-echo "Creating .app bundle $DESTDIR/$APPBUNDLE"
-if [ ! -d $DESTDIR/$APPBUNDLE/Contents/MacOS/$BASEDIR ]; then
-	mkdir -p $DESTDIR/$APPBUNDLE/Contents/MacOS/$BASEDIR || exit 1;
-fi
-if [ ! -d $DESTDIR/$APPBUNDLE/Contents/MacOS/$MPACKDIR ]; then
-	mkdir -p $DESTDIR/$APPBUNDLE/Contents/MacOS/$MPACKDIR || exit 1;
-fi
-if [ ! -d $DESTDIR/$APPBUNDLE/Contents/Resources ]; then
-	mkdir -p $DESTDIR/$APPBUNDLE/Contents/Resources
-fi
-cp $ICNS $DESTDIR/$APPBUNDLE/Contents/Resources/ioquake3.icns || exit 1;
-echo $PKGINFO > $DESTDIR/$APPBUNDLE/Contents/PkgInfo
-echo "
-	<?xml version=\"1.0\" encoding=\"UTF-8\"?>
-	<!DOCTYPE plist
-		PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\"
-		\"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
-	<plist version=\"1.0\">
-	<dict>
-		<key>CFBundleDevelopmentRegion</key>
-		<string>English</string>
-		<key>CFBundleExecutable</key>
-		<string>$BINARY</string>
-		<key>CFBundleGetInfoString</key>
-		<string>ioquake3 $Q3_VERSION</string>
-		<key>CFBundleIconFile</key>
-		<string>ioquake3.icns</string>
-		<key>CFBundleIdentifier</key>
-		<string>org.ioquake.ioquake3</string>
-		<key>CFBundleInfoDictionaryVersion</key>
-		<string>6.0</string>
-		<key>CFBundleName</key>
-		<string>ioquake3</string>
-		<key>CFBundlePackageType</key>
-		<string>APPL</string>
-		<key>CFBundleShortVersionString</key>
-		<string>$Q3_VERSION</string>
-		<key>CFBundleSignature</key>
-		<string>$PKGINFO</string>
-		<key>CFBundleVersion</key>
-		<string>$Q3_VERSION</string>
-		<key>NSExtensions</key>
-		<dict/>
-		<key>NSPrincipalClass</key>
-		<string>NSApplication</string>
-	</dict>
-	</plist>
-	" > $DESTDIR/$APPBUNDLE/Contents/Info.plist
-
-# Make UB's from previous builds of i386, x86_64 and ppc binaries
-lipo -create -o $DESTDIR/$APPBUNDLE/Contents/MacOS/$BINARY $BIN_OBJ
-lipo -create -o $DESTDIR/$APPBUNDLE/Contents/MacOS/$DEDBIN $BIN_DEDOBJ
-
-cp $RENDER_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/
-cp $BASE_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/$BASEDIR/
-cp $MPACK_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/$MPACKDIR/
-cp code/libs/macosx/*.dylib $DESTDIR/$APPBUNDLE/Contents/MacOS/
-

Deleted: trunk/make-macosx.sh
===================================================================
--- trunk/make-macosx.sh	2013-01-01 20:20:38 UTC (rev 2398)
+++ trunk/make-macosx.sh	2013-03-18 13:17:34 UTC (rev 2399)
@@ -1,164 +0,0 @@
-#!/bin/sh
-#
-
-CC=gcc-4.0
-APPBUNDLE=ioquake3.app
-BINARY=ioquake3.${BUILDARCH}
-DEDBIN=ioq3ded.${BUILDARCH}
-PKGINFO=APPLIOQ3
-ICNS=misc/quake3.icns
-DESTDIR=build/release-darwin-${BUILDARCH}
-BASEDIR=baseq3
-MPACKDIR=missionpack
-
-# Lets make the user give us a target build system
-
-if [ $# -ne 1 ]; then
-	echo "Usage:   $0 target_architecture"
-	echo "Example: $0 i386"
-	echo "other valid options are x86_64 or ppc"
-	echo
-	echo "If you don't know or care about architectures please consider using make-macosx-ub.sh instead of this script."
-	exit 1
-fi
-
-if [ "$1" == "i386" ]; then
-	BUILDARCH=i386
-elif [ "$1" == "x86_64" ]; then
-	BUILDARCH=x86_64
-elif [ "$1" == "ppc" ]; then
-	BUILDARCH=ppc
-else
-	echo "Invalid architecture: $1"
-	echo "Valid architectures are i386, x86_64 or ppc"
-	exit 1
-fi
-
-BIN_OBJ="
-	build/release-darwin-${BUILDARCH}/ioquake3.${BUILDARCH}
-"
-BIN_DEDOBJ="
-	build/release-darwin-${BUILDARCH}/ioq3ded.${BUILDARCH}
-"
-BASE_OBJ="
-	build/release-darwin-${BUILDARCH}/$BASEDIR/cgame${BUILDARCH}.dylib
-	build/release-darwin-${BUILDARCH}/$BASEDIR/ui${BUILDARCH}.dylib
-	build/release-darwin-${BUILDARCH}/$BASEDIR/qagame${BUILDARCH}.dylib
-"
-MPACK_OBJ="
-	build/release-darwin-${BUILDARCH}/$MPACKDIR/cgame${BUILDARCH}.dylib
-	build/release-darwin-${BUILDARCH}/$MPACKDIR/ui${BUILDARCH}.dylib
-	build/release-darwin-${BUILDARCH}/$MPACKDIR/qagame${BUILDARCH}.dylib
-"
-RENDER_OBJ="
-	build/release-darwin-${BUILDARCH}/renderer_opengl1_smp_${BUILDARCH}.dylib
-	build/release-darwin-${BUILDARCH}/renderer_opengl1_${BUILDARCH}.dylib
-	build/release-darwin-${BUILDARCH}/renderer_rend2_smp_${BUILDARCH}.dylib
-	build/release-darwin-${BUILDARCH}/renderer_rend2_${BUILDARCH}.dylib
-"
-
-cd `dirname $0`
-if [ ! -f Makefile ]; then
-	echo "This script must be run from the ioquake3 build directory"
-	exit 1
-fi
-
-Q3_VERSION=`grep '^VERSION=' Makefile | sed -e 's/.*=\(.*\)/\1/'`
-
-# We only care if we're >= 10.4, not if we're specifically Tiger.
-# "8" is the Darwin major kernel version.
-TIGERHOST=`uname -r |perl -w -p -e 's/\A(\d+)\..*\Z/$1/; $_ = (($_ >= 8) ? "1" : "0");'`
-
-# we want to use the oldest available SDK for max compatiblity. However 10.4 and older
-# can not build 64bit binaries, making 10.5 the minimum version.   This has been tested 
-# with xcode 3.1 (xcode31_2199_developerdvd.dmg).  It contains the 10.5 SDK and a decent
-# enough gcc to actually compile ioquake3
-# For PPC macs, G4's or better are required to run ioquake3.
-
-unset ARCH_SDK
-unset ARCH_CFLAGS
-unset ARCH_LDFLAGS
-
-if [ -d /Developer/SDKs/MacOSX10.5.sdk ]; then
-	ARCH_SDK=/Developer/SDKs/MacOSX10.5.sdk
-	ARCH_CFLAGS="-arch ${BUILDARCH} -isysroot /Developer/SDKs/MacOSX10.5.sdk \
-			-DMAC_OS_X_VERSION_MIN_REQUIRED=1050"
-	ARCH_LDFLAGS=" -mmacosx-version-min=10.5"
-fi
-
-
-echo "Building ${BUILDARCH} Client/Dedicated Server against \"$ARCH_SDK\""
-sleep 3
-
-if [ ! -d $DESTDIR ]; then
-	mkdir -p $DESTDIR
-fi
-
-# For parallel make on multicore boxes...
-NCPU=`sysctl -n hw.ncpu`
-
-
-# intel client and server
-if [ -d build/release-darwin-${BUILDARCH} ]; then
-	rm -r build/release-darwin-${BUILDARCH}
-fi
-(ARCH=${BUILDARCH} CFLAGS=$ARCH_CFLAGS LDFLAGS=$ARCH_LDFLAGS make -j$NCPU) || exit 1;
-
-echo "Creating .app bundle $DESTDIR/$APPBUNDLE"
-if [ ! -d $DESTDIR/$APPBUNDLE/Contents/MacOS/$BASEDIR ]; then
-	mkdir -p $DESTDIR/$APPBUNDLE/Contents/MacOS/$BASEDIR || exit 1;
-fi
-if [ ! -d $DESTDIR/$APPBUNDLE/Contents/MacOS/$MPACKDIR ]; then
-	mkdir -p $DESTDIR/$APPBUNDLE/Contents/MacOS/$MPACKDIR || exit 1;
-fi
-if [ ! -d $DESTDIR/$APPBUNDLE/Contents/Resources ]; then
-	mkdir -p $DESTDIR/$APPBUNDLE/Contents/Resources
-fi
-cp $ICNS $DESTDIR/$APPBUNDLE/Contents/Resources/ioquake3.icns || exit 1;
-echo $PKGINFO > $DESTDIR/$APPBUNDLE/Contents/PkgInfo
-echo "
-	<?xml version=\"1.0\" encoding=\"UTF-8\"?>
-	<!DOCTYPE plist
-		PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\"
-		\"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
-	<plist version=\"1.0\">
-	<dict>
-		<key>CFBundleDevelopmentRegion</key>
-		<string>English</string>
-		<key>CFBundleExecutable</key>
-		<string>$BINARY</string>
-		<key>CFBundleGetInfoString</key>
-		<string>ioquake3 $Q3_VERSION</string>
-		<key>CFBundleIconFile</key>
-		<string>ioquake3.icns</string>
-		<key>CFBundleIdentifier</key>
-		<string>org.ioquake.ioquake3</string>
-		<key>CFBundleInfoDictionaryVersion</key>
-		<string>6.0</string>
-		<key>CFBundleName</key>
-		<string>ioquake3</string>
-		<key>CFBundlePackageType</key>
-		<string>APPL</string>
-		<key>CFBundleShortVersionString</key>
-		<string>$Q3_VERSION</string>
-		<key>CFBundleSignature</key>
-		<string>$PKGINFO</string>
-		<key>CFBundleVersion</key>
-		<string>$Q3_VERSION</string>
-		<key>NSExtensions</key>
-		<dict/>
-		<key>NSPrincipalClass</key>
-		<string>NSApplication</string>
-	</dict>
-	</plist>
-	" > $DESTDIR/$APPBUNDLE/Contents/Info.plist
-
-
-cp $BIN_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/$BINARY
-cp $BIN_DEDOBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/$DEDBIN
-cp $RENDER_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/
-cp $BASE_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/$BASEDIR/
-cp $MPACK_OBJ $DESTDIR/$APPBUNDLE/Contents/MacOS/$MPACKDIR/
-cp code/libs/macosx/*.dylib $DESTDIR/$APPBUNDLE/Contents/MacOS/
-cp code/libs/macosx/*.dylib $DESTDIR
-

Deleted: trunk/md4-readme.txt
===================================================================
--- trunk/md4-readme.txt	2013-01-01 20:20:38 UTC (rev 2398)
+++ trunk/md4-readme.txt	2013-03-18 13:17:34 UTC (rev 2399)
@@ -1,54 +0,0 @@
-##########################################################
-# Info about the MD4 format supported by the ioQ3 engine #
-##########################################################
-
-All models included with the original version of Quake3 from id soft are in
-the MD3 format. Animations in this format are realized by saving the position
-of every vertex in each frame which can make these files pretty large.
-
-ID started work on a newer format, the MD4 format which they never finished.
-This format uses a skeleton with all vertices "attached" to their bones.
-Because only the position of the bones must be stored for each frame and the
-number of bones is not very high this format is more efficient when
-doing animations.
-
-Raven software "finished" this format originally started by ID and included
-it in their game EliteForce. They called their model format "MDR" which is
-the name I have used throughout the sourcecode and I will continue using in
-this readme. Since the code on how to handle those MDR files was released
-under a GPL licence a long time ago, I was able to implement this format for
-Quake3 and do some efficiency improvements.
-To enable the support for this model format, go to qcommon/qfiles.h,
-remove the comment slashes for #define RAVENMD4 and then compile the engine.
-
-Including finished MDR models in your projects is easy: just load the model
-files in your cgame code as you would normally load an MD3 model. The engine
-will expect the models to have a ".mdr" suffix.
-The rest is pretty much the same: Selecting the current animation frame,
-adding a skin to the model, etc..
-You can check out the original eliteforce game sourcecode if you want to
-have examples on using the md4s. The source can be got at:
-http://eliteforce2.filefront.com/
-You can also get reference MDR files there, just go to the model/skin
-section there and pick something to download.
-
-Now here comes the tricky part:
-Creating files with this format. There are tools to create these kinds of
-MDR files, like a plugin for Milkshape.
-
-A pretty good overview about MDR file creation is available at
-http://synapse.vgfort.com/
-You can find some tools for creating MDR files there.
-
-On a sidenote:
-There is an independent implementation of the MD4 file format available
-here:
-http://gongo.quakedev.com/
-At this time, ioquake3 has no support for these models though that may
-change in the future. Nevertheless, he has got a tool for skeletal
-animations that can possibly be hooked into the MDR format with some
-modifications.
-
-
-Good luck!
- - Thilo Schulz

Deleted: trunk/rend2-readme.txt
===================================================================
--- trunk/rend2-readme.txt	2013-01-01 20:20:38 UTC (rev 2398)
+++ trunk/rend2-readme.txt	2013-03-18 13:17:34 UTC (rev 2399)
@@ -1,606 +0,0 @@
-Rend2
-<insert ascii art here>
-
-Rend2 is an alternate renderer for ioquake3.  It aims to implement modern
-features and technologies into the id tech 3 engine, but without sacrificing
-compatibility with existing Quake 3 mods.
-
-
--------------------------------------------------------------------------------
-  FEATURES
--------------------------------------------------------------------------------
-
-  - Compatible with most vanilla Quake 3 mods.
-  - HDR Rendering, and support for HDR lightmaps
-  - Tone mapping and auto-exposure.
-  - Cascaded shadow maps.
-  - Multisample anti-aliasing.
-  - Texture upsampling.
-  - Advanced materials support.
-  - Advanced shading and specular methods.
-  - sRGB support.
-  - LATC and BPTC texture compression support.
-  - Screen-space ambient occlusion.
-
-
--------------------------------------------------------------------------------
-  COMPILATION
--------------------------------------------------------------------------------
-
-For *nix/MinGW:
-
-1. Download an appropriate version of the ioq3 source code.  For version 32 of
-   Rend2, r2328 should do, though the latest may work as well.  For 
-   details on how to do this, see http://ioquake3.org/get-it/source-codes/ .
-   
-2. Copy the patch file (for v32, vbos-glsl-31a.diff) into the directory you put
-   the ioq3 source code.  There should be a README in that directory.
-   
-3. Run 'patch -p0 <vbos-glsl-31a.diff' then 'make'.
-
-Compiling on different platforms and with different compilers hasn't been
-tested.  The MSVC project file should work, but it hasn't been tested.
-
-
--------------------------------------------------------------------------------
-  INSTALLATION
--------------------------------------------------------------------------------
-
-For *nix:
-
-1. This should be identical to installing ioq3.  Check their README for more
-   details.
-
-   
-For Win32:
-
-1. Have a Quake 3 install, fully patched.
-
-2. Copy the following files into Quake 3's install directory: 
-     
-     ioquake3.x86.exe
-     renderer_opengl1_x86.dll
-     renderer_rend2_x86.dll
-     
-   These can be found in build/release-mingw32-x86 after compiling, or bug
-   someone to release binaries.
-  
-
--------------------------------------------------------------------------------
-  RUNNING
--------------------------------------------------------------------------------
-
-1. Start ioquake3. (ioquake3.x86.exe on Win32)
- 
-2. Open the console (default key ~) and type '/cl_renderer rend2; vid_restart'
-
-3. Enjoy.
-
-
--------------------------------------------------------------------------------
-  CVARS
--------------------------------------------------------------------------------
-
-Cvars for simple rendering features:
-  r_ext_compressed_textures       - Automatically compress textures.
-                                     0 - No texture compression. (default)
-                                     1 - DXT/LATC texture compression if
-                                         supported.
-                                     2 - BPTC texture compression if supported.
-
-  r_ext_framebuffer_multisample  - Multisample Anti-aliasing.
-                                     0    - None. (default)
-                                     1-16 - Some.
-                                     17+  - Too much!
-
-  r_ssao                         - Enable screen-space ambient occlusion.
-                                   Currently eats framerate and has some
-                                   visible artifacts.
-                                     0 - No. (default)
-                                     1 - Yes.
-
-  r_softOverbright               - Enable software overbrighting.  This enables
-                                   overbrighting even in a window.  Is disabled
-                                   when r_toneMap 1 and r_hdr 1.
-                                     0 - No.
-                                     1 - Yes. (default)
-
-Cvars for HDR and tonemapping:
-  r_hdr                          - Do scene rendering in a framebuffer with
-                                   high dynamic range.  (Less banding, and
-                                   exposure changes look much better)
-                                     0 - No.
-                                     1 - Yes. (default)
-
-  r_cameraExposure               - Cheat.  Alter brightness, in powers of two.
-                                     -2  - 4x as dark.
-                                     0   - Normal. (default)
-                                     0.5 - Sqrt(2)x as bright.
-                                     2   - 4x as bright.
-
-  r_postProcess                  - Enable post-processing.
-                                     0 - No.
-                                     1 - Yes. (default)
-
-  r_toneMap                      - Enable tone mapping.  Requires 
-                                   r_hdr and r_postProcess.
-                                     0 - No.
-                                     1 - Yes. (default)
-
-  r_forceToneMap                 - Cheat.  Override built-in and map tonemap
-                                   settings and use cvars r_forceToneMapAvg,
-                                   r_forceToneMapMin, and r_forceToneMapMax.
-                                     0 - No. (default)
-                                     1 - Yes.
-
-  r_forceToneMapAvg              - Cheat.  Map average scene luminance to this
-                                   value, in powers of two.  Requires 
-                                   r_forceToneMap.
-                                    -2.0 - Dark.
-                                    -1.0 - Kinda dark. (default).
-                                     2.0 - Too bright.
-
-  r_forceToneMapMin              - Cheat.  After mapping average, luminance
-                                   below this level is mapped to black.
-                                   Requires r_forceToneMap.
-                                    -5    - Not noticeable.
-                                    -3.25 - Normal. (default)
-                                     0.0  - Too dark.
-
-  r_forceToneMapMin              - Cheat.  After mapping average, luminance
-                                   above this level is mapped to white.
-                                   Requires r_forceToneMap.
-                                    0.0 - Too bright.
-                                    1.0 - Normal. (default).
-                                    2.0 - Washed out.
-
-  r_autoExposure                 - Do automatic exposure based on scene
-                                   brightness.  Hardcoded to -2 to 2 on maps
-                                   that don't specify otherwise.  Requires
-                                   r_hdr, r_postprocess, and r_toneMap.
-                                     0 - No.
-                                     1 - Yes. (default)
-                                     
-  r_forceAutoExposure            - Cheat.  Override built-in and map auto
-                                   exposure settings and use cvars
-                                   r_forceAutoExposureMin and 
-                                   r_forceAutoExposureMax.
-                                     0 - No. (default)
-                                     1 - Yes.
-
-  r_forceAutoExposureMin         - Cheat.  Set minimum exposure to this value,
-                                   in powers of two.  Requires
-                                   r_forceAutoExpsure.
-                                    -3.0 - Dimmer.
-                                    -2.0 - Normal. (default)
-                                    -1.0 - Brighter.
-
-  r_forceAutoExposureMax         - Cheat.  Set maximum exposure to this value,
-                                   in powers of two.  Requires
-                                   r_forceAutoExpsure.
-                                     1.0 - Dimmer.
-                                     2.0 - Normal. (default)
-                                     3.0 - Brighter.
-
-  r_srgb                         - Treat all input textures as sRGB, and do
-                                   final rendering in a sRGB framebuffer.  Only
-                                   required if assets were created with it in
-                                   mind.
-                                     0 - No. (default)
-                                     1 - Yes.
-
-Cvars for advanced material usage:
-  r_normalMapping                - Enable normal mapping for materials that
-                                   support it, and also specify advanced 
-                                   shading techniques.
-                                     0 - No.
-                                     1 - Yes. (default)
-                                     2 - Yes, and use Oren-Nayar reflectance
-                                         model.
-                                     3 - Yes, and use tri-Ace's Oren-Nayar
-                                         reflectance model.
-
-  r_specularMapping              - Enable specular mapping for materials that
-                                   support it, and also specify advanced
-                                   specular techniques.
-                                     0 - No.
-                                     1 - Yes, and use tri-Ace. (default)
-                                     2 - Yes, and use Blinn-Phong.
-                                     3 - Yes, and use Cook-Torrance.
-                                     4 - Yes, and use Torrance-Sparrow.
-
-  r_deluxeMapping                - Enable deluxe mapping.  (Map is compiled
-                                   with light directions.)  Even if the map 
-                                   doesn't have deluxe mapping compiled in,
-                                   an approximation based on the lightgrid
-                                   will be used.
-                                     0 - No.
-                                     1 - Yes. (default)
-
-  r_parallaxMapping              - Enable parallax mapping for materials that
-                                   support it.
-                                     0 - No. (default)
-                                     1 - Yes.
-
-Cvars for image interpolation and generation:
-  r_imageUpsample                - Use interpolation to artifically increase
-                                   the resolution of all textures.  Looks good
-                                   in certain circumstances.
-                                     0 - No. (default)
-                                     1 - 2x size.
-                                     2 - 4x size.
-                                     3 - 8x size, etc
-
-  r_imageUpsampleMaxSize         - Maximum texture size when upsampling
-                                   textures.
-                                     1024 - Default.
-                                     2048 - Really nice.
-                                     4096 - Really slow.
-                                     8192 - Crash.
-
-  r_imageUpsampleType            - Type of interpolation when upsampling
-                                   textures.
-                                     0 - None. (probably broken)
-                                     1 - Bad but fast (default,
-                                         FCBI without second derivatives)
-                                     2 - Okay but slow (normal FCBI)
-
-  r_genNormalMaps                - Naively generate normal maps for all
-                                   textures.
-                                     0 - Don't. (default)
-                                     1 - Do.
-
-Cvars for the sunlight and cascaded shadow maps:
-  r_forceSun                     - Cheat. Force sunlight and shadows, using sun
-                                   position from sky material.
-                                     0 - Don't. (default)
-                                     1 - Do.
-                                     2 - Sunrise, sunset.
-
-  r_forceSunMapLightScale        - Cheat. Scale map brightness by this factor
-                                   when r_forceSun 1.
-                                     0.5 - Default
-                                     
-  r_forceSunLightScale           - Cheat. Scale sun brightness by this factor
-                                   when r_forceSun 1.
-                                     0.5 - Default
-                                     
-  r_forceSunAmbientScale         - Cheat. Scale sun ambient brightness by this 
-                                   factor when r_forceSun 1.
-                                     0.2 - Default
-
-  r_sunShadows                   - Enable sunlight and cascaded shadow maps for
-                                   it on maps that support it.
-                                     0 - No.
-                                     1 - Yes. (default)
-
-  r_shadowFilter                 - Enable filtering shadows for a smoother
-                                   look.
-                                     0 - No.
-                                     1 - Some. (default)
-                                     2 - Much.
-
-  r_shadowMapSize                - Size of each cascaded shadow map.
-                                     256  - 256x256, ugly, probably shouldn't
-                                             go below this.
-                                     512  - 512x512, passable.
-                                     1024 - 1024x1024, good. (default)
-                                     2048 - 2048x2048, extreme.
-                                     4096 - 4096x4096, indistinguishable from
-                                            2048.
-  
-Cvars that you probably don't care about or shouldn't mess with:
-  r_mergeMultidraws              - Optimize number of calls to 
-                                   glMultiDrawElements().
-                                     0 - Don't.
-                                     1 - Do some. (default)
-                                     2 - Do more than necessary (eats CPU).
-
-  r_mergeLeafSurfaces            - Merge surfaces that share common materials
-                                   and a common leaf.  Speeds up rendering.
-                                     0 - Don't.
-                                     1 - Do. (default)
-
-  r_recalcMD3Normals             - Recalculate the normals when loading an MD3.
-                                   Fixes normal maps in some cases but looks
-                                   ugly in others.
-                                     0 - Don't. (default)
-                                     1 - Do.
-
-  r_depthPrepass                 - Do a depth-only pass before rendering.
-                                   Speeds up rendering in cases where advanced
-                                   features are used.  Required for
-                                   r_sunShadows.
-                                     0 - No.
-                                     1 - Yes. (default)
-
-  r_normalAmbient                - Split map light into ambient and directed
-                                   portions when doing deluxe mapping.  Not
-                                   very useful.
-                                     0   - Don't. (default).
-                                     0.3 - 30% ambient, 70% directed.
-                                     1.0 - 100% ambient.
-
-  r_mergeLightmaps               - Merge the small (128x128) lightmaps into 
-                                   2 or fewer giant (4096x4096) lightmaps.
-                                   Easy speedup.
-                                     0 - Don't.
-                                     1 - Do. (default)
-
-  r_shadowCascadeZNear           - Near plane for shadow cascade frustums.
-                                     4 - Default.
-
-  r_shadowCascadeZFar            - Far plane for shadow cascade frustums.
-                                     3072 - Default.
-
-  r_shadowCascadeZBias           - Z-bias for shadow cascade frustums.
-                                     -256 - Default.
-
-  
-Cvars that have broken bits:
-  r_dlightMode                   - Change how dynamic lights look.
-                                     0 - Quake 3 style dlights, fake
-                                         brightening. (default)
-                                     1 - Actual lighting, no shadows.
-                                     2 - Light and shadows. (broken)
-
-  r_pshadowDist                  - Virtual camera distance when creating shadow
-                                   maps for projected shadows.  Deprecated.
-                                   
-  cg_shadows                     - Old shadow code.  Deprecated.
-
-
--------------------------------------------------------------------------------
-  MATERIALS
--------------------------------------------------------------------------------
-
-Rend2 supports .mtr files, which are basically the same as .shader files, and
-are located in the same place, but override existing .shader files if they 
-exist.  This is to allow maps and mods to use the new material features without
-breaking the map when using the old renderer.
-
-Here's an example of a material stored in one, showing off some new features:
-
-    textures/abandon/grass
-    {
-        qer_editorimage textures/abandon/grass.jpg
-        {
-            map textures/abandon/grass3_256_d.jpg
-            rgbgen identity
-        }
-        {
-            stage normalparallaxmap
-            map textures/abandon/grass3_1024_n.png
-        }
-        {
-            stage specularmap
-            map textures/abandon/grass3_256_s.png
-            specularReflectance 0.12
-            specularExponent 16
-        }
-        {
-            map $lightmap
-            blendfunc GL_DST_COLOR GL_ZERO
-        }
-    }
-
-The first thing to notice is that this is basically the same as old Quake 3 
-shader files.  The next thing to notice are the new keywords.  Here is what 
-they mean:
-
-  stage <type>        
-    - State how this imagemap will be used by Rend2:
-        diffuseMap        - Standard, same as no stage entry
-        normalMap         - Image will be used as a normal map
-        normalParallaxMap - Image will be used as a normal map with 
-                            alpha treated as height for parallax mapping
-        specularMap       - Image will be used as a specular map with
-                            alpha treated as shininess.
-
-  specularReflectance <value> 
-    - State how metallic this material is.  Metals typically have a high 
-      specular and a low diffuse, so this is typically high for them, and low
-      for other materials, such as plastic.  For typical values for various
-      materials, see http://refractiveindex.info , pick a material, then scroll
-      down to the reflection calculator and look up its reflectance.  Default
-      is 0.04, since most materials aren't metallic.
-  
-  specularExponent <value>
-    - State how shiny this material is.  Note that this is modulated by the 
-      alpha channel of the specular map, so if it were set to 16, and the alpha
-      channel of the specular map was set to 0.5, then the shininess would be
-      set to 8.  Default 256.
-      
-An important note is that normal and specular maps influence the diffuse map
-declared before them, so materials like this are possible:
-
-    textures/terrain/grass
-    {
-        qer_editorimage textures/terrain/grass.jpg
-
-        {
-            map textures/terrain/rock.jpg
-        }
-        {
-            stage normalparallaxmap
-            map textures/terrain/rock_n.png
-        }
-        {
-            stage specularmap
-            map textures/terrain/rock_s.jpg
-        }
-        {
-            map textures/terrain/grass.jpg
-            blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
-            alphaGen vertex
-        }
-        {
-            stage normalparallaxmap
-            map textures/terrain/grass_n.png
-        }
-        {
-            stage specularmap
-            map textures/terrain/grass_s.png
-            specularReflectance 0.12
-        }
-        {
-            map $lightmap
-            blendfunc GL_DST_COLOR GL_ZERO
-        }
-    }
-    
-Though note due to the complexity of lighting, dynamic light (including
-sunlight with cascaded shadow maps) currently only works 100% on materials like
-this, where the second diffuse map doesn't have its own alpha, and only
-uses vertex alpha.  YMMV.
-
-Another addition to materials is working normal/specular maps on vertex lit
-surfaces.  To enable this, make your material look like this:
-
-    textures/vehicles/car
-    {
-        qer_editorimage textures/vehicles/car.jpg
-
-        {
-            map textures/vehicles/car.jpg
-            rgbGen vertexLit
-        }
-        {
-            stage normalparallaxmap
-            map textures/vehicles/car_n.jpg
-        }
-        {
-            stage specularmap
-            map textures/vehicles/car_s.jpg
-        }
-    }
-
-Note the new keyword, 'vertexLit' after rgbGen.  This is analogous to 
-'rgbGen vertex', except a light direction will be determined from the lightgrid
-and used with the normal and specular maps.  'exactVertexLit' exists as well,
-and is the equivalent for 'exactVertex'.
-
-
--------------------------------------------------------------------------------
-  DYNAMIC SUNLIGHT AND CASCADED SHADOW MAPS
--------------------------------------------------------------------------------
-
-This adds a new keyword to sky materials, q3gl2_sun.  The syntax is:
-
-  q3gl2_sun <red> <green> <blue> <intensity> <degrees> <mapLightScale> 
-  <ambientLightScale>
-  
-Note the first six parameters are the same as in q3map_sun or q3map_sunExt,
-and the last two indicate scaling factors for the map brightness and an ambient
-light of the same color as the sun.
-
-There are currently two ways to use this in your own (and other people's) maps.
-
-  1. Create your map as normal and add a 'q3gl2_sun' line after your 
-     'q3map_sun' line in your sky material, like so:
-     
-    textures/skies/bluesky
-    {
-        qer_editorimage textures/skies/bluesky.jpg
-
-        surfaceparm nomarks
-        surfaceparm noimpact
-        surfaceparm nolightmap
-        surfaceparm sky
-        q3map_sunExt 240 238 200 100 195 35 3 16
-        q3gl2_sun 240 238 200 50 195 35 3 0.5 0.2
-        q3map_skylight 50 16
-        q3map_lightimage $whiteimage
-
-        skyparms env/bluesky - -
-    }
-
-     The advantages with this method are that your map will continue to work
-     with the old renderer with the sunlight baked into the lightmap, and it
-     can be used with existing maps without recompilation.  The downside is
-     artifacts like doubled shadows and uneven shadow edges.
-     
-  2. Use 'q3gl2_sun' instead of 'q3map_sun' or 'q3map_sunExt', like so:
-  
-    textures/skies/bluesky
-    {
-        qer_editorimage textures/skies/bluesky.jpg
-
-        surfaceparm nomarks
-        surfaceparm noimpact
-        surfaceparm nolightmap
-        surfaceparm sky
-        q3gl2_sun 240 238 200 50 195 35 3 0.5 0.2
-        q3map_skylight 50 16
-        q3map_lightimage $whiteimage
-
-        skyparms env/bluesky - -
-    }
-
-     The advantages with this method are that you don't get the artifacts that
-     characterize the other method, and your map compiles a lot faster without
-     the sunlight bouncing calculations.  The downsides are that your map will
-     not display properly with the old renderer, and you lose the bounced light
-     that compiling the map with q3map_sun* in it would have.
-
-     
--------------------------------------------------------------------------------
-  TONE MAPPING AND AUTO EXPOSURE
--------------------------------------------------------------------------------
-
-This adds a new keyword to sky materials, q3gl2_tonemap.  The syntax is:
-
-  q3gl2_tonemap <toneMapMin> <toneMapAvg> <toneMapMax <autoExposureMin>
-  <autoExposureMax>
-  
-Each of these settings corresponds to a matching cvar, so you can view and
-adjust the effect before settling on fixed settings.
-
-
--------------------------------------------------------------------------------
-  THANKS
--------------------------------------------------------------------------------
-
-I'd like to take this part of the readme to thank the numerous people who
-contributed thoughts, ideas, and whole swaths of code to this project.
-
-  - Id Software, for creating Quake 3 and releasing its source code under a
-    GPL license, without which this project would not be possible.
-
-  - Zachary 'Zakk' Slater, Thilo Schulz, Tim Angus, and the rest of the
-    ioquake3 team and contributors, for improving massively upon the raw Quake
-    3 source, and accepting my and gimhael's modular renderer patch.
-
-  - Robert 'Tr3B' Beckebans and the other contributors to XReaL, for letting me
-    liberally copy code from you. :)
-  
-  - Andrew 'Black Monk' Prosnik, Andrei 'Makro' Drexler, Tomi 'T.T.I.' Isoaho,
-    Richard 'JBravo' Allen, Walter 'Johnny Rocket' Somol, and the rest of the
-    Boomstick Studios, for contributing code, feature requests, and testing.
-    
-  - Yoshiharu Gotanda, Tatsuya Shoji, and the rest of tri-Ace's R&D Department,
-    for creating the tri-Ace shading equations and posting their derivations in
-    simple English.
-    
-  - Matthias 'gimhael' Bentrup, for random ideas and bits of code.
-  
-  - Evan 'megatog615' Goers, for testing, ideas, and bugging me just enough
-    that I'd write documentation. :)
-
-  - The folks at #ioquake3, who don't seem to mind when I suddenly drop a
-    screenshot and insist on talking about it. :)
-
-  - And lots of various other random people, who posted on forums, blogs, and
-    Wikipedia, who helped in small but numerous ways.
-
-If I missed you in this section, feel free to drop me a line and I'll add you.
-
-
--------------------------------------------------------------------------------
-  CONTACT
--------------------------------------------------------------------------------
-
-My name is James Canete, and I wrote most of this readme.  Also, a renderer.
-
-If you wish to get in touch with me, try my GMail at use.less01 (you should be
-able to solve this), or look for SmileTheory in #ioquake3 on irc.freenode.net.

Deleted: trunk/voip-readme.txt
===================================================================
--- trunk/voip-readme.txt	2013-01-01 20:20:38 UTC (rev 2398)
+++ trunk/voip-readme.txt	2013-03-18 13:17:34 UTC (rev 2399)
@@ -1,202 +0,0 @@
-ioquake3 VoIP support documentation.
-Last updated 6/25/2008 by Ryan C. Gordon.
-
-There are two ways to use VoIP in ioquake3. You can either use Mumble as an
- external program, for which ioq3 now supplies some basic hooks, or you can
- use the new built-in VoIP support.
-
-Mumble is here: http://mumble.sourceforge.net/  ... ioquake3 can supply it
- with your in-game position, but everything else is whatever features Mumble
- offers outside of the game. To use it, start Mumble before you start ioq3,
- and run the game with +set cl_useMumble 1. This should work on at least
- Linux, Mac OS X, and Windows, and probably other platforms Mumble supports
- in the future.
-
-The built-in stuff offers tighter in-game integration, works on any platform
- that ioquake3 supports, and doesn't require anything more than a recent build
- of the game. The rest of this document is concerned with the built-in VoIP
- support.
-
-
-Quick start for servers:
-    - run a recent build of ioquake3.
-    - Make sure your network settings are set to broadband.
-
-Quick start for clients:
-    - run a recent build of ioquake3.
-    - Make sure your network settings are set to broadband.
-    - +set s_useOpenAL 1
-    - \bind q "+voiprecord"
-    - Hook up a microphone, connect to a VoIP-supporting server.
-    - hold down 'q' key and talk.
-
-
-Cvars you can set:
-
-sv_voip: set to "1" (the default) to enable server-side VoIP support. Set to
-         "0" to disable. Without this, all VoIP packets are refused by the
-         server, which means no one gets to use in-game VoIP.
-
-cl_voip: set to "1" (the default) to enable client-side VoIP support. Set to "0"
-      to disable. Without this, you will neither be able to transmit voice nor
-      hear other people.
-
-s_alCapture: set to "1" (the default) to have the audio layer open an OpenAL
-             capture device. Without this set on sound startup, you'll never
-             get bits from the microphone. This means you won't transmit, but
-             you can still hear other people.
-
-cl_voipSendTarget: a string: "all" to broadcast to everyone, "none" to send
-                   to no one, "attacker" to send to the last person that hit
-                   you, "crosshair" to send to the people currently in your
-                   crosshair, "spatial" to talk to all people in hearing
-                   range or a comma-separated list of client numbers, like
-                   "0,7,2,23" ... an empty string is treated like "spatial".
-                   You can also use a mixed string like
-                   "0, spatial, 2, crosshair".
-                   This is reset to "spatial" when connecting to a new server.
-                   Presumably mods will manage this cvar, not people, but
-                   keybind could be useful for the general cases. To send to
-                   just your team, or the opposing team, or a buddy list, you
-                   have to set a list of numbers.
-
-cl_voipUseVAD: set to "1" to automatically send audio when the game thinks you
-               are talking, "0" (the default) to require the user to manually
-               start transmitting, presumably with a keybind.
-
-cl_voipVADThreshold: only used if cl_voipUseVAD is "1" ... a value between
-                     0.0 and 1.0 that signifies the volume of recorded audio
-                     that the game considers to be speech. You can use this
-                     to trim out breathing or perhaps the sound of your
-                     fingers tapping the keyboard and only transmit audio
-                     louder than that. You will have to experiment to find the
-                     value that works best for your hardware and play style.
-                     The default is "0.25", with "0.0" being silence and "1.0"
-                     being pretty-darn-loud.
-
-cl_voipSend: when set to "1", the game will capture audio from the microphone
-             and transmit it, when "0", the game will not. The game can
-             optimize for the "0" case (perhaps turning off audio recording).
-             Lots of things set this on and off, including cl_voipUseVAD, so
-             you probably should not touch this directly without knowing what
-             you're doing, but perhaps mods can make use of it.
-
-cl_voipGainDuringCapture: This is the volume ("gain") of audio coming out of
-                          your speakers while you are recording sound for
-                          transmission. This is a value between 0.0 and 1.0,
-                          zero being silence and one being no reduction in
-                          volume. This prevents audio feedback and echo and
-                          such, but if you're listening in headphones that
-                          your mic won't pick up, you don't need to turn down
-                          the gain. Default is 0.2 (20% of normal volume). You
-                          ABSOLUTELY want to make your speakers quiet when you
-                          record, if the microphone might pick it up!
-
-cl_voipShowMeter: Set to "1" (the default) to show a volume meter as you are
-                  recording from the microphone, so you can see how well the
-                  game can "hear" you. Set to "0" to disable the display of
-                  the meter.
-
-cl_voipCaptureMult: Multiply recorded audio by this value after denoising.
-                    Defaults to 2.0 to _double_ the volume of your voice.
-                    This is to make you more audible if denoising eats away
-                    too much data. Set this to 1.0 to get no change, less to
-                    be quieter.
-
-
-
-Console commands:
-
-voip ignore <clientnum>
-    Turn off incoming voice from player number <clientnum>. This will refuse to
-     play any incoming audio from that player, and instruct the server to stop
-     sending it, to save bandwidth. Use unignore to reenable. This is reset to
-     unignored when (re)connecting to a server.
-
-voip unignore <clientnum>
-    Turn on incoming voice from player number <clientnum>. This will start
-     playing audio from this player again if you've previously done a "voip
-     ignore", and instruct the server to start sending her voice packets to
-     you again.
-
-voip muteall
-    Turn off all incoming voice. This will refuse to play any incoming audio,
-     and instruct the server to stop sending it, to save bandwidth. Use
-     unmuteall to reenable. This is reset to unmuted when (re)connecting to
-     a server.
-
-voip unmuteall
-    Turn on incoming voice. This will start playing audio again if you've
-     previously done a "voip muteall", and instruct the server to start
-     sending voice packets to you again.
-
-voip gain <clientnum> <gain>
-    Sets the volume ("gain") for player number <clientnum> to <gain> ...
-     A gain of 0.0 is silence, and 2.0 doubles the volume. Use this if someone
-     is too quiet or too loud.
-
-
-
-
-Actions:
-
-+voiprecord: The action you should bind to a key to record. This basically
-             toggles cl_voipSend on and off. You don't need this if you're
-             using cl_voipUseVAD, since that'll just record all the time and
-             decide what parts of the recording are worth sending.
-
-
-
-More detailed/technical info:
-
-By default, all of this is enabled. You can build with or without VoIP
- support explicitly with USE_VOIP=[1|0] on the make command line.
-
-You currently must use OpenAL to speak, as we have ALC_EXT_capture support
- in place to pull data from the microphone. If you are using the SDL backend,
- you can still hear people, but not speak.
-
-There is no in-game UI to speak of: we encourage mods to add some. Largely
- they will just need to set cvars and run console commands for choosing
- voice targets and ignoring people, etc.
-
-This requires patched builds to be useful, but remains network compatible with
- legacy quake3 clients and servers. Clients and servers both report in their
- info strings whether they support VoIP, and won't send VoIP data to those not
- reporting support. If a stray VoIP packet makes it to a legacy build, it will
- be ignored without incident.
-
-VoIP packets are saved in demo files! You will be able to playback what you
- heard and what you said on VoIP-compatible clients. Legacy clients can also
- play demo files with VoIP packets in them, but just won't play the voice
- track. For VoIP-supported builds, it's nice to have a record of the
- trash-talk.
-
-Data is processed using the Speex narrowband codec, and is cross-platform.
- Bigendian and littleendian systems can speak to each other, as can 32 and
- 64-bit platforms.
-
-Bandwidth: VoIP data is broken up into 20 millisecond frames (this is a Speex
- requirement), and we try to push up to 12 Speex frames in one UDP packet
- (about a quarter of a second of audio)...we're using the narrowband codec:
- 8000Hz sample rate. In practice, a client should send about 2 kilobytes per
- second more when speaking, spread over about four bursts per second, plus a
- few bytes of state information. For comparison, this is less than the server
- sends when downloading files to the client without an http redirect. The
- server needs to rebroadcast the packet to all clients that should receive it
- (which may be less than the total connected players), so servers should
- assume they'll need to push (number of players speaking at once times number
- of people that should hear it) * 2 kilobytes per second. It shouldn't be a
- problem for any client or server on a broadband connection, although it may
- be painful for dialup users (but then again, everything is. They can just
- disable the cvar). The game will refuse to enable VoIP support if your have
- your network settings lower than "Cable/xDSL/LAN", just in case.
-
-The initial VoIP work was done by Ryan C. Gordon <icculus at icculus.org>, and
- he can be contacted with technical questions, if the ioq3 mailing list or
- forums aren't helpful.
-
-// end of voip-README.txt ...
-
-
-



More information about the quake3-commits mailing list