Update XR1 1.11 / XR2 1.6 / XR5 1.9 Maintenance Releases

dbeachy1

O-F Administrator
Administrator
Orbiter Contributor
Addon Developer
Donator
Beta Tester
Joined
Jan 14, 2008
Messages
9,216
Reaction score
1,562
Points
203
Location
VA
Website
alteaaerospace.com
Preferred Pronouns
he/him
Hi all,

New XR maintenance versions have been released along with updated XRVesselCtrl 3.0 APIs. Changes include:

  • Added conductive heat transfer logic to the XR heating code to make it more realistic when flying in dense atmosphere. [Requested by Keatah]

  • Added payload calls to the XRVesselCtrl 3.0 APIs [Requested by Russell Hicks]:

Code:
// Returns the total number of payload bay slots in this XR vessel (1-n)
virtual int GetPayloadBaySlotCount() const = 0;

// Returns true if the specified payload bay slot is free
//   slotNumber: 1 <= n <= GetPayloadBaySlotCount()
virtual bool IsPayloadBaySlotFree(const int slotNumber) const = 0;

// Returns details about an XR payload bay slot.  Returns NULL if slotNumber is invalid.
//   slotNumber: 1 <= n <= GetPayloadBaySlotCount()
//   slotDataOut: will be populated with data for the specified slot if slotNumber is valid.  If slotNumber is invalied, the contents of slotDataOut are not changed.
// Returns: true if slotDataOut successfully populated (i.e., slotNumber was valid)
virtual bool GetPayloadSlotData(const int slotNumber, XRPayloadSlotData &slotDataOut) = 0;

// Returns true if the supplied vessel 1) is an XR-compatible payload vessel, and 2) can be latched into the specified slot (i.e., it will fit)
// Note: this does NOT check the status of the payload bay doors: it is the caller's responsibility to do that if desired.
//   slotNumber: 1 <= n <= GetPayloadBaySlotCount()
virtual bool CanAttachPayload(const OBJHANDLE hPayloadVessel, const int slotNumber) const = 0;

// Attempts to grapple the given payload vessel into the specified slot; there is no distance checks, although there is a size check.
// Note: hPayloadVessel must be an XR payload module in order to be gappled into the payload bay.
// Note: this does NOT check the status of the payload bay doors: it is the caller's responsibility to do that if desired.
//   slotNumber: 1 <= n <= GetPayloadBaySlotCount()
// Returns: true on success, false if payload could not be grappled into the requested slot
virtual bool GrapplePayloadModuleIntoSlot(const OBJHANDLE hPayloadVessel, const int slotNumber) = 0;

// Detaches a payload vessel from the specified slot at the specified delta-V along the Y axis (up out of the bay).
// You should normally only call this on vessels that are in space.
// Note: this does NOT check the status of the payload bay doors: it is the caller's responsibility to do that if desired.
//   slotNumber: 1 <= n <= GetPayloadBaySlotCount()
//   deltaV = +Y deployment velocity in meters-per-second (e.g., 0.2)
// Returns: true on success, false if slot is invalid or no payload is attached in the specified slot
virtual bool DeployPayloadInFlight(const int slotNumber, const double deltaV) = 0;

// Detaches a payload vessel from the specified slot and moves it to alongside the ship on the ground.
// You should normally only call this on vessels that are landed and stationary.
// Note: this does NOT check the status of the payload bay doors: it is the caller's responsibility to do that if desired.
//   slotNumber: 1 <= n <= GetPayloadBaySlotCount()
// Returns: true on success, false if slot is invalid or no payload is attached in the specified slot
virtual bool DeployPayloadWhileLanded(const int slotNumber) = 0;

// Detaches all payload vessels at the specified delta-V along the Y axis (up out of the bay).
// You should normally only call this on vessels that are in space.
// Note: this does NOT check the status of the payload bay doors: it is the caller's responsibility to do that if desired.
//   deltaV = +Y deployment velocity in meters-per-second (e.g., 0.2)
// Returns: number of payload vessels deployed
virtual int DeployAllPayloadInFlight(const double deltaV) = 0;

// Detaches all payload vessels and moves them to alongside the ship on the ground.
// You should normally only call this on vessels that are landed and stationary.
// Note: this does NOT check the status of the payload bay doors: it is the caller's responsibility to do that if desired.
// Returns: number of payload vessels deployed
virtual int DeployAllPayloadWhileLanded() = 0;

