Mega-updates.

This commit is contained in:
Jeff Teunissen 2000-05-08 02:39:55 +00:00
parent 4742a94a02
commit bfc31d6963
20 changed files with 529 additions and 675 deletions

View file

@ -1,61 +1,31 @@
<?PHP <? // Preamble
$sitename = "The QuakeForge Project"; $pageName = "About QuakeForge";
$pagename = "About QuakeForge"; $focused = "none"; // Dock icon name to gets a border
require("parts/library.php"); // Load function library require("parts/preamble.php"); // Load most of document
include("parts/head.php"); // Load the HEAD and open BODY
include("parts/topstrip.php"); // Display top strip
include("parts/titletable.php"); // Display main title w/ logos
?> ?>
<TABLE width="100%" cellspacing=0 cellpadding=0 border=0> <!--SEARCHME-->
<TR valign="top"> <P>QuakeForge is a 3D graphics game engine based on id Software's legendary
<?php Quake and QuakeWorld game engine. Our purpose? To improve the state of the
include("parts/menu.php"); // Import left-side menus game by improving the engine and making it accessable to the largest number
tableSpacer( 1, 9, 1, "black"); // Separate content from menus of players we can.
<P>Arguably the single most important issue on the minds of players today is
the rampant cheating which is currently happening on many of the larger
servers. It's a serious problem and it really makes a good game hard to find.
We're working hard to fix these problems at the engine level.
<P>But what good is that if you have to have a copy of our client and the
server has to run our server? There are other projects out there and some of
them have very unique qualities. QuakeForge is cooperating with
<A HREF="http://www.quakesrc.org">QSG</A>, a group comprised of representatives
from nearly every known Quake source project to ensure that our clients and
servers run with other clients and servers just fine. We have all agreed to
implement any effective cheat prevention methods.
<P>Other things we're doing include merging the two code trees, adding
features, and improving the OpenGL renderer. And QuakeForge is still the most
portable source tree based on the id Software code.
<!--NOSEARCH-->
<?
require("parts/postamble.php"); // Finish this sucker up
?> ?>
<TD width="100%">
<?php
$focused = "none"; // name of focused icon
include( "parts/topmain.php" ); // Display content top table
?>
<P>
QuakeForge is a 3D graphics game engine based on Id
Software's legendary Quake and QuakeWorld source
trees. Our purpose? To improve the state of the
game by improving the engine and making it
accessable to the largest number of players we can.
<P>
Arguably the single most important issue on the
minds of players today is the rampant cheating which
is currently happening on many of the larger
servers. It's a serious problem and it really makes
a good game hard to find. We're working hard to fix
these problems at the engine level.
<P>
But what good is that if you have to have a copy of our
client and the server has to run our server? There
are other projects out there and some of them have
very unique qualities. QuakeForge is coopertaing
with <A HREF="http://www.quakesrc.org">QSG</A>, a
group comprised of representatives from nearly every
known Quake source project to ensure that our
clients and servers run with other clients and
servers just fine. We have all agreed to implement
any effective cheat prevention methods.
<P>
Other things we're doing include merging the two
code trees, adding features, and improving the
OpenGL renderer. And QuakeForge is still the most
portable source tree based on the Id Software code.
</TD>
<?php
tableSpacer( 1, 9, 1, "black");
?>
</TR>
<TR>
<TD COLSPAN="4">
<?php
include("parts/copyright.php");
?>
</TD>
</TR>
</TABLE>

View file

@ -1,42 +1,26 @@
<?PHP <? // Preamble
$sitename = "The QuakeForge Project"; $pageName = "Contact Us";
$pagename = "Contact Us"; $focused = "none"; // Dock icon name to gets a border
require("parts/library.php"); // Load function library require("parts/preamble.php"); // Load most of document
include("parts/head.php"); // Load the HEAD and open BODY
include("parts/topstrip.php"); // Display top strip
include("parts/titletable.php"); // Display main title w/ logos
?> ?>
<TABLE width="100%" cellspacing=0 cellpadding=0 border=0> <!--SEARCHME-->
<TR valign="top"> <H2>Electronic Mail</H2>
<?php <P>Please direct support questions to the
include("parts/menu.php"); // Import left-side menus <A href="mailto:quake-user@lists.sourceforge.net">QuakeForge Users</A> mailing list.
tableSpacer( 1, 9, 1, "black"); // Separate content from menus
<P>If you have ideas about new features for QuakeForge or wish to help in
development, you can contact the QuakeForge developers via the
<A href="mailto:quake-devel@lists.sourceforge.net">QuakeForge Development</A> mailing list.
<H2>Web Forum</H2>
There is a <A href="/board/">QuakeForge Web Forum</A>, provided courtesy of
<A href="http://megatf.netfrag.com/">Zap Mega Team Fortress</A>.
<H2>Internet Relay Chat</H2>
The QuakeForge developers maintain an IRC channel, #QuakeForge, on the Open
Projects network, located at irc.openprojects.net.
<!--NOSEARCH-->
<?
require("parts/postamble.php"); // Finish this sucker up
?> ?>
<TD width="100%">
<?php
$focused = "none"; // name of focused icon
include( "parts/topmain.php" ); // Display content top table
?>
<p>
Please email support questions to
<a href="mailto:quake-user@lists.sourceforge.net">
quake-user@lists.sourceforge.net</a>.
<P>
If you have ideas about new features for QuakeForge
or wish to help in development, you can contact the
QuakeForge developers at
<a href="mailto:quake-devel@lists.sourceforge.net">
quake-devel@lists.sourceforge.net</a> or in #quakeforge on irc.openprojects.net.
</TD>
<?php
tableSpacer( 1, 9, 1, "black");
?>
</TR>
<TR>
<TD COLSPAN="4">
<?php
include("parts/copyright.php");
?>
</TD>
</TR>
</TABLE>

View file

@ -1,40 +1,18 @@
<?PHP <? // Preamble
$sitename = "The QuakeForge Project"; $pageName = "Copyright Information";
$pagename = "Copyright Info"; $focused = "none"; // Dock icon name to gets a border
require("parts/library.php"); // Load function library require("parts/preamble.php"); // Load most of document
include("parts/head.php"); // Load the HEAD and open BODY
include("parts/topstrip.php"); // Display top strip
include("parts/titletable.php"); // Display main title w/ logos
?> ?>
<TABLE width="100%" cellspacing=0 cellpadding=0 border=0> <!--SEARCHME-->
<TR valign="top"> <P>Website Copyright &copy; 1999,2000 contributors of the QuakeForge Project.
<?php
include("parts/menu.php"); // Import left-side menus
tableSpacer( 1, 9, 1, "black"); // Separate content from menus
?>
<TD width="100%">
<?php
$focused = "none"; // name of focused icon
include( "parts/topmain.php" ); // Display content top table
?>
<P>
Website Copyright (C) 1999,2000 contributors of the QuakeForge Project.
<br>Quake(R) and QuakeWorld(R) are registered trademarks of id Software.
<br>
<br>Quake is Copyright (C) 1996-1997 Id Software, Inc.
<br>Portions of QuakeForge are Copyright (C) 1996-1997 Id Software, Inc.
<br>Portions of QuakeForge are Copyright (C) 1999,2000 contributors of the QuakeForge project.
</TD> <P>QuakeForge is Copyright &copy; 1999,2000 contributors of the QuakeForge project.<BR>
<?php Portions Copyright &copy; 1996-1997 id Software, Inc.
tableSpacer( 1, 9, 1, "black");
<P>Quake&reg; and QuakeWorld&reg; are registered trademarks of id Software, Inc.
<P>Quake is Copyright &copy; 1996-1997 id Software, Inc.
<!--NOSEARCH-->
<?
require("parts/postamble.php"); // Finish this sucker up
?> ?>
</TR>
<TR>
<TD COLSPAN="4">
<?php
include("parts/copyright.php");
?>
</TD>
</TR>
</TABLE>

