r236 - in trunk: . doc rott

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Thu Jun 19 12:05:01 EDT 2008


Author: fabian
Date: 2008-06-19 12:04:44 -0400 (Thu, 19 Jun 2008)
New Revision: 236

Added:
   trunk/doc/
   trunk/doc/13todo.txt
   trunk/doc/cheats.txt
   trunk/doc/cmdline.txt
   trunk/doc/hacker.txt
   trunk/doc/readme.txt
   trunk/doc/rott.6
   trunk/doc/wad.txt
Removed:
   trunk/readme.txt
   trunk/rott/13todo.txt
   trunk/rott/cheats.txt
   trunk/rott/cmdline.txt
   trunk/rott/hacker.txt
   trunk/rott/rott.6
   trunk/rott/wad.txt
Log:
Moved documentation into a dedicated doc/ directory.


Copied: trunk/doc/13todo.txt (from rev 234, trunk/rott/13todo.txt)
===================================================================
--- trunk/doc/13todo.txt	                        (rev 0)
+++ trunk/doc/13todo.txt	2008-06-19 16:04:44 UTC (rev 236)
@@ -0,0 +1,35 @@
+( ) NME does not always exit level upon killing him
+( ) Game locks when firing Darkstaff or Dog Mode at El Oscuro
+( ) Network server locks up when exiting net game
+( ) Stand( )alone server doesn't work consistently
+( ) Break out with error message if ROTT is run with no sound.rot
+( ) Quickload question should have (Y/N) on end
+( ) Phone number length needs to be lengthed.
+( ) Network packets need checksum word added to their packets
+( ) VR gear new mouse sub functions
+( ) Dog mode still locks up as well as some bat blast stuff
+( ) Fix Live Remote Ridicule
+( ) Wall can push you into platform so you fall down inside of it and be
+    stuck.
+( ) Hanging at menu after a few network/modem games
+( ) Hanging at warp menu prompt
+( ) Warp Menu: chose level, screen went black, some how still in level select
+( ) Unexpect Interrupt
+( ) Generat random levels and battle levels.  Choose alternate both.
+    New game End Game New Game Kaboom
+( ) Make snake heads hurt to touch (fixes snake trapping you)
+( ) Fix missiles not hitting enemy when standing face to face
+( ) lockup on snake with one head left
+( ) gamepad enabled before joystick enabled
+( ) bark blast under dog walls and stuff
+( ) config files saved in alternat RTS directory
+( ) people complaining about reconfiging joystick each time
+( ) Panic mapping over modem glass in 8 megs not in 4 megs
+( ) Voice credit for OverPatrol (CHuck) Lightning guard (william)
+
+MAP Stuff
+( ) level 1( )3 in random powerup crossroads room, two different wall types
+( ) Krist, if led outside of room, goes up disks, but can't go down them.
+  So he winds up running around sky.  Fix map to lock door so Krist cannot
+  come out...
+

Copied: trunk/doc/cheats.txt (from rev 234, trunk/rott/cheats.txt)
===================================================================
--- trunk/doc/cheats.txt	                        (rev 0)
+++ trunk/doc/cheats.txt	2008-06-19 16:04:44 UTC (rev 236)
@@ -0,0 +1,106 @@
+  DISPSTICK                // enable cheats
+  \ECC                     // enable cheats
+  SLACKER                  // three keys, more health
+  \BUM                     // three keys, more health
+  CHOJIN                   // normal god mode
+  \WWW                     // normal god mode
+  GOTO                     // warp
+  \GTL                     // warp
+  SIXTOYS                  // all keys, armor, 100% health
+  \GAI                     // all keys, armor, 100% health
+  TOOSAD                   // god mode powerup
+  \GOD                     // god mode powerup
+
+  // Register only
+  WOOF                     // dog mode powerup
+  \DOG                     // dog mode powerup
+  // end
+
+  FLYBOY                   // mercury mode powerup
+  \MER                     // mercury mode powerup
+  BADTRIP                  // shrooms mode powerup
+  \SHR                     // shrooms mode powerup
+  BOING                    // elasto mode powerup
+  \ELA                     // elasto mode powerup
+  GOOBERS                  // warp to level 1, start with pistol
+  \GOO                     // warp to level 1, start with pistol
+  WHACK                    // hurt player 10%
+  \OOF                     // hurt player 10%
+  SPEED                    // run fast all the time
+  \RFA                     // run fast all the time
+  PANIC                    // back to normal
+  \PAN                     // back to normal
+  DIMON                    // light diminishing on
+  \DON                     // light diminishing on
+  DIMOFF                   // light diminishing off
+  \DOF                     // light diminishing off
+  LONDON                   // fog on (0x00 - 0x80 minmax)
+  \FON                     // fog on (0x00 - 0x80 minmax)
+  NODNOL                   // fog off (0x80 - 0xFF minmax)
+  \FOF                     // fog off (0x80 - 0xFF minmax)
+  GOGATES                  // blow out of game
+  \L8R                     // blow out of game
+  GOARCH                   // end the current level
+  \ECL                     // end the current level
+  GOTA386                  // floor and ceiling off
+  \CON                     // floor and ceiling off
+  GOTA486                  // floor and ceiling on
+  \COF                     // floor and ceiling on
+  SHOOTME                  // bullet proof armor
+  \BAR                     // bullet proof armor
+  BURNME                   // fire proof armor
+  \FAR                     // fire proof armor
+  LUNGDUNG                 // gas mask
+  \GAR                     // gas mask
+  HUNTPACK                 // all keys, armor, 100% health, MP40,
+  \OFP                     // all keys, armor, 100% health, MP40,
+  86ME                     // kill player
+  \DIE                     // kill player
+  NEER                     // re-enter level
+  \REL                     // re-enter level
+  JOHNWOO                  // give double pistol
+  \GW2                     // give double pistol
+  PLUGME                   // give mp40
+  \GW3                     // give mp40
+  VANILLA                  // give bazooka
+  \GW4                     // give bazooka
+  HOTTIMES                 // give heatseeker
+  \GW5                     // give heatseeker
+  BOOZE                    // give drunk missile
+  \GW6                     // give drunk missile
+  FIREBOMB                 // give firebomb
+  \GW7                     // give firebomb
+  BONES                    // give firewall
+  \GW8                     // give firewall
+  SEEYA                    // give god hand
+  \GW9                     // give god hand
+
+  // Register Only
+  SPLIT                    // give split missile
+  \GWA                     // give split missile
+  KESOFDEATH               // give kes
+  \GWB                     // give kes
+  HOMERUN                  // give bat
+  \GWC                     // give bat
+  CUJO                     // give dog weapon
+  \GWD                     // give dog weapon
+  // end
+
+  RIDE                     // give MISSILE CAM
+  \CAM                     // give Missile Cam
+  WHERE                    // turn where am i on/off
+  \HUD                     // give hud
+  \FUN                     // Rotation fun
+  RECORD                   // Demo RECORD
+  STOP                     // Demo stop recording
+  PLAY                     // Demo Playback
+  \EKG                     // Engine Killing Gibs
+  MAESTRO                  // JukeBox
+  \LEE                     // JukeBox
+  CARTIER                  // Map Cheat
+  \MAP                     // Map Cheat
+  \YOU                     // Secret Message
+  HAVE                     // Secret Message
+  \NO                      // Secret Message
+  LIFE                     // Secret Message
+

Copied: trunk/doc/cmdline.txt (from rev 234, trunk/rott/cmdline.txt)
===================================================================
--- trunk/doc/cmdline.txt	                        (rev 0)
+++ trunk/doc/cmdline.txt	2008-06-19 16:04:44 UTC (rev 236)
@@ -0,0 +1,75 @@
+
+ROTT.EXE
+========
+
+NOWAIT       go to menu, skip intro
+NOSOUND      no music no sound
+NOW          go immediately into game default difficulty default level 1
+DOPEFISH     Scott Head intro, random sounds in credits, burping while
+             caching, silly strings, eluder/deluder as scott's head,
+             silly death cam, silly menu sounds
+
+MAPSTATS     Print out map statistics to MAPDEBUG.TXT
+TILESTATS    Print out tile statistics to MAPDEBUG.TXT
+VER          Rott version number
+PAUSE        Pause after printing startup info
+SOUNDSETUP   Launch sound Setup WARP [level] Launch to any level (1 based)
+LEVELSIZE    compute memory needed for level
+SLOWDEATH    slow down death rotation
+QUIET        get rid of all start up text except for errors
+FILE
+FILE1        add external wads for graphic replacement
+FILE2
+NOJOYS       disable joystick test
+NOMOUSE      disable mouse test
+SPACEBALL    enable spaceball avenger
+CYBERMAN     enable cyberman
+ASSASSIN     enable wingman assassin
+NOECHO       turn off reverb effect
+DEMOEXIT     exit the game when demo is interrupted
+TIMELIMIT    play for a certain amount of time in seconds
+             once time is gone game ends (unlimited lives)
+             get more time by killing guards and picking up ankhs
+             must use MAXTIMELIMIT as well
+MAXTIMELIMIT the max time to count down from so if you keep killing
+             guards you cannot get an infinite amount of time
+             must use TIMELIMIT as well
+ENABLEVR     enable Virtual Reality support for HMD's (Head mounted disp)
+WARP         warp to a specific level 1 based level 1 is 1
+NET          Used by ROTTSER and ROTTIPX
+IS8250       Used by ROTTSER whether you have an 8250 or not
+TEDLEVEL     Ted stuff
+(DEV ONLY) MONO         enable mono-monitor support (Development only)
+(DEV ONLY) TRANSPORT    Warp to any x,y,angle in level (Development only)
+(DEV ONLY) SCREENSHOTS  get rid of screen title stuff (Development only)
+
+
+ROTTSER.EXE
+========
+
+VECTOR       interrupt vector with which to communicate with ROTT
+ANSWER       answer mode
+DIAL         dial mode
+PAUSE        pause before launching
+STATS        print out run time stats after ROTT returns
+PLAYER       0 - makes you the master
+             1 - makes you not the master
+             must be used on both systems with different values, to work
+             properly
+
+
+ROTTIPX.EXE
+========
+
+VECTOR       interrupt vector with which to communicate with ROTT
+PAUSE        pause before launching
+NODES        number of players in game
+SOCKET       network socket to use
+SERVER       specify this computer to be a server
+STANDALONE   specify this server to be standalone
+             else client on top of server
+MASTER       used by client to make yourself the master
+REMOTERIDICULE turn on remote ridicule support
+
+
+

