QView 5.0 QVReadme.txt
9 January 1999

Visit Xonanan Industries at: http://www.xoanan.com

****************************************
*** Information for New QView Users  ***
****************************************
If you've never used QView before, here's the fastest way to
get QView to show active Quake servers:

1) Choose 'Options | General Settings'.
2) Enter your Quake (or Quake II, etc.) directory and close the 
   dialog.
3) Select the icon in the tree called 'Quake Server Group'.
3) Choose 'Refresh | Rebuild Group's Server List', or choose 
   the fifth button from the right (the icon has three
   computers with a blue arrow on top of them).

Voila!  You should now see QView pinging both Quake and 
QuakeWorld servers.  If you want only Quake servers or only
QuakeWorld servers, you can modify your group's properties.
Read on for more information.


****************************************
*** New features/fixes for QView 5.0 ***
****************************************
Added Quake II support.

Changed the icons in the tree and list view.  They are now
  all smaller and take up less room.

Simplified some of the menus.

Modified Quake II support for Quake II v. 3.09.


******************************************
*** QHost features/fixes for QView 4.5 ***
******************************************
QHost can't currently work with Quake II.  Id Software has
  indicated to me they want to help me make it work, but
  so far not much is happening.  If you use QHost and feel
  it's important to you to see it work with Quake II, you
  can email bear@idsoftware.com to let them know.

The system diagnostics tab in the QHost dialog was showing
  the memory perecentage incorrectly.

Fixed the auto-refresh seconds control on the game server 
  console tab so you can always enter the number of seconds, 
  even if auto-refresh isn't checked.


QView Overview
--------------
QView is a Win32 application that displays real-time statistics 
of Quake servers and the players playing on those servers.  
QView is multi-threaded and features auto-refresh of servers 
and/or groups of servers.  QView can read IP addresses from any 
HTML page (given a URL) and will search the found addresses for 
Quake servers.  You can also add servers manually to a group of 
servers or get QuakeWorld servers from a master QuakeWorld 
server.

QView can also exclude players when refreshing server statistics 
in order to speed up the searching speed.  Using the auto server 
refresh option, you can watch a deatchmatch in progress.  QView 
will even show you the players colors and rank them according 
to frags, names, addresses, and time connected.  The server list 
can be ordered by name, ping time, current players, address,
and any server rule.



