Browse Source

Allow to customize shown splash in diablo.ini

pull/3643/head
obligaron 4 years ago committed by Anders Jenbo
parent
commit
bcc20a2c90
  1. 6
      Source/diablo.cpp
  2. 17
      Source/options.cpp
  3. 19
      Source/options.h

6
Source/diablo.cpp

@ -970,7 +970,8 @@ void DiabloSplash()
if (!gbShowIntro)
return;
play_movie("gendata\\logo.smk", true);
if (*sgOptions.StartUp.splash == StartUpSplash::LogoAndTitleDialog)
play_movie("gendata\\logo.smk", true);
if (gbIsHellfire && *sgOptions.Hellfire.intro) {
play_movie("gendata\\Hellfire.smk", true);
@ -979,7 +980,8 @@ void DiabloSplash()
play_movie("gendata\\diablo1.smk", true);
}
UiTitleDialog();
if (IsAnyOf(*sgOptions.StartUp.splash, StartUpSplash::TitleDialog, StartUpSplash::LogoAndTitleDialog))
UiTitleDialog();
}
void DiabloDeinit()

17
Source/options.cpp

@ -558,6 +558,23 @@ string_view OptionCategoryBase::GetDescription() const
return _(description.data());
}
StartUpOptions::StartUpOptions()
: OptionCategoryBase("StartUp", N_("Start Up"), N_("Start Up Settings"))
, splash("Splash", OptionEntryFlags::None, N_("Splash"), N_("Shown splash screen."), StartUpSplash::LogoAndTitleDialog,
{
{ StartUpSplash::LogoAndTitleDialog, N_("Logo and Title Screen") },
{ StartUpSplash::TitleDialog, N_("Title Screen") },
{ StartUpSplash::None, N_("None") },
})
{
}
std::vector<OptionEntryBase *> StartUpOptions::GetEntries()
{
return {
&splash,
};
}
DiabloOptions::DiabloOptions()
: OptionCategoryBase("Diablo", N_("Diablo"), N_("Diablo specific Settings"))
, intro("Intro", OptionEntryFlags::OnlyDiablo, N_("Intro"), N_("Enable/disable Intro cinematic."), true)

19
Source/options.h

@ -16,6 +16,16 @@ enum class StartUpGameOption {
Diablo,
};
/** @brief Defines what splash screen should be shown at startup. */
enum class StartUpSplash {
/** @brief Show no splash screen. */
None = 0,
/** @brief Show only TitleDialog. */
TitleDialog = 1,
/** @brief Show Logo and TitleDialog. */
LogoAndTitleDialog = 2,
};
enum class ScalingQuality {
NearestPixel,
BilinearFiltering,
@ -178,6 +188,13 @@ protected:
string_view description;
};
struct StartUpOptions : OptionCategoryBase {
StartUpOptions();
std::vector<OptionEntryBase *> GetEntries() override;
OptionEntryEnum<StartUpSplash> splash;
};
struct DiabloOptions : OptionCategoryBase {
DiabloOptions();
std::vector<OptionEntryBase *> GetEntries() override;
@ -366,6 +383,7 @@ struct LanguageOptions : OptionCategoryBase {
};
struct Options {
StartUpOptions StartUp;
DiabloOptions Diablo;
HellfireOptions Hellfire;
AudioOptions Audio;
@ -379,6 +397,7 @@ struct Options {
[[nodiscard]] std::vector<OptionCategoryBase *> GetCategories()
{
return {
&StartUp,
&Diablo,
&Hellfire,
&Audio,

Loading…
Cancel
Save