Import OA 0.8.8 tree
This commit is contained in:
281
text/COPYING.txt
Normal file
281
text/COPYING.txt
Normal file
@@ -0,0 +1,281 @@
|
||||
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
|
||||
|
382
text/README
Normal file
382
text/README
Normal file
@@ -0,0 +1,382 @@
|
||||
,---------------------------------------.
|
||||
| _ _ ____ |
|
||||
| (_)___ __ _ _ _ __ _| |_____|__ / |
|
||||
| | / _ \/ _` | || / _` | / / -_)|_ \ |
|
||||
| |_\___/\__, |\_,_\__,_|_\_\___|___/ |
|
||||
| |_| |
|
||||
| |
|
||||
`---------- http://ioquake3.org --------'
|
||||
|
||||
The intent of this project is to provide a baseline Quake 3 which may be used
|
||||
for further development. Some of the major features currently implemented are:
|
||||
|
||||
* SDL backend for unix-like operating systems
|
||||
* OpenAL sound API support (multiple speaker support and better sound
|
||||
quality)
|
||||
* Full x86_64 support on Linux
|
||||
* 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 (see
|
||||
http://ioquake3.org/?page=status)
|
||||
* cl_guid support
|
||||
* HTTP/FTP download redirection (using cURL)
|
||||
* Multiuser support on Windows systems (user specific game data
|
||||
is stored in "%APPDATA%\Quake3")
|
||||
* 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, using MinGW
|
||||
1. Download and install MinGW and MSys from http://www.mingw.org/.
|
||||
2. Download http://www.libsdl.org/extras/win32/common/directx-devel.tar.gz
|
||||
and untar it into your MinGW directory (usually C:\MinGW).
|
||||
3. Open an MSys terminal, and follow the instructions for compiling on *nix.
|
||||
|
||||
For Windows, using MSVC
|
||||
1. Run Visual Studio and open the quake3.sln file in the code/win32/msvc
|
||||
directory.
|
||||
2. Build.
|
||||
3. Copy the resultant Quake3.exe to your quake 3 directory, make a backup if
|
||||
you want to keep your original. If you wish to use native libraries, copy
|
||||
the resultant dlls to your baseq3 directory.
|
||||
|
||||
For Mac OS X, building a Universal Binary
|
||||
1. Install the MacOSX10.2.8.sdk and MacOSX10.4u.sdk which are included in
|
||||
XCode 2.2 and newer.
|
||||
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. After you
|
||||
have successfully run this script cross compiling is simply a case of using
|
||||
'./cross-make-mingw.sh' in place of 'make'.
|
||||
|
||||
If the make based build system is being used (i.e. *nix or MinGW), the
|
||||
following variables may be set, either on the command line or in
|
||||
Makefile.local:
|
||||
|
||||
OPTIMIZE - use this for custom CFLAGS
|
||||
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_GAME_SO - build the game shared libraries
|
||||
BUILD_GAME_QVM - build the game qvms
|
||||
USE_SDL - use the SDL backend where available
|
||||
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_LOCAL_HEADERS - use headers local to ioq3 instead of system ones
|
||||
USE_CCACHE - use ccache compiler caching tool
|
||||
COPYDIR - the target installation directory
|
||||
|
||||
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
|
||||
|
||||
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_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
|
||||
|
||||
ttycon_ansicolor - enable use of ANSI escape codes in the tty
|
||||
r_GLlibCoolDownMsec - wait for some milliseconds to close GL
|
||||
library
|
||||
com_altivec - enable use of altivec on PowerPC systems
|
||||
s_backend - read only, indicates the current sound
|
||||
backend
|
||||
in_shiftedKeys - non-SDL Linux only; enables binding to
|
||||
shifted keys
|
||||
in_joystickNo - SDL only; select which joystick to use
|
||||
cl_consoleHistory - read only, stores the console history
|
||||
cl_platformSensitivity - read only, indicates the mouse input
|
||||
scaling
|
||||
r_ext_texture_filter_anisotropic - anisotropic texture filtering
|
||||
cl_guidServerUniq - makes cl_guid unique for each server
|
||||
cl_cURLLib - filename of cURL library to load
|
||||
sv_dlURL - the base of the HTTP or FTP site that
|
||||
holds custom pk3 files for your server
|
||||
|
||||
New commands
|
||||
video [filename] - start video capture (use with demo command)
|
||||
stopvideo - stop video capture
|
||||
|
||||
|
||||
------------------------------------------------------------ Miscellaneous -----
|
||||
|
||||
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.
|
||||
|
||||
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. See http://www.quakesrc.org/forums/viewtopic.php?t=5665 (if it
|
||||
still exists when you read this) for more details.
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
2 - do not use HTTP/FTP downloads
|
||||
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.
|
||||
|
||||
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 built againt SDL (e.g. Linux and Mac OS X) have different
|
||||
keyboard behaviour than 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.
|
||||
|
||||
SDL's "Dead Key" behaviour makes the hard-coded toggleConsole binds ~ and `
|
||||
annoying to use on many non-US keyboards. In response, an additional
|
||||
toggleConsole bind has been added on the key combination Shift-Esc.
|
||||
|
||||
------------------------------------------------------------- Contributing -----
|
||||
|
||||
Please send all patches to bugzilla (https://bugzilla.icculus.org), or join the
|
||||
mailing list (quake3-subscribe@icculus.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. If you're too lazy for either method, then it would be
|
||||
better if you emailed your patches to zakk@icculus.org directly than not at
|
||||
all.
|
||||
|
||||
The focus for ioquake3 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 neccesarily 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/?page=getdata 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 refered to or included in the
|
||||
installer.
|
||||
|
||||
* Please include at least an SDL so/dylib on every platform but Windows
|
||||
(which doesn't use it yet).
|
||||
|
||||
* Please include an OpenAL so/dylib/dll, since every platform should be using
|
||||
it by now.
|
||||
|
||||
* We'll bump the version to 1.34 as soon as we get enough people who can
|
||||
demonstrate a competent build for Windows and Mac.
|
||||
|
||||
* Please contact the mailing list and/or zakk@timedoctor.org after 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
|
||||
Aaron Gyes <floam at sh dot nu>
|
||||
Ludwig Nussel <ludwig.nussel@suse.de>
|
||||
Thilo Schulz <arny@ats.s.bawue.de>
|
||||
Tim Angus <tim@ngus.net>
|
||||
Tony J. White <tjw@tjw.org>
|
||||
Zachary J. Slater <zakk@timedoctor.org>
|
||||
|
||||
Significant contributions from
|
||||
Ryan C. Gordon <icculus@icculus.org>
|
||||
Andreas Kohn <andreas@syndrom23.de>
|
||||
Joerg Dietrich <Dietrich_Joerg@t-online.de>
|
||||
Stuart Dalton <badcdev@gmail.com>
|
||||
Vincent S. Cojot <vincent at cojot dot name>
|
||||
optical <alex@rigbo.se>
|
145
text/id-readme.txt
Normal file
145
text/id-readme.txt
Normal file
@@ -0,0 +1,145 @@
|
||||
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.
|
Reference in New Issue
Block a user