Copied: trunk/doc/hacker.txt (from rev 234, trunk/rott/hacker.txt)
===================================================================
--- trunk/doc/hacker.txt	                        (rev 0)
+++ trunk/doc/hacker.txt	2008-06-19 16:04:44 UTC (rev 236)
@@ -0,0 +1,508 @@
+
+                              Rise of the Triad
+
+                                 Version 1.1
+
+                                 Hacker Info
+
+RTL & RTC File format:
+----------------------
+
+Rise of the Triad (ROTT) uses two file extensions for levels data, RTL
+and RTC.  RTC indicates that the file is for Comm-bat (multiplayer) play
+only and does not contain any enemies or exits.  RTL indicates the file
+can can be used for both Comm-bat and standard game levels.  In Comm-bat,
+the enemies in RTL maps in standard play are not present during Comm-bat
+games and the exit and entrance arches behave like teleporters.  Other than
+these differences, the two files are alike.
+
+The RTL/RTC file format changed with the release of ROTT version 1.1.
+Since the shareware version of ROTT cannot use alternate levels, this
+should not be a problem for map designers.  The new format is much more
+formal.  If any changes are made in the format in the future,  the first 8
+bytes of the file will inform you if it is compatible with your editor/viewer.
+
+The RTL/RTC file is broken into three sections:  Version info, Header block,
+and Data block.
+
+
+                            RTL/RTC version info
+
+This 8 byte block of data indicates what type of file it is and which
+version of the RTL/RTC file format it is.
+
+  Offset   Size    Description
+-------------------------------------------------------------
+    0        4     Format signature
+    4        4     Version number
+
+Format signature :
+
+This is used to indicate what type of levels are contained within the
+file.  This is a null-terminated string containing either "RTL" or "RTC".
+
+Version number :
+
+0101h for version 1.1.  If this value is higher, it indicates that the file
+format has changed.  This is NOT the ROTT version.
+
+
+                            RTL/RTC Header block
+
+The header block contains an array of 100 structures with the following
+format:
+
+  Offset   Size    Explanation
+-------------------------------------------------------------
+    0        4     Used flag
+    4        4     CRC
+    8        4     RLEWtag
+   12        4     MapSpecials
+   12        4     Offset in file of Wall plane
+   16        4     Offset in file of Sprite plane
+   20        4     Offset in file of Info plane
+   24        4     Length of Wall plane
+   28        4     Length of Sprite plane
+   32        4     Length of Info plane
+   36       24     Name of level
+
+
+Used flag :
+
+This is non-zero if a map exists at this position.
+
+CRC :
+
+This value is used to determine if all the players in a multiplayer game
+are using the same maps.  You can use any method you like to calculate this
+value.
+
+RLEWtag :
+
+This is the run-length encoding tag used for compressing and decompressing
+the map data.  The use of this will be described below.
+
+MapSpecials :
+
+This is used for flags that describe special conditions for the level.
+Currently only one flag is used.  If Bit 0 is set, then all the pushwalls
+will be activated in Comm-bat mode.  This is done in case there are player
+start locations within hidden areas and the player would be trapped until
+a pushwall was activated.
+
+Offsets :
+
+The Wall, Sprite, and Info plane offsets are each absolute offsets of the
+data from the beginning of the file.
+
+Lengths :
+
+The Wall, Sprite, and Info plane lengths are each lengths of the
+uncompressed data.
+
+Name of level :
+
+This is a null-terminated string containing the name of the level.
+Although there is 24 bytes available, level names should be at most 22
+bytes long.
+
+                             RTL/RTC Data block
+
+When expanded, ROTT maps contain 3 planes of 128 by 128 word sized data.
+They are stored in the RTL/RTC files as 3 blocks of run-length encoded
+data.  The procedure for decompressing them is as follows:
+
+    1) Allocate 128 * 128 words of memory (32768 bytes)
+    2) Read one word from compressed block
+    3) If word is equal to RLEWTag, then the next two words are a compressed
+       run of data.  The first word is the number of words to write.
+       The second word is the value to write map.
+       If word was not equal to RLEWTag, then simply write that word
+       to the map.
+    4) Go back to 2 until all data is written.
+
+Here's an example of the procedure in C.
+
+
+/*---------------------------------------------------------------------
+   Function: RLEW_Expand
+
+   Run-length encoded word decompression.
+---------------------------------------------------------------------*/
+
+void RLEW_Expand
+   (
+   unsigned short *source,
+   unsigned short *dest,
+   long length,
+   unsigned short rlewtag
+   )
+
+   {
+   unsigned short value;
+   unsigned short count;
+   unsigned short *end;
+
+   end = dest + length;
+
+   while( dest < end );
+      {
+      value = *source;
+      source++;
+
+      if ( value != rlewtag )
+         {
+         //
+         // uncompressed data
+         //
+         *dest = value;
+         dest++;
+         }
+      else
+         {
+         //
+         // compressed string
+         //
+         count = *source;
+         source++;
+
+         value = *source;
+         source++;
+
+         //
+         // expand the data
+         //
+         while( count > 0 )
+            {
+            *dest = value;
+            dest++;
+            count--;
+            }
+         }
+      }
+   }
+
+
+Here is sample code for loading a ROTT map.
+
+
+#include <stdlib.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <io.h>
+
+/*---------------------------------------------------------------------
+   Map constants
+---------------------------------------------------------------------*/
+
+#define MAXLEVELNAMELENGTH           23
+#define ALLOCATEDLEVELNAMELENGTH     24
+#define NUMPLANES                    3
+#define NUMHEADEROFFSETS             100
+#define MAPWIDTH                     128
+#define MAPHEIGHT                    128
+#define MAP_SPECIAL_TOGGLE_PUSHWALLS 0x0001
+
+#define WALL_PLANE    0
+#define SPRITE_PLANE  1
+#define INFO_PLANE    2
+
+/*---------------------------------------------------------------------
+   Type definitions
+---------------------------------------------------------------------*/
+
+typedef struct
+   {
+   unsigned long used;
+   unsigned long CRC;
+   unsigned long RLEWtag;
+   unsigned long MapSpecials;
+   unsigned long planestart[ NUMPLANES ];
+   unsigned long planelength[ NUMPLANES ];
+   char          Name[ ALLOCATEDLEVELNAMELENGTH ];
+   } RTLMAP;
+
+
+/*---------------------------------------------------------------------
+   Global variables
+---------------------------------------------------------------------*/
+
+unsigned short *mapplanes[ NUMPLANES ];
+
+
+/*---------------------------------------------------------------------
+   Macros
+---------------------------------------------------------------------*/
+
+#define MAPSPOT( x, y, plane ) \
+   ( mapplanes[ plane ][ MAPWIDTH * ( y ) + ( x ) ] )
+
+#define WALL_AT( x, y )   ( MAPSPOT( ( x ), ( y ), WALL_PLANE ) )
+#define SPRITE_AT( x, y ) ( MAPSPOT( ( x ), ( y ), SPRITE_PLANE ) )
+#define INFO_AT( x, y )   ( MAPSPOT( ( x ), ( y ), INFO_PLANE ) )
+
+
+/*---------------------------------------------------------------------
+   Function: ReadROTTMap
+
+   Read a map from a RTL/RTC file.
+---------------------------------------------------------------------*/
+
+void ReadROTTMap
+   (
+   char *filename,
+   int mapnum
+   )
+
+   {
+   char            RTLSignature[ 4 ];
+   unsigned long   RTLVersion;
+   RTLMAP          RTLMap;
+   int             filehandle;
+   long            pos;
+   long            compressed;
+   long            expanded;
+   int             plane;
+   unsigned short *buffer;
+
+   filehandle = open( filename, O_RDONLY | O_BINARY );
+
+   //
+   // Load RTL signature
+   //
+   read( filehandle, RTLSignature, sizeof( RTLSignature ) );
+
+   //
+   // Read the version number
+   //
+   read( filehandle, &RTLVersion, sizeof( RTLVersion ) );
+
+   //
+   // Load map header
+   //
+   lseek( filehandle, mapnum * sizeof( RTLMap ), SEEK_CUR );
+   read( filehandle, &RTLMap, sizeof( RTLMap ) );
+
+   if ( !RTLMap.used )
+      {
+      //
+      // Exit on error
+      //
+      printf( "ReadROTTMap: Tried to load a non existent map!" );
+      exit( 1 );
+      }
+
+   //
+   // load the planes in
+   //
+   expanded = MAPWIDTH * MAPHEIGHT * 2;
+
+	for( plane = 0; plane <= 2; plane++ )
+      {
+      pos        = RTLMap.planestart[ plane ];
+      compressed = RTLMap.planelength[ plane ];
+      buffer     = malloc( compressed );
+
+      lseek( filehandle, pos, SEEK_SET );
+      read( filehandle, buffer, compressed );
+
+      mapplanes[ plane ] = malloc( expanded );
+
+      RLEW_Expand( buffer, mapplanes[ plane ], expanded >> 1, RTLMap.RLEWtag );
+
+      free( buffer );
+      }
+
+   close( filehandle );
+   }
+
+
+MAP WEIRDNESS
+-------------
+You can pretty much figure out most of the map data easily, but there are
+a few things in the map which are a little oddly set up.  Here's a few
+helpful items.
+
+
+THE UPPER CORNER
+The first row of a map contains vital information to setting up a map.
+
+In the first plane (WALLS) are these values:
+
+0,0   FLOOR # (0xB4 through 0xC3, though we might cut some)
+1,0   CEILING # (0xC6 through 0xD5, or skies: 0xEA to 0xEE)
+2,0   BRIGHTNESS LEVEL (0xD8 to 0xDF, from dark to light)
+3,0   RATE AT WHICH LIGHT FADES OUT WITH DISTANCE
+        (0xFC to 0x010B, fast to slow)
+
+In the second plane (SPRITES) are these:
+
+0,0   Height of level
+	(1-8 ranges from 0x5A to 0x61, 9-16 is from 0x01C2 to 0x01C9)
+1,0   Height that sky is at relative to level (with same 1-16 arrangement)
+        (not needed for level with a ceiling)
+2,0   Icon for NO FOG (0x68) or FOG (0x69)
+3,0   Light sourcing icon (0x8B: if present, lights illuminate walls)
+
+Optional items in the upper corner are:
+
+Second Plane
+	Lightning icon (0x0179)
+	Timer icon (0x79: third plane points 0xXXYY to X,Y location of
+	  timed thing--time in minutes/seconds there is MMSS in decimal
+	  digits, so 0130 is 1 minute thirty seconds--and to one side of
+	  that timed thing is the end time in the same format. This, for
+	  instance, would say when to shut the door that opened at the
+	  start time)
+
+Third Plane (INFO)
+	Song number: 0xBAnn, where nn is song number.  If not present,
+	 the game will choose song 0.  If greater than the number of
+	 level songs (18 in shareware), the game will blow out.
+
+
+DISKS
+Gravitational Anomaly Disks (GADS) are set up with a GAD icon in the
+second plane and a height in the third plane.  The actual graphic has a
+disk in the top quarter, so to put one on the floor, you sort of have to
+put the object IN the floor, so the disk will be at the right height.
+Heights for objects start with 0xB0 and have that last byte as a
+tiles-off-the-floor nybble and sixteenths-of-a-tile fraction.
+
+So 0xB000 is, for normal sprites, resting on the floor.
+
+For disks, that would be a disk you could stand on to be one story
+(eight feet) in the air. The heights of disks usually go by sixes (that's
+the maximum they can be apart and you can still climb them like stairs) or
+fours (for a more gradual ascension).  Here are three sets of height
+values.  The values of 0xB0F1-$B0FE are into the floor, and $B0F6 is right
+about floor height.
+
+by 6     by 4     by 2
+B0F6     B0F6     B0F6
+B0FC     B0FA     B0F8
+B002     B0FE     B0FA
+B008     B002     B0FC
+B00E     B006     B0FE
+B014     B00A     B010
+B01A     B00E     B012
+B020     B012     B014
+B026     B016     ...
+B02C     B01A
+B032     B01E
+B038     B022
+B03E     B026
+B044     B02A
+B04A     B02E
+B050     B032
+B056     B036
+B05C     B03A
+B062     B03E
+B068     B042
+B06E     B046
+B074     B04A
+B07A     B04E
+
+If you need higher ones, calculate them yourself, man.
+
+
+SWITCHES AND TOUCHPLATES
+
+Everything activated by a switch or touchplates points to the switch or
+touchplate that activates it, with the standard 0xXXYY format.  This way
+tons of things can be activated by one switch.  To make a door open with
+multiple switches/touchplates, make it a few tiles wide and have different
+parts of the door point to the different switches.
+
+LOCKED DOORS
+Locked doors are normal doors with a key sprite icon placed on them.
+
+
+============================================================================
+
+The ROTT WAD Format
+-------------------
+
+        Most of you out there are probably very familiar with the WAD file
+format developed by Id Software.  We borrowed the format with their
+consent and use it for all the data in Rise of the Triad.
+
+        The WAD structure itself is identical to that of other WAD's,
+where the WAD header is as follows:
+
+typedef struct
+{
+	char	identification[4];
+	long	numlumps;
+	long	infotableofs;
+} wadinfo_t;
+
+and the WAD directory is made up of [numlumps] of:
+
+typedef struct
+{
+	long		filepos;
+	long		size;
+	char		name[8];
+} lumpinfo_t;
+
+
+ROTT Specific Data
+------------------
+
+WALLS - Walls are stored in the WAD between the two labels "WALLSTRT" and
+"WALLSTOP".  The format of each wall is a 4,096 block of data with no
+header.  The bitmaps are grabbed in vertical posts so that drawing in
+modex is more straight format.  All walls must be 64 x 64. The walls must
+be the first few lumps in the WAD.
+
+MASKED OBJECTS - Masked objects in the wad comprise all actors and
+sprites.  They can be found as weapons, objects, actors etc.  They use the
+following headers and structures:
+
+typedef struct
+{
+   short          origsize;         // the orig size of "grabbed" gfx
+   short          width;            // bounding box size
+   short          height;
+   short          leftoffset;       // pixels to the left of origin
+   short          topoffset;        // pixels above the origin
+   unsigned short collumnofs[320];  // only [width] used, the [0] is &collumnofs[width]
+} patch_t;
+
+These are extremely similar to the patches used in another game, except
+for the addition of the origsize parameter.
+
+typedef struct
+{
+   short origsize;         // the orig size of "grabbed" gfx
+   short width;            // bounding box size
+   short height;
+   short leftoffset;       // pixels to the left of origin
+   short topoffset;        // pixels above the origin
+   short translevel;
+   short collumnofs[320];  // only [width] used, the [0] is &collumnofs[width]
+} transpatch_t;
+
+Certain objects in the game like masked walls and touch plates will use
+the second type of patch which acts like a translucent patch.
+
+SKYS, FLOORS and CEILINGS - Skys are larger than the screen and are made
+up of two 256X200 grabs in posts similar to the walls.  The first grab
+represents the bottom part of the sky and the second part the top of the
+sky.  The skys are denoted by the labels SKYSTRT and SKYSTOP.  Floors and
+ceilings use the following structure:
+
+typedef struct
+{
+   short     width,height;
+   short     orgx,orgy;
+   byte     data;
+} lpic_t;
+
+They can be found between the labels UPDNSTRT and UPDNSTOP.
+
+
+Okay, enough hints!  Have fun figuring stuff out.
+
+--THE DEVELOPERS OF INCREDIBLE POWER

