===========================
Changes since r887
===========================
Improvements:
    * Fixed: Allowing 0.3/4 clients into the server.
    * Fixed: CYCLE_WALL_TIME command.
    * Fixed: SPAWN_OBJECT_ZONE => SPAWN_OBJECTZONE
    * Fixed: Restored gResourceManager.h and gResourceManager.cpp
    * Added: PLAYER_GRIDPOS now contains the speed, remaining rubber and total rubber
    * Fixed: english_base.txt
    * Added: ONLINE_PLAYER now shows whether the user has logged in or not
    * Fixed: GRID_POSITION_INTERVAL => PLAYER_GRIDPOS_INTERVAL
    * Added: {MAP|CONFIG}_ROTATION command now canhave a round set for each stored rotation item.
    * Added: ROTATION_TYPE now supports 6 options.
    * Fixed: /chat command to have the player their access level names.
    * Fixed: Greatly improved the racing game mode.
    * Fixed: Switched queue timer from minutes to seconds.
    * Fixed: A slight thing in TELEPORT_PLAYER.
    * Fixed: All color codes in capital letters convert to lower case in client side.
    * Fixed: OBJECTZONE_SPAWNED wasn't writing to ladderlog.
    * Fixed: Dynamic Spawn issue with object zones.
    * Added: ROUND_COMMENCING ... Had no idea it was removed... :P
    * Added: Made sure most commands can keep their stored values.
    * Fixed: Using a similar method to the php's explode() function to split values apart.
    * Fixed: online_players.txt gets updated when a player leaves. Handy to have when server becomes empty.
    * Added: /ms and /cs to queue items from {MAP|CONFIG}_ROTATION list.
    * Remov: Removed gPingPong, is no longer needed. A script will simply do exactly what I intended.                

Additions:
    * /pass command addition to the chat list commands.
    * Zones now hold the effect that they belong to. Eg. death, win, fortress, flag, target...
    * Added Ladderlog commands:
      @ ZONE_GRIDPOS <effect> <id> <name> <radius> <growth> <posx> <posy> <velx> <vely> <r> <g> <b>
      @ CUSTOM_INVALID_COMMAND <command> <user> <ip> <access_level> <params>
      @ {DEATH|WIN}ZONE_ACTIVATED <id> <name> <posx> <posy>
      
    * Added Commands:
      @ SET_CYCLE_RUBBER <player> <rubber>         # Sets the cycle's rubber. Will kill if set to <= 0
      @ ZONE_GRIDPOS_INTERVAL <time>               # Tell you the zone's gridpos depending on the interval
      @ CUSTOM_CONFIGS <config1>;<config2>;        # Command line that contains the list of configs you want to load.
      @ RELOAD_CONFIG                              # Reload all configs
      @ DEFAULT_EXECUTION_LEVEL 0                  # Default access level for access owner.
      @ SET_COMMANDS_ACCESSLEVEL <access_level>    # Set all commands to this access level.
      @ LOAD_CUSTOM_CONFIGS                        # Load the configs from the command line in CUSTOM_CONFIGS
      @ {MAP|CONFIG}_ROTATION_SET <item> <round>   # Set the item the round it should belong to
      @ {MAP|CONFIG}_ROTATION_LOAD <item_id>       # The current map/config will switch to the id given item_id.
      @ CUSTOM_INVALID_COMMANDS <prex1>;<prex2>;   # The command line with the list of unknown command prefixs
      @ LADDERLOG_ENABLED 0                        # Flag to enable/disable ladderlog. Default: 0.
      @ QUEUE_MAX 30                               # The maximum queues every player can reach maximum through refills and increases.
      @ TURN_DOUBLEBIND_{LEFT|RIGHT}               # To turn easily for people with difficulty with multiple fingers.
      @ QUEUE_REFILL <name>                        # Manually refill a player of their queues.
      @ QUEUE_GIVE <name> <amount>                 # Gives the player that amount to queue.
      @ BOOT <name>                                # Kick this person as many times you like and no auto ban will occur.
      @ RUBBERZONE_RUBBER <rubber>                 # Gives a default amount of rubber a rubber zone should handle.
      @ {MAP|CONFIG}_STORAGE                       # Similar to the {MAP|CONFIG}_ROTATION but is for non-rotation purpose. Quauable.
      @ QUEUERS_LIST <id>                          # Show the list of queuers.
      @ SHOT_PENETRATE_WALLS <0|1>                 # Set to 1 to have shot zones going through walls.
      @ CLEAR_LADDERLOG                            # Remotely clear the ladderlog
      @ CLEAR_CHATLOG                              # Remotely clear the chatlog
      @ CLEAR_SCORELOG                             # Remotely clear the scorelog

      @ RACE_RECORDS_LOAD <0|1>                    # If set to 0, racing records will not load. Default: 1.      
      @ RACE_RECORDS_SAVE <0|1>                    # If set to 0, racing records will not save. Default: 1. 
      
      @ RACE_SHOT_ENABLED                          # Set to 1 if you want to start shooting.
      @ RACE_SHOT_RADIUS <radius>                  # The radius of the shooting zones.
      @ RACE_SHOT_ROTATE <speed>                   # The speed at which the shooting zones rotate.
      @ RACE_SHOT_VELOCITY_MULTI <speed>           # The multiplier at which the shooting zone should speed up with cycle's speed
      @ RACE_SHOT_CHANCES <amount>                 # The number of times a racer gets the chance to shoot in the same round.
      @ RACE_SHOT_PENETRATE <0|1>                  # Set to 1 if you want shooting zones to go through walls, Default: 0.
      
