Changes since Oolite 1.70:
- Stability:
- Fixed the nasty bug that would occasionally cause Oolite to crash after having consumed all memory during system population.
- Fixed the selling ship with subentities causes crash bug.
- Fixed strict mode to/from crashes.
- Fixed unmarkSystem crash.
- Removed crash when loading save game with “stale” oxp missiles (see https://bb.oolite.space/viewtopic.php?p= ... ght=#47921)
- JavaScript:
- All internal game scripts are now JavaScript -- adopted somewhat twiddled versions of Eric Walch’s scripts.
- Implemented JS sound and music interface.
- Fixed scriptActionOnTarget: not setting the script target correctly (note: scriptActionOnTarget: is now deprecated, use safeScriptActionOnTarget: instead).
- Added shipHitByECM(pulsesRemaining) script event.
- Added JS systemNameForID() and systemIDForName() methods.
- JS mission.choice is now read-write, mission.resetMissionChoice() deprecated.
- Added JS Ship methods dumpCargo(), ejectItem() and ejectSpecificItem().
- Added playerEnteredNewGalaxy(newGalaxyNumber) script event.
- Added missionChoiceWasReset() script event.
- Most AI reactToMessage: calls now also have a script event; see https://bb.oolite.space/viewtopic.php?p=47620#47620
- Setting the player’s target through JS now works as expected (locks on ident, with UI feedback, unless a missile is selected in which case current missile is locked on to the new target).
- Added Ship.explode(), which kills any ShipEntity through energy damage including the main station. Once again made blowing up the main station with blowUpMainStation (or explode()) work.
- Added experimental planet.setTexture() in JavaScript. Usage restricted to shipWillExitWitchspace() & shipWillLaunchFromStation().
- Bug fixes:
- Fixed a serious memory leak on the short-range chart screen. Other smaller leaks plugged as well.
- Linux shader support added (did not work with 1.70).
- Fix for trade-ins (like selling missiles or replacing lasers) not working.
- Fix for scripting bug, whereby when adding a second ship to the system with the same script that was active before, all references to player, system, mission, worldScript etc. were gone and using them was giving an error in the log.
- Fixed the “too many saved games in oolite-saves causes weird behavior” bug.
- Fix for OXP verifier turning off log message classes.
- Fix for bug where awardEquipment:EQ_TRUMBLE while a trumble infection is in progress would innoculate the player against future trumble infections. Also added code to un-innoculate existing saved games.
- Fixed laser purchasing mishandling bug in equip ship screen.
- Fixed a small bug that was there since 1.65, whereby switching to equip ship screen would sometimes display information for equipment other than the normally selected missile.
- Fixed bug where purchasing a ship with an upgraded laser does not reward the laser (bug #12791).
- Fixed bug whereby when docked with a non-primary station, the New Game option would be unreachable in the menu, although it was shown as available.
- Fix for Asps not having lasers when bought.
- Fuel injectors on NPC ships are not allowed any more if we are on strict mode.
- Made newly added ship entities get crews only if they are not scanClass CLASS_CARGO or CLASS_ROCK. This way, when scooping scripted cargopods or boulders, for example, the correct scooped commodity is diplayed, instead of messages of the type “You have captured a slave”.
- Reverted laser rendering to mode where lasers are clearly visible against the sun.
- Resolved music not looping problem in SDL builds.
- Station defense Viper’s AI fixed and deafult maximum number of station defenders launched when station is under attack increased from 3 to 8. Key max_police sets the main stations defenders/number of system patrols.
- Sticky messages bug has been most likely fixed.
- Fixed bug for APPROACHING_SURFACE returning incorrect results.
- Shuttles now take off directly away from the planet (bug #12212).
- Bugfix for very long passenger names in the Carrier Market.
- Scripted cargo pods do not award cargo as expected when scooped (bug #12659).
- Added the CLASS_CARGO scan class to alloy and splinter in shipdata.plist, so that they don’t appear unscoopable and with legal status when spawned by scripts.
- Better diagnostics for bad AIs.
- JavaScript legacy_addShipsWithinRadius method fixed and works as expected.
- Fixed Thargoid death broadcast.
- Demo screen behavior has now been fully fixed. No more ships going past the screen on game startup. Missing/broken ship models displayed as question marks, missing textures displayed as no-textures-material. No comms message will be received when on Demo2 screen.
- Comms log now works as expected. First in, first out.
- Repairing a damaged weapon (awarded via oxp) doesn’t add an extra weapon anymore (bugs #13471 & #13481).
- Shipyard techlevel bugfix. It now works as described in the wiki (i.e. techlevel=5 will allow ships to appear for sale in systems with technological level 6)
- JS Bugfix: changes to local system properties (tech level, government, etc...) now take effect immediately.
- Oolite now gives the right message when trying to jump more than 7 ly.
- Added code to hopefully work around sky rendering glitch on S3 hardware.
- Improvements:
- Improve speed of traversing saved games list by writing the current system name in the save file. When Oolite displays summary information about the saved game, it will try to look for this string. If the current system name string does not exist, it will fall back to using galaxy seed and coordinates to extract the system name.
- Great improvement in escort AI.
- Oolite’s sound system rewritten for maximum flexibility. Most sounds now go through customsounds.plist.
- Changed several built-in plists to OpenStep format.
- Mission choices are now sorted.
- Legacy foo_actions can now have local variables, which are cleared when the _actions completes.
- Special cargo expanded and amended: it can now be saved, and no containers can be loaded on board while the special cargo is in the hold - scooping cargo will not work, and purchasing & awardCargo are only allowed for small valuables.
- Implemented power braking for ridiculous speeds.
- awardEquipment(): if undamaged equipment present, trying to assign its damaged equivalent will fail with a warning. Trying to award an undamaged weapon using awardEquipment() will also fail with a warning.
- New Features:
- Added ability to explicitly bind shaders to subentity rather than root entity.
- Added support for hull heat glow to default shader (full shader mode only).
- Added support for constant vector and quaternion uniforms for shaders.
- Implemented analog joystick yaw control code. Many more analog joystick improvements (SDL builds only).
- Added Eric Walch’s list of pre-existing roles to pirate-victim-roles.plist.
- Intergalactic jump destinations have been made user/scripter controllable.
- Missiles now use the accuracy variable to determine how well to track targets. Accuracy must be between 0.0 and 10.0. If not specified, it defaults to 0.0, which corresponds to standard missile accuracy.
- All game strings are now externalized and easily changeable by the user.
- Added support for 8-bit character encoding, thus enabling localization of Oolite. Oolite now has built-in support for Western European (Latin-1) text, and Greek, Cyrillic, Turkish and Eastern European (Latin-2) “starter kit” OXPs are now available.
- Made the equipment.plist array mergeable like a dictionary, thus enabling OXP created equipment to override the standard one instead of being added on top of it.
- Added support for “abs” co-ordinate system.
- auto_ai is now used at escort set-up.
- Added script events for planet and station proximity events.
- Added full support for aft lasers in shipyard. Side lasers should work if defined in a plist, but we dont offer random “upgrades” to them in the shipyard. (bugs #12362 and #12363)
- Added Autosave option in the game options sub-menu.
- Graphics fiddle: scarred alloy is now only scarred on one side, and has a specular intensity map (if shaders enabled); both types of alloy are now shinier.
- Oolite now supports multiple textures for nebulae and stars; also uses mix of sun and star colours for ambient light.
- Added overall_alpha key to HUD dictionaries, defaulting to 75% opacity (25% transparency).
- HUD can now be switched off with the O key and turned on again with the N key while game is paused.
- Miscellaneous:
- Subentities no longer count as kills.
- Made ship AI send a beingAttacked() message to scripts when a missile is fired against ship.
- Most legacy script methods now show the name of the current script if an error occurs, but this only works for world scripts.
- Change to Console.consoleMessage(): consoleMessage('message') is now shorthand for consoleMessage('command-result','message').
- Ejected items and debris are now spawned with 85% of the parent’s cabin temperature.
- Weapon mounting positions with weapons already mounted are now shown in a darker green color in the equip ship screen.
- Game over changes: After the player ship has been destroyed, game restarts at Lave, pulse laser only, 100Cr.
- Energy unit changes: energy units recharge rate adjusted to offer a better challenge to the player, and naval/extra energy unit purchase behaviour more flexible (see resolution of bug #13507, Naval Energy Unit bug in BerliOS).
- Warnings added if energy units are going to be removed.
- Made the required Advanced Nav Array tech level equal to 7, as it was meant to be.