Files
coffee-crisis-ae/source/game/gameplay/difficulty.cpp
T

39 lines
1.3 KiB
C++

#include "game/gameplay/difficulty.hpp"
#include <algorithm> // Para ranges::find_if
#include <vector> // Para vector
namespace Difficulty {
static std::vector<Info> difficulties_list;
void init() {
difficulties_list = {
{.code = Code::EASY, .name = "Easy"},
{.code = Code::NORMAL, .name = "Normal"},
{.code = Code::HARD, .name = "Hard"}};
}
auto getDifficulties() -> std::vector<Info>& {
return difficulties_list;
}
auto getNameFromCode(Code code) -> std::string {
const auto IT = std::ranges::find_if(difficulties_list,
[code](const auto& difficulty) { return difficulty.code == code; });
if (IT != difficulties_list.end()) {
return IT->name;
}
return !difficulties_list.empty() ? difficulties_list.front().name : "Unknown";
}
auto getCodeFromName(const std::string& name) -> Code {
const auto IT = std::ranges::find_if(difficulties_list,
[&name](const auto& difficulty) { return difficulty.name == name; });
if (IT != difficulties_list.end()) {
return IT->code;
}
return !difficulties_list.empty() ? difficulties_list.front().code : Code::NORMAL;
}
} // namespace Difficulty