Copied: trunk/doc/readme.txt (from rev 234, trunk/readme.txt)
===================================================================
--- trunk/doc/readme.txt	                        (rev 0)
+++ trunk/doc/readme.txt	2008-06-19 16:04:44 UTC (rev 236)
@@ -0,0 +1,86 @@
+Rise of the Triad (v1.3 CD Version) Source Code Release - December 20, 2002.
+(If you can't read this right in your editor, turn on word wrap)
+
+Please note that this is being released without any kind of support from Apogee Software, Ltd / 3D Realms Entertainment.  We cannot and will not help in getting this running.  We do not guarantee that you will be able to get it to work, nor do we guarantee that it won't blow up your computer if you do try and use it.  Caveat Emptor - Use at your own risk.  Having said that, this source code release was compiled on December 7, 2002 using the materials in this archive.  Here's a note from one of the original ROTT programmers (Jim Dose) as to what will be needed to get this compiled:
+
+------
+
+You will need Watcom C v10.0b, which is what was used to compile the game originally.  This source code release was tested with that version.  Other versions are not guaranteed to work.  Later versions such as v11.0 are known to most likely not work because of changes in the way data types are handled.
+
+You also need Borland's Turbo Assembler (TASM), but it is not required to build the full game if you use the .obj files that are already included.  To do a full rebuild of the C code without having TASM, delete all the .obj files except for the following files:
+
+F_SCALE.OBJ
+RT_DR_A.OBJ
+RT_FC_A.OBJ
+RT_SC_A.OBJ
+RT_VH_A.OBJ
+
+To compile ROTT, type "wmake all".  To compile the audio library, run "wmake.bat".
+
+(You'll also need a registered CD version of Rise of the Triad, too.)
+
+-----
+
+Please note that while we are releasing the source code to Rise of the Triad, the game itself has not been released in the same manner (in other words, Rise of the Triad is still commercial software).  You can still buy the game from us by visiting http://www.3drealms.com.
+
+Thanks to all the fans who have hung in there and waited for us to do something like this, we hope you enjoy it.  If you produce something cool with this source code, drop us a line at rott at 3drealms.com.   In honor of the source code release, we contacted Tom Hall to reminicse a bit about the game, and we have some history from Scott Miller, President of Apogee. Their thoughts are below.
+
+Furthermore, the release of the Rise of the Triad source code is dedicated to our late friend and cohort, William Scarboro.  William was one of the original Rise of the Triad programmers, and he unfortunately died of an asthma attack on August 9, 2002.
+
+William was born March 2, 1971 in El Paso, TX. He was a graduate of Texas A&M with a degree in Computer Science. He came to work here back in 1993, and was the first programmer we hired back then when we started doing in house development. He was mainly known for his work on Rise of the Triad where he worked on actor code, weapon stuff, and the gibs. In fact, William was directly responsible for the /EKG gib cheat in ROTT.
+
+Joe Siegler
+Apogee Software / 3D Realms
+Dec 20, 2002
+
+==============================================================================================
+
+RISE OF THE TRIAD: The Source Code Release
+A Note from Tom Hall
+
+It was 1992.  I had just worked through half of DOOM, a creative guy in a technologically-oriented company.  We parted ways and I left to start up "In-House Development" at Apogee (later 3D Realms). We started accruing a programmer here, and artist there. Soon we had a team.  I came in with a memo about something (like bonus dough for library functions or something), and at the end I said something like, "And once we complete all these, we will be... THE DEVELOPERS OF INCREDIBLE POWER!" The guys laughed and liked this a lot.  And thus we became the DIPs. :)
+
+With a game called ROTT, and a bunch of DIPs, you're heading for some derision. :) We had a fairly inexperienced crew: me, inexperienced at management; the rest of the guys, fairly new to the industry. It started as WOLFENSTEIN 3D, Part 2 -- a "transition project" my heart wasn't in, really.  It wasn't my idea to do it, but it was something to do. Once we parted ways with that idea and id's involvement, things got rewritten, changed, and we came up with s-Quake functionality crammed into a Wolfenstein Plus/sub-DOOM engine.  It was an example of pushing a technology to do what it really can't do well.  We had a fun engine, but one that looked ugly, especially in the masked platforms -- they were paper thin!  You could have had a fun game without doing what it couldn't do... but we were trying to beat the Joneses. And once we split ways with the id thing, I made three bad decisions: a) to keep the art we had already, b) to not redesign a new game and c) not to move over to the Build engine, where we could have had a Duke/DOOM level game going decently quickly.
+
+Ah well. Hindsight's 20/20.  I am too nice, I guess. Yet, ROTT, for all its tortured technology, all its semi-justified graphics, did have some stuff that there was to be proud of. It was the first game with Rocket Jumping, the first game with Jumppads, the first game with parental password and Violence level adjustment, the first game with Capture the Flag...  Plus, I believe, the record for the most cheat codes ever in a game!  And a Random Level creator!  And what about all those cool Deathmatch options! And speaking of Deathmatch, I recall William's wonderful Corpseyard deathmatch map, and his "totally heinous" insane Drunk Missiles!  Mr. Scarboro, you, and your tuna, egg, salsa, and Omega 3 fatty acid bowls of goo will be missed.  Wah-bgsht! To Mark, Jim, Nolan, Steve, Tim, Chuck, Susan, JoeSke, Big Joe, Marianna, Lee, Bobby, Robert and all, thanks for sharing a strange time with me, and so many crazy memories!  "Uh, guys... um...."  The Disturbathon.  "50 kills!" "Ooooooooooh...  Mmmmmmm..."  Going to that crazy Bazaar to digitize old weapons.  "Check out what I got the boulders to do now."  "Ass!" "Use the fish." "Bowooooooooo!"  "I'm lookin' for some hot buns..."
+
+And on and on... And thanks to Scott and George, for providing a place for us to be crazy together, and sticking with it even though it wasn't blockbuster stuff. I do owe you a debt in what was an odd, disorienting time for me. In the end, a couple hundred thousand folks seem to have enjoyed it, so there was something there that they liked. "See, Charlie Brown?  It wasn't such a bad tree after all."
+
+======
+
+A little history...
+by Scott Miller
+
+ROTT, as it quickly became known, marked a turning point for Apogee.  It was our first in-house game since I started the company in 1987 with my home grown Kroz games, the games that started the shareware revolution that resulted in the launch of three of the most successful independent PC developers, Epic, Id, and us -- all three still kicking after 12+ years (as of Dec. '02).  It's hard to believe we're among the oldest of all surviving independent PC developers in the world now.  Before ROTT, Apogee, as we were then known, solely worked with outside development teams, often funding and helping organize these teams, and helping guide their game designs using our experience.  But around 1993 it was evident that this method wasn't going to work out much longer because as games got larger and more complicated to make, team sizes had to grow, too.  So, in 1994 we started hiring developers to form our own internal team, with the first of those hires including William Scarboro, Nolan Martin, Mark Dochtermann, Jim Dosé, and the ever creative Tom Hall to run the show.
+
+As Tom notes above, ROTT was originally an Id-approved sequel to Wolfenstein 3-D, using the original Wolf engine.  The game was going to be called, Wolfenstein: Rise of the Triad, and explore what happened after Hitler's demise.  About 4-5 months into development, though, a surprise call from John Romero ended the project, and we were left with a lot of content specific to the Wolfenstein premise, which had to be rolled into a new game concept so that we didn't waste all that we'd done.  The result was a bit of a mish-mash, and as Tom says above, the project probably should've been restarted using our new Build engine, which our second internal team down the hall was using, making Duke Nukem 3D.
+
+ROTT ended up selling several hundred thousand copies and making enough money to keep Duke 3D funded.  But it was at this time that we knew we  had to make a radical company change to shift with the times, and so we created the 3D Realms label, and began phasing out Apogee, which we were leaving behind with the glory days of shareware, and the arcade-style games Apogee was best known for.
+
+We get a lot of requests to release the source code to many of the older Apogee games, but the problem is that Apogee does not own these games that were developed by external teams.
+
+This source release is a long time coming, and hopefully it's not the last time we're able to do this.
+
+Scott Miller, CEO / Founder
+
+======
+
+/*
+Copyright (C) 1994-1995 Apogee Software, Ltd.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+*/

Copied: trunk/doc/rott.6 (from rev 235, trunk/rott/rott.6)
===================================================================
--- trunk/doc/rott.6	                        (rev 0)
+++ trunk/doc/rott.6	2008-06-19 16:04:44 UTC (rev 236)
@@ -0,0 +1,90 @@
+.TH ROTT 6 "2008-04-23" "1.0" "Rise of the Triad"
+
+.SH NAME
+rott \- Rise of the Triad
+
+.SH SYNOPSIS
+.B rott
+.RI [ options ]
+
+.SH DESCRIPTION
+.B ROTT
+is a port of Apogee's 3D action title Rise of the Triad, originally released in 1994.
+This port duplicates the functionality of the original game on modern operating systems, including Linux, Win32, and Mac OS X.
+
+.SH OPTIONS
+.TP
+.BR aim
+Give aim crosshair.
+.TP
+.BR fullscreen
+Start in fullscreen mode.
+.TP
+.BR window
+Start in windowed mode.
+.TP
+.BR resolution\  \fIwidth\fPx\fIheight\fP
+Specify the screen resolution to use (next parameter is widthxheight).
+Valid resolutions are 320x200, 640x480 and 800x600.
+.TP
+.BR spaceball
+Enable check for Spaceball.
+.TP
+.BR nojoys
+Disable check for joystick.
+.TP
+.BR nomouse
+Disable check for mouse.
+.TP
+.BR cyberman
+Enable check for Cyberman.
+.TP
+.BR assassin
+Enable check for Wingman Assassin.
+.TP
+.BR ver
+Version number.
+.TP
+.BR mapstats
+Dump Map statistics to ERROR.
+.TP
+.BR tilestats
+Dump Tile statistics to ERROR.
+.TP
+.BR mono
+Enable mono-monitor support.
+.TP
+.BR screenshots
+Clean screen capture for shots.
+.TP
+.BR pause
+Pauses startup screen information.
+.TP
+.BR enablevr
+Enable VR helmet input devices.
+.TP
+.BR noecho
+Turn off sound reverb.
+.TP
+.BR demoexit
+Exit program when demo is terminated.
+.TP
+.BR warp\  \fIlevel\fP
+Warp to specific ROTT level (next paramater is level to start on).
+.TP
+.BR timelimit\  \fItime\fP
+Play ROTT in time limit mode (next paramater is time in seconds).
+.TP
+.BR maxtimelimit\  \fItime\fP
+Maximimum time to count down from (next paramater is time in seconds).
+.TP
+.BR dopefish
+?
+
+.SH AUTHORS
+ROTT was created and published as shareware by Apogee Software, Ltd. and was published commercially by FormGen, Inc.
+.PP
+The primary contributors to the icculus.org port are: Steven Fuller, Ryan C. Gordon, John Hall and Dan Olson.
+.PP
+This manual page was written by Fabian Greffrath <fabian at debian-unofficial.org>
+for the Debian project (but may be used by others).

Copied: trunk/doc/wad.txt (from rev 234, trunk/rott/wad.txt)
===================================================================
--- trunk/doc/wad.txt	                        (rev 0)
+++ trunk/doc/wad.txt	2008-06-19 16:04:44 UTC (rev 236)
@@ -0,0 +1,82 @@
+The ROTT WAD Format
+-------------------
+
+        Most of you out there are probably very familiar with the WAD file
+format developed by Id Software.  We borrowed the format with their
+consent and use it for all the data in Rise of the Triad.
+
+        The WAD structure itself is identical to that of other WAD's,
+where the WAD header is as follows:
+
+typedef struct
+{
+	char	identification[4];
+	long	numlumps;
+	long	infotableofs;
+} wadinfo_t;
+
+and the WAD directory is made up of [numlumps] of:
+
+typedef struct
+{
+	long		filepos;
+	long		size;
+	char		name[8];
+} lumpinfo_t;
+
+
+ROTT Specific Data
+------------------
+
+WALLS - Walls are stored in the WAD between the two labels "WALLSTRT" and
+"WALLSTOP".  The format of each wall is a 4,096 block of data with no
+header.  The bitmaps are grabbed in vertical posts so that drawing in
+modex is more straight format.  All walls must be 64 x 64. The walls must
+be the first few lumps in the WAD.
+
+MASKED OBJECTS - Masked objects in the wad comprise all actors and
+sprites.  They can be found as weapons, objects, actors etc.  They use the
+following headers and structures:
+
+typedef struct
+{
+   short          origsize;         // the orig size of "grabbed" gfx
+   short          width;            // bounding box size
+   short          height;
+   short          leftoffset;       // pixels to the left of origin
+   short          topoffset;        // pixels above the origin
+   unsigned short collumnofs[320];  // only [width] used, the [0] is &collumnofs[width]
+} patch_t;
+
+These are extremely similar to the patches used in another game, except
+for the addition of the origsize parameter.
+
+typedef struct
+{
+   short origsize;         // the orig size of "grabbed" gfx
+   short width;            // bounding box size
+   short height;
+   short leftoffset;       // pixels to the left of origin
+   short topoffset;        // pixels above the origin
+   short translevel;
+   short collumnofs[320];  // only [width] used, the [0] is &collumnofs[width]
+} transpatch_t;
+
+Certain objects in the game like masked walls and touch plates will use
+the second type of patch which acts like a translucent patch.
+
+SKYS, FLOORS and CEILINGS - Skys are larger than the screen and are made
+up of two 256X200 grabs in posts similar to the walls.  The first grab
+represents the bottom part of the sky and the second part the top of the
+sky.  The skys are denoted by the labels SKYSTRT and SKYSTOP.  Floors and
+ceilings use the following structure:
+
+typedef struct
+{
+   short     width,height;
+   short     orgx,orgy;
+   byte     data;
+} lpic_t;
+
+They can be found between the labels UPDNSTRT and UPDNSTOP.
+

Deleted: trunk/readme.txt
===================================================================
--- trunk/readme.txt	2008-06-19 06:16:13 UTC (rev 235)
+++ trunk/readme.txt	2008-06-19 16:04:44 UTC (rev 236)
@@ -1,86 +0,0 @@
-Rise of the Triad (v1.3 CD Version) Source Code Release - December 20, 2002.
-(If you can't read this right in your editor, turn on word wrap)
-
-Please note that this is being released without any kind of support from Apogee Software, Ltd / 3D Realms Entertainment.  We cannot and will not help in getting this running.  We do not guarantee that you will be able to get it to work, nor do we guarantee that it won't blow up your computer if you do try and use it.  Caveat Emptor - Use at your own risk.  Having said that, this source code release was compiled on December 7, 2002 using the materials in this archive.  Here's a note from one of the original ROTT programmers (Jim Dose) as to what will be needed to get this compiled:
-
-------
-
-You will need Watcom C v10.0b, which is what was used to compile the game originally.  This source code release was tested with that version.  Other versions are not guaranteed to work.  Later versions such as v11.0 are known to most likely not work because of changes in the way data types are handled.
-
-You also need Borland's Turbo Assembler (TASM), but it is not required to build the full game if you use the .obj files that are already included.  To do a full rebuild of the C code without having TASM, delete all the .obj files except for the following files:
-
-F_SCALE.OBJ
-RT_DR_A.OBJ
-RT_FC_A.OBJ
-RT_SC_A.OBJ
-RT_VH_A.OBJ
-
-To compile ROTT, type "wmake all".  To compile the audio library, run "wmake.bat".
-
-(You'll also need a registered CD version of Rise of the Triad, too.)
-
------
-
-Please note that while we are releasing the source code to Rise of the Triad, the game itself has not been released in the same manner (in other words, Rise of the Triad is still commercial software).  You can still buy the game from us by visiting http://www.3drealms.com.
-
-Thanks to all the fans who have hung in there and waited for us to do something like this, we hope you enjoy it.  If you produce something cool with this source code, drop us a line at rott at 3drealms.com.   In honor of the source code release, we contacted Tom Hall to reminicse a bit about the game, and we have some history from Scott Miller, President of Apogee. Their thoughts are below.
-
-Furthermore, the release of the Rise of the Triad source code is dedicated to our late friend and cohort, William Scarboro.  William was one of the original Rise of the Triad programmers, and he unfortunately died of an asthma attack on August 9, 2002.
-
-William was born March 2, 1971 in El Paso, TX. He was a graduate of Texas A&M with a degree in Computer Science. He came to work here back in 1993, and was the first programmer we hired back then when we started doing in house development. He was mainly known for his work on Rise of the Triad where he worked on actor code, weapon stuff, and the gibs. In fact, William was directly responsible for the /EKG gib cheat in ROTT.
-
-Joe Siegler
-Apogee Software / 3D Realms
-Dec 20, 2002
-
-==============================================================================================
-
-RISE OF THE TRIAD: The Source Code Release
-A Note from Tom Hall
-
-It was 1992.  I had just worked through half of DOOM, a creative guy in a technologically-oriented company.  We parted ways and I left to start up "In-House Development" at Apogee (later 3D Realms). We started accruing a programmer here, and artist there. Soon we had a team.  I came in with a memo about something (like bonus dough for library functions or something), and at the end I said something like, "And once we complete all these, we will be... THE DEVELOPERS OF INCREDIBLE POWER!" The guys laughed and liked this a lot.  And thus we became the DIPs. :)
-
-With a game called ROTT, and a bunch of DIPs, you're heading for some derision. :) We had a fairly inexperienced crew: me, inexperienced at management; the rest of the guys, fairly new to the industry. It started as WOLFENSTEIN 3D, Part 2 -- a "transition project" my heart wasn't in, really.  It wasn't my idea to do it, but it was something to do. Once we parted ways with that idea and id's involvement, things got rewritten, changed, and we came up with s-Quake functionality crammed into a Wolfenstein Plus/sub-DOOM engine.  It was an example of pushing a technology to do what it really can't do well.  We had a fun engine, but one that looked ugly, especially in the masked platforms -- they were paper thin!  You could have had a fun game without doing what it couldn't do... but we were trying to beat the Joneses. And once we split ways with the id thing, I made three bad decisions: a) to keep the art we had already, b) to not redesign a new game and c) not to move over to the Build engine, where we could have had a Duke/DOOM level game going decently quickly.
-
-Ah well. Hindsight's 20/20.  I am too nice, I guess. Yet, ROTT, for all its tortured technology, all its semi-justified graphics, did have some stuff that there was to be proud of. It was the first game with Rocket Jumping, the first game with Jumppads, the first game with parental password and Violence level adjustment, the first game with Capture the Flag...  Plus, I believe, the record for the most cheat codes ever in a game!  And a Random Level creator!  And what about all those cool Deathmatch options! And speaking of Deathmatch, I recall William's wonderful Corpseyard deathmatch map, and his "totally heinous" insane Drunk Missiles!  Mr. Scarboro, you, and your tuna, egg, salsa, and Omega 3 fatty acid bowls of goo will be missed.  Wah-bgsht! To Mark, Jim, Nolan, Steve, Tim, Chuck, Susan, JoeSke, Big Joe, Marianna, Lee, Bobby, Robert and all, thanks for sharing a strange time with me, and so many crazy memories!  "Uh, guys... um...."  The Disturbathon.  "50 kills!" "Ooooooooooh...  Mmmmmmm..."  Going to that crazy Bazaar to digitize old weapons.  "Check out what I got the boulders to do now."  "Ass!" "Use the fish." "Bowooooooooo!"  "I'm lookin' for some hot buns..."
-
-And on and on... And thanks to Scott and George, for providing a place for us to be crazy together, and sticking with it even though it wasn't blockbuster stuff. I do owe you a debt in what was an odd, disorienting time for me. In the end, a couple hundred thousand folks seem to have enjoyed it, so there was something there that they liked. "See, Charlie Brown?  It wasn't such a bad tree after all."
-
-======
-
-A little history...
-by Scott Miller
-
-ROTT, as it quickly became known, marked a turning point for Apogee.  It was our first in-house game since I started the company in 1987 with my home grown Kroz games, the games that started the shareware revolution that resulted in the launch of three of the most successful independent PC developers, Epic, Id, and us -- all three still kicking after 12+ years (as of Dec. '02).  It's hard to believe we're among the oldest of all surviving independent PC developers in the world now.  Before ROTT, Apogee, as we were then known, solely worked with outside development teams, often funding and helping organize these teams, and helping guide their game designs using our experience.  But around 1993 it was evident that this method wasn't going to work out much longer because as games got larger and more complicated to make, team sizes had to grow, too.  So, in 1994 we started hiring developers to form our own internal team, with the first of those hires including William Scarboro, Nolan Martin, Mark Dochtermann, Jim Dosé, and the ever creative Tom Hall to run the show.
-
-As Tom notes above, ROTT was originally an Id-approved sequel to Wolfenstein 3-D, using the original Wolf engine.  The game was going to be called, Wolfenstein: Rise of the Triad, and explore what happened after Hitler's demise.  About 4-5 months into development, though, a surprise call from John Romero ended the project, and we were left with a lot of content specific to the Wolfenstein premise, which had to be rolled into a new game concept so that we didn't waste all that we'd done.  The result was a bit of a mish-mash, and as Tom says above, the project probably should've been restarted using our new Build engine, which our second internal team down the hall was using, making Duke Nukem 3D.
-
-ROTT ended up selling several hundred thousand copies and making enough money to keep Duke 3D funded.  But it was at this time that we knew we  had to make a radical company change to shift with the times, and so we created the 3D Realms label, and began phasing out Apogee, which we were leaving behind with the glory days of shareware, and the arcade-style games Apogee was best known for.
-
-We get a lot of requests to release the source code to many of the older Apogee games, but the problem is that Apogee does not own these games that were developed by external teams.
-
-This source release is a long time coming, and hopefully it's not the last time we're able to do this.
-
-Scott Miller, CEO / Founder
-
-======
-
-/*
-Copyright (C) 1994-1995 Apogee Software, Ltd.
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-
-*/

Deleted: trunk/rott/13todo.txt
===================================================================
--- trunk/rott/13todo.txt	2008-06-19 06:16:13 UTC (rev 235)
+++ trunk/rott/13todo.txt	2008-06-19 16:04:44 UTC (rev 236)
@@ -1,35 +0,0 @@
-( ) NME does not always exit level upon killing him
-( ) Game locks when firing Darkstaff or Dog Mode at El Oscuro
-( ) Network server locks up when exiting net game
-( ) Stand( )alone server doesn't work consistently
-( ) Break out with error message if ROTT is run with no sound.rot
-( ) Quickload question should have (Y/N) on end
-( ) Phone number length needs to be lengthed.
-( ) Network packets need checksum word added to their packets
-( ) VR gear new mouse sub functions
-( ) Dog mode still locks up as well as some bat blast stuff
-( ) Fix Live Remote Ridicule
-( ) Wall can push you into platform so you fall down inside of it and be
-    stuck.
-( ) Hanging at menu after a few network/modem games
-( ) Hanging at warp menu prompt
-( ) Warp Menu: chose level, screen went black, some how still in level select
-( ) Unexpect Interrupt
-( ) Generat random levels and battle levels.  Choose alternate both.
-    New game End Game New Game Kaboom
-( ) Make snake heads hurt to touch (fixes snake trapping you)
-( ) Fix missiles not hitting enemy when standing face to face
-( ) lockup on snake with one head left
-( ) gamepad enabled before joystick enabled
-( ) bark blast under dog walls and stuff
-( ) config files saved in alternat RTS directory
-( ) people complaining about reconfiging joystick each time
-( ) Panic mapping over modem glass in 8 megs not in 4 megs
-( ) Voice credit for OverPatrol (CHuck) Lightning guard (william)
-
-MAP Stuff
-( ) level 1( )3 in random powerup crossroads room, two different wall types
-( ) Krist, if led outside of room, goes up disks, but can't go down them.
-  So he winds up running around sky.  Fix map to lock door so Krist cannot
-  come out...
-

Deleted: trunk/rott/cheats.txt
===================================================================
--- trunk/rott/cheats.txt	2008-06-19 06:16:13 UTC (rev 235)
+++ trunk/rott/cheats.txt	2008-06-19 16:04:44 UTC (rev 236)
@@ -1,106 +0,0 @@
-  DISPSTICK                // enable cheats
-  \ECC                     // enable cheats
-  SLACKER                  // three keys, more health
-  \BUM                     // three keys, more health
-  CHOJIN                   // normal god mode
-  \WWW                     // normal god mode
-  GOTO                     // warp
-  \GTL                     // warp
-  SIXTOYS                  // all keys, armor, 100% health
-  \GAI                     // all keys, armor, 100% health
-  TOOSAD                   // god mode powerup
-  \GOD                     // god mode powerup
-
-  // Register only
-  WOOF                     // dog mode powerup
-  \DOG                     // dog mode powerup
-  // end
-
-  FLYBOY                   // mercury mode powerup
-  \MER                     // mercury mode powerup
-  BADTRIP                  // shrooms mode powerup
-  \SHR                     // shrooms mode powerup
-  BOING                    // elasto mode powerup
-  \ELA                     // elasto mode powerup
-  GOOBERS                  // warp to level 1, start with pistol
-  \GOO                     // warp to level 1, start with pistol
-  WHACK                    // hurt player 10%
-  \OOF                     // hurt player 10%
-  SPEED                    // run fast all the time
-  \RFA                     // run fast all the time
-  PANIC                    // back to normal
-  \PAN                     // back to normal
-  DIMON                    // light diminishing on
-  \DON                     // light diminishing on
-  DIMOFF                   // light diminishing off
-  \DOF                     // light diminishing off
-  LONDON                   // fog on (0x00 - 0x80 minmax)
-  \FON                     // fog on (0x00 - 0x80 minmax)
-  NODNOL                   // fog off (0x80 - 0xFF minmax)
-  \FOF                     // fog off (0x80 - 0xFF minmax)
-  GOGATES                  // blow out of game
-  \L8R                     // blow out of game
-  GOARCH                   // end the current level
-  \ECL                     // end the current level
-  GOTA386                  // floor and ceiling off
-  \CON                     // floor and ceiling off
-  GOTA486                  // floor and ceiling on
-  \COF                     // floor and ceiling on
-  SHOOTME                  // bullet proof armor
-  \BAR                     // bullet proof armor
-  BURNME                   // fire proof armor
-  \FAR                     // fire proof armor
-  LUNGDUNG                 // gas mask
-  \GAR                     // gas mask
-  HUNTPACK                 // all keys, armor, 100% health, MP40,
-  \OFP                     // all keys, armor, 100% health, MP40,
-  86ME                     // kill player
-  \DIE                     // kill player
-  NEER                     // re-enter level
-  \REL                     // re-enter level
-  JOHNWOO                  // give double pistol
-  \GW2                     // give double pistol
-  PLUGME                   // give mp40
-  \GW3                     // give mp40
-  VANILLA                  // give bazooka
-  \GW4                     // give bazooka
-  HOTTIMES                 // give heatseeker
-  \GW5                     // give heatseeker
-  BOOZE                    // give drunk missile
-  \GW6                     // give drunk missile
-  FIREBOMB                 // give firebomb
-  \GW7                     // give firebomb
-  BONES                    // give firewall
-  \GW8                     // give firewall
-  SEEYA                    // give god hand
-  \GW9                     // give god hand
-
-  // Register Only
-  SPLIT                    // give split missile
-  \GWA                     // give split missile
-  KESOFDEATH               // give kes
-  \GWB                     // give kes
-  HOMERUN                  // give bat
-  \GWC                     // give bat
-  CUJO                     // give dog weapon
-  \GWD                     // give dog weapon
-  // end
-
-  RIDE                     // give MISSILE CAM
-  \CAM                     // give Missile Cam
-  WHERE                    // turn where am i on/off
-  \HUD                     // give hud
-  \FUN                     // Rotation fun
-  RECORD                   // Demo RECORD
-  STOP                     // Demo stop recording
-  PLAY                     // Demo Playback
-  \EKG                     // Engine Killing Gibs
-  MAESTRO                  // JukeBox
-  \LEE                     // JukeBox
-  CARTIER                  // Map Cheat
-  \MAP                     // Map Cheat
-  \YOU                     // Secret Message
-  HAVE                     // Secret Message
-  \NO                      // Secret Message
-  LIFE                     // Secret Message
-

Deleted: trunk/rott/cmdline.txt
===================================================================
--- trunk/rott/cmdline.txt	2008-06-19 06:16:13 UTC (rev 235)
+++ trunk/rott/cmdline.txt	2008-06-19 16:04:44 UTC (rev 236)
@@ -1,75 +0,0 @@
-
-ROTT.EXE
-========
-
-NOWAIT       go to menu, skip intro
-NOSOUND      no music no sound
-NOW          go immediately into game default difficulty default level 1
-DOPEFISH     Scott Head intro, random sounds in credits, burping while
-             caching, silly strings, eluder/deluder as scott's head,
-             silly death cam, silly menu sounds
-
-MAPSTATS     Print out map statistics to MAPDEBUG.TXT
-TILESTATS    Print out tile statistics to MAPDEBUG.TXT
-VER          Rott version number
-PAUSE        Pause after printing startup info
-SOUNDSETUP   Launch sound Setup WARP [level] Launch to any level (1 based)
-LEVELSIZE    compute memory needed for level
-SLOWDEATH    slow down death rotation
-QUIET        get rid of all start up text except for errors
-FILE
-FILE1        add external wads for graphic replacement
-FILE2
-NOJOYS       disable joystick test
-NOMOUSE      disable mouse test
-SPACEBALL    enable spaceball avenger
-CYBERMAN     enable cyberman
-ASSASSIN     enable wingman assassin
-NOECHO       turn off reverb effect
-DEMOEXIT     exit the game when demo is interrupted
-TIMELIMIT    play for a certain amount of time in seconds
-             once time is gone game ends (unlimited lives)
-             get more time by killing guards and picking up ankhs
-             must use MAXTIMELIMIT as well
-MAXTIMELIMIT the max time to count down from so if you keep killing
-             guards you cannot get an infinite amount of time
-             must use TIMELIMIT as well
-ENABLEVR     enable Virtual Reality support for HMD's (Head mounted disp)
-WARP         warp to a specific level 1 based level 1 is 1
-NET          Used by ROTTSER and ROTTIPX
-IS8250       Used by ROTTSER whether you have an 8250 or not
-TEDLEVEL     Ted stuff
-(DEV ONLY) MONO         enable mono-monitor support (Development only)
-(DEV ONLY) TRANSPORT    Warp to any x,y,angle in level (Development only)
-(DEV ONLY) SCREENSHOTS  get rid of screen title stuff (Development only)
-
-
-ROTTSER.EXE
-========
-
-VECTOR       interrupt vector with which to communicate with ROTT
-ANSWER       answer mode
-DIAL         dial mode
-PAUSE        pause before launching
-STATS        print out run time stats after ROTT returns
-PLAYER       0 - makes you the master
-             1 - makes you not the master
-             must be used on both systems with different values, to work
-             properly
-
-
-ROTTIPX.EXE
-========
-
-VECTOR       interrupt vector with which to communicate with ROTT
-PAUSE        pause before launching
-NODES        number of players in game
-SOCKET       network socket to use
-SERVER       specify this computer to be a server
-STANDALONE   specify this server to be standalone
-             else client on top of server
-MASTER       used by client to make yourself the master
-REMOTERIDICULE turn on remote ridicule support
-
-
-

Deleted: trunk/rott/hacker.txt
===================================================================
--- trunk/rott/hacker.txt	2008-06-19 06:16:13 UTC (rev 235)
+++ trunk/rott/hacker.txt	2008-06-19 16:04:44 UTC (rev 236)
@@ -1,508 +0,0 @@
-
-                              Rise of the Triad
-
-                                 Version 1.1
-
-                                 Hacker Info
-
-RTL & RTC File format:
-----------------------
-
-Rise of the Triad (ROTT) uses two file extensions for levels data, RTL
-and RTC.  RTC indicates that the file is for Comm-bat (multiplayer) play
-only and does not contain any enemies or exits.  RTL indicates the file
-can can be used for both Comm-bat and standard game levels.  In Comm-bat,
-the enemies in RTL maps in standard play are not present during Comm-bat
-games and the exit and entrance arches behave like teleporters.  Other than
-these differences, the two files are alike.
-
-The RTL/RTC file format changed with the release of ROTT version 1.1.
-Since the shareware version of ROTT cannot use alternate levels, this
-should not be a problem for map designers.  The new format is much more
-formal.  If any changes are made in the format in the future,  the first 8
-bytes of the file will inform you if it is compatible with your editor/viewer.
-
-The RTL/RTC file is broken into three sections:  Version info, Header block,
-and Data block.
-
-
-                            RTL/RTC version info
-
-This 8 byte block of data indicates what type of file it is and which
-version of the RTL/RTC file format it is.
-
-  Offset   Size    Description
--------------------------------------------------------------
-    0        4     Format signature
-    4        4     Version number
-
-Format signature :
-
-This is used to indicate what type of levels are contained within the
-file.  This is a null-terminated string containing either "RTL" or "RTC".
-
-Version number :
-
-0101h for version 1.1.  If this value is higher, it indicates that the file
-format has changed.  This is NOT the ROTT version.
-
-
-                            RTL/RTC Header block
-
-The header block contains an array of 100 structures with the following
-format:
-
-  Offset   Size    Explanation
--------------------------------------------------------------
-    0        4     Used flag
-    4        4     CRC
-    8        4     RLEWtag
-   12        4     MapSpecials
-   12        4     Offset in file of Wall plane
-   16        4     Offset in file of Sprite plane
-   20        4     Offset in file of Info plane
-   24        4     Length of Wall plane
-   28        4     Length of Sprite plane
-   32        4     Length of Info plane
-   36       24     Name of level
-
-
-Used flag :
-
-This is non-zero if a map exists at this position.
-
-CRC :
-
-This value is used to determine if all the players in a multiplayer game
-are using the same maps.  You can use any method you like to calculate this
-value.
-
-RLEWtag :
-
-This is the run-length encoding tag used for compressing and decompressing
-the map data.  The use of this will be described below.
-
-MapSpecials :
-
-This is used for flags that describe special conditions for the level.
-Currently only one flag is used.  If Bit 0 is set, then all the pushwalls
-will be activated in Comm-bat mode.  This is done in case there are player
-start locations within hidden areas and the player would be trapped until
-a pushwall was activated.
-
-Offsets :
-
-The Wall, Sprite, and Info plane offsets are each absolute offsets of the
-data from the beginning of the file.
-
-Lengths :
-
-The Wall, Sprite, and Info plane lengths are each lengths of the
-uncompressed data.
-
-Name of level :
-
-This is a null-terminated string containing the name of the level.
-Although there is 24 bytes available, level names should be at most 22
-bytes long.
-
-                             RTL/RTC Data block
-
-When expanded, ROTT maps contain 3 planes of 128 by 128 word sized data.
-They are stored in the RTL/RTC files as 3 blocks of run-length encoded
-data.  The procedure for decompressing them is as follows:
-
-    1) Allocate 128 * 128 words of memory (32768 bytes)
-    2) Read one word from compressed block
-    3) If word is equal to RLEWTag, then the next two words are a compressed
-       run of data.  The first word is the number of words to write.
-       The second word is the value to write map.
-       If word was not equal to RLEWTag, then simply write that word
-       to the map.
-    4) Go back to 2 until all data is written.
-
-Here's an example of the procedure in C.
-
-
-/*---------------------------------------------------------------------
-   Function: RLEW_Expand
-
-   Run-length encoded word decompression.
----------------------------------------------------------------------*/
-
-void RLEW_Expand
-   (
-   unsigned short *source,
-   unsigned short *dest,
-   long length,
-   unsigned short rlewtag
-   )
-
-   {
-   unsigned short value;
-   unsigned short count;
-   unsigned short *end;
-
-   end = dest + length;
-
-   while( dest < end );
-      {
-      value = *source;
-      source++;
-
-      if ( value != rlewtag )
-         {
-         //
-         // uncompressed data
-         //
-         *dest = value;
-         dest++;
-         }
-      else
-         {
-         //
-         // compressed string
-         //
-         count = *source;
-         source++;
-
-         value = *source;
-         source++;
-
-         //
-         // expand the data
-         //
-         while( count > 0 )
-            {
-            *dest = value;
-            dest++;
-            count--;
-            }
-         }
-      }
-   }
-
-
-Here is sample code for loading a ROTT map.
-
-
-#include <stdlib.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <io.h>
-
-/*---------------------------------------------------------------------
-   Map constants
----------------------------------------------------------------------*/
-
-#define MAXLEVELNAMELENGTH           23
-#define ALLOCATEDLEVELNAMELENGTH     24
-#define NUMPLANES                    3
-#define NUMHEADEROFFSETS             100
-#define MAPWIDTH                     128
-#define MAPHEIGHT                    128
-#define MAP_SPECIAL_TOGGLE_PUSHWALLS 0x0001
-
-#define WALL_PLANE    0
-#define SPRITE_PLANE  1
-#define INFO_PLANE    2
-
-/*---------------------------------------------------------------------
-   Type definitions
----------------------------------------------------------------------*/
-
-typedef struct
-   {
-   unsigned long used;
-   unsigned long CRC;
-   unsigned long RLEWtag;
-   unsigned long MapSpecials;
-   unsigned long planestart[ NUMPLANES ];
-   unsigned long planelength[ NUMPLANES ];
-   char          Name[ ALLOCATEDLEVELNAMELENGTH ];
-   } RTLMAP;
-
-
-/*---------------------------------------------------------------------
-   Global variables
----------------------------------------------------------------------*/
-
-unsigned short *mapplanes[ NUMPLANES ];
-
-
-/*---------------------------------------------------------------------
-   Macros
----------------------------------------------------------------------*/
-
-#define MAPSPOT( x, y, plane ) \
-   ( mapplanes[ plane ][ MAPWIDTH * ( y ) + ( x ) ] )
-
-#define WALL_AT( x, y )   ( MAPSPOT( ( x ), ( y ), WALL_PLANE ) )
-#define SPRITE_AT( x, y ) ( MAPSPOT( ( x ), ( y ), SPRITE_PLANE ) )
-#define INFO_AT( x, y )   ( MAPSPOT( ( x ), ( y ), INFO_PLANE ) )
-
-
-/*---------------------------------------------------------------------
-   Function: ReadROTTMap
-
-   Read a map from a RTL/RTC file.
----------------------------------------------------------------------*/
-
-void ReadROTTMap
-   (
-   char *filename,
-   int mapnum
-   )
-
-   {
-   char            RTLSignature[ 4 ];
-   unsigned long   RTLVersion;
-   RTLMAP          RTLMap;
-   int             filehandle;
-   long            pos;
-   long            compressed;
-   long            expanded;
-   int             plane;
-   unsigned short *buffer;
-
-   filehandle = open( filename, O_RDONLY | O_BINARY );
-
-   //
-   // Load RTL signature
-   //
-   read( filehandle, RTLSignature, sizeof( RTLSignature ) );
-
-   //
-   // Read the version number
-   //
-   read( filehandle, &RTLVersion, sizeof( RTLVersion ) );
-
-   //
-   // Load map header
-   //
-   lseek( filehandle, mapnum * sizeof( RTLMap ), SEEK_CUR );
-   read( filehandle, &RTLMap, sizeof( RTLMap ) );
-
-   if ( !RTLMap.used )
-      {
-      //
-      // Exit on error
-      //
-      printf( "ReadROTTMap: Tried to load a non existent map!" );
-      exit( 1 );
-      }
-
-   //
-   // load the planes in
-   //
-   expanded = MAPWIDTH * MAPHEIGHT * 2;
-
-	for( plane = 0; plane <= 2; plane++ )
-      {
-      pos        = RTLMap.planestart[ plane ];
-      compressed = RTLMap.planelength[ plane ];
-      buffer     = malloc( compressed );
-
-      lseek( filehandle, pos, SEEK_SET );
-      read( filehandle, buffer, compressed );
-
-      mapplanes[ plane ] = malloc( expanded );
-
-      RLEW_Expand( buffer, mapplanes[ plane ], expanded >> 1, RTLMap.RLEWtag );
-
-      free( buffer );
-      }
-
-   close( filehandle );
-   }
-
-
-MAP WEIRDNESS
--------------
-You can pretty much figure out most of the map data easily, but there are
-a few things in the map which are a little oddly set up.  Here's a few
-helpful items.
-
-
-THE UPPER CORNER
-The first row of a map contains vital information to setting up a map.
-
-In the first plane (WALLS) are these values:
-
-0,0   FLOOR # (0xB4 through 0xC3, though we might cut some)
-1,0   CEILING # (0xC6 through 0xD5, or skies: 0xEA to 0xEE)
-2,0   BRIGHTNESS LEVEL (0xD8 to 0xDF, from dark to light)
-3,0   RATE AT WHICH LIGHT FADES OUT WITH DISTANCE
-        (0xFC to 0x010B, fast to slow)
-
-In the second plane (SPRITES) are these:
-
-0,0   Height of level
-	(1-8 ranges from 0x5A to 0x61, 9-16 is from 0x01C2 to 0x01C9)
-1,0   Height that sky is at relative to level (with same 1-16 arrangement)
-        (not needed for level with a ceiling)
-2,0   Icon for NO FOG (0x68) or FOG (0x69)
-3,0   Light sourcing icon (0x8B: if present, lights illuminate walls)
-
-Optional items in the upper corner are:
-
-Second Plane
-	Lightning icon (0x0179)
-	Timer icon (0x79: third plane points 0xXXYY to X,Y location of
-	  timed thing--time in minutes/seconds there is MMSS in decimal
-	  digits, so 0130 is 1 minute thirty seconds--and to one side of
-	  that timed thing is the end time in the same format. This, for
-	  instance, would say when to shut the door that opened at the
-	  start time)
-
-Third Plane (INFO)
-	Song number: 0xBAnn, where nn is song number.  If not present,
-	 the game will choose song 0.  If greater than the number of
-	 level songs (18 in shareware), the game will blow out.
-
-
-DISKS
-Gravitational Anomaly Disks (GADS) are set up with a GAD icon in the
-second plane and a height in the third plane.  The actual graphic has a
-disk in the top quarter, so to put one on the floor, you sort of have to
-put the object IN the floor, so the disk will be at the right height.
-Heights for objects start with 0xB0 and have that last byte as a
-tiles-off-the-floor nybble and sixteenths-of-a-tile fraction.
-
-So 0xB000 is, for normal sprites, resting on the floor.
-
-For disks, that would be a disk you could stand on to be one story
-(eight feet) in the air. The heights of disks usually go by sixes (that's
-the maximum they can be apart and you can still climb them like stairs) or
-fours (for a more gradual ascension).  Here are three sets of height
-values.  The values of 0xB0F1-$B0FE are into the floor, and $B0F6 is right
-about floor height.
-
-by 6     by 4     by 2
-B0F6     B0F6     B0F6
-B0FC     B0FA     B0F8
-B002     B0FE     B0FA
-B008     B002     B0FC
-B00E     B006     B0FE
-B014     B00A     B010
-B01A     B00E     B012
-B020     B012     B014
-B026     B016     ...
-B02C     B01A
-B032     B01E
-B038     B022
-B03E     B026
-B044     B02A
-B04A     B02E
-B050     B032
-B056     B036
-B05C     B03A
-B062     B03E
-B068     B042
-B06E     B046
-B074     B04A
-B07A     B04E
-
-If you need higher ones, calculate them yourself, man.
-
-
-SWITCHES AND TOUCHPLATES
-
-Everything activated by a switch or touchplates points to the switch or
-touchplate that activates it, with the standard 0xXXYY format.  This way
-tons of things can be activated by one switch.  To make a door open with
-multiple switches/touchplates, make it a few tiles wide and have different
-parts of the door point to the different switches.
-
-LOCKED DOORS
-Locked doors are normal doors with a key sprite icon placed on them.
-
-
-============================================================================
-
-The ROTT WAD Format
--------------------
-
-        Most of you out there are probably very familiar with the WAD file
-format developed by Id Software.  We borrowed the format with their
-consent and use it for all the data in Rise of the Triad.
-
-        The WAD structure itself is identical to that of other WAD's,
-where the WAD header is as follows:
-
-typedef struct
-{
-	char	identification[4];
-	long	numlumps;
-	long	infotableofs;
-} wadinfo_t;
-
-and the WAD directory is made up of [numlumps] of:
-
-typedef struct
-{
-	long		filepos;
-	long		size;
-	char		name[8];
-} lumpinfo_t;
-
-
-ROTT Specific Data
-------------------
-
-WALLS - Walls are stored in the WAD between the two labels "WALLSTRT" and
-"WALLSTOP".  The format of each wall is a 4,096 block of data with no
-header.  The bitmaps are grabbed in vertical posts so that drawing in
-modex is more straight format.  All walls must be 64 x 64. The walls must
-be the first few lumps in the WAD.
-
-MASKED OBJECTS - Masked objects in the wad comprise all actors and
-sprites.  They can be found as weapons, objects, actors etc.  They use the
-following headers and structures:
-
-typedef struct
-{
-   short          origsize;         // the orig size of "grabbed" gfx
-   short          width;            // bounding box size
-   short          height;
-   short          leftoffset;       // pixels to the left of origin
-   short          topoffset;        // pixels above the origin
-   unsigned short collumnofs[320];  // only [width] used, the [0] is &collumnofs[width]
-} patch_t;
-
-These are extremely similar to the patches used in another game, except
-for the addition of the origsize parameter.
-
-typedef struct
-{
-   short origsize;         // the orig size of "grabbed" gfx
-   short width;            // bounding box size
-   short height;
-   short leftoffset;       // pixels to the left of origin
-   short topoffset;        // pixels above the origin
-   short translevel;
-   short collumnofs[320];  // only [width] used, the [0] is &collumnofs[width]
-} transpatch_t;
-
-Certain objects in the game like masked walls and touch plates will use
-the second type of patch which acts like a translucent patch.
-
-SKYS, FLOORS and CEILINGS - Skys are larger than the screen and are made
-up of two 256X200 grabs in posts similar to the walls.  The first grab
-represents the bottom part of the sky and the second part the top of the
-sky.  The skys are denoted by the labels SKYSTRT and SKYSTOP.  Floors and
-ceilings use the following structure:
-
-typedef struct
-{
-   short     width,height;
-   short     orgx,orgy;
-   byte     data;
-} lpic_t;
-
-They can be found between the labels UPDNSTRT and UPDNSTOP.
-
-
-Okay, enough hints!  Have fun figuring stuff out.
-
---THE DEVELOPERS OF INCREDIBLE POWER

