39 lines
1.3 KiB
C++
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
|