Quake Spy 2.6

The birth of Quake Spy:

	This program was born out of a desire to quickly find a playable
        Quake server.  I must have spent a week looking at the finger output
        from Servers@ns.stomped.com and then manually pinging those IP
        addresses looking for a server with a decent response time.  While
        this accomplished my initial goal, it was hardly an acceptable
        solution.  Hence, the birth of Quake Spy!

Quake Spy has these features:

	* Gets a list of active Quake servers from the following sites:

	  1. Finger Servers@ns.stomped.com
	  2. http://citrix.progress.com/servers.html
	  3. http://www.pipo.com/quake/quake.html
	  4. Finger vfuks@monmouth.com
	     (try Deicide's Quake Servers at http://www.monmouth.com/~vfuks)
	  5. User defined finger source
	  6. User defined http source
	  7. User defined http source
	  8. User defined http source

	  Quake Spy is able to parse any finger or web page for IP addresses.
	  Just fill in the user defined areas and roll your on list!

	* Pings these sites a configurable numbers of times.

	* Queries these sites for server name, map name, current and max
	  players.

	* Displays results in a list box in the following format:

	  Average ping in ms, number of times the pings timed out, the IP
	  address of the server, the name of the server, the name of the map
	  currently being run by the server, the current number of players on
	  the server and the maximum allowed players on the server.

	* Launch Quake by double clicking on a server in the listbox.

	  Be SURE to tell QSpy where Quake is by using the Configure button
	  and selecting the Quake Page.

	  (Don't do this under NT unless you have a native NT port of Quake.
	   Quake won't like it.)

	* Manually add and delete Quake servers to the list.

	* Save and reload the Quake server list.  This info is saved to a
	  file named QSpy.dat in your Quake directory.

	* Refresh the server information of selected servers.

	* Resize the Quake Spy window to suit your preference.

	* Configurable options:

	  . Quake Spy either suspends its operations after Quake launches and
	    resumes once Quake terminates or it terminates after successfully
	    launching Quake (configurable option).

	  . Whether or not to auto-save the Quake Spy server list upon leaving
	    Quake Spy.

	  . Whether to ping servers after loading data.

	  . Whether to auto-load the (saved) server list upon program startup.

	  . Whether to auto-start the update process upon program startup.

	  . Where to get active Quake server list information

	  . There are five filter settings you can use to limit the output of
	    the server information gathering process:

            1. Display servers that return the Quake query request.
            2. Display servers that are not full of players.
            3. Display servers whose ping requests timed out less than
               the specified amount.
            4. Display servers whose average ping time is less than the
               specified time.
			5. Display servers whose map name starts with the specified
			   characters (e.g., 'dm' for servers only playing deathmatch
			   levels).

	  . Where Quake is located on your system and what command line
	    options to pass to Quake when you launch it.

	  . Include connection scripts aliases:

	    . qlist: displays a list of the top 10 servers Quake Spy
                     found.

	    . s<#>:  connect to the specified server in the qlist alias.

	  . Allow an automatic disconnect and display a top 10 list
	    of servers while in Quake and specify which character to
	    bind this to.

		Something to be aware of:  If you do this and later decide
                you don't want this binding, you'll have to go and remove
                the bind command from the config.cfg file in the id1
                directory.  A later version of Quake Spy will do this for
                you.

	  . How many times to ping a Quake server.

	  . How long to wait for a response to this ping.

	  . How long to wait for a response from the query for info.

This release has been tested and (to the best of my knowledge) will only
work with Windows 95/NT3.51/NT4.0.

Quake Spy makes use of MFC42.DLL and MSVCRT.DLL.  If you downloaded the stand
alone verion of Quake Spy and you do not have these files in your SYSTEM
directory, then you should get QSPYRT24.ZIP from the same place you got this
file.  If it's not included there, you can request a copy from us, and we'll
be glad to mail it to you.

We are also distributing Quake Spy in an installShield package.  If you
download this package, you don't need the support files.  Everything is
included in this package.

Quake Spy is freeware...with the following provisions:

	If you use Quake Spy, send us an email.  Do you like Quake Spy?  Do
	you have any suggestions on how to improve it?  We want to get a feel
	for what you guys think/want.

	If you feel compelled to show us how much you appreciate Quake Spy,
	we will kindly accept monetary donations of any amount ;-)

-------------------------------------------------------------------------
Joe Powell, jep@sclsis.navy.mil (preferred) or powelljo@jaxmail.navy.mil
Tim Cook, cookti@jaxmail.navy.mil.

INFO/COMMENTS WANTED

	Wait for id to release specs on Quake protocol so we can query a
	   Quake server for player names and frag counts, etc.
	   (If anyone already knows the query strings for this, TELL ME!)
	Option to keep DNS names on list or do reverse DNS (SLOW!)?
	Convert listbox to a listctrl report view?
	Anyone want a toolbar type interface?
	More options to Quake property page (-winmem, -winlock, -nojoy, etc)?

TODO

	Option to differentiate registered servers from shareware
	   (suggested).
	In qlist alias, indicate which server was launched (suggested).
	Ability to send server list to printer/clipboard (suggested).
	Remember Quake Spy window size.
	Remove the disconnect key binding command from the config.cfg file
	   when that option is deselected or changed.
	Actually PLAY Quake instead of programming for it!

REVISION HISTORY

v2.6	8/6/96
	Added filter option for map name.
	Added option to auto-load server list upon program start.
	Added option to auto-start update upon program start.
	Added 3 user defined http spots and 1 user defined finger spot
	   to the sources property page.
	Added vfuks@monmouth.com finger to Sources property page.
	Added Pipo's web page to Sources property page.
	Wrote a generic routine to parse out IP addresses from any page
	   (suggested).

v2.5	8/2/96
	Return focus to last selected item after a refresh (suggested).
	Added Quake Spy option to autosave server list upon leaving QSpy.
	Added Quake Spy option to ping/not ping servers after loading data.
	Implemented non-blocking socket reads throughout the program.
	   (Press Stop immediately after starting an update and you'll
	    see what I mean.)
	Improved display speed on delete and refresh functions.
	Allowed the Quake Spy window to be resized and maximized.

v2.4	7/25/96
	Added a Quake Spy property page with an option to terminate QSpy
	   after launching Quake.
	Rewrote the Refresh button list traversal code.
	The filter options are reapplied to the list upon exiting the
	   property page.
	Added buttons and code to save/load list of servers.
	Added buttons and code to allow manual addition/deletion of servers.
	Rewrote portions of code to allow easy addition/deletion of servers.
	Added connection scripts option when launching Quake.
	Added Quake property page options to:
	   Include connection scripts aliases
	   Allow an automatic disconnect and display a top 10 list
	      of servers.
	   Specify which character to bind the above to.

v2.3    07/20/96
	Added button to refresh (re-ping/re-query) selected servers.
	   (updated information is not checked against the filter criteria)
	Added the ability to stop the server information retrieval process.
	Added the ability to stop the server refresh process.

v2.2	07/17/96
	Added some more status messages to indicate QSpy is doing something.
	Added a proper icon to the application :-)
	Fixed: If the close button was pressed during the pinging process,
	       the application window closed, but the process continued to
	       run.
	Fixed: The property page settings were never initialized unless the
	       property page was activated.

v2.1	07/15/96
	Fixed pointer bug (for real) this time (hey, it was late).
	Added a property page accessed through the Configure button.
	Added ][ronMan's server web page to the Sources property page.
	Added Filtering options to the property page and implemented them.
	Added Quake property page to allow definition of command line and
	   working directory.
	Added ability to launch Quake by double clicking a list item.
	Added a Ping property page to allow number of pings and timeout
	   values to be adjusted.

v2.01	07/13/96
	Fixed stupid pointer bug that happened when the process was restarted.

v2.0	07/12/96
	Converted application to a 32-bit Win95/NT application.
	Filter out duplicates in the Stomped output.
	Display results sorted by ping time.

v1.0	07/11/96
	Initial Public Release as a Console Application.

LEGAL DISCLAIMER

	We're not responsible for anything that happens to your system while
	Quake Spy is running.  Period!  Hey, what do you expect for free?
