diff --git a/src/saveload/extended_ver_sl.cpp b/src/saveload/extended_ver_sl.cpp index 159a254f7e..84d799836e 100644 --- a/src/saveload/extended_ver_sl.cpp +++ b/src/saveload/extended_ver_sl.cpp @@ -61,13 +61,9 @@ bool SlXvFeatureTest::IsFeaturePresent(uint16 savegame_version, uint16 savegame_ { bool savegame_version_ok = savegame_version >= savegame_version_from && savegame_version <= savegame_version_to; - SlXvFeatureIndex feature = static_cast(GB(this->value, 0, 16)); - if (feature == XSLFI_NULL) return savegame_version_ok; + if (this->feature == XSLFI_NULL) return savegame_version_ok; - uint16 min_version = GB(this->value, 16, 16); - uint16 max_version = GB(this->value, 32, 16); - SlXvFeatureTestOperator op = static_cast(GB(this->value, 48, 16)); - bool feature_ok = SlXvIsFeaturePresent(feature, min_version, max_version); + bool feature_ok = SlXvIsFeaturePresent(this->feature, this->min_version, this->max_version); switch (op) { case XSLFTO_OR: diff --git a/src/saveload/extended_ver_sl.h b/src/saveload/extended_ver_sl.h index 3290a01b40..0f43eb9f3e 100644 --- a/src/saveload/extended_ver_sl.h +++ b/src/saveload/extended_ver_sl.h @@ -41,20 +41,17 @@ enum SlXvFeatureTestOperator { */ struct SlXvFeatureTest { private: - uint64 value; + uint16 min_version; + uint16 max_version; + SlXvFeatureIndex feature; + SlXvFeatureTestOperator op; public: SlXvFeatureTest() - : value(0) { } + : min_version(0), max_version(0), feature(XSLFI_NULL), op(XSLFTO_OR) { } - SlXvFeatureTest(SlXvFeatureTestOperator op, SlXvFeatureIndex feature, uint16 min_version = 1, uint16 max_version = 0xFFFF) - { - this->value = 0; - SB(this->value, 0, 16, feature); - SB(this->value, 16, 16, min_version); - SB(this->value, 32, 16, max_version); - SB(this->value, 48, 16, op); - } + SlXvFeatureTest(SlXvFeatureTestOperator op_, SlXvFeatureIndex feature_, uint16 min_version_ = 1, uint16 max_version_ = 0xFFFF) + : min_version(min_version_), max_version(max_version_), feature(feature_), op(op_) { } bool IsFeaturePresent(uint16 savegame_version, uint16 savegame_version_from, uint16 savegame_version_to) const; };