Skip to content
Snippets Groups Projects

Ui components

1 file
+ 18
0
Compare changes
  • Side-by-side
  • Inline
+ 18
0
@@ -395,11 +395,29 @@ void Level::handleMovementEvents(Engine& engine, SDL_Event& event)
@@ -395,11 +395,29 @@ void Level::handleMovementEvents(Engine& engine, SDL_Event& event)
case SDL_KEYDOWN:
case SDL_KEYDOWN:
if (event.key.keysym.sym == SDLK_RETURN)
if (event.key.keysym.sym == SDLK_RETURN)
{
{
 
std::pair<int, int> tilePos = m_currentPos.getPosition();
 
for (auto& [id, unit] : m_units)
 
{
 
if (unit.m_x == tilePos.first && unit.m_y == tilePos.second)
 
{
 
// unit already at clicked position (maybe even selected unit)
 
std::cout << "Unit already at clicked position" << std::endl;
 
return;
 
}
 
}
 
m_units.at(m_selectedUnit).updatePosition(tilePos.first, tilePos.second);
 
m_selectedUnit = -1;
 
m_state = LevelState::SELECTING_STATE;
 
}
}
if (event.key.keysym.sym == SDLK_ESCAPE)
if (event.key.keysym.sym == SDLK_ESCAPE)
{
{
m_state = LevelState::MENUACTIVE_STATE;
m_state = LevelState::MENUACTIVE_STATE;
}
}
 
if(event.key.keysym.sym == SDLK_UP || event.key.keysym.sym == SDLK_DOWN || event.key.keysym.sym == SDLK_LEFT || event.key.keysym.sym == SDLK_RIGHT)
 
{
 
m_currentPos.handleEvent(engine, event);
 
}
break;
break;
case SDL_MOUSEBUTTONDOWN:
case SDL_MOUSEBUTTONDOWN:
if (event.button.button == SDL_BUTTON_LEFT)
if (event.button.button == SDL_BUTTON_LEFT)
Loading