View file

@ -1,64 +1,50 @@
<?PHP <? // Preamble
$sitename = "The QuakeForge Project"; $pageName = "Developer Tools";
$pagename = "Developer Tools"; $focused = "none"; // Dock icon name to gets a border
require("parts/library.php"); // Load function library require("parts/preamble.php"); // Load most of document
include("parts/head.php"); // Load the HEAD and open BODY
include("parts/topstrip.php"); // Display top strip
include("parts/titletable.php"); // Display main title w/ logos
?> ?>
<TABLE width="100%" cellspacing=0 cellpadding=0 border=0> <!--SEARCHME-->
<TR valign="top"> <P>The tools on this page are referenced here as a service to developers and
<?php prospective developers for QuakeForge.
include("parts/menu.php"); // Import left-side menus
tableSpacer( 1, 9, 1, "black"); // Separate content from menus
?>
<TD width="100%">
<?php
$focused = "none"; // name of focused icon
include( "parts/topmain.php" ); // Display content top table
?>
<P>The tools on this page are referenced here as a service to developers and prospective developers for QuakeForge.
<H2>CVS (Concurrent Versioning System)</H2> <H2>CVS (Concurrent Versioning System)</H2>
<P>CVS is a program that we use to manage our source tree among multiple developers at a variety of locations. <P>CVS is a program that we use to manage our source tree among multiple
developers at a variety of locations.
<DL> <DL>
<DT>All platforms:</DT> <DT>All platforms:</DT>
<DD>The <A href="http://www.gnu.org/manual/cvs/">CVS Manual</A> is available from the <A href="http://www.gnu.org/">GNU Project</A>.</DD> <DD>The <A href="http://www.gnu.org/manual/cvs/">CVS Manual</A> is available from the <A href="http://www.gnu.org/">GNU Project</A>.</DD>
<DD>An <A href="http://www.loria.fr/cgi-bin/molli/wilma.cgi/doc.847210383.html">online version</A> of &quot;Version Management with CVS&quot; by Per Cederqvist, is available from Pascal Molli's <A href="http://www.loria.fr/~molli/cvs-index.html">CVS page</A>.</DD> <DD>An <A href="http://www.loria.fr/cgi-bin/molli/wilma.cgi/doc.847210383.html">online version</A> of &quot;Version Management with CVS&quot; by Per Cederqvist, is available from Pascal Molli's <A href="http://www.loria.fr/~molli/cvs-index.html">CVS page</A>.</DD>
<DT>UNIX and Unix-like systems:</DT> <DT>UNIX and Unix-like systems:</DT>
<DD>You can get a copy of CVS from the <A href="ftp://ftp.gnu.org/gnu/cvs/">GNU FTP site</A>.</DD> <DD>You can get a copy of CVS from the <A href="ftp://ftp.gnu.org/gnu/cvs/">GNU FTP site</A>.</DD>
<DD><A href="http://www.wincvs.org/download.html">gCvs</A> is a GTK+ client for CVS with a more friendly interface.</DD> <DD><A href="http://www.wincvs.org/download.html">gCvs</A> is a GTK+ client for CVS with a more friendly interface.</DD>
<DD><A href="http://home.earthlink.net/~nawalker/pharmacy/">Pharmacy</a> is a GNOME front-end to CVS.</DD> <DD><A href="http://home.earthlink.net/~nawalker/pharmacy/">Pharmacy</a> is a GNOME front-end to CVS.</DD>
<DT>Windows 95, 98, NT, and Windows 2000:</DT> <DT>Windows 95, 98, NT, and Windows 2000:</DT>
<DD>You can get a patched copy of CVS from Gordon Chaffee's <A href="http://bmrc.berkeley.edu/people/chaffee/winntutil.html">Windows NT Utilities</A> page.</DD> <DD>You can get a patched copy of CVS from Gordon Chaffee's <A href="http://bmrc.berkeley.edu/people/chaffee/winntutil.html">Windows NT Utilities</A> page.</DD>
<DD><A href="http://www.wincvs.org/download.html">WinCvs</A> is a good Windows CVS client with a more friendly interface.</DD> <DD><A href="http://www.wincvs.org/download.html">WinCvs</A> is a good Windows CVS client with a more friendly interface.</DD>
<DT>Mac OS:</DT> <DT>Mac OS:</DT>
<DD><A href="http://www.wincvs.org/download.html">MacCvs</A> is an excellent Macintosh CVS client.</DD> <DD><A href="http://www.wincvs.org/download.html">MacCvs</A> is an excellent Macintosh CVS client.</DD>
<DT>BeOS:</DT> <DT>BeOS:</DT>
<DD>CVS is part of the <a href="http://www.be.com/software/beware/development/gccegcs.html">GCC/EGCS toolset</A> available from <A href="http://www.be.com/software/beware/">BeWare</A>.</DD> <DD>CVS is part of the <a href="http://www.be.com/software/beware/development/gccegcs.html">GCC/EGCS toolset</A> available from <A href="http://www.be.com/software/beware/">BeWare</A>.</DD>
<DT>OS/2 Warp:</DT> <DT>OS/2 Warp:</DT>
<DD><A href="http://www.sourcegear.com/">SourceGear</A> has a version of CVS for OS/2 on their <A href="http://download.cyclic.com/pub/os2/">Download site</A>.</DD> <DD><A href="http://www.sourcegear.com/">SourceGear</A> has a version of CVS for OS/2 on their <A href="http://download.cyclic.com/pub/os2/">Download site</A>.</DD>
</DL> </DL>
<H2>SSH (Secure Shell)</H2> <H2>SSH (Secure Shell)</H2>
<P>SSH (along with a SourceForge account and developer status in QuakeForge) is required to be able to write to the QuakeForge CVS repository. Clients for various operating environments may be found below. <P>SSH (along with a SourceForge account and developer status in QuakeForge) is required to be able to write to the QuakeForge CVS repository. Clients for various operating environments may be found below.
<DL> <DL>
<DT>UNIX and Unix-like systems:</DT> <DT>UNIX and Unix-like systems:</DT>
<DD><A href="http://www.openssh.org">OpenSSH</A>, being Free Software, is our recommended SSH implementation.</DD> <DD><A href="http://www.openssh.org">OpenSSH</A>, being Free Software, is our recommended SSH implementation.</DD>
<DD>There is also an <A href="ftp://ftp.ssh.com/pub/ssh/">anti-commercial, non-free implementation</A> available from <A href="http://www.ssh.com/">SSH Communications</A>.</DD> <DD>There is also an <A href="ftp://ftp.ssh.com/pub/ssh/">anti-commercial, non-free implementation</A> available from <A href="http://www.ssh.com/">SSH Communications</A>.</DD>
<DT>Windows 95, 98, NT, and Windows 2000:</DT> <DT>Windows 95, 98, NT, and Windows 2000:</DT>
<DD>You can also get an SSH client from Gordon Chaffee's <A href="http://bmrc.berkeley.edu/people/chaffee/winntutil.html">Windows NT Utilities</A> page.</DD> <DD>You can also get an SSH client from Gordon Chaffee's <A href="http://bmrc.berkeley.edu/people/chaffee/winntutil.html">Windows NT Utilities</A> page.</DD>
</DL> </DL>
</TD> <!--NOSEARCH-->
<?php <?
tableSpacer( 1, 9, 1, "black"); require("parts/postamble.php"); // Finish this sucker up
?> ?>
</TR>
<TR>
<TD COLSPAN="4">
<?php
include("parts/copyright.php");
?>
</TD>
</TR>
</TABLE>

190
files.php
View file