===========================
Changes in r887
===========================
Improvements:
    * Fixed the slight problem occuring due to queue load during map.
    * Better SET_ZONE_* command code.    

Additions:
    * HIDE_CYCLES_WALLS  # Hides walls of other cycles except the users while they are alive.
    * SET_ZONE_ROTATION  # Set the speed at which a zone should turn at.
    * Added SET_ZONE_ID_* commands as foretold in NEWS-TODO.        

===========================
Changes in r885
===========================
Improvements:
    * Added missing language strings in english_base.txt
    * Zones rotation now work fine.
    * HIDE_CYCLES now completely causes other cycles to vanish while your playing.
      This also ensures that your the only player you can see (unless your using
      hud map from 0.4 trunk version).            

Additions:
    * Readded DEATHZONE_ROTATION but made it into a trigger command. Enabling that
      will let you set the rotation of all spawning deathzones.
    * Added DEATHZONE_ROTATION_SPEED which is the speed at which the deathzone spins.
    * Added SET_ZONE_ROTATION which is like all SET_ZONE_* commands. Give the name of the zone
      and set the speed at which that zone should spin at.            

===========================
Changes in r884
===========================
Removed:
    * DEATHZONE_ROTATION  # Command was not working and so there is no point in having it.

Improvements:
    * Implemented the colors in name length limit. The code checks the player for any color
      codes after filteration (if filter is enabled, colors will be removed). IF colors exist
      in their name, then their colors will get removed and the code checks the length of their
      name. IF length of that name is less than 16, then those colors will be accepted into server.        

===========================
Changes in r883
===========================
Improvements:
    * Racing: Using different method to load/save map records. Previously
              overwritten or transfer to wrong maps occured. Hopefully it's fixed now.
    * Added other protocol versions of clients/servers to the code. nConfig.cpp is it.

Additions:
    * Forgot to mention these previously.
    * New Commands:
        + COLLAPSE_ALL  # Causes all zones on grid to disappear smoothly.
        + DESTROY_ALL   # Causes all zones on grid to disappear instantly.

===========================
Changes in r880
===========================
Improvements:
    * Added missing language commands to english_base.txt
    * Fix team member count sometimes being incorrect on the client.
      A player's wish to join a different team isn't always accepted by the server.         

Additions:
    * SHOW_COLORED_NAMES  # If set to 1, colored names appear over cycles.

===========================
Changes in r879 | Forgot to inform about this.
===========================        
Additions:
    * LOGIN <name> <username>  # Using this command you can prompt/login the 
                               # selected player under the <name> with the 
                               # given <username>.
    * LOGOUT <name>            # Using the given <name>, find the player and
                               # logs them out if they already logged in.
    * Custom Shorthand commands:
        !- CUSTOM_SHORTHAND_ENABLED <0|1>     # If set to 1 and CUSTOM_SHORTHAND is found,
                                              # then CUSTOM_SHORTHAND_CONNECTION will be used to connect.
        !- CUSTOM_SHORTHAND <authority>       # The custom authority to trigger when a player tries to login.
        !- CUSTOM_SHORTHAND_CONNECTION <link> # The link to connect to when using custom shorthand. Do not include http://

===========================
Changes in r877 | Plasma Update
===========================
Improvements:
    * Able to hide other cycles but that only applies to client side of the command.
    * Racing: Now displays what rank and how much slower or faster and rank they have improved.
    * Racing: Records with time -1 will display as "UNDONE" which means that player has not finished that map.
    * Using !race save/load will forcefully save/load records.
    * Queue: Tick increases by 0.35 everytime the function is called into action.               

Additions:
    * SUSPEND_ALL         # Using this command, everyone will get suspended by SUSPEND_DEFAULT_ROUNDS.
    * UNSUSPEND_ALL       # Unsuspends all players, whether suspended or not.
    * HIDE_CYCLES         # If set to 1, other cycles virtually disappear while you are alive.
                          # When you are dead or spectating, all cycles are visible.

Modifications:
    * RENAME command now doesn't allow for name change if the name set is blank.
    * Gave moderations for the following commands:
        + VOTES_CANCEL
        + VOTES_SUSPEND
        + VOTES_UNSUSPEND
    * Following commands are comverted into client side
        + SHOW_OWN_NAME
        + FADEOUT_NAME_DELAY
                    

===========================
Changes in r876
===========================
Improvements:
    * Noticing the trouble with un/suspend, I readded unsuspend and made it easier to handle.
    * Ladderlog events for PLAYER_ENTERED/RENAMED/LEFT now also include the player's id before their log name.

Additions:
    * KILL_ID           # Kills the player with that id.
    * PLAYER_ID_MESSAGE # Send the personal message to that player by the specified id.

===========================
Changes in r870 | Queueing Limitations
===========================

Corrections:
    * Originally rotation used to rotate items causing things to change without warning.
      Now rotation will resume from where it stopped at by reloading the original stuff.         

