Page 8 of 10

Re: Galactic Almanac OXZ - Full Version 0.9 - Now on the Expansion Pack Manager (Updated 29.12.22)

Posted: Thu Dec 29, 2022 1:08 pm
by LittleBear
Update to Version 0.9 (Download from the Wiki Page or from the Expansion Pack Manager in-game)

Updates in Version 0.9:

Updates the OXZ to be compatible with the Planetary Compass and In-System Cargo Delivery OXZs.

Improves the names used by the automatic naming feature.

Increases the pool of names used for Jump Gates.

Adds one more news broadcast.

Increases the number of hand names systems (715).

This OXZ requires Version 1.90 or higher of Oolite. It is compatible with all other OXZs and has no dependencies. Please note however that the In-System Cargo Delivery OXZ refers to planets by the system name and orbital position (eg: Lave II, Lave III, Lave IV etc) rather than the name of the planet. If you are at Lave, for example, with Strangers World installed the first OXZ planet in the system will be named Imperious II but In-System Cargo Delivery will refer to it as Lave II. You will know which planet to go to however as the roman numeral in the description will be the same.

This is due to the fact that Planetary Compass does not assign names to Planets, so they are all named [System Name] [Orbital Position Number]. In-System Cargo Delivery reads the names from Planetary Compass rather than the actual displayName of the planets in the system. Tweaking Insystem Delivery to read the display names would fix the issue.

1st Post Updated.

Re: Galactic Almanac OXZ - Full Version 0.9 - Now on the Expansion Pack Manager (Updated 29.12.22)

Posted: Thu Dec 29, 2022 3:42 pm
by Cody
Thankee!

Re: Galactic Almanac OXZ - Full Version 0.91 - Now on the Expansion Pack Manager (Updated 13.01.23)

Posted: Fri Jan 13, 2023 10:47 am
by LittleBear
Update to Full Version 0.91 - 13.01.23. Fixes a bug where if you change your Planet Adding OXZ (for example changing from System Redux to Strangers World) the list of OXZs installed was not updated in the save file.

First Post Updated.

Re: Galactic Almanac OXZ - Full Version 0.91 - Now on the Expansion Pack Manager (Updated 13.01.23)

Posted: Tue May 16, 2023 11:13 am
by Cholmondely
Thy Legality:

Would there be point in adding on the option of dismissing the mission (say, by Library.oxp) for those starting their umpteenth Jameson with the Galactic Almanac running in the background? Surely once one has done it the once, there is little need to have Zadies perpetually highlighted on the F6 screen for all future Jamesons?

NB: Having been spending quite some time reading through old posts, I'm struck by how very helpful you have been to people with programming problems.

Re: Galactic Almanac OXZ - Full Version 0.91 - Now on the Expansion Pack Manager (Updated 13.01.23)

Posted: Tue May 16, 2023 1:03 pm
by LittleBear
You could add this to the startUp code:

It currently says:

Code: Select all

this.startUp = function() {
delete missionVariables.random_station_names_compress;
delete missionVariables.random_station_names_distantsuns;
delete missionVariables.random_station_names_distantstars;
delete missionVariables.random_station_names_news_installed;
delete missionVariables.random_station_names_telescope_installed;
delete missionVariables.random_station_names_systemredux_installed;
delete missionVariables.random_station_names_jukebox_installed;
delete missionVariables.random_station_names_sungear;
delete missionVariables.random_station_names_planetengine;
delete missionVariables.random_station_names_spawnmoons;
delete missionVariables.random_station_names_spawnstation;
delete missionVariables.random_station_names_orbits;
delete missionVariables.random_station_names_stranger_populated_system;
delete missionVariables.random_station_names_warning_given;
delete missionVariables.random_station_names_planatary_compass;
}
If you add this:

Code: Select all

if (missionVariables.random_station_names_news > 22 && galaxyNumber === 0) {
mission.unmarkSystem(131);}
So it now says:

Code: Select all