@ -1,108 +1,112 @@
<?PHP <? // Preamble
$sitename = "The QuakeForge Project"; $pageName = "Files";
$pagename = "Files"; $focused = "none"; // Dock icon name to gets a border
require("parts/library.php"); // Load function library require("parts/preamble.php"); // Load most of document
include("parts/head.php"); // Load the HEAD and open BODY
include("parts/topstrip.php"); // Display top strip
include("parts/titletable.php"); // Display main title w/ logos
?> ?>
<TABLE width="100%" cellspacing=0 cellpadding=0 border=0>
<TR valign="top"> <H4>QuakeForge 0.1.1</H4>
<?php <a href="http://download.sourceforge.net/quake/quakeforge-0.1.1.tar.gz">quakeforge-0.1.1.tar.gz (1.3MB)</A><BR>
include("parts/menu.php"); // Import left-side menus <a href="http://download.sourceforge.net/quake/quakeforge-0.1.1.tar.bz2">quakeforge-0.1.1.tar.bz2 (1.1MB)</A><BR>
tableSpacer( 1, 9, 1, "black"); // Separate content from menus <a href="http://download.sourceforge.net/quake/quakeforge-0.1.1.zip">quakeforge-0.1.1.zip (1.6MB)</A><BR>
?>
<TD width="100%"> <H4>QuakeForge v991221 (Initial Release)</H4>
<?php
$focused = "none"; // name of focused icon
include( "parts/topmain.php" ); // Display content top table
?>
<h4>QuakeForge 0.1.1</h4>
<a href="http://download.sourceforge.net/quake/quakeforge-0.1.1.tar.gz">quakeforge-0.1.1.tar.gz (1.3MB)</a>
<br><a href="http://download.sourceforge.net/quake/quakeforge-0.1.1.tar.bz2">quakeforge-0.1.1.tar.bz2 (1.1MB)</a>
<br><a href="http://download.sourceforge.net/quake/quakeforge-0.1.1.zip">quakeforge-0.1.1.zip (1.6MB)</a>
<h4>QuakeForge v991221 (Initial Release)</h4>
<a href="http://www.sourceforge.net/download.php?fileid=958">q1-991221.tar.gz (2.7MB)</a> <a href="http://www.sourceforge.net/download.php?fileid=958">q1-991221.tar.gz (2.7MB)</a>
<br><a href="http://www.sourceforge.net/download.php?fileid=953">q1-991221.tar.bz2 (2.4MB)</a> <br><a href="http://www.sourceforge.net/download.php?fileid=953">q1-991221.tar.bz2 (2.4MB)</a>
<br><a href="http://www.sourceforge.net/download.php?fileid=947">q1source.zip (3MB)</a> <br><a href="http://www.sourceforge.net/download.php?fileid=947">q1source.zip (3MB)</a>
<p> <p>
<h4>QuakeForge CVS Snapshots <h4>QuakeForge CVS Snapshots
<? $ftime = filemtime("files/qf-current-snapshot.tar.gz"); <?
print ("(" . date("M. j, g:i a", $ftime) . " PT)"); ?></h4> $ftime = filemtime("files/qf-current-snapshot.tar.gz");
echo "(" . date("M. j, g:i a", $ftime) . " PT)";
?>
</H4>
<a href="files/qf-current-snapshot.tar.gz">qf-current-snapshot.tar.gz <a href="files/qf-current-snapshot.tar.gz">qf-current-snapshot.tar.gz
<? $size = filesize("files/qf-current-snapshot.tar.gz"); $size /= 1024 ; <?
print ("(". round($size) ."KB)"); ?></a> $size = filesize("files/qf-current-snapshot.tar.gz"); $size /= 1024;
<br><a href="files/qf-current-snapshot.tar.bz2">qf-current-snapshot.tar.bz2 echo '(' . round($size) . ' KB)</A><BR>';
<? $size = filesize("files/qf-current-snapshot.tar.bz2"); $size /= 1024 ;
print ("(". round($size) ."KB)"); ?></a>
<br><a href="files/qf_current_snapshot.zip">qf_current_snapshot.zip
<? $size = filesize("files/qf_current_snapshot.zip"); $size /= 1024 ;
print ("(". round($size) ."KB)"); ?></a>
<h4>QuakeForge Win32 binaries</h4>
Compiled from CVS on
<? $f2time = filemtime("files/quakeforge-win32-current.zip");
print (date("M. j, g:i a", $f2time) . " PT"); ?><br><br>
<a href="files/quakeforge-win32-current.zip">
quakeforge-win32-current.zip
<? $size = filesize("files/quakeforge-win32-current.zip"); $size /= 1024 ;
print ("(". round($size) ."KB)"); ?></a>
<br><br>Older CVS builds can be found <a href="ftp://quake.sourceforge.net/pub/quake/files/win32_builds">here</a>.
<h4>Borland compiled QuakeForge Win32 bins</h4>
Win32 QuakeForge binaries compiled using Borland C++ cand be found <a href="http://personal.inet.fi/cool/quake1/">here</a>.
<h4>Quake Shareware files</h4>
<a href="files/quake106.zip">Quake v1.06 (8.7MB)</a>
<br><a href="files/quake_sw.tar.gz">quake_sw.tar.gz (8.7MB)</a>
<?// <br><br><b><u>Bug fixes</u></b>
// <br>This is our GPL'd MD4 replacement for the proprietary code that was accidently left in the Quake1 Source release by id Software. Available in <a href="files/mdfour.tar.gz">tar.gz</a>(2.8KB) or <a href="files/mdfour.zip">zip</a>(3.8KB) formats.
?> ?>
<h4>Miscellaneous Files</h4> <A href="files/qf-current-snapshot.tar.bz2">qf-current-snapshot.tar.bz2
<?
$size = filesize("files/qf-current-snapshot.tar.bz2"); $size /= 1024;
echo '(' . round($size) . ' KB)</A><BR>';
?>
<A href="files/qf_current_snapshot.zip">qf_current_snapshot.zip
<?
$size = filesize("files/qf_current_snapshot.zip"); $size /= 1024;
echo '(' . round($size) . ' KB)</A><BR>';
?>
<H4>QuakeForge Win32 Binaries
<?
$ftime = filemtime("files/quakeforge-win32-current.zip");
echo "(" . date("M. j, g:i a", $ftime) . " PT)";
?>
</H4>
<A href="files/quakeforge-win32-current.zip">quakeforge-win32-current.zip
<?
$size = filesize("files/quakeforge-win32-current.zip"); $size /= 1024;
echo '(' . round($size) . ' KB)</A><BR>';
?>
Older CVS builds can be found <a href="ftp://quake.sourceforge.net/pub/quake/files/win32_builds">here</a>.
<H4>Borland compiled QuakeForge Win32 bins</H4>
Win32 QuakeForge binaries compiled using Borland C++ can be found <a href="http://personal.inet.fi/cool/quake1/">here</a>.
<H4>Quake Shareware files</H4>
<A href="files/quake106.zip">Quake v1.06 (8.7MB)</A><BR>
<A href="files/quake_sw.tar.gz">quake_sw.tar.gz (8.7MB)</A>
<H4>Miscellaneous Files</H4>
Grab Taniwha's pak util replacement <a href="http://www.taniwha.org/">here.</a> Grab Taniwha's pak util replacement <a href="http://www.taniwha.org/">here.</a>
<h4>Utilities</h4>
<h5>Linux / BSD / UNIX</h5>
<li>You can find a version of CVS on Cyclic's <a href="http://download.cyclic.com/pub/">ftp server</a>.
<br><li>Grab ssh 1.x so you can access shell1.sourceforge.net. You can get either <a href="http://www.openssh.org">OpenSSH</a> or a less free <a href="ftp://ftp.cs.hut.fi/pub/ssh/">SSH</a>
<br><li><a href="http://home.earthlink.net/~nawalker/pharmacy/">Pharmacy</a> is a GUI front-end to CVS in X11, it looks quite useful.
<br><li>Get a copy of the latest GCC compiler (latest is GCC v2.95): <a href="ftp://ftp.gnu.org/pub/gnu/gcc">ftp://ftp.gnu.org/pub/gnu/gcc</a>
<br><li>The GPL'd Quest Map editor which can edit Quake maps and runs on multiple OSs has a Linux version in the Quest project's CVS tree, <a href="files/quest-linux.tar.gz">this</a> is a tweaked version by Nelson Rush (palisade) which fixes a lot of the problems inherent in the CVS version. You have to edit the quest.cfg before using it. <a href="mailto:palisade@quakeforge.net">Email</a> Palisade for questions or comments.
<h5>Windows 95/98/NT and DOS</h5> <H4>Utilities</H4>
<li>For Win95/98/NT users, <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">Putty</a> is a good program that will allow you to telnet into your shell1.sourceforge.net account using SSH 1.x.
<br><li>There is a port of unix cvs, ssh and scp to Win9x/NT (console only) <a href="http://bmrc.berkeley.edu/people/chaffee/winntutil.html#sshnt">here</a>.
<br><li>Grab my <a href="files/sscp.bat">batch script</a> to make using the unix port of scp with sourceforge easier. (not midasoft)
<br><li>Grab my <a href="files/runme.bat">batch script</a> to properly set up the unix port for ssh and cvs. (not wincvs/midasoft)
<br><li>You can find WinCVS and MacCVS here: <a href="http://www.wincvs.org">http://www.wincvs.org</a>.
<br><li>Some useful gnu tools for Win9x/NT users are here: <a href="ftp://ftp.fe.up.pt/pub/Projectos/em96115/gnu-win32/misc">ftp://ftp.fe.up.pt/pub/Projectos/em96115/gnu-win32/misc</a>.<br><li>Cygnus GNU GCC Environment for Win32 is here: <a href="http://sourceware.cygnus.com/cygwin">http://sourceware.cygnus.com/cygwin</a>.
<br><li>DJGPP - 32-bit DOS port of GCC 2.95 compiler can be found <a href="http://www.delorie.com/djgpp">here</a>.
<h5>BeOS</h5> <H5>UNIX and Unix-like systems (including Linux)</H5>
<li>SSH for BeOS is here: <a href="http://www.be.com/software/beware/network/ssh.html">http://www.be.com/software/beware/network/ssh.html</a>. <UL>
<br><li>The Egcs/GCC tool set (includes CVS) for BeOS can be found here: <a href="http://www.be.com/software/beware/development/gccegcs.html">http://www.be.com/software/beware/development/gccegcs.html</a> <LI>You can find a version of CVS on Cyclic's <a href="http://download.cyclic.com/pub/">ftp server</a>.</LI>
<LI>Grab ssh 1.x so you can access shell1.sourceforge.net. You can get either <a href="http://www.openssh.org">OpenSSH</a> or a less free <a href="ftp://ftp.cs.hut.fi/pub/ssh/">SSH</A></LI>
<LI><a href="http://home.earthlink.net/~nawalker/pharmacy/">Pharmacy</a> is a GUI front-end to CVS in X11, it looks quite useful.</LI>
<LI>Get a copy of the latest GCC compiler (latest is GCC v2.95): <a href="ftp://ftp.gnu.org/pub/gnu/gcc">ftp://ftp.gnu.org/pub/gnu/gcc</a></LI>
<LI>The GPL Quest Map editor which can edit Quake maps and runs on multiple OSs has a Linux version in the Quest project's CVS tree, <a href="files/quest-linux.tar.gz">this</a> is a tweaked version by Nelson Rush (palisade) which fixes a lot of the problems inherent in the CVS version. You have to edit the quest.cfg before using it. <a href="mailto:palisade@quakeforge.net">Email</a> Palisade for questions or comments.</LI>
</UL>
<h5>MacOS</h5> <H5>Windows 95/98/NT and DOS</H5>
<li>You can find MacCVS and WinCVS here: <a href="http://www.wincvs.org">http://www.wincvs.org</a> <UL>
<br><li>There are currently two different SSH clients for Mac: <a href="http://www.lysator.liu.se/~jonasw/download/niftytelnet-1.1-ssh-r3.hqx">Nifty Telnet SSH</a> and <a href="http://www.DataFellows.com/f-secure/ssh/mac/download.htm">F-Secure SSH Client</a>. <LI>For Win95/98/NT users, <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">Putty</a> is a good program that will allow you to telnet into your shell1.sourceforge.net account using SSH 1.x.</LI>
<LI>There is a port of unix cvs, ssh and scp to Win9x/NT (console only) <a href="http://bmrc.berkeley.edu/people/chaffee/winntutil.html#sshnt">here</a>.</LI>
<LI>Grab <a href="files/sscp.bat">Palisade's batch file</a> to make using the Windows port of scp with sourceforge easier. (not midasoft)</LI>
<LI>Grab <a href="files/runme.bat">Palisade's batch file</a> to properly set up the Windows port for ssh and cvs. (not wincvs/midasoft)</LI>
<LI>You can find WinCVS and MacCVS here: <a href="http://www.wincvs.org">http://www.wincvs.org</a>.</LI>
<LI>Some useful gnu tools for Win9x/NT users are here: <a href="ftp://ftp.fe.up.pt/pub/Projectos/em96115/gnu-win32/misc">ftp://ftp.fe.up.pt/pub/Projectos/em96115/gnu-win32/misc</a>.<br><li>Cygnus GNU GCC Environment for Win32 is here: <a href="http://sourceware.cygnus.com/cygwin">http://sourceware.cygnus.com/cygwin</a>.</LI>
<LI>DJGPP - 32-bit DOS port of GCC 2.95 compiler can be found <a href="http://www.delorie.com/djgpp">here</a>.</LI>
</UL>
<h5>OS/2</h5> <H5>BeOS</H5>
<li>You can find a ssh program <a href="ftp://ftp.cs.hut.fi/pub/ssh/os2/">here</a>. <UL>
<br><li>Cyclic has CVS for OS/2 <a href="http://download.cyclic.com/pub/os2/">here</a>. <LI>SSH for BeOS is here: <a href="http://www.be.com/software/beware/network/ssh.html">http://www.be.com/software/beware/network/ssh.html</a>.</LI>
<LI>The Egcs/GCC tool set (includes CVS) for BeOS can be found here: <a href="http://www.be.com/software/beware/development/gccegcs.html">http://www.be.com/software/beware/development/gccegcs.html</a></LI>
</UL>
<h5>Multiplatform Tools</h5> <H5>Mac OS</H5>
<li>The Mesa GL Graphics Library: <a href="http://www.mesa3d.org">http://www.mesa3d.org</a>. <UL>
<br><li>Simple DirectMedia Layer: <a href="http://www.devolution.com/~slouken/SDL">http://www.devolution.com/~slouken/SDL</a> <LI>You can find MacCVS and WinCVS here: <a href="http://www.wincvs.org">http://www.wincvs.org</a></LI>
<br><li>The latest SciTech MGL library can be found <LI>There are currently two different SSH clients for Mac: <a href="http://www.lysator.liu.se/~jonasw/download/niftytelnet-1.1-ssh-r3.hqx">Nifty Telnet SSH</a> and <a href="http://www.DataFellows.com/f-secure/ssh/mac/download.htm">F-Secure SSH Client</a>.</LI>
<a href=" http://www.scitechsoft.com/dp_mgl.html">here</a>. </UL>
&nbsp;<br>
</TD> <H5>OS/2</H5>
<?php
tableSpacer( 1, 9, 1, "black"); <UL>
<LI>You can find a ssh program <a href="ftp://ftp.cs.hut.fi/pub/ssh/os2/">here</a>.</LI>
<LI>Cyclic has CVS for OS/2 <a href="http://download.cyclic.com/pub/os2/">here</a>.</LI>
</UL>
<H5>Multiplatform Tools</H5>
<UL>
<LI>The Mesa 3D Graphics Library: <a href="http://www.mesa3d.org">http://www.mesa3d.org</a>.</LI>
<LI>Simple DirectMedia Layer: <a href="http://www.devolution.com/~slouken/SDL">http://www.devolution.com/~slouken/SDL</a></LI>
<LI>The latest SciTech MGL library can be found <a href=" http://www.scitechsoft.com/dp_mgl.html">here</a>.</LI>
</UL>
<!--NOSEARCH-->
<?
require("parts/postamble.php"); // Finish this sucker up
?> ?>
</TR>
<TR>
<TD COLSPAN="4">
<?php
include("parts/copyright.php");
?>
</TD>
</TR>
</TABLE>