Additions:
    * Added limitations to the queueing feature due to limitless overuse. >:(
    * Commands:
      + QUEUE_LIMIT           # This is the amount that players can use up for queueing maps or configs.
      + QUEUE_LIMIT_EXCEMPT   # Access level equal to or below this do not have queue limit.
      + QUEUE_LIMIT_ENABLED   # Should the people have limits when queueing?
      + QUEUE_INCREMENT       # If set to >0, players will get their queues increased during refill by this amount.
      + QUEUE_REFILL_TIME     # How long each time should players refill take? This is measured in hours.
      + QUEUE_REFILL_ACTOVE   # Should players be in server to have their queue refill active?     

===========================
Changes in r864
===========================
Corrections:
    * gWinZone => gZone # Better name than the previous name
    * Fixed rotation listing for /mr <start_id> bug!    

Improvements:
    * Soccer Style:
      Previously the soccer ball zone was able to move and do what it was meant to.
      The only drawback was the sync. Due to unknown reasons the ball didn't sync
        very well with the server. It was must surprising even to track the ball
        and find out where it had gone of to.

Additions:
    * PingPong Style | An Idea inspired by the pingpong game I played as a child:
      # Does nothing yet... #
      + PINGPONG_ENABLED    # If set to 1, pingpong mode will be activated!
      + PINGPONG_POINTS     # Points received each second for keeping the pingpong
                            # ball from entering the deathly deaht zone.
      + PINGPONG_BALLS      # Number of pingpong balls given to each player.
    * Commands:
      = ROTATION_TYPE       # Set to 5 to activate ROTATION_MAX.    
      = ROTATION_MAX        # If set to >0 and rotation is enabled, current rotation item 
                            # will remain the same until till ROTATION_MAX. After which,
                            # the rotation will activate ORDERLY type and change map/config.    

===========================
Changes in r852
===========================
Additions:
    * TIMER_RESET                       # Resets the ingame timer back to default.
    * DEATHZONE_RANDOM_COLORS [0|1]     # Default: 0; If set to 1, deathzones will have their colors by randomness.    

===========================
Changes in r851
===========================
Improvements:
    * Moved Zone's rotation setting to better location.
    * Improved upon the racing framework. Now it only takes in times and disregards scores.    

Additions:
    New Comaands:
        * TIMER Settings
            * TIMER_START <seconds>  # Starts a ingame timer, giving players <seconds> to do something
                                       before getting killed.
            * TIMER_STOP             # Perfectly stops the ingame timer.
            * TIMER_RESUME           # If the timer was previously stopped, it resumes from where it last stopped.
        * TARGETZONE_COLOR_ Settings
            * TARGETZONE_COLOR_R     # Red portion of the target zone's color.
            * TARGETZONE_COLOR_G     # Green portion of the target zone's color.
            * TARGETZONE_COLOR_B     # Blue portion of the target zone's color.
        * DEATHZONE_ROTATION         # The speed at which the death zones rotate.

Languages:
    New Language String:
        * timer_countdown     # This is the countdown ingame timer uses to output the remianing time

===========================
Changes in r850
===========================
Corrections:
    * Fixed the team name update for players after logging in.
      Reason: The error seemed to be occuring due to the custom teamname setup
              taking in their logged in username and not their actual name.
    * Updating a few thigns in the english_base.txt

Improvements:
    * LADDERLOG_WRITE_CURRENT_MAP
        # Original: CURRENT_MAP <map_file>
        # New Work: CURRENT_MAP <size_factor> <map_file>

Additions:
    New Commands:
        * ARENA_BOUNDARY       # This is the distance players can travel outside the arena boundary.
        * ARENA_BOUNDARY_KILL  # If set to 1, Players beyond the ARENA_BOUNDARY will be killed.      

===========================
Changes in r847
===========================
Corrections:
    * Fixed up the updating problem from previous entry from sty+ct in gGame.cpp

Improvements:
    * 0.2.8-armagetronad-work
        * Using singleton pattern to make memory manager report leaks reliably again without a ton of false positives. - Z-Man.
    * Improved SUSPEND_LIST where the output will appear as:
        List of suspended players:
        ( player_username | rounds_suspended | suspended_reason )

Additions:
    * SUSPEND command now uses different approch to how it suspends players.
        *  First field would always be the player's name, the play you want to suspend.
        *  Second field would be the number of rounds, if this contains words, then it won't be registered.
        *  Third field would be for the reason as to why suspend this person
    * Removed UNSPUSPEND because you can unsuspend a player simply by doing:
        SUSPEND [player_name] 0
        * The 0 value will automatically cause the player to unsuspend.
    * Added /chat command for chats.
        # This command works similar to an access level chat system that only the
          players with the access level or lower (lower is better) can view that message.
        # I got this idea after vitnessing some hopeless people using /admin # message to
          message each other. That's so silly as /admin is only for changing settings and nothing more.
        # Output *{ACCESS_LEVEL_NAME}* [screen_name]: [message]
    * Added comand: "ACCESS_LEVEL_VIEW_CHATS"
        # This command is the access level for "/chat" above.
        # Using this command, you can set it to some access level value.
        # If players, sending message, have access level equal to this or lower, then the 
          message is sent. Equally, players will also receive the sent message.

Removed:
    * CHATLOG_WRITE_PM
        # I simply think this should not be allowed because personal messages should
          be personal messages.
        # Having this command allows for players to do some
          really bad things.
        # Such as abusing powers and if players are exchanging some details that fall
          in the wrong hands. That's just no good at all. 

===========================
Changes in r841
===========================
Corrections & Improvements:
    * Improved the method used for MAP_ROTATION and CONFIG_ROTATION
    * Added chat commands: "/mr" and "/cr" to display maps and configs in rotation.

New Command:
    * SPAWN_OBJECT_ZONE     # [x] [y] [growth] [radius] [xdir] [ydir] [interact] [r] [g] [b] [target_radius]
                            # This command is similar to SPAWN_ZONE but creates a Object zone instead.

New ladderlog command:
    * OBJECTZONE_SPAWNED    # Writes to ladderlog: OBJECTZONE_SPAWNED [id] [name] [x] [y] [xdir] [ydir]

===========================
Changes in r840
===========================
Corrections & Improvements
    * Improved the code for MAP_ROTATION and CONFIG_ROTATION

Ladderlog commands:
    * OBJECT_PLAYER_ENTER   # [zone_id] [zone_name] [zone_position_x] [zone_position_y] [player_name] [player_position_x] [player_position_y] [player_direction_x] [player_direction_y] [game_time]
    * OBJECT_ZONE_ENTER     # [zone_id] [zone_name] [target_id] [target_name] [target_position_x] [target_position_y] [target_direction_x] [target_direction_y] [game_time]
    * ZONE_SHOT_RELEASED    # [0-shot|1-deathshot] [id] [player_name] [zone_position_x] [zone_position_y] [zone_direction_x] [zone_direction_y]

New Commands:
    * DESTROY_ZONE          # Works like COLLAPSE_ZONE but causes the zone to disappear instantly
    * COLLAPSE_ZONE_ID      # Collapses zones with the matching id
    * DESTROY_ZONE_ID       # Similar to COLLAPSE_ZONE_ID but causes the zone to disappear instantly                

===========================
Changes in r836 | Soccer Update
===========================
Corrections & Improvements:
  * Teamname: Now this item appears AFTER Player name:. Did not notice the difference in "Jumbo Package" update.
  * Soccer Zones now available
  * Enabling a command now allows players / ai to avoid zones. It's not fully tested but currently is functional.
  * Added command for tab completion which asks for player's to enable it if they wish to use it.

New Command:
  * CYCLE_ZONES_AVOID     # If set to 1, cycles will try to avoid the zones.
                          # This command is still in testing so it won't work all the time.
                          # For human players it activates only when they are in chat mode.
                          # For AI Players, it is always active.
  * TAB_COMPLETION        # If set to 1, the tab completion of names or commands will be enabled.
                          # A personal setting if you want to use it or not.  
                          # Check "Jumbo Package" revision on how to use that feature.  
New Features:
  * Soccer Zones
    # Description:  
    # This is a latest addition to the list of already amazing features filled in this game.
    # Socker is like the real-life game style, you use the sockerball to shoot it into an
    # opponent's goal to score points
    #
    # Commands are:
    # * SOCCER_GOAL_KILL_ENEMIES 0        # If set to 1, enemies entering other team's goal will be killed.
    # * SOCCER_GOAL_SCORE 1               # Number of points scoring team gains for shooting the socc`er ball through the other team's goal.
    #  
    # * SOCCER_GOAL_RESPAWN_ALLIES 1      # If set to 1, team mates will respawn after entering their own goal
    # * SOCCER_GOAL_RESPAWN_ENEMIES 1     # If set to 1, enemies will respawn if the other team enters their goal
    #  
    # * SOCCER_BALL_FIRST_WIN 0           # If set to 1, first goal made by a team will be declared the winners of that round.
    # * SOCCER_BALL_SHOTS_WIN 0           # If set > 0, the number of times the ball must enter other team's
    #                                     # goal. Sending the ball in their own goal does not count.
    #                                     # Once these many shots have been accounted for, the round winner
    #                                     # will be decided by the team with the leading score.
    #                                     # Comparing the score between the shooting team and the team owner
    #                                     # of the goal.
    # * SOCCER_BALL_SLOWDOWN 1            # If set to 1, soccer balls slow down.
    # * SOCCER_BALL_SLOWDOWN_SPEED 0.07   # If SOCCER_BALL_SLOWDOWN is set to 1, then the soccer ball will
    #                                     # slow down depending on the value set for this command.
    #                                     # Cannot have values over 1 or less than 0.
    #
    # Ladderlog commands:
    # * SOCCER_BALL_PLAYER_ENTERED        # Write to ladderlog: SOCCER_BALL_PLAYER_ENTERED [auth_name] [team]
    # * SOCCER_GOAL_PLAYER_ENTERED        # Write to ladderlog: SOCCER_GOAL_PLAYER_ENTERED [player_auth_name] [player_team] [team owner of the goal]
    #
    # DTD & Map:
    # soccergoal & soccerball effetcs can be found in the latest DTD
    # DTD File: map-0.2.9_styctap_v1.2.dtd
    # Map File: Lover-Boy/soccer-1.0.0.aamap.xml
    # Settings: examples/crazy/soccer.cfg

New Menu Items:
  * Special Setup
    # Description:
    # In this special special setup menu, you will find a few new additions to the game and they will be easier to
    # access from here, rather than to go to the trouble of using Con: COMMAND_...
    #
    # List:
    # * Highlight Name    # If it's on, then your name will get highlited in strings.
    # * Tab Completion    # If it's on, the tab completion will be enabled.

===========================
Changes in r834
===========================
Corrections & Improvements:
  * Previously the command "ENABLE_MATES_CASING" has been added.
    What was not implemented was the menu toogle for it. In this update
    the menu toogle option has been added. So, in your clients, when you enter
    "Mates" menu, you will see the option Mates Casing On/Off
  
  * Did not notice the bug caused by the mates casing in client when filtering
    mates. Fixed it now and works smoothly.
  
  * Took out FILTER_COLOR_STRINGS & FILTER_DARK_COLOR_STRINGS from local display
    Reason was simple, I only found that a strange problem but seriously, the
    real stuff works in the main framework of the server chats.
  
  * Improved the function of the resource system. Not the file will be downloaded
    and if it's a map file, it will be checked. If it does have the necessary pointer,
    then it'll stay nad be parsed by the "real" system. If it's not a valid map file,
    then it will automatically be deleted.

New Command:
  * RESOURCE_REPOSITORY_CHECK   # Type in the MAP_FILE string here and it will be
                                # checked through the backup host list and display
                                # whether that file does exist in that host or not.
                                
                                # WARNING: During the execution of this command,
                                # server/client will freeze for a couple of seconds.
                                # I'm telling you, that is not a bug! It's merely
                                # connection timing and that's causing the delay in loading.
                                
                                # It is advisable to perform this command when there aren't
                                # any players currently playing in your server or client.     

===========================
Changes in r832
===========================
Corrections & Improvements:
  * Due to dissatisfaction, FILTER_COLOR_STRINGS & FILTER_DARK_COLOR_STRINGS has
    been modified so that it works in local display as well. May not be necessary
    but it didn't work during debug state or any other.
  * Added ENABLE_MATES_CASING because of a personal choice thinking. It is clear
    the use of irregular letters in name causes some hassle for server but this
    personal choice setting will be good for those prefered to search for mates
    who use that kind of name.    

New Commands:
  * HIGHLIGHT_NAME      # If set to 1, your name will get highlited in string.
  * ENABLE_MATES_CASING # If set to 0, mates casing will be ignored.

New DTD Features:
  New Version: map-0.2.9_styctap_v1.1.dtd 
  * rotate  # the speed at which the zone rotates. Works with <ShapeCircle ...>
  * delay   # the number of seconds to wait before the zone can actually appear on the grid
      
===========================
Changes from r823 - r829 | Jumbo Package
===========================
Corrections & Improvements:
  * Due to a spelling mistake of mine, I spelt queueing wrong. I fixed it now.
    - MAP_QUEUEING, CONFIG_QUEUEING
    - Language strings to queueing, all fixed!
  * Improved the setup of the tab completion. Added feature for tab completion for "Con: ".
  * Added *DEAD* tag for dead players (not spectators). Can only be displayed for those using our client.
  * Added "Merging dlh's deadly explosion branch." r1166 from armagetronad branch, commit by Manuel Moos(Z-Man).      
        
New Race Commands:
  * SCORE_RACE_FINISH   # Points playes will be awarded for crossing the finish line
  ------------------------------------------------------------------------------  
  * RACE_POINTS_TYPE    # if set to 0, players receive points depending on SCORE_RACE_FINISH  
                        # if set to 1, players receive points depending on RACE_SCORE_DEPLETE
  ------------------------------------------------------------------------------

New Commands:
  * CUSTOM_MESSAGE      # Calls upon the string located within your language file
                        # Execute: CUSTOM_MESSAGE hello_world
                        # If "hello_world" exists within the language file, it loads the string
                        # Inside Language File: hello_world Hello World!\n
                        # The output will be displayed on the client's screen as
                        # Hello World!
                        
                        # Example 1:
                        # Execute: CUSTOM_MESSAGE player_reach_race
                        # Output Similar to: 1 finished with 10 points in  seconds
                        
                        # Example 2:
                        # Execute: CUSTOM_MESSAGE player_reach_race lover$boy 5 15.5432
                        # Output : lover$boy finished with 5 points in 15.5432 seconds
                        
                        # This command not only loads in the language string command, it also replaces those
                        # \1, \2, \3 indicators. In example 2 you see those indicators as:
                        # Language String Command: player_reach_race \1 0xfffffffinished with \2 points in \3 seconds.\n
                        # \1 = lover$boy | \2 = 5 | \3 = 15.5432
                        # So to speak, it looks like this: CUSTOM_MESSAGE player_reach_race \1 \2 \3 ...
                        # They can go on depending on your choosing of calling this command
                         
  ------------------------------------------------------------------------------  
  * SAY                 # This command used to exist but I removed it because I had a secret reason.
                        # Read bellow command to know why
  ------------------------------------------------------------------------------
  * ADMIN_NAME          # The name of admin in chat string
                        # When you normally type SAY I am admin!
                        # Output will be "Admin: I am admin!"
                        # With ADMIN_NAME, you can change that displaying name to whichever you like.
                        # Example: ADMIN_NAME LOVER$BOY
                        # Execute: SAY I am the one and only LOVER$BOY!
                        # Output : "LOVER$BOY: I am the one and only LOVER$BOY!"
  ------------------------------------------------------------------------------
  * DELAY_COMMAND_CLEAR # Clears all stored commands in DELAY_COMMAND
  ------------------------------------------------------------------------------
  * SILENCE_ENEMIES     # When enabled, chat sent from enemies is not displayed on your client
                        # if you are alive. If you are dead all chat is displayed.
  ------------------------------------------------------------------------------
  Merging dlh's deadly explosion branch:
  * DEADLY_EXPLOSIONS     # If set to 1, cycles in the blast radius of an explosion be destroyed
  * SCORE_EXPLOSION_OWNER # Points the owner of an explosion gains for destroying another enemy cycle.
  * SCORE_EXPLOSION       # Points the enemy cycle destroyed in an explosion gains.
  ------------------------------------------------------------------------------
  * DISPLAY_SCORES_DURING_CHAT   # Tabbing during chat gets annoying when the scores keep appearing and
                                 # disappearing. This command works individually and is enabled right now
                                 # but you can choose to disable it and have a good time tabbing names
                                 # without having to worry about appearing score board.        
  ------------------------------------------------------------------------------

New DTD Features:
  * Official Stable DTD Release: Lover-Boy/map-0.2.9_styctap_v1.0.dtd
  * Eaxmple Map: Lover-Boy/example-1.0.0.aamap.aamap.xml
  - Features:
    * Element: Move now has "interact" & "route" attributes.
               - interact - if true, zones will bounce of walls and the oppsite for false
               - route    - the route the zone follows. This was taken from SPAWN_ZONE
                            In SPAWN_ZONE to have route, you do L x1 y1 x2 y2 Z but here
                            you place it as:
                            <Move xdir="20" route="x# y# x# y# x# y# x# y#" />
                            Replacing the x# and y# with points of the route for the zone to follow.
                            
    * Element: Teleport, to be used mainly with <Zone effect="teleport">
               - Moved all the attributes belonging to teleportation to Teleport Element.
               - List include:
                 + destX  # The destination x point cycle will be teleported to
                 + destY  # The destination y point cycle will be teleported to
                 + dirX   # The x direction cycle will be driving in after teleporting
                 + dirY   # The y direction cycle will be driving in after teleporting
                 + modes  # Helps to calculate how the teleporting should work 
                 + reloc  # Should the cycle teleport or something?  
    
New Error Log:
  * Any errors detected in Resource will be stored in your ".../var/errors/resource_errors.txt"
  * Any errors detected in Logging will be stored in your ".../var/errors/login_errors.txt"

Nea Features:
  * TEAMNAME_1-4        # Customizable team names now available. Although they don't work in most servers.
                        # If you ever enter a 0.3 server, then this will be quite handy, especially in:
                        # Adventures of Tron - Advanced Racing server
  ------------------------------------------------------------------------------
  * Tab Completiiton    # This is a feature only reserved for 0.4 but a new system to work
                        # nicely with the 0.2.8 version of the client has been programmed.
                        # How it works is... simply type in a name (player or command) and hit tab
                        # and it should auto complete it for you. Quite good but lazy at the same time.
          -----------------------------------------------------------
          - Player Name : How?
                          In chat, simply type some part of a name and hit tab and it should automatically
                          get the most closest matching string of it. If it doesn't auto-fill, then there
                          couldn't be any match to be found.
                          
                          Used by?
                          {normal} /msg /shout
                          {normal} - clean text, without chat commands
          -----------------------------------------------------------
          - Command Name: How?
                          In chat, type /admin and then a command and hit tab. Command will fill with the
                          matching beggining command.
                          
                          Used by?
                          {normal} /admin
                          {normal} - clean text in "Con: "    
  ------------------------------------------------------------------------------        

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Changes in 0.2.9-sty+ct+ap_r822
New race commands:
  * RACE_LOG_UNFINISHED         # Should the players that have not finished that map be recorded as well?
  * RACE_CHANCES                # Chances player has of playing in the map after death.
                                # Adjusting this during round is a bad idea... will not affect the already
                                # playing cycles on grid.  
  * RACE_FINISH_KILL            # Should the player be killed soon after crossing the finsih line?
  // Ranks are below
  * RACE_NUM_RANKS_SHOW_START   # The number of ranks to display at the beginning of round
  * RACE_NUM_RANKS_SHOW_END     # The number of ranks to display at the end of round
  * RACE_RANKS_SHOW_START       # 0-disable, 1-From top, 2-around your rank! Default 1.
  * RACE_RANKS_SHOW_END         # 0-disable, 1-From top, 2-around your rank! Default 2.
  * RACE_SMART_TIMER            # 0-uses default settings for timer, 1-uses the ranks to measure the timer.
Modifications:
  * placed "extern gArena *Arena" in "gArena.h" instead.                   

Changes in 0.2.9-sty+ct+ap_r818
New ladderlog.txt commands:
  * LADDERLOG_WRITE_AI_POSITIONS        # If enabled, ai player's team positions will be written to ladderlog
  * LADDERLOG_WRITE_PLAYER_COLORED_NAME # Output: PLAYER_COLORED_NAME log_name players_colored_screen_name  
  * LADDERLOG_WRITE_ROUND_STARTED       # Output: ROUND_STARTED time
  * LADDERLOG_WRITE_TEAM_COLORED_NAME   # Output: TEAM_COLORED_NAME team_name colored_screen_name
  * LADDERLOG_WRITE_OBJECTZONE_PLAYER_ENTERED # Output: PLAYER_ENTERED zone_name zone_xpos zone_ypos player_login player_posx player_posy player_dirx player_diry time
  * LADDERLOG_WRITE_OBJECTZONE_PLAYER_LEFT # Output: PLAYER_LEFT zone_name zone_xpos zone_ypos player_login player_posx player_posy player_dirx player_diry time        
Added features:
  * CYCLE_CREATED now includes team_names # Output: CYCLE_CREATED log_name posx posy dirx diry team_name
  * TEAM_CREATED now includes the screen_name of the team # Output: TEAM_CREATED name screen_name
  * TEAM_RENAMED now includes the screen_name of the tema # Output: TEAM_RENAMED old_name new_name new_screen_name      
New commands:
  * LIST_ALL_COMMANDS # This is mainly based to output all available commands to commands_list.txt in the /var/ directory
New features:
  * New zone: object zone # This is mainly used to check when players entered this zone and then left.
    This feature has been added to SPAWN_ZONE.    

Changes in 0.2.9-sty+ct+ap_r816
Fixed commands:
- CYCLE_WALL_TIME
  * Previously this command was not functional for unknown reasons
  * Now however it is fully operational with an extra addition.
  * Values below 0 will make sure players won't start building tails.
  * If this value is changed during the round to something above 0, the tails will start building.
  * That being said, it also depend on the game's current time. Meaning that the tails
    will start building once the game time reaches or moves over that given time value.
New Features:
- Zone types can now contain "burst" which increases a players speed like a booster. SPAWN_ZONE also contains this.
  In turn negative values could also slow down players' cycles. Never tested it but it's worth a shot!
- Move is now available which enables Zones to move in the set directions like xdir and ydir
- Usage of this can be found in Lover-Boy/example-1.0.0.aamap.xml 

Changes in 0.2.9-sty+ct+ap_r815
- Did a few changes on finding a team in gParser.h
- Now you can have Teleport zones inside the map
- In <ShapeCircle> you can also have <Color r="" b="" g="" /> with <Point ... />
- These new changes are available in Lover-Boy/map-0.2.8.3.1_sty+ct+ap_v1.1.dtd

Changes in 0.2.9-sty+ct+ap_r814
- Fixed the coloring problem with the * icon when players are either in chat mode or idle
- Added new ladderlog command:
  * LADDERLOG_WRITE_CYCLE_DESTROYED   Output: CYCLE_DESTROYED [auth_name] [posX] [posY] [dirX] [dirY] [team]
  * LADDERLog_WRITE_PLAYER_ENTERED_GRID         Writes when a player entered server to play on the grid
  * LADDERLOG_WRITE_PLAYER_ENTERED_SPECTATOR    Writes when a player entered server as a spectator
    Both PLAYER_ENTERED_[GRID/SPECTRTOR] were derived from PLAYER_ENTERED ladderlog command so that we can
    be more specific as to which way the player entered the server.
  * LADDERLOG_WRITE_PLAYER_AI_ENTERED           Writes when a ai entered the grid
  * LADDERLOG_WRITE_PLAYER_AI_LEFT              Writes when a ai left the grid       

Changes in 0.2.9-sty+ct+ap_r811
- Added new commands:
  * MAP_QUEING        Store and load maps in a que every round until empty. The maps must exist in MAP_ROTATION
  * CONFIG_QUEING     Store and load configs in a que every round until empty. The configs must exist in CONFIG_ROTATION
     # While the que is not empty, the normal rotation will pause.
     # Once empty, the rotation will resume from last pause point.
     # If the rotation is set to rotate per round and this ended half-way through the round, then you'll be stuck
       in the same map before the rotation changes the map unless you choose to manually MAP_FILE author/category/...
     # You can only add one map/config to the queing system each time you use it
  * CONFIG_ROTATION_TYPE        What type of loading will the CONFIG_ROTATION files use? 0-INCLUDE or 1-RINCLUDE? Default: 0
  * RESET_MAP_QUEING            Clears all entries in the list of maps
  * RESET_CONFIG_QUEING         Clears all entries in the list of configs
  * ACCESS_LEVEL_QUE_MAPS       The level required for any player to use /mq add & remove    
  * ACCESS_LEVEL_QUE_CONFIGS    The level required for any player to use /cq add & remove
  * SHOT_BASE_RESPAWN           If enabled, when you shoot at your team base, your teammates will be revived
  * SHOT_BASE_ENEMY_RESPAWN     If enabled, when you shoot at your enemy team's base, your enemies will be revived          
- Chat commands:
  * /mq - Map Queing; /cq - Config Queing;
    Their arguments are as follows:
    1. list/ls       - Lists the items that are in the que currently.
    2. add [item]    - Adds a new item specified by [item]. It does not make a new copy of the existing item in the que.
    3. remove [item] - Removes a item that already exists in the que as specified by [item].
  * !race stats [player_name]
    The new argument's explanations:
    1. [player_name] - This is where you enter a player's name to search for in the racing records.  
- Fixed Commited:
  * Fixed the variables with the ball and base zone commands   
    + Base zone commands:
      - FORTRESS_SURVIVE_WIN - Changed fron int to bool. Easier to handle.
      - FORTRESS_CONQUER_WIN - Changed from int to bool.
    + Ball zone commands:
      - BALL_KILL       - Changed from int to bool.
      - BALL_TEAM_MODE  - Changed from int to bool. Easier to handle.
  * Fixed the saving racing map records. Now they will save in var directory as:
    .../var/race_scores/author/category/...
    This seems to be a lot better handler than the earlier code as two maps with similar names from different
    authors did cause a glitch in the records.                

Changes in 0.2.9-sty+ct+ap_r808
- Racing script has been coded again for as better and flexible recording of score and time
- Racing now displays best time or best score depending on RACE_SORT_TYPE
- Added new command:
  CYCLE_RUBBER_DEPLETE_SELF   Enabled, it will reduce rubber like normal when you hit your own tail
  CYCLE_RUBBER_DEPLETE_ENEMY  Enabled, it will reduce rubber like normal when you hit enemy's tail
  CYCLE_RUBBER_DEPLETE_TEAM   Enabled, it will reduce rubber like normal when you hit team's tail
  CYCLE_RUBBER_DEPLETE_RIM    Enabled, it will reduce rubber like normal when you hit the rim wall
  All of the above commands are proved to work but after a certain acceleration, they loose affect and
  people will be killed instantly.
- New Chat command for racing: !race
  If you use !race stats, then it wil display your rank, score and best time for that map
- Taking the example of the chat symbol from the TRUNK version, the * before the player's name
  when they are chatting has been added. 

Changes in 0.2.9-sty+ct+ap_r806
- Placed ROUND_ENDED and MATCH_ENDED in a better location
- PLAYER_MESSAGE doesn't require the " " to enclose the message
- The race scores, times will be written as the player reaches the winzone or dies.

Changes in 0.2.9-sty+ct+ap_r800
- Recording racing scores and best time, now it also records your player names
  OUTPUT: [ranked_name] [high_scores] [best_time] [player_name]
- In previous versions, players enter the race ladder only when they enter the winzone.
  Now they can enter the ladder even without reaching the winzone. Though, please try
  and reach it :P

Changes in 0.2.9-sty+ct+ap_r797
- Added RACE_TRYOUTS
  This enables players to play for this many amounts during a round if they die.
  It depletes everytime they die.
    
Changes in 0.2.9-sty+ct+ap_r796
- Added RACE_HIGHSCORES_LOCATION command
  This command is to tell the game where the scores will be located and read from.
  Default value is NULL. When it's NULL (need to be capital), the game automatically refers back to the /var/ directory.
  
Changes in 0.2.9-sty+ct+ap_r795
- Fixed the problems occuring with RACE_SCORE_TYPE.
  I accidently put them in reverse order:
    When it's meant to sort by score, it sorts by time and vice-versa.     

Changes in 0.2.9-sty+ct+ap_r793
- Added ladderlog.txt command: SHUTDOWN
  This command is outputed once the server has been shutdown using the EXIT/QUIT
  commands.
- Added RACE_SCORE_TYME [0|1|2]
  This command allows for your racing scores to be sorted in whatever way:
  0 - No sorting
  1 - Sort by best score
  2 - Sort by best time
- Racing highscores and best times will be logged in /var/race_scores/map_name-version.aamap.xml.txt
  I found it a lot easier to deal with using the maps full name and then dealing with it from there.
  You can use your scripts to input in the ladderlog command CURRENT_MAP and use that to do whatever
  that you need it to do.

Changes in 0.2.9_sty+ct+ap_r792
- Added ladderlog.txt commands:
  ROUND_ENDED
  MATCH_ENDED
- Foster McLane adjusted the outside bounds of the arena so as to make sure fools
  don't try to force themselves outside the arena walls any furthur than 1 meter
  of the perimeter.

Changes since 0.2.8_sty+ct+ap_r766
- Added Rotating maps/config files (Random and Ordered rotation)
- Added Race settings
- Added SCORE_BLASTZONE (Not related to SELF_DESTRUCT_ commands)
- Added new DTD: blast (available only in Lover-Boy/0.2.8.3.1_sty+ct+ap.dtd)
- Blast Zones now kill people (not related to SELF_DESTRUCT_ commands)
- Added Color deathzones and winzones commands:
  COLOR_DEATHZONE_(RED/BLUE/GREEN)
  COLOR_WINZONE_(RED/BLUE/GREEN)
- Added CHATTERS_ commands to deal with people in chat modes
- Added ladderlog commands:
  CURRENT_MAP [map_path]
  DEATH_DEATHZONE_TEAM [team] [prey]
- Added score command: SCORE_DEATHZONE_TEAM
- added chat command: /enemy
- ladderlog command: ONLINE_PLAYERS now includes their login level
- Added: RESPAWN_ALL, KILL_ALL, (UN)SILENCE_ALL
- Modified Say into: SPEAK_AS_ADMIN
- Added: SPEAK_TO_ENEMIES, SPEAK_TO_EVERYONE, ANNOUNCE
- Modified RESPAWN_PLAYER and removed [messageflag] for easier handle
- Fixed problems with SET_ZONE_, COLLAPSE_ZONE commands
- Added: fman's DECLARE_ROUND_WINNER
  