implement demolish button

This commit is contained in:
2026-04-21 21:12:17 +02:00
parent f2c9685ce0
commit 4c7b2fdcee
5 changed files with 42 additions and 10 deletions

View File

@@ -901,16 +901,7 @@ void GameWorldView::keyPressEvent(QKeyEvent* event)
emit escapeMenuRequested();
break;
case Qt::Key_Backspace:
if (m_demolishMode)
{
m_demolishMode = false;
m_demolishHoverId = kInvalidEntityId;
}
else
{
if (m_builderType.has_value()) { exitBuilderMode(); }
m_demolishMode = true;
}
toggleDemolishMode();
break;
default:
QOpenGLWidget::keyPressEvent(event);
@@ -1090,12 +1081,28 @@ void GameWorldView::mouseReleaseEvent(QMouseEvent* event)
// Slots
// ---------------------------------------------------------------------------
void GameWorldView::toggleDemolishMode()
{
if (m_demolishMode)
{
m_demolishMode = false;
m_demolishHoverId = kInvalidEntityId;
}
else
{
if (m_builderType.has_value()) { exitBuilderMode(); }
m_demolishMode = true;
}
emit demolishModeChanged(m_demolishMode);
}
void GameWorldView::enterBuilderMode(BuildingType type)
{
m_builderType = type;
m_ghostRotation = Rotation::East;
m_ghostValid = false;
m_demolishMode = false;
emit demolishModeChanged(false);
}
void GameWorldView::exitBuilderMode()
@@ -1128,6 +1135,7 @@ void GameWorldView::resetForNewGame()
m_ghostValid = false;
m_demolishMode = false;
m_demolishHoverId = kInvalidEntityId;
emit demolishModeChanged(false);
m_selectedIds.clear();
m_boxSelecting = false;
m_scrollXTiles = 0.0f;