View file

@ -1,15 +1,16 @@
<? // Preamble <? // Preamble
$pagename = "News"; $pageName = "News";
$focused = "home"; // Dock icon name to gets a border $focused = "home"; // Dock icon name to gets a border
require("parts/preamble.php"); // Load most of document require("parts/preamble.php"); // Load most of document
?> ?>
<!--SEARCHME--> <!--SEARCHME-->
<? require("lib/auth.php"); ?>
<TABLE width="100%" cellSpacing="0" cellPadding="0" border="0"> <TABLE width="100%" cellSpacing="0" cellPadding="0" border="0">
<TR vAlign="top"> <TR vAlign="top">
<TD colSpan="2"><? // News display <TD colSpan="2"><? // News display
tableBoxHeader( 'black', $tableHeadColor ); tableBoxHeader( 'black', tableHeadColor );
tableTitle( 'Latest News', 1, $tableHeadColor ); tableTitle( 'Latest News', 1, tableHeadColor );
include("news_funcs.php"); require("news_funcs.php");
include("cur_news.php"); include("cur_news.php");
tableBoxFooter(); tableBoxFooter();
?></TD> ?></TD>

View file

@ -1,4 +1,4 @@
<?php <?
/* /*
array.php array.php

View file

@ -1,34 +1,11 @@
<?PHP <? // Preamble
$sitename = "The QuakeForge Project"; $pageName = "Page Name";
$pagename = "Partners"; $focused = "none"; // Dock icon name to gets a border
require("parts/library.php"); // Load function library require("parts/preamble.php"); // Load most of document
include("parts/head.php"); // Load the HEAD and open BODY
include("parts/topstrip.php"); // Display top strip
include("parts/titletable.php"); // Display main title w/ logos
?> ?>
<TABLE width="100%" cellspacing=0 cellpadding=0 border=0> <!--SEARCHME-->
<TR valign="top">
<?php
include("parts/menu.php"); // Import left-side menus
tableSpacer( 1, 9, 1, "black"); // Separate content from menus
?>
<TD width="100%">
<?php
$focused = "none"; // name of focused icon
include( "parts/topmain.php" ); // Display content top table
?>
<P>
<? include ("sponsor_incl.html"); ?> <? include ("sponsor_incl.html"); ?>
</TD> <!--NOSEARCH-->
<?php <?
tableSpacer( 1, 9, 1, "black"); require("parts/postamble.php"); // Finish this sucker up
?> ?>
</TR>
<TR>
<TD COLSPAN="4">
<?php
include("parts/copyright.php");
?>
</TD>
</TR>
</TABLE>

View file

@ -2,6 +2,6 @@
<HTML> <HTML>
<HEAD> <HEAD>
<LINK REL="StyleSheet" HREF="/styles/quakeforge.css" TYPE="text/css"> <LINK REL="StyleSheet" HREF="/styles/quakeforge.css" TYPE="text/css">
<TITLE><?PHP echo $sitename . ': ' . $pagename; ?></TITLE> <TITLE><? echo $siteName . ': ' . $pageName; ?></TITLE>
</HEAD> </HEAD>
<BODY link="#AAAAFF" aLink="#ffffff" vLink="#AAAAFF" text="white" bgColor="black" topMargin="0" bottomMargin="0" leftMargin="0" rightMargin="0" marginHeight="0" marginWidth="0"> <BODY link="#AAAAFF" aLink="#ffffff" vLink="#AAAAFF" text="white" bgColor="black" topMargin="0" bottomMargin="0" leftMargin="0" rightMargin="0" marginHeight="0" marginWidth="0">

View file

@ -1,14 +1,15 @@
<?php <?php
// helpful constants // helpful constants
$tableHeadColor = '#737b9c'; define('tableHeadColor', '#737b9c');
$menuHeadColor = '#737b9c'; define('menuHeadColor', '#737b9c');
$menuBgColor = '#4b4f66'; define('menuBgColor', '#4b4f66');
define('featureBgColor', '#252733');
if ( !$newstyle ) { if ( !$newstyle ) {
require( "lib/table.php" ); require( siteHome . "/lib/table.php" );
require( "lib/array.php" ); require( siteHome . "/lib/array.php" );
require( "lib/graph.php" ); require( siteHome . "/lib/graph.php" );
require( "lib/network.php" ); require( siteHome . "/lib/network.php" );
require( "lib/date.php" ); require( siteHome . "/lib/date.php" );
} }
?> ?>

View file

@ -1,6 +1,5 @@
<!-- menus --> <!-- menus -->
<TD bgColor="#4b4f66"> <?
<?php
function menuItemLink( $url, $desc ) function menuItemLink( $url, $desc )
{ {
echo '<A CLASS="menus" HREF="' . $url . '">' . $desc . '</A><BR>'; echo '<A CLASS="menus" HREF="' . $url . '">' . $desc . '</A><BR>';
@ -29,9 +28,7 @@
function qfMenu() function qfMenu()
{ {
global $menuHeadColor, $menuBgColor; menuSectionHeader( "Project", 'white', menuHeadColor, menuBgColor );
menuSectionHeader( "Project", 'white', $menuHeadColor, $menuBgColor );
menuItemLink( "/", "Latest News" ); menuItemLink( "/", "Latest News" );
menuItemLink( "/news.php", "Old News" ); menuItemLink( "/news.php", "Old News" );
menuItemLink( "/files.php", "Downloads" ); menuItemLink( "/files.php", "Downloads" );
@ -43,9 +40,7 @@
function develMenu() function develMenu()
{ {
global $menuHeadColor, $menuBgColor; menuSectionHeader( "Developers", 'white', menuHeadColor, menuBgColor );
menuSectionHeader( "Developers", 'white', $menuHeadColor, $menuBgColor );
menuItemLink( "http://sourceforge.net/cvs/?group_id=882", "CVS Access" ); menuItemLink( "http://sourceforge.net/cvs/?group_id=882", "CVS Access" );
menuItemLink( "/devtools.php", "Developer Tools" ); menuItemLink( "/devtools.php", "Developer Tools" );
menuItemLink( "/progress.php", "Progress" ); menuItemLink( "/progress.php", "Progress" );
@ -59,9 +54,7 @@
function sfMenu() function sfMenu()
{ {
global $menuHeadColor, $menuBgColor; menuSectionHeader( "SourceForge", 'white', menuHeadColor, menuBgColor );
menuSectionHeader( "SourceForge", 'white', $menuHeadColor, $menuBgColor );
menuItemLink( "http://sourceforge.net/", "Homepage" ); menuItemLink( "http://sourceforge.net/", "Homepage" );
menuItemLink( "http://sourceforge.net/snippet/", "Code Snippet Library" ); menuItemLink( "http://sourceforge.net/snippet/", "Code Snippet Library" );
menuItemLink( "http://sourceforge.net/softwaremap/", "Software Map" ); menuItemLink( "http://sourceforge.net/softwaremap/", "Software Map" );
@ -74,9 +67,7 @@
function searchMenu() function searchMenu()
{ {
global $menuHeadColor, $menuBgColor; menuSectionHeader( "Search", 'white', menuHeadColor, menuBgColor );
menuSectionHeader( "Search", 'white', $menuHeadColor, $menuBgColor );
echo '<CENTER><FONT size="-2">' . echo '<CENTER><FONT size="-2">' .
'<FORM action="search.php" method="POST">' . '<FORM action="search.php" method="POST">' .
' <SELECT name="type_of_search">' . ' <SELECT name="type_of_search">' .
@ -104,4 +95,3 @@
// sfMenu(); // sfMenu();
searchMenu(); searchMenu();
?> ?>
</TD>

View file

@ -1,8 +1,17 @@
<? tableSpacer( 1, 9, 1, "black"); ?> <!-- Content End -->
</TD>
<? tableSpacer( 9, 9, 1, "black"); ?>
</TR>
<TR>
<? tableSpacer( 9, 9, 3, "black"); ?>
</TR>
<? tableFooter(); ?>
</TD>
</TR>
<TR vAlign="top">
<TD colSpan="2">
<? require(siteHome ."/parts/copyright.php") ?>
</TD> </TD>
</TR> </TR>
</TABLE> </TABLE>
<? include("parts/copyright.php"); ?>
</TR>
</TABLE>
</HTML> </HTML>

View file

@ -1,18 +1,33 @@
<? // Preamble <? // Preamble
$sitename = "The QuakeForge Project"; $siteName = "The QuakeForge Project";
require("parts/library.php"); // Load function library define('siteHome', "/home/groups/quake/htdocs");
require("parts/head.php"); // Load the HEAD and open BODY
require("parts/topstrip.php"); // Display top strip require(siteHome ."/parts/library.php"); // Load function library
require("parts/titletable.php"); // Display main title w/ logos require(siteHome ."/parts/head.php"); // Load the HEAD and open BODY
require(siteHome ."/parts/topstrip.php"); // Display top strip
require(siteHome ."/parts/titletable.php"); // Display main title w/ logos
?> ?>
<TABLE width="100%" cellSpacing="0" cellPadding="0" border="0"> <TABLE width="100%" cellSpacing="0" cellPadding="0" border="0">
<TR vAlign="top"> <TR vAlign="top">
<? <TD bgColor="<? echo menuBgColor; ?>">
include("parts/menu.php"); // Import left-side menus <? include(siteHome ."/parts/menu.php"); /* menus */ ?>
tableSpacer( 1, 9, 1, "black"); // Separate content from menus </TD>
?>
<TD width="100%"> <TD width="100%">
<? <? tableHeader("100%", "black"); ?>
include( "parts/topmain.php" ); // Display content top table <TR>
?> <? tableSpacer( 9, 9, 3, "black"); ?>
<P> </TR>
<TR>
<? tableSpacer( 9, 9, 1, "black"); ?>
<TD>
<? require(siteHome ."/parts/topmain.php"); ?>
</TD>
<? tableSpacer( 9, 9, 1, "black"); ?>
</TR>
<TR>
<? tableSpacer( 18, 9, 3, "black"); ?>
</TR>
<TR>
<? tableSpacer( 9, 9, 1, "black"); ?>
<TD>
<!-- Content Start -->

