HUDSelector

From Elite Wiki
The docked F4 ship-station interface. ExtraLarge, Large & Small come with HUD Selector. The others (Xenon & the Vimanas) are separate OXPs.
The Default HUD is either the Vanilla HUD or the one you have inherited from your save file.

OXP for managing HUDs & MFDs

Description

This oxp does 4 things.

Change your HUD while docked or in flight

You can change your HUD while docked using the docked F4 ship-station interface screen shown above.
Buy the equipment and change your HUD (Heads Up Display) during flight by prime (Shift+N) and activate (n) - see Priming Equipment.
This only works with HUDs which are "HUDSelector compatible" (see below for how to tweak an incompatible HUD).
This OXP comes with 3 ready-packaged HUDs to play around with: ExtraLarge HUD, Large HUD & Small HUD (for different sized screens).

After you selected your HUD, you can remove HUD Selector (HUD equipment chosen will be saved into your savegame for future use).

Dangerous HUD with scanner set to NonLinear - see logarithmic rings at the edge

Change the Scanner

This is done in flight
In addition, you can now set your HUD's scanner to NonLinear and/or UltraZoom.
  • NonLinear scanners use a logarithmic scale where things closer are much more magnified, and those further are not
  • UltraZoom scanners magnify close up things to a factor 16x (standard maximum setting is only 5x): (x1, x2, x4, x8, x16 instead of x1, x2, x3, x4, x5)

Press the mode key (b) as many times as needed while the HUD Selector is primed. Your settings are stored in your savegame.

For an explanation of non-linearity with screen shots see here. Note especially Ffuture's comments some 6 posts later.

Remembers MFDs

Support for setting MFDs (see below): the MFD listed are those which you have already loaded as OXPs and which are compatible with HUD Selector. Each HUD has 0-12 possible positions for MFDs, and you select MFDs for each of those possible positions.

Introduces Custom Dials (you need to tweak!)

Custom Dials (see below) enabling such things as giving a value for speed rather than just a bar, or giving the distance to the compass target. Most of the Custom Dial settings are taken from Norby's Combat MFD, and can be inserted into compatible HUDs such as the Large & Extra-Large HUDs. See below.

MFDs

Default MFD selector: list of HUD Selector compatible MFDs already loaded as OXPs

There is a built-in support for setting the default Multi-Function Displays (MFDs).

You should install the following OXPs to get all the compliant MFDs:

(Not all MFDs are currently compatible (July 2021): see under The Dark Side below for how to make them compliant)

In the Interfaces (F4) screen you can select from the installed HUDs and set the default of your MFDs.

Initially supported HUDs

  • Default HUD (the actual hud.plist, for example AAD HUD or Compact HUD if installed)
  • ExtraLarge HUD with 10 MFDs (included in HUDSelector package, for 4:3 and 16:9 screens)
  • Large HUD with 10 MFDs (as the original but with large scanner, included in this package, for 16:10 also)
  • Small HUD with 10 MFDs (included in this package)

also:

etc

Custom Dials

Custom Dials SetUp - all dials on this screen provided by the CombatMFD - but need to be manually written in to your HUD to work there!

You need CombatMFD installed in order to do this, and your HUD needs to have added custom dials with the Combat MFD elements.

There is a Custom Dials setup in HUD Selector Interface, where you can turn on/off the numeric and bar displays made available by CombatMFD. If your HUD is using the Combat MFD elements, and shows your energy in numeric form also but you would like to stay with the bars, then you can turn off the "combatEnergy" dial here.

Large HUD and ExtraLarge HUD show custom dials if CombatMFD OXP is installed:

  • Speed value in speed bar,
  • Target distance, speed and fired missiles counter in top of speedbar (needs CombatMFD equipment),
  • Compass target distance meter,
  • Number of damaged equipment and the name of lastly damaged,
  • Player bounty and legal status,
  • Telescope's last detected target over the shield bar,
  • Reserve fuel in ly and hyperjump target system name within the fuel bar,
  • Distance of the nearest planetary object in the altitude bar,
  • Cargo and Hull (service level) bars next to the status light.

See Combat MFD for the full list and much more detail



