Browse Source

Add OptionEntryFlags::NeedDiabloMpq/NeedHellfireMpq

pull/3662/head
obligaron 4 years ago committed by Anders Jenbo
parent
commit
20fbd46886
  1. 7
      Source/DiabloUI/settingsmenu.cpp
  2. 4
      Source/options.h

7
Source/DiabloUI/settingsmenu.cpp

@ -32,7 +32,12 @@ enum class SpecialMenuEntry {
bool IsValidEntry(OptionEntryBase *pOptionEntry)
{
return HasNoneOf(pOptionEntry->GetFlags(), OptionEntryFlags::Invisible | (gbIsHellfire ? OptionEntryFlags::OnlyDiablo : OptionEntryFlags::OnlyHellfire));
auto flags = pOptionEntry->GetFlags();
if (HasAnyOf(flags, OptionEntryFlags::NeedDiabloMpq) && !diabdat_mpq)
return false;
if (HasAnyOf(flags, OptionEntryFlags::NeedHellfireMpq) && !hellfire_mpq)
return false;
return HasNoneOf(flags, OptionEntryFlags::Invisible | (gbIsHellfire ? OptionEntryFlags::OnlyDiablo : OptionEntryFlags::OnlyHellfire));
}
std::vector<DrawStringFormatArg> CreateDrawStringFormatArgForEntry(OptionEntryBase *pEntry)

4
Source/options.h

@ -58,6 +58,10 @@ enum class OptionEntryFlags {
OnlyDiablo = 1 << 4,
/** @brief After option is changed the UI needs to be recreated. */
RecreateUI = 1 << 5,
/** @brief diablo.mpq must be present. */
NeedDiabloMpq = 1 << 6,
/** @brief hellfire.mpq must be present. */
NeedHellfireMpq = 1 << 7,
};
use_enum_as_flags(OptionEntryFlags);

Loading…
Cancel
Save