View file

@ -1,18 +1,18 @@
<!-- top title table --> <!-- top title table -->
<TABLE width="100%" border=0 cellspacing=0 cellpadding=0 bgcolor="" valign="center"> <TABLE width="100%" border=0 cellspacing=0 cellpadding=0 bgcolor="" valign="center">
<TR vAlign="top" bgColor="<? echo $menuBgColor ?>"> <TR vAlign="top" bgColor="<? echo menuBgColor ?>">
<? tableSpacer( 3, 0, 4, $menuBgColor); ?> <? tableSpacer( 3, 0, 4, menuBgColor); ?>
</TR> </TR>
<TR valign="top" bgcolor="<? echo $menuBgColor ?>"> <TR valign="top" bgcolor="<? echo menuBgColor ?>">
<? tableSpacer( 0, 1, 1, $menuBgColor); ?> <? tableSpacer( 0, 1, 1, menuBgColor); ?>
<TD> <TD>
<IMG src="/img/logos/qf-logo.png" alt="QuakeForge" hSpace=0 vSpace=0 border=0 width="70" height="70"> <IMG src="/img/logos/qf-logo.png" alt="QuakeForge" hSpace=0 vSpace=0 border=0 width="70" height="70">
</TD> </TD>
<? tableSpacer( 0, 5, 1, $menuBgColor); ?> <? tableSpacer( 0, 5, 1, menuBgColor); ?>
<TD width="99%"><!-- right of logo --> <TD width="99%"><!-- right of logo -->
<a href="http://sourceforge.net/"><IMG src="http://sourceforge.net/sflogo.php?group_id=882&type=1" align="right" alt="SourceForge" hspace=20 vspace=20 border=0 width="88" height="31"></A> <a href="http://sourceforge.net/"><IMG src="http://sourceforge.net/sflogo.php?group_id=882&type=1" align="right" alt="SourceForge" hspace=20 vspace=20 border=0 width="88" height="31"></A>
&nbsp;<BR> &nbsp;<BR>
<SPAN class="mainTitle"><?PHP echo "$sitename" ?></SPAN> <SPAN class="mainTitle"><? echo $siteName ?></SPAN>
</TD> </TD>
<!-- right of logo --> <!-- right of logo -->
</TR> </TR>

