Merge pull request #1166 from ctrlaltca/fix_232
Support <tablerow> for tokens; fix #232
This commit is contained in:
commit
d2b71a15fa
4 changed files with 21 additions and 5 deletions
|
@ -102,6 +102,7 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, TabGame *_pare
|
|||
shortcutsActive(false),
|
||||
defaultNumberTopCards(1),
|
||||
lastTokenDestroy(true),
|
||||
lastTokenTableRow(0),
|
||||
id(_id),
|
||||
active(false),
|
||||
local(_local),
|
||||
|
@ -1035,6 +1036,7 @@ void Player::actCreateToken()
|
|||
lastTokenPT = dlg.getPT();
|
||||
if (CardInfo *correctedCard = db->getCardBySimpleName(lastTokenName, false)) {
|
||||
lastTokenName = correctedCard->getName();
|
||||
lastTokenTableRow = table->clampValidTableRow(2 - correctedCard->getTableRow());
|
||||
if (lastTokenPT.isEmpty())
|
||||
lastTokenPT = correctedCard->getPowTough();
|
||||
}
|
||||
|
@ -1056,7 +1058,7 @@ void Player::actCreateAnotherToken()
|
|||
cmd.set_annotation(lastTokenAnnotation.toStdString());
|
||||
cmd.set_destroy_on_zone_change(lastTokenDestroy);
|
||||
cmd.set_x(-1);
|
||||
cmd.set_y(0);
|
||||
cmd.set_y(lastTokenTableRow);
|
||||
|
||||
sendGameCommand(cmd);
|
||||
}
|
||||
|
@ -1070,6 +1072,7 @@ void Player::actCreatePredefinedToken()
|
|||
lastTokenColor = cardInfo->getColors().isEmpty() ? QString() : cardInfo->getColors().first().toLower();
|
||||
lastTokenPT = cardInfo->getPowTough();
|
||||
lastTokenAnnotation = cardInfo->getText();
|
||||
lastTokenTableRow = table->clampValidTableRow(2 - cardInfo->getTableRow());
|
||||
lastTokenDestroy = true;
|
||||
aCreateAnotherToken->setEnabled(true);
|
||||
|
||||
|
@ -1657,7 +1660,7 @@ void Player::playCard(CardItem *c, bool faceDown, bool tapped)
|
|||
cmd.set_y(0);
|
||||
} else {
|
||||
int tableRow = faceDown ? 2 : ci->getTableRow();
|
||||
QPoint gridPoint = QPoint(-1, 2 - tableRow);
|
||||
QPoint gridPoint = QPoint(-1, table->clampValidTableRow(2 - tableRow));
|
||||
cardToMove->set_face_down(faceDown);
|
||||
cardToMove->set_pt(ci->getPowTough().toStdString());
|
||||
cardToMove->set_tapped(faceDown ? false : tapped);
|
||||
|
|
|
@ -185,6 +185,7 @@ private:
|
|||
int defaultNumberTopCards;
|
||||
QString lastTokenName, lastTokenColor, lastTokenPT, lastTokenAnnotation;
|
||||
bool lastTokenDestroy;
|
||||
int lastTokenTableRow;
|
||||
ServerInfo_User *userInfo;
|
||||
int id;
|
||||
bool active;
|
||||
|
|
|
@ -31,7 +31,7 @@ TableZone::TableZone(Player *_p, QGraphicsItem *parent)
|
|||
|
||||
updateBgPixmap();
|
||||
|
||||
height = 2 * BOX_LINE_WIDTH + 3 * (CARD_HEIGHT + 20) + 2 * PADDING_Y;
|
||||
height = 2 * BOX_LINE_WIDTH + TABLEROWS * (CARD_HEIGHT + 20) + 2 * PADDING_Y;
|
||||
width = MIN_WIDTH + 2 * MARGIN_X + 2 * BOX_LINE_WIDTH;
|
||||
currentMinimumWidth = MIN_WIDTH;
|
||||
|
||||
|
@ -311,7 +311,7 @@ QPointF TableZone::mapFromGrid(QPoint gridPoint) const
|
|||
if (isInverted())
|
||||
gridPoint.setY(2 - gridPoint.y());
|
||||
|
||||
y = BOX_LINE_WIDTH + gridPoint.y() * (CARD_HEIGHT + PADDING_Y + 20) + (gridPoint.x() % 3) * 10;
|
||||
y = BOX_LINE_WIDTH + gridPoint.y() * (CARD_HEIGHT + PADDING_Y + 20) + (gridPoint.x() % TABLEROWS) * 10;
|
||||
/*
|
||||
if (isInverted())
|
||||
y = height - CARD_HEIGHT - y;
|
||||
|
@ -339,7 +339,7 @@ QPoint TableZone::mapToGrid(const QPointF &mapPoint) const
|
|||
|
||||
int resultY = round(y / (CARD_HEIGHT + PADDING_Y + 20));
|
||||
if (isInverted())
|
||||
resultY = 2 - resultY;
|
||||
resultY = TABLEROWS - 1 - resultY;
|
||||
|
||||
int baseX = -1;
|
||||
qreal oldTempX = 0, tempX = 0;
|
||||
|
@ -365,3 +365,12 @@ QPointF TableZone::closestGridPoint(const QPointF &point)
|
|||
gridPoint.setX(gridPoint.x() + 1);
|
||||
return mapFromGrid(gridPoint);
|
||||
}
|
||||
|
||||
int TableZone::clampValidTableRow(const int row)
|
||||
{
|
||||
if(row < 0)
|
||||
return 0;
|
||||
if(row >= TABLEROWS)
|
||||
return TABLEROWS - 1;
|
||||
return row;
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ private:
|
|||
static const int PADDING_Y = 10;
|
||||
static const int MARGIN_X = 20;
|
||||
static const int MIN_WIDTH = 10 * CARD_WIDTH / 2;
|
||||
static const int TABLEROWS = 3;
|
||||
|
||||
/*
|
||||
Default background color, inactive mask and boarder gradient
|
||||
|
@ -117,6 +118,8 @@ public:
|
|||
QPoint mapToGrid(const QPointF &mapPoint) const;
|
||||
QPointF closestGridPoint(const QPointF &point);
|
||||
|
||||
int clampValidTableRow(const int row);
|
||||
|
||||
/**
|
||||
Removes a card from view.
|
||||
|
||||
|
|
Loading…
Reference in a new issue