Deleted: trunk/rott/rott.6
===================================================================
--- trunk/rott/rott.6	2008-06-19 06:16:13 UTC (rev 235)
+++ trunk/rott/rott.6	2008-06-19 16:04:44 UTC (rev 236)
@@ -1,90 +0,0 @@
-.TH ROTT 6 "2008-04-23" "1.0" "Rise of the Triad"
-
-.SH NAME
-rott \- Rise of the Triad
-
-.SH SYNOPSIS
-.B rott
-.RI [ options ]
-
-.SH DESCRIPTION
-.B ROTT
-is a port of Apogee's 3D action title Rise of the Triad, originally released in 1994.
-This port duplicates the functionality of the original game on modern operating systems, including Linux, Win32, and Mac OS X.
-
-.SH OPTIONS
-.TP
-.BR aim
-Give aim crosshair.
-.TP
-.BR fullscreen
-Start in fullscreen mode.
-.TP
-.BR window
-Start in windowed mode.
-.TP
-.BR resolution\  \fIwidth\fPx\fIheight\fP
-Specify the screen resolution to use (next parameter is widthxheight).
-Valid resolutions are 320x200, 640x480 and 800x600.
-.TP
-.BR spaceball
-Enable check for Spaceball.
-.TP
-.BR nojoys
-Disable check for joystick.
-.TP
-.BR nomouse
-Disable check for mouse.
-.TP
-.BR cyberman
-Enable check for Cyberman.
-.TP
-.BR assassin
-Enable check for Wingman Assassin.
-.TP
-.BR ver
-Version number.
-.TP
-.BR mapstats
-Dump Map statistics to ERROR.
-.TP
-.BR tilestats
-Dump Tile statistics to ERROR.
-.TP
-.BR mono
-Enable mono-monitor support.
-.TP
-.BR screenshots
-Clean screen capture for shots.
-.TP
-.BR pause
-Pauses startup screen information.
-.TP
-.BR enablevr
-Enable VR helmet input devices.
-.TP
-.BR noecho
-Turn off sound reverb.
-.TP
-.BR demoexit
-Exit program when demo is terminated.
-.TP
-.BR warp\  \fIlevel\fP
-Warp to specific ROTT level (next paramater is level to start on).
-.TP
-.BR timelimit\  \fItime\fP
-Play ROTT in time limit mode (next paramater is time in seconds).
-.TP
-.BR maxtimelimit\  \fItime\fP
-Maximimum time to count down from (next paramater is time in seconds).
-.TP
-.BR dopefish
-?
-
-.SH AUTHORS
-ROTT was created and published as shareware by Apogee Software, Ltd. and was published commercially by FormGen, Inc.
-.PP
-The primary contributors to the icculus.org port are: Steven Fuller, Ryan C. Gordon, John Hall and Dan Olson.
-.PP
-This manual page was written by Fabian Greffrath <fabian at debian-unofficial.org>
-for the Debian project (but may be used by others).