View file

@ -1,19 +1,9 @@
<?php <?
function isFocused( $name, $newname ) function isFocused( $name, $newname )
{ {
return ( strToLower( $name ) == strToLower( $newname ) ) ? 1 : 0; return ( strToLower( $name ) == strToLower( $newname ) ) ? 1 : 0;
} }
function textBar($pagename)
{
echo '&nbsp;<BR>' .
'<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">' .
' <TR>' .
' <TD align="left">' .
' <FONT size="+2"><B>' . $pagename . '</B></FONT>' .
' </TD>';
}
function iconLink ( $url, $img, $desc, $border ) function iconLink ( $url, $img, $desc, $border )
{ {
echo '<A class="tabs" href="' . $url . '"><IMG src="' . $img . '" alt="' . $desc . ' " hSpace="3" vSpace="1" border="' . $border . '" width="24" height="24"></A>'; echo '<A class="tabs" href="' . $url . '"><IMG src="' . $img . '" alt="' . $desc . ' " hSpace="3" vSpace="1" border="' . $border . '" width="24" height="24"></A>';
@ -38,16 +28,27 @@
echo '</TD></TR></TABLE>'; echo '</TD></TR></TABLE>';
} }
textBar($pagename); function topBar($pageName)
echo ' <TD align="right">'; {
global $focused;
tableHeader("100%", "black");
echo ' <TR vAlign="bottom">' .
' <TD align="left">' .
' <FONT size="+2"><B>' . $pageName . '</B></FONT>' .
' </TD>' .
' <TD align="right">';
iconBar($focused); iconBar($focused);
echo ' </TD>'; echo ' </TD>' .
echo ' </TR>'; ' </TR>' .
echo ' <TR>'; ' <TR>';
tableSpacer( 1, 4, 1, "black"); tableSpacer( 1, 1, 2, "black");
echo ' </TR>'; echo ' </TR>' .
echo ' <TR>'; ' <TR>';
tableSpacer( 2, 1, 2, "white"); tableSpacer( 2, 1, 2, "white");
echo ' </TR>'; echo ' </TR>';
echo '</TABLE>'; tableFooter();
}
topBar($pageName);
?> ?>

View file

@ -1,23 +1,8 @@
<? <? // Preamble
$sitename = "The QuakeForge Project"; $pageName = "Progress";
$pagename = "Progress"; $focused = "none"; // Dock icon name to gets a border
require("parts/library.php"); // Load function library require("parts/preamble.php"); // Load most of document
include("parts/head.php"); // Load the HEAD and open BODY
include("parts/topstrip.php"); // Display top strip
include("parts/titletable.php"); // Display main title w/ logos
?> ?>
<TABLE width="100%" cellspacing=0 cellpadding=0 border=0>
<TR valign="top">
<?
include("parts/menu.php"); // Import left-side menus
tableSpacer( 1, 9, 1, "black"); // Separate content from menus
?>
<TD width="100%">
<?
$focused = "none"; // name of focused icon
include( "parts/topmain.php" ); // Display content top table
?>
<P>
<TABLE width="100%" cellSpacing="0" cellPadding="0" border="0"> <TABLE width="100%" cellSpacing="0" cellPadding="0" border="0">
<TR vAlign=top> <TR vAlign=top>
<TD colSpan="2"> <TD colSpan="2">
@ -33,18 +18,17 @@
function progressMeter( $name, $pct, $comments ) function progressMeter( $name, $pct, $comments )
{ {
$result = ''; $result = '';
$result .= '<TR><TD class="progress" align="right">' . $name . '</TD><TH>&nbsp;</TH>'; $result .= '<TR><TD noWrap class="progress" align="right">' . $name . '</TD><TH>&nbsp;</TH>';
$result .= '<TD align="center" vAlign="center"><IMG src="/img/blank.gif" height="1" width="1" alt="' . $pct . '% Complete">'; $result .= '<TD noWrap align="center" vAlign="center"><IMG src="/img/blank.gif" height="1" width="1" alt="' . $pct . '% Complete">';
$result .= barGraph( $pct ); $result .= barGraph( $pct );
$result .= '</TD><TH>&nbsp;</TH><TD class="progress" align="left">' . $comments . '</TD></TR>'; $result .= '</TD><TH>&nbsp;</TH><TD class="progress" align="left">' . $comments . '</TD></TR>';
echo $result; echo $result;
} }
tableBoxHeader( 'black', $tableHeadColor ); tableBoxHeader( 'black', tableHeadColor );
tableTitle( 'Progress', 3, $tableHeadColor ); tableTitle( 'Progress', 3, tableHeadColor );
// tableBoxHeader("Progress", 3, 'white', '#737b9c', 'black');
echo '<TR><TD colSpan="3">'; echo '<TR><TD colSpan="3">';
tableHeader(3, 'black'); tableHeader("100%", 'black');
progressKey(); progressKey();
progressMeter('3Dfx MiniGL', 85, 'Being replaced by Mesa where possible'); progressMeter('3Dfx MiniGL', 85, 'Being replaced by Mesa where possible');
progressMeter('DOS', 65, 'Working on DJGPP cross-compilation'); progressMeter('DOS', 65, 'Working on DJGPP cross-compilation');
@ -63,17 +47,7 @@
</TD> </TD>
</TR> </TR>
</TABLE> </TABLE>
&nbsp;<BR> <!--NOSEARCH-->
</TD>
<? <?
tableSpacer( 1, 9, 1, "black"); require("parts/postamble.php"); // Finish this sucker up
?> ?>
</TR>
<TR>
<TD COLSPAN="4">
<?
include("parts/copyright.php");
?>
</TD>
</TR>
</TABLE>

View file

@ -1,35 +1,9 @@
<?PHP <? // Preamble
$sitename = "The QuakeForge Project"; $pageName = "Search";
$pagename = "Search"; $focused = "none"; // Dock icon name to gets a border
require("parts/library.php"); // Load function library require("parts/preamble.php"); // Load most of document
include("parts/head.php"); // Load the HEAD and open BODY
include("parts/topstrip.php"); // Display top strip
include("parts/titletable.php"); // Display main title w/ logos
?> ?>
<TABLE width="100%" cellspacing=0 cellpadding=0 border=0> This page is still under construction. Please check back later.
<TR valign="top"> <?
<?php require("parts/postamble.php"); // Finish this sucker up
include("parts/menu.php"); // Import left-side menus
tableSpacer( 1, 9, 1, "black"); // Separate content from menus
?> ?>
<TD width="100%">
<?php
$focused = "none"; // name of focused icon
include( "parts/topmain.php" ); // Display content top table
?>
<P>
This page is still under construction. Please check
back later.
</TD>
<?php
tableSpacer( 1, 9, 1, "black");
?>
</TR>
<TR>
<TD COLSPAN="4">
<?php
include("parts/copyright.php");
?>
</TD>
</TR>
</TABLE>

159
sotc.php
View file

@ -1,80 +1,97 @@
<? <? // Preamble
$sitename = "The QuakeForge Project"; $pageName = "State of the Code";
$pagename = "State of the Code"; $focused = "none"; // Dock icon name to gets a border
require("parts/library.php"); // Load function library require("parts/preamble.php"); // Load most of document
include("parts/head.php"); // Load the HEAD and open BODY
include("parts/topstrip.php"); // Display top strip
include("parts/titletable.php"); // Display main title w/ logos
?> ?>
<TABLE width="100%" cellspacing=0 cellpadding=0 border=0> <!--SEARCHME-->
<TR valign="top"> <P>The State of the Code address is a not-frequently-enough updated article
<? written by <a href="mailto:knghtbrd@debian.org">Knghtbrd</a> primarily for
include("parts/menu.php"); // Import left-side menus QuakeForge developers and other people who consider themselves to be knee-deep
tableSpacer( 1, 9, 1, "black"); // Separate content from menus in the code, whether they happen to be writing it or just testing it. What
?> you won't find here is a lot of the fluff news that tells the casual onlooker
<TD width="100%"> that the project is actually doing stuff without really telling you what the
<? state of things are.
$focused = "none"; // name of focused icon
include( "parts/topmain.php" ); // Display content top table
?>
<P>The State of the Code address is a not-frequently-enough updated
article written by <a href="mailto:knghtbrd@debian.org">Knghtbrd</a>
primarily for QuakeForge developers and other people who consider
themselves to be knee deep in the code, whether they happen to be
writing it or just testing it. What you won't find here is a lot of
the fluff news that tells the casual onlooker that the project is
actually doing stuff without really telling you what the state of
things are.
<P>No attempt will be made to soften technical issues so anyone can <P>No attempt will be made to soften technical issues so anyone can understand
understand them. If you want to really know what's going on, you them. If you want to really know what's going on, you probably don't want
probably don't want details left out because they might not make a details left out because they might not make a whole lot of sense to a
whole lot of sense to a non-coder. Feedback is always welcome. So non-coder. Feedback is always welcome. So are corrections if they're
are corrections if they're necessary - contrary to popular (with him) necessary - contrary to popular (with him) belief, Knghtbrd has in fact been
belief, Knghtbrd has in fact been known to be wrong sometimes. He known to be wrong sometimes. He isn't afraid to admit it either (most of the
isn't afraid to admit it either (most of the time..) time..)
<? <? // Display latest update
if (!$sotc) { function sotcShowLatest($year) {
include( "state.html" ); // Include Knightbird's SotC $i = 0;
}
else { $dirHandle = opendir('sotc/' . $year);
$filename = "sotc/sotc" . $sotc . ".html"; if ($dirHandle) {
if (file_exists($filename)) { while ($fileName = readdir($dirHandle)) {
include ( $filename ); if ($fileName != '.' && $fileName != '..' && $fileName != 'CVS') {
$sotcList[$i++] = $fileName;
} }
} }
?> closedir ($dirHandle);
<p> rsort ($sotcList);
<? include ('sotc/' . $year . '/' . $sotcList[0]);
tableBoxHeader ('black', $tableHeadColor ); }
tableTitle ('Archived SotC Updates',3,$tableHeadColor); }
echo '<TR><TD colSpan="3">';
tableHeader(3, 'black'); function sotcYears() {
$index = 1; $filename = "sotc/sotc1.html"; $i = 0;
while(file_exists($filename)) {
$fp = fopen($filename, "r"); $dirHandle = opendir('sotc/');
$str = fgets($fp, 4096); if ($dirHandle) {
fclose($fp); while ($year = readdir($dirHandle)) {
$str = ereg_replace("<!--","",$str); if (is_dir('sotc/' . $year) && $year != '.' && $year != '..' && $year != 'CVS') {
$str = ereg_replace("-->","",$str); $years[$i++] = $year;
echo '<P><A href="sotc.php?sotc=' . $index . '">SotC #' . $index . '</A> - ' . $str; }
$index++; }
$filename = "sotc/sotc" . $index . ".html"; closedir ($dirHandle);
rsort ($years);
return $years;
}
}
function sotcListFiles( $year ) {
$i = 0;
$dirHandle = opendir('sotc/' . $year );
if ($dirHandle) {
while ($fileName = readdir($dirHandle)) {
if ($fileName != '.' && $fileName != '..' && $fileName != 'CVS') {
$sotcList[$i++] = $fileName;
}
}
closedir ($dirHandle);
rsort ($sotcList);
if (count($sotcList) > 0) {
tableBoxHeader('black', tableHeadColor);
tableTitle('SotC Archives for ' . $year, 3, tableHeadColor);
for ( $i = 0; $i < count($sotcList) ; $i++) {
$file = fopen('sotc/' . $year . '/' . $sotcList[$i], 'r');
$line = fgets($file, 4096);
fclose($file);
$line = ereg_replace('<!--', '', ereg_replace('-->', '', $line));
echo '<TR><TD>' . $line . '</TD></TR>';
} }
tableFooter();
tableBoxFooter(); tableBoxFooter();
}
}
}
if (!$year) {
$year = date('Y', time());
}
$years = sotcYears();
for ( $i = 0; $i < count($years) ; $i++) {
echo $years[$i];
}
sotcShowLatest($year, 999);
echo '<P>';
sotcListFiles($year);
?> ?>
&nbsp;<br> <!--NOSEARCH-->
</TD>
<? <?
tableSpacer( 1, 9, 1, "black"); require("parts/postamble.php"); // Finish this sucker up
?> ?>
</TR>
<TR>
<TD COLSPAN="4">
<?
include("parts/copyright.php");
?>
</TD>
</TR>
</TABLE>