Click on any of the screen-shots to see more detail

ExtraLarge HUD

Provides an extra-large alert-sensitive scanner in 4:3, 16:10 and 16:9 screens. Red for red alert, yellow for yellow, and green for green alert.

In 4:3 screens 8 MFDs are usable.

XLHUD4r.png

In 16:10 the scanner narrows to fit in 10 MFDs.

XLHUD10r.png

In 16:9 there is again enough room for 10 MFDs.

XLHUD9y.png


Large HUD

Both 4:3, 16:9 and 16:10 displays are supported with a large alert-sensitive coloured scanner. Red for red alert, yellow for yellow, and green for ...!

In 4:3 screens 8 MFDs are usable.

LargeHUD4r.png

In 16:10 there is enough room for all 10 MFDs.

LargeHUD10r.png

In 16:9:

LargeHUD9g.png


Small HUD

The Small HUD has got 10 MFDs. You don't need to have them all showing at the same time, of course!

SmallHUD.png

License

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License version 4.0. If you are re-using any piece of this OXP, please let me know by sending an e-mail to norbylite at gmail.com.


Download

Download through the in-game Expansions Manager or go for one of the options below:


The Dark Side

For the Dark Side (making HUDs/MFDs compatible) press button on the right ->

Add a HUD into HUDSelector

Requirements from other HUDs to be appear automatically in the selection list:

  • must be the plist differently named than hud.plist
  • must define a worldScript with similar this.name than the plist (for example in Config/script.js)
  • set your HUD and add your HUD name with plist name into HUDSelector in startUp:
 this.name = "yourhud";
 this.startUp = function () {
   player.ship.hud =  this.name + ".plist";
   var h = worldScripts.hudselector;
   if( h ) h.$HUDSelectorAddHUD("Your HUD", this.name); //name of plist without extension
 }
  • if your HUD define different plists for 4:3, 16:10 and 16:9 screens named to "yourhud.plist", "yourhud10.plist" and "yourhud9.plist" then give all of them to AddHUD:
   if( h ) h.$HUDSelectorAddHUD("Your HUD", this.name, this.name+"10", this.name+"9" );

HUDSelector will set the proper plist for the current screen but will not follow the window resizes, for example if you switch to fullscreen during flight. In this case you can set your HUD again by activating the HUDSelector equipment.

  • You can define a callback function in your worldScript to start/stop some parts of your scripted HUD:
 this.$HUDSelectorCallBack = function ( off ) {
   var w = worldScripts["yourhud"];
   if( off ) { //do things to disable your HUD like rename functions
     if( w.shipWillLaunchFromStation ) {
       w.$save_shipWillLaunchFromStation = w.shipWillLaunchFromStation;
       delete w.shipWillLaunchFromStation;
     }
   } else { //do things to activate your HUD like restore disabled functions
     if( !w.shipWillLaunchFromStation )
       eval("w.shipWillLaunchFromStation = "+w.$save_shipWillLaunchFromStation);
   }
 }

Add a MFD into HUDSelector

New MFDs can register in startUp:

 var h = worldScripts.hudselector;
 if( h && h.$HUDSelectorAddMFD ) h.$HUDSelectorAddMFD(this.name);

If the name of the MFD defined in setMultiFunctionText() call is different from the worldscript name then must give the name in the second parameter:

 var h = worldScripts.hudselector;
 if( h && h.$HUDSelectorAddMFD ) h.$HUDSelectorAddMFD(this.name, "nameOfTheMFD");

Changelog

2023.10.15. v1.26 (phkb)

  • Corrections to Telescope MFD entries in array.

2023.10.11. v1.25 (phkb)

  • Removed debug messages.

2023.10.08. v1.24 (phkb)

  • Really fixed issue with reading default MFD's from new dataset method.

2023.10.08. v1.23 (phkb)

  • Fixed issue with reading default MFD's from new dataset method.

2023.10.07. v1.22 (phkb)

  • Reapplied old code that read default MFDs, so there should be continuity between old and new versions.

2023.09.23. v1.20 (phkb)

  • New, more consistent method to save MFD arrangement.

