TASpring change log

0.74b1

- Linux vs Windows is now synced if binaries are built using gcc 4.0 or higher.

- Games with more then 10 players now work properly.
- Several improvements and fixes for autohosting, including a .kickbynum command.

- Added minimap commands (two modes, see the MiniMapFullProxy config param)

- Added "MiniMapGeometry" config parametery
- Added "TooltipGeometry" config parametery
- Added "TooltipOutlineFont" config parametery
- Added "InfoConsoleGeometry" config parametery

- Added "/resbar [0|1]" action
- Added "/tooltip [0|1]" action
- Added "/specteam <number>" action  (sets the spectator team)

- Added "newAttackMode" and friends to "ctrlpanel.txt"

- Added animated line stippling for queue rendering  (see cmdcolors.txt)

- Cursors can now use TGA and PNG file formats
- Added an optional cursor control file for easier timing/frame control

- Renamed the /layout command to /luaui
- Renamed the "ctrlpanel.lua" file to "gui.lua"

- Added "timewait [seconds] ["queued"]" action
- Added "deathwait ["queued"]" action
- Added "squadwait [count] ["queued"]" action
- Added "gatherwait" action
- Added "gathermode [0|1]" action

- Added a number of features to the LuaUI
  (see Documentation/lua_ui_interface.txt)

- Improved the outline font rendering speed

- numbers in .info list are now team numbers, so they match with '.team X' commands.
- names are now prefixed with 's:' 'a:' or 'e:' for respectively spectators, allies and enemies.
- if spectating, an arrow is displayed in front of the team you are currently watching.

- added Shift and Alt/Meta group selection modifier features
  (Shift adds members to current selection, Alt/Meta toggles them)

- added the  "viewsave <name>"  and  "viewload <name>"  actions
- added GetCameraState() and SetCameraState() to the lua GUI interface

- added "selectcycle [restore]" action 

- fixed queue build rendering (GL_DEPTH_TEST)

- added GetUnitHealth(), GetTeamResources(), and GetCommandQueue() to the lua GUI interface
- enabled loading the "ctrlpanel.lua" file from the VFS

- added "wait queued" and "selfd queued" to the default key bindings
- fixed WAIT behaviour for factories
- enabled queuing of Self Destruction commands
- added a pathetic SELFD cursor

- added "alwaysDrawQueue" and "buildBoxesOnShift" to cmdcolors.txt

- added the "invqueuekey [0|1]" action, and [InvertQueueKey=0] config parameter
- added mouse rocker gestures for immediate mode access when using inverted queue keying

- AIs can query a unit current fuelstorage via GetProperty() with property AIVAL_CURRENT_FUEL (2).
- AIs receive seismic pings via HandleEvent() function with message AI_EVENT_SEISMIC_PING (5).
- The icontype of enemy units is remembered if they are under continuous radar coverage.
- Ghosted buildings under continuous radar coverage don't have an error vector in their position anymore.
- Ghosted buildings also turn into unit icons when far away.

- Improved clickability of unit icons.

- Calling emit-sfx 2048 from a script will now allways fire the weapon. Emit-sfx 4096 will now take over the previous behavior of detonating the weapon at the piece position.

- Added unit FBI tag UnitRestricted to limit the number of a unit type allowed in a game.

- Added CLOAKED (76) and WANT_CLOAK (77) to get/set in cob script.

0.73b1

- added the ability to layout the control panel widget layout with a LUA script
  (uses a file called "ctrlpanel.lua")
- added the "/layout" command for direct interaction with the layout lua script

- Map packs (ie. multiple maps in one archive) are officially unsupported now because of technical reasons.

- Added keyword "dir" to explosiongenerator, this is a vector and can be diferent depending on what created the explosion.
  If created at a weapon impac it is the direction of the impact.

- Added the abillity to call explosiongenerators and weaponfire from within script via emit-sfx command.
  Explosiongenerators to be called via script are defined in the unit TDF file in a section called SFXTypes, with tags explosiongenerator+n=some_explosion
  and then called via emit-sfx 1024+n.  
  Weaponfire are called via emit-sfx 2048+weapon_to_fire.

- added "ctrlpanel.txt" configuration file to control how the Control Panel
  is rendered (x/y icons counts, sizes, positions, prev/next menu icon
  locations, etc...)
- added an option in "ctrlpanel.txt" to render some of the screen text with
  an outlined font. This is a hack, and can cause FPS decreases on slower
  computers (main factor is blended fill-rate)

- added an outline around the minimap

- fixed reclaim exploit where extra metal was gained if you destroyed the building just before it would finish reclaiming.

- added "cmdcolors.txt" settings file to configure control indicator rendering
  (this includes command queue lines and ranges, highlighted unit ranges, the
   mouse selection box, and the selected unit boxes)
- added line width specification for items in "cmdcolors.txt"
- added blending mode specification for items in "cmdcolors.txt"

- removed "NoSound" config parameter in favour of "MaxSounds=0"
- passthru to the NullSound driver if there is a sound driver error

- added a page number to the control panel
- added "buildiconsfirst" command to toggle the order of control panel icons
  (also set the control panel page number to the cmdcolors.txt build color
   when the build icons are being placed first)

- added build range circles for immobile builders when holding shift over them

- added the techLevel variable to UserDef, with automatic detection of the
  tech levels in a mod based on the information in the sidedata.tdf file
