ReleaseNotes:98.0
From Spring
New features
Visual profiling and grapher that shows how Spring spends time

You see that `Frame Grapher` which displays the last half second and its time slices:
UTF8-Support


Buildprocess
- fix freetype not found on windows / mingw ! add check for gcc >=4.6 at configure - optional fontconfig support ! SDL2 dependency
Misc
- improve debug draw (alt+[b])
Rendering
- `DebugGL` configtag works now (cause of SDL2 switch)
LuaDefs
- the parser now checks the returned tables for NaNs & Infs and prints a warning if it finds some (they are sources of desyncs!)
UnitDefs
- add new "harvestStorage" unitdef tag, UnitHarvestStorageFull lua callin and Spring.GetUnitHarvestStorage(unitid) callout it's for engine assisted starcraft/c&c like feature harvesting (atm only metal is supported) NOTE: the unload command still needs to be implemented in lua (much less work than the reclaiming one)
Lua
- LuaRules & LuaGaia are now splitted into their synced & unsynced parts, and each one got its own luaState
- this way unsynced parts of gadgets now get `synced` callins like 'UnitCreated' etc. w/o SendToUnsynced from their synced part
- LuaRules & LuaGaia are now ~equal (except a very minor subset of differences) and get the same callins esp. all AllowXYZ callins
- LuaUI now has a GotChatMsg too (same as LuaRules always had), it's similar to the now deprecated LuaUI-only ConfigCommand callin, but is called more often
- fixed a lot bugs in Spring's c-lua code
- use lua's original math.random() code and only use streflop for it in synced luaStates
- always make math.randomseed() available (synced & unsynced)
- in future this will also allow multithreading of the different luaStates
- fix Spring.Restart on windows
! new TextInput(utf8char) callin, needed cause of changed unicode handling in SDL2
- added Spring.SetUnitHarvestStorage(unitid, metal) & Spring.GetUnitHarvestStorage(unitid)
! prevent triggering of ATi driver bugs
! gl.LineWidth & gl.PointSize throw an error when called with incorrect argument (<=0)
! gl.Scissor & gl.CreateTexture throw an error on incorrect sizes, too
! fix gl.Viewport
- add missing colvol tags to Unit-/FeatureDefs:
- .collisionVolume.type = {"ellipsoid" | "cylinder" | "box"}
- .collisionVolume.scale{X|Y|Z}
- .collisionVolume.offset{X|Y|Z}
- .collisionVolume.boundingRadius
- .collisionVolume.defaultToSphere
- .collisionVolume.defaultToFootPrint
- .collisionVolume.defaultToPieceTree
- add optional 4th argument to Spring.GetUnitSeperation to calc the distance between the unitsphere surfaces instead of their midpos
! fix wrong coords & crash in Spring.RemoveGrass
LUS
- SetUnitValue now accepts booleans, too
Installer
! disallow to install spring over existing installations / ask for uninstall first - don't associate .sdf with spring.exe any more