#include "SynEngine.hpp" class GameConfiguration; class Grid; class GameManager { private: static GameConfiguration *config; static unsigned lastInputDirection; static sf::Vector2i lastInputVector; static Grid *grid; public: static Timer timer; static void KeyPress(sf::Keyboard::Key); static void SetConfig(GameConfiguration &); static GameConfiguration *GetConfig(); static void SetGrid(Grid &); static Grid &GetGrid(); static sf::Vector2i GetInputVector(); static unsigned GetInputDirection(); }; GameConfiguration *GameManager::config = NULL; Grid *GameManager::grid = NULL; unsigned GameManager::lastInputDirection = 0; sf::Vector2i GameManager::lastInputVector = sf::Vector2i(1, 0); void GameManager::KeyPress(sf::Keyboard::Key keycode) { switch (keycode) { case sf::Keyboard::Key::Up: case sf::Keyboard::Key::W: GameManager::lastInputDirection = 3; GameManager::lastInputVector = sf::Vector2i(0, 1); break; case sf::Keyboard::Key::Left: case sf::Keyboard::Key::A: GameManager::lastInputDirection = 2; GameManager::lastInputVector = sf::Vector2i(-1, 0); break; case sf::Keyboard::Key::Down: case sf::Keyboard::Key::S: GameManager::lastInputDirection = 1; GameManager::lastInputVector = sf::Vector2i(0, -1); break; case sf::Keyboard::Key::Right: case sf::Keyboard::Key::D: GameManager::lastInputDirection = 0; GameManager::lastInputVector = sf::Vector2i(1, 0); break; } } sf::Vector2i GameManager::GetInputVector() { return GameManager::lastInputVector; } unsigned GameManager::GetInputDirection() { return GameManager::lastInputDirection; } void GameManager::SetConfig(GameConfiguration &config) { GameManager::config = &config; } GameConfiguration *GameManager::GetConfig() { return GameManager::config; } void GameManager::SetGrid(Grid &grid) { GameManager::grid = &grid; } Grid &GameManager::GetGrid() { return *GameManager::grid; }