this.startUp = function() {
delete missionVariables.random_station_names_compress;
delete missionVariables.random_station_names_distantsuns;
delete missionVariables.random_station_names_distantstars;
delete missionVariables.random_station_names_news_installed;
delete missionVariables.random_station_names_telescope_installed;
delete missionVariables.random_station_names_systemredux_installed;
delete missionVariables.random_station_names_jukebox_installed;
delete missionVariables.random_station_names_sungear;
delete missionVariables.random_station_names_planetengine;
delete missionVariables.random_station_names_spawnmoons;
delete missionVariables.random_station_names_spawnstation;
delete missionVariables.random_station_names_orbits;
delete missionVariables.random_station_names_stranger_populated_system;
delete missionVariables.random_station_names_warning_given;
delete missionVariables.random_station_names_planatary_compass;
if (missionVariables.random_station_names_news > 22 && galaxyNumber === 0) {
mission.unmarkSystem(131);}
}
Then on start up it will unmark Zadies.

Re: Galactic Almanac OXZ - Full Version 0.91 - Now on the Expansion Pack Manager (Updated 13.01.23)

Posted: Wed May 17, 2023 8:45 am
by Cholmondely
LittleBear wrote: Tue May 16, 2023 1:03 pm
You could add this to the startUp code:

It currently says:

Code: Select all

this.startUp = function() {
delete missionVariables.random_station_names_compress;
delete missionVariables.random_station_names_distantsuns;
delete missionVariables.random_station_names_distantstars;
delete missionVariables.random_station_names_news_installed;
delete missionVariables.random_station_names_telescope_installed;
delete missionVariables.random_station_names_systemredux_installed;
delete missionVariables.random_station_names_jukebox_installed;
delete missionVariables.random_station_names_sungear;
delete missionVariables.random_station_names_planetengine;
delete missionVariables.random_station_names_spawnmoons;
delete missionVariables.random_station_names_spawnstation;
delete missionVariables.random_station_names_orbits;
delete missionVariables.random_station_names_stranger_populated_system;
delete missionVariables.random_station_names_warning_given;
delete missionVariables.random_station_names_planatary_compass;
}
If you add this:

Code: Select all

if (missionVariables.random_station_names_news > 22 && galaxyNumber === 0) {
mission.unmarkSystem(131);}
So it now says:

Code: Select all

this.startUp = function() {
delete missionVariables.random_station_names_compress;
delete missionVariables.random_station_names_distantsuns;
delete missionVariables.random_station_names_distantstars;
delete missionVariables.random_station_names_news_installed;
delete missionVariables.random_station_names_telescope_installed;
delete missionVariables.random_station_names_systemredux_installed;
delete missionVariables.random_station_names_jukebox_installed;
delete missionVariables.random_station_names_sungear;
delete missionVariables.random_station_names_planetengine;
delete missionVariables.random_station_names_spawnmoons;
delete missionVariables.random_station_names_spawnstation;
delete missionVariables.random_station_names_orbits;
delete missionVariables.random_station_names_stranger_populated_system;
delete missionVariables.random_station_names_warning_given;
delete missionVariables.random_station_names_planatary_compass;
if (missionVariables.random_station_names_news > 22 && galaxyNumber === 0) {
mission.unmarkSystem(131);}
}
Then on start up it will unmark Zadies.
Thank you!

Is this ( delete missionVariables.random_station_names_planatary_compass; ) a typo which affects your OXP?

Re: Galactic Almanac OXZ - Full Version 0.91 - Now on the Expansion Pack Manager (Updated 13.01.23)

Posted: Wed May 17, 2023 4:02 pm
by LittleBear
No as I've miss-spelt it consistently throughout the code. :wink:

The variables which test for other OXZs being installed is just a way of not having to do the test for the OXZ being installed every time I want the main code to branch depending on whether a particular OXZ is installed. The variables are cleared when you start a new game or load a commander (as you could have changed your installed OXZs since you last loaded the save file) and then tests for the OXZ being present are done when startUp completes.

