Add collision events and fix a few bugs when objects are renamed/deleted

This commit is contained in:
feedc0de committed 2023-12-29 17:48:21 +01:00
1 parent 95d1936a5f
commit 42575e5d5a
14 files changed
+416 -97

No files matched your search

+21 -15
View File
@@ -343,29 +343,35 @@ void RoomPropertiesDialog::spritePixmapsChanged(const Sprite &sprite)
m_ui->labelObjectPreview->setPixmap(std::move(pixmap));
}
void RoomPropertiesDialog::objectNameChanged(const Object &object)
void RoomPropertiesDialog::objectNameChanged(const Object &object, const QString &oldName)
{
if (!m_selectedObject)
return;
if (m_selectedObject && &object == m_selectedObject)
m_ui->lineEditObject->setText(object.name);
if (&object != m_selectedObject)
return;
for (auto &obj : m_objects)
{
if (obj.objectName != oldName)
continue;
m_ui->lineEditObject->setText(object.name);
obj.objectName = object.name;
}
}
void RoomPropertiesDialog::objectAboutToBeRemoved(const Object &object)
{
if (!m_selectedObject)
return;
if (m_selectedObject && &object == m_selectedObject)
{
m_selectedObject = nullptr;
m_ui->lineEditObject->clear();
m_ui->labelObjectPreview->setPixmap({});
m_ui->roomEditWidget->setSelectedObject(nullptr);
}
if (&object != m_selectedObject)
return;
m_selectedObject = nullptr;
m_ui->lineEditObject->clear();
m_ui->labelObjectPreview->setPixmap({});
m_ui->roomEditWidget->setSelectedObject(nullptr);
for (auto iter = std::begin(m_objects); iter != std::end(m_objects);)
if (iter->objectName == object.name)
iter = m_objects.erase(iter);
else
iter++;
}
void RoomPropertiesDialog::objectSpriteNameChanged(const Object &object)