mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-09 15:54:47 -07:00
improved card drag, still unfinished
This commit is contained in:
parent
2e0b16e90b
commit
9749423d62
8 changed files with 67 additions and 78 deletions
|
|
@ -19,14 +19,18 @@ void TableZone::paint(QPainter *painter, const QStyleOptionGraphicsItem */*optio
|
|||
painter->fillRect(boundingRect(), QColor(0, 0, 100));
|
||||
}
|
||||
|
||||
void TableZone::addCardImpl(CardItem *card, int x, int y)
|
||||
void TableZone::addCardImpl(CardItem *card, int _x, int _y)
|
||||
{
|
||||
QPointF mapPoint = mapFromGrid(QPoint(_x, _y));
|
||||
qreal x = mapPoint.x();
|
||||
qreal y = mapPoint.y();
|
||||
|
||||
cards->append(card);
|
||||
if ((x != -1) && (y != -1)) {
|
||||
// if ((x != -1) && (y != -1)) {
|
||||
if (!player->getLocal())
|
||||
y = height - CARD_HEIGHT - y;
|
||||
card->setPos(x, y);
|
||||
}
|
||||
// }
|
||||
card->setZValue((y + CARD_HEIGHT) * width + x + 1000);
|
||||
qDebug(QString("table: appended %1 at pos %2: zValue = %3, x = %4, y = %5").arg(card->getName()).arg(cards->size() - 1).arg(card->zValue()).arg(x).arg(y).toLatin1());
|
||||
card->setParentItem(this);
|
||||
|
|
@ -36,17 +40,8 @@ void TableZone::addCardImpl(CardItem *card, int x, int y)
|
|||
|
||||
void TableZone::handleDropEvent(int cardId, CardZone *startZone, const QPoint &dropPoint, bool faceDown)
|
||||
{
|
||||
int x = dropPoint.x();
|
||||
int y = dropPoint.y();
|
||||
if (x < 0)
|
||||
x = 0;
|
||||
if (y < 0)
|
||||
y = 0;
|
||||
if (x > width - CARD_WIDTH)
|
||||
x = width - CARD_WIDTH;
|
||||
if (y > height - CARD_HEIGHT)
|
||||
y = height - CARD_HEIGHT;
|
||||
player->client->moveCard(cardId, startZone->getName(), getName(), x, y, faceDown);
|
||||
QPoint gridPoint = mapToGrid(dropPoint);
|
||||
player->client->moveCard(cardId, startZone->getName(), getName(), gridPoint.x(), gridPoint.y(), faceDown);
|
||||
}
|
||||
|
||||
void TableZone::reorganizeCards()
|
||||
|
|
@ -67,3 +62,30 @@ void TableZone::toggleTapped()
|
|||
setCardAttr(temp->getId(), "tapped", (!temp->getTapped() || tapAll) ? "1" : "0");
|
||||
}
|
||||
}
|
||||
|
||||
CardItem *TableZone::getCardFromGrid(const QPoint &gridPoint) const
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QPointF TableZone::mapFromGrid(const QPoint &gridPoint) const
|
||||
{
|
||||
return QPointF(gridPoint.x() * CARD_WIDTH / gridPointsPerCardX,
|
||||
gridPoint.y() * CARD_HEIGHT / gridPointsPerCardY);
|
||||
}
|
||||
|
||||
QPoint TableZone::mapToGrid(const QPointF &mapPoint) const
|
||||
{
|
||||
qreal x = mapPoint.x();
|
||||
qreal y = mapPoint.y();
|
||||
if (x < 0)
|
||||
x = 0;
|
||||
else if (x > width - CARD_WIDTH)
|
||||
x = width - CARD_WIDTH;
|
||||
if (y < 0)
|
||||
y = 0;
|
||||
else if (y > height - CARD_HEIGHT)
|
||||
y = height - CARD_HEIGHT;
|
||||
|
||||
return QPoint(round(((double) x * gridPointsPerCardX) / CARD_WIDTH), round(((double) y * gridPointsPerCardY) / CARD_HEIGHT));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue