You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
#include "game_mode.hpp"
|
|
|
|
|
|
|
|
|
|
#include <function_ref.hpp>
|
|
|
|
|
|
|
|
|
|
#include "options.h"
|
|
|
|
|
|
|
|
|
|
namespace devilution {
|
|
|
|
|
namespace {
|
|
|
|
|
std::vector<tl::function_ref<void()>> IsHellfireChangeHandlers;
|
|
|
|
|
|
|
|
|
|
void OptionGameModeChanged()
|
|
|
|
|
{
|
|
|
|
|
gbIsHellfire = *GetOptions().GameMode.gameMode == StartUpGameMode::Hellfire;
|
|
|
|
|
for (tl::function_ref<void()> handler : IsHellfireChangeHandlers) {
|
|
|
|
|
handler();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const auto OptionChangeHandlerGameMode = (GetOptions().GameMode.gameMode.SetValueChangedCallback(OptionGameModeChanged), true);
|
|
|
|
|
|
|
|
|
|
void OptionSharewareChanged()
|
|
|
|
|
{
|
|
|
|
|
gbIsSpawn = *GetOptions().GameMode.shareware;
|
|
|
|
|
}
|
|
|
|
|
const auto OptionChangeHandlerShareware = (GetOptions().GameMode.shareware.SetValueChangedCallback(OptionSharewareChanged), true);
|
|
|
|
|
} // namespace
|
|
|
|
|
|
|
|
|
|
bool gbIsSpawn;
|
|
|
|
|
bool gbIsHellfire;
|
|
|
|
|
bool gbVanilla;
|
|
|
|
|
bool forceHellfire;
|
|
|
|
|
|
|
|
|
|
void AddIsHellfireChangeHandler(tl::function_ref<void()> callback)
|
|
|
|
|
{
|
|
|
|
|
IsHellfireChangeHandlers.push_back(callback);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} // namespace devilution
|