Re: Galactic Almanac OXZ - Full Version 0.91 - Now on the Expansion Pack Manager (Updated 13.01.23)

Posted: Wed Jun 07, 2023 9:55 pm
by Cholmondely
Just to say, I'm now back to playing with Oolite v.1.90 (the Feb '22 version of 1.91 crashes too frequently on the AppleMac for one to enjoy the gaming). I also understand that the Oolite v.1.92 might not debut for another year or two.

Might it make more sense to remove the need to play Galactic Almanac on v.1.91 - especially since most newcomers will still be downloading 1.90 even thought the Expansions Manager link is bust?

Re: Galactic Almanac OXZ - Full Version 0.91 - Now on the Expansion Pack Manager (Updated 13.01.23)

Posted: Wed Jun 28, 2023 8:20 pm
by Darkenedroom
Possible bug in the Galactic Almanac... maybe.

When I started going through the missions associated with this oxz, at some point I noticed the sub TC cargo missions disappeared from the cargo mission lists, which was weird as my reputation was still high enough to be generating them. Once all the missions were complete they still did not appear. Tried jumping to G2 to see if that would change anything but it didn't.

Had a dig around in the resource files and the sub TC missions rely on cargo reputation which again was high enough to generate them, dug around in my oolite save file and noticed this:


<key>contracts_expired</key>
<integer>0</integer>
<key>contracts_fulfilled</key>
<integer>53</integer>
<key>contracts_unknown</key>
<integer>17</integer>


I'm not sure if completing those missions set the contracts_unknown field. I took a copy and changed it to 0, which caused the sub TC cargo missions to start appearing again. As I said not sure if bug or not?

Anyway awesome expansion which really adds to the ambience!

Re: Galactic Almanac OXZ - Full Version 0.91 - Now on the Expansion Pack Manager (Updated 13.01.23)

Posted: Mon Jul 24, 2023 3:30 am
by phkb
Very comprehensive expansion! Nice work!

Some things to fix:

1. You need to add the "is_external_dependency = yes;" to your definitions for "pagroove_superhub_station_mainhull_no_beacon_version" and "cb68_sodalite_station-riredi-coluber_no_beacon_version". Without it, if you don't have those OXP's installed, you get this message in the log.

Code: Select all

12:55:04.785 [shipData.load.error]: ***** ERROR: the shipdata.plist entry "cb68_sodalite_station-riredi-coluber_no_beacon_version" has unresolved subentity cb68_sodalite_station-dock-riredi-coluber.
2. In the definition for "cb68_sodalite_station-riredi-coluber_no_beacon_version", double-quote marks should be placed around the value for "bgs_tunnel_texture", like this:

Code: Select all

			bgs_tunnel_texture = "cb68_sodalite_station-dock-bgs_tunnel-riredi-coluber.png";
There's a mix of "-" and "_" in there (which can cause delimiter issues), so it's safer to have quote marks around it.

3. I'm seeing a lot of these messages:

Code: Select all

13:19:00.139 [script.javaScript.unrootedTimer]: ----- WARNING: Timer <OOJSTimer 0x26744000>{nextTime: 0.2, one-shot, running, function: anonymous} is being garbage-collected while still running. You must keep a reference to all running timers, or they will stop unpredictably!
On looking through the code, I can see your reusing the same timer reference variable for a lot of different timers. eg:

Code: Select all

    { this.scriptDelay = new Timer(this, this.nameplanetsandmoons, 0.20); }
    { this.scriptDelay = new Timer(this, this.namemainplanet, 0.30); }
...
    { this.scriptDelay = new Timer(this, this.nameplanetsandmoons, 0.20); }
    { this.scriptDelay = new Timer(this, this.namemainplanet, 0.28); }
    { this.scriptDelay = new Timer(this, this.SetUpAlmanacMFD, 0.29); }
What you are doing here is wiping out the reference to the previous timer, making it "unrooted". You need to have a different timer reference variable for each timer. eg:

