Logo
Spacer News Wiki Features F.A.Q. Team members Screenshots Download Messageboard Bug tracker Submit files
Top divider

The Talking Changelog

The Purpose of this Document is to provide a framework for what items need to be documented in order for people to quickly see what the changes mean.  This is one portal for what could be a future "complete documentation" project.

Effectively link each line to a current page in the wiki and ensure that the linked page is up to date or at least tag it as needing an update or link to a new document.

If you link to a page and do not put it up to date please at the "Out of Date" category ( "category:Out of Date" in square brackets ) and a line saying "This page needs updating." with a link back to this page to the top.

---

Contents

[edit] Spring change log

  1. -- FIXME -- Still a few missing 'big' items for 0.75b2+   :)  --
  1. - A lot of networking code was refactored.
  2. - Exposed unit->maxSpeed to the AI interface
  3. - Reintroduced heightMod to TryTarget.
  4. - New aircraft command CMD_IDLEMODE,
  5.   it switches between landing when idle and not landing.
  6. - Unitsync Java bindings now have a version number.
  7. - Added ArchiveMover by zizu. Automatically moves .sdz and .sd7 files to the
  8.   correct place (Spring\maps\ or Spring\mods\)
  9. - Add new installer SideBanner, Spring icon and ArchiveMover icon all contributed by AF.
  10. - Cache input and output of GetWantedDir to save a lot of expensive calculations
  11.   for a little loss of accuracy
  12. - Tiny speedups in LosAdd and SafeLosAdd
  13. - Optimized unnecessary sqrt in GuiTraceRay
  14. - Added new start positions mode Choose Before Game. Useful for AIs, you can
  15.   select the starting position of players from the client.
  16. - Make the replay format better:
  17.   - It has a proper header now with version field instead of the entire file
  18.     being just a data blob.
  19.   - The header has made the gameSetup script.txt modifications redundant: the
  20.     UnixTime and Spring Version are in the header, and the gameSetup script is
  21.     stored unmodified now.
  22.   - It stores a game ID, this can be used to match replays of the same game together.
  23.   - It stores the winning ally team, if any.
  24.   - It stores player stats.
  25.   - It stores team stats.
  26.   - It stores game duration, both in game time and wallclock time.
  27. - Added .godmode [0|1]  --  allows all players (even specs) to control all units
  28. - Added a team parameter to .give: .give [amount] <unitName> [team] @x,y,z
  29. - .kick and .kickbynum messages are filtered
  30. - Small messages are once again send together in one packet
  31. - Stop animations when network lags (timeout set to 0.5 sec)
  32. - Added some OGGVorbis sound support.
  33. - Replacement Bark, bleaf and foam images.
  34. - Added behavior to mobile units so that they will start chasing when the target
  35.   is running away, but before the target exits weapons range, allowing the unit
  36.   to fire continuously at the retreating unit, instead of the cycles of firing,
  37.   then running to catch up that existed prevously.
  38. - Moved to Satirik's lobby, huge amount of changes.
  39. - Changed '/grabinput' to '/grabinput [0|1]', and added state reporting
  40. - Added client side network traffic tallying (per packet type)
  41. - Added CallLuaRules() to CAICallback
  42. - Added 'AIDLL=LuaAI:' -> CTeam::luaAI handling for LuaAI
  43. - Added the "/grounddecals [0|1]" command
  44. - Put springcontent.sdz and bitmaps.sdz in upgrading installer.
  45. - Lasers no longer use their full texture on shots that hit before their full length.
  46. - Checksum is now read from 7z/zip archive header instead of checksumming entire
  47.   file, making things like map list reloading faster by a huge amount.
  48. - Move shaders into springcontent.sdz
  49. - Added GetPrimaryModVersion() to unitsync
  50. - Bumped to ArchiveCache version to 6 ... ArchiveCacheV6.txt
  51. - Support for up to 2^31 players
  52. - Negative damage now allowed.
  53. - Applied patch by tc making Spring's configuration variables available through
  54.   unitsync.
  55. - Log the version of some of the major libraries (SDL, GL, GLEW, AL)
  56. - Disabled recursive directory scanning for .sdd and omitted files within  .../hidden/*  directories from the scan
  57. - Added ai unloading after team is destroyed.
  58. - Installer greatly improved - all content is downloaded from the internet based on which mods and maps you
  59.   choose to install. No more updating installer.
  60. - allow GlobalAIs to send a startposition
  61. - Bump the unit-limit to 10000
  62. - Added the following unitsync calls:
  63.                int GetModValidMapCount()
  64.        const char* GetModValidMapCount(int index)
  65. - Valid maps are listed in the mod's "ValidMaps.lua" file
  66. - A valid map count of 0 means that any map can be used with the mod
  67. - This can be used in concert with LuaRules to setup multi-player scenarios and tutorials

[edit] User Interface:

  1. - Added the CTRL modifier to area reclaims to allow reclaiming your own wrecks
  2. - Removed some hard-coded key bindings and replaced them with:
  3.     edit_return
  4.     edit_escape
  5.     edit_complete
  6.     edit_backspace
  7.     edit_delete
  8.     edit_home
  9.     edit_end
  10.     edit_prev_line
  11.     edit_next_line
  12.     edit_prev_char
  13.     edit_next_char
  14.     edit_prev_word
  15.     edit_next_word
  16. - Added some reasonable default keybindings for all/ally/spec chat messaging:
  17.             enter -> send to <last send type>
  18.        Ctrl+enter -> send to All
  19.         Alt+enter -> send to Allies
  20.       Shift+enter -> send to Spectators
  21.   (Note that the modifier versions can be used to
  22.    change the send mode ever while typing the message)
  1. - Added the CTRL modifier to area reclaims for reclaiming all features
  2. - /specfullview 2 is the new default for spectating and watching demos (can select all units)
  3. - Added the ctrlpanel.txt "frontByEnds" option (let's you use the endpoints to
  4.   define a front instead of the midpoint and one of the ends)
  5. - When a factory is set on repeat, alt+build-click inserts the order as a
  6.   no-repeat and right after the currently built unit. Behavior is unchanged
  7.   if repeat is off.
  8. - Added water lines while placing unit builds.
  9. - Moved the clock and fps indicators to the upper right hand corner
  10.   (the default setup results in overlaps with the player info text)
  11. - Modified the LOS view to better show the los-only and radar-only conditions
  12.     dark  = no los, no radar
  13.     white = los + radar
  14.     blue  = los-only
  15.     green = radar-only
  16.     red   = jammed area
  17. - Disabled shadow generation when using LOS viewmode (would be better to add
  18.   shadows in LOS mode, but might as well avoid the shadow generation overhead
  19.   until the shadows are added)
  20. - Make Fight be able to be given a line command, like move already can be.
  21. - Only add the SelectAI button if the current selection has valid GroupAIs
  22. - Change default keybinding for createvideo to Ctrl+Shift+F10 (was Any+F10),
  23.   so it is less easy to accidentally hit it.
  24. - Change savegame default keybinding from Any+F8 to Ctrl+Shift+F8,
  25.   for the same reason as the createvideo keybind change.
  26. - Improved view centering for the Free Camera mode
  27. - Made nano-particles unsynced (and respect maxParticles)
    • Added '/cross [size]'

[edit] Unit / Weapon / Feature Definition Tags:

  1. - Added heightBoostFactor - a float tag that gives control of cannon height
  2.   range boost (more than 1 means increased range, 0 means the cannon has fixed
  3.   range regardless of height difference to target. default is a magic value
  4.   calculated on weapon init, based on range tag and theoretical max range.)
  5. - Added heightMod tag (height difference is multiplied by this value before
  6.   checking range), default 0.8 for Cannon weapon type, 0.2 for everything else
  7.   (i.e. stays as it was). Beamlasers have heightmod=1 by default so they use
  8.   pure spherical targeting.
  9. - Added GroundBounce, WaterBounce, NumBounce, BounceSlip, BounceRebound, and
  10.   bounceExplosionGenerator tags.
  11. - The TDF tags MetalStorage and EnergyStorage now override the StartMetal and
  12.   StartEnergy specified in the startscript, instead of the other way round. If
  13.   MetalStorage or EnergyStorage isn't specified the default values for commander
  14.   units are StartMetal and StartEnergy. For other units the default remains 0.
  15. - New tags beamttl (default: 0) and beamdecay (default: 1) for the beamlaser.
  16.   Beamttl defines the time (in frames) the beam will stay after being fired and
  17.   beamdecay defines the speed of the fadeout (each frame the beam's intensity is
  18.   multiplied with that value). This applies to the single-frame beams the weapon
  19.   emits, if it has a beamtime it will emit one such beam every frame, which is
  20.   only useful if the source of the beam moves a lot (gives a cool trail effect).
  21.   It's primarily intended for beams with a beamtime of one frame (which often
  22.   simulate very fast shots instead of constant streams, e.g. railguns) so they
  23.   don't disappear immediately.
  24. - Allow for the modder to define whether the crashing planes (and/or units
  25.   running long Killed() scripts) can be fired on via modrules.tdf new section:
  26.     [FIREATDEAD]
  27.     {
  28.       fireAtKilled=0;
  29.       fireAtCrashing=0;
  30.     }
  31.   The defaults are to disallow both (Spring 0.75 behaviour, both variables set
  32.   to 0). Spring 0.74 behaviour (allow both) can be emulated by setting both
  33.   variables to 1.
  34. - Added fixedLauncher tag (bool) for missiles, starburst missiles and torpedoes,
  35.   this makes the projectile spawn with the orientation of the shooting piece
  36.   instead of their normal orientation. The weapon will not properly check if
  37.   allies are in the way so make sure you align the launchers in a way that
  38.   won't hammer right into your own forces and perhaps use collideFriendly=0.
  39.   FixedLauncher conflicts with trajectoryHeight and IMO combining them is
  40.   pointless anyway so don't use both on a weapon.
  41. - Added projectiles tag (int), each time a weapon fires this many projectiles
  42.   are spawned (on the same frame). Make sure you put them on different
  43.   trajectories somehow (sprayangle or different firepoints) because otherwise
  44.   they'll all be clumped in one shot. Can be set to 0 as well for script trigger
  45.   weapons and can be combined with burst.
  46. - Missiles and starburst missiles now obey smoketrail, set it to 0 to disable
  47.   the smoke. To get a missile without smoketrail you have to define the weapon
  48.   as a missile with WeaponType=MissileLauncher in the tdf.
  49. - Missiles, starburst missiles and torpedoes now use flighttime if present
  50.   instead of the hardcoded formula (which is still used if flighttime is not
  51.   present)
  52. - Added SubMissile tag (bool) for TorpedoLaunchers, if set to 1 the torpedo will
  53.   travel like a missile outside of water. It will not emit a smoketrail, though.
  54.   When fired from a plane it will behave the same way but the plane will
  55.   probably be considered a fighter, not a bomber.
  56. - Added fireSubmersed tag (bool), defaults to the value of waterweapon. If set
  57.   the weapon can fire underwater, if not then not. Use it for weapons that
  58.   cannot fire underwater but can hit underwater targets. Works even for
  59.   torpedoes.
  60. - Starburst missiles now obey turnrate for the turn at the peak of their flight
  61.   (if supplied, otherwise the old value is used).
  62. - All weapons (save for the Rifle which noone uses anyway) can now attack
  63.   underwater targets if they have waterweapon=1 set.
  64. - Bombs can use manually defined burst and burstrate values instead of
  65.   autogenerated ones by using the new manualBombSettings tag (bool). Keep in
  66.   mind that (roughly) burst*burstrate defines the area in which the bomber is
  67.   willing to drop the bomb so if you make it too small the bomber might miss
  68.   the drop area and not drop any bomb.
  69. - Added myGravity tag (float) for ballistic weapons (Cannon and Bomb), it
  70.   overrides the map gravity if used. Regular map gravity is around 0.2.
  71. - Bombs now obey Accuracy and SprayAngle.
  72. - Added ShieldStartingPower tag (float) for shields, if set the shield starts
  73.   with this much power instead of 0.
  74. - Renamed flareEfficency -> flareEfficiency
  75. - Added modinfo.tdf 'version', 'mutator', and 'shortName' tags
  76. - Added the weaponDef 'cameraShake' tag
  77. - Moved the buildOptions definitions into the unitDef definitions, LuaParser
  78.   handles backwards compatibility.
  79. - Changed init_cloaked to initcloaked.
  80. - Add a tag 'pushResistant' to UnitDef. If set to true, a unit will not be
  81.   pushed out of the way by another when their footprints overlap, nor will
  82.   it respond to BuggerOff directives when the other party has an important
  83.   move order. Defaults to false.
  84. - Added a per-soundfile volume control format for unitdefs
  85.     sounds = {
  86.       ok = 'oksound',
  87.       cancel = {
  88.         'cancel1',
  89.         'cancel2',
  90.       },
  91.       select = {
  92.         { file = 'selsound1', volume = 2.0 },
  93.         { file = 'selsound2', volume = 2.5 },
  94.         etc...
  95.       },
  96.     }
  97. - Added the dance tag for missilelaunchers that makes the missile move around randomly. Unlike wobble it doesn't rotate the missile and it prevents the missile from going too far off course so a dancing swarm will remain coherent.
  98. - Beamlasers ignore beamtime if new tag "beamburst" is set (for emulating weapons that do damage in bursts)
  99. - Features have new tag "reclaimTime" defining how long they take to reclaim, default is metal+energy.
  100. - Added tags:
  101.     transportUnloadMethod = <integer>;  // 0 - land unload, 1 - flyover drop, 2 - land flood
  102.     fallSpeed = <float>
  103.     unitFallSpeed = <float>
  104.   These dictate the speed of units being dropped from the transport.
  105.   fallSpeed is used on the transports fbi file, to dictate the speed of all units it drops, unitFallSpeed is used on each transported unit to override fallSpeed.
  106. - New weapon FBI tags:
  107.     WaterBounce and GroundBounce: Boolean to allow a projectile to bounce off of a surface. defaults to false.
  108.     BounceSlip:    Amount of lateral speed kept by the projectile after it bounces. defaults to 1.
  109.     BounceRebound: Amount of vertical speed keeps and reverses. defaults to 1.
  110.     NumBounce:     The number of bounces a weapon will make. -1 indicates no limit. defaults to -1.
  111. - Added the ability to bounce for Torpedos, Missiles, Lasers, Cannons, and Emgs.
  112. - Added flighttime functionality to cannons.
  113. - Added bounceExplosionGenerator tag,
  114.     which defines an explosion generator to run when a projectile bounces.
  115. - Added flighttime to bombdroppers.
  116. - Added FBI tag cantBeTransported=0|1, if set to 1 no transport can load this unit
  117. - Added FBI tag minTransportSize=int,
  118.     determines the smallest size footprint that the transport can load
  119. - Added FBI tag minTransportMass=float,
  120.     determines the smallest mass unit that the transport can load
  121. - Removed the check for Air movetype for holdSteady FBI tag, so now ground
  122.   transports can use it too
  123. - New FBI tag for transports; float unloadSpread: Controls the spacing between
  124.   units in an area unload command, works as a multiple, default is 1.
  125. - Added the 'decloakSpherical' unitDef tag  (defaults to true)
  126. - Added the tag "hardStop" (bool, default 0) which, if used, makes the laser not fade if it doesn't hit before hitting its range limit and instead has the laser stop immediately and contract, as if it had hit something. This looks better with really long lasers, especially those that are longer than their range.
  127. - Weapon projectiles can now spawn a CEG at their position every frame using the cegTag weapon tag.
  128. - ProximityPriority tag - acts as a multiplier for the distance to the target in the priority calculation. Note that negative values make weapons prefer distant targets.
  129. - Added the following to modrules.tdf (default values shown):
  130.     [DISTANCE] {
  131.       builderUse2D=0;
  132.     }
  133.     [EXPERIENCE] {
  134.       powerScale=1.0;
  135.       healthScale=0.7;
  136.       reloadScale=0.4;
  137.     }
  138. - Added optional 3D ranging for all builder operations (build, repair, reclaim, etc...) (per-unitdef buildRange3D=true)
  139. - adds [experience] { experienceMult = 1.0; } to modrules
  140. - adds [flankingBonus] { defaultMode = 1; }   to modrules
  141. - replaces the old bonus shield system with flanking bonus
  142. - new unitDef parameters:
  143.     int    flankingBonusMode
  144.     float  flankingBonusMax
  145.     float  flankingBonusMin
  146.     float  flankingBonusMobilityAdd
  147.     float3 flankingBonusDir
  148. - new COB GET/SETS
  149.     FLANK_B_MODE         120 // set or get
  150.     FLANK_B_DIR          121 // set or get, set is through get for multiple args
  151.     FLANK_B_MOBILITY_ADD 122 // set or get
  152.     FLANK_B_MAX_DAMAGE   123 // set or get
  153.     FLANK_B_MIN_DAMAGE   124 // set or get
  154. - Adds three opcodes to the CEG definitions:
  155. - m (modulo or sawtooth wave) returns the remainder of
  156.     the runing value divided by m's parameter (100 m24
  157.     returns 4)
  158. - s (sine) returns the sine of the running value with
  159.    the parameter acting as the amplitude
  160. - k (discrete) returns the running value floored to an
  161.    integral multiple of the parameter
  162. - All weapon projectiles that have a TTL now supply their
  163.   remaining ttl-value as the damage param to their trail
  164.   CEG (Flame projectiles use curTime instead).
  165. - Added the "canSelfDestruct = true" unitDef tag
  166. - Added alwaysVisible weapon tag, makes the projectile visible, even without LOS.
  167. - Enable CEGs to be tied to pieces of exploding units
  168. (CEG replaces the default smoke if used, but not the miniscule fire-effect)
  169. - added CEG opcodes y, x, a, p and q. Except for p those operate on a set of 16 buffers that store a float value each.
  170.   y# - Yank: Stores the running value in the buffer # and returns 0.
  171.   x# - Multiply: Multiplies the value with the contents of buffer #.
  172.   a# - Add: Adds the contents of buffer #.
  173.   p# - Pow: Returns the #th power of the value.
  174.   q# - Buffer Pow: Like Pow but uses the contents of buffer # as the exponent.
  175. - added the weapon tag leadLimit that limits the maximum distance a unit will lead a target
  176.   (default is -1 which means infinite).
  177. - added the weapon tag leadbonus which is multiplied with the unit's experience and added to the lead limit.
  178. - added the weapon tag predictBoost (default 0 for non-burnblow, 0.5 for burnblow weapons) which fixes the
  179.   "this should be turned into a separate tag" comment in Weapon.cpp. No idea what it does but it doesn't
  180.   break anything.
  181. - Add a tag "factoryHeadingTakeoff" (on request of the SWS
  182.   folks to prevent some clipping issues) which controls the
  183.   takeoff behavior of TAAirMoveType aircraft. True (default)
  184.   means planes start matching their factory's heading right
  185.   after taking off from the pad, false means they maintain
  186.   the heading of the pad until reaching wantedHeight.

[edit] Bugfixes:

  1. - Fixed cannons not able to shoot as far from high ground as they should
  2. - Fixed infinite lower cylinder when cylindertargetting is active
  3. - Loaded air transports no longer land on stop command
  4. - Fixes in glBallisticCircle (use heightmod also in drawing range circles.)
  5. - Spring now returns 0 when started with -V, -h or -p
  6. - Fix random start positions (positions are handed out before gaia team is added)
  7. - CMD_REMOVE also works for idle factories (with move/patrol queues)
  8. - Changed Cannon::GetRange2D so it uses something closer to real-world physics.
  9. - Fixed Melee weapon always aiming west
  10. - Do not allow commands with out-of-map destinations.
  11. - "Connecting to server" message now does not pop up when starting without startscript
  12. - Commandline is now parsed before the filesystemhandler starts up (speedup
  13.   starting with arguments like -V or -h)
  14. - Fixed builders with area reclaim sometimes going out of their designated circle
  15. - Bombs now obey Accuracy and SprayAngle.
  16. - Fixed lightning weapons having a hardcoded inaccuracy, made it obey accuracy
  17.   and sprayangle tag instead.
  18. - Fixed Lightning weapons not doing damage to shields.
  19. - Possible fix for the disappearing healthbars
  20. - Fixed crashbug when exiting the GroupAI, sharing and quit boxes in an unusual way.
  21. - Fixed starburst missiles so they stop their engines after they travel out of range.
  22. - Fixed a possible load/save bug.
  23. - Fixed crash in DamageArray() copying constructor
  24. - Don't say 'content error' if modrules.tdf isn't found
  25. - Improved error reporting in GetTDFName and LoadMap
  26. - Fixed replays.
  27. - Fixed savefiles on non-Windows OSes
  28. - Fixed the run-time Spring.MakeFont() call-out
  29. - Fixed beamlasers so they don't ignore CollideFriendly
  30. - Fixed both CollideFeature and CollideFriendly for weapontype=Rifle
  31. - Fixed unloading of aircraft
  32. - Fixed crash when sharing units with a GroupAI other player doesn't have.
  33. - Fixed .team, .setminspeed and .setmaxspeed when playing a demo locally
  34. - Fix groundscars turning white after using LOS overlays or enabling shadows
  35. - Better error reporting in case of global AI version mismatch
  36. - Fix SM3 when resizing windows
  37. - Don't profile the water renderer on voidwater maps
  38. - Weapons now use AimFromWeapon to determine the part to aim from, this prevents
  39.   waggling and failing to aim at close ranges. To simulate the old behaviour
  40.   make AimFromWeapon return the same piece as QueryWeapon does.
  41. - Melee weapon now reports a proper angle to AimWeapon.
  42. - Made starburst missiles obey startvelocity and weaponacceleration.
  43. - Try to minimize damage caused by LuaUI crashes until cause is found by
  44.   disabling LuaUI after several errors happen
  45. - Hackish fix for units sometimes not going to factory designated rally point
  46. - Install the game/fonts/*.ttf files to fonts/
  47. - Handle a missing argument to .skip a little better
  48. - Fix error message for missing font
  49. - Take screenshot of entire window (rather than left half only) in dual-screen mode
  50. - Lua stack was changed to fix some segfaults.
  51. - Prohibit spectators (except for the host) from changing the gamespeed unless
  52.   cheating is enabled.
  53. - Fix an exploit where partially reclaimed corpses that are turned into wreckage
  54.   end up being worth more than the remaining value of the corpse itself
  55. - Fix weaponAcceleration typo causing major bugs with nukes and vlaunch weapons et al.
  56. - Fix two "unknown net msg" errors in CPreGame when playing certain demos.
  57. - Fixed a crash bug  (lastColWarning == NULL) in TAAirMoveType.
  58. - Fixed a crash in AirMoveType.cpp
  59. - Removed the automatic 'userInputPrefix' tracking for incoming messages
  60. - Fixed the unitsync GetUnitFullName()
  61. - Ignore used writing keypresses  (for bindings like:  'bind a+u edit_next_word')
  62. - fixes a bug in LuaUnsyncedRead::TraceScreenRay() when using dualscreen mode
  63.   and minimap is on left
  64. - Unit pieces inherit alpha threshold from owner
  65. - Fixed jittery falling units.
  66. - Fix timeout while loading / pathing
  67. - CommandFallback was broken wrt return values, fixed.
  68. - Improved dgun responsiveness (still not perfect, but at least shoots through
  69.   features now)
  70. - Construct a proper orthonormal basis for muzzle-flame bitmaps
  71. - Gracefully handle missing script failure
  72. - Fixed speed and pause in replay
  73. - Fix for teleporting units when area-unloading out of map
  74. - Fix for uadded tracking of PushMatrix and PopMatrix Lua call-ins to reduce
  75.   number of gl errors
  76. - Fix ghosted buildings always being drawn with default facing
  77. - Fixed weapon TDF 'fireStarter' tag, for all weapon types
  78. - Units, when they are within range, but unable to hit the target of an attack
  79.   command, will move sideways.
  80. - Fixed the bug where laserprojectiles had weird garbage on the front if the
  81.   projectile was within lod distance.
  82. - Fixed set HEADING COB variable so it updates unit direction.
  83. - Fixed giving commands while recording a video
  84. - Fixed bug where after load all moving ground units stops with message
  85.   "Can't reach destination".
  86. - Fix for patrolling builders repairing stuff that's being reclaimed
  87. - In the tooltip displayed on mouseover, deconstructing nanoframes didn't show
  88.   how much metal they are producing on mouseover.
  89. - Don't set the default shareTeam to a dead team ever.
  90. - Fixed random mod.
  91. - Made glPrintOutlined() almost 50% faster by lowering quality.
  92. - Reclaimers list is now saved.
  93. - Now error messages are broadcast to all clients.
  94. - Paralyzers no longer damage features
  95. - Fixed the wait/teleport factory bug
  96. - Fix flying/underground units bug.
  97. - Unhide the gaia team, and colorize by allegiance
  98. - Made demo not found / demo corrupt / format outdated exceptions instead of logOutput-warnings
  99. - /quit will now quit immediately if you are the only active player
  100. - Fixed a 'bad team' segv in Spring.CreateUnit()
  101. - Added the ScopedMapLoader helper to unitsync
  102. - Paralyzers no longer shake the camera.
  103. - Fixed the missile and starburst texture2 only applying to the first segment of the smoketrail (the segment that's still part of the projectile, not a CSmokeTrailProjectile). Now the entire trail uses the texture.
  104. - Fix possible segmentation faults after loading a shared object failed.
  105. - Fixed bug where server dont send remaining data (including NETMSG_QUIT) to server
  106. - Set ACTIVATION issues CMD_ONOFF instead of activating/deactivating, fixing issues with on/off not showing correct state.
  107. - Added a check for weapon 'slavedTo' values  (content_error)
  108. - Fixed some bugs in gl.TexEnv / gl.MultiTexEnv / gl.TexGen / gl.MultiTexGen
  109. - Used the decoyDef ghost building models when appropriate
  110. - Fixed CAirMoveType planes not rotating on factory pads
  111. - Fixed CTAAirMoveType planes always taking off from labs facing south.
  112. - Fixed missile-gunships from being unable to force-attack ground
  113. - Fixed CTRL-MOVE group orders causing units to move at snail's pace
  114. - Fixed mid-air explosions that occur over water triggering a water splash effect
  115. - Fixed the isAttackCapable() check
  116. - Prevent CMissileProjectile weapons with trajectoryHeight from over- or undershooting when firing at targets
  117.   below or above attack position. Based the angular correction factor on missile speed
  118. - Not being able to lock the config file on linux is not a fatal error anymore
  119. - Remove the (bestDist < radius) bugs
  120. - Make sure the (paralyzeDamageTime >= 0)
  121. - Added bestDist method for all area searches
  122. - Added a check for immobile builders that will stop internal
  123.   commands for when the unit has moved out of the build range
  124. - Fixed FlareProjectile. (flare projectile was always removed after one Update.)
  125. - Allow for "non-decloakable" units
  126. - CGameHelper::GetClosestEnemyUnitNoLosTest() now
  127.   includes the target's radius for spherical tests
  128. - Stunned factories don't open, build, or close.
  129. - Players from demo once again can't change speed / pause
  130. - Factored out some glGetDoublev() calls (may be faster on certain GPU architectures)
  131. - Fixed issue that some people can only get sound when hosting
  132. - Fixed bug in map damage loading from savegame.
  133. - Fixed possible bug in explosions map damage.
  134. - Fixed crash with saving after nuke was intercepted.
  135. - Fixed ground-transports being unable to unload units on certain maps
  136. - Units that are still inside a non-firebase transport do not destun
  137. - Fixed units whose state is floating but are not in water taking water-damage
  138. - Print "spectator <name> left" rather than "player <name> left" if the guy leaving is
  139.   a spectator
  140. - Added serializing for InMapDraw .
  141. - Fixed bug with saving builders that terraform ground
  142. - Fixed stunned units being unhittable if pushed
  143. - Made a seperate update thread while the game loads to prevent network timeouts on slow computers
  144. (thread is joined when loading finished)
  145. - CCobInstance::RealCall now checks if stack is big enough before getting
  146.   arguments from stack.
  147. - made StartBuilding measure the pitch from the center of the unit instead of the
  148.   base to deal with units with large vertical offset
  149. - Put CMinimap always on back
  150. - Moved the QueryNanoPiece COB call into synced code to hopefully fix a desync.
  151. - Fixed the bug where a repair order on a construction whose terraforming is
  152.   incomplete will start construction anyway.
  153. - Fixed units terraforming the ground under units being built by factories.

[edit] Lua:

  1. - Added call-in gl.Smoothing(point, line, polygon)
  2. - Added Spring.GetViewSizes() to LuaOpenGL
  3. - Added call-in SetLosViewColors()
  4. - Added the StockpileChanged()   call-in
  5. - Added the DefaultCommand()     call-in
  6. - Added the LuaUI WorldTooltip() call-in
  7. - Added the LuaUI GameSetup()    call-in
  8. - Added GetUnitHeight()       call-out
  9. - Added GetFeatureHeight()    call-out
  10. - Added GetFeatureRadius()    call-out
  11. - Added GetFeatureResurrect() call-out
  12. - Added SetTeamColor()        call-out
  13. - Added GetTeamColor()        call-out
  14. - Added GetTeamOrigColor()    call-out
  15. - Added the Spring.SetDrawSky()   lua call-out
  16. - Added the Spring.SetDrawWater() lua call-out
  17. - Added the Spring.SetDrawGroud() lua call-out
  18. - Added the gl.UnitMultMatrix() lua call-out
  19. - Added the GetLuaAIDesc() call
    • Added the Spring.AddUnitDamage(
  20.    number unitID,
  21.    number damage,
  22.    number paralyzeTime,
  23.    number attackerID,
  24.    number weaponID,
  25.    number impulseX, number impulseXY, number impulseZ) lua call-out
  26. - Added the gl.UnitPieceMultMatrix() lua call-out
  27. - Added the gl.EdgeFlag() lua call-out
  28. - Added the Spring.GetCameraFOV()       lua call-out
  29. - Added the Spring.GetCameraDirection() lua call-out
  30. - Added unit count protection to Spring.CreateUnit()
  31. - Added the DrawUnit() LuaRules unsynced call-in  (for SetUnitLuaDraw())
  32. - Added the Spring.SetUnitLuaDraw() LuaRules call-out
  33. - Added the GameFrame() call-in to LuaUI
  34. - Added the AICallIn() LuaRules unsynced call-in  (for CallLuaRules())  
  35. - Added the Spring.GetTeamLuaAI() lua call-out
  36. - Added LuaUI Spring.GetGatherMode()
  37. - Added LuaUI Spring.GetInvertQueueKey()
  38. - Added Spring.SetUnitLineage(unitID, teamID[, bool isRoot])
  39. - Added Spring.GetBuildFacing() for LuaUI
  40. - Added Spring.GetBuildSpacing() for LuaUI
  41. - Removed the color info from GetTeamInfo()
  42. - Added GetHasLag(), returns true if currently lagging behind host.
  43. - Added PlaySoundStream and StopSoundStream for OggVorbis audio.
  44. - Added the rank parameter to GetPlayerInfo()  (arg 7)
  45. - Added 'autoland' to GetUnitStates()
  46. - Added the UnitCmdDone()   call-in
  47. - Added the UnitCloaked()   call-in
  48. - Added the UnitDecloaked() call-in
  49. - Adedd the MapDrawCmd()    call-in  (only for LuaUI)
  50. - Added the unsynced Spring.GetVisibleUnits([teamID] [,radius] [,useIcons]) call-out
  51. - Added the following to both UnitDefs[] and FeatureDefs[]
  52.     height, radius
  53.     minx, midx, maxx
  54.     miny, midy, maxy
  55.     minz, midz, maxz
  56. - Disabled the lua DrawScreen() call-in when the interface is hidden (note that
  57.   the DrawScreenEffects() call-in remains active)
  58. - The majority of mod files are now loaded via LuaParsers, which can be edited
  59.   to load different types of files. The default LuaParsers simply load the
  60.   normal style files with improved error checking and speed.
  61. - Game.armorTypes[] was changed to a bidirectional map
  62. - WeaponDefs[x].damages.damages[] was replaced with WeaponDefs[x].damages[index]
  63.   (starts at 0 for the default armorType)
  64. - Added the 'teamcolors.lua' local team recoloring LuaParser script
  65. - Added the gui_game_setup.lua GameSetup widget
  66. - Added 'ghostedBuildings' to Game[]
  67. - Changed Game.modName to use the humanName value
  68. - UnitDef names are always lower case now
  69. - Added on-the-fly lua font texture / specfile generation
  70. - Added localization support in the lua tooltips and ctrlpanel
  71. - Generated local speed-ups for some of the installed widgets
  72. - Created FeatureDefNames and WeaponDefNames for LuaUI
  73. - Added Spring.SetUnitNeutral(unitID, bool) and Spring.GetUnitNeutral(unitID)
  74. - neutral units (mainly for gaia and fake features), will not be attacked
  75.   automatic when the attacker to be has its fireState set to "Fire At Will"
  76. - added a hidden fourth fireState level (3) that will shoot at neutrals
  77. - Added SetCustomCommandDrawData
  78. - Added 'extractorRadius' to the LUA Game table
  79. - Added Spring.IsGodModeEnabled() to LuaSyncedRead
  80. - Added the "gamedata/LockLuaUI.txt" check for LuaUI. If this file exists in
  81.   the mod, then LuaUI can only load its gui.lua" file from the archive
  82.   filesystem, thus putting the mod in full control of what LuaUI can be used
  83.   to do  (including disabling all user widgets).  
  84. - LuaAI is now supported.
  85. - Added custom mod / map options via Lua
  86. - MapOptions.lua is to be used with LuaGaia, and belongs in the map archive
  87. - ModOptions.lua is to be used with LuaRules, and belongs in the mod archive
  88. - Renamed cmdDesc  iconname  -> texture  for LuaUI LayoutButtons() input
  89. - Renamed cmdDesc  mouseicon -> cursor   for LuaUI LayoutButtons() input
  90. - Changed the cmdDesc double texture format to:
  91.    '&<xscale>x<yscale>&<tex1>&<tex2>'
  92. (both textures can use either the named textures or '#<unitDefID>' format)
  93. - * Added the Spring.RequestPath() lua call-out
  94. - RequestPath(<number moveID | string moveName>,
  95.      startX, startY, startZ, endX, endY, endZ [, goalRadius]) -> nil | path
  96. - it returns a lua userdata or nil
  97. - the userdata has the following calls:
  98.    path:Next([currX, currY, currZ[, minDist]]) -> nil | x, y, z
  99.    path:GetEstimatedPath() ->
  100.                         {[1] = {x,y,z}, [2] = {x,y,z}, etc... }, -- waypoints
  101.      {[1] = index,   [2] = index,   etc... }  -- resolution start points
  102. - Added Spring.GetUnitEstimatedPath() -- same return as path:GetEstimatedPath()
  103. - Added GetEstimatedPoints() to CPathManager
  104. - Added the NETMSG_LUAMSG net packet type
  105. - Added the following calls to LuaUI:
  106.    Spring.SendLuaUIMsg(msg [,mode = |'a'|'allies'|'s'|'specs'])
  107.    Spring.SendLuaCobMsg(msg)                    
  108.    Spring.SendLuaGaiaMsg(msg)
  109.    Spring.SendLuaRulesMsg(msg)
  110. - Added the RecvLuaMsg(msg, playerID) call-in to all lua scripts
  111. - Added the weaponID to the lua UnitDamaged() for fullRead scripts
  112. - Removed imageSizeX and imageSizeY  (potential desync). The gl.TextureInfo() call can be used instead
  113. - Made decloakDistance a per-unit property, and made it accessible to
  114. synced lua scripts as the third parameter to SetUnitCloak()
  115. - Added GetModOptions() and GetMapOptions()
  116. - Added UnitSeismicPing()  (with a sound)
  117. - Added the ability to set the stockpile percent
  118. - Added the Spring.SetUnitTarget(unitID, targetID | <x,y,z>, bool userTarget) call-out
  119. - Added the Spring.SetExperienceGrade(number) call-out (sets the experience steps that will trigger the UnitExperience() call-in, based on the limExperience varible value  (exp / (exp + 1)))
  120. - Added the UnitExperience() lua call-in
  121. - Added VFS.UseArchive(filename, function(...) ... end, ...)
  122. - allows for packaged widgets (source, textures, sounds, etc...)
  123. - currently only works for raw filesystem access (limited to LuaUI)
  124. - Added the following lua call-outs to allow unsynced read access to COB global variables:
  125.    GetCOBUnitVar(unitID, varID)
  126.    GetCOBTeamVar(teamID, varID)
  127.    GetCOBAllyTeamVar(allyTeamID, varID)
  128.    GetCOBGlobalVar(varID)
  129. (varIDs start at 0)
  130. - Added FBO objects to lua GL, with MRT (multiple render targets) capability, and blitting
  131. - Added RBO objects to lua GL, which should allow for depth + stencil format  
  132. - Added lua Scream objects, which can call a function when they are garbage collected
  133. - Added VFS.SubDirs(), to get a list of subdirectories
  134. - Spring.SendMessage() and friends can now be used by unsynced lua code
  135. - added Lua SyncedCtrl function Spring.SetUnitMoveGoal(unitID, posX, posY, posZ[, radius[, speed]]),
  136.   this makes the unit move closer to the target location, to a distance of <radius> (default 0).
  137.   This is mostly for custom commands that should have the unit moving into range,
  138.   it doesn't affect the order queue. It's marked as unsafe.
  139. - New Lua call-out (SyncedCtrl): Spring.SetUnitWeaponState(unitID, weaponNum, stateTable)
  140.   StateTable is a table containing one or more of reloadstate, reloadtime (this time in seconds),
  141.   accuracy, sprayangle, range, projectilespeed. Obviously the values will be assigned to the
  142.   variables the keys refer to.
  143. - Added the Spring.GetMapList() call-out to the mod ValidMaps.lua script
  144. - Added the Spring.GetMapInfo() call-out for the ValidMaps.lua script
  145. - Added mapSizeX and mapSizeZ to the lua Game table
  146. - Fix GetCmdDescIndex()
  147. - Added a seventh parameter to AllowCommand, "synced". It's a bool that is true
  148.   when the command was sent by either a Spring-internal action or synced Lua and
  149.   it's false if the command came from the user or LuaUI. This should facilitate preventing user
  150.   commands to a unit while allowing LuaRules commands

[edit] COB

  1. - Give a COB error instead of crashing for invalid explosion generator indices
  2.   or weapon indices in emit-sfx.
  3. - Added COB call to "ShotX" that happens shortly before weaponX uses
  4.   QueryWeaponX, use this for switching firepoints in bursts or when using
  5.   multiple projectiles.
  6. - StartBuilding now supplies the pitch as the second parameter to help with custom build FX.
  7. - Fixed cob bitwise not operator (was logical not.)
  8. - Added a MOD COB opcode for modulo division
  9. - Introduces the COB get/set variable 103, ALPHA_THRESHOLD. It ranges from 0-255
  10.   and changes the glAlphaFunc to use that alpha value as its minimum. In
  11.   practice this allows disintegration-style effects or the reverse for build animations.
  12. - Transport AI now calls the cob function 'StartUnload' which is called once
  13.   when transport starts to lower during land flood method.
  14. - Dropped units call the cob functions 'falling' and 'landed' so that you may
  15.   start and stop a parachute animation.
  16. - Added the 'cobID' unitDef tag, and the COB_ID (100) COB GET type
  17. - Added the BlockShot#(unitID, block) COB call-in  - set block to non-zero to block the unit firing at unitID
  18. - Added the cob GET/SET STEALTH command  (96)
  19. - Added CRASHING (97) get/set constant to COB. Can be used to get/set whether an aircraft is crashing. Is ignored for non-CAirMoveType units (including CTAAirMoveType aircraft).
  20. - Added global, team, and ally GET/SET variables to COB scripts
  21. 1024 - 2047:  1024 global variables
  22. 2048 - 2175:  128  variables per team      (the COB script unit's team)
  23. 2176 - 2303:  128  variables per allyteam  (the COB script unit's allyteam)
  24. - Added 8 shared per-unit variables   (example:  GET  UNIT_VAR_START  -unitID  value)
  25. - Added the  SET_WEAPON_UNIT_TARGET (106)  and  SET_WEAPON_GROUND_TARGET (107) COB GET codes  (used GET because of its extra parameters)
  26.    -  GET  SET_WEAPON_UNIT_TARGET    weaponID  unitID          userTarget
  27.    -  GET  SET_WEAPON_GROUND_TARGET  weaponID  xzCoord yCoord  userTarget
  28. - Added TargetWeightX COB call-in and CHANGE_TARGET cob set var. COB call-in TargetWeightX(targetID, weight), weight defaults to 65536 which represents 1.0 and is multiplied with the target's value to determine priorities. Set CHANGE_TARGET to Y makes weaponY pick a new target.
  29. - Adds the COB set constant CEG_DAMAGE (99), which defines
  30. the damage value for all CEGs triggered by emit-sfx 1024 + x
  31. to allow for some variability in the emitted effects (to e.g.
  32. make a charging energy ball grow larger or have smoke get
  33. progressively darker as the unit's HP decreases).
  34. - Added a new get call, PLAY_SOUND, to play a sound that can be heard only by allies, enemy, in los, etc.
  35.   GET PLAY_SOUND(sound number, volume, who hears the sound, where to play the sound) (see r4974 for full docs)
  36. - get health now allows a unit ID to be passed
  37. - Added COB and Lua access to some more weapon variables.
  38.   New COB constants, all get-only (but not read-only):
  39.   WEAPON_RELOADSTATE 125 (frame number of the next shot/burst)
  40.   WEAPON_RELOADTIME 126 (in frames)
  41.   WEAPON_ACCURACY 127
  42.   WEAPON_SPRAY 128
  43.   WEAPON_RANGE 129
  44.   WEAPON_PROJECTILESPEED 130
  45.   All of these use the first param (starting at 1) as the weapon index whereby positive
  46.   means read and negative means write the second param to the value. In the latter case
  47.   the previous value is returned.


[edit] TASServer/Protocol

  1. - Don't crash on quit if helpUDPsrvr == null.
  2. - Better error reporting.
  3. - Added 'servermode' argument to TASSERVER command (1 for LAN mode, 0 normal)
  4. - Fix LOADARGS commandline argument.
  5. - Added the "SETSCRIPTTAGS <key> <value>" protocol command. Multiple tags are separated by tabs.
  6. - Allow startpos type 3
  7. - Removed UPDATEBATTLEDETAILS command, also removed several arguments from JOINBATTLE and OPENBATTLE commands. All this attributes will now be handled via SETSCRIPTTAG commands.
  8. - Added the REMOVESCRIPTTAGS commands:  REMOVESCRIPTTAGS key1 key2 key3 ...
  9. - Added protection against brute force attacks on accounts
  10. - New ban system using MySQL:
  11. - No more autoban on flooding - just a kick

[edit] 0.75b2

  1. - Fixed possible crash while waiting for connection to the host.
  2. - Fixed unknown net msg in read ahead bugs when large UDP packets were received.
  3. - Fixed a crash when empty network packets where destructed.
  1. - Fixed rapier like units being unable to attack enemy units.
  2. - TargetBorder now takes the correct vertical distance into account.
  3. - ".kick" and ".kickbynum" now just kick the given player instead of kicking
  4.   everyone including the host himself.
  5. - Game end condition is now fixed to check allyteams instead of teams.
  1. - Added gui_xray_shader.lua widget
  2. - Added gui_team_platter.lua widget
  3. - Added camera_smooth_move.lua widget

[edit] 0.75b1

[edit] Uncategorized:

  1. - Added LuaCob, LuaGaia, LuaRules synchronized scripting:
  2.   - LuaCob:   (mod)  provides access to lua functions for COB scripts
  3.   - LuaGaia:  (map)  controls the Gaia team
  4.   - LuaRules: (mod)  gives full read/ctrl to setup custom mod game rules
  5. - Added LuaRules Spring.UnitRendering (LuaMaterials, unfinished).
  6. - Merged the LuaUI code with the new lua library setup.
  7. - Made LuaUI mod widgets possible.
  8. - Added support for the Gaia team.
  9. - Added SimpleGroundFlash to explosion generator.
  10. - Added 'dds' and 'png' as default buildpic formats.
  11. - Load/save now uses the creg serializer.
  12. - Netcode has been refactored to be more readable.

[edit] AI:

  1. - Added Load/Save interface for AIs.
  2. - Load/save support for EconomyAI and MexUpgraderAI.
  3. - Added GetStartPos to IAICallback.
  4. - Fixed CCommandQueue in AI interface.
  5. - Added AIVAL_UNITLIMIT enabling AIs to query the maximum number of units.
  6. - Added the ability to unload a specific unit using the UNLOAD_UNIT command
  7.   (the unitID should be added as the fourth parameter)
  8. - Added AIVAL_STOCKPILED to query the amount of stockpiled ammo.
  9. - Added AIVAL_STOCKPILE_QUED to query the amount of queued stockpile ammo.

[edit] Behavorial:

  1. - Allow up to 16 pads per air base.
  2. - Units can not build stuff on top of cloaked stuff anymore.
  3. - Units guarding other units now properly repair the other unit if it's damaged.
  4. - Units guarding factories prioritize repairing the factory instead of building
  5.   new units.
  6. - Stunned (and transported) units can not build anymore.
  7. - Units (that are still paralyzed) are not un-stunned anymore during unloading.
  8. - Changed the unit resource updates so that they occur even while stunned.
  9. - Transporters can carry hovers and ships now.
  10. - Transporters now check ground slope before unloading.
  11. - Units on a slope steeper than their max slope will now skid down it.
  12. - Disabled the ground flattening when building mobile units.
  13. - Added paralyzed unit skipping for paralyzers.
  14.   (use ALT to disable skipping, same modifier as for permanent area commands)
  15. - Made a unit's ablity to slow itself relative to the angle of the slope.
  16. - Improved aiming of Cannon type weapons. They will no longer over/under shoot
  17.   due to large height differences.
  18. - Weapons don't target dead and crashing units anymore.
  19. - Mobile units under hold position in a temporary attack order don't move away
  20.   from their patrol route anymore.
  21. - Added ScriptMoveType (incomplete, but functional).
  22. - Commander doesn't randomly D-gun buildings anymore when FPS mode is disabled.
  23. - Missiles now honour SprayAngle weapon TDF tag.

[edit] Bugfixes:

  1. - Removed the maximum 8 sides limit.
  2. - Fixed incorrect searching order in the virtual file system.
  3. - Fixed teamcolor for S3O and 3DO features.
  4. - Fixed cloaked S3O units losing their texture.
  5. - Fixed teamcolor rendering for MissileProjectile and WeaponProjectile.
  6. - Fixed handling of .give so team unitlimit is respected.
  7. - Dynamic and refractive water are now reinitialized after window resize.
  8. - Fixed rendering of shadows of S3O models with transparency.
  9. - Fixed rendering of underwater grass.
  10. - Made LuaUI compatible with VFS access.
  11. - Fixed SM3 shader for ATI x1* series.
  12. - Fixed incorrect cancelling of rotated buildings build orders.
  13. - And many more

[edit] Chat commands:

  1. - Added an optional [0|1] parameter to the pause command.
  2. - Added an optional [0|1] parameter to the showHealthBars command.
  3. - Added an optional [0|1] parameter to the updatefov command.
  4. - Added an optional [0|1] parameter to the drawtrees command.
  5. - Added an optional [0|1] parameter to the dynamicsky command.
  6. - Added an optional [0|1] parameter to the hideinterface command.
  7. - Added ".editdefs [0|1]" to allow lua based UnitDef editing.
  8. - Added ".reloadcob <unitName>" to reload cob scripts.
  9. - Added ".skip <[+|f]seconds>" for in-game and replay fast-forwarding.
  10. - Added "/safegl [0|1]" command for testing lua rendering overhead.
  11. - Added "/buffertext <text>", copies text into the console history.
  12. - Added dynamic "/vsync" control.
  13. - Added the "/fpshud [0|1]" action.
  14. - Added "endgraph [0|1]" action.
  15. - Changed ".take" so that cheating must be enabled for spectators to use it.
  16. - Added the ability to give features using ".give"
  17.   (only if the unit name doesn't match, player's team is used)
  18. - Added input text editing
  19.   - backspace & delete
  20.   - home & end  (or ALT+{left|right})
  21.   - CTRL+{left|right} for word skipping
  22. - Added the '//' -> '/' command prefix conversion syntax
  23. - Added the following LuaUI widget handler commands:
  24.    "/luaui togglewidget  <widgetname>"
  25.    "/luaui enablewidget  <widgetname>"
  26.    "/luaui disablewidget <widgetname>"
  27. - Added the '/lodscale [shadow|reflection|refraction] <scale>' command.

[edit] COB:

  1. - HitByWeaponId(z,x,id,damage) will be called instead of HitByWeapon if it exist
  2.   in script.
  3. - Implemented COB get/set constant STANDINGMOVEORDER (2)
  4. - Implemented COB get/set constant STANDINGFIREORDER (3)
  5. - Added a new COB query call, "QueryLandingPadCount".
  6.   - if not defined, Spring will assume 16 as the maximum number of pads
  7.   - it takes one argument, which is initially set to 16, the number
  8.     returned in arg0 will be used as the maximum number of pads.
  9. - Fixed logical XOR,AND,OR (they were implemented as binary XOR,AND,OR)
  10. - Added COB get/set constant UPRIGHT (79)
  11. - Added COB get constant POW (80) with 2 arguments x and y: it returns x^y.
  12. - Added COB get constant PRINT (81) which prints it's 4 arguments to infolog.
  13. - Added COB get constant HEADING (82)
  14. - Added COB get constant TARGET_ID (83)
  15. - Added COB get constant LAST_ATTACKER_ID (84)
  16. - Added COB get/set constant LOS_RADIUS (85)
  17. - Added COB get/set constant AIR_LOS_RADIUS (86)
  18. - Added COB get/set constant RADAR_RADIUS (87)
  19. - Added COB get/set constant JAMMER_RADIUS (88)
  20. - Added COB get/set constant SONAR_RADIUS (89)
  21. - Added COB get/set constant SONAR_JAM_RADIUS (90)
  22. - Added COB get/set constant SEISMIC_RADIUS (91)
  23. - Added COB get constant DO_SEISMIC_PING (92)
  24. - Added COB get/set constant CURRENT_FUEL (93)
  25. - Added COB get constant TRANSPORT_ID (94)
  26. - Added COB get/set constant SHIELD_POWER (95)
  27. - Added COB get/set constants LUA0-LUA9 (110-119)

[edit] Config:

  1. - Added "SMFTexAniso" config parameter (default = 0, disabled)
  2.   (application controlled anisotropic texture filtering for SMF maps)
  3. - Removed "SM3MaxTextureStages", it's confusing and the fallback mode isnt
  4.   really useful (still slow).
  5. - Added config parameter MaximumTransmissionUnit. This can be used to control
  6.   the maximum UDP packet size Spring uses. The default is 512, which should keep
  7.   all UDP packets below the required minimum MTU of 576 bytes (512 payload).
  8.   If the hypothese that many player drops are because of too big UDP packets is
  9.   correct, then this may solve it.

[edit] Feature TDF tags:

  1. - Added boolean feature TDF tag NoSelect. (default: 0)

[edit] Fixed exploits:

  1. - Fixed exploit: UnitRestricted could be circumvented by making multiple
  2.   factories and starting a build of the restricted unit in all factories at
  3.   the same time.
  4. - Fixed exploit: CanAssist could be circumvented if multiple builders were
  5.   ordered an identical build at the same time out of their immediate range.
  6. - Fixed exploit: Aircraft can not cross map boundaries anymore in FPS mode.

[edit] Game Setup:

  1. - Added 'lineage' game mode (2). If the commander dies, all units directly or
  2.   indirectly built by him die, regardless of the current owner of the unit.
  3. - Added player 'CountryCode' tag for the gameSetup script.
  4. - Added game setup script parameter 'Savefile'.
  5. - SaveGame can also be loaded by command line: 'spring QuickSave.ssf' or
  6.   'spring C:\Spring\Saves\QuickSave.ssf'
  7. - Added NoHelperAIs tag: determines whether helper AIs are allowed.
  8. - Added LuaGaia tag: is LuaGaia enabled this game?
  9. - Added LuaRules tag: is LuaRules enabled this game?

[edit] GUI:

  1. - Added land at 80% for aircraft.
  2. - Better handling and display of widgets which are enabled, but not active.
  3. - Disable unit tracking when using middle mouse button scrolling.
  4. - Disable unit tracking when the viewport is set via the minimap.
  5. - New unit selection filter "in hotkey group".
  6. - Units being transported can not be selected anymore unless the transporter
  7.   isfireplatform.
  8. - Mobile units can be loaded onto a transport by clicking on the transport with
  9.   the mobile unit selected.
  10. - Added Free camera mode (to help make better videos). It's primarily intended
  11.   to be used with keyboard input (CTRL/ALT/SHIFT/META behave differently then
  12.   the normal camera modes). It's is not in the toggle list by default.
  13. - Added CTRL+F5 default keybinding for free camera mode.
  14. - Added text coloring for ally and spec message input.
  15. - Changed unit sharing so that allied units do not clear their command
  16.   queue, and cleaned up some more state for enemy transfers.
  17. - Allowed build command descriptions to use text in the 4 corners of a button
  18.   (0 = SW, 1 = NE, 2 = NW, 3 = SE)
  19. - Added the "hotspot" command for the *.txt mouse cursor spec file
  20. - Added side preference prefix for start pictures.
  21. - Allow "allside_" start pictures to always be used (regardless of side).
  22. - FPS mode now shows weapon names instead of numbers.
  23. - Area build now builds every second row in the opposite direction.
  24. - Perimeter build now builds everything in clockwise or counterclockwise order.
  25. - Circle build now builds everything in clockwise or counterclockwise order.
  26. - Circle build now works correctly when trying to use non-square buildings for
  27.   circling anything.
  28. - Improved QuitBox player selection visibility.
  29. - Gunships and air builders now have a repair level switch.

[edit] Mapping:

  1. - New ocean.jpg (public domain) comes from golgotha texture set and tiles better
  2.   then original ocean.jpg.
  3. - Changed default repeat settings so the new texture fits better (wrt. scale)
  4. - Added "MAP\WATER\WaterRepeatX" and "MAP\WATER\WaterRepeatY" SMD tags, defining
  5.   the amount of times the water texture should be repeated in X and Y direction.
  6. - Aspect ratio of water texture is taken into account now.
  7. - Added 'gamedata/resources_map.tdf' for gaia unit projectile textures.

[edit] Unit FBI tags:

  1. - Added boolean FBI tag AirStrafe.  Only effective if HoverAttack=1.
  2.   If AirStrafe=1, gunships and construction aircraft will strafe in a circle
  3.   around the target. If AirStrafe=0, they will not strafe, they will sit
  4.   stationary in the air firing their weapons. If set to 0 they sit at one place.
  5. - Added string FBI tag Gaia.
  6. - Added string FBI tag DecoyFor: the name of the unit this one is a decoy for.
  7. - Added boolean FBI tag CanBeAssisted. (default: 1)
  8.   - Disabling assists to factories should work well.
  9.   - Builders have to die to release their hold on a unit being built,
  10.     and once the unit is released, multiple builders can repair the unit.
  11. - Added boolean FBI tag CanSelfRepair. (default: 0)
  12. - Added boolean FBI tag TransportByEnemy. (default: 1)
  13. - Added boolean FBI tag HoldSteady, causes transports to hold units such that
  14.   their updirs are always aligned.
  15. - Added boolean FBI tag ReleaseHeld for transports. When set to 1, the units
  16.   carried by the transport will survive the destruction of the transport itself.
  17. - Added float FBI tag SlideTolerance, multiplies the the max slope for
  18.   determining when skidding should begin, due to slope. Values less than 1 will
  19.   cause the unit to never start skidding due to slope. (default: 0)
  20. - Added float FBI tag MinCollisionSpeed, indicating the minimum net impact speed
  21.   that will cause damage to a unit.
  22. - Added vector FBI tag CollisionSphereOffset
  23. - Added float FBI tag LoadingRadius
  24. - Added boolean FBI tag FullHealthFactory, controls whether or not a unit can
  25.   leave the factory if it is not at full health. (default: 0)
  26. - Added float FBI tag RepairSpeed (default: WorkerTime)
  27. - Added float FBI tag ReclaimSpeed (default: WorkerTime)
  28. - Added float FBI tag ResurrectSpeed (default: WorkerTime)
  29. - Added float FBI tag CaptureSpeed (default: WorkerTime)
  30. - Added float FBI tag TerraformSpeed (default: WorkerTime)
  31. - Added boolean FBI tag DecloakOnFire (default: 1)
  32. - Up to 8 ok, select and arrived sounds can now be defined.
  33.   (use tags ok1, ok2, etc.)
  34. - Added float FBI tag CollisionSphereScale, this is a scaling factor for the
  35.   unit's collision sphere. (default: 0.5 for aircraft, 1 for other units)

[edit] Weapon TDF tags:

  1. - Added weapon tdf command SweepFire, if 1 (default 0) it will make the weapon
  2.   continue firing while it aims for a new target. Only works on continous beam
  3.   lasers currently.
  4. - Added boolean weapon TDF tag CanAttackGround. (default: 1)
  5. - Added float weapon TDF tag float TargetBorder: if nonzero, targetting units
  6.   will TryTarget at the edge of collision sphere (radius*tag_value, [-1;1])
  7.   instead of its centre. Defaults to 1 for Melee type weapons, 0 otherwise.
  8. - Added float weapon TDF tag CylinderTargetting: if greater than 0, range will
  9.   be checked in a cylinder (half height=unitradius*cylinderTargetting) instead
  10.   of a sphere. Defaults to 1 for Melee type weapons, 0 otherwise.
  11. - Added float weapon TDF tag MinIntensity: for beamlasers - always hit with some
  12.   minimum intensity (a damage coeffcient normally dependent on distance).
  13. - Added float weapon TDF tag SizeDecay: how much a plasma particle is smaller
  14.   than the previous within the same plasma shot. (default: 0)
  15. - Added float weapon TDF tag AlphaDecay: how much a plasma particle is more
  16.   transparent than the previous particle. (default: 1)
  17. - Added float weapon TDF tag Separation: distance between each plasma particle.
  18.   (default: 1)
  19. - Added int weapon TDF tag Stages: number of particles used in one plasma shot.
  20.   (default: 5)
  21. - Added boolean weapon TDF tag NoGap: if set to 1, the distance between plasma
  22.   particles is proportional to the size of the two particles. If set to 0, the
  23.   distance between plasma particles will be proportional to the size of the
  24.   first particle. (default: 1)
  25. - Added the weapons TDF tag 'visibleShieldHitFrames' (defaults to 0 frames)
  26.   - can be used along with  'visibleShieldHit'
  27.   - the alpha value fades after the hit
  28. - Added colormap for ballistic ('cannon' type) weapons.
  29. - Added boolean weapon TDF tag AvoidFeature, this makes the weapon avoid
  30.   features while targetting. (default: 1)
  31. - Added float weapon TDF tag FallOffRate: rate at which the beamweapon fades out
  32.   after it goes past its maximum range. 0 is never fade out, 1 is finish fading
  33.   out exactly at max range, the default 0.5 is the previous behaviour.
  34. - Added float weapon TDF tag LodDistance: minimum camera distance at which the
  35.   default beamweapon projectile is simplified to rectangle. (default: 1000)
  36. - Added float weapon TDF tag DynDamageExp: exponent of the damage formula, 0
  37.   (the default) disables dynamic damage. 1 means linear scaling.
  38. - Added float weapon TDF tag DynDamageMin: minimum damage value. (default: 0)
  39. - Added boolean weapon TDF tag DynDamageInverted: inverts the damage curve.
  40. - Added float weapon TDF tag DynDamageRange: if set it will use this value
  41.   instead of the range value from the weapon in the calculation.
  1. New projectile handler textures:
  2. - sbtrailtexture         - default first section of starburst missile trail texture
  3. - missiletrailtexture    - default first section of missile trail texture
  4. - muzzleflametexture     - default muzzle flame texture
  5. - repulsetexture         - texture of impact on repulsor
  6. - dguntexture            - dgun texture
  7. - flareprojectiletexture - texture used by flares that trick missiles
  8. - sbflaretexture         - default first section of starburst missile trail texture
  9. - missileflaretexture    - default first section of missile trail texture
  10. - beamlaserflaretexture  - default beam laser flare texture
  11. - bubbletexture          - torpedo trail texture
  12. - gfxtexture             - nanospray texture
  13. - projectiletexture      - appears to be unused
  14. - repulsegfxtexture      - used by repulsor
  15. - sphereparttexture      - sphere explosion texture
  16. - wrecktexture           - smoking explosion part texture
  17. - plasmatexture          - default plasma texture

[edit] Scons build system:

  1. - Added debugdefines configure option: true by default, if it's set to false
  2.   (debugdefines=no) then a debug build will be made with release preprocessor
  3.   defines. This can be used to generate debugging symbols for release builds.
  4. - Added dc_allowed configure option to enable/disable direct control.

[edit] Unitsync:

  1. - Added GetSpringVersion() function to unitsync. This returns the Spring version.
  2. - Deprecated InitArchiveScanner() unitsync function.
  3. - Added java bindings to unitsync.
  4. - Unitsync is now installed to libdir on Linux. It can be assumed this is
  5.   either /usr/local/lib/spring/unitsync.so or /usr/lib/spring/unitsync.so.

[edit] 0.74b3

  1. - Added LuaUI v0.1  (with widget management code, somewhat experimental)
  2.   (requires the LuaUI setting to be on to be autoloaded,
  3.    "/luaui disable"      to disable in-game
  4.    "/luaui reload"       to load in-game
  5.    "/luaui reload fresh" to load in-game, but with fresh state)
  1. - Renamed docs/lua_ui_interface.txt to LuaUI/API.txt
  1. - Added "/minimap slavemode [0|1]" and "/minimap draw" for use with LuaUI
  1. - Added "/specfullview 2" spectator mode, where you can both view and select all units
  1. - Added "/volume <fraction>" command  (0.0 to 1.0 range)
  1. - Added "group <int> [ "set" | "add" | "selectadd" | "selectclear" | "selecttoggle" ]"
  2.   action as an alternative to the group[0|9] commands  (note that the key modifiers can
  3.   be setup differently from the default)
  1. - Fixed FBI tag floater for planes,
  2. - Added FBI tag canSubmerge for planes. The following rules apply:
  3.     1) If a plane only has the 'floater' tag set to 1, it will land on the ocean surface.
  4.     2) If a plane only has the 'canSubmerge' tag set to 1, it will land on the ocean floor.
  5.     3) If a plane has both tags set to 1, it will obey rule 2.
  1. - Fixed the factory cancelled-build delay bug.
  2. - Fixed units get stuck while guarding factories bug.
  3. - Fixed planes can't find landing pad on large maps bug.
  4. - Fixed in game video creation (default binding F10).
  5. - Fixed a bug causing much metal/energy to be lost instead of shared to allies.
  1. - Smoothed LOS / Radar view.

[edit] 0.74b2

  1. - Planes can land on water surface if FBI tag floater is set to true.
  1. - Added GROUND_WATER_HEIGHT (78) to get in cob script.
  2.   Same as GROUND_HEIGHT (16) but in water it returns negative water depth instead of 0.
  1. - Units don't slowdown on intermediate waypoints anymore.
  1. - Added mingw compatible crashhandler.
  1. - Fixed sharebox and quitbox for 16 players.
  2. - Fixed FPS mode aiming to the northwest.
  3. - Fixed FPU control word assertion that made spring unplayable with some sound drivers.
  1. - Added sorting options to "/info", you can use names or numbers:
  2.   0 - "off",   disable display
  3.   1 - "ally",  allies  (you, your team, your allyteam, your enemies, then spectators)
  4.   2 - "team",  player team id
  5.   3 - "name",  player name alphabetic sort
  6.   4 - "cpu",   player cpu usage
  7.   5 - "ping",  player ping time
  1. - Added the "maxparticles <value>"       action
  2. - Added the "minimap simplecolors [0|1]" action
  3. - Added the "specfullview [0|1]"         action
  4.   (setting it to 0 gives the same minimap and viewport visibility as the selected team)
  1. - Added "OverheadTiltSpeed" config parameter
  1. - Fixed the unit-limit vs. sharing bug
  1. - Shadow mapping works for SM3

[edit] 0.74b1

  1. - Linux vs Windows is now synced if binaries are built using gcc 4.0 or higher.
  1. - Games with more then 10 players now work properly.
  2. - Several improvements and fixes for autohosting, including a .kickbynum command.
  1. - Added minimap commands (two modes, see the MiniMapFullProxy config param)
  1. - Added "MiniMapGeometry" config parameter
  2. - Added "TooltipGeometry" config parameter
  3. - Added "TooltipOutlineFont" config parameter
  4. - Added "InfoConsoleGeometry" config parameter
  1. - Added "/resbar [0|1]" action
  2. - Added "/tooltip [0|1]" action
  3. - Added "/specteam <number>" action  (sets the spectator team)
  1. - Added "newAttackMode" and friends to "ctrlpanel.txt"
  1. - Added animated line stippling for queue rendering  (see cmdcolors.txt)
  1. - Cursors can now use TGA and PNG file formats
  2. - Added an optional cursor control file for easier timing/frame control
  1. - Renamed the /layout command to /luaui
  2. - Renamed the "ctrlpanel.lua" file to "gui.lua"
  1. - Added "timewait [seconds] ["queued"]" action
  2. - Added "deathwait ["queued"]" action
  3. - Added "squadwait [count] ["queued"]" action
  4. - Added "gatherwait" action
  5. - Added "gathermode [0|1]" action
  1. - Added a number of features to the LuaUI
  2.   (see Documentation/lua_ui_interface.txt)
  1. - Improved the outline font rendering speed
  1. - numbers in .info list are now team numbers, so they match with '.team X' commands.
  2. - names are now prefixed with 's:' 'a:' or 'e:' for respectively spectators, allies and enemies.
  3. - if spectating, an arrow is displayed in front of the team you are currently watching.
  1. - added Shift and Alt/Meta group selection modifier features
  2.   (Shift adds members to current selection, Alt/Meta toggles them)
  1. - added the  "viewsave <name>"  and  "viewload <name>"  actions
  2. - added GetCameraState() and SetCameraState() to the lua GUI interface
  1. - added "selectcycle [restore]" action
  1. - fixed queue build rendering (GL_DEPTH_TEST)
  1. - added GetUnitHealth(), GetTeamResources(), and GetCommandQueue() to the lua GUI interface
  2. - enabled loading the "ctrlpanel.lua" file from the VFS
  1. - added "wait queued" and "selfd queued" to the default key bindings
  2. - fixed WAIT behaviour for factories
  3. - enabled queuing of Self Destruction commands
  4. - added a pathetic SELFD cursor
  1. - added "alwaysDrawQueue" and "buildBoxesOnShift" to cmdcolors.txt
  1. - added the "invqueuekey [0|1]" action, and [InvertQueueKey=0] config parameter
  2. - added mouse rocker gestures for immediate mode access when using inverted queue keying
  1. - AIs can query a unit current fuelstorage via GetProperty() with property AIVAL_CURRENT_FUEL (2).
  2. - AIs receive seismic pings via HandleEvent() function with message AI_EVENT_SEISMIC_PING (5).
  3. - The icontype of enemy units is remembered if they are under continuous radar coverage.
  4. - Ghosted buildings under continuous radar coverage don't have an error vector in their position anymore.
  5. - Ghosted buildings also turn into unit icons when far away.
  1. - Improved clickability of unit icons.
  1. - 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.
  1. - Added unit FBI tag UnitRestricted to limit the number of a unit type allowed in a game.
  1. - Added CLOAKED (76) and WANT_CLOAK (77) to get/set in cob script.

[edit] 0.73b1

  1. - added the ability to layout the control panel widget layout with a LUA script
  2.   (uses a file called "ctrlpanel.lua")
  3. - added the "/layout" command for direct interaction with the layout lua script
  1. - Map packs (ie. multiple maps in one archive) are officially unsupported now because of technical reasons.
  1. - Added keyword "dir" to explosiongenerator, this is a vector and can be diferent depending on what created the explosion.
  2.   If created at a weapon impac it is the direction of the impact.
  1. - Added the abillity to call explosiongenerators and weaponfire from within script via emit-sfx command.
  2.   Explosiongenerators to be called via script are defined in the unit TDF file in a section called SFXTypes, with tags explosiongenerator+n=some_explosion
  3.   and then called via emit-sfx 1024+n.  
  4.   Weaponfire are called via emit-sfx 2048+weapon_to_fire.
  1. - added "ctrlpanel.txt" configuration file to control how the Control Panel
  2.   is rendered (x/y icons counts, sizes, positions, prev/next menu icon
  3.   locations, etc...)
  4. - added an option in "ctrlpanel.txt" to render some of the screen text with
  5.   an outlined font. This is a hack, and can cause FPS decreases on slower
  6.   computers (main factor is blended fill-rate)
  1. - added an outline around the minimap
  1. - fixed reclaim exploit where extra metal was gained if you destroyed the building just before it would finish reclaiming.
  1. - added "cmdcolors.txt" settings file to configure control indicator rendering
  2.   (this includes command queue lines and ranges, highlighted unit ranges, the
  3.    mouse selection box, and the selected unit boxes)
  4. - added line width specification for items in "cmdcolors.txt"
  5. - added blending mode specification for items in "cmdcolors.txt"
  1. - removed "NoSound" config parameter in favour of "MaxSounds=0"
  2. - passthru to the NullSound driver if there is a sound driver error
  1. - added a page number to the control panel
  2. - added "buildiconsfirst" command to toggle the order of control panel icons
  3.   (also set the control panel page number to the cmdcolors.txt build color
  4.    when the build icons are being placed first)
  1. - added build range circles for immobile builders when holding shift over them
  1. - added the techLevel variable to UserDef, with automatic detection of the
  2.   tech levels in a mod based on the information in the sidedata.tdf file
  3. - added the "techlevels" action, to save the tech levels to techlevels.txt
  4.   (as well as sending them to stdout)
  5. - display a unit's TechLevel in the tooltip window when cheats are enabled
  1. - key commands now work while the GUI interface is hidden, and the default
  2.   command cursor icon is updated as well
  3. - change the control panel page when a key command accesses an off-page icon
  4. - change the tooltip to reflect the unit being built rather then the builder
  5.   while selecting the build position
  6. - added cycling for command actions when more then one is available
  7. - added "iconpos <#>" action, for positional access to control panel icons
  8. - added "firstmenu" action  (resets the control panel to its first page)
  1. - added "keyset" command for named keysets
  2. - added "keysym" command for custom key symbols
  3. - added "fakemeta" key binding command to provide another modifier
  1. - added SmoothLines and SmoothPoints config parameters  (anti-aliasing)
  2.   (0 = off,  1 = fastest,  2 = don't care,  3 = nicest)
  1. - changed GameInfo so that it always displays map name and mod name
  1. - group AI code now permits multiple AIs per dll/so. This is handled by
  2.   identifying group AIs by a new datatype, 'AIKey', rather than using just
  3.   the dll name. Group AI dlls should now implement GetAiNameList to return an
  4.   array of available AI names in string (const char*) form, terminated by NULL.
  5.   The existing group AI interface functions GetNewAi, ReleaseAi, and
  6.   IsUnitSuited now take an unsigned aiNumber as their first parameter: this
  7.   is a zero-based AI index, matching the array returned by GetAiNameList.
  1. - improved default command selection
  1. - added "/water   [0-3]" to control water rendering in-game
  2.   (the optional number is the mode; without the number, it cycles through the modes)
  3. - added "/shadows [0-1]" to control shadow rendering in-game
  4.   (the optional number means off/on; without the number, it toggles)
  1. - 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.  
  2. - [bugfix] Resource expendature now shows correct pull when economy is stalling.
  1. - - Added transparency suport from texture2 in s3o drawing, requires advanced shading.
  2. - added DualScreenMode and DualScreenMiniMapOnLeft configuration flags.
  3.     This causes the game view width to be one half of the screen width, so the minimap can take the other half.
  4.     You will need to spread your spring window across the 2 screens.
  5.     Specifying DualScreenMiniMapOnLeft will place the minimap on the left hand screen, rather than the right (the default)
  6. - geothermal vents with a geothermal unit on top will not create smoke.
  1. - 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)
  1. - added support for teamcolored nanospray (user option). Can be forced off by modder using gamedata/particles.tdf.
  2. - new fbi tag shownanoframe: set to 0 to disable nanoframe while the unit is being built.
  3. - new fbi tag shownanospray: set to 0 to disable nanospray.
  4. - new fbi tag nanocolor: color of the nanospray and the nanoframe in red green blue format (white = 1 1 1).
  5.   (These three fbi tags apply to the unit itself; not to the unit it's building.)
  1. - linux vs linux is now synced, independently of the distribution & gcc version
  2. - if host finishes loading before client executable is started spring no longer loses connection
  1. - added the "say" action  (does work with the .give command)
  1. - changed .clock and .info to local commands (/clock and /info now work as well)
  1. - replaced key binding code with a more flexible solution:
  2.   * can specify key for almost all commands (including unit builds)
  3.   * can specify modifiers (Alt, Ctrl, Meta, Shift)
  4.   * can bind the same key to more then one action
  5.     (first available action is used, handy for build orders)
  1. - added internal default bindings  (see rts/Game/UI/KeyBindings.cpp)
  2. - added "unbindall"                command
  3. - added "unbindKeyset    <keyset>" command
  4. - added "unbindAction    <action>" command
  5. - added "unbind <keyset> <action>" command
  6. - added "bindbuildtype ..."        command  (aka: auto-binder)
  1. - added "hotbind"   action for the control panel icons  (Ctrl+insert)
  2. - added "hotunbind" action for the control panel icons  (Ctrl+delete)
  1. - added /keysave and /keyload commands
  2.   (keysave saves to "uikeys.tmp", not "uikeys.txt")
  3. - added /keyprint, /keydebug, /keysyms, and /keycodes commands
  4.   (these commands send information to stdout)
  1. - added ability to specify item in icon mode buttons via its binding
  2.   (ex:  "firestate 0" binding will set firestate to hold fire)
  1. - added ability to specify item in combo box buttons via its binding
  2.   (ex:  "aiselect Radar AI" binding will assign the selected units to the Radar AI)
  1. - pseudo mouse actions now discard key repeats
  1. - added command queue icons
  2. - added build command queue directional lines
  3. - added AreaAttack command queue area display
  1. - added game info panel (with "gameinfo" and "gameinfoclose" actions)  (i)
  1. - versionned the "archivecache.txt" filename (ex: "ArchiveCacheV4.txt")
  1. - Quit and Share menus close when they receive ESC
  1. - added "drawlabel" action  (avoid the double-click, and key repeats)
  1. - added "screenshot png" action
  1. - added "chatAll"        action
  2. - added "chatSwitchAll"  action
  3. - added "chatAlly"       action
  4. - added "chatSwitchAlly" action
  5. - added "chatSpec"       action
  6. - added "chatSwitchSpec" action
  1. - added tracked unit rotation
  2. - added Average and Extents tracking modes
  3. - added "trackoff"  action
  4. - added "trackmode" action
  1. - added "viewfps" action     (Ctrl+f1)
  2. - added "viewta"  action     (Ctrl+f2)
  3. - added "viewtw"  action     (Ctrl+f3)
  4. - added "viewrot" action     (Ctrl+f4)
  1. - added "firestate" action
  2. - added "movestate" action  
  3. - added "prevmenu"  action   (,)
  4. - added "nextmenu"  action   (.)
  5. - added "buildunit_<name>" action
  6. - added "deselect" action
  7. - added "select <selection criteria>" action  (redundant)
  1. - added new water rendering mode, refracting+reflecting but without the heavy dynamic simulation.
  2. - Added '--quit=T', '/quit T' commandline option to auto-quit spring on game over or after T seconds.
  3. - Added '--minimise', '/minimise' commandline option to start spring minimised.
  4. - added gradual feature reclaiming, see mantis #262
  5. - support for rotating buildings by 90 degrees, bind to "incbuildfacing" and "decbuildfacing" (bound to ']' and '[' by default)
  6. - modified the ground attack command for queued attack and area attack patterns
  7.   (the last queued attack position is repeated for backwards compatibility)
  8. - removed the height factor from AirCAI ground attack command drawing
  9. - added word completion, with dot commands, player names, and unit names
  10.   (does partial match reporting, and the unit names are only active for .give commands)
    -> "/<tab>" will show local commands
    -> ".<tab>" will show remote commands
  11. - added console input history buffer
  12. - added [DoubleClickTime=200] config parameter
  13. - added [WindowEdgeMove=1], for folks who run windowed with fullscreen size
  14.   (ex: good with X11/icewm to allow moving between virtual screens,
  15.        and to avoid display lockups during crashes)
  16. - disabled rendering while inactive (minimized)
  17. - added a null sound driver [NoSound=1]
  18. - merged global synced/unsynced "drawdebug" variables
  19. - added vsync for GLX
  20. - windows users can use [VSync=-1] to use system default
  21. - allow selection of vsync rate
  1. - [feature] A new group AI, "MexUpgrader AI" has been added. See http://taspring.clan-sy.com/wiki/MexUpgrader_AI for more info.
  2. - [feature] Custom unit icons are supported. See http://taspring.clan-sy.com/wiki/CustomUnitIcons for more info.
  3. - [bugfix] 'Quit and Resign' dialog now also appears when you're hosting, and stays hidden when the game is over.
  4. - [bugfix] Commands on enemy units (attack, reclaim) get canceled automatically when the unit leaves LOS / radar.
  5. - [change] 'Quit and Resign' dialog now only gives everything to allies (and not enemies) if they are still alive.
  6. - [change] The LOS drawing mode is remembered when you switch back and forth to others (e.g. metalmap, heightmap).
  7. - [change] Radar and jammer range is shown by default if you press 'L'.
  8. - [change] Radar and jammer toggle ';' happens instantly.
  1. - 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.
  1. - New weapon tdf tag rgbcolor2, used to make laser weapon have different color at the center, defaults to white.
  2. - New weapon tdf tag corethickness, how thick the inner color of a laser is, this is a percentage value, default is 0.25
  3. - New weapon tdf tag laserflaresize, size of the flare for laser weapons, multiplier for thickness, default 15.
  4. - 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.
  1. - Texture tag added to the explosiongenerator for HeatCloud and Dirt
  2. - 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.


  1. - tdf tag duration is used for laser weapons.
  2. - tdf tag rgbcolor is used for EmgProjectile and ExplosiveProjectile.
  3. - tdf tag intensity is used for EmgProjectile and ExplosiveProjectile.
  4. - New weapon tdf tag soundstartvolume and soundhitvolume.
  5. - New weapon tdf tag size, defines the visible size of projectiles.
  6. - New weapon tdf tag CollisionSize, defines the physical size of projectiles, percentage of size for flamethrower and absolute value emg, plasma and laser.
  7. - New weapon tdf tag sizegrowth, defines how fast flame projectiles will grow in size.
  8. - 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.
  9. - New weapon tdf tag AvoidFriendly, if set to 0 units will not try to avoid friendly units in their line of fire.
  10. - New weapon tdf tag CollideFriendly, if set to 0 this weapon will not hit friendly units.
  11. - New weapon tdf tag ExplosionSpeed
  12. - edgeEffectivness added for weapons
  1. - Added limited fuel settings for units (only work for aircrafts so far, need a good mechanism for refueling other stuff)
  2. -  New fbi tag MaxFuel, max fuel in seconds that the unit can carry, default 0 = unlimited
  3. -  New fbi tag RefuelTime, how long time it takes to fully refuel the unit, default 5
  4. -  New fbi tag MinAirBasePower, minimum build power an airbase unit must have for the aircraft to land on it, default 0
  5. -  New fbi tag WeaponFuelUsage<1-16>, how much fuel in seconds that firing the weapon takes from the owning unit, default 0
  6. -  New fbi tag SeismicDistance, give the unit a seismic sensor for detecting movement through the ground.
  7. -  New fbi tag SeismicSignature, The magnitude of seismic disturbance when this unit is moving, default sqrt(mass/100).
  8. - New COB "get"/"set" constant: 75 MAX_SPEED get/sets the max speed of the unit (multiplied with 64k)
  1. - New archive format (for map/mod development): *.sdd. It is a directory, but it is treated as an archive just like *.sdz and *.sd7.
  2. - New map format SM3, currently supported for testing purposes.


[edit] 0.72b1

  1. - 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.
  2. - Fixed the com dies, game ends exploit: sharing your com now kills you
  3. - Fixed a bug causing clients not to quit when server quits
  4. - Fixed crash bug normally resulting in dialog with "no rtti data"
  5. - ".give" cheat command doesn't desync the game anymore
  6. - Made "Team0() is no more" message customizable by modders (see XTA for an example).
  7. - Added weapontag "paralyzetime", controls how long a unit can maximaly be paralyzed after being hit by this weapon, default 10
  8. - Adds some new options in the settings program for scroll speeds
  9. - 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.
  10. - Fixed torpedo aircrafts not being able to attack subs
  11. - Added support for decals on ground below buildings
  12. -  New fbi tag UseBuildingGroundDecal, set to 1 to enable decals for building
  13. -  New fbi tag BuildingGroundDecalType, name of a bitmap in unittextures folder
  14. -  New fbi tag BuildingGroundDecalSizeX,BuildingGroundDecalSizeY, size of decal (same scale as footprint for unit)
  15. -  New fbi tag BuildingGroundDecalDecaySpeed, how fast the decal will fade out after the building has died, default 0.1 (fades out in 10s)
  16. - New fbi tag ShowPlayerName, if set to 1 the tooltip shows the player name instead of the unit description
  17. - Fbi tag HideDamage now actually works: set it to 1 to hide most details in the unit's tooltip from enemies
  18. - 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).
  19. - Removed old plasmarepulser system and replaced it with a more generalized shield system
  20. -  New weapon tdf tag IsShield, if 1 mean the weapon is a shield and now a weapon
  21. -  New weapon tdf tag shieldrepulser, 0=destroy projectile,1=repulse (bounce) projectile
  22. -  New weapon tdf tag smartshield, 1=shield doesnt affect allies weapons
  23. -  New weapon tdf tag exteriorshield, 1=shield doesnt affect weapons fired from within shield
  24. -  New weapon tdf tag visibleshield, 1=see a visible shell representing the shield
  25. -  New weapon tdf tag visibleshieldrepulse, 1=see a beam showing when shield repulses something
  26. -  New weapon tdf tag shieldenergyuse, how much energy the shield use when repulsing/destroying something
  27. -  New weapon tdf tag shieldforce, how hard shield can accelerate some sort of projectiles away
  28. -  New weapon tdf tag shieldradius, size of shield effect
  29. -  New weapon tdf tag shieldmaxspeed, maximum speed the shield can push some sort of projectiles away
  30. -  New weapon tdf tag shieldpower, how much power the shield can store, power is drained by the affected weapons damage, 0=infinite
  31. -  New weapon tdf tag shieldpowerregen, how fast the shield regenerates power
  32. -  New weapon tdf tag shieldpowerregenenergy, how much energy the shield uses when regenerating power
  33. -  New weapon tdf tag shieldintercepttype, which types of weapon the shield can affect (bitfield)
  34. -  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
  35. -  New weapon tdf tag shieldgoodcolor, color of shield when power is full
  36. -  New weapon tdf tag shieldbadcolor, color of shield when power is empty
  37. -  New weapon tdf tag shieldalpha, how visible the shield shell is with visibleshield=1
  38. - Added auto zooming using scroll + Left ALT key  (patch from colorblind)
  39. - Added simplified LOS drawing (patch from colorblind)
  40. - Fixed mouse speed problems in windows with holding shift.
  41. - Demo filenames with spaces in them work again.
  42. - Changed non-positional sound behavior: only selected units give non-positional sound
  43. - Missile weapons no longer tracks to exact position of non flying units (make missile units weaker against radar targets)
  44. - Stun damage units now receives 1/10 of normal experience and no experience for attacking already stunned units
  45. - Units no longer receive experience for "overkill" damage
  46. - 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)
  47. - Increased max camera zoom out (zooming to far can cause slowdowns/graphical glitches)
  48. - Added Radar group AI from colorblind: It notifies the player of incoming enemy units.
  49. - 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.
  50. - Tab will now bring zoom out to show all map in any camera mode, tab again zooms back to the mouse cursor.
  51. - Added GetGravity(), GetUnitDefHeight() and GetUnitDefRadius() to AI interface
  52. - Mod can now be selected in the single player menu.
  53. - Checksums of the map and mod are checked on game start.
  54. - Mod can be selected when starting the spring exe directly.
  55. - Various other small changes.

[edit] 0.71b1

  1. - Added new water renderer
  2. - Fixed lasers firing two projectiles at once, efficiently doing double damage.
  3. - Fixed several exploits with FPS mode.
  4. - 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.
  5. - Changed so units in maneuver mode will abort anything that moves them further than a certain distance from the patrol path
  6. - Added statistics to the end game dialog
  7. - Units with S3O models can explode into pieces.
  8. - Added a " all" option to .give to give all units in loaded mod
  9. - Fixed autoheal being about 4x to fast (or measuring heal per 0.25s depending on how one sees it)
  10. - Improved exception handling and crashreport handling in windows.
  11. - Added DateTime to the [VERSION] block in the demo recorder file
  12. - Removes los from units being transported
  13. - To disable terrain deformation:
  14.    Mapmakers: Put 'NotDeformable=1' in the .smd.
  15.    script.txt: Put 'DisableMapDamage=1' in with the other properties.
  16. - VSync can be disabled with the settings application.
  17. - Several other smaller fixes and improvements.
  18. - 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.

[edit] 0.70b3

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

[edit] 0.70b2

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

[edit] 0.70b1

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

[edit] 0.67b3

  1. -AI dll's can be used with startscripts again

[edit] 0.67b2

  1. -Fixed black map bug
  2. -Impulsefactor now affects ground damage
  1. -- Lobby changes
  1. - battle hosts can now use /ring <username> command on players participating in their battles
  2. - fixed problem with notification dialog switching focus back to application
  3. - added /rename command which will rename your account (so that people who wish to add clan tags
  4.   in front of their names don't have to reregister and lose their ranks). Player names may now also
  5.   co