                               MovementLocator II
                                  By Olethros


	*** Description ***

What it does is fairly obvious. Enemies moving above a certain speed 
(configurable by the server administrator) in the device's field of view - the 
size of which varies with the selected range - will show up on your HUD.

Additionally, teammates within the entire range of the scope will also be 
displayed along with their Team IDs or player names. And finally, enemies firing 
their weapons will show up as flashing white dots within a certain server-
configurable range regardless of the scope's current FOV.

The scope also features a simple compass display upon which the directions to
up to 4 flag bases or domination points are displayed as suitably coloured
triangles.


	*** Usage ***
	
	Executable commands: Type these as given.

"ML_Toggle" will simply turn the scope display on or off.

"ML_RangeUp" increases the scope's search range, at the cost of a narrower 
tracking field and slower updates.

"ML_RangeDown" will decrease the range and widen the tracking field.

"ML_Command <param>" will basically send a "mutate <param>" command to the HUD 
part of the mutator. This is essentially a stripped-down version of UTCompass'
"HUDMutate" command for those familiar with it. Indeed, if UTCompass is running
"HUDMutate" or "HUDMutateNR" can be used instead of "ML_Command."

"ML_Command Help" will list available client-side commands.

"Mutate MLHelp" will list the available server-side commands.


	Client-side commands: Precede these with "ML_Command" or "HUDMutate"
	like "ML_Command MLScale++"
	
MLScale <float>    - Set the scope's draw scale to any number between 1.0
                       (small) and 4.0 (very large).

MLScale++          - Increase the scope's draw scale in increments of 0.1.

MLScale--          - Decrease the scope's draw scale in increments of 0.1.

MLSetPosX <int>    - Set the scope's horizontal position.

MLSetPosX++ or --  - Set the scope's horizontal position in 1 pixel increments.

MLSetPosY <int>    - Set the scope's vertical position.

MLSetPosY++ or --  - Set the scope's vertical position in 1 pixel increments.

MLCompassMode      - Cycle compass modes (off, simple, full).

MLTeamIDs          - Cycle teammate ID display modes (off, number, letter,
                     player name).

MLSound            - Toggle sounds on or off.

MLSetScopeColor <> - Set the ML scope's display color. Valid parameters are:
                     * RGB values separated by spaces or commas. "140 120 60"
                     * Color names. "Red" "Blue" "Green" "INFTan" etc.
                     * "Team": your current team color.
                     * "Team 1" through "Team 4": any team color.
                     * "HUD": syncronize with the HUD's display color. (not in
                       OldSkool games.)
                     * "Custom": Your last selected custom color.
                     * "Help": List available color names and some info.

MLFriendlyColor    - Cycle friendly color selection modes: HUD color, Team
                     Color or custom color. Set the latter with the command
                     "MLSetFriendlyColor" and similar parameters as
                     "MLSetScopeColor."

MLEnemyColor       - Cycle between enemy color selection modes: Team color
                     (only applicable if the server's IFF option is enabled)
                     or a custom color. Set the latter with the command
                     "MLSetEnemyColor" and similar parameters as
                     "MLSetScopeColor" and "MLSetFriendlyColor."

MLReset            - Try to reset the client-side variables and references if
                     things have gotten out of sync.

MLIDOffset <int>   - Set difference between displayed TeamID and actual
                     TeamID.

MLToggle           - Will do exactly the same as "ML_Toggle."

MLRange++          - Increase range. Same as "ML_RangeUp."

MLRange--          - Decrease range. Same as "ML_RangeDown."


	*** Running on a server ***

The mutator class to activate is "MovementLocator2.ML2_Mutator" and the server's
INI file must have the "ServerPackages=MovementLocator2" line included.

	Server mutator commands: Precede these with "mutate" like
	"mutate MLFireDistance 64m"

MLMinimumVelocity <int>  - Set the minimum movement speed that will trigger the
                           movement locator at range 0.
                           
MLDistanceFactor <float> - How rapidly the scope's detection capability
                           deteriorates at distance. The following formula is
                           used: Minimum velocity + (distance * distance factor)
                           where the target's movement speed must be larger
                           than the result.
                           
MLRegisterFire           - Toggle wether enemies using the primary fire of
                           their weapons should be detected as movement within
                           the entire field of the scope.
                           
MLRegisterAltFire        - Same as above, only for alternate fire.

MLFireDistance <int>     - The maximum distance of which firing or altfiring
                           will register on the scope. Can be given in UUs
                           "1536" or meters "32m" (1m = 48 unreal units).
                           
MLTeamOnly               - Toggle wether the scope will only display team
                           mates.
                           
MLToggleIFF              - Toggle the scopes' IFF functionality on or off. If
                           it is turned off, all players will be displayed as
                           if they were unknown targets. I.e. drawn in the
                           preset enemy colour and only if firing or moving
                           within the scope's scan zone. This setting has no
                           effect if "Team only" display mode is selected.
                           
MLInfo                   - Prints out a quick summary of the server settings.

Note that you need to be logged on as administrator to use these commands (with
the exception of "mutate MLInfo").


	*** Running on a client ***

Just select "MovementLocator 2" from the mutator list.


	*** Other ***

See the enclosed image "mlScope.png" for an explanation of the scope's features.

Known issues:
	* Sometimes during round change the HUD scope might freeze up. If this
	  happens, try issuing a ML_RangeUp, ML_RangeDown or ML_Command command.


	*** Changes ***

Beta 8:
	* The sounds have been tweaked and made a bit louder. Their volume can be 
	  set using the "mlsound <int>%" command. F. ex. "MLSound 75%" will set
	  the volume to 75% of normal. You can set the sound volume to any value
	  between 0% and 200% or 0.0 and 2.0.
	* The movement sounds will increase pitch as enemies get within 64 or 32
	  meters of the player. (Depending on current range setting.)
	* Friendly flag carriers' blips are now marked with a flashing white
	  outline.
	* Only the blips of friendlies firing or altfiring will flash, as opposed
	  to their blips and playerIDs.
	* Old Unreal pawns (Skaarj and other monsters) using their ranged attack
	  (if any) should now register as "firing" contacts on the scope. After a
	  fashion.
	
Beta 7:
	* Added sounds. When they get annoying, they can be toggled on or off
	  with "ML_Command MLSound".
	* The scope color should now change immediately with the HUD color unless
	  a custom scope color is selected.
	* Blips will now fade out between scan cycles.
	* Added the IFF option in the server configuration.
	  	  
Beta 6:
	* Added limited support for OldSkool games.

Beta 5:
	* Added the ML_Toggle command so clients can choose wether or not to
	  display the scope.

Beta 4:
	* Fixed a bug that caused to ML_RangeUp and ML_RangeDown commands to fail
	  to be properly replicated to the client in online games.

Beta 3:
	* Moved the detection cone calculation server-side. The added CPU workload
	  should be negligible and network bandwidth usage should be slightly
	  lower.

Beta 2:
	* Added the ability to scale the display from 1.0 to 4.0.
	* Added commands for repositioning the scope on the screen.
	* Bottom left corner of the scope now displays a simple update indicator.
	* Bottom right corner of the scope now displays the current draw scale.
	* Added extra features for CTF and Domination game types: Flag bases and
	  domination points are displayed on the edge of the scope.

Beta 1:
	* Original release.
