2023-05-07 12:27:11 +02:00
|
|
|
#include "input_mapper.h"
|
|
|
|
|
|
|
|
|
2023-05-08 18:20:55 +02:00
|
|
|
void InputMapper::setGame(Game *game)
|
2023-05-07 12:27:11 +02:00
|
|
|
{
|
2023-05-08 18:20:55 +02:00
|
|
|
InputMapper::game = game;
|
2023-05-07 12:27:11 +02:00
|
|
|
}
|
|
|
|
|
2023-05-08 18:20:55 +02:00
|
|
|
|
2023-05-07 12:27:11 +02:00
|
|
|
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);
|
|
|
|
}
|
|
|
|
}
|