Well the issue wasn't what I thought it was. If you're still running 1.83, and you've still got that little patch that changed line 271 in Xenon UI, then the problem actually lies with the Coluber HUD. That HUD has a standard and docked version of it's HUD - when you dock the HUD is switched to "coluber_hud_ch01-dock.plist", and when you launch it's set to "coluber_hud_ch01.plist".
The bug is that if you load a saved game with the Coluber HUD set, or you use the HUD Selector to change your HUD when docked, the callback function employed by the HUD to set itself up doesn't check that you're docked, so you will have the "coluber_hud_ch01.plist" HUD set. If you launch and redock, the correct HUD is selected.
The fix is to do the following to the "script.js" file in the "Config" folder of the Coluber HUD:
Change this:
Code: Select all
this.$HUDSelectorCallBack = function ( off ) {
var w = worldScripts.coluber_hud_ch01;
if( off ) { //do things to disable your HUD like rename functions
if( w.shipWillDockWithStation ) {
w.$save_shipWillDockWithStation = w.shipWillDockWithStation;
delete w.shipWillDockWithStation;
}
if( w.shipWillLaunchFromStation ) {
w.$save_shipWillLaunchFromStation = w.shipWillLaunchFromStation;
delete w.shipWillLaunchFromStation;
}
if( w.$Timer ) { w.$Timer.stop(); delete w.$Timer;}
} else { //do things to activate your HUD like restore disabled functions
if( !w.shipWillLaunchFromStation ) {
eval("w.shipWillDockWithStation = "+w.$save_shipWillDockWithStation);
eval("w.shipWillLaunchFromStation = "+w.$save_shipWillLaunchFromStation);
}
if( !this.$Timer ) this.$Timer = new Timer(this, this._update.bind(this), 0, 0.25);
}
}
To this:
Code: Select all
this.$HUDSelectorCallBack = function ( off ) {
var w = worldScripts.coluber_hud_ch01;
if( off ) { //do things to disable your HUD like rename functions
if( w.shipWillDockWithStation ) {
w.$save_shipWillDockWithStation = w.shipWillDockWithStation;
delete w.shipWillDockWithStation;
}
if( w.shipWillLaunchFromStation ) {
w.$save_shipWillLaunchFromStation = w.shipWillLaunchFromStation;
delete w.shipWillLaunchFromStation;
}
if( w.$Timer ) { w.$Timer.stop(); delete w.$Timer;}
} else { //do things to activate your HUD like restore disabled functions
// if the player is docked, use the docked version of the HUD
if (player.ship.docked) player.ship.hud = this.name + "-dock.plist";
if( !w.shipWillLaunchFromStation ) {
eval("w.shipWillDockWithStation = "+w.$save_shipWillDockWithStation);
eval("w.shipWillLaunchFromStation = "+w.$save_shipWillLaunchFromStation);
}
if( !this.$Timer ) this.$Timer = new Timer(this, this._update.bind(this), 0, 0.25);
}
}
(Edit to note: Norby has now updated the Coluber HUD with this fix. Thanks, Norby!)
In my tests the two fixes (changing XenonUI line 271 and the above) make the Coluber HUD work correctly with Xenon UI.
If you can confirm this I'll post the Xenon UI fix later today.