-
Notifications
You must be signed in to change notification settings - Fork 73
/
CHANGELOG.TXT
3272 lines (3050 loc) · 153 KB
/
CHANGELOG.TXT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Changes between Oolite 1.88 and Oolite 1.90:
General:
========
* Custom sounds for specific lasers and specific hit types are
now defined.
* Increasing opacity of GUI cursor for increased visibility.
* Basic compass now changes shape when switching from planet to
station and vice versa.
* Cloaked ships do mass lock the player now.
* The number of turrets on a ship, if they exist, is now shown on
the Ship Library screen.
* Entities designated as excepted for collision with the player will
now not limit the torus speed variability.
* The Javascript runtime size can now be adjusted by the user.
* Default diffuse light model switched to Oren-Nayar instead of
Lambert.
* Light radiance and exposure introduced on all main shaders.
* Illumination mapping of the dark side of custom planets is now
supported on the diffuse map's alpha channel.
* Custom planets now support normal maps, with specular on their alpha
channel.
* Visual improvements made on atmospheres. Lave has now a blue
atmosphere like Earth, while Reorte now has a blue planet
terminator.
* Visual improvements made on planets, which now use correct
reflectivity values for water and land masses for more realistic
specular reflections.
* New nav and witchspace beacons deployed, replacing the previous ones.
* Added the ability to limit star and nebula textures to particular
galaxies, providing the opportunity to make galaxies more visually
unique.
* View Keyboard Settings item from start menu has been replaced with
Game Options, which are now accessible from the get-go rather than
after starting a game first.
* Requesting 16 bits per color component from OpenGL during
initialization is now an option (-16bpcc startup parameter).
* Keyboard controls to cycle and select MFDs in reverse.
* Mac port: Right mouse button to center pitch and roll should now
work the same way as in the Windows and Linux ports.
* Pressing Ctrl while handling the external camera view will now slow
rotation and zoom speeds down. Allows for more precise external
camera control.
* Changed appearance of Lave to reflect the rain forests mentioned in
its description.
* Windows port: CPU type and clock speed are now reported at the log
header.
* Added docking clearance joystick button control to stickmapper.
* Added joystick button support for docking computer (standard and fast).
* Default ambient light level set to 0.1.
* Added filmic tonemapping to default shaders.
Expansion pack development:
===========================
Modified Plists:
----------------
* planetinfo.plist: Reactivated air_color and added air_color_mix_ratio
and terminator_threshold_vector keys.
* planetinfo.plist: Added texture_normspec key for specifying the normal
and specular/gloss maps for custom planets.
* equipment.plist: Added the fx_shot_miss_name, fx_shot_hit_name and
fx_weapon_launch_name keys for controlling weapon sounds for individual
weapons.
* customsounds.plist: Added the following keys to point to the new
individual weapon and ecm-proof missile launch sounds:
[mil-laser-player-laser-miss], [mil-laser-player-laser-hit],
[mining-laser-player-laser-miss], [mining-laser-player-laser-hit],
[beam-laser-player-laser-miss], [beam-laser-player-laser-hit],
[ecm-missile-launch].
* shipdata.plist: Added the escape_pod_rescue_time key.
* Added support for equipment-overrides.plist.
Scripting:
----------
* Planet terminator color and extent is now script controlled via the
'terminatorThresholdVector' JS planet property.
* Atmosphere color for planets is now fully script controlled via
the 'airColor' and 'airColorMixRatio' JS planet properties. No more
of that "always white" atmospheres of 1.88.
* Implemetned an override mechanism for the amount of time a rescue
in an escape pod takes by means of the 'escapePodRescueTime' JS
player property.
* Added activeMissile property to allow scripts to know which of the
missiles is currently selected.
* Added 'isSunlit' to JS entity, allowing scripts to determine
whether entity is in the shadow or not.
* Added playerWillBuyNewShip and playerWillReplaceShip world events.
Replacing a ship is now considered a different event to buying one.
* Added EquipmentInfo.calculatedPrice property. This is the calculated
price of the equipment item, if the equipment item utilises the
updateEquipmentPrice() condition script function.
* Added amount paid parameter to playerBoughtEquipment event. Gives
instant visibility of the actual price paid by the player, taking
into account any rebates or adjustments in the purchase.
* addShipToShipyard can now look for and add lasers from extras array.
This is so a laser weapon can be included in "extras" array and added
to the ship.
* Station shipyard is now accessible from Javascript (station.shipyard).
* World event "commsMessageReceived" will now be triggered when the
"player.commsMessage" function is called. The "sender" argument will
be null in this case. Scripts that implement "commsMessageReceived"
will need to check for a null value, otherwise an error will occur.
Bug fixes:
==========
* Fixed occasional equipment incompatibility references not being
enforced, depending on the order of loading.
* Fixed kg and g unit commodities not being removed when player ship was
being replaced or when a new one was bought and excess kg and g
quantities beyond station's capacity remained unsold during the cargo
selling phase.
* Fixed RGB to HSB conversion in OOColor class.
* Fixed blocked station queues in case where ship in launch queue was
too big for a dock and could not be launched.
* Fixed randomInhabitantsDescription not being able to return the
plural form and fixed a typo in its error message.
* Fixed some quite important typos in the populator script.
* Fixed scoopOverride causing scoop sound to play once when set to false.
* Fixed case where an empty cargopod would be generated for specific
quantities of precious metals and gemstones.
* Fixed an 'index out of range' error on F5 Status screen.
* Fixed issue where sometimes no rows would be selected in the shipyard
screen.
* Docks scripted to not accept player docking now result in autopilot
docking rejection also in the case of fast autodock.
* Fixed native exception when a dictionary was passed to OOIsNumberLiteral
by OOJSSystemInfo.
* Fixed dust color not getting mixed with 50 percent white, as intended
when sun color was set manually.
* Fixed effectRemoved event not triggering when hyperspacing.
* Fixed bug where credits could be generated by 'failing to buy'
multiple mount lasers.
* Fixed planets' dark side always being completely dark, regardless of the
ambient light level setting.
-------------------------------------------------------------------------------
Changes between Oolite 1.86 and Oolite 1.88:
General:
========
* New lighting shaders for physically accurate specular reflections
and light energy conservation.
* Improved planet lighting to make use of the new lighting system.
* New and improved shader for rendering planets' atmospheres.
* Enabled blending when rendering visual effects for increased
effects flexibility.
* Specular maps alpha channel can now be used for storing material
gloss information.
* Updates to the base and shader materials system.
* Number of supported joysticks increased to 4.
* Improved flee AI.
* Energy damage is no longer applied to player occupied escape pods.
* Linux port: Added the command line argument --systemwide-directory
to chose an installation directory other than the default /opt.
* Improved mousewheel handling. When mouse control is active,
speed change rate corresponds to mousewheel roll rate.
* Optimization: When an entity explodes outside of its visibility
range, it is no longer rendered.
* Added multi-page ability to primeable equipment manager.
* Windows DPI awareness applied to all monitors.
* Windows port: Ensure that, in the case of both an integrated and a
high-performance GPU being available, the high-performance one is
selected.
Expansion pack development:
===========================
Modified Plists:
----------------
* Introduced the gamma_correct and gloss base and shader materials keys.
* scanner_minimalistic boolean shipdata key introduced, defines a scanner
without gridlines.
Scripting:
----------
* player.ship.chartHighlightMode property.
* chartHighlightModeChanged world event.
* New mission screen properties:
"customChartZoom" sets the zoom level of a CUSTOM_CHART, must be between
1 and 4.
"customChartCentre" and "customChartCentreInLY" sets the centre point for
a CUSTOM_CHART.
* New "backgroundSpecial" options for mission screens:
"SHORT_RANGE_CHART_SHORTEST" to show the shortest distance between the
current system and destination. ANA equipment required.
"SHORT_RANGE_CHART_QUICKEST" to show the quickest distance between the
current system and destination. ANA equipment required.
"CUSTOM_CHART", "CUSTOM_CHART_SHORTEST", "CUSTOM_CHART_QUICKEST" displays a
custom chart, based on the customChartZoom and customChartCentre
properties. ANA equipment required for "SHORTEST" and "QUICKEST" options.
* New player ship scannerMinimalistic property.
* Introduced the %G###### string expander, which works like %J###, but allows
one to specify both the planet ID and the galaxy number.
Bug fixes:
==========
* Fixed issue where Station JS AI was not triggering an alertConditionChanged
event.
* Fixed issue with the primable equipment manager not being able to handle
more than 21 items.
* Fixed temperature due to air friction not rising when more than one planets
were present in the system.
* Fixed mouse control disabling keyboard speed shortcuts.
* Fixed oddities with mouse control when Caps Lock was active on view
directions other than front.
* Fixed memory leak when setting screen texture descriptors.
* Fixed erroneous behaviour when NaN was passed via script for pitch, yaw
and roll.
* playerCancelledJumpCountdown JS event now firing when starting autopilot,
* Fixed occasionally 'stuck' lighting when in witchspace.
* Fixed keyconfig.plist not being reloaded when using in-game Expansion Pack
Manager.
* Restored orange planet terminator tint, which was accidentally removed
when the atmosphere shaders were introduced.
* Player comms messages are now fully expanded before shown, just like any
other ship's messages.
* Fixed inconsistency between script and configuration files setting of sun
color.
* Windows port: On Windows versions newer than Windows 8, the correct version
is now reported in the log.
-------------------------------------------------------------------------------
Changes between Oolite 1.84 and Oolite 1.86:
General:
========
* Added number of jumps to route information on F6 and F7 screens
* Reinstated rotational velocity also for base entities.
* SDL builds: Expansion Pack Manager can now download OXZs from HTTPS
addresses.
* Economy, government and Tech Level icons added to commander load
screen information.
* Default sound volume is now set to mid-scale rather than full-scale.
* Shader now used for rendering planet atmospheres. Old style atmos
are still available at detail levels less than Extra Detail or if
the newly introduced shader is not found or fails to compile.
* -nosound command line parameter now available for those who want
their game to be silent.
* Page Up and Page Down keys are now used on all screens that can have
more than one page of information.
* Mouse wheel can now be used to control speed when mouse control is on
* Easy start scenario added - start at Tionisla with Cobra MkIII and
1000Cr.
* Oolite is now DPI-aware on Windows.
* Default ambient light level is now set to 0.25 for all core systems
* Improved planets surface appearance using Perlin3D textures when the
in-game option Graphic Detail is set to Extra Detail.
* SDL builds: Max supported resolution upped to 7680x4320. 8K-ready.
* OSX port: Entering the OXZ info screen in the OXZ Manager copies
the OXZ's info URL to clipboard automatically.
* Test Release builds: The planet's relief intensity can now be
adjusted using the user defaults "p3dnsf" key, which takes a float
value. Default is 1.0.
Expansion pack development:
===========================
Modified Plists:
----------------
* descriptions.plist: Contains "sysdata-line-1" thru "sysdata-line-16"
for controlling the layout of information on the F7 system data screen.
* hud.plist: In the drawTargetReticle: selector section, the keys
target_rgba, target_sensitive_rgba and wormhole_rgba can be used to set
the target reticle colors for standard targets and wormholes.
* hud.plist: In the message_gui section, text_color and text_comms_color
can be used to set the color of standard and communication gui messages
respectively.
* hud.plist: In the message_gui section, background_rgba can now set the
background color of the message gui area.
* hud.plist: In the message_gui section, background_automatic can now be
used to define the behaviour of the message gui. Default is yes, which
makes the background fade out together with the messages. If set to no,
the background persists while on in-flight screens.
* hud.plist: In the drawWeaponsOfflineText: selector section, the key
rgb_color can be used to set the color of the Weapons Offline text.
* hud.plist: In the drawFPSInfoCounter: selector section, the key
rgb_color can be used to set the color of the FPS and objects info text.
* planetinfo.plist: The boolean key perlin_3d can be used for each system
to determine whether a Perlin3D or a normal texture will be used for it.
* equipment.plist: A "display_color" property has been added, which
controls the color used to display this item on the Ship Outfitting and
Status screens.
Scripting:
----------
* player.ship.nextSystem property.
* player.ship.compassType read/write property (use with caution).
* player.ship.compassMode read/write property (use with caution).
* player.ship.massLockable property.
* player.ship.primedEquipment read/write property.
* player.ship.addCargoEntity(cargoEntity) method allows cargo ship entities
to be added to the player ship directly when in space.
* station.canDockShip(shipEntity) method.
* playerDockingClearanceGranted world event.
* playerDockingClearanceCancelled world event.
* playerChangedPrimedEquipment world event.
* Scripts are now notified of the change to forward view when a witchjump
begins.
* player.ship.requestDockingClearance(station) method can be used to request
docking clearance from a particular station.
* player.ship.cancelDockingRequest(station) method can be used to cancel a
previous docking request at a particular station.
* Sound.musicSoundSource() method, returns the music sound source object,
enabling direct control on music (volume etc.).
* Added optional volume gain parameter to the Sound.playMusic function.
Gain is capped between 0.0 and 1.0 and is relative to the master gain
* player.ship.reticleColorTarget can set the target reticle's color.
* player.ship.reticleColorTargetSensitive can set the target reticle's
color when the target is lined up for a direct hit.
* player.ship.reticleColorWormhole can be used to set the reticle color
when a wormhole is targeted.
* player.ship.messageGuiTextColor property now sets the color of the
standard gui messages.
* player.ship.messageGuiTextCommsColor property now sets the color of
the gui messages that are tagged as communications.
* selectedMFDChanged and mfdKeyChanged scripting events added.
* player.ship.setPrimedEquipment method now available.
* weaponsSystemsToggled script event handler. Takes the new weapons
state as argument.
* player.ship.compassTarget is now a read/write property.
* EquipmentInfo.infoForKey().displayColor can read and write the display
color used to display equipment items on the ship outfitting and status
screens.
* global.getScreenBackgroundForKey() and global.setScreenBackgroundForKey()
added to allow scripting access to background image information held in
screenbackgrounds.plist.
Bug fixes:
==========
* Fixed Advanced Space Compass not breaking when damaged.
* Fixed fee column alignment in passenger and parcel contract screens.
* Fixed weird behaviour when a startup scenario planet name could not be found
in planetinfo.plist.
* Fixed custom population description duplication in system data screen.
* Fixed exception when accessing shipyard in interstellar space.
* Fixed equivalentTechLevel sometimes returning NSNotFound.
* Fixed MFDs resetting to number 1 when a HUD change occurred.
* Fixed exception when accessing the market screen while docked in
interstellar space.
* Fixed event order - now playerEnteredNewGalaxy is executed correctly before
shipWillExitWitchspace.
* Fixed broken concealment behaviour.
* Fixed native exception when a commander dictionary was requested while not
docked.
* Linux builds: Fixed freezes when using GNUstep 1.24.9 or later.
* Fixed adjacent systems distances not being equal on F6 and F7 screens.
* Fixed planet strings searching not targeting found planets and inability to
use Alt + arrows during planet string search.
* Fixed crash due to uninitialized missile_list (issue #204).
* Fixed issue where, when there is more than one page of ships available on the
Ships For Sale screen, and the display is moved back one page, information
for the first ship on the page will be displayed, even though the "More"
item is actually the selected item.
* Fixed mouse control issues where mouse was not reset properly when external
camera was toggled on and off (issue #237).
* Fixed light color on the system data screen being that of the current system
than that of the system shown (issue #239).
* Fixed awarding bounty even when the player died while trying (e.g. when
crashing into an asteroid).
* noteGuiWillChange notification is now emitted also when going to short and
long range chart screens (issue #233).
* Windows port: Fixed broken first-time window resize when starting the game
with -nosplash.
* Fixed crash in JavaScript profiler.
* Fixed bogus warning about not setting v-sync even when v-sync was corrrectly
set.
* Fixed potential mode duplication in screen modes list, which in some cases
could result in not being able to select desired fullscreen resolution
properly.
* Fixed nova screen backgrounds when traversing route (issue #225).
* Fixed clouds not being drawn on the system data sceen.
* Windows port: Reset to desktop resolution is now forced on exit, if the game
was run fullscreen and in a resolution different to that of the desktop.
* OSX port: Fixed broken target reticle direction cue indicator.
* OSX port: Mouse can now be reset.
* Route is not calculated on every frame now when on the Chart screens; it is
calculated only when the departure system, destination system or Advanced
Navigation Array mode change.
-------------------------------------------------------------------------------
Changes between Oolite 1.82 and Oolite 1.84:
General:
========
* Added shipdata property to OXP verifier
* HUD messages can now be drawn under the console messages
* Tumbling ships on demo screens now do so in a more interesting way,
more reminiscent of the original BBC Elite way of tumbling
* All ships can now carry multiple lasers
* Removing the entire trumbles array from the savefile is now recognized
as a cheat
* Atmospheric fog is now applied also with shaders enabled
* Windows only: Entering the OXZ info screen in the OXZ Manager copies
the OXZ's info URL to clipboard automatically
* Added mobile external view camera
* Added ability to inspect system information for all systems along ANA route
* Added distance information to system info screen
Expansion pack development:
===========================
Modified Plists:
----------------
* planetinfo.plist: link_color can be defined both ways in interstellar space
for gradient effects (also works via JS)
* planetinfo.plist: Star and nebula count multipliers are now floats rather
than unsigned integers, making multipliers like 0.5 etc. possible
Scripting:
----------
* Main planet radius can now be set by script if not in the same system
* Allow "concealment" parameter in systeminfo for selectively displaying information
about a system
* playerDockingClearanceExpired world event
* player.ship.hudAllowsBigGui property
* shipDumpedCargo ship script event
* oolite.resourcePaths property for retrieving the list of currently running OXPs
in Javascript
* player.audioMessage method, speaks a message without displaying anything on screen
* player.stopAudioMessage method, stops any message currently being spoken
* Allow setting of null values (i.e. unset) for sun/corona properties
* playerStartedAutopilot event now fires after the docking music has started playing
* player.ship.infoSystem property
* infoSystemChanged world script event
Bug fixes:
==========
* Fix some full-screen resolution changes on Windows
* Fix entry of '*' OXZ filter taking screenshot
* Fix nova system description
* Fix exhaust drawing when far from origin
* Fix some docking computer/queue problems
* Again allow commodity name as well as key in cargo_carried
* Fix texture generation on secondary planets inheriting too many properties from primary
* Fix bug with equipment scripts and can_carry_multiple
* Scanner "V" now follows FOV changes
* Comms / console GUIs are now properly repositioned on screen resize
* Tidied up drawing of galactic chart so that behaviour is consistent on chart based
mission screens
* Fixed mission screen charts to show routes properly
* Fixed rare case of memory leak under Windows, when the game was getting minimized by
means of Windows hotkey combinations while running in fullscreen
* Cargo hold status is now reported correctly on fuel scoop icon also when docked
* Missile desired speed is now set to maximum speed on launch
* Fixed bug in search for connected systems while galactic jumping
* Fixed rare exception that could happen when switching to a player ship without missiles
and back
* More than one connected joysticks are now listed correctly in the stick mapper screen
* Fixed repair of cargo space requiring equipment requiring cargo space as well
* Fixed rare case of not being able to set max cargo space capacity via JS
* Fixed inability to refresh equip ship screen in the cases where buying a laser would
result in the player remaining with less cash than the laser's price
* Fixed missile AI apparently ignoring cloak activation
* Fixed trumble mission so it ends after nova if not before
* Fixed case of unintended reset to stick mapper first page when setting or unsetting
stick functions
* Credit values for contracts in the manifest screen are now formattable
* Fixed distorted sound on some Windows 32-bit systems
* Applied tentative fix for occasional null docking instructions in priority AI
JS script
* Fixed potential energy gain when shield boosters got damaged
* Fixed incorrect model reference in alloy shipdata definition
* Fixed potential division by zero crash in station market creation
* Capacities are now honoured for main system market
* Fixed long standing cached octree issues, resulting in interesting and quite
hard to reproduce collision bugs
* Fixed mission screen when background special is a chart so the chart is fully zoomed
in (for SHORT_RANGE_CHART) or fully zoomed out (for LONG_RANGE_CHART)
* Fix for chart on Mac retina screen
* Fixed crash when attempting to modify goods properties on a nil station
* Fixed incorrect parcel contracts indexing when more than ten parcel contracts
were present
* Fixed problem with tangent vectors not being orthogonal to normals
* Fixed a bug where diving into the atmosphere and then resetting player ship
position into open space via script would not reset the air resistance factor
to zero, with catastrophic results on sun glare, fog and cabin temperature
* Fixed bug where turning off the hud in a multi-page status screen would result
in the More and Back selections remaining, even if the equipment could fit in one page
* Fixed inability to remove OXZs with ogg files in the Music folder on Windows
* Fixed some Alt-Tab and fullscreen handling issues on Windows
* Fixed applying air resistance to the camera viewpoint rather than the ship
* Fixed sudden switch to black sky in certain external views in atmosphere, when the
camera was positioned far away from the ship
* Fixed bug where contracts would disappear upon assignment if the sender's name was
already existing in a different contract. Senders of the same name are now possible
* Fixed right arrow key (More) not working on status screen with big GUI enabled
* Fixed stray soft edge on Boa model
* missile_role had 10% chance of not being set for non-Thargoid ships (random missile
role was selected instead). This is fixed and changed so that the 10% chance of
random missile role selection happens only when auto_weapons is set in a ship's
shipdata.plist entry
* Removed inconsistency in Windows build, where Shift+Q was used as instant quit
-------------------------------------------------------------------------------
Changes between Oolite 1.80 and Oolite 1.82:
General:
========
* More AI improvements and adjustments. Extensive rebalancing of
combat difficulty for more interesting fights
* Laser damage and heating rates adjusted
* Missile damage adjusted
* Heat cooldown slower
* Installation time now on equipment purchase screen
* OXZ installer now updates dependency check after each install
* Added zooming, scrolling galaxy chart unifying "short range" and "long range"
options
* Internal damage from missiles now more serious
* Damaged equipment now sorts to the top of the status screen
* Adjustments to acceleration, deceleration and top speed of torus drive
* AI reaction to being attacked by ships they can't scan is more useful
* Removed some differences between NPCs and player ship performance
* Advanced Navigational Array now allows for jumping to the next system on
a long route without having to retarget
* Stations will warn if player tries to dock without required clearance
* Docking clearance now defaults to 'on' for new games (no effect on
existing games)
* Keyboard settings can be viewed from game options
* Scrape damage now does not automatically mine asteroids
* Extra detail graphics mode now has more detailed planet textures
* Field of View added as a game option
* Windows port: Improved multi-monitor support
* Windows port: Added support for grabbing mouse inside the game window when
mouse control is active
* Windows and Linux ports: V-Sync can now be controlled via user preferences
Graphics:
=========
* ECM bursts now have an effect on the scanner
* Spacedust fades out when entering atmosphere
* New and more varied explosions
Expansion pack manager:
=======================
* Installation status now updated without having to restart manager
* Missing requirements will be installed automatically if possible
* Ability to filter expansion pack lists by pressing 'f'
* Can view additional information on packs by pressing 'i'
* Can extract a pack to an OXP in your AddOns folder by pressing 'x'
* Update date now visible in OXZ manager
Expansion pack development:
===========================
General:
--------
* mission.setInstructions() can now take an array as its first
parameter. The first element will be a heading on the manifest
screen, with the remaining elements being mission entries.
If multiple entries have the same heading, they are grouped.
* Subentities now inherit their parent's entity personality - useful
for shader randomisation.
* New trade-goods.plist allowing definition of customised trade goods
* New market scripts for JS-based modification of markets
* OXP Developer builds will now warn about deprecated code in OXPs.
* Changes to planet properties made by OXPs will be reverted if the OXP
is uninstalled
* Scenarios may now exclude OXPs and selected core plists
* Maximum star size increased significantly
* Implementation of many core equipment items modified to allow
greater customisation. No difference to effect.
* Waypoints may now have [0,0,0,0] orientation for a non-directional waypoint
New Plists:
-----------
* global-settings.plist: new plist file to hold some properties which didn't
belong in planetinfo.plist
* commodities.plist and illegal-goods.plist replaced by trade-goods.plist
* gui-settings.plist: allows customisation of various GUI options and
chart settings
* explosions.plist: allows custom explosion types to be created
Modified Plists:
----------------
* oolite-font.plist: new f6KernGovernment and f6KernTechLevel options
* equipment.plist: installation_time, repair_time
* equipment.plist: laser properties may be customised using weapon_info and
new laser weapons may be created
* equipment.plist: equipment may 'provide' other equipment
* equipment.plist: can_carry_multiple can be set on non-pylon equipment
* descriptions.plist: long-range-chart-title-G-S now allows chart title
to vary from system to system
Numerous changes due to unification of string formatting systems, see separate
"Format strings" section below
* shipdata.plist: market_broadcast, market_capacity, market_definition, market_monitored, market_script properties for stations
* shipdata.plist: weapon_energy property no longer affects lasers
* shipdata.plist: model_scale_factor property for easy size variations
* shipdata.plist: scanner_hostile_display_color1, scanner_hostile_display_color2
* shipdata.plist: show_damage to control sparks and other damage effects
* planetinfo.plist: all major properties are now coded into the main
planetinfo.plist rather than being generated using random numbers.
* planetinfo.plist: layer property allows overrides of planetinfo to
have different priorities and for JS and plist changes to planetinfo to
coexist more easily.
* planetinfo.plist: coordinates property for system coordinates (may not be
set by JS)
* planetinfo.plist: random_seed property for aspects still requiring random
generation (e.g. the precise detail of planet textures)
* planetinfo.plist: several new properties for customisation - planet_distance,
station_vector, sun_vector, planet_name, sun_name, population_description,
economy_description, government_description, percent_ice
* planetinfo.plist: has_atmosphere can apply to main planets
* planetinfo.plist: market_script property for systems
* hud.plist: MFDs and legends have color property
* hud.plist: allow_big_gui general property for HUDs which don't take up the
bottom six lines of the screen
* hud.plist: new drawCustomImage dial
* hud.plist: 'permanent' can be set on message_gui
* hud.plist: hyperspace destination can be right-aligned
* hud.plist: negative height/width can be applied to HUD bars
* shiplibrary.plist: condition_script property added
Properties:
-----------
* Removed manifest.liquor/wines, manifest.liquorWines, manifest.gemStones
manifest.alienItems aliases for trade goods
* ship.maxYaw, ship.maxPitch, ship.maxRoll, ship.maxThrust, ship.thrust,
ship.maxSpeed, ship.maxEnergy, ship.energyRechargeRate now read/write
* ship.collisionExceptions
* ship.cargoSpaceCapacity now writable
* ship.injectorBurnRate, ship.injectorSpeedFactor properties
* ship.scanDescription
* ship.hyperspaceSpinTime, now writable, now property of all ships not
just player
* ship.scannerHostileDisplayColor1, ship.scannerHostileDisplayColor2
* ship.subEntityRotation
* ship.entityPersonality is now writable
* equipmentInfo.provides
* player.ship.forwardShield, player.ship.maxForwardShield,
player.ship.forwardShieldRechargeRate, player.ship.aftShield,
player.ship.maxAftShield, player.ship.aftShieldRechargeRate are all
now writable.
* player.ship.injectorsEngaged and player.ship.torusEngaged
* player.ship.routeMode
* system.ambientLevel
Methods:
--------
* manifest.comment()
* manifest.setComment()
* manifest.setShortComment()
* manifest.shortComment()
* mission.runShipLibrary()
* systemInfo.samplePrice()
* ship.addCollisionException(ship)
* ship.adjustCargo(commodity,amount)
* ship.removeCollisionException(ship)
* ship.hasEquipmentProviding(eq)
* ship.dumpCargo(amount, preferredtype) second parameter
* player.ship.equipmentStatus(eqKey,true) second parameter
* SystemInfo.setInterstellarProperty(g,s1,s2,l,k,v,[m])
Events:
-------
* gamePaused and gameResumed world events (useful for sound OXPs)
* equipmentAdded and equipmentRemoved ship events
* updateEquipmentPrice(eq,price) condition script event
* allowShowLibraryShip(key) condition script event
* shipWillEnterWitchspace event has second parameter (destination)
* playerRescuedEscapePod(decicredits, reason, rescuee) event
* playerCompletedContract(type,result,fee,contract) event
* playerEnteredContract(type,info) event
* stationReceivedDockingRequest ship event now does what it says
* stationAcceptedDockingRequest new ship event
* playerBoughtNewShip has second 'price' parameter
AI Methods:
-----------
* behaviourWaitHere
Format strings:
---------------
Work has begun on replacing the %@-type formatting strings in descriptions.plist
with ones that work the same as format strings used in scripts. In most cases,
a placeholder like %@ or %d has been replaced with one like [destination] or
[population].
* @-credits -> credits-format
* oxp-containing-messages-list-@ -> oxp-containing-messages-list
* bounty-@-total-@ -> bounty-awarded
* autopilot-station-@-does-not-allow-autodocking -> autopilot-station-does-not-allow-autodocking
* witch-to-@-in-f-seconds -> witch-to-x-in-y-seconds
* witch-blocked-by-@ -> witch-blocked
* witch-galactic-in-f-seconds -> witch-galactic-in-x-seconds
* game-paused-@ -> game-paused
* game-paused-docked-@ -> game-paused-docked
* missile-locked-onto-@ -> missile-locked-onto-target
* ident-locked-onto-@ -> ident-locked-onto-target
* @-armed -> missile-armed and mine-armed
* @-ejected -> commodity-ejected
* @-ready-to-eject and ready-to-eject-@ -> ready-to-eject-commodity
* @-scooped -> scripted-item-scooped
* scoop-captured-@ -> scoop-captured-character
* scoop-rescued-@ -> scoop-rescued-character
* equipment-primed-@ -> equipment-primed
* equipment-primed-hud-@ -> equipment-primed-hud
* mfd-d-selected -> mfd-N-selected
* station-docking-clearance-abort-cancelled-in-f -> station-docking-clearance-abort-cancelled-in-time
* status-hyperspace-system-multi-@-@ -> status-hyperspace-system-multi
* equipment-plural-d-@ -> equipment-plural
* equipment-plural-d-d-@ -> equipment-plural-some-na
* manifest-cargo-quantity-format -> manifest-cargo-quantity
* manifest-cargo-quantity-format2 -> manifest-cargo-quantity-extended
* manifest-@-travelling-to-@-to-arrive-within-@ -> oolite-manifest-person-travelling
* manifest-deliver-@-to-@within-@ -> oolite-manifest-item-delivery
* charts-distance-f -> charts-distance
* charts-est-travel-time-f -> charts-est-travel-time
* short-range-chart-distance-f -> short-range-chart-distance
* short-range-chart-est-travel-time-f -> short-range-chart-est-travel-time
* long-range-chart-distance-f -> long-range-chart-distance
* long-range-chart-est-travel-time-f -> long-range-chart-est-travel-time
* @-commodity-market -> system-commodity-market
* @-station-commodity-market -> station-commodity-market
* cash-@-load-d-of-d -> market-cash-and-load
* sysdata-planet-name-@ -> sysdata-data-on-system
* sysdata-prod-worth -> sysdata-prod-value
* gameoptions-voice-@ -> gameoptions-voice-name
* gameoptions-music-mode-@ -> gameoptions-music-mode
* gameoptions-fullscreen-mode-d-by-d-at-g-hz -> gameoptions-fullscreen-with-refresh-rate
* gameoptions-fullscreen-mode-d-by-d -> gameoptions-fullscreen
* equip-cash-@ -> equip-cash-value
* @-equip-cash-value -> equip-cash-value
* shipyard-price -> shipyard-price-label
* shipyard-cargo -> shipyard-cargo-label
* shipyard-cargo-d-tc -> shipyard-cargo-value
* shipyard-speed -> shipyard-speed-label
* shipyard-speed-f-ls -> shipyard-speed-value
* shipyard-your-@-trade-in-value-@ -> shipyard-trade-in-value
* shipyard-total-available-%@-%@-plus-%@-trade -> shipyard-total-available-with-trade-in
* plus-@ -> shipyard-first-extra and shipyard-additional-extra
* shipyard-forward-weapon-upgraded-to-@ -> shipyard-forward-weapon-upgraded
* shipyard-price-@ -> shipyard-price
* character-a-@-from-@ -> character-generic-description
* sysdata-billion-word has been replaced with sysdata-pop-value, which allows
more flexible formatting of population values
* planetname-derivative-suffix has been replaced with planetname-possessive.
The default planetname-possessive references planetname-derivative-suffix for
compatibility (it isn't used anywhere else).
* New: number-negative
* New: credits-negative
* New: sysdata-tl-value
* New: sysdata-radius-value
* Removed: extra-@-@-(long-description)
* Removed: extra-@-@-@-(passenger-berth-long-description)
* Removed: shipyard-forward-weapon-upgraded-long
* Removed: shipyard-selling-price-@
OXP Verifier:
-------------
* Validates syntax (but not keys) of all plists
* Validates syntax of all JS files
* Updates to shipdata plist verifier
Bug fixes:
==========
* Restore something like the 1.76 behaviour in terms of alloy plates in debris
* Speech synthesis slightly more conservative in detecting 'credits'
abbreviation
* Fixes to some core ship role lists
* Show JS error locations properly
* Better handling of various ZIP formats in the OXZ manager
* Fix slowness in market screen
* Corona_flare property works more consistently
* Better handling of system info changes in Nova mission
* Apply higher safety factor to docking
* Contracts no longer generated to Nova systems
* Suns now display properly at extreme range
* Some missing commands added to the Joystick mapper
* Fix non-alphanumeric characters not being available on mission screen
* Fix problem with large OXZ downloads on Windows
* Fix some problems with docking of fast and fast-turning ships
* Fix display problem with sun corona in rare cases
* Fixed key 5 switching to status screen when used during save game
filename entry.
* Fix Linux uninstall script error handling
* Fix errors with escape pod launch from subentities
* Fix consistency errors on ship library screen
* Ship registration forms now return to interfaces page
* Fix error with "OUTER_SYSTEM" positions in very large systems
* Fix bug where ship.checkScanner would detect a docked player and other
invalid targets.
* Windows and Linux ports: Gamma is now a generic game option, not a save
file one. Fixes unexpected gamma resets when starting a new game.
* Windows port: Fixed unnecessary double OpenGL initializations under
certain resize window conditions.
* Windows port: Fixed bugs in handling a maximized game window.
* Windows and Linux ports: Fix for inability to unset joystick buttons
beyond 16.
* Fix return type of EquipmentInfo.requiredCargoSpace
* Handle sun glare correctly also for too tall or too wide game windows.
* Redefining the currently selected waypoint no longer resets the compass
* Assassins no longer chase players who only take low-risk contracts
* Zero-distance system doubles now handled better on chart
* More docking protocol bug fixes
* Various chart view settings now preserved in the save game
* Some full-screen and multi-monitor fixes
* NPC ships entering hyperspace near massive stations should be clearer
* Destination systems for long-range NPCs now set correctly
* checkScanner method now correctly excludes unpowered ships
* Plasma turrets won't fire when cloaked if cloakPassive is true
* AI errors related to system ID 0 fixed
* Bug making tutorial extremely difficult to complete if player obtained a
bounty fixed.
* Fix error with cargo dumping when reloading save after death
* Fix NPC turret aim
* Some OXZ manager bugs related to duplicate manifest IDs fixed
-------------------------------------------------------------------------------
Changes between Oolite 1.78 and Oolite 1.80:
General:
========
* Automatic expansion pack installer now available (not all existing
expansion packs are available for automatic installation; manual
installation still possible as before)
* New game start screen, including access to a keyboard control
summary and a ship specification library
* New Tutorial option for starting a game, for a basic flight training
course
Gameplay:
=========
* Coordinate precision increased, allowing ships to travel much
further from the witchpoint without problems
* Strict mode now only disables OXPs rather than making other gameplay
changes
* Ship hostility indicator no longer depends on weapon range
* New equipment: Integrated Targeting System
* Standard HUDs now include primable equipment dials, compass target
naming, and multi-function displays. HUD layouts reorganised
slightly to fit the extra components in. ';' and ':' keys manage
multi-function display (MFD) selection
* Major changes to NPC behaviour and AIs, including new courier,
smuggler, assassin, pirate leader, bounty hunter leader, pirate
raider, thargoid raider and police blockade roles. Significant
increases in diversity of ships used for existing roles.
* Widened the difficulty gap between Corporate States (now safer) and
Anarchy (now far more dangerous) systems. System danger now also
depends to an extent on events in neighbouring systems.
* Saving the game at stations other than the main system station is
now possible; stations added by expansion packs must be flagged by
the expansion pack as valid save locations for this to work.
* Save game file name and player commander name are now
independent. Interface added on F4 to set player commander name and
player ship name.
* Docking computers now fly a bit faster
* Improved short-term and long-term assessment of player actions for
more realistic and varied NPC responses
* Parcel and passenger contracts made much more varied. High-price
high-risk contracts added. Reputation scale increased.
* Station rotation slowed down
* Number of cargo containers used by Gold, Platinum, Gems (e.g. after
scooping) now shown on the manifest screen.
Graphics:
=========
* Graphics settings have changed to merge "shader settings" and
"reduced detail" into a single option. There is an 'extra detail'
option suitable for dedicated graphics cards.
* New look for the sun, including improved corona and a glare effect
* New explosion graphics
* Core ship models and textures replaced with significantly improved
ones by Griff/CaptSolo
* New planet and atmosphere graphics (requires 'extra detail')
* Default HUD adjusted a little to improve appearance of text
Sound:
======
* Now uses the OpenAL library to give fully positional sound. Supports
stereo speakers up to 7.1 or binaural HRTF with headphones.
* iTunes integration works again with iTunes 11 on the Mac.
Controls:
=========
* Default key for dump cargo now "Shift-D", not "d", to reduce chance
of pressing accidentally
* Number pad keys can now be bound independently of arrow keys
* Number keys can now be bound independently of function keys
* GUI direction keys now independent of flight direction keys
* With an Advanced Navigation Array, the '?' key now cycles through
different colour highlights
* New ';' and ':' keys for multi-function displays
* 'tab' and '0' keys are now fast activation keys for primable
equipment. Equipment previously using those keys has been rewritten
to be primable equipment and will automatically be initially
assigned to those keys if it is installed. New interface on F4 to
rebind these keys.
* New joystick axis configuration interface, allowing much more
precise control
Settings:
=========
* --noshaders command line option to temporarily start Oolite without
shader support, for debugging graphics card problems.
* Windows and Linux ports: Default spoken messages voice changed to
female.
Expansion pack development:
===========================
Packaging:
----------
* New compressed OXZ format for easy - and automatic - expansion pack
distribution.
* Default Javascript properties set from manifest.plist
General:
--------
* The system populator is now run via Javascript and can be modified
by expansion pack scripts. There is also a system repopulator to
allow replacement of expected ship losses or departures.
* shipdata.plist reorganised to make heavy use of templates. This
allows shipset OXPs to be written to take advantage of future
changes to core shipdata.
* Javascript may be used as a language for ship AIs. Numerous extra JS
properties, methods and handlers have been added to allow this.
* Priority-based AI library available for writing Javascript AIs in,
with a wide range of predefined behaviours and easy addition of
custom behaviours
* Multi-function displays for arbitrary persistent in-flight text display
* Primable equipment dial added to HUD
* Sun colour and background star colour are now separated
* Ship cargo is now defined when ships are created
* Mission screens can now have an arbitrary text entry prompt
* Waypoints can be added - like a compass target, but not attached to
any other entity.
* [oolite_key_FOO] description expansion describes keyconfig entry key_FOO
* Javascript representation for ship exhausts
* Wormholes have a read-only Javascript representation
* Javascript representation for flashers
* Description and mission text expansions now use a much better random
number generator
New properties:
---------------
* entity.isWormhole
* oolite.gameSettings.keyConfig
* planet.name
* player.cargoReputationPrecise
* player.parcelReputationPrecise
* player.passengerReputationPrecise
* player.roleWeights
* player.setPlayerRole(role [,index])
* player.ship.multiFunctionDisplays
* player.ship.renovationCost
* player.ship.renovationMultiplier
* player.ship.viewPosition*
* ship.AIScript
* ship.AIScriptWakeTime
* ship.autoWeapons
* ship.beaconLabel
* ship.cargoList
* ship.crew
* ship.destinationSystem
* ship.dockingInstructions
* ship.energyRechargeRate
* ship.exhaustEmissiveColor
* ship.exhausts
* ship.extraCargo
* ship.flashers
* ship.homeSystem
* ship.isFleeing
* ship.isMinable
* ship.isTurret
* ship.markedForFines
* ship.shipClassName
* ship.shipUniqueName
* ship.sunGlareFilter
* station.allegiance
* station.market[*].legalPenalty
* sun.name
* system.allDemoShips
* system.populatorSettings
* system.stations
* system.waypoints
* system.wormholes
* visualeffect.beaconLabel
* wormhole.arrivalTime
* wormhole.destination
* wormhole.expiryTime
* wormhole.origin
New methods:
------------
* Ship.keys() (static method)