- added the "techlevels" action, to save the tech levels to techlevels.txt
  (as well as sending them to stdout)
- display a unit's TechLevel in the tooltip window when cheats are enabled

- key commands now work while the GUI interface is hidden, and the default
  command cursor icon is updated as well
- change the control panel page when a key command accesses an off-page icon
- change the tooltip to reflect the unit being built rather then the builder
  while selecting the build position
- added cycling for command actions when more then one is available
- added "iconpos <#>" action, for positional access to control panel icons
- added "firstmenu" action  (resets the control panel to its first page)

- added "keyset" command for named keysets
- added "keysym" command for custom key symbols
- added "fakemeta" key binding command to provide another modifier

- added SmoothLines and SmoothPoints config parameters  (anti-aliasing)
  (0 = off,  1 = fastest,  2 = don't care,  3 = nicest)

- changed GameInfo so that it always displays map name and mod name

- group AI code now permits multiple AIs per dll/so. This is handled by
  identifying group AIs by a new datatype, 'AIKey', rather than using just
  the dll name. Group AI dlls should now implement GetAiNameList to return an
  array of available AI names in string (const char*) form, terminated by NULL. 
  The existing group AI interface functions GetNewAi, ReleaseAi, and 
  IsUnitSuited now take an unsigned aiNumber as their first parameter: this
  is a zero-based AI index, matching the array returned by GetAiNameList.

- improved default command selection

- added "/water   [0-3]" to control water rendering in-game
  (the optional number is the mode; without the number, it cycles through the modes)
- added "/shadows [0-1]" to control shadow rendering in-game
  (the optional number means off/on; without the number, it toggles)

- Fix mouse-drag-move to make units spread across the front if it's big enough, also somewhat take into account unit sizes. Added CTRL-Move, CTRL-Mouse-Drag(front) move to make units move at the speed of slowest unit.  
- [bugfix] Resource expendature now shows correct pull when economy is stalling.

- - Added transparency suport from texture2 in s3o drawing, requires advanced shading.
- added DualScreenMode and DualScreenMiniMapOnLeft configuration flags. 
    This causes the game view width to be one half of the screen width, so the minimap can take the other half. 
    You will need to spread your spring window across the 2 screens.
    Specifying DualScreenMiniMapOnLeft will place the minimap on the left hand screen, rather than the right (the default)
- geothermal vents with a geothermal unit on top will not create smoke.

- Added the following Unit FBI tags:
	canPatrol=1; Can the unit go on patrol
	canGuard=1; Can the unit guard things
	canAttack=1; Can the unit attack other units
	Reclaimable=1; Determines if a unit can be reclaimed by other units
	noAutoFire=0; (if set to 1, unit will fire once then switch to next target, and needs to be told to fire manually)
	canBuild (can the unit start new construction projects)
	canRepair (can the unit repair other things)
	canRestore (can the unit restore deformed ground)
	canReclaim (can the unit reclaim other things)
	canAssist (can the unit assist construction projects already started)

- added support for teamcolored nanospray (user option). Can be forced off by modder using gamedata/particles.tdf.
- new fbi tag shownanoframe: set to 0 to disable nanoframe while the unit is being built.
- new fbi tag shownanospray: set to 0 to disable nanospray.
- new fbi tag nanocolor: color of the nanospray and the nanoframe in red green blue format (white = 1 1 1).
  (These three fbi tags apply to the unit itself; not to the unit it's building.)

- linux vs linux is now synced, independently of the distribution & gcc version
- if host finishes loading before client executable is started spring no longer loses connection

- added the "say" action  (does work with the .give command)

- changed .clock and .info to local commands (/clock and /info now work as well)

- replaced key binding code with a more flexible solution:
  * can specify key for almost all commands (including unit builds)
  * can specify modifiers (Alt, Ctrl, Meta, Shift)
  * can bind the same key to more then one action
    (first available action is used, handy for build orders)

- added internal default bindings  (see rts/Game/UI/KeyBindings.cpp)
- added "unbindall"                command
- added "unbindKeyset    <keyset>" command
- added "unbindAction    <action>" command
- added "unbind <keyset> <action>" command
- added "bindbuildtype ..."        command  (aka: auto-binder)

- added "hotbind"   action for the control panel icons  (Ctrl+insert)
- added "hotunbind" action for the control panel icons  (Ctrl+delete)

- added /keysave and /keyload commands
  (keysave saves to "uikeys.tmp", not "uikeys.txt")
- added /keyprint, /keydebug, /keysyms, and /keycodes commands
  (these commands send information to stdout)

- added ability to specify item in icon mode buttons via its binding
  (ex:  "firestate 0" binding will set firestate to hold fire)

- added ability to specify item in combo box buttons via its binding
  (ex:  "aiselect Radar AI" binding will assign the selected units to the Radar AI)

- pseudo mouse actions now discard key repeats

- added command queue icons
- added build command queue directional lines
- added AreaAttack command queue area display

- added game info panel (with "gameinfo" and "gameinfoclose" actions)  (i)

- versionned the "archivecache.txt" filename (ex: "ArchiveCacheV4.txt")

- Quit and Share menus close when they receive ESC

- added "drawlabel" action  (avoid the double-click, and key repeats)

- added "screenshot png" action

- added "chatAll"        action
- added "chatSwitchAll"  action
- added "chatAlly"       action
- added "chatSwitchAlly" action
- added "chatSpec"       action
- added "chatSwitchSpec" action

- added tracked unit rotation
- added Average and Extents tracking modes
- added "trackoff"  action
- added "trackmode" action

- added "viewfps" action     (Ctrl+f1)
- added "viewta"  action     (Ctrl+f2)
- added "viewtw"  action     (Ctrl+f3)
- added "viewrot" action     (Ctrl+f4)

- added "firestate" action
- added "movestate" action   
- added "prevmenu"  action   (,)
- added "nextmenu"  action   (.)
- added "buildunit_<name>" action
- added "deselect" action
- added "select <selection criteria>" action  (redundant)

- added new water rendering mode, refracting+reflecting but without the heavy dynamic simulation.
- Added '--quit=T', '/quit T' commandline option to auto-quit spring on game over or after T seconds.
- Added '--minimise', '/minimise' commandline option to start spring minimised.
- added gradual feature reclaiming, see mantis #262
- support for rotating buildings by 90 degrees, bind to "incbuildfacing" and "decbuildfacing" (bound to ']' and '[' by default)
- modified the ground attack command for queued attack and area attack patterns
  (the last queued attack position is repeated for backwards compatibility)
- removed the height factor from AirCAI ground attack command drawing
- added word completion, with dot commands, player names, and unit names
  (does partial match reporting, and the unit names are only active for .give commands)
	-> "/<tab>" will show local commands
	-> ".<tab>" will show remote commands
- added console input history buffer
- added [DoubleClickTime=200] config parameter
- added [WindowEdgeMove=1], for folks who run windowed with fullscreen size
  (ex: good with X11/icewm to allow moving between virtual screens,
       and to avoid display lockups during crashes)
- disabled rendering while inactive (minimized)
- added a null sound driver [NoSound=1]
- merged global synced/unsynced "drawdebug" variables
- added vsync for GLX
- windows users can use [VSync=-1] to use system default
- allow selection of vsync rate

- [feature] A new group AI, "MexUpgrader AI" has been added. See http://taspring.clan-sy.com/wiki/MexUpgrader_AI for more info.
- [feature] Custom unit icons are supported. See http://taspring.clan-sy.com/wiki/CustomUnitIcons for more info.
- [bugfix] 'Quit and Resign' dialog now also appears when you're hosting, and stays hidden when the game is over.
- [bugfix] Commands on enemy units (attack, reclaim) get canceled automatically when the unit leaves LOS / radar.
- [change] 'Quit and Resign' dialog now only gives everything to allies (and not enemies) if they are still alive.
- [change] The LOS drawing mode is remembered when you switch back and forth to others (e.g. metalmap, heightmap).
- [change] Radar and jammer range is shown by default if you press 'L'.
- [change] Radar and jammer toggle ';' happens instantly.

- New weapon tdf tag ColorMap, used for some weapon to define the color shift during their lifetime
	Used in flamethrower.
	Tag specify either a bitmap file, ex: "colormap = mycolormap.tga;"
	or defines the color directly in the weapon file in rgba order where 1 is full brightnes, 
	ex: "colormap=1 0 0 1 0 0 0 1" start with red color and shift to black at the end.

- New weapon tdf tag rgbcolor2, used to make laser weapon have different color at the center, defaults to white.
- New weapon tdf tag corethickness, how thick the inner color of a laser is, this is a percentage value, default is 0.25
- New weapon tdf tag laserflaresize, size of the flare for laser weapons, multiplier for thickness, default 15.
- New weapon tdf tag LargeBeamLaser, if set to 1 a beamlaser uses an alternate graphics effect.
	New tags usable for a LargeBeamLaser is:
		tilelength: defines the length before the texture used is repeated (tiled).
		scrollspeed: how fast the beam apears to be moving towards it target.
		pulseSpeed: how fast the pulsating effect at the beam start is.

- Texture tag added to the explosiongenerator for HeatCloud and Dirt
- New weapon FBI tags, texture1, texture2, texture3, texture4, the texture must be defined in resources.tdf in the projectile section.
	MissileProjectile (standar rockets and guided missiles):
		texture1 = flare
		texture2 = smoke
	LaserProjectile:
		texture1 = laserbeam
		texture2 = Start and end of the beam (half of the texture used at either end.)
	BeamLaserProjectile:
		texture1 = laserbeam
		texture2 = Start and end of the beam (half of the texture used at either end.)
		texture3 = muzzle flare
	LargeBeamLaserProjectile:
		texture1 = laserbeam
		texture2 = Start and end of the beam (half of the texture used at either end.)
		texture3 = Extra graphical effect at the start of the beam.
		texture4 = muzzle flare
	StarBurstProjectile (starburst weaponry, like nukes):
		texture1 = flare
		texture2 = smoke
		texture3 = flame
	EmgProjectile
		texture1 = texture for the projectile
	LightningProjectile
		texture1 = texture for the lightning
	ExplosiveProjectile (used in most plasma cannons)
		texture1 = texture of the projectile, will be blended multiple times.


- tdf tag duration is used for laser weapons.
- tdf tag rgbcolor is used for EmgProjectile and ExplosiveProjectile.
- tdf tag intensity is used for EmgProjectile and ExplosiveProjectile.
- New weapon tdf tag soundstartvolume and soundhitvolume.
- New weapon tdf tag size, defines the visible size of projectiles.
- New weapon tdf tag CollisionSize, defines the physical size of projectiles, percentage of size for flamethrower and absolute value emg, plasma and laser.
- New weapon tdf tag sizegrowth, defines how fast flame projectiles will grow in size.
- New weapon tdf tag flamegfxtime, this makes the flame projectile stay alive as a graphical effect (doesnt do any damage) after it has reached maxrange.
	Default is 1.2 which makes it stay alive 20% beyond maxrange.
- New weapon tdf tag AvoidFriendly, if set to 0 units will not try to avoid friendly units in their line of fire.
- New weapon tdf tag CollideFriendly, if set to 0 this weapon will not hit friendly units.
- New weapon tdf tag ExplosionSpeed
- edgeEffectivness added for weapons

- Added limited fuel settings for units (only work for aircrafts so far, need a good mechanism for refueling other stuff)
-  New fbi tag MaxFuel, max fuel in seconds that the unit can carry, default 0 = unlimited
-  New fbi tag RefuelTime, how long time it takes to fully refuel the unit, default 5
-  New fbi tag MinAirBasePower, minimum build power an airbase unit must have for the aircraft to land on it, default 0
-  New fbi tag WeaponFuelUsage<1-16>, how much fuel in seconds that firing the weapon takes from the owning unit, default 0
-  New fbi tag SeismicDistance, give the unit a seismic sensor for detecting movement through the ground.
-  New fbi tag SeismicSignature, The magnitude of seismic disturbance when this unit is moving, default sqrt(mass/100).
- New COB "get"/"set" constant: 75 MAX_SPEED get/sets the max speed of the unit (multiplied with 64k)

- New archive format (for map/mod development): *.sdd. It is a directory, but it is treated as an archive just like *.sdz and *.sd7.
- New map format SM3, currently supported for testing purposes.


0.72b1

- Bos/Cob script for units can now animate the death of the unit. Just have the Kill function return after a while instead of directly and return wreck level in return value instead of in function argument.
- Fixed the com dies, game ends exploit: sharing your com now kills you
- Fixed a bug causing clients not to quit when server quits
- Fixed crash bug normally resulting in dialog with "no rtti data"
- ".give" cheat command doesn't desync the game anymore
- Made "Team0() is no more" message customizable by modders (see XTA for an example).
- Added weapontag "paralyzetime", controls how long a unit can maximaly be paralyzed after being hit by this weapon, default 10
- Adds some new options in the settings program for scroll speeds
- Added new fbi tag "levelground" set this to 0 to prevent a building from leveling ground beneth it. Make sure that the model continue some way below ground so that they dont look like they float in air.
- Fixed torpedo aircrafts not being able to attack subs
- Added support for decals on ground below buildings
-  New fbi tag UseBuildingGroundDecal, set to 1 to enable decals for building
-  New fbi tag BuildingGroundDecalType, name of a bitmap in unittextures folder
-  New fbi tag BuildingGroundDecalSizeX,BuildingGroundDecalSizeY, size of decal (same scale as footprint for unit)
-  New fbi tag BuildingGroundDecalDecaySpeed, how fast the decal will fade out after the building has died, default 0.1 (fades out in 10s)
- New fbi tag ShowPlayerName, if set to 1 the tooltip shows the player name instead of the unit description
- Fbi tag HideDamage now actually works: set it to 1 to hide most details in the unit's tooltip from enemies
- New weapon tag "rgbcolor", overrides the old color1 and color2 tags if it exists, gives the color in red green blue format (1 1 1 = white).
- Removed old plasmarepulser system and replaced it with a more generalized shield system
-  New weapon tdf tag IsShield, if 1 mean the weapon is a shield and now a weapon
-  New weapon tdf tag shieldrepulser, 0=destroy projectile,1=repulse (bounce) projectile
-  New weapon tdf tag smartshield, 1=shield doesnt affect allies weapons
-  New weapon tdf tag exteriorshield, 1=shield doesnt affect weapons fired from within shield
-  New weapon tdf tag visibleshield, 1=see a visible shell representing the shield
-  New weapon tdf tag visibleshieldrepulse, 1=see a beam showing when shield repulses something
-  New weapon tdf tag shieldenergyuse, how much energy the shield use when repulsing/destroying something
-  New weapon tdf tag shieldforce, how hard shield can accelerate some sort of projectiles away
-  New weapon tdf tag shieldradius, size of shield effect
-  New weapon tdf tag shieldmaxspeed, maximum speed the shield can push some sort of projectiles away
-  New weapon tdf tag shieldpower, how much power the shield can store, power is drained by the affected weapons damage, 0=infinite
-  New weapon tdf tag shieldpowerregen, how fast the shield regenerates power
-  New weapon tdf tag shieldpowerregenenergy, how much energy the shield uses when regenerating power
-  New weapon tdf tag shieldintercepttype, which types of weapon the shield can affect (bitfield)
-  New weapon tdf tag interceptedbyshieldtype, which types of shields can affect this weapon, if (shieldInterceptType & interceptedByShieldType) is not zero the shield can affect the weapon, default 1 for plasma, 2 for laser, 4 for missiles, 0 for other
-  New weapon tdf tag shieldgoodcolor, color of shield when power is full
-  New weapon tdf tag shieldbadcolor, color of shield when power is empty
-  New weapon tdf tag shieldalpha, how visible the shield shell is with visibleshield=1
- Added auto zooming using scroll + Left ALT key  (patch from colorblind)
- Added simplified LOS drawing (patch from colorblind)
- Fixed mouse speed problems in windows with holding shift.
- Demo filenames with spaces in them work again.
- Changed non-positional sound behavior: only selected units give non-positional sound
- Missile weapons no longer tracks to exact position of non flying units (make missile units weaker against radar targets)
- Stun damage units now receives 1/10 of normal experience and no experience for attacking already stunned units
- Units no longer receive experience for "overkill" damage 
- Adds support for using arbitary team colors, teamcolor textures for 3do need to be slightly changed to accomendate this (see the base texture archive to see how its done)
- Increased max camera zoom out (zooming to far can cause slowdowns/graphical glitches)
- Added Radar group AI from colorblind: It notifies the player of incoming enemy units.
- Added custom explosion generator: It can be enabled using "explosiongenerator=custom:SomeExplosionGeneratorName" in the weapon TDF. See the wiki page http://spring.clan-sy.com/wiki/CustomExplosionGenerators for more info.
- Tab will now bring zoom out to show all map in any camera mode, tab again zooms back to the mouse cursor.
- Added GetGravity(), GetUnitDefHeight() and GetUnitDefRadius() to AI interface
- Mod can now be selected in the single player menu.
- Checksums of the map and mod are checked on game start.
- Mod can be selected when starting the spring exe directly.
- Various other small changes.

0.71b1

- Added new water renderer
- Fixed lasers firing two projectiles at once, efficiently doing double damage.
- Fixed several exploits with FPS mode.
- Added new fbi variable CanLoopbackAttack, only affects fighter aircrafts, if 1 this will enable the player to set the aircraft to do an immelman turn after firing instead of overflying the target.
- Changed so units in maneuver mode will abort anything that moves them further than a certain distance from the patrol path
- Added statistics to the end game dialog
- Units with S3O models can explode into pieces.
- Added a " all" option to .give to give all units in loaded mod
- Fixed autoheal being about 4x to fast (or measuring heal per 0.25s depending on how one sees it)
- Improved exception handling and crashreport handling in windows.
- Added DateTime to the [VERSION] block in the demo recorder file
- Removes los from units being transported
- To disable terrain deformation: 
   Mapmakers: Put 'NotDeformable=1' in the .smd.
   script.txt: Put 'DisableMapDamage=1' in with the other properties.
- VSync can be disabled with the settings application.
- Several other smaller fixes and improvements.
- Unit reply sounds are non-positional and have a seperate volume setting in the config application. Their volume is also affected by the global volume.

0.70b3

- Shift/ctrl do not change rotation speed in rotating camera mode anymore.
- Submarines work again.
- Fixed attack claxxon.
- Fixed units getting stuck in buildings.
- Added possibility to bind mouse1, mouse2 and mouse3 to keyboard.
- Fixed shift+letter bug.
- Fixed Pathing Map (F2 view) bug.

0.70b2

- Fixed some (debug) message colors.
- Fixed keyboard layout problems.
- Fixed repeat orders/high trajectory etc not indicating their current state correctly
- Fixed problem with reading hpi archives
- Added custom SDL.dll (1.2.9) with refresh rate patch from SDL CVS, should help with the 60hz issue
- Fixed right shift/ctrl while scrolling.
- Fixed shift/ctrl while middle click drag scrolling.
- Fixed map loading by less strict tdf parser.
- Don't crash on parse errors, but show an error message instead.

0.70b1

- First use of crossplatform code! This required a lot of bugfixing and changes, which are not mentioned here.
  Among these changes are switches to using boost, SDL, freetype, instead of Win32 SDK + DirectX. For a full list of changes, see the subversion log.

- XTA Pimped Edition Version 3, a version of XTA with high detail models, is used as the default mod now.
- Binding for mouse button 4/5 added (defaults to Z and X), so you can set build spacing.
- You can enable advanced unit rendering without enabling shadow mapping (in the settings app).
- Various resource files are now read from gamedata/resources.tdf instead of hardcoded into the game exe.
- Added "dontland" unit tag, to specify aircraft that should not land. Don't use this on transport units!
- std::sort related bug fixed in projectile handler
- Fixed flipped features, they are now rendered exactly the same as units.
- A few new COB "get" constants:
   70 MAX_ID             returns maximum number of units - 1
   71 MY_ID              returns ID of current unit
   72 UNIT_TEAM	         returns team of unit given with parameter
   73 UNIT_BUILD_PERCENT_LEFT   basically BUILD_PERCENT_LEFT, but comes with a unit parameter
   74 UNIT_ALLIED        is unit given with parameter allied to the unit of the current COB script. 1=allied, 0=not allied
- Fixed login packets being sent every frame instead of once a second when trying to connect
- Fixed ghosted buildings option.
- Fixed isairbase=1 unit tag.

0.67b3

-AI dll's can be used with startscripts again

0.67b2

-Fixed black map bug
-Impulsefactor now affects ground damage

-- Lobby changes

- battle hosts can now use /ring <username> command on players participating in their battles
- fixed problem with notification dialog switching focus back to application
- added /rename command which will rename your account (so that people who wish to add clan tags
  in front of their names don't have to reregister and lose their ranks). Player names may now also 
  contain "[" and "]" characters.
- fixed small bug in demo script parser
- added /mute, /unmute and /mutelist commands for admins/mods
- clients behind same NAT now get local IPs instead of external one (from the server).
  Note that some issues still exist with currently implemented nat traversal method,
  so players hosting battles are advised to forward their port nonetheless.

0.67b1

-Catching AI exceptions can be disabled with the settings app.
-Fixed access-violation bug when creating sky.
-Fixed numerous division by zero bugs.
-Fixed default cursor for indestructible features.
-Beamlaser uses thickness value.
-COB support for Getting/Setting veteran level and unit speed.
	The returned veteran level is unit experience multiplied by 100
	Unit speed can be set to something nonzero only when the current speed is nonzero, it can always be set to zero.
-Overhead camera can be tilted with control key + mousewheel now.
-Debug message verbose level can now be set with the settings application. (Modified update by Alantai)
	This will only affect AI console messages.
-Ghosted buildings can now be disabled by the lobby. They are enabled by default.

0.66b1

-Fixed transport units being able to load themself.
-Fixed gunship like aircraft always having the same altitude
-Fixed torpedo aircrafts now being able to attack underwater targets
-Support for upright, flammable and indestructible feature tags
-Fixed division-by-zero bug in bomb-dropper.
-Fixed access-violation bug in pathfinder.

-Added new s3o unit format


-Added new tags to .fbi file
	autoHeal	-	health per second that a unit allways will be autohealed for (default 0)
	idleAutoHeal	-	health per second that a unit will be autohealed for whenever its idling (default 10)
	idleTime	-	time in ticks without any action before a unit is considered idling (default 600)
-Added new tags to weaponfile file
	NoSelfDamage	-	Units take no splash damage from its own weapon
	impulsefactor	- 	Explosion impulse will be multiplied by this


-Added read access to the virtual filesystem for the AI
-Further AI interface updates will now be backwards compatible (old AI's will not break on a new spring release)
-Added user input functions from Alik to the AI interface
-The global AI will now be notified if a unit changes team.
-UnitDestroyed/EnemyDestroyed get the attacker unit id if any (by submarine)


0.65b2

-Fixed crash with factories closing at the moment they die

-Fixed sync error on water maps
-Increased max players/teams to 32/16

-Added support for selecting which globalai-dll to use when starting spring.exe directly
-Added support for having more than one lua startscript. Put them in subfolder "startscripts".

-Added UnitMoveFailed to global AI interface. Called when ground units fail to move to their destination.

0.65b1

-Fixed crash bug involving radars on non square maps
-Fixed crash bug involving gunships landing on repairpads that get destroyed
-Fixed crash bug involving large units exploding

-Fixed resurrected building not having a footprint
-Increased time to reclaim wreckages
-Fixed acceleration for units not being correctly set from fbi file
-Fixed slope of map not getting updated properly for craters
-Fixed sonar jamming
-Can now switch viewed team when spectating using keys 1-9
-Added faster reload speed for experienced units
-Added support for multiplayer replays where several players can watch a reply at once
-Added option for minimap to show colors only based on owned(green),ally(blue),enemy(red)

-Added new FBI tag TransportMass, this is the maximum weight a tranporter can transport, default 100000
-Added new FBI tag Mass, this is the weight of the unit, default is metalcost of unit
-Added new FBI tags to set the control variables for aircrafts
-Added new FBI tag OnlyTargetCategory<weaponnum>, sort of like badtargetcategory but the weapon can only target units with these categories,toairweapon in weaponfile is the same as OnlyTargetCategory=VTOL; default is all categories
-Added bindings for creating startscripts in lua. See testscript.lua for an example. Note that you can only have one script (must be called testscript.lua), and that it is possible that the interface will change.

-Fixed bugs in the AI interface GetMetal* and GetEnergy* functions, they returned the values of the human player.
-Moved shared functions in the GroupAI callback and GlobalAI callback to a new AICallback interface. For AI developers: This means a small adjustment of your current code will be required to get it compiled again.

0.64b1

-Solved troublesome crash bug involving several pointers to a single object
-Fixed crash when calls such as get PIECE_XZ were used in the Create function of a unit

-SetSfxOccupy now updates correctly when unit is being transported
-Added support for aircrafts auto landing to repair when health gets low
-Removed autorepair while unit is flying
-When a unit has finished firing a burst the script function EndBurst<weaponnum> will now be called, use this instead of Fire<weaponnum> to switch pod/barrel etc to fire from to lessen friendly fire incidents
-Removed warning message when using transports

-New map smd tag map/voidwater, creates a void where there would normally be water, this is a purely graphical effect,default 0
-New command .give, .give <num> <unitname> gives you num units of type unitname, requires cheats to be on, only use in singleplayer
-Added support for aircrafts auto landing to repair when health gets low
-Added command .kick <playername> that server can use to kick out players from game
-Updated global AI interface with GetNumUnitDefs() and GetUnitDefList()

0.63b2
-Fixed crash when using new formation move commands
-Script interpreter now warns about incorrect piecenames in scripts instead of crashing

0.63b1

-Fixed multi delete error in LosHandler
-Fixed crash with features defined in mapfile

-Fixed problem with having more than one map in the same archive
-Pathmap display (F2) can now also show where selected building can be built (slow though, esp with large maps and buildings)
-Spring now remember the last a: etc prefix used in chat msgs
-Resurrecting a unit now cost half the energy of building it
-Changed so spring can keep several different path precalcs on disk for a single map, this will save recalculations for ppl switching mods a lot

-Added CMD_WAIT command to have units wait for a transport. Can be issued with the W key, can also be used to que up stuff and then releasing the unit to do it.
-Added tag "LIGHT\\SpecularSunColor" to smd file, modifies the color of the specular highlights on units, defaults to LIGHT\\UnitSunColor
-Added tag "isAirBase" to unit FBI file, sets if the units that are being transported will be stunned or not, defaults to 0.
-Spring can now use up to 16 weapons, use Weapon<1-16> and BadTargetCategory<1-16> in fbi file and QueryWeapon<1-16> AimWeapon<1-16> AimFromWeapon<1-16> FireWeapon<1-16> functions in scripts. Primary,secondary etc is aliased to weapon 1-3 but try not to mix old and new names in the same unit.
-Added new fbi tag WeaponSlaveTo<x>=y, this will force the weapon x to use the same target as weapon y (y must be a lower numbered weapon than x). Might be usefull for say a mech like unit with many different weapons that should target in the same direction.
-Added new fbi tags WeaponMainDir<1-16> and MaxAngleDif<1-16>. WeaponMainDir is a vector and defines the center direction of a cone in which the weapon can aim while MaxAngleDif defines how broad the cone is. Default WeaponMainDir = 0 0 1; (forward) and MaxAngleDif=360; (can fire everywhere)
-Added support for loading TA:K COB files and implemented the TA:K-specific opcode play-sound.
-Added some simple formation handling to the standard groups, hold alt on move to make them form an aproximate square and drag mouse to make them form up behind a front
-Added missile tdf tag wobble, this is in the same as turnrate except that it will turn in random directions instead of toward the target,default 0
-Added missile tdf tag trajectoryHeight, this sets in how high an arc the missile will move toward the target,0 = straight, 1=45 degree above, can be anything>=0, default 0
-New start file tag LimitDgun, if 1 it restricts dgunning to a radius around your startpos, size depending on mapsize, default 0
-New start file tags AllyTeam<x>/StartRect<Top.Bottom,Left,Right>, allows host to define where different allyteams might start on the map, given in the range 0-1 and scaled with map size
 
0.62b1

-Fixed crash when units exploded

-Mines no longer block terrain and can be overun (and if you are crazy built on top of :) ), removed ability for mines to hold fire since they would be completly undetectable.
-Heightmap view (F1) now updates correctly when terrain changes
-Pathcost view (F2) now works in non cheating mode but will then only show terrain modifiers
-Fixed gunships being able to fly below ground when comming in on step slopes
-Auto sharing now starts at 99% instead of 100% at startup meaning that there is less chance of the team losing resources because someone forgets to set it

-Installer associates .sdf files with spring.exe
-Spring.exe now accepts a demo filename on the commandline and starts playing it directly
-Added tag "MAP\\DetailTex" to smd file to specifiy map specific detail texture, default is bitmap\detailtex2.bmp, map specific textures should be placed in maps directory.
-Added possibility for surface of units to be shiny/reflective by using the alpha channel of the textures
-Addded command .take, will take the units from all teams allied with you that is missing a player (due to disconnect etc) and transfer them to your team

0.61b2

-Added tag "WATER\\WaterTexture" to smd file to specify another texture for the map than the default ocean.jpg (mapspecific water textures should be in the maps directory)
-Added tag "WATER\\WaterSurfaceColor" to smd file, changes the surface color of the water when using reflective water (default is 0.75 0.8 0.85 ).
-Fixed error msg while loading certain jpeg files
-Fixed spawn.txt not being readable from archives
-Fixed problem with reading large files from sd7 archives (such as skyboxes)

0.61b1

-Fixed crash in weapon aiming
-Fixed some other crashes
-Fixes some memory errors

-Fixed aircrafts landing outside map
-Fixed infinitly rotating starburst missiles
-Fixed different tracks getting superimposed on each other
-Plasma cannons should now detect mountains in the fire path better
-The generated path information for maps is now stored zipped in the subdirectory "paths"

-Added scar marks on map to explosions
-Can now control spacing when rowbuilding using the forward/back buttons (xButtons) on mouse
-Spring now attempts to find bmp or jpg files in bitmaps\loadpictures to use as background while loading
-Some messages now show their location on the minimap
-Moved spawn.txt into xta archive by default to allow replacements by other mods, and replaced it with "Storm Easy AI v1.0"
-New weapon tdf value, TargetMoveError, makes the weapon worse at hitting moving targets, default 0
-New weapon tdf value, MovingAccuracy, replaces the normal accuracy value while the unit is moving, defaults to normal accuracy of weapon
-New weapon tdf value, thickness, controls the thickensess of lasers, default 2
-New weapon tdf value, intensity, controls the alpha value of lasers, default 0.9
-New smd terraintype value, receivetracks, if this is 0 there wont be any tracks from units on this terrain type, default 1

0.60b1
-Added tag SmoothAnim=0/1 to the fbi. If it is 1, unis will use animation interpolation
-Added MAP\\WATER\\WaterPlaneColor tag to maps to set the color of the waterplane beneath the ground
-Added MAP\\ATMOSPHERE\\SkyBox tag to maps to use a dds cubemap as a sky instead of the cloud rendering
-Added an optional BuildPic tag to the units so they can use other than pcx buildpics
-Fixed crash when unit closed in on their destination

-Slopes are now calculated differently
-Random start order should now be more random
-Fixed commiting delayed animations before using getunitval
-Radar now jams everyones radar including your own. We will see how this turns out.
-New map format, adds ability to read texture from external (shared) files and a new terrain type overlay map
-Made ballistic weapons range somewhat more dependent on relative height of weapon and target
-Paralyzer tag for weapons now work
-CanCapture tag for units now works
-HighTrajectory now requires a HighTrajectory tag in the unit file (0=only low, 1=only high,2=choose)
-Ground under DT/FW get same kind of protection as under buildings, we will see how it works out
-"Slow" explosions, stuff far away from big explosions will have their damage delayed a bit

-Added globalai interface and changed groupai interface a bit
-Added resurrection capability
-Added support for regular zip archives. Using extension "sdz" to avoid confusion.
-Added support for 7zip archives. (http://www.7-zip.org/). Using extension "sd7" to avoid confusion. Note that it is probably not a good idea to use solid archives since Spring does not access the files sequentially.
-Added beamlaser type weapon
-Added possibility of units leaving tracks on map
-Added some new options to the game start file
-Added new camera mode rotatable overhead camera
-Added Flare capability to units to decoy incoming missiles

-Added boot option for battleroom host
-Hopefully fixed unit sync and some other bugs in battleroom

0.51b1
-Fixed a cob animation related crash
-Fixed crash using "simple formation ai"

-Fixed auto resource sharing, could share to enemies or not at all before
-Floating features now works
-Con air now stay within radius of build object better
-Spectators can no longer select start pos
-Yet more pathfinding/movement fixes
-Fixed timeout when host calculating paths
-New ingame command for host .nopause , prevents player from pausing game. Also harder to spam log with changespeed msgs now.
-Changed targeting calculations, now switch from badtargetcategory targets faster and never switch to them from other sort of targets even if those go out of los/radar
-Changed so several units cant reclaim a feature at once
-Flakker like units can now target fast units better

0.50b2

-Changed default DamageModifier to be 1 instead of 0
-Fixed so units no longer can dip slightly into lava and explode
-Adds a random enemies script for those that really want to test in single player. The enemies are read from spawn.txt (frame/enemyname pairs) and spawns at startpos 1-3 randomly

0.50b1

-Added support for set/get of unit variable ACTIVATION (allowing solars to close under attack for example)
-Added call to cob function SetMaxReloadTime for better ta unit compatibility
-Added stack boundary checking to cob interpreter
-Fixed buffer overrun problems in the sunparser
-Fixed threads contending over single global netbuf (hopefully no more netmsg errors)
-Now connects from the same udp port as connecting to (semi random before)

-Units can no longer move over infinite sloops
-Improved the pathfinder/movesystem
-Contruction units can no longer repair themselves
-Repair/Build/Reclaim now turn of cloak
-Unit paths are now only visible when cheats are enabled in debug mode
-F2 now shows the map from a pathfinding perspective if cheats are enabled
-Fixed grass not being drawn
-Previously visible buildings now stays on the map in a ghost state

-Added support for larger maps
-Added some more range circles
-Added keyboard bindings for mousewheel (pageup/down as default)
-Added guard order to aircrafts
-New .smd command MAP/WATER/WaterDamage. Indicates the amount of damage per second units take for being in "water". Make it >1000 to prevent ground units from entering water entirely, >10000 prevents hovers from moving over water.
-New in game commands for host .setmaxspeed .setminspeed sets the maximum and minimum game speeds

0.41b1

-Removed log spam with Use of GetPieceDir..
-Fixed "Error looking up server from ip" errors when trying to connect
-Fixed zero size units bug
-Can no longer overflow network buffer with large build orders
-Non square maps no longer crash
-Fixed some random crash bugs
-Added more filtering to the server and clients to filter out invalid net msgs

-Host can now force start the game with ctrl+return if not everyone show up
-Fixed repeat order for factories
-Units can no longer move onto terrain they cant move off (boats on land etc)
-Units can no longer die due to getting outside map
-Changed the alignment on buildings, fixes two buildings qued beside each other ending up blocking each other
-Buildings no longer decay when builder has slow animation
-Radar/jammer units now correctly updated when changing team

-New .smd value, MAP/AutoShowMetal. Set it to 0 if you dont want players to switch to metalmap view when selecting an extractor. (because you have created visible metal deposits on the map)
-New .smd value, MAP/MapHardness. Set how hard it is to create craters in map, default 100.
-Made it slightly easier to build buildings on slopes
-Made it somewhat harder to dig deep holes

-- Lobby changes

-Added extended ascii support in chatrooms.  Can now use accent characters
-Added test button to battle host menu. It will tell the server to try and conncet to you on the port you specified, letting you know if others will be able to as well.
-Now can tell which battles are in progress, and which are still open
-Fixed bug that allowed more than the max number of players into a room
-Added ability to launch a browser when links are sent in a chatroom
-Added unit syncing.  Now if users have different units, the differences are disabled
-Fixed a bug that allowed invalid log in names to be submitted

0.40b2

First public release
