ComponentVersions

Tracking Issue: #765

Both the Highlander and mods using it may be interested in whether replacements for base game packages ("components") are installed, and if, which version. This can be used to

  • Behave differently depending on whether a HL feature is available
  • Provide more targeted error messages when a certain HL version is required

For example, if you are interested in whether version 1.19.0 of the Highlander is correctly enabled, you can use the following:

if (class'CHXComGameVersionTemplate' != none
    && (class'CHXComGameVersionTemplate'.default.MajorVersion > 1
        || (class'CHXComGameVersionTemplate'.default.MajorVersion == 1
            && class'CHXComGameVersionTemplate'.default.MinorVersion >= 19)
        )
    )
{
    // Installed, do thing A
}
else
{
    // Not installed or wrong version, do thing B
}

For other classes, see Source code references below.

Note that you can employ feature-based detection if the feature can be distinguished by the presence of a certain function or property. For example, OverrideUnitFocusUI can be detected with the following trick:

if (Function'XComGame.CHHelpers.GetFocusTuple' != none)
{
    // Feature present
}
else
{
    // Feature absent
}

Source code references