119 lines
1.8 KiB
C++
119 lines
1.8 KiB
C++
#pragma once
|
|
|
|
/**
|
|
* \file BlitzConfig.h
|
|
* \brief File containing the blitz::BlitzConfig class
|
|
*/
|
|
|
|
#include "blitz/game/Game.h"
|
|
#include <array>
|
|
#include <string>
|
|
|
|
namespace blitz {
|
|
|
|
/**
|
|
* \enum KeyAction
|
|
* \brief Enum containing the key actions
|
|
*/
|
|
enum KeyAction {
|
|
kaAvancer = 0,
|
|
kaReculer,
|
|
kaDroite,
|
|
kaGauche,
|
|
kaFenetreAdmin,
|
|
kaMax,
|
|
};
|
|
|
|
typedef std::array<int, kaMax> Keybinds;
|
|
|
|
/**
|
|
* \class BlitzConfig
|
|
* \brief Class used to manage the Blitz configuration
|
|
*/
|
|
class BlitzConfig {
|
|
private:
|
|
std::array<char, 20> m_Pseudo;
|
|
game::GameConfig m_ServerConfig;
|
|
bool m_VSync;
|
|
bool m_DisplayFps;
|
|
Keybinds m_Keybinds{};
|
|
float m_MouseSpeed;
|
|
|
|
public:
|
|
/**
|
|
* \brief Default constructor
|
|
*/
|
|
BlitzConfig();
|
|
~BlitzConfig();
|
|
|
|
std::array<char, 20>& GetPseudo() {
|
|
return m_Pseudo;
|
|
}
|
|
|
|
/**
|
|
* \brief Return whether VSync is enabled
|
|
*/
|
|
bool IsVSyncEnabled() const {
|
|
return m_VSync;
|
|
}
|
|
|
|
/**
|
|
* \brief Set whether VSync is enabled
|
|
*/
|
|
void SetVSync(bool vsync) {
|
|
m_VSync = vsync;
|
|
}
|
|
|
|
/**
|
|
* \brief Return whether the FPS display is enabled
|
|
*/
|
|
bool IsFPSDisplayEnabled() const {
|
|
return m_DisplayFps;
|
|
}
|
|
|
|
/**
|
|
* \brief Set whether the FPS display is enabled
|
|
*/
|
|
void SetFPSDisplay(bool display) {
|
|
m_DisplayFps = display;
|
|
}
|
|
|
|
/**
|
|
* \brief Get the keybinds
|
|
* \return The keybinds
|
|
*/
|
|
Keybinds& GetKeys() {
|
|
return m_Keybinds;
|
|
}
|
|
|
|
/**
|
|
* \brief Get the mouse speed
|
|
* \return The mouse speed
|
|
*/
|
|
float GetMouseSpeed() const {
|
|
return m_MouseSpeed;
|
|
}
|
|
|
|
/**
|
|
* \brief Set the mouse speed
|
|
*/
|
|
void SetMouseSpeed(float MouseSpeed) {
|
|
m_MouseSpeed = MouseSpeed;
|
|
}
|
|
|
|
/**
|
|
* \brief Get the server configuration
|
|
* \return The server configuration
|
|
*/
|
|
game::GameConfig& GetServerConfig() {
|
|
return m_ServerConfig;
|
|
}
|
|
|
|
private:
|
|
void LoadConfig();
|
|
void LoadDefaultConfig();
|
|
void SaveConfig();
|
|
};
|
|
|
|
} // namespace blitz
|