// contains data about an XR payload bay slot
struct XRPayloadSlotData
{
    VESSEL *hCargoModuleVessel; // Orbiter vessel handle of payload module attached in this slot; will be NULL if slot is empty
    XRVesselCtrl *pParentXRVessel;        // Orbiter vessel handle of the XR vessel to which this bay slot belongs
    ATTACHMENTHANDLE hXRAttachmentHandle; // XR vessel's attachment handle for this bay slot; will never be NULL
    int SlotNumber;             // 1-n
    VECTOR3 localCoordinates;   // XR-vessel-relative coordinates to the center of this payload slot
    bool IsOccupied;            // true if a payload module occupies this slot
    VECTOR3 Dimensions;         // width (X), height (Y), length (Z)
    int BayLevel;               // 1-n (will be one except for multi-level payload bays such as the XR5's)
};

  • Added the following new methods to the XRVesselCtrl 3.0 APIs:

Code:
// Enables or disables MWS test mode (i.e., same as pressing or releasing the 'Test' MWS button)
// Returns: previous state of MWS test mode
virtual bool SetMWSTest(bool bTestMode) = 0;

// Returns true if 'recenter the center-of-gravity' mode is enabled
virtual bool GetRecenterCOGMode() const = 0;

// Enable or disable 'recenter the center-of-gravity' mode.
// Returns: true on success, false if mode could not be set because no pilot is on board
virtual bool SetRecenterCOGMode(const bool bEnableRecenterMode) = 0;

// Returns the status of the external cooling line.
virtual XRDoorState GetExternalCoolingState() const = 0;

// Deploys or retracts the external cooling line and shows a success or failure message on the secondary HUD.
// Returns: true on success, false on error
virtual bool SetExternalCoolingState(const bool bEnabled) = 0;

// Sets fuel cross-feed mode and shows a status message on the secondary HUD
//   state: XF_MAIN, XF_OFF, or XF_RCS
// Returns: true on success, false if state is invalid or no crew members on board
virtual bool SetCrossFeedMode(XRXFEED_STATE state) = 0;

  • Added the following new XRSystemStatusRead fields to the XRVesselCtrl 3.0 APIs:
Code:
// Fields added in API version 3.0
bool MWSAlarmState;         // true = MWS alarm active, false = alarm silenced via alarm reset or no warning active
bool COGAutoMode;           // true = center-of-gravity shift in auto-mode because the Attitude Hold or Descent Hold autopilot is engaged
bool InternalSystemsFailure;// true = internal systems failed due to coolant overheat
double CenterOfGravity;     // CoG shift in meters: 0 = centered, < 0 is forward, > 0 is aft
double CabinO2Level;        // Oxygen fraction in cabin; nominal = .209 (20.9%)

double CoolantTemp;         // in degrees C
double NoseconeTemp;        // in Kelvin
double LeftWingTemp;        // in Kelvin
double RightWingTemp;       // in Kelvin
double CockpitTemp;         // external cockpit hull temperature in Kelvin
double TopHullTemp;         // in Kelvin

double MaxSafeNoseconeTemp; // in Kelvin
double MaxSafeWingTemp;     // in Kelvin
double MaxSafeCockpitTemp;  // in Kelvin
double MaxSafeTopHullTemp;  // in Kelvin

  • Fixed bug where having 'CONFIG_OVERRIDE_MainFuelISP' in the scenario file caused the XR vessel to behave as though 'EnableATMThrustReduction=0' was set in the XR configuration file. [Reported by Blixel]

  • Fixed bug where the engine efficiency indiciator would disappear when flying in extremely dense atmospheres (e.g., on Venus).

  • Cosmetic bugfix to set the XR5's landing gear to fully compressed when the gear collapses or the ship crashes. [Reported by Woo482]

  • You can now reset the MWS (Master Warning System) during replays. [Requested by Blixel]

  • Added code to automatically rescan the payload bay at regular intervals to detect when another add-on manually removed a payload vessel from the bay. [Requested by Russell Hicks.]

  • You can now use hotkeys in addition to mouse clicks to control the following XR instruments during replays:

Code:
CTRL-T        Toggle tertiary HUD on/off.
CTRL-[1-5]    Select secondary HUD mode.
CTRL-H        Hide/show HUD.
ALT-H         Switch to next HUD color.
CTRL-W        Reset the MWS (Master Warning System)
[0-9]         Select MDA mode.
D             Select next MDA mode.
ALT-D         Select previous MDA mode.

  • Fixed bug where fuel in a payload bay tank would sometimes vanish when added via the payload editor [Reported by Blixel]

As always, you can get the latest XR releases from my Web page.

EDIT 25-Aug-2013: The XR DLLs below were linked against Orbiter Beta 121103. Please see this post in the Orbiter-beta-compatible XR DLLs thread for the latest XR Orbiter-beta-compatible DLLs.

