Notes for RCT Track Decoder
Copyright 2002 by Gregory A. Wolking, All Rights Reserved.

************************
* GENERAL INSTRUCTIONS *
************************


PLATFORM:

  Any version of Windows 9x or NT. This is a completely stand-alone program;
  it does not change your system configuration or file associations and does
  not require any "run-time" modules, etc.

INSTALLATION:

  Run the setup utility ("RCT Track Decoder Setup.exe") and follow the
  prompts. If you're updating version 1.1 or later, Setup should locate
  the existing version automatically. If you want to update a version prior
  to 1.1, you must point Setup to the appropriate folder manually, otherwise
  it will install a separate copy of the program using whichever folder you
  select.

REMOVAL:

  Use Control Panel | Add/Remove programs.

  Note that previous versions (v1.1 or older) stored a couple of settings in
  the registry. Those who are fanatical about keeping the registry tidy can
  remove this information by deleting the following key:

  HKCU\Software\Local AppWizard-Generated Applications\RCT Track Decoder

  Versions after 1.1 use an .INI file (stored in the program's home folder)
  instead of the registry.

PURPOSE:

To list the segments of a ride track for use as a guide to construct that
track step-by-step. This makes it possible to build tracks that the game
will not build in place from a saved track file because the track either
fits too closely to the terrain or goes completely underground at any point.
This program recognizes .TD4 and .TD6 track files for any ride type that the
game will allow you to save, with the sole exception of Hedge Mazes. (I have
no plans whatsoever to support Hedge Mazes, so please don't bother asking.)


NOTE: While I have tested the program's "Save" function as much as possible,
   I cannot guarantee that RCT will be able to read a track file that this
   program writes. Therefore, I _strongly_ recommend that you do _not_
   overwrite any of your existing track files with this program. To minimize
   the chance of clobbering an existing file, the program only provides
   the "Save As" command, so it will _always_ prompt you for a filename,
   and it will _always_ prompt for confirmation before overwriting an
   existing file.

USAGE:

Launch the program, then use the File | Open command to load the saved
track file that you wish to examine. Basic information about the coaster
will be listed at the top, with the list of track segments below. If you'd
like to save the track segment list to a plain text file (suitable for use
with Notepad or any text editor/word processor), use the File | Export
command. You may then use that editor/word processor to print the track list
if you wish. NOTE: If you check the "Launch file after creation" box in the
"Export" dialog, then RCT Track Decoder launch the file just as if you had
double-clicked the file in Windows Explorer.

For RCT2 files only, there is "Modification lock" checkbox (it will be
disabled for RCT1 tracks). This allows clearing or setting the "Six Flags"
bit that prevents you from modifying any of the Six Flags rides that are
bundled with the game. Naturally, you can use this to lock any of your own
track designs if you want.

READING THE TRACK LIST:

For closed-circuit tracks, the list always begins with the "tail" of the
first station found in the file. For open-circuit tracks, the list begins
with the first segment in the file as the game saved it. Internal adjustments
to the track segment order (the game stores the track segments for
closed-circuit tracks in a rather odd way) are handled automatically.

The track segments are numbered and listed one after the other, with repeated
segments listed on a single line. The format of each line is either:

For a single segment:
  [index]			[segment type] (elevation)

For repeated segments:
  [index-index]  [repeat count] [segment type] (elevation)

For level track, the elevation will be shown as a single number. For sloped
track, the elevation will be shown as two numbers representing the elevation
at the beginning of, then end of, the current segment or run of repeated
segments.

Some segments may have additional indicators, such as "[inverted]" for
inverted track on the Flying and Multi-Dimension coasters (as opposed to other
coasters that don't have inverted track except in the middle of an inversion
such as a corkscrew, barrel roll, half-loop, quarter loop, or inline twist).
The Multi-Dimension coaster will also include the seat rotation angle
enclosed in {curly braces} for all segments except brakes.

Track segment types are largely self-explanatory. I matched the descriptions
to those shown in the track construction palette's tooltips except when those
terms made the descriptions either clumsy or confusing.

SLOPE TYPES:

   Level	   = level (flat) track.
   Roll left/right = level track that is banked for its entire length.
   Up/Down	   = normal (25-degree) slope.
   Up/Down Steep   = steep (60-degree) slope.
   Vertical	   = vertical (90-degree) slope.

   "Slope transition" segments are listed in similar terms. For example, a
   basic "camel hump" consists of 8 transition segments:

      * Level to up
      * Up to up steep
      * Up steep to up
      * Up to level
      * Level to down
      * Down to down steep
      * Down steep to down
      * Down to level

   "Bank transition" and "Bank/slope transition" segments are shown the
   same way, i.e. "level to roll right", "roll left to level", "up to level,
   roll left", "down to level, roll right", and so on.

CURVE TYPES:

   All curves are flat (not banked) unless otherwise specified. The radius
   of the curve is shown in square brackets, as follows:

   * [R1] = Very small radius, a 90-degree turn within a single tile.
   * [R2] = Small radius.
   * [R3] = Normal radius.
   * [R4] = Wide radius.

   Note that each wide radius turn segment is only a 45-degree bend, so
   these segments have additional qualifiers, "ortho" and "diagonal".
   "Ortho" means that the curve begins or ends in direct alignment
   with the land grid. "Diagonal" means that it begins or ends diagonally
   across the grid. For repeated segments, this indicates the orientation
   of the track at the beginning and end of the entire curve.

   An odd number of wide-radius turn segments will always be either "ortho
   to diagonal" or "diagonal to ortho". An even number of segments will always
   be "ortho to ortho" or "diagonal to diagonal".

HELIX SEGMENTS:

   The basic nature of Helix segments is determined by the coaster type,
   so qualifiers such as "1/2 turn", "1/4 turn", and "banked" are not
   shown.

   For "inverted" and "suspended" coasters, all helix segments are
   normal [R3] radius 90-degree turns. Suspended coasters use flat helixes,
   all others use banked helixes. For all other coaster types, helix
   segments are banked, 180-degree turns and can be either small [R2] or
   normal [R3] radius.

SPECIAL SEGMENTS:

   These are listed using the same terminology as the "Special" drop-down
   list in the construction palette. Note that some segments (half-loops,
   corkscrews, inline twists, and barrel rolls) show an additional
   "normal to inverted" or "inverted to normal" qualifier that the game
   does not show. This is not absolutely necessary as this orientation
   will be automatic as you build the track, but it makes it easier to
   visualize the track as you build or, if you have to stop building
   for some reason, easier to figure out where you were in the list when
   you resume.

   The Steel Twister, Wood Twister, and Vertical coasters also have a special
   segment that is constructed using a combination of the slope and curve
   buttons instead of the "Special" menu. These segments provide a transition
   to or from non-banked, normal-slope track to level, banked track within a
   small-radius curve. These can be tricky to build if you don't know how.

    * Banked left/right curve [R2] to slope up: With the track already
      banked in the desired direction, click the small-radius curve button
      (so a small-radius banked curve is blinking), then click the "normal
      slope up" button.

    * Slope down to banked left/right curve [R2]: With the track
      on a normal (25-degree) downward slope, click the small-radius curve
      button (so a small-radius sloped curve is blinking), then click the
      corresponding "roll" button.

TRACK ELEVATION:

   Track elevation is shown as an additional reference point. I added this
   mainly because it's easy to lose count of the segments when building
   long slopes. For example, when building a long lift hill, you don't
   have to count individual segments, you can simply build the hill until
   you reach the proper height.

   Elevation is shown using one or two numbers in parentheses.
   These represent the actual track elevation at the beginning
   and end of that segment, in the direction the train will travel. For
   repeated segments, values are given for the starting elevation of
   the first segment and the ending elevation of the last segment.

   For some sloped segments, elevation numbers in the list may not correspond
   with the numbers shown on the track. However, the elevations shown for any
   level segments should match the game's display exactly.

   You can adjust the track elevation using the "Set segment elevation"
   command on the "Edit" menu or by pressing Ctrl+E. This sets the elevation
   for curently selected segment in the list and recalculates the elevations
   of all other segments from that point.

   When you're working with an RCT1 track, the program recognizes RCT1's limits
   for elevation. You can only set the elevation to a number between 1 and 61.
   If any segment drops below elevation 1, it will be shown as "TOO LOW!". If 
   any segment rises above elevation 61, it will be shown as "TOO HIGH!". Note
   that this only represents the game's absolute limits. Since the track file
   contains no information about the terrain on which the track is constructed,
   this program cannot tell you when a track is too tall for its supports.

   When you're working with an RCT2 track, you can set the elevation anywhere from
   -61 to +61. Since I'm not yet sure what RCT2's limits are, the program will
   calculate and display all elevations accordingly, no matter how high or low they
   go. Also note that for the game's display to match this program's list, you'll
   have to set the game option to display elevations in units instead of feet.

SPECIAL COMMANDS:

   Edit | Mirror
   =============

   This produces a mirror image of the current track by reversing
   the direction of all curves and banks. This can aid in constructing
   "dueling" or "racing" coasters. NOTE: With RCT2 tracks, this may result
   in a track design that you can't build directly in the game, especially
   if the design was saved with scenery. This program is currently unable
   to mirror the positions of the station kiosks and/or scenery. Unlike RCT1,
   RCT2 always saves the entrance/exit kiosk positions in the file, and I
   haven't yet figured out how to reverse their positions along with the
   rest of the track.


   Edit | Reverse
   ==============

   This turns a track around to run in the opposite direction by reversing
   all curves and slopes. The net result is a track that follows exactly
   the same course but with its cars/trains moving in the opposite direction.
   Generally speaking, this only works with "transport" and self-powered
   rides. Coasters that use any chain-lift or launched lift hill segments
   cannot be reversed, so this function will present an error message if
   you try.

   The exception is with tracks that rely entirely on boosters (which
   no longer exist in RCT2) or a powered launch mode instead of lift chains
   to give the trains their momentum. The program can reverse the circuit for
   you, but it cannot figure out how to rearrange the boosters or brakes so
   that the train will be able to complete the reversed circuit. Depending
   on the layout, such a reversed circuit may not run at all without major
   modifications.

   NOTE: Same as with the "Mirror" command, this may produce track files
   that can't be built directly in RCT2.

REVISION HISTORY:

*** VERSION 1.1.3 beta

1. Most changes in this build are revisions to track segment descriptions
   to make them shorter and/or more readable.

   * All curve radii, including helix segments, are now indicated by
     "R" plus a number, as in:
       [R1] == very small radius
       [R2] == small radius
       [R3] == normal radius
       [R4] == wide radius
   * "Long base" level-to-steep transisitons are now shown as "Parabolic",
     as in "Parabolic level to up steep".
   * "Left-hand" and "Right-hand" are now shown as simply "Left" and "Right".

*** VERSION 1.1.2 beta

1. BUG FIX: Heartline Twister coasters with reversed cars now show the
   correct ride and vehicle type instead of "Unknown".

2. BUG FIX: The "Rotation control toggle" segment on Spinning Wild Mouse
   coasters (RCT2 only) is now listed correctly instead of being displayed
   as "Booster". Boosters no longer exist in RCT2, and this special Wild
   Mouse segment now uses the same segment code that boosters did in RCT1.

3. BUG FIX: Elevations are now calculated correctly for vertical twists,
   vertical loops, and quarter loops.

4. FEATURE CHANGE: "Set starting elevation" command is now named "Set segment
   elevation". It still sets the starting elevation, but now does so for
   the currently selected list entry. If the selected entry is a run of
   repeated segments, elevation is set for the first segment in the run.
   This lets you recalculate elevations from almost any point in the track,
   making it easier to match elevations for track designs that require you
   to start building somewhere in the middle of the list.

5. NEW FEATURE: Program now detects whether RCT1 or RCT2 are installed on
   your system and provides separate "Open" comands for each version which
   will default to the appropriate "Tracks" folder automatically. The generic
   "Open" command is still provided for non-English versions of the game
   that might use different names for registry keys, folders, and so on,
   preventing the program  from locating the "Tracks" folder automatically.
   No matter which command you use to load a file, the program remembers
   where it was and will default to that folder if and when you save it.

6. NEW FEATURE: Multi-Dimension Coaster segments (RCT2 only) now show seat
   rotation in degrees, enclosed in curly braces after the segment name.
   Note that brake segments cannot have a seat rotation setting.

7. Cleaned up the display of Quarter Loop segments. There are 6 distinct
   quarter loop segments, 2 for the Steel Twister and 4 for the Multi-
   Dimension coaster. Quarter loops can only be used in the upper half
   of a loop, and the game will only build whichever segment is appropriate
   in the current context. They are displayed in the list as follows:

   Steel Twister:
	Transition		  Displayed As
	----------		  ------------
     Vertical up to inverted	 Quarter loop up
     Inverted to vertical down	 Quarter loop down

   Multi-Dimension:
	Transition			  Displayed as
	----------			  ------------
     Vertical up to inverted		  Quarter loop up
     Inverted to vertical down		  Quarter loop down [inverted]
     Inverted vertical up to level	  Quarter loop up [inverted]
     Level to inverted vertical down	  Quarter loop down

*** VERSION 1.1.1 beta *

FIRST OFF: Since RCT2 will not run in a window, it's difficult to use
this program as a construction guide while RCT2 is running. Unless you
have two monitors and can configure RCT2 to run on one monitor and this
program to run on the other, you'll have to export your track designs
to a text file, then print them out (e.g., with Notepad or WordPad)
to use as a guide.

1. Added ability to read and write RCT2 (.TD6) track files.

2. Ride and vehicle type names should all be correct, although the number
   and length of trains may look weird for some ride types. The program
   does not alter this information, so don't worry about saving files
   that show odd values in these fields, they should work just fine in the
   game.

3. Use the Save As function with care! Don't overwrite a track file that
   you can't afford to lose. Also note that the Save dialog will default
   to the correct file type (.TD4 or .TD6) automatically. The program
   cannot convert files from one type to the other.

4. "Modification lock" checkbox allows clearing the "Six Flags Track" bit
   that prevents you from modifying the Six Flags track designs that
   are bundled with the game. You can also use this to save your own
   .TD6 track designs so that others can't modify them. This box will be
   disabled for .TD4 files or older-format files that have been saved
   or renamed to have the .TD6 extension.

4. Track list should show the correct segment names for all track types.

5. Elevation display supports RCT2's new mechanism of relative elevations
   The "TOO LOW" and "TOO HIGH" warnings no longer appear for RCT2 tracks.
   Similarly, when you're setting the starting elevation for an RCT2 track,
   you can set the value from -61 to +61 (I'm not sure what RCT2's actual
   limits are yet.)

6. Elevation data may be incorrect for some newer track segments (quarter
   loops in particular).