====================================================================
"Features.txt" - Provides a list of all features in the Move_Car package  v1.1  April 21, 2002
====================================================================
A list of features that are not included can be found at the end of this document.
All features listed should work with all current versions of 3DGS.
______________________________________________________________
ON-SCREEN DISPLAYS  - Heads-Up Display (HUD)

On-screen displays automatically adapt to 1024x768, 800x600 or 640x480 screen resolutions

Rear-view mirror

Speedometer with rotating needle

Tachometer with rotating needle (includes yellow and "red line" areas)

Numeric gear indicator (displayed within the tachometer)

Throttle "thermometer" to indicate accelerator position, braking, or reverse

Steering mode indicator text and Throttle mode indicator text 
______________________________________________________________
CAMERA VIEWS  (Completely self-contained within the Car_Cam.wdl file)

Ahead View - Looks out of the windshield - no vehicle parts are visible

Tail View - From behind and slightly above the vehicle

Helo View - (Helicopter View)  Farther behind and above the vehicle - fixed distance

Follow View - Same as Helo View, but falls back and raises as the vehicle speeds up
                      Automatically "Zooms" back in as the vehicle slows, or stops

Overhead View - Satellite view, looks down at the vehicle
______________________________________________________________
VEHICLE PHYSICS  (Most characteristics can be changed by a single table entry.)

Table entries specify vehicle weight, horsepower, number of gears, gear ratios, 
gear efficiency, differential ratio, acceleration factor, braking force, Air Drag, 
RPM to automatically upshift, RPM to automatically downshift, and wheel radius (in inches).

Automatic transmission - supports 1 to 6 forward gears, and 1 reverse gear
Delayed shift (500 RPM) when accelerator is "floored"  (greater than 90%)
Ability to force a downshift, for quicker acceleration and more power

Moving the throttle from full forward, to full reverse, will apply the brakes, 
and disconnect (clutch) the drive train. After the vehicle comes to a full stop,
if the throttle is still in "reverse", the automatic transmission will then shift 
into reverse, and the model will start backing-up.

From "reverse", moving the throttle to "forward", or "stop", will cause the 
automatic transmission to shift into forward gear number one.

Realistic physics for acceleration and de-acceleration.
Slows down while climbing a hill; speeds up going downhill (Hill_Effect).

Uses a torque look-up table to vary engine power by RPM.

RPM is calculated through a drive-train feedback loop.
Vehicle does not accelerate when at maximum engine RPM.

Engine Resistance reduces vehicle power, according to engine RPM.
(Downshifting will slow the vehicle quicker, due to more engine braking).

Includes a hand brake.

Vehicle adapts to the angle of the ground  (tilting and rolling).

Front of vehicle raises when accelerating, lowers when slowing or stopping.
Vehicle will remain level when traveling at a constant speed.
(Varies by amount of acceleration, or slowing - called "rock back" in the script). 
This feature is also seen in the rear view mirror.

Steering is variable ratio steering, depending on vehicle speed.

Vehicle leans when cornering, according to speed and sharpness of the turn.

Vehicle loses some power in a turn, depending on vehicle speed, and how 
tight the turn is.

Can "fly" off of ramps, and do jumps - can roll all the way to upside down,
                                                         automatically resets to right side up.
Provides "soft" landing to eliminate vehicle "bounce".

When airborne, starts to "nose down", and RPM goes to maximum.
Air Drag and Gravity are the only forces in play, while airborne.
(Steering is also disabled)

Includes table values to adjust Air Drag, and Acceleration.

Vehicles can do "wheelies" by changing the values in the "acel_val"  
(acceleration value) and "rock_back" table entries.

Keyboard, Mouse, and Joystick have integrated accelerator, brake and reverse.
______________________________________________________________
CONTROLS and SOUNDS

Keyboard toggles throttle control between keyboard, mouse or joystick  ("T" key)
Integrates forward accelerator, pedal brakes, and backing up in a single control.
Throttle contains a "dead spot" for braking.
Throttle sensitivity and travel are adjustable by a table entry (tstrength).

