Page 5 of 5

Re: Docked HUDs OXP

Posted: Sat Mar 21, 2026 8:05 am
by Wildeblood
Check my logic, please, someone/anyone: will this actually select all of these six HUD files:-

docked-market-screens-hud.plist <--- new.
docked-need-fuel-hud.plist
docked-need-missiles-hud.plist
docked-full-missiles-hud.plist <--- the old docked-need-nothing-hud.plist renamed.
docked-extra-missiles-hud.plist <--- new, variant for more than 12 missiles.
docked-clock-only-hud.plist <--- new, big_gui compatible.

- at the intended times?

Code: Select all

    this._selectDockedHUD = function () {
        var self = player.ship;

     // 1. Are we on the market screens?

        if (guiScreen === "GUI_SCREEN_MARKET" || guiScreen === "GUI_SCREEN_MARKETINFO") {
            if (self.equipmentStatus("EQ_AI_TRADING_ASSISTANT") === "EQUIPMENT_OK") {
                return;
            } else {
                self.hud = "docked-market-screens-hud.plist";
                return;
            }

     // 2. Do we need fuel?

        } else if (self.fuel < 7) {
            self.hud = "docked-need-fuel-hud.plist";
            return;

     // 3. Do we need missiles?
     //    OR
     // 4. Are we on the equipment screen?

        } else if (self.missileCapacity > self.missiles.length ||
            guiScreen === "GUI_SCREEN_EQUIP_SHIP") {

            if (self.missileCapacity > 12) {
                self.hud = "docked-extra-missiles-hud.plist";
                return;
            } else if (self.missileCapacity > self.missiles.length) {
                self.hud = "docked-need-missiles-hud.plist";
                return;
            } else if (guiScreen === "GUI_SCREEN_EQUIP_SHIP") {
                self.hud = "docked-full-missiles-hud.plist";
                return;
            }
            return;

     // 5. If we reach here, then allow_big_gui

        } else {
            self.hud = "docked-clock-only-hud.plist";
            return;
        }
    }
I hate the mess on the equipment screen, where things get checked twice.

Re: Docked HUDs OXP

Posted: Sat Mar 21, 2026 7:44 pm
by Krager
Я в коде не разбираюсь, могу только готовый продукт попробовать)

Re: Docked HUDs OXP

Posted: Sun Mar 22, 2026 2:27 am
by phkb
Wildeblood wrote: Sat Mar 21, 2026 8:05 am
Check my logic, please

Code: Select all

        } else if (self.missileCapacity > self.missiles.length || guiScreen === "GUI_SCREEN_EQUIP_SHIP") {

            if (self.missileCapacity > 12) {
                self.hud = "docked-extra-missiles-hud.plist";
                return;
            } else if (self.missileCapacity > self.missiles.length) {
                self.hud = "docked-need-missiles-hud.plist";
                return;
            } else if (guiScreen === "GUI_SCREEN_EQUIP_SHIP") {
                self.hud = "docked-full-missiles-hud.plist";
                return;
            }
            return;
I think the final check of guiScreen is unnecessary, and I think the missile checking could be streamlined, like this:

Code: Select all

        } else if (self.missileCapacity > self.missiles.length || guiScreen === "GUI_SCREEN_EQUIP_SHIP") {

            if (self.missileCapacity > self.missiles.length) {
                if (self.missileCapacity > 12) {
                    self.hud = "docked-extra-missiles-hud.plist";
                } else {
                    self.hud = "docked-need-missiles-hud.plist";
                }
            } else {
                self.hud = "docked-full-missiles-hud.plist";
            }
            return;

Re: Docked HUDs OXP

Posted: Sun Mar 22, 2026 2:32 am
by phkb
And a small suggestion: You don't really need all those "return;" statements. As there's no code after the "if" statements, the code will naturally return without being told specifically. So you could make it just:

Code: Select all

    this._selectDockedHUD = function () {
        var self = player.ship;

     // 1. Are we on the market screens?

        if (guiScreen === "GUI_SCREEN_MARKET" || guiScreen === "GUI_SCREEN_MARKETINFO") {
            if (self.equipmentStatus("EQ_AI_TRADING_ASSISTANT") !== "EQUIPMENT_OK") {
                self.hud = "docked-market-screens-hud.plist";
            }

     // 2. Do we need fuel?

        } else if (self.fuel < 7) {
            self.hud = "docked-need-fuel-hud.plist";

     // 3. Do we need missiles?
     //    OR
     // 4. Are we on the equipment screen?

        } else if (self.missileCapacity > self.missiles.length ||
            guiScreen === "GUI_SCREEN_EQUIP_SHIP") {

            if (self.missileCapacity > self.missiles.length) {
                if (self.missileCapacity > 12) {
                    self.hud = "docked-extra-missiles-hud.plist";
                } else {
                    self.hud = "docked-need-missiles-hud.plist";
                }
            } else {
                self.hud = "docked-full-missiles-hud.plist";
            }

     // 5. If we reach here, then allow_big_gui

        } else {
            self.hud = "docked-clock-only-hud.plist";
        }
    }

Krager!!!

Posted: Mon Mar 23, 2026 12:36 pm
by Wildeblood
Does anyone have any opinions regarding a colour scheme? Back when I first created this we had a choice of green, so it was easy to choose (I chose green, by the way). But if there's an argument for another colour, now would be a good time to proffer it.