[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