Commit 55e7feee authored by Max-Wilhelm Bruker's avatar Max-Wilhelm Bruker
Browse files

fix

parent 2cf57ad9
...@@ -153,21 +153,31 @@ bool GameScene::event(QEvent *event) ...@@ -153,21 +153,31 @@ bool GameScene::event(QEvent *event)
} }
QList<QGraphicsItem *> itemList = items(mouseEvent->scenePos()); QList<QGraphicsItem *> itemList = items(mouseEvent->scenePos());
qreal maxZ = 0;
CardItem *maxZCard = 0; // Search for the topmost zone and ignore all cards not belonging to that zone.
QList<CardItem *> cardList; CardZone *zone = 0;
for (int i = 0; i < itemList.size(); ++i) { for (int i = 0; i < itemList.size(); ++i)
CardItem *card = qgraphicsitem_cast<CardItem *>(itemList[i]); if ((zone = qgraphicsitem_cast<CardZone *>(itemList[i])))
if (!card) break;
continue; if (zone) {
cardList.append(card); qreal maxZ = -1;
if (card->getRealZValue() > maxZ) { CardItem *maxZCard = 0;
maxZ = card->getRealZValue(); QList<CardItem *> cardList;
maxZCard = card; for (int i = 0; i < itemList.size(); ++i) {
CardItem *card = qgraphicsitem_cast<CardItem *>(itemList[i]);
if (!card)
continue;
if (card->getZone() != zone)
continue;
cardList.append(card);
if (card->getRealZValue() > maxZ) {
maxZ = card->getRealZValue();
maxZCard = card;
}
} }
for (int i = 0; i < cardList.size(); ++i)
cardList[i]->setZValue(cardList[i] == maxZCard ? 2000000004 : cardList[i]->getRealZValue());
} }
for (int i = 0; i < cardList.size(); ++i)
cardList[i]->setZValue(cardList[i] == maxZCard ? 2000000004 : cardList[i]->getRealZValue());
} }
return QGraphicsScene::event(event); return QGraphicsScene::event(event);
} }
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment