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 <!--SEARCHME-->
include("parts/titletable.php"); // Display main title w/ logos <P>QuakeForge is a 3D graphics game engine based on id Software's legendary
Quake and QuakeWorld game engine. 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 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
?> ?>
<TABLE width="100%" cellspacing=0 cellpadding=0 border=0>
<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>
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 <!--SEARCHME-->
include("parts/titletable.php"); // Display main title w/ logos <H2>Electronic Mail</H2>
<P>Please direct support questions to the
<A href="mailto:quake-user@lists.sourceforge.net">QuakeForge Users</A> mailing list.
<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
?> ?>
<TABLE width="100%" cellspacing=0 cellpadding=0 border=0>
<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>
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.
</TR>
<TR> <P>Quake is Copyright &copy; 1996-1997 id Software, Inc.
<TD COLSPAN="4"> <!--NOSEARCH-->
<?php <?
include("parts/copyright.php"); require("parts/postamble.php"); // Finish this sucker up
?> ?>
</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>
<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>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>
<DL> <DT>UNIX and Unix-like systems:</DT>
<DT>All platforms:</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>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><A href="http://www.wincvs.org/download.html">gCvs</A> is a GTK+ client for CVS with a more friendly interface.</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><A href="http://home.earthlink.net/~nawalker/pharmacy/">Pharmacy</a> is a GNOME front-end to CVS.</DD>
<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> <DT>Windows 95, 98, NT, and Windows 2000:</DT>
<DD><A href="http://www.wincvs.org/download.html">gCvs</A> is a GTK+ client for CVS with a more friendly interface.</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://home.earthlink.net/~nawalker/pharmacy/">Pharmacy</a> is a GNOME front-end to CVS.</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>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> <DT>Mac OS:</DT>
<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">MacCvs</A> is an excellent Macintosh CVS client.</DD>
<DT>Mac OS:</DT>
<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>
<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. <H2>SSH (Secure Shell)</H2>
<DL> <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.
<DT>UNIX and Unix-like systems:</DT> <DL>
<DD><A href="http://www.openssh.org">OpenSSH</A>, being Free Software, is our recommended SSH implementation.</DD> <DT>UNIX and Unix-like systems:</DT>
<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><A href="http://www.openssh.org">OpenSSH</A>, being Free Software, is our recommended SSH implementation.</DD>
<DT>Windows 95, 98, NT, and Windows 2000:</DT> <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>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> <DT>Windows 95, 98, NT, and Windows 2000:</DT>
</TD> <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>
<?php </DL>
tableSpacer( 1, 9, 1, "black"); <!--NOSEARCH-->
?> <?
</TR> require("parts/postamble.php"); // Finish this sucker up
<TR> ?>
<TD COLSPAN="4">
<?php
include("parts/copyright.php");
?>
</TD>
</TR>
</TABLE>

206
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">
<?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
?>
<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>
<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>
<p>
<h4>QuakeForge CVS Snapshots
<? $ftime = filemtime("files/qf-current-snapshot.tar.gz");
print ("(" . date("M. j, g:i a", $ftime) . " PT)"); ?></h4>
<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>
<br><a href="files/qf-current-snapshot.tar.bz2">qf-current-snapshot.tar.bz2
<? $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> <H4>QuakeForge 0.1.1</H4>
// <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. <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>
<h4>Miscellaneous Files</h4> <a href="http://download.sourceforge.net/quake/quakeforge-0.1.1.zip">quakeforge-0.1.1.zip (1.6MB)</A><BR>
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>QuakeForge v991221 (Initial Release)</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. <a href="http://www.sourceforge.net/download.php?fileid=958">q1-991221.tar.gz (2.7MB)</a>
<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><a href="http://www.sourceforge.net/download.php?fileid=953">q1-991221.tar.bz2 (2.4MB)</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><a href="http://www.sourceforge.net/download.php?fileid=947">q1source.zip (3MB)</a>
<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> <p>
<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>. <h4>QuakeForge CVS Snapshots
<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> <?
$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
<?
$size = filesize("files/qf-current-snapshot.tar.gz"); $size /= 1024;
echo '(' . round($size) . ' KB)</A><BR>';
?>
<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>.
<h5>MacOS</h5> <H4>Borland compiled QuakeForge Win32 bins</H4>
<li>You can find MacCVS and WinCVS here: <a href="http://www.wincvs.org">http://www.wincvs.org</a> Win32 QuakeForge binaries compiled using Borland C++ can be found <a href="http://personal.inet.fi/cool/quake1/">here</a>.
<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>.
<h5>OS/2</h5> <H4>Quake Shareware files</H4>
<li>You can find a ssh program <a href="ftp://ftp.cs.hut.fi/pub/ssh/os2/">here</a>. <A href="files/quake106.zip">Quake v1.06 (8.7MB)</A><BR>
<br><li>Cyclic has CVS for OS/2 <a href="http://download.cyclic.com/pub/os2/">here</a>. <A href="files/quake_sw.tar.gz">quake_sw.tar.gz (8.7MB)</A>
<h5>Multiplatform Tools</h5> <H4>Miscellaneous Files</H4>
<li>The Mesa GL Graphics Library: <a href="http://www.mesa3d.org">http://www.mesa3d.org</a>. Grab Taniwha's pak util replacement <a href="http://www.taniwha.org/">here.</a>
<br><li>Simple DirectMedia Layer: <a href="http://www.devolution.com/~slouken/SDL">http://www.devolution.com/~slouken/SDL</a>
<br><li>The latest SciTech MGL library can be found <H4>Utilities</H4>
<a href=" http://www.scitechsoft.com/dp_mgl.html">here</a>.
&nbsp;<br> <H5>UNIX and Unix-like systems (including Linux)</H5>
</TD> <UL>
<?php <LI>You can find a version of CVS on Cyclic's <a href="http://download.cyclic.com/pub/">ftp server</a>.</LI>
tableSpacer( 1, 9, 1, "black"); <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>
</TR> <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>
<TR> <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>
<TD COLSPAN="4"> </UL>
<?php
include("parts/copyright.php"); <H5>Windows 95/98/NT and DOS</H5>
?> <UL>
</TD> <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>
</TR> <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>
</TABLE> <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>BeOS</H5>
<UL>
<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>Mac OS</H5>
<UL>
<LI>You can find MacCVS and WinCVS here: <a href="http://www.wincvs.org">http://www.wincvs.org</a></LI>
<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>
</UL>
<H5>OS/2</H5>
<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
?>

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 <!--SEARCHME-->
include("parts/titletable.php"); // Display main title w/ logos <? include ("sponsor_incl.html"); ?>
<!--NOSEARCH-->
<?
require("parts/postamble.php"); // Finish this sucker up
?> ?>
<TABLE width="100%" cellspacing=0 cellpadding=0 border=0>
<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"); ?>
</TD>
<?php
tableSpacer( 1, 9, 1, "black");
?>
</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> </TD>
</TR> <? tableSpacer( 9, 9, 1, "black"); ?>
</TABLE> </TR>
<? include("parts/copyright.php"); ?> <TR>
<? tableSpacer( 9, 9, 3, "black"); ?>
</TR>
<? tableFooter(); ?>
</TD>
</TR>
<TR vAlign="top">
<TD colSpan="2">
<? require(siteHome ."/parts/copyright.php") ?>
</TD>
</TR> </TR>
</TABLE> </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">'; {
iconBar($focused); global $focused;
echo ' </TD>';
echo ' </TR>'; tableHeader("100%", "black");
echo ' <TR>'; echo ' <TR vAlign="bottom">' .
tableSpacer( 1, 4, 1, "black"); ' <TD align="left">' .
echo ' </TR>'; ' <FONT size="+2"><B>' . $pageName . '</B></FONT>' .
echo ' <TR>'; ' </TD>' .
tableSpacer( 2, 1, 2, "white"); ' <TD align="right">';
echo ' </TR>'; iconBar($focused);
echo '</TABLE>'; echo ' </TD>' .
' </TR>' .
' <TR>';
tableSpacer( 1, 1, 2, "black");
echo ' </TR>' .
' <TR>';
tableSpacer( 2, 1, 2, "white");
echo ' </TR>';
tableFooter();
}
topBar($pageName);
?> ?>

View file

@ -1,79 +1,53 @@
<? <? // 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> <TABLE width="100%" cellSpacing="0" cellPadding="0" border="0">
<TR valign="top"> <TR vAlign=top>
<? <TD colSpan="2">
include("parts/menu.php"); // Import left-side menus <A name="ProgressMeter"></A>
tableSpacer( 1, 9, 1, "black"); // Separate content from menus
?>
<TD width="100%">
<? <?
$focused = "none"; // name of focused icon function progressKey() // Display key for progress bar
include( "parts/topmain.php" ); // Display content top table {
?> echo '<TR><TD>&nbsp;</TD><TD>&nbsp;</TD><TD align="center">' .
<P> '<IMG src="/img/graph/ProgressBar.desc.png" ALT="0-33% Hackers, 34-67% Developers, 68-100% Users">' .
<TABLE width="100%" cellSpacing="0" cellPadding="0" border="0"> '</TD><TD>&nbsp;</TD><TD align="left" ></TD></TR>';
<TR vAlign=top> }
<TD colSpan="2">
<A name="ProgressMeter"></A>
<?
function progressKey() // Display key for progress bar
{
echo '<TR><TD>&nbsp;</TD><TD>&nbsp;</TD><TD align="center">' .
'<IMG src="/img/graph/ProgressBar.desc.png" ALT="0-33% Hackers, 34-67% Developers, 68-100% Users">' .
'</TD><TD>&nbsp;</TD><TD align="left" ></TD></TR>';
}
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("100%", 'black');
tableHeader(3, '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'); progressMeter('GGI', 90, 'New cross-platform software standard?');
progressMeter('GGI', 90, 'New cross-platform software standard?'); progressMeter('GLX', 95, 'Working properly');
progressMeter('GLX', 95, 'Working properly'); progressMeter('MGL', 80, 'No comments');
progressMeter('MGL', 80, 'No comments'); progressMeter('SDL', 90, 'New cross-platform software standard?');
progressMeter('SDL', 90, 'New cross-platform software standard?'); progressMeter('Sun XIL', 50, 'Unknown status');
progressMeter('Sun XIL', 50, 'Unknown status'); progressMeter('SVGAlib', 85, 'No comments');
progressMeter('SVGAlib', 85, 'No comments'); progressMeter('WGL', 70, 'No comments');
progressMeter('WGL', 70, 'No comments'); progressMeter('X11', 95, 'Working properly');
progressMeter('X11', 95, 'Working properly'); progressKey();
progressKey(); tableFooter();
tableFooter(); tableBoxFooter();
tableBoxFooter();
?>
</TD>
</TR>
</TABLE>
&nbsp;<BR>
</TD>
<?
tableSpacer( 1, 9, 1, "black");
?>
</TR>
<TR>
<TD COLSPAN="4">
<?
include("parts/copyright.php");
?> ?>
</TD> </TD>
</TR> </TR>
</TABLE> </TABLE>
<!--NOSEARCH-->
<?
require("parts/postamble.php"); // Finish this sucker up
?>

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 This page is still under construction. Please check back later.
include("parts/titletable.php"); // Display main title w/ logos <?
require("parts/postamble.php"); // Finish this sucker up
?> ?>
<TABLE width="100%" cellspacing=0 cellpadding=0 border=0>
<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>
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>