2023.09.21. v1.19

  • Gave MFD's a "displayName" to make interface far more user friendly
  • Added some text alignment code to the lists, to make them a little easier to read. Also added some helper text to each screen, to better explain what they do.
  • Expanded the default list of MFD's.
  • Removed need for FCB's on mission screens.
  • After the game has started and all compatible HUD's have been registered, the callback function will only be called on the HUD being disabled and the HUD being enabled, reducing the time it takes to switch HUDs and preventing timeout issues.
  • Changed the flow of screens, so exiting from the MFD or Combat HUD custom dials screens returns to the main HUD listing, instead of exiting back to the F4 Interfaces page.
  • Setting the initial HUD after load, and running all the callbacks, is now only performed once, rather than twice.

2020.11.20. v1.18

  • Display HUD Selector Removal in red at Ship Outfitting screen.
  • Sets Station Interface (F4) when loading savefile (previously done only when docking).
  • Deals with more than one HUD from the same worldscript.
  • Adds Primeable Equipment MFD to the default MFDs list.

2016.08.15. v1.17

  • Removed "(adjusting)" text from timer in Large and other included HUDs.
  • Always turn on the HUD at launch and at Options(F2) to fix problems in any addons.
  • A comma added into "Press Space, Commander".

For older changes press button on the right ->

2015.05.26. v1.16

  • Fixed timeout caused by missing images, thanks to CdrC64.

2015.05.25. v1.15

  • ExtraLarge HUD got narrower scanner in 16:10 to fit 10 MFDs.
  • HUDs can define different plists for 4:3, 16:10 and 16:9 screens.

2015.05.24. v1.14

  • ExtraLarge HUD is the new name of XL HUD.
  • Removed Original HUD and Wide HUD in favor of Large HUD and ExtraLarge HUD.
  • Fixed fuel indicator in ExtraLarge HUD.
  • Small HUD got alert sensitive scanner.

2015.05.23. v1.13

  • Large HUD is optimized for 16:10 screens, scanner is narrower to show 10 MFDs.
  • Wide HUD is a bit polished variant of the previous Large HUD for 16:9 screens.
  • XL HUD is a polished variant of the Large HUD in v1.11 with very large scanner.
  • Clock and custom dials are repositioned from bottom center in these HUDs.

2015.05.21. v1.12

  • Large HUD's messages and comms boxes are wider and aligned to the sides.
  • Reduced Large scanner height for better aspect ratio and more room.
  • Fixed needed fuel indicator, thanks to Anonymissimus.
  • Removed the nonexistent Scanner HUD from the selectable HUD list.

2015.05.17. v1.11

  • Large HUD added with as large scanner as in NumericHUD.

2015.04.27. v1.10

  • Fixed restore of MFDs if the current HUD remove them in the dock.
  • Interface screens use background from BGS or Better Screens if available.

2015.01.10. v1.9

  • MFD selector list limited to the actual number of MFDs.
  • Exit back to the Interfaces screen from HUD and MFD interfaces.

2014.10.20. v1.8

  • Original HUD got many numeric displays from CombatMFD.
  • Custom Dials setup in Hud Selector Interface.
  • Support for more than 20 HUDs and MFDs.

2014.10.16. v1.7

  • Original and Small HUDs has numeric speed display with CombatMFD in Oolite 1.81.

2014.09.25. v1.6

  • Scanner settings compatible with Auto Crosshairs OXP and plist-changer huds.

2014.09.24. v1.5

  • Fixed the saving of scanner settings if the equipment is uninstalled.

2014.09.23. v1.4

  • Scanner settings are adjustable by mode key (b) if HUD Selector primed.

2014.08.29. v1.3

  • MFD setup changes during flight are saved (need Oolite 1.81).
  • Original and Small HUDs has 10 MFDs and scanner zoom up to 16x.
  • Support in Original and Small HUDs for CombatMFD's target status.

2014.08.12. v1.2

2014.08.11. v1.1

  • Interfaces and MFD handling.
  • Selections are saved into the savegame.
  • The included Original and Small HUDs has 8 MFDs.

2014.07.05. v1.0

  • First release.

Links