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
}