167
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');
$index = 1; $filename = "sotc/sotc1.html";
while(file_exists($filename)) {
$fp = fopen($filename, "r");
$str = fgets($fp, 4096);
fclose($fp);
$str = ereg_replace("<!--","",$str);
$str = ereg_replace("-->","",$str);
echo '<P><A href="sotc.php?sotc=' . $index . '">SotC #' . $index . '</A> - ' . $str;
$index++;
$filename = "sotc/sotc" . $index . ".html";
} }
tableFooter(); }
tableBoxFooter();
?> function sotcYears() {
&nbsp;<br> $i = 0;
</TD>
<? $dirHandle = opendir('sotc/');
tableSpacer( 1, 9, 1, "black"); if ($dirHandle) {
?> while ($year = readdir($dirHandle)) {
</TR> if (is_dir('sotc/' . $year) && $year != '.' && $year != '..' && $year != 'CVS') {
<TR> $years[$i++] = $year;
<TD COLSPAN="4"> }
<? }
include("parts/copyright.php"); closedir ($dirHandle);
?> rsort ($years);
</TD> return $years;
</TR> }
</TABLE> }
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>';
}
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);
?>
<!--NOSEARCH-->
<?
require("parts/postamble.php"); // Finish this sucker up
?>

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 <!--SEARCHME-->
include("parts/titletable.php"); // Display main title w/ logos <H4>How does it work?</H4>
<P>The &quot;time cheat&quot; relies on the client lying to the server
about how much time has passed since the last packet was sent. Knowing
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
received from a specific client. If the client says that more then 30
seconds have passed in 30 seconds, a red flag is raised.
<H4>Are there any problems with this?</H4>
<P>Sadly, the Windows QuakeWorld clients before 2.33 had a bug in keeping
track of time (This is not really a bug in QuakeWorld, but Windows 95 and
98). The longer Windows is up, the faster time will seem to pass. While
there is not a noticeable speed boost from this until it has been up for
more then a day or so, it is detectable even after the system has been up
only a few hours.
<p>This, along with other factors including lag and packet loss, can cause
the time reported by the client to be over the time the server expects.
<H4>Well, what can I do?</H4>
<P>QuakeForge's cheat detection is adjustible within the server, so that
administrators can decide what settings work best. Here are descriptions
of some of the config variables (&quot;cvars&quot;) that you can use to
configure time cheat detection on your server.
<P><STRONG>sv_timekick</STRONG>: This cvar controls the number of times a
player has to be caught "cheating" before they get kicked. sv_timekick
shows up in serverinfo if it is changed from the default. If
sv_timekick is less than 1, speed cheat detection is disabled. Default
is 3.
<P><STRONG>sv_timekick_fuzz</STRONG>: This cvar affects how strict the
protection is. The higher the number, the more "fuzz" gets applied,
and the less strict the detection code is. Raise this if your players
are being kicked for packet loss and lag. The values of this cvar are
in 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
seconds, the time tally is counted. Lowering this value increases the
chance of false positives, but helps to minimize the amount of damage
a time-cheating player can cause. Default is 30 seconds.
<!--NOSEARCH-->
<?
require("parts/postamble.php"); // Finish this sucker up
?> ?>
<TABLE width="100%" cellspacing=0 cellpadding=0 border=0>
<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
?>
<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.
<h4>Are there any problems with this?</h4>
<p>
Sadly, the Windows QuakeWorld clients before 2.33 had a
bug in keeping track of time. The longer Windows is up,
the faster time will seem to pass. While there is not a
noticeable speed boost from this until it has been up
for more then a day or so, it is detectable even after
the system has been up only a few hours.
<p>
This and several other factors, including lag and packet
loss, can cause the time reported by the client to be
over the time the server expects.
<h4>Well, what can I do?</h4>
<p>
QuakeForge's cheat detection is adjustible, so that
server admins can decide what settings work best. Here
are descriptions of some of the cvars that you can use
to configure cheat detection on your server.
<p>
<em>sv_timekick</em>: This cvar controls the number of
times a player has to be caught "cheating" before they
get kicked. sv_timekick shows up in serverinfo if it is
changed from the default. If sv_timekick is less than 1,
speed cheat detection is disabled. Default is 3.
<p>
<em>sv_timekick_fuzz</em>: This cvar affects how strict
the protection is. The higher the number, the more
"fuzz" is applied, and the less strict the detection
code is. Raise this if your players are being kicked for
packet loss and lag. The values of this cvar are in
tenths of a percent. Default is 10, giving a fuzz
factor of about 1 percent.
<p>
<em>sv_timekick_interval</em>: This cvar controls how
often, in seconds, the time tally is counted. Lowering
this value increases the chance of false positives, but
helps to minimize the amount of damage a speed-cheating
player can cause. Default is 30 seconds.
</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
?> ?>