Code: Select all

    { this.scriptDelay_planetsandmoons = new Timer(this, this.nameplanetsandmoons, 0.20); }
    { this.scriptDelay_mainplanet = new Timer(this, this.namemainplanet, 0.30); }
...
    { this.scriptDelay_planetsandmoons = new Timer(this, this.nameplanetsandmoons, 0.20); }
    { this.scriptDelay_mainplanet = new Timer(this, this.namemainplanet, 0.28); }
    { this.scriptDelay_setupmfd = new Timer(this, this.SetUpAlmanacMFD, 0.29); }
4. Ideally, you should tweak the function definitions for the timer targets to be like this:

Code: Select all

this.nameplanetsandmoons = function nameplanetsandmoons() {
What that will do is change what appears in the log if the timer is garbage collected unexpectedly to be something more meaningful. Like this:

Code: Select all

13:27:30.572 [script.javaScript.unrootedTimer]: ----- WARNING: Timer <OOJSTimer 0x25e5baa0>{nextTime: 0.2, one-shot, running, function: nameplanetsandmoons} is being garbage-collected while still running. You must keep a reference to all running timers, or they will stop unpredictably!

Re: Galactic Almanac OXZ - Full Version 0.92 - Now on the Expansion Pack Manager (Updated 12.08.23)

Posted: Sat Aug 12, 2023 12:47 pm
by LittleBear
Updated Version 0.92 uploaded to the Manager (1st post updated).

Full Version 0.92 - 12.08.23. This Version makes corrections to the shipdata and script timers suggested by PHKB. Lowers the Version Requirement to 1.80. Corrects some typos spotted by Commander Arquebus. Improves the name pools for Kiota Stations. Adds hand written names to the Hacker Outposts, Imperial AstroFactories, RRS Mining Outposts, Sentinel, Hathor, Nephthys & Nuit Stations, BioSpheres and Zieman Habitats. Adds 2 more news broadcasts. Increases the number of hand named systems (760).

Re: Galactic Almanac OXZ - Full Version 0.92 - Now on the Expansion Pack Manager (Updated 12.08.23)

Posted: Sat Aug 12, 2023 10:31 pm
by Cholmondely
LittleBear wrote: Sat Aug 12, 2023 12:47 pm
Updated Version 0.92 uploaded to the Manager (1st post updated).
Lowers the Version Requirement to 1.80.
Great! I can now finally include it in Addons for Beginners (Vital Statistics).

Since I reverted to the relatively bug-free AppleMac's Oolite v.1.90 I've been playing without it (due to my earlier version conflicting with Planetary Compass which is needed for Stranger's World).

I've finally been able to use it again. What a difference it makes to the game! I can again see what each of the KOS stations are in Stranger's World. And whizzing around G7 the names now tie in with the F7 planetary descriptions. And the information on the F4 docked screen surpasses that from Market Inquirer's "In-system distances" listing.

Again, "Thank You" for this.

Re: Galactic Almanac OXZ - Full Version 0.92 - Now on the Expansion Pack Manager (Updated 12.08.23)

Posted: Mon Aug 21, 2023 10:00 am
by phkb
Some more suggestions/improvements for the Galactic Almanac

1. Your "Galactic Almanac MFD Unit" has a script attached to it in the equipment.plist file. However, by attaching a script, you are essentially telling the game this is a piece of prime-able equipment, which puts the unit on the list of prime-able equipment. Yet you haven't assigned a "mode" or "activate" function in your script, so the prime-able equipment does nothing.

Now, you may have future plans for this piece of kit, where it will need to be primed and activated. However, in the meantime, it might be worth removing the "script" = "randomstationnames.js"; from the equipment definition. That will remove it as a piece of prime-able equipment.

2. You are updating the description of the "Advanced Space Compass" in your equipment.plist file. Given the only thing you're changing is the description, the best place to do this is in an "equipment-overrides.plist" file, which would look something like this:

Code: Select all

{
    "EQ_ADVANCED_COMPASS" = {
        description = "The Tyley-Feynman GW-99 astronavigation compass is fully compatible with the Galactic Almanac. The user selectable target modes show the names, positions and classifications of all stars, moons, planets and gas giants. The names and positions of stations and orbitals are also shown, provided the orbital is transmitting a GAL-ID beacon code.";
    };
}
That way you're less likely to bump into another OXP that might be trying to update other details about the ASC.

3. This is a similar story with the Anarchies equipment items. You could put them in the equipment-overrides.plist file like this:

Code: Select all

{
    ...ADV compass item as shown above...
    "EQ_MULTIPASS" = {
        condition_script = "anarchies_conditions_fixed.js";
    };
    ...etc...
}
I've included your fix in a patch for the Anarchies OXP, so this will be a temporary fix until I can release the patch.

4. You are starting the three timers in three different events: systemWillPopulate, startUpComplete, and shipExitedWitchspace. You only really need one of those: systemWillPopulate. Unless there was a particular scenario you were trying to overcome, you could remove the calls to start the timers in the other two functions.

5. There are still issues with timers being recycled while active. I'm pretty sure the issue is with the almanacdistanceTimer. When you reset it in systemWillPopulate, it could already be running from the previous system. And then, when you start it again, the old one is recycled unexpectedly.

Just before you start the timer, do this:

Code: Select all

if (this.almanacdistanceTimer && this.almanacdistanceTimer.isRunning) this.almanacdistanceTimer.stop();
That will stop the timer if it's running, just before you start it again, and the timer issues should be resolved!

Re: Galactic Almanac OXZ - Full Version 0.92 - Now on the Expansion Pack Manager (Updated 12.08.23)

Posted: Tue Aug 22, 2023 7:08 am
by phkb
Sorry, one more thiing!

If players are using mods like "Here Be Dragons" or "ZeroMap", information about systems beyond the 7LY circle is restricted by the "concealment" property. So, you can't see the system name of systems you haven't visited.

However, with the Almanac installed, you can still go to the F7 screen and learn the name of the system you have targeted, even if the screen literally has nothing else on it. The almanac will say something like "Tionisla orbits the star Stella Mortem"

To fix this, in your "guiScreenChanged" routine, each time you do this:

Code: Select all

    var info = System.infoForSystem(galaxyNumber, player.ship.targetSystem);
You need to add this line:

Code: Select all

     if (info.concealment >= 100) return;
I think you have four instances you'll need to add, based on what I can see.

Re: Galactic Almanac OXP - Full Version 0.7 (Updated to 0.7 on 09.06.22)

Posted: Wed Aug 23, 2023 8:47 pm
by Cholmondely
LittleBear wrote: Thu Jun 23, 2022 1:41 pm
The conflict is unavoidable
Thy legality,

there seems to be some sort of a conflict between The Galactic Almanac and Feudal States...

when landing at the main planet of Dirateri and attempting to visit the Royal Court to deliver a tribute of alloys, I seemed to end up instead at shipyards, leisure complexes, customs control posts and sundry other locales of ill repute (if word ever gets back home to Digebiti, my reputation will be trashed).

Constantly, instead of being ushered into that home of gentility and politesse, the monarchic court, I was faced instead with tawdry merchants attempting to palm off commodities in the most vulgar manner. I was given absolutely no say in the matter.

My darling Araminta was too mortified to even leave our ship, fortifying herself against the depravities without with a veritable ocean of gin and tonic, whilst I, I searched ceaselessly for the throneroom. Perforce I was constrained to emulate the ignoramuses of medieval thought, searching endlessly for the seat of the monarch and, like them, attaining scant success.

Lo and behold! I eviscerated my ManagedAddOns folder, extirpating The Galactic Almanac OXZ and consigning it to the outer darknesses, and wonders! The Royal Court allowed me to attend on my very next landing.

J'Accuse!!

Yours sincerely,

Cholmondely