Keyboard toggles steering between keyboard, mouse or joystick  ("S" key).
Steering sensitivity and travel are adjustable by a table entry (sstrength).

Throttle can use one input type (such as keyboard) and steering can use
a different input type (such as joystick).

Camera views can be switched using the keyboard, mouse or joystick,
regardless of which input type has been selected as the active device.

Forced Downshift can be activated using the keyboard, mouse or joystick,
regardless of which input type has been selected as the active device.

Does not use, or interfere with standard template buttons or keys.
(Except possibly "Venture", or other user defined keys)

Engine sound varies by RPM.

Tires squeal when accelerating or slowing too quickly.
Tires squeal when turning too sharply  (varies by vehicle speed).

The horn can be sounded using the keyboard, mouse or joystick, regardless 
of which input device has been selected as the active device.

Various features can be enabled, or disabled, via a table entry in the C-Script.
__________________________________________________
SCRIPT FEATURES

Does not require C-Script programming to use.

Works with 3DGS standard template scripts.
(Unique keyboard assignments, button assignments, function names and 
variable names were used to avoid conflicts with the standard templates)

Does not use skills or WED flags.
Most characteristics can be modified by changing table entries.

The Move_Car C-Script is designed to be flexible and general enough to be 
adapted to the following vehicle/model types: vans, trucks, buses, dragsters, 
funny cars, motorcycles, ATVs, tanks, HumVees, APCs and other military vehicles, 
airplanes, helicopters, parasails, bicycles, tractors and other motorized farm machinery
and construction equipment, mopeds, motor scooters, snow skiers, ski jumpers, 
snowmobiles, water skiers, power boats, sail boats, merchant ships, fishing boats, 
navy ships, submarines, hover craft, and trains (steam, electric or diesel).

Most vehicle/model types can be simulated by changing values in the table entries.
Others will require additional C-Script programming. 
For tips and suggestions, see the "Other_Models.txt" documentation file.

The Move_Car C-Script is designed to balance "mathematically perfect" 
physics calculations with the need to demand only reasonable amounts of 
computing resouces.   Some feature/functions can be disabled through table 
entries to reduce cpu and video card requirements.

Structured (modular) design for easy learning

Extensive use of comments
Meaningful variable names - all variable definitions have comments/explanations.
All variables are defined at the beginning of the script.

Eleven documentation files (chapters) are provided to assist in learning the 
Move_Car script, and C-Script programming in general.
Functions were designed for easy modification and maintenance.
All functions are listed in function prototypes, in a single place.

Features are generally "self-contained" to facilitate use in other scripts or applications.

Toggle keys use a "key bounce" technique to prevent "auto-repeat".  (Thanks Keith!)

The Move_Car C-Script attempts to reduce displayed speedometer MPH 
when slowed by another object.   (Needs some improvement here!)

Sets all known script scale factors to 1.0

Automatically "Includes" the Car_Cam.wdl C-Script file.
(Do NOT manually "Include" the Car_Cam.wdl file.  But it
should be in the same Project folder as the Move_Car.wdl file)
___________________________________________________
FEATURES NOT IMPLEMENTED

Any feature or action which is dependent on the specific 3D model being used.
This includes:  rotating or steerable wheels, headlights, taillights, wipers, 
opening doors, independent suspension, exhaust smoke, tire skid marks, 
any vehicle animation or deformation for damage modeling, etc., and
good collision detection (which also depends on the model being used).
(Built-in variables provide data for wheel rotation and steering. See "Questions.txt"
and "Other_Models.txt")

The model will not "spin out" when taking a corner too fast, or when the handbrake
is used.  (Lateral forces are not simulated.)

The model can "flip over" from rolling in a fall, but it will reset, and won't "crash and burn".
That would be animation frames you need to add, depending on your specific model.

A "Health" indicator, or performance impact from damage or overspeed is not included.
(Built-in variables provide data for this purpose. See "Questions.txt")

There is no multi-player support, or client-server programming included.

The model does not include multi-point traces or scans to detect when a 
single wheel runs over a bump.  (Uses the "box" floor scan instead)
