The changelog since release 105-1214 until release 105-1354, which happened in November 2022.
Caveats
- Ctrl and Alt as camera movement modifiers were unhardcoded and turned into bindings. The engine binds them same as before by default, but if you wipe bindings and handle them on your own then you may want to handle rebinding them.
/dynamicSky
command andAdvSky
springsetting were removed.- resurrection no longer sets health to 5%. See the “migrating from Spring” guide for a replacement. Note that the Lua function to do this 100% correctly only got added in a further release.
- respect
gl.Color()
ingl.Text()
. May require taking care that the appropriate colour is set, possibly via inline color codes.
Features and fixes
Minimap
- new boolean springsetting
MiniMapCanFlip
, default 0. If enabled, flips minimap coordinates when camera rotation is between 90 and 270 degrees (with rotating cameras, or when flipping via/viewtaflip
with the default non-rotating camera). - add
Spring.GetMiniMapRotation() → rot
, currently only 0, or π if flipped. - minimap now allows making labels when cursor is inside, transposed to map location
- new boolean springsetting:
MiniMapCanDraw
, defaults to 0. Enable the other draw events (line/erase) to happen via minimap
Camera control
- add
Spring.GetCameraRotation() → rotX, rotY, rotZ
. Also useful for minimap flipping detection. - Ctrl and Alt as camera movement modifiers were unhardcoded and turned into bindings. The engine binds them same as before by default, but if you wipe bindings and handle them on your own then you may want to handle rebinding them.
- add
movetilt
,movereset
andmoverotate
actions for previously hardcoded behavior, engine defaults toAny+ctrl
andAny+alt
respectively (i.e. previous behaviour). - make the
InvertMouse
springsetting respected when inverting the “hold middle mouse button to pan camera” functionality - add configurability of movefast and moveslow speed via added config values (
CameraMoveFastMult
,CameraMoveSlowMult
) and scaling factors for specific cameras (CamSpringFastScaleMouseMove
,CamSpringFastScaleMousewheelMove
,CamOverheadFastScale
) - fix
movefast
andmoveslow
actions not being respected in some circumstances.
Keys
- accept
keyreload
andkeyload
commands in uikeys - add
/keydefaults
command, loads the defaults - accept filename arguments for
keyload
,keyreload
andkeysave
Skybox
- allow loading skybox from equirectangular 2D texture
- deprecate
AdvSky
springsetting - remove the obsolete
/dynamicsky
option
Miscellaneous
- add
Platform.cpuLogicalCores
andPlatform.cpuPhysicalCores
constants - new action:
group unset
, removes any group assignment to selected units - add
Spring.GetTeamAllyTeamID(teamID) → allyTeamID
- add
Spring.GetProjectileAllyTeamID(projectileID) → allyTeamID
- add
Spring.SetWindow{Min,Max}imized() → bool success
(also in LuaIntro) - add
Spring.LoadModelTextures(string modelName) -> bool success
to preload model textures. Returns false if model not found or is 3do. - add
damage.debris
modrule for debris damage, default 50 (same as previous). - add
reclaim.unitDrainHealth
modrule, whether reclaim drains health. Mostly for the reverse wireframe method - add 5th and 6th params to
Spring.MarkerErasePosition
, onlyLocal and playerID. Makes the erase happen locally, optionally as if done by given player, same as the existing interface for MarkerAddPoint and MarkerAddLine. NOTE: 4th arg is currently unused (reserved for radius)! - fix functionality for
DualScreenMode
setting, it draws on the window area of the left or rightmost display depending onDualScreenMiniMapOnLeft
setting. Fix engine related issues with view positioning and addsDualScreenMiniMapAspectRatio
to draw minimap with preserved aspect ratio. - fixed a crash caused by kicking a player
Written by: sprunk