I have also built some Orbiter-beta-compatible XR DLL versions. To install one, simply drop the new XR DLL overtop of your existing XR DLL installed from the latest publicly-released XR version:

DeltaGliderXR1-1.11 DLL for Orbiter beta
XR2Ravenstar-1.6 DLL for Orbiter beta
XR5Vanguard-1.9 DLL for Orbiter beta

Known Orbiter Beta issues:

  • OrbiterSound does not play custom wav files under the Orbiter beta, so custom XR voice callouts and sound effects will not play. More information here.
  • XR vessel gear is sunk into the ground somewhat; this is purely a visual issue and will be fixed before new Orbiter version ships. It is occurring because the Orbiter core adjusts the vessel's touchdown points based on touchdown point compression.

Happy Orbiting! :tiphat:
 
Last edited:

Ripley

Tutorial translator
Donator
Joined
Sep 12, 2010
Messages
3,133
Reaction score
407
Points
123
Location
Rome
Website
www.tuttovola.org
Hi Doug.
Just wondering what was the reason for the latest versions tagged with an "a" and released on the 4th of May?

:cheers:
 

dbeachy1

O-F Administrator
Administrator
Orbiter Contributor
Addon Developer
Donator
Beta Tester
Joined
Jan 14, 2008
Messages
9,216
Reaction score
1,562
Points
203
Location
VA
Website
alteaaerospace.com
Preferred Pronouns
he/him
Just a minor bugfix that was reported by crisk73 two days after the new versions shipped -- it was a bug that was pre-existing for over a year at least:

1) With Orbiter auto-refueling enabled in the Launchpad, load a scenario where the XR vessel is landed on a landing pad.
2) Dump main fuel for a bit so it's noticeably lower on the gauge.
3) Lift off for a bit and then land on the pad again.
4) The main tank will be auto-refueled by Orbiter to whatever level it was before the fuel was dumped.

Due to the nature of the bug it was also possible that the XR vessel could be auto-refueled by Orbiter in certain other situations when landing on a pad. Since I didn't want to wait for the next release to fix that and the new maintenance releases had just gone out I went ahead and fixed the bug and uploaded the 'a' patch versions. :tiphat:
 

Deep Blue

New member
Joined
Jun 21, 2010
Messages
14
Reaction score
0
Points
0
I was wondering which version was the beta dll's compiled against. Trying to run it on the latest beta (r.20 or 130101) yields a crash, but it works on 121103.
 

dbeachy1

O-F Administrator
Administrator
Orbiter Contributor
Addon Developer
Donator
Beta Tester
Joined
Jan 14, 2008
Messages
9,216
Reaction score
1,562
Points
203
Location
VA
Website
alteaaerospace.com
Preferred Pronouns
he/him
That's because this is an old thread. :) The updated XR versions for the latest Orbiter beta are in this post in the Orbiter-beta-compatible XR DLLs thread.

I'll add a note to the old beta links in this thread.
 

wehaveaproblem

One step closer
Addon Developer
Donator
Joined
May 18, 2008
Messages
913
Reaction score
0
Points
16
Location
London
Website
wehaveaproblem.wordpress.com
Doug, you 'credit' me for requesting 2 of the new additions... Out of curiosity, when did I request these? I have no recollection of it lol... But I do have a habit of forgetting most things... Cheers for adding them, I'll try and remember why I wanted them. :tiphat:
 

dbeachy1

O-F Administrator
Administrator
Orbiter Contributor
Addon Developer
Donator
Beta Tester
Joined
Jan 14, 2008
Messages
9,216
Reaction score
1,562
Points
203
Location
VA
Website
alteaaerospace.com
Preferred Pronouns
he/him
Doug, you 'credit' me for requesting 2 of the new additions... Out of curiosity, when did I request these? I have no recollection of it lol... But I do have a habit of forgetting most things... Cheers for adding them, I'll try and remember why I wanted them. :tiphat:

You requested them in an email dated 5-Aug-2012. It started like this:

wehaveaproblem said:
Hey Doug,

Hope this email finds things going well for you.

There are a couple features I request be added to the next version of the interface to complete making a couple panels I have installed fully functional. I hope you can find some time to take a look.

<snip>

:)
 

dbeachy1

O-F Administrator
Administrator
Orbiter Contributor
Addon Developer
Donator
Beta Tester
Joined
Jan 14, 2008
Messages
9,216
Reaction score
1,562
Points
203
Location
VA
Website
alteaaerospace.com
Preferred Pronouns
he/him
Oops, turns out I had the wrong username in my notes! I'll update the release notes above. :p
 
Top