/----------------------------------------------------------------------------\
|                                                                            |
|  MeTAproxy v0.2 by Sbj (sbj@mit.edu: James W. Clark)              5/23/97  |
|                                                                            |
|  Miscellaneous linux quake proxy                                           |
|                                                                            |
|                                                                            |
|       THIS IS A PRELIMINARY RELEASE, THERE ARE SOME BUGS IN IT             |
|                also: the source is not freely available                    |
|                                                                            |
\----------------------------------------------------------------------------/

This was mainly an experiment in UDP proxying, and turned out to be somewhat
neat.  It's a proxy that has the following features:
  * Multiple quake clients can watch a single player in any net game.
  * Player can see tracking information as he aims, which tells him where the
    nearest enemy (or the enemy flag carrier) is.  Tracking can also be done
    aurally, with little pings that get faster as you get neare the prey.
  * Two clients can control seperate aspects of the player's gameplay:
     - motion control: client affects the players movement and jumping
     - attack control: client affects the players aim, firing, and impulses

-------------- COMMAND LINE ARGUMENTS

  The executable is called quux.  Why not.  So you do quux -blah, where blah
  is one of:

  -port <portnum>
  
    This tells the MeTAproxy to wait on the specified port INSTEAD of 26000.

  -one

    This sets the proxy in a special mode -- a good mode for people who aren't
    really running the proxy for the motion/attack control aspects and whatnot.
    Here's how it works:  the first client to connect is the assumed master.
    Proxy changes its name to that guy, and only he can issue most proxy
    commands.  Control is given to him and cannot be released.  Other clients
    can connect and observe, but they cannot take control.  Its good for when
    you want to just use the tracking feature.

  -ctf
  
    This causes the proxy to watch for server messages like
    "Foo GOT the BLUE flag!\n" and stuff.  It keeps track of who is in possession
    of the flags, and you can then track the enemy flag carrier.  Really handy
    for when he/she is hiding somewhere.

  -debug -status -dump -parse

    The other arguments are just for debugging so they're probably not too useful
    unless you're me.

------------- IN THE GAME

  Here are the impulses that bring up the menu.

Impulses:
  128 - left
  129 - up
  130 - down
  131 - right

  There are three display modes.
    (A) Tracking/Nothing
    (B) Control menu
    (C) Client list
  
  It's not to hard to figure out when you're there.

-------------- MOTION CONTROL

  If you have motion control and you choose it, it releases motion control.  If
  no one has motion control, the bot moves in circles.
  You cannot take motion control unless no one currently has it.

-------------- ATTACK CONTROL

  works the same as motion control

  If you don't have attack control, then the weapon model is not drawn (of
  course if you're not in fov 90 then it isn't drawn anyway)

-------------- TRACKING

  tracks either:
    * Nobody - if tracking is off, no tracking info is displayed
    * Nearest player - self-explanatory
    * Nearest enemy - by pants color
    * Specific players - selectable by hitting left/right on the Tracking:
      part of the menu

  You must be in the normal (menu-less) display mode to see the tracking
  information.  It looks like:

         foo
          4
       <<--(34)
       up (3)

  Where foo is the player's name, 4 is the distance, 34 is the angle to the
  left which you must turn to center yourself on him, and 3 is the angle
  upwards.


-------------- PROXY COMMANDS

  You can send the proxy some limited commands by saying "!command"
  For instance:

     ]say !disconnect       - causes the proxy to disconnect from the server
     ]say !color 12 13      - changes the proxy player's color
     ]say !name foo         - changes the proxy's name to MeTA(foo)
     ]say !connect <srvr>   - when not connected, connects to a server
     ]say !shutdown         - disconnects, closes all client connections,
                              and quits the proxy.  Same as pressing ^C at
                              the proxy's terminal.



ps:

This program is the intellectual property of James W. Clark
It may be distributed only unmodified and only if this README
file is included.