Files
coffee_crisis_arcade_edition/source/difficulty.h

52 lines
1.1 KiB
C++

#pragma once
#include <string>
#include <vector>
namespace Difficulty {
/**
* @brief Códigos que identifican unívocamente cada nivel de dificultad.
*/
enum class Code {
EASY = 0,
NORMAL = 1,
HARD = 2,
};
/**
* @brief Estructura que asocia un código de dificultad con su nombre traducible.
*/
struct Info {
Code code;
std::string name;
};
// --- Interfaz Pública ---
/**
* @brief Inicializa la lista de dificultades con sus valores por defecto.
*/
void init();
/**
* @brief Devuelve una referencia al vector de todas las dificultades para su lectura o modificación.
* @return Referencia a `std::vector<Info>&`.
*/
auto getDifficulties() -> std::vector<Info>&;
/**
* @brief Obtiene el nombre de una dificultad a partir de su código.
* @param code El código de la dificultad.
* @return El nombre de la dificultad.
*/
auto getNameFromCode(Code code) -> std::string;
/**
* @brief Obtiene el código de una dificultad a partir de su nombre.
* @param name El nombre de la dificultad.
* @return El código de la dificultad.
*/
auto getCodeFromName(const std::string& name) -> Code;
} // namespace Difficulty