Deleted: trunk/rott/wad.txt
===================================================================
--- trunk/rott/wad.txt	2008-06-19 06:16:13 UTC (rev 235)
+++ trunk/rott/wad.txt	2008-06-19 16:04:44 UTC (rev 236)
@@ -1,82 +0,0 @@
-The ROTT WAD Format
--------------------
-
-        Most of you out there are probably very familiar with the WAD file
-format developed by Id Software.  We borrowed the format with their
-consent and use it for all the data in Rise of the Triad.
-
-        The WAD structure itself is identical to that of other WAD's,
-where the WAD header is as follows:
-
-typedef struct
-{
-	char	identification[4];
-	long	numlumps;
-	long	infotableofs;
-} wadinfo_t;
-
-and the WAD directory is made up of [numlumps] of:
-
-typedef struct
-{
-	long		filepos;
-	long		size;
-	char		name[8];
-} lumpinfo_t;
-
-
-ROTT Specific Data
-------------------
-
-WALLS - Walls are stored in the WAD between the two labels "WALLSTRT" and
-"WALLSTOP".  The format of each wall is a 4,096 block of data with no
-header.  The bitmaps are grabbed in vertical posts so that drawing in
-modex is more straight format.  All walls must be 64 x 64. The walls must
-be the first few lumps in the WAD.
-
-MASKED OBJECTS - Masked objects in the wad comprise all actors and
-sprites.  They can be found as weapons, objects, actors etc.  They use the
-following headers and structures:
-
-typedef struct
-{
-   short          origsize;         // the orig size of "grabbed" gfx
-   short          width;            // bounding box size
-   short          height;
-   short          leftoffset;       // pixels to the left of origin
-   short          topoffset;        // pixels above the origin
-   unsigned short collumnofs[320];  // only [width] used, the [0] is &collumnofs[width]
-} patch_t;
-
-These are extremely similar to the patches used in another game, except
-for the addition of the origsize parameter.
-
-typedef struct
-{
-   short origsize;         // the orig size of "grabbed" gfx
-   short width;            // bounding box size
-   short height;
-   short leftoffset;       // pixels to the left of origin
-   short topoffset;        // pixels above the origin
-   short translevel;
-   short collumnofs[320];  // only [width] used, the [0] is &collumnofs[width]
-} transpatch_t;
-
-Certain objects in the game like masked walls and touch plates will use
-the second type of patch which acts like a translucent patch.
-
-SKYS, FLOORS and CEILINGS - Skys are larger than the screen and are made
-up of two 256X200 grabs in posts similar to the walls.  The first grab
-represents the bottom part of the sky and the second part the top of the
-sky.  The skys are denoted by the labels SKYSTRT and SKYSTOP.  Floors and
-ceilings use the following structure:
-
-typedef struct
-{
-   short     width,height;
-   short     orgx,orgy;
-   byte     data;
-} lpic_t;
-
-They can be found between the labels UPDNSTRT and UPDNSTOP.
-




More information about the rott-commits mailing list