holesome/src/game/input/input_mapper.cpp

49 lines
1.1 KiB
C++
Raw Normal View History

#include "input_mapper.h"
InputMapper::InputMapper(Game *game) : game(game)
{
}
void InputMapper::processEvents()
{
sf::Event event{};
while (game->window->pollEvent(event))
{
switch (event.type)
{
case sf::Event::KeyPressed:
handleKeyPress(event.key);
break;
case sf::Event::KeyReleased:
break;
case sf::Event::Closed:
game->exit();
break;
case sf::Event::Resized:
game->window->setView(sf::View(sf::FloatRect(0, 0, event.size.width, event.size.height)));
break;
default:
break;
}
}
}
void InputMapper::handleKeyPress(sf::Event::KeyEvent event)
{
// Close game on Escape or Q in DEV Mode
if (DEVELOPER_MODE && (event.code == sf::Keyboard::Escape || event.code == sf::Keyboard::Q))
{
game->exit();
return;
}
// Move view
auto direction = Direction::getDirection(event.code);
if (direction != InputDirection::NONE)
{
game->actionController->moveView(direction);
}
}