View file

@ -1,79 +1,52 @@
<?PHP <? // Preamble
$sitename = "The QuakeForge Project"; $pageName = "Speed/Time Cheat Protection";
$pagename = "Speed Cheat Detection"; $focused = "none"; // Dock icon name to gets a border
require("parts/library.php"); // Load function library require("parts/preamble.php"); // Load most of document
include("parts/head.php"); // Load the HEAD and open BODY
include("parts/topstrip.php"); // Display top strip
include("parts/titletable.php"); // Display main title w/ logos
?> ?>
<TABLE width="100%" cellspacing=0 cellpadding=0 border=0> <!--SEARCHME-->
<TR valign="top"> <H4>How does it work?</H4>
<?php <P>The &quot;time cheat&quot; relies on the client lying to the server
include("parts/menu.php"); // Import left-side menus about how much time has passed since the last packet was sent. Knowing
tableSpacer( 1, 9, 1, "black"); // Separate content from menus this, detecting the time cheat is simple. For a period of say, 30 seconds,
?> the QuakeForge server adds up the times from all the movement packets
<TD width="100%"> received from a specific client. If the client says that more then 30
<?php
$focused = "none"; // name of focused icon
include( "parts/topmain.php" ); // Display content top table
?>
<h4>How does it work?</h4>
<P>
The speed cheat works by the client lying to the server
about how much time has passed since the last packet
was sent. Therefore, the cheat detection is simple.
For a period of say, 30 seconds, QuakeForge adds up the
times from all the movement packets received from a
specific client. If the client says that more then 30
seconds have passed in 30 seconds, a red flag is raised. seconds have passed in 30 seconds, a red flag is raised.
<h4>Are there any problems with this?</h4>
<p> <H4>Are there any problems with this?</H4>
Sadly, the Windows QuakeWorld clients before 2.33 had a <P>Sadly, the Windows QuakeWorld clients before 2.33 had a bug in keeping
bug in keeping track of time. The longer Windows is up, track of time (This is not really a bug in QuakeWorld, but Windows 95 and
the faster time will seem to pass. While there is not a 98). The longer Windows is up, the faster time will seem to pass. While
noticeable speed boost from this until it has been up there is not a noticeable speed boost from this until it has been up for
for more then a day or so, it is detectable even after more then a day or so, it is detectable even after the system has been up
the system has been up only a few hours. only a few hours.
<p>
This and several other factors, including lag and packet <p>This, along with other factors including lag and packet loss, can cause
loss, can cause the time reported by the client to be the time reported by the client to be over the time the server expects.
over the time the server expects.
<h4>Well, what can I do?</h4> <H4>Well, what can I do?</H4>
<p> <P>QuakeForge's cheat detection is adjustible within the server, so that
QuakeForge's cheat detection is adjustible, so that administrators can decide what settings work best. Here are descriptions
server admins can decide what settings work best. Here of some of the config variables (&quot;cvars&quot;) that you can use to
are descriptions of some of the cvars that you can use configure time cheat detection on your server.
to configure cheat detection on your server.
<p> <P><STRONG>sv_timekick</STRONG>: This cvar controls the number of times a
<em>sv_timekick</em>: This cvar controls the number of player has to be caught "cheating" before they get kicked. sv_timekick
times a player has to be caught "cheating" before they shows up in serverinfo if it is changed from the default. If
get kicked. sv_timekick shows up in serverinfo if it is sv_timekick is less than 1, speed cheat detection is disabled. Default
changed from the default. If sv_timekick is less than 1, is 3.
speed cheat detection is disabled. Default is 3.
<p> <P><STRONG>sv_timekick_fuzz</STRONG>: This cvar affects how strict the
<em>sv_timekick_fuzz</em>: This cvar affects how strict protection is. The higher the number, the more "fuzz" gets applied,
the protection is. The higher the number, the more and the less strict the detection code is. Raise this if your players
"fuzz" is applied, and the less strict the detection are being kicked for packet loss and lag. The values of this cvar are
code is. Raise this if your players are being kicked for in tenths of a percent. Default is 10, giving a fuzz factor of about
packet loss and lag. The values of this cvar are in 1 percent.
tenths of a percent. Default is 10, giving a fuzz
factor of about 1 percent. <P><STRONG>sv_timekick_interval</STRONG>: This cvar controls how often, in
<p> seconds, the time tally is counted. Lowering this value increases the
<em>sv_timekick_interval</em>: This cvar controls how chance of false positives, but helps to minimize the amount of damage
often, in seconds, the time tally is counted. Lowering a time-cheating player can cause. Default is 30 seconds.
this value increases the chance of false positives, but <!--NOSEARCH-->
helps to minimize the amount of damage a speed-cheating <?
player can cause. Default is 30 seconds. require("parts/postamble.php"); // Finish this sucker up
</TD>
<?php
tableSpacer( 1, 9, 1, "black");
?> ?>
</TR>
<TR>
<TD COLSPAN="4">
<?php
include("parts/copyright.php");
?>
</TD>
</TR>
</TABLE>

View file

@ -1,5 +1,5 @@
<? // Preamble <? // Preamble
$pagename = "Page Name"; $pageName = "Page Name";
$focused = "none"; // Dock icon name to gets a border $focused = "none"; // Dock icon name to gets a border
require("parts/preamble.php"); // Load most of document require("parts/preamble.php"); // Load most of document
?> ?>