Installation
------------
1.  Unzip QView.zip (contains QView.exe and qvreadme.txt).
2.  Unzip QView_rt.zip (contains the runtime dll's).
3.  Copy the .dlls to your windows\system (or winnt\system32) 
directory.  If you have a newer version of any of the dll's,
keep the version you already have.
4.  Put QView where ever you plan to run it from.
5.  Launch QView.


QView Server Groups
-------------------
QView uses the .qvw extension for QView files.  Each QView file
contains one or more Server Groups.  Each group contains a list
of server sources which QView uses to build the list of current
IP addresses for a group.  To see how this works, launch QView.
If you've never run QView before, you will see a single, empty 
QView Server Group on the left side of the display.  In order
to add IP addresses to the group, you can either insert Quake
servers using the menus, or you can rebuild a group's server 
list.  When you rebuild the server list for a group, the rebuild
uses a list of server sources to try and fill the group with 
known IP addresses.  Rebuild sources include:

* IP addresses and/or DNS names you manually enter
* A URL that has IP addresses on it (always assumed to be normal
  Quake servers and not QuakeWorld servers)
* A QuakeWorld master server

By default, an empty QView group has a single IP address (a
Wasatch Fault server), Stomped's server list (a URL), and id's
master QuakeWorld server.


Rebuilding Groups' Server Lists
-------------------------------
To modify the way a group rebuilds its server list, choose File |
Properties while hilighting a group.  The Group properties dialog 
should now appear.  In this dialog you can change the name of the 
current Quake Server Group.  You can also edit the Quake and Quake-
World server sources.  These can be either IP addresses, URL's, or 
master QuakeWorld servers.  When you choose Refresh | Rebuild 
Group's Server List, QView will add any IP addresses in the servers 
sources to the group's server list.  QView will also attempt to 
grab the .html pages listed and parse them for Quake server IP 
addresses.  These addresses are also added to the server list.  You 
won't need to rebuild a Quake Server Group very often.  Once you 
build a group you will usually want to refresh groups instead.


Refreshing Groups
-----------------
The group's server list are the servers that appear in the main
tree view in QView underneath a group.  When you refresh a Quake 
Server Group, QView will try to communicate with the Quake server 
on each IP address in the group's server list.  A lightning bolt 
by a server indicates communication between QView and the remote 
Quake server is pending.  


Refreshing vs. Rebuilding
-------------------------
Refreshing servers differs from rebuilding server lists in that 
rebuilding server lists uses the Group rebuild sources to gather 
the list of servers.  This can potentially take a long time
(especially if you use URL's to find Quake servers) because it 
may involve grabbing web pages or talking to a QuakeWorld master 
server, depending on how you have your Group server sources setup.  
Refreshing a Group uses the Current Quake servers already found 
by a rebuild or entered by the user to check on the current status 
of the Current Quake servers.


Auto Server/Group Refresh
-------------------------
To watch a deathmatch in progress, select a Quake server in either
the tree view on the left or the list view on the right.  Then choose
Refresh | Refresh Server.  The server will update over and over again
until you choose Refresh | Manual Refresh.  You can change the
frequency of Server/Group auto refreshes by choosing View | General
Options.


Launching Quake
---------------
Before launching Quake via QView, you will need to tell QView where
your copy of Quake is.  Choose View | General Options, and then
choose the Launch Quake tabbed dialog.  In the Quake Directory,
enter the path to your copy of Quake.  The command line must have at
least the following:

  For Quake
  ---------
  q95.bat
  --or--
  winquake

  For QuakeWorld
  --------------
  qwcl


Setting up Multiple Command Line Options
------------------------------------------
QView allows for multiple command lines for both Quake and 
QuakeWorld (like having one for ctf, one for normal, etc.).  
Here's how to set them:

Choose 'Options | General QView Settings...'.  On the Command Lines 
tab you will see a listbox with a list of command lines.  If you've 
never run the newer QView, you will only see one command line.  To 
add another, choose 'New' and type in your command line.  You can 
reorder the command lines by selecting a command line and pressing 
'Up' or 'Down'.

To see your QuakeWorld command lines, change from 'Quake' mode to
'QuakeWorld' mode by chosing the appropriate button.  If you want, 
modify the default comamnd line to suit your taste.  However, QView 
should work fine with the default command line.


Launching Quake with one of the Multiple Command Lines 
------------------------------------------------------
When you launch Quake, QView will use the *first* command as seen in 
the list of command lines.  To use one of the other command lines you 
entered:

Right click on a server in the tree or list view.  In the popup 
menu you will see 'Launch Quake' and 'Other Command Lines'.  Just 
select one of the other command lines and you're on your way.


Other Options
-------------
From the General Options dialog you can also set whether you want
to include players and/or server rules when refreshing servers.
Both options slow down the refresh process, because more packets
must be sent to each Quake server.  You can also mark which server
rules you're interested in.  QView will only use the rules you
select for the server list columns.


Player Profiles
---------------
Player profiles control what your player looks like when you launch 
Quake.  You can set the player name, colors, skin (QuakeWorld only),
and choose a .cfg file to execute when you launch Quake.

You can also use the dialog to set special parameters for QuakeWorld.
The listbox at the bottom has several default values used for
QuakeWorld.  You can add others if you want.

If you don't want to use player profiles, you can disable them by
choosing Options | Use Player Profiles.


Command Execution Order
-----------------------
When you launch Quake, it's important to realize the order in which
your commands will be executed by Quake.  The order is:

* QView starts Quake with the command line and any given parameters.  
  These parameters include:
  --Any parameters you included when you entered the command line in 
    the options dialog.
  --The '-game' command, if you set up a 'game' parameter in the
    server property page for the given server.
* QView.cfg is executed via the command line, which contains
  --Any player profile information (if you're using player
    profiles), including the player .cfg file (if any).
    This information includes the name, colors, and skin.
  --Finally, if you set up 'post connect commands' for the server in 
    the server property page, these commands are executed.


Toolbars
--------
Most menu functions can also be accessed through the toolbars.
For those who like the Windows 95 interface, you can right-click
for additional access to QView menu items.  Double clicking on an
item in the list view on the right will cause a refresh to occur.


QHost Integration
-----------------
QView is the front-end to QHost.  QHost resides on a remote Windows
95 or Windows NT machine and allows a QView user to manage the Quake 
server.  With the QHost integration in QView, you can stop/start a 
remote Quake server, send commands to the Quake server, or look at 
the current Quake server console.  You can even kick obnoxious players 
from your Quake server with a press of a toolbar button or a right-click
on the offending player.  QHost is password protected to prevent 
unauthorized users from disturbing the Quake server settings.  For more 
information about QHost, download QHost.zip and read QHReadme.txt.


Check it Out
------------
Play with the options in QView and, if you have time, let me know 
what you think.  Comments and/or suggestions can be sent to:

sotteson@xoanan.com

I will entertain any requests to improve QView and QHost.



About QView
-----------
QView is donationware and was written using Microsoft 
Visual C++ 5.0 by Steve Otteson.  

If you've got money burning a hole in your pocket and you
think QView is the neatest thing since sliced spam, feel free
to send me a small donation of $5-$10.  You can mail your check
or money order to:

Xoanan Industries
644 N. 880 W.
Pleasant Grove, UT 84062

Make checks payable to Xoanan Industries.

Visit Xonanan Industries at: http://www.xoanan.com


Revision History
----------------

QView 5.0
---------
Added Quake II support.

Changed the icons in the tree and list view.  They are now
  all smaller and take up less room.

Simplified some of the menus.

Modified Quake II support for Quake II v. 3.09.


QView 4.5: QHost related features/fixes
---------------------------------------
QHost can't currently work with Quake II.  Id Software has
  indicated to me they want to help me make it work, but
  so far not much is happening.  If you use QHost and feel
  it's important to you to see it work with Quake II, you
  can email bear@idsoftware.com to let them know.

The system diagnostics tab in the QHost dialog was showing
  the memory perecentage incorrectly.

Fixed the auto-refresh seconds control on the game server 
  console tab so you can always enter the number of seconds, 
  even if auto-refresh isn't checked.



QView 4.2
---------
Added multiple ping threads.  The more ping threads, the
  quicker QView can refresh a server list.  However, more
  threads can also make the pings less accurate.  The default
  is 3 threads and the maximum is 10.  This number is set on
  the 'General Settings | Server Settings' dialog.

Added a top-most item in the tree called 'All Servers'.  If
  you select this item, you will see all servers from all
  groups sorted in the right-pane.

Drag/drop/copy/paste now works.  You can drag/drop/paste
  within QView, or to a different instance of QView.

Got rid of the address column (left-most column) in the right-
  pane.

Added connect time to QuakeWorld player's columns, and got rid
  of userid.

Added ability to enter servers as DNS names (like 
  'quake1.wasatchfault.com') instead of only IP addresses.

Added option to launch servers with a double-click.  This can
  be disabled in the 'General Settings | Preferences' dialog.

Streamlined Quake server properties page.  Also added DNS name
  lookup on Quake server properties page.

Made it so QView won't change server names to 'No Response'
  if the QView already know's the server's name and Quake 
  doesn't respond.

Made QView able to stop refreshing more quickly when 'Stop' 
  is pressed.

Remade the bitmaps for groups.

Fixed bug where you couldn't launch Quake with any command-
  line but the default in the right-pane.

Fixed bug where right-pane incorrectly painted its background
  if the default window color wasn't white.

Fixed weird repaint when QView is first launched so QView
  doesn't appear to be 'see-through'.

Fixed bug where all servers of all groups were added to the
  right-pane when QView was first launched.

Completely redid the Group properties dialog (formerly 'Group
  Rebuild Options' dialog).  Hopefully the new way is easier
  to understand for new QView users.

Added neato scrolling credits to the About Box.

Added 'Properties' and 'New' buttons to the toolbar.

Added percent done progress bar in lower right-hand corner of
  main console.

Simplified the filters dialog, along with the entire General
  Settings tabbed dialog.

Made toggling addresses in the main QView work much faster.
  Also, if you want to sort by addresses you can turn on
  addresses and click the name column.

Added another status window at the bottom of QView that tells
  you how many servers are in a group, along with how many
  total servers there are in all groups (depending on what
  you have selected).

Got rid of filter GPFs.

"+exec QView.cfg" is no longer needed in the command-lines.

In the group property sheet, you can control whether QView
  refreshes the group's server list when the group is first
  opened.

Added shirt/pants numbers to the player icons in the player
  view.

Moved the master server dialog into the general settings.

Added a 'Game' column in the right-hand pane when viewing
  lists of servers.

*** QHost Related Fixes (for server admins only)
------------------------------------------------
Added auto-refresh to Quake server console window.

Streamlined server start/stop dialog.  Got rid of ability to
  set the process priority for the Quake server (one person
  requested this, but I don't think many people are using
  it, and it's dangerous anyway).

Made all QHost dialogs fit in 640x480.  The trade-off is that
  the Quake server console window holds less text.

Console text is now run through the Quake text converter so
  you won't see any 'fun name' characters in the console.

Now using smaller font in console window so more characters
  will fit across the screen.

QView now displays whether a server was stopped by a user, by
  QHost (like if the server was scheduled to go down), or if
  the server terminated abnormally.  (Choose 'Current Status...'
  from the 'Quake Servers' tab of the QHost dialog.)

QHost will attempt to restart a server if the server terminates
  for a reason unknown to QHost (like a GPF or if someone types
  'quit' at the server console).  QHost will only try to restart
  servers that successfully ran for at least 30 seconds.  This 
  avoids repeatedly restarting servers that are always failing 
  for one reason or another.



QView 4.1a
----------
Fixed the bug where QView was GPFing if a QuakeWorld server
  would send incorrectly formatted information.

Fixed the bug where you couldn't do a Properties on a server
  in the right pane.

Simplified the toolbar (again).

Enabled the 'Manage via QHost' button on all servers.  If
  QView hasn't already discovered QHost on your server,
  QView will check for QHost and then prompt you for logon
  information.

Added a button to toggle filter usage.


QView 4.1
----------
Fixed bug where you couldn't launch Quake when selecting 
  anything in the right-pane.

QView 4.1 has full QuakeWorld 1.5 support.  QView no longer 
  supports the original QuakeWorld.

Added player profiles.  You can set up multiple player 
  profiles with different names, colors, skins, etc.  You
  can also choose to execute a .cfg file for each profile.
  If you want you can disable player profiles which means 
  Quake falls back to your .cfg files.

Added custom server information.  This means for each server
  in a QView group you can set up the -game parameter (useful
  for CTF servers), along with passwords (for private
  QuakeWorld servers).

Added CPU detection for Pentium(R) II processors.  I'm still
  waiting for input from QView users as to whether the CPU
  detection works for Cyrix/AMD processors.

Massaged some of the menus (again).

Player properties now works for both QW and normal Quake
  players.

Made the QHost server console dialog more patient in waiting
  for console packets.  Also, got rid of the bug which filled
  the console with garbage if all the packets weren't received.

Made it so you can turn off IP addresses in the main tree view.

Got rid of all the stop buttons but one.  So now you can stop 
  complaining, Monty! :)


QView 4.02
----------
Fixed group rebuild to remember single QW servers entered manually
  by the user.

Fixed user page on QHost dialog to allow more than 2 ports per 
  QHost user account.  Limit is now 10 per user (can still be
  all ports instead of a list of 10 or less ports).

QHost server dialog now inserts all ports correctly into the QView
  tree, including QuakeWorld servers.

When a server is found to have the QHost agent, all servers with
  the same address change color to reflect the QHost agent status.
  Also, if you log on to a QHost server, QView recognizes that you
  are also logged on to all other servers with the same IP address.

Fixed CPU code that wasn't working for 486 machines.

When a QHost user launches the QHost dialog while selecting a port
  that he/she does not have rights to, QView launches the QHost 
  dialog using a port for which the user does have rights.  This
  avoids initial 'Access denied' messages when the QHost dialog is
  first launched.


QView 4.01
----------
Fixed bug where QView would sometimes GPF when the user chose 
  File | New.

Fixed bug where QView would use the wrong server if you were trying
  to launch Quake using a selected item in the right pane.

Fixed bug where QView would write the wrong information into QView.cfg
  for QuakeWorld.  QuakeWorld does not understand the command 
  'port ####' like Quake does.  QuakeWorld expects 'connect #.#.#.#:###'
  for ports other than 27500.


QView 4.0
---------
QView now has full QuakeWorld support.  See the new section
  entitled "QuakeWorld Support".

Multiple command lines are now supported.  For example, you
  may have one command line like 'winquake -game ctf' and
  another with 'winquake -game spamhead'.  Multiple command
  lines are supported for both Quake and QuakeWorld.  For
  more information, see the "QuakeWorld Support" section.

Fixed the group rebuild bug where sometimes some IP addresses 
  were not parsed correctly out of URLs.

Added CPU goodies in the About Box.  I tried my best for 
  Cyrix and AMD processors, but since I don't have access to 
  any, I was unable to test for them.  Let me know if you 
  find any problems with the new About Box.  Also, I have not
  tested the about box with overclocked CPUs, so I can't
  promise that works either.

Moved the menus around to be more intuitive (thanks Larry!).

Added ability to kick players by name or number as selected
  by the user.  QView used to always kick by name, but with
  names with a carriage return, this always fails.  However,
  kicking by number in Quake is a little risky, because the
  Quake server reassigns players' numbers at will.  In
  QuakeWorld it's *always* safe to kick by number, since
  you're really kicking by userid.

Added server property page.  This is most useful for QuakeWorld
  servers as you can see all the custom fields the 
  server administrator has added to the server.  There is also
  a button on this dialog to launch your web browser when there
  is a field selected with a URL.

Added player property page (QuakeWorld only).  This allows you
  to browse a player's skins, fields, etc.


QView 3.0
---------
Note: Again, most changes apply to Quake server admins.  QView does 
not yet have client support for Quakeworld, but it should be coming 
soon.

Scheduling is *finally* functional!  You can have Quake servers that
start when QHost starts and/or schedule them to be started and/or
stopped at a given time.  I had to make QHost wait a few seconds before
launching the servers when QHost first starts, so be patient.  It should
take about 30 seconds between the time QHost starts and when QHost
launches the auto-startable servers (if any).

***** IMPORTANT FOR QHOST ADMINS: READ THIS ENTIRE PARAGRAPH!!! ******
Changed QHost and QView to allow launching other exe's (e.g. qwsrv.exe).
The change now forces the admin to type the exe name on the command
line before the other parameters.  So, where as before you could enter
a command line like '+noexit +teamplay 2', now you will have to enter
'winded +noexit +teamplay2' or 'qwsrv +noexit' etc.  This change also 
means you will have to run QHostCon and change the path that points to 
your winded.exe to just point to your quake directory (e.g. change 
c:\quake\winded.exe to c:\quake).

Added server information and diagnostics to QView/QHost.  QHost reports
CPU and memory usage, along with OS version information.  To get the 
CPU usage to work in Win95, the QHost machine must be running System
Monitor.



QView 2.2
---------
Note: Changes for 2.2 only apply to those using QHost.  If you're not
a Quake server admin, you probably don't need to upgrade to QView 2.2.

Fixed a major hole in QHost security.  Upgrade to QHost 1.2 if you're 
  using QHost 1.1 or 1.0.  I mainly needed to get out a version that 
  fixed the security problem before my vaction for the rest of the week.
  I'll be back December 1.
Majorly overhauled the main admin dialog.  Check it out to see what I 
  mean.
You can set the scheduling options on the main QHost dialog, and you 
  can even send the options to QHost, but QHost doesn't yet do anything
  with these settings.  I ran out of time to get the scheduling 
  functionality into QHost before my vacation.  


QView 2.1
---------
Added server filters in the General Options dialog.
Added QHost support for multiple Quake server ports on the
  same server.  QView also now reports (via QHost) the
  last time each QHost Quake server was started/stopped and
  by whom.
Made it possible to cancel out of a long group rebuild (like
  when a URL is not responding or is slow).
The servers in a group are saved (and reloaded) in the same
  order they last appeared in the tree.
After inserting a server, the server is highlighted as the
  current server.
Made the QHost console a fixed-width font so characters are
  lined up like on a real DOS prompt.
Made the maximum number of server retries and the communication
  timeout configurable.
Made prompting for deleting groups, servers, and kicking players
  configurable.
Made auto-loading the last used .qvw file an option.
QView 2.0 would sometimes kick the wrong player if a server
  hadn't been refreshed for a while.  QView no longer kicks
  by number, so this shouldn't be a problem anymore.  QView
  kicks by names, and this seems to work even for player names
  with multi-colored characters.


QView 2.0
---------
QHost integration, including logging on/logging off from a remote
  QHost agent, starting/stopping a Quake server, viewing the
  remote Quake console, sending commands to the remote Quake
  console, and removing players from the remote Quake server.
QHost Quake server console was made to act like the real Quake 
  console, except with added doskey-like functionality (use the 
  arrow keys to get to a previous command, or type part of a 
  command and press F8 to cycle through previous commands that 
  what you've currently entered).
QHost toolbar added.
Right-clicking is now enabled.
Attempted to make the whole Rebuild vs. Refresh thing more clear.
  Changed the Group Attributes dialog to facilitate this.  Also
  made it so when a server is inserted into the tree, the IP
  address is added to the Group rebuild sources.
Toolbar postions are remembered when launching QView.
QView will automatically open the .qvw file used when QView last
  ran.
Double-clicking an item in the list view on the right will force
  a refresh.
Changing the name of a group is immediately reflected in the tree
  view.  You can also edit the group name directly on the tree
  view, like in the Windows Explorer.
Fixed some crashing problems related to opening a different .qvw
  file during a refresh of the current group.  Also fixed crash
  related to deleting servers that were waiting to be refreshed.
Completely remade this readme file.

QView 1.1
---------
Gave ability to refresh every so many seconds.  This number is 
  controlled from the Options dialog.  Set to 0 if you want QView 
  to refresh as fast as possible.
Added ability to delete groups, made deleting servers easier.
Added ability to watch servers on any IP port.  QView doesn't 
  display these ports by default.
Added buttons for inserting groups and servers and for deleting
  the current item.
Made QView launchable from a .qvw file in the Win95 Explorer. 
  (.qvw is the QView file type). This also means you can make a 
  shortcut on your desktop to a .qvw of your favorite servers.
  To register .qvw with Windows, choose Help | Register the .qvw 
  type with Windows.


QView 1.02
----------
Made retrieving player information much faster.
Prevent same server from being added more than once to a single 
  server group.
Fixed bug where search strings were not being saved.


QView 1.01
----------
Better stopping of servers/groups being refreshed.
QView now can search for servers and/or players by name.
QView now retrieves rules for servers if so desired.
Any right pane view in QView can be sorted by any column.
Window sizes and column sizes are restored upon launching QView.
Description bars added above left and right views (can be disabled).
General efficiency improved.


