Animation safety.

Took 12 minutes
This commit is contained in:
Lukas Brübach 2025-09-15 19:11:56 +02:00
parent f4fbe90a72
commit 7b47b5992f
2 changed files with 5 additions and 2 deletions

View file

@ -54,9 +54,9 @@ void CardItem::prepareDelete()
void CardItem::deleteLater()
{
prepareDelete();
if (scene())
static_cast<GameScene *>(scene())->unregisterAnimationItem(this);
prepareDelete();
AbstractCardItem::deleteLater();
}

View file

@ -304,8 +304,11 @@ void GameScene::timerEvent(QTimerEvent * /*event*/)
QMutableSetIterator<CardItem *> i(cardsToAnimate);
while (i.hasNext()) {
i.next();
if (!i.value()->animationEvent())
if (i.value() == nullptr) {
i.remove();
} else if (!i.value()->animationEvent()) {
i.remove();
}
}
if (cardsToAnimate.isEmpty())
animationTimer->stop();