I tried enums, was more annoying. Will probably look again later.

This commit is contained in:
ZeldaZach 2024-12-16 23:56:16 -05:00
parent c9d5d5609c
commit c24217e4b0
No known key found for this signature in database
15 changed files with 167 additions and 531 deletions

View file

@ -673,12 +673,12 @@ void TabDeckEditor::retranslateUi()
deckMenu->setTitle(tr("&Deck Editor")); deckMenu->setTitle(tr("&Deck Editor"));
cardInfoDock->setWindowTitle(tr("Card Info")); cardInfoDock->setWindowTitle(tr("Card Info"));
deckDock->setWindowTitle(tr("Deck")); deckDock->setWindowTitle(tr(ZONE_DECK));
filterDock->setWindowTitle(tr("Filters")); filterDock->setWindowTitle(tr("Filters"));
viewMenu->setTitle(tr("&View")); viewMenu->setTitle(tr("&View"));
cardInfoDockMenu->setTitle(tr("Card Info")); cardInfoDockMenu->setTitle(tr("Card Info"));
deckDockMenu->setTitle(tr("Deck")); deckDockMenu->setTitle(tr(ZONE_DECK));
filterDockMenu->setTitle(tr("Filters")); filterDockMenu->setTitle(tr("Filters"));
aCardInfoDockVisible->setText(tr("Visible")); aCardInfoDockVisible->setText(tr("Visible"));

View file

@ -1,5 +1,7 @@
#include "phases_toolbar.h" #include "phases_toolbar.h"
#include "../common/card_zones.h"
#include "pb/command_draw_cards.pb.h" #include "pb/command_draw_cards.pb.h"
#include "pb/command_next_turn.pb.h" #include "pb/command_next_turn.pb.h"
#include "pb/command_set_active_phase.pb.h" #include "pb/command_set_active_phase.pb.h"
@ -259,7 +261,7 @@ void PhasesToolbar::actNextTurn()
void PhasesToolbar::actUntapAll() void PhasesToolbar::actUntapAll()
{ {
Command_SetCardAttr cmd; Command_SetCardAttr cmd;
cmd.set_zone("table"); cmd.set_zone(ZONE_TABLE);
cmd.set_attribute(AttrTapped); cmd.set_attribute(AttrTapped);
cmd.set_attr_value("0"); cmd.set_attr_value("0");

View file

@ -9,6 +9,7 @@
#include <QNetworkRequest> #include <QNetworkRequest>
#include <QRegularExpression> #include <QRegularExpression>
#include <QUrlQuery> #include <QUrlQuery>
#include "../common/card_zones.h"
DeckStatsInterface::DeckStatsInterface(CardDatabase &_cardDatabase, QObject *parent) DeckStatsInterface::DeckStatsInterface(CardDatabase &_cardDatabase, QObject *parent)
: QObject(parent), cardDatabase(_cardDatabase) : QObject(parent), cardDatabase(_cardDatabase)
@ -50,7 +51,7 @@ void DeckStatsInterface::getAnalyzeRequestData(DeckList *deck, QByteArray *data)
QUrl params; QUrl params;
QUrlQuery urlQuery; QUrlQuery urlQuery;
urlQuery.addQueryItem("deck", deckWithoutTokens.writeToString_Plain()); urlQuery.addQueryItem(ZONE_DECK, deckWithoutTokens.writeToString_Plain());
urlQuery.addQueryItem("decktitle", deck->getName()); urlQuery.addQueryItem("decktitle", deck->getName());
params.setQuery(urlQuery); params.setQuery(urlQuery);
data->append(params.query(QUrl::EncodeReserved).toUtf8()); data->append(params.query(QUrl::EncodeReserved).toUtf8());

View file

@ -237,15 +237,15 @@ void ArrowDragItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
PlayerTarget *targetPlayer = qgraphicsitem_cast<PlayerTarget *>(targetItem); PlayerTarget *targetPlayer = qgraphicsitem_cast<PlayerTarget *>(targetItem);
cmd.set_target_player_id(targetPlayer->getOwner()->getId()); cmd.set_target_player_id(targetPlayer->getOwner()->getId());
} }
if (startZone->getName().compare("hand") == 0) { if (startZone->getName().compare(ZONE_HAND) == 0) {
startCard->playCard(false); startCard->playCard(false);
CardInfoPtr ci = startCard->getInfo(); CardInfoPtr ci = startCard->getInfo();
if (ci && (((!SettingsCache::instance().getPlayToStack() && ci->getTableRow() == 3) || if (ci && (((!SettingsCache::instance().getPlayToStack() && ci->getTableRow() == 3) ||
((SettingsCache::instance().getPlayToStack() && ci->getTableRow() != 0) && ((SettingsCache::instance().getPlayToStack() && ci->getTableRow() != 0) &&
startCard->getZone()->getName().toStdString() != "stack")))) startCard->getZone()->getName().toStdString() != ZONE_STACK))))
cmd.set_start_zone("stack"); cmd.set_start_zone(ZONE_STACK);
else else
cmd.set_start_zone(SettingsCache::instance().getPlayToStack() ? "stack" : "table"); cmd.set_start_zone(SettingsCache::instance().getPlayToStack() ? ZONE_STACK : ZONE_TABLE);
} }
player->sendGameCommand(cmd); player->sendGameCommand(cmd);
} }

View file

@ -155,9 +155,9 @@ void GameScene::toggleZoneView(Player *player, const QString &zoneName, int numb
zoneViews.append(item); zoneViews.append(item);
connect(item, SIGNAL(closePressed(ZoneViewWidget *)), this, SLOT(removeZoneView(ZoneViewWidget *))); connect(item, SIGNAL(closePressed(ZoneViewWidget *)), this, SLOT(removeZoneView(ZoneViewWidget *)));
addItem(item); addItem(item);
if (zoneName == "grave") { if (zoneName == ZONE_GRAVEYARD) {
item->setPos(360, 100); item->setPos(360, 100);
} else if (zoneName == "rfg") { } else if (zoneName == ZONE_EXILE) {
item->setPos(380, 120); item->setPos(380, 120);
} else { } else {
item->setPos(340, 80); item->setPos(340, 80);

View file

@ -129,7 +129,7 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, bool _judge, T
qreal avatarMargin = (counterAreaWidth + CARD_HEIGHT + 15 - playerTarget->boundingRect().width()) / 2.0; qreal avatarMargin = (counterAreaWidth + CARD_HEIGHT + 15 - playerTarget->boundingRect().width()) / 2.0;
playerTarget->setPos(QPointF(avatarMargin, avatarMargin)); playerTarget->setPos(QPointF(avatarMargin, avatarMargin));
auto *_deck = new PileZone(this, "deck", true, false, playerArea); auto *_deck = new PileZone(this, ZONE_DECK, true, false, playerArea);
QPointF base = QPointF(counterAreaWidth + (CARD_HEIGHT - CARD_WIDTH + 15) / 2.0, QPointF base = QPointF(counterAreaWidth + (CARD_HEIGHT - CARD_WIDTH + 15) / 2.0,
10 + playerTarget->boundingRect().height() + 5 - (CARD_HEIGHT - CARD_WIDTH) / 2.0); 10 + playerTarget->boundingRect().height() + 5 - (CARD_HEIGHT - CARD_WIDTH) / 2.0);
_deck->setPos(base); _deck->setPos(base);
@ -140,13 +140,13 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, bool _judge, T
handCounter->setPos(base + QPointF(0, h + 10)); handCounter->setPos(base + QPointF(0, h + 10));
qreal h2 = handCounter->boundingRect().height(); qreal h2 = handCounter->boundingRect().height();
PileZone *grave = new PileZone(this, "grave", false, true, playerArea); PileZone *grave = new PileZone(this, ZONE_GRAVEYARD, false, true, playerArea);
grave->setPos(base + QPointF(0, h + h2 + 10)); grave->setPos(base + QPointF(0, h + h2 + 10));
PileZone *rfg = new PileZone(this, "rfg", false, true, playerArea); PileZone *rfg = new PileZone(this, ZONE_EXILE, false, true, playerArea);
rfg->setPos(base + QPointF(0, 2 * h + h2 + 10)); rfg->setPos(base + QPointF(0, 2 * h + h2 + 10));
PileZone *sb = new PileZone(this, "sb", false, false, playerArea); PileZone *sb = new PileZone(this, ZONE_SIDEBOARD, false, false, playerArea);
sb->setVisible(false); sb->setVisible(false);
table = new TableZone(this, this); table = new TableZone(this, this);
@ -168,13 +168,13 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, bool _judge, T
if (local || judge) { if (local || judge) {
aMoveHandToTopLibrary = new QAction(this); aMoveHandToTopLibrary = new QAction(this);
aMoveHandToTopLibrary->setData(QList<QVariant>() << "deck" << 0); aMoveHandToTopLibrary->setData(QList<QVariant>() << ZONE_DECK << 0);
aMoveHandToBottomLibrary = new QAction(this); aMoveHandToBottomLibrary = new QAction(this);
aMoveHandToBottomLibrary->setData(QList<QVariant>() << "deck" << -1); aMoveHandToBottomLibrary->setData(QList<QVariant>() << ZONE_DECK << -1);
aMoveHandToGrave = new QAction(this); aMoveHandToGrave = new QAction(this);
aMoveHandToGrave->setData(QList<QVariant>() << "grave" << 0); aMoveHandToGrave->setData(QList<QVariant>() << ZONE_GRAVEYARD << 0);
aMoveHandToRfg = new QAction(this); aMoveHandToRfg = new QAction(this);
aMoveHandToRfg->setData(QList<QVariant>() << "rfg" << 0); aMoveHandToRfg->setData(QList<QVariant>() << ZONE_EXILE << 0);
connect(aMoveHandToTopLibrary, SIGNAL(triggered()), hand, SLOT(moveAllToZone())); connect(aMoveHandToTopLibrary, SIGNAL(triggered()), hand, SLOT(moveAllToZone()));
connect(aMoveHandToBottomLibrary, SIGNAL(triggered()), hand, SLOT(moveAllToZone())); connect(aMoveHandToBottomLibrary, SIGNAL(triggered()), hand, SLOT(moveAllToZone()));
@ -182,13 +182,13 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, bool _judge, T
connect(aMoveHandToRfg, SIGNAL(triggered()), hand, SLOT(moveAllToZone())); connect(aMoveHandToRfg, SIGNAL(triggered()), hand, SLOT(moveAllToZone()));
aMoveGraveToTopLibrary = new QAction(this); aMoveGraveToTopLibrary = new QAction(this);
aMoveGraveToTopLibrary->setData(QList<QVariant>() << "deck" << 0); aMoveGraveToTopLibrary->setData(QList<QVariant>() << ZONE_DECK << 0);
aMoveGraveToBottomLibrary = new QAction(this); aMoveGraveToBottomLibrary = new QAction(this);
aMoveGraveToBottomLibrary->setData(QList<QVariant>() << "deck" << -1); aMoveGraveToBottomLibrary->setData(QList<QVariant>() << ZONE_DECK << -1);
aMoveGraveToHand = new QAction(this); aMoveGraveToHand = new QAction(this);
aMoveGraveToHand->setData(QList<QVariant>() << "hand" << 0); aMoveGraveToHand->setData(QList<QVariant>() << ZONE_HAND << 0);
aMoveGraveToRfg = new QAction(this); aMoveGraveToRfg = new QAction(this);
aMoveGraveToRfg->setData(QList<QVariant>() << "rfg" << 0); aMoveGraveToRfg->setData(QList<QVariant>() << ZONE_EXILE << 0);
connect(aMoveGraveToTopLibrary, SIGNAL(triggered()), grave, SLOT(moveAllToZone())); connect(aMoveGraveToTopLibrary, SIGNAL(triggered()), grave, SLOT(moveAllToZone()));
connect(aMoveGraveToBottomLibrary, SIGNAL(triggered()), grave, SLOT(moveAllToZone())); connect(aMoveGraveToBottomLibrary, SIGNAL(triggered()), grave, SLOT(moveAllToZone()));
@ -196,13 +196,13 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, bool _judge, T
connect(aMoveGraveToRfg, SIGNAL(triggered()), grave, SLOT(moveAllToZone())); connect(aMoveGraveToRfg, SIGNAL(triggered()), grave, SLOT(moveAllToZone()));
aMoveRfgToTopLibrary = new QAction(this); aMoveRfgToTopLibrary = new QAction(this);
aMoveRfgToTopLibrary->setData(QList<QVariant>() << "deck" << 0); aMoveRfgToTopLibrary->setData(QList<QVariant>() << ZONE_DECK << 0);
aMoveRfgToBottomLibrary = new QAction(this); aMoveRfgToBottomLibrary = new QAction(this);
aMoveRfgToBottomLibrary->setData(QList<QVariant>() << "deck" << -1); aMoveRfgToBottomLibrary->setData(QList<QVariant>() << ZONE_DECK << -1);
aMoveRfgToHand = new QAction(this); aMoveRfgToHand = new QAction(this);
aMoveRfgToHand->setData(QList<QVariant>() << "hand" << 0); aMoveRfgToHand->setData(QList<QVariant>() << ZONE_HAND << 0);
aMoveRfgToGrave = new QAction(this); aMoveRfgToGrave = new QAction(this);
aMoveRfgToGrave->setData(QList<QVariant>() << "grave" << 0); aMoveRfgToGrave->setData(QList<QVariant>() << ZONE_GRAVEYARD << 0);
connect(aMoveRfgToTopLibrary, SIGNAL(triggered()), rfg, SLOT(moveAllToZone())); connect(aMoveRfgToTopLibrary, SIGNAL(triggered()), rfg, SLOT(moveAllToZone()));
connect(aMoveRfgToBottomLibrary, SIGNAL(triggered()), rfg, SLOT(moveAllToZone())); connect(aMoveRfgToBottomLibrary, SIGNAL(triggered()), rfg, SLOT(moveAllToZone()));
@ -649,25 +649,25 @@ void Player::playerListActionTriggered()
} }
if (menu == mRevealLibrary || menu == mLendLibrary) { if (menu == mRevealLibrary || menu == mLendLibrary) {
cmd.set_zone_name("deck"); cmd.set_zone_name(ZONE_DECK);
cmd.set_grant_write_access(menu == mLendLibrary); cmd.set_grant_write_access(menu == mLendLibrary);
} else if (menu == mRevealTopCard) { } else if (menu == mRevealTopCard) {
int deckSize = zones.value("deck")->getCards().size(); int deckSize = zones.value(ZONE_DECK)->getCards().size();
bool ok; bool ok;
int number = QInputDialog::getInt(game, tr("Reveal top cards of library"), int number = QInputDialog::getInt(game, tr("Reveal top cards of library"),
tr("Number of cards: (max. %1)").arg(deckSize), defaultNumberTopCards, 1, tr("Number of cards: (max. %1)").arg(deckSize), defaultNumberTopCards, 1,
deckSize, 1, &ok); deckSize, 1, &ok);
if (ok) { if (ok) {
cmd.set_zone_name("deck"); cmd.set_zone_name(ZONE_DECK);
cmd.set_top_cards(number); cmd.set_top_cards(number);
// backward compatibility: servers before #1051 only permits to reveal the first card // backward compatibility: servers before #1051 only permits to reveal the first card
cmd.add_card_id(0); cmd.add_card_id(0);
} }
} else if (menu == mRevealHand) { } else if (menu == mRevealHand) {
cmd.set_zone_name("hand"); cmd.set_zone_name(ZONE_HAND);
} else if (menu == mRevealRandomHandCard) { } else if (menu == mRevealRandomHandCard) {
cmd.set_zone_name("hand"); cmd.set_zone_name(ZONE_HAND);
cmd.add_card_id(RANDOM_CARD_FROM_ZONE); cmd.add_card_id(RANDOM_CARD_FROM_ZONE);
} else { } else {
return; return;
@ -1094,31 +1094,31 @@ void Player::setDeck(const DeckLoader &_deck)
void Player::actViewLibrary() void Player::actViewLibrary()
{ {
static_cast<GameScene *>(scene())->toggleZoneView(this, "deck", -1); static_cast<GameScene *>(scene())->toggleZoneView(this, ZONE_DECK, -1);
} }
void Player::actViewHand() void Player::actViewHand()
{ {
static_cast<GameScene *>(scene())->toggleZoneView(this, "hand", -1); static_cast<GameScene *>(scene())->toggleZoneView(this, ZONE_HAND, -1);
} }
void Player::actViewTopCards() void Player::actViewTopCards()
{ {
int deckSize = zones.value("deck")->getCards().size(); int deckSize = zones.value(ZONE_DECK)->getCards().size();
bool ok; bool ok;
int number = int number =
QInputDialog::getInt(game, tr("View top cards of library"), tr("Number of cards: (max. %1)").arg(deckSize), QInputDialog::getInt(game, tr("View top cards of library"), tr("Number of cards: (max. %1)").arg(deckSize),
defaultNumberTopCards, 1, deckSize, 1, &ok); defaultNumberTopCards, 1, deckSize, 1, &ok);
if (ok) { if (ok) {
defaultNumberTopCards = number; defaultNumberTopCards = number;
static_cast<GameScene *>(scene())->toggleZoneView(this, "deck", number); static_cast<GameScene *>(scene())->toggleZoneView(this, ZONE_DECK, number);
} }
} }
void Player::actAlwaysRevealTopCard() void Player::actAlwaysRevealTopCard()
{ {
Command_ChangeZoneProperties cmd; Command_ChangeZoneProperties cmd;
cmd.set_zone_name("deck"); cmd.set_zone_name(ZONE_DECK);
cmd.set_always_reveal_top_card(aAlwaysRevealTopCard->isChecked()); cmd.set_always_reveal_top_card(aAlwaysRevealTopCard->isChecked());
sendGameCommand(cmd); sendGameCommand(cmd);
@ -1127,7 +1127,7 @@ void Player::actAlwaysRevealTopCard()
void Player::actAlwaysLookAtTopCard() void Player::actAlwaysLookAtTopCard()
{ {
Command_ChangeZoneProperties cmd; Command_ChangeZoneProperties cmd;
cmd.set_zone_name("deck"); cmd.set_zone_name(ZONE_DECK);
cmd.set_always_look_at_top_card(aAlwaysLookAtTopCard->isChecked()); cmd.set_always_look_at_top_card(aAlwaysLookAtTopCard->isChecked());
sendGameCommand(cmd); sendGameCommand(cmd);
@ -1140,7 +1140,7 @@ void Player::actOpenDeckInDeckEditor()
void Player::actViewGraveyard() void Player::actViewGraveyard()
{ {
dynamic_cast<GameScene *>(scene())->toggleZoneView(this, "grave", -1); dynamic_cast<GameScene *>(scene())->toggleZoneView(this, ZONE_GRAVEYARD, -1);
} }
void Player::actRevealRandomGraveyardCard() void Player::actRevealRandomGraveyardCard()
@ -1151,19 +1151,19 @@ void Player::actRevealRandomGraveyardCard()
if (otherPlayerId != -1) { if (otherPlayerId != -1) {
cmd.set_player_id(otherPlayerId); cmd.set_player_id(otherPlayerId);
} }
cmd.set_zone_name("grave"); cmd.set_zone_name(ZONE_GRAVEYARD);
cmd.add_card_id(RANDOM_CARD_FROM_ZONE); cmd.add_card_id(RANDOM_CARD_FROM_ZONE);
sendGameCommand(cmd); sendGameCommand(cmd);
} }
void Player::actViewRfg() void Player::actViewRfg()
{ {
static_cast<GameScene *>(scene())->toggleZoneView(this, "rfg", -1); static_cast<GameScene *>(scene())->toggleZoneView(this, ZONE_EXILE, -1);
} }
void Player::actViewSideboard() void Player::actViewSideboard()
{ {
static_cast<GameScene *>(scene())->toggleZoneView(this, "sb", -1); static_cast<GameScene *>(scene())->toggleZoneView(this, ZONE_SIDEBOARD, -1);
} }
void Player::actShuffle() void Player::actShuffle()
@ -1181,8 +1181,8 @@ void Player::actDrawCard()
void Player::actMulligan() void Player::actMulligan()
{ {
int startSize = SettingsCache::instance().getStartingHandSize(); int startSize = SettingsCache::instance().getStartingHandSize();
int handSize = zones.value("hand")->getCards().size(); int handSize = zones.value(ZONE_HAND)->getCards().size();
int deckSize = zones.value("deck")->getCards().size() + handSize; // hand is shuffled back into the deck int deckSize = zones.value(ZONE_DECK)->getCards().size() + handSize; // hand is shuffled back into the deck
bool ok; bool ok;
int number = QInputDialog::getInt(game, tr("Draw hand"), int number = QInputDialog::getInt(game, tr("Draw hand"),
tr("Number of cards: (max. %1)").arg(deckSize) + '\n' + tr("Number of cards: (max. %1)").arg(deckSize) + '\n' +
@ -1208,7 +1208,7 @@ void Player::actMulligan()
void Player::actDrawCards() void Player::actDrawCards()
{ {
int deckSize = zones.value("deck")->getCards().size(); int deckSize = zones.value(ZONE_DECK)->getCards().size();
bool ok; bool ok;
int number = QInputDialog::getInt(game, tr("Draw cards"), tr("Number of cards: (max. %1)").arg(deckSize), int number = QInputDialog::getInt(game, tr("Draw cards"), tr("Number of cards: (max. %1)").arg(deckSize),
defaultNumberTopCards, 1, deckSize, 1, &ok); defaultNumberTopCards, 1, deckSize, 1, &ok);
@ -1227,7 +1227,7 @@ void Player::actUndoDraw()
void Player::cmdSetTopCard(Command_MoveCard &cmd) void Player::cmdSetTopCard(Command_MoveCard &cmd)
{ {
cmd.set_start_zone("deck"); cmd.set_start_zone(ZONE_DECK);
auto *cardToMove = cmd.mutable_cards_to_move()->add_card(); auto *cardToMove = cmd.mutable_cards_to_move()->add_card();
cardToMove->set_card_id(0); cardToMove->set_card_id(0);
cmd.set_target_player_id(getId()); cmd.set_target_player_id(getId());
@ -1235,9 +1235,9 @@ void Player::cmdSetTopCard(Command_MoveCard &cmd)
void Player::cmdSetBottomCard(Command_MoveCard &cmd) void Player::cmdSetBottomCard(Command_MoveCard &cmd)
{ {
CardZone *zone = zones.value("deck"); CardZone *zone = zones.value(ZONE_DECK);
int lastCard = zone->getCards().size() - 1; int lastCard = zone->getCards().size() - 1;
cmd.set_start_zone("deck"); cmd.set_start_zone(ZONE_DECK);
auto *cardToMove = cmd.mutable_cards_to_move()->add_card(); auto *cardToMove = cmd.mutable_cards_to_move()->add_card();
cardToMove->set_card_id(lastCard); cardToMove->set_card_id(lastCard);
cmd.set_target_player_id(getId()); cmd.set_target_player_id(getId());
@ -1245,13 +1245,13 @@ void Player::cmdSetBottomCard(Command_MoveCard &cmd)
void Player::actMoveTopCardToGrave() void Player::actMoveTopCardToGrave()
{ {
if (zones.value("deck")->getCards().empty()) { if (zones.value(ZONE_DECK)->getCards().empty()) {
return; return;
} }
Command_MoveCard cmd; Command_MoveCard cmd;
cmdSetTopCard(cmd); cmdSetTopCard(cmd);
cmd.set_target_zone("grave"); cmd.set_target_zone(ZONE_GRAVEYARD);
cmd.set_x(0); cmd.set_x(0);
cmd.set_y(0); cmd.set_y(0);
@ -1260,13 +1260,13 @@ void Player::actMoveTopCardToGrave()
void Player::actMoveTopCardToExile() void Player::actMoveTopCardToExile()
{ {
if (zones.value("deck")->getCards().empty()) { if (zones.value(ZONE_DECK)->getCards().empty()) {
return; return;
} }
Command_MoveCard cmd; Command_MoveCard cmd;
cmdSetTopCard(cmd); cmdSetTopCard(cmd);
cmd.set_target_zone("rfg"); cmd.set_target_zone(ZONE_EXILE);
cmd.set_x(0); cmd.set_x(0);
cmd.set_y(0); cmd.set_y(0);
@ -1275,7 +1275,7 @@ void Player::actMoveTopCardToExile()
void Player::actMoveTopCardsToGrave() void Player::actMoveTopCardsToGrave()
{ {
const int maxCards = zones.value("deck")->getCards().size(); const int maxCards = zones.value(ZONE_DECK)->getCards().size();
if (maxCards == 0) { if (maxCards == 0) {
return; return;
} }
@ -1292,9 +1292,9 @@ void Player::actMoveTopCardsToGrave()
defaultNumberTopCards = number; defaultNumberTopCards = number;
Command_MoveCard cmd; Command_MoveCard cmd;
cmd.set_start_zone("deck"); cmd.set_start_zone(ZONE_DECK);
cmd.set_target_player_id(getId()); cmd.set_target_player_id(getId());
cmd.set_target_zone("grave"); cmd.set_target_zone(ZONE_GRAVEYARD);
cmd.set_x(0); cmd.set_x(0);
cmd.set_y(0); cmd.set_y(0);
@ -1307,7 +1307,7 @@ void Player::actMoveTopCardsToGrave()
void Player::actMoveTopCardsToExile() void Player::actMoveTopCardsToExile()
{ {
const int maxCards = zones.value("deck")->getCards().size(); const int maxCards = zones.value(ZONE_DECK)->getCards().size();
if (maxCards == 0) { if (maxCards == 0) {
return; return;
} }
@ -1324,9 +1324,9 @@ void Player::actMoveTopCardsToExile()
defaultNumberTopCards = number; defaultNumberTopCards = number;
Command_MoveCard cmd; Command_MoveCard cmd;
cmd.set_start_zone("deck"); cmd.set_start_zone(ZONE_DECK);
cmd.set_target_player_id(getId()); cmd.set_target_player_id(getId());
cmd.set_target_zone("rfg"); cmd.set_target_zone(ZONE_EXILE);
cmd.set_x(0); cmd.set_x(0);
cmd.set_y(0); cmd.set_y(0);
@ -1349,7 +1349,7 @@ void Player::actMoveTopCardsUntil()
previousMovingCardsUntilExpr = dlg.getExpr(); previousMovingCardsUntilExpr = dlg.getExpr();
previousMovingCardsUntilNumberOfHits = dlg.getNumberOfHits(); previousMovingCardsUntilNumberOfHits = dlg.getNumberOfHits();
if (zones.value("deck")->getCards().empty()) { if (zones.value(ZONE_DECK)->getCards().empty()) {
stopMoveTopCardsUntil(); stopMoveTopCardsUntil();
} else { } else {
movingCardsUntilFilter = FilterString(previousMovingCardsUntilExpr); movingCardsUntilFilter = FilterString(previousMovingCardsUntilExpr);
@ -1362,7 +1362,7 @@ void Player::actMoveTopCardsUntil()
void Player::moveOneCardUntil(const CardInfoPtr card) void Player::moveOneCardUntil(const CardInfoPtr card)
{ {
moveTopCardTimer->stop(); moveTopCardTimer->stop();
if (zones.value("deck")->getCards().empty() || card.isNull()) { if (zones.value(ZONE_DECK)->getCards().empty() || card.isNull()) {
stopMoveTopCardsUntil(); stopMoveTopCardsUntil();
} else if (movingCardsUntilFilter.check(card)) { } else if (movingCardsUntilFilter.check(card)) {
--movingCardsUntilCounter; --movingCardsUntilCounter;
@ -1388,13 +1388,13 @@ void Player::stopMoveTopCardsUntil()
void Player::actMoveTopCardToBottom() void Player::actMoveTopCardToBottom()
{ {
if (zones.value("deck")->getCards().empty()) { if (zones.value(ZONE_DECK)->getCards().empty()) {
return; return;
} }
Command_MoveCard cmd; Command_MoveCard cmd;
cmdSetTopCard(cmd); cmdSetTopCard(cmd);
cmd.set_target_zone("deck"); cmd.set_target_zone(ZONE_DECK);
cmd.set_x(-1); // bottom of deck cmd.set_x(-1); // bottom of deck
cmd.set_y(0); cmd.set_y(0);
@ -1403,13 +1403,13 @@ void Player::actMoveTopCardToBottom()
void Player::actMoveTopCardToPlay() void Player::actMoveTopCardToPlay()
{ {
if (zones.value("deck")->getCards().empty()) { if (zones.value(ZONE_DECK)->getCards().empty()) {
return; return;
} }
Command_MoveCard cmd; Command_MoveCard cmd;
cmdSetTopCard(cmd); cmdSetTopCard(cmd);
cmd.set_target_zone("stack"); cmd.set_target_zone(ZONE_STACK);
cmd.set_x(-1); cmd.set_x(-1);
cmd.set_y(0); cmd.set_y(0);
@ -1418,17 +1418,17 @@ void Player::actMoveTopCardToPlay()
void Player::actMoveTopCardToPlayFaceDown() void Player::actMoveTopCardToPlayFaceDown()
{ {
if (zones.value("deck")->getCards().empty()) { if (zones.value(ZONE_DECK)->getCards().empty()) {
return; return;
} }
Command_MoveCard cmd; Command_MoveCard cmd;
cmd.set_start_zone("deck"); cmd.set_start_zone(ZONE_DECK);
CardToMove *cardToMove = cmd.mutable_cards_to_move()->add_card(); CardToMove *cardToMove = cmd.mutable_cards_to_move()->add_card();
cardToMove->set_card_id(0); cardToMove->set_card_id(0);
cardToMove->set_face_down(true); cardToMove->set_face_down(true);
cmd.set_target_player_id(getId()); cmd.set_target_player_id(getId());
cmd.set_target_zone("table"); cmd.set_target_zone(ZONE_TABLE);
cmd.set_x(-1); cmd.set_x(-1);
cmd.set_y(0); cmd.set_y(0);
@ -1437,13 +1437,13 @@ void Player::actMoveTopCardToPlayFaceDown()
void Player::actMoveBottomCardToGrave() void Player::actMoveBottomCardToGrave()
{ {
if (zones.value("deck")->getCards().empty()) { if (zones.value(ZONE_DECK)->getCards().empty()) {
return; return;
} }
Command_MoveCard cmd; Command_MoveCard cmd;
cmdSetBottomCard(cmd); cmdSetBottomCard(cmd);
cmd.set_target_zone("grave"); cmd.set_target_zone(ZONE_GRAVEYARD);
cmd.set_x(0); cmd.set_x(0);
cmd.set_y(0); cmd.set_y(0);
@ -1452,13 +1452,13 @@ void Player::actMoveBottomCardToGrave()
void Player::actMoveBottomCardToExile() void Player::actMoveBottomCardToExile()
{ {
if (zones.value("deck")->getCards().empty()) { if (zones.value(ZONE_DECK)->getCards().empty()) {
return; return;
} }
Command_MoveCard cmd; Command_MoveCard cmd;
cmdSetBottomCard(cmd); cmdSetBottomCard(cmd);
cmd.set_target_zone("rfg"); cmd.set_target_zone(ZONE_EXILE);
cmd.set_x(0); cmd.set_x(0);
cmd.set_y(0); cmd.set_y(0);
@ -1467,7 +1467,7 @@ void Player::actMoveBottomCardToExile()
void Player::actMoveBottomCardsToGrave() void Player::actMoveBottomCardsToGrave()
{ {
const int maxCards = zones.value("deck")->getCards().size(); const int maxCards = zones.value(ZONE_DECK)->getCards().size();
if (maxCards == 0) { if (maxCards == 0) {
return; return;
} }
@ -1484,9 +1484,9 @@ void Player::actMoveBottomCardsToGrave()
defaultNumberBottomCards = number; defaultNumberBottomCards = number;
Command_MoveCard cmd; Command_MoveCard cmd;
cmd.set_start_zone("deck"); cmd.set_start_zone(ZONE_DECK);
cmd.set_target_player_id(getId()); cmd.set_target_player_id(getId());
cmd.set_target_zone("grave"); cmd.set_target_zone(ZONE_GRAVEYARD);
cmd.set_x(0); cmd.set_x(0);
cmd.set_y(0); cmd.set_y(0);
@ -1499,7 +1499,7 @@ void Player::actMoveBottomCardsToGrave()
void Player::actMoveBottomCardsToExile() void Player::actMoveBottomCardsToExile()
{ {
const int maxCards = zones.value("deck")->getCards().size(); const int maxCards = zones.value(ZONE_DECK)->getCards().size();
if (maxCards == 0) { if (maxCards == 0) {
return; return;
} }
@ -1516,9 +1516,9 @@ void Player::actMoveBottomCardsToExile()
defaultNumberBottomCards = number; defaultNumberBottomCards = number;
Command_MoveCard cmd; Command_MoveCard cmd;
cmd.set_start_zone("deck"); cmd.set_start_zone(ZONE_DECK);
cmd.set_target_player_id(getId()); cmd.set_target_player_id(getId());
cmd.set_target_zone("rfg"); cmd.set_target_zone(ZONE_EXILE);
cmd.set_x(0); cmd.set_x(0);
cmd.set_y(0); cmd.set_y(0);
@ -1531,13 +1531,13 @@ void Player::actMoveBottomCardsToExile()
void Player::actMoveBottomCardToTop() void Player::actMoveBottomCardToTop()
{ {
if (zones.value("deck")->getCards().empty()) { if (zones.value(ZONE_DECK)->getCards().empty()) {
return; return;
} }
Command_MoveCard cmd; Command_MoveCard cmd;
cmdSetBottomCard(cmd); cmdSetBottomCard(cmd);
cmd.set_target_zone("deck"); cmd.set_target_zone(ZONE_DECK);
cmd.set_x(0); // top of deck cmd.set_x(0); // top of deck
cmd.set_y(0); cmd.set_y(0);
@ -1562,13 +1562,13 @@ void Player::actSelectAll()
void Player::actDrawBottomCard() void Player::actDrawBottomCard()
{ {
if (zones.value("deck")->getCards().empty()) { if (zones.value(ZONE_DECK)->getCards().empty()) {
return; return;
} }
Command_MoveCard cmd; Command_MoveCard cmd;
cmdSetBottomCard(cmd); cmdSetBottomCard(cmd);
cmd.set_target_zone("hand"); cmd.set_target_zone(ZONE_HAND);
cmd.set_x(0); cmd.set_x(0);
cmd.set_y(0); cmd.set_y(0);
@ -1577,7 +1577,7 @@ void Player::actDrawBottomCard()
void Player::actDrawBottomCards() void Player::actDrawBottomCards()
{ {
const int maxCards = zones.value("deck")->getCards().size(); const int maxCards = zones.value(ZONE_DECK)->getCards().size();
if (maxCards == 0) { if (maxCards == 0) {
return; return;
} }
@ -1593,9 +1593,9 @@ void Player::actDrawBottomCards()
defaultNumberBottomCards = number; defaultNumberBottomCards = number;
Command_MoveCard cmd; Command_MoveCard cmd;
cmd.set_start_zone("deck"); cmd.set_start_zone(ZONE_DECK);
cmd.set_target_player_id(getId()); cmd.set_target_player_id(getId());
cmd.set_target_zone("hand"); cmd.set_target_zone(ZONE_HAND);
cmd.set_x(0); cmd.set_x(0);
cmd.set_y(0); cmd.set_y(0);
@ -1608,13 +1608,13 @@ void Player::actDrawBottomCards()
void Player::actMoveBottomCardToPlay() void Player::actMoveBottomCardToPlay()
{ {
if (zones.value("deck")->getCards().empty()) { if (zones.value(ZONE_DECK)->getCards().empty()) {
return; return;
} }
Command_MoveCard cmd; Command_MoveCard cmd;
cmdSetBottomCard(cmd); cmdSetBottomCard(cmd);
cmd.set_target_zone("stack"); cmd.set_target_zone(ZONE_STACK);
cmd.set_x(-1); cmd.set_x(-1);
cmd.set_y(0); cmd.set_y(0);
@ -1623,21 +1623,21 @@ void Player::actMoveBottomCardToPlay()
void Player::actMoveBottomCardToPlayFaceDown() void Player::actMoveBottomCardToPlayFaceDown()
{ {
if (zones.value("deck")->getCards().empty()) { if (zones.value(ZONE_DECK)->getCards().empty()) {
return; return;
} }
CardZone *zone = zones.value("deck"); CardZone *zone = zones.value(ZONE_DECK);
int lastCard = zone->getCards().size() - 1; int lastCard = zone->getCards().size() - 1;
Command_MoveCard cmd; Command_MoveCard cmd;
cmd.set_start_zone("deck"); cmd.set_start_zone(ZONE_DECK);
auto *cardToMove = cmd.mutable_cards_to_move()->add_card(); auto *cardToMove = cmd.mutable_cards_to_move()->add_card();
cardToMove->set_card_id(lastCard); cardToMove->set_card_id(lastCard);
cardToMove->set_face_down(true); cardToMove->set_face_down(true);
cmd.set_target_player_id(getId()); cmd.set_target_player_id(getId());
cmd.set_target_zone("table"); cmd.set_target_zone(ZONE_TABLE);
cmd.set_x(-1); cmd.set_x(-1);
cmd.set_y(0); cmd.set_y(0);
@ -1647,7 +1647,7 @@ void Player::actMoveBottomCardToPlayFaceDown()
void Player::actUntapAll() void Player::actUntapAll()
{ {
Command_SetCardAttr cmd; Command_SetCardAttr cmd;
cmd.set_zone("table"); cmd.set_zone(ZONE_TABLE);
cmd.set_attribute(AttrTapped); cmd.set_attribute(AttrTapped);
cmd.set_attr_value("0"); cmd.set_attr_value("0");
@ -1699,7 +1699,7 @@ void Player::actCreateAnotherToken()
} }
Command_CreateToken cmd; Command_CreateToken cmd;
cmd.set_zone("table"); cmd.set_zone(ZONE_TABLE);
cmd.set_card_name(lastTokenName.toStdString()); cmd.set_card_name(lastTokenName.toStdString());
cmd.set_color(lastTokenColor.toStdString()); cmd.set_color(lastTokenColor.toStdString());
cmd.set_pt(lastTokenPT.toStdString()); cmd.set_pt(lastTokenPT.toStdString());
@ -1871,7 +1871,7 @@ void Player::createCard(const CardItem *sourceCard,
// create the token for the related card // create the token for the related card
Command_CreateToken cmd; Command_CreateToken cmd;
cmd.set_zone("table"); cmd.set_zone(ZONE_TABLE);
cmd.set_card_name(cardInfo->getName().toStdString()); cmd.set_card_name(cardInfo->getName().toStdString());
switch (cardInfo->getColors().size()) { switch (cardInfo->getColors().size()) {
case 0: case 0:
@ -2267,7 +2267,7 @@ void Player::eventMoveCard(const Event_MoveCard &event, const GameEventContext &
} }
updateCardMenu(card); updateCardMenu(card);
if (movingCardsUntil && startZoneString == "deck" && targetZone->getName() == "stack") { if (movingCardsUntil && startZoneString == ZONE_DECK && targetZone->getName() == ZONE_STACK) {
moveOneCardUntil(card->getInfo()); moveOneCardUntil(card->getInfo());
} }
} }
@ -2358,8 +2358,8 @@ void Player::eventAttachCard(const Event_AttachCard &event)
void Player::eventDrawCards(const Event_DrawCards &event) void Player::eventDrawCards(const Event_DrawCards &event)
{ {
CardZone *_deck = zones.value("deck"); CardZone *_deck = zones.value(ZONE_DECK);
CardZone *_hand = zones.value("hand"); CardZone *_hand = zones.value(ZONE_HAND);
const int listSize = event.cards_size(); const int listSize = event.cards_size();
if (listSize) { if (listSize) {
@ -2641,13 +2641,13 @@ void Player::playCard(CardItem *card, bool faceDown, bool tapped)
int tableRow = info->getTableRow(); int tableRow = info->getTableRow();
bool playToStack = SettingsCache::instance().getPlayToStack(); bool playToStack = SettingsCache::instance().getPlayToStack();
QString currentZone = card->getZone()->getName(); QString currentZone = card->getZone()->getName();
if (currentZone == "stack" && tableRow == 3) { if (currentZone == ZONE_STACK && tableRow == 3) {
cmd.set_target_zone("grave"); cmd.set_target_zone(ZONE_GRAVEYARD);
cmd.set_x(0); cmd.set_x(0);
cmd.set_y(0); cmd.set_y(0);
} else if (!faceDown && } else if (!faceDown &&
((!playToStack && tableRow == 3) || ((playToStack && tableRow != 0) && currentZone != "stack"))) { ((!playToStack && tableRow == 3) || ((playToStack && tableRow != 0) && currentZone != ZONE_STACK))) {
cmd.set_target_zone("stack"); cmd.set_target_zone(ZONE_STACK);
cmd.set_x(-1); cmd.set_x(-1);
cmd.set_y(0); cmd.set_y(0);
} else { } else {
@ -2659,7 +2659,7 @@ void Player::playCard(CardItem *card, bool faceDown, bool tapped)
} }
cardToMove->set_tapped(faceDown ? false : tapped); cardToMove->set_tapped(faceDown ? false : tapped);
if (tableRow != 3) if (tableRow != 3)
cmd.set_target_zone("table"); cmd.set_target_zone(ZONE_TABLE);
cmd.set_x(gridPoint.x()); cmd.set_x(gridPoint.x());
cmd.set_y(gridPoint.y()); cmd.set_y(gridPoint.y());
} }
@ -2893,7 +2893,7 @@ bool Player::clearCardsToDelete()
void Player::actMoveCardXCardsFromTop() void Player::actMoveCardXCardsFromTop()
{ {
int deckSize = zones.value("deck")->getCards().size() + 1; // add the card to move to the deck int deckSize = zones.value(ZONE_DECK)->getCards().size() + 1; // add the card to move to the deck
bool ok; bool ok;
int number = int number =
QInputDialog::getInt(game, tr("Place card X cards from top of library"), QInputDialog::getInt(game, tr("Place card X cards from top of library"),
@ -2931,7 +2931,7 @@ void Player::actMoveCardXCardsFromTop()
cmd->set_start_zone(startZone.toStdString()); cmd->set_start_zone(startZone.toStdString());
cmd->mutable_cards_to_move()->CopyFrom(idList); cmd->mutable_cards_to_move()->CopyFrom(idList);
cmd->set_target_player_id(getId()); cmd->set_target_player_id(getId());
cmd->set_target_zone("deck"); cmd->set_target_zone(ZONE_DECK);
cmd->set_x(number); cmd->set_x(number);
cmd->set_y(0); cmd->set_y(0);
commandList.append(cmd); commandList.append(cmd);
@ -3001,7 +3001,7 @@ void Player::cardMenuAction()
} }
case cmClone: { case cmClone: {
auto *cmd = new Command_CreateToken; auto *cmd = new Command_CreateToken;
cmd->set_zone("table"); cmd->set_zone(ZONE_TABLE);
cmd->set_card_name(card->getName().toStdString()); cmd->set_card_name(card->getName().toStdString());
cmd->set_color(card->getColor().toStdString()); cmd->set_color(card->getColor().toStdString());
cmd->set_pt(card->getPT().toStdString()); cmd->set_pt(card->getPT().toStdString());
@ -3031,13 +3031,13 @@ void Player::cardMenuAction()
cmd->set_start_zone(startZone.toStdString()); cmd->set_start_zone(startZone.toStdString());
cmd->mutable_cards_to_move()->CopyFrom(idList); cmd->mutable_cards_to_move()->CopyFrom(idList);
cmd->set_target_player_id(getId()); cmd->set_target_player_id(getId());
cmd->set_target_zone("deck"); cmd->set_target_zone(ZONE_DECK);
cmd->set_x(0); cmd->set_x(0);
cmd->set_y(0); cmd->set_y(0);
if (idList.card_size() > 1) { if (idList.card_size() > 1) {
auto *scmd = new Command_Shuffle; auto *scmd = new Command_Shuffle;
scmd->set_zone_name("deck"); scmd->set_zone_name(ZONE_DECK);
scmd->set_start(0); scmd->set_start(0);
scmd->set_end(idList.card_size()); scmd->set_end(idList.card_size());
// Server process events backwards, so... // Server process events backwards, so...
@ -3053,13 +3053,13 @@ void Player::cardMenuAction()
cmd->set_start_zone(startZone.toStdString()); cmd->set_start_zone(startZone.toStdString());
cmd->mutable_cards_to_move()->CopyFrom(idList); cmd->mutable_cards_to_move()->CopyFrom(idList);
cmd->set_target_player_id(getId()); cmd->set_target_player_id(getId());
cmd->set_target_zone("deck"); cmd->set_target_zone(ZONE_DECK);
cmd->set_x(-1); cmd->set_x(-1);
cmd->set_y(0); cmd->set_y(0);
if (idList.card_size() > 1) { if (idList.card_size() > 1) {
auto *scmd = new Command_Shuffle; auto *scmd = new Command_Shuffle;
scmd->set_zone_name("deck"); scmd->set_zone_name(ZONE_DECK);
scmd->set_start(-idList.card_size()); scmd->set_start(-idList.card_size());
scmd->set_end(-1); scmd->set_end(-1);
// Server process events backwards, so... // Server process events backwards, so...
@ -3075,7 +3075,7 @@ void Player::cardMenuAction()
cmd->set_start_zone(startZone.toStdString()); cmd->set_start_zone(startZone.toStdString());
cmd->mutable_cards_to_move()->CopyFrom(idList); cmd->mutable_cards_to_move()->CopyFrom(idList);
cmd->set_target_player_id(getId()); cmd->set_target_player_id(getId());
cmd->set_target_zone("hand"); cmd->set_target_zone(ZONE_HAND);
cmd->set_x(0); cmd->set_x(0);
cmd->set_y(0); cmd->set_y(0);
commandList.append(cmd); commandList.append(cmd);
@ -3087,7 +3087,7 @@ void Player::cardMenuAction()
cmd->set_start_zone(startZone.toStdString()); cmd->set_start_zone(startZone.toStdString());
cmd->mutable_cards_to_move()->CopyFrom(idList); cmd->mutable_cards_to_move()->CopyFrom(idList);
cmd->set_target_player_id(getId()); cmd->set_target_player_id(getId());
cmd->set_target_zone("grave"); cmd->set_target_zone(ZONE_GRAVEYARD);
cmd->set_x(0); cmd->set_x(0);
cmd->set_y(0); cmd->set_y(0);
commandList.append(cmd); commandList.append(cmd);
@ -3099,7 +3099,7 @@ void Player::cardMenuAction()
cmd->set_start_zone(startZone.toStdString()); cmd->set_start_zone(startZone.toStdString());
cmd->mutable_cards_to_move()->CopyFrom(idList); cmd->mutable_cards_to_move()->CopyFrom(idList);
cmd->set_target_player_id(getId()); cmd->set_target_player_id(getId());
cmd->set_target_zone("rfg"); cmd->set_target_zone(ZONE_EXILE);
cmd->set_x(0); cmd->set_x(0);
cmd->set_y(0); cmd->set_y(0);
commandList.append(cmd); commandList.append(cmd);
@ -3580,7 +3580,7 @@ void Player::updateCardMenu(const CardItem *card)
} }
if (card->getZone()) { if (card->getZone()) {
if (card->getZone()->getName() == "table") { if (card->getZone()->getName() == ZONE_TABLE) {
// Card is on the battlefield // Card is on the battlefield
if (ptMenu->isEmpty()) { if (ptMenu->isEmpty()) {
@ -3633,7 +3633,7 @@ void Player::updateCardMenu(const CardItem *card)
cardMenu->addAction(aSetCounter[i]); cardMenu->addAction(aSetCounter[i]);
} }
cardMenu->addSeparator(); cardMenu->addSeparator();
} else if (card->getZone()->getName() == "stack") { } else if (card->getZone()->getName() == ZONE_STACK) {
// Card is on the stack // Card is on the stack
cardMenu->addAction(aDrawArrow); cardMenu->addAction(aDrawArrow);
cardMenu->addSeparator(); cardMenu->addSeparator();
@ -3644,7 +3644,7 @@ void Player::updateCardMenu(const CardItem *card)
addRelatedCardView(card, cardMenu); addRelatedCardView(card, cardMenu);
addRelatedCardActions(card, cardMenu); addRelatedCardActions(card, cardMenu);
} else if (card->getZone()->getName() == "rfg" || card->getZone()->getName() == "grave") { } else if (card->getZone()->getName() == ZONE_EXILE || card->getZone()->getName() == ZONE_GRAVEYARD) {
// Card is in the graveyard or exile // Card is in the graveyard or exile
cardMenu->addAction(aSelectAll); cardMenu->addAction(aSelectAll);
cardMenu->addAction(aPlay); cardMenu->addAction(aPlay);
@ -3675,7 +3675,7 @@ void Player::updateCardMenu(const CardItem *card)
cardMenu->addMenu(moveMenu); cardMenu->addMenu(moveMenu);
} }
} else { } else {
if (card->getZone() && card->getZone()->getName() != "hand") { if (card->getZone() && card->getZone()->getName() != ZONE_HAND) {
cardMenu->addAction(aDrawArrow); cardMenu->addAction(aDrawArrow);
cardMenu->addSeparator(); cardMenu->addSeparator();
addRelatedCardView(card, cardMenu); addRelatedCardView(card, cardMenu);

View file

@ -68,9 +68,9 @@ void CardZone::clearContents()
QString CardZone::getTranslatedName(bool theirOwn, GrammaticalCase gc) const QString CardZone::getTranslatedName(bool theirOwn, GrammaticalCase gc) const
{ {
QString ownerName = player->getName(); QString ownerName = player->getName();
if (name == "hand") if (name == ZONE_HAND)
return (theirOwn ? tr("their hand", "nominative") : tr("%1's hand", "nominative").arg(ownerName)); return (theirOwn ? tr("their hand", "nominative") : tr("%1's hand", "nominative").arg(ownerName));
else if (name == "deck") else if (name == ZONE_DECK)
switch (gc) { switch (gc) {
case CaseLookAtZone: case CaseLookAtZone:
return (theirOwn ? tr("their library", "look at zone") return (theirOwn ? tr("their library", "look at zone")
@ -86,11 +86,11 @@ QString CardZone::getTranslatedName(bool theirOwn, GrammaticalCase gc) const
default: default:
return (theirOwn ? tr("their library", "nominative") : tr("%1's library", "nominative").arg(ownerName)); return (theirOwn ? tr("their library", "nominative") : tr("%1's library", "nominative").arg(ownerName));
} }
else if (name == "grave") else if (name == ZONE_GRAVEYARD)
return (theirOwn ? tr("their graveyard", "nominative") : tr("%1's graveyard", "nominative").arg(ownerName)); return (theirOwn ? tr("their graveyard", "nominative") : tr("%1's graveyard", "nominative").arg(ownerName));
else if (name == "rfg") else if (name == ZONE_EXILE)
return (theirOwn ? tr("their exile", "nominative") : tr("%1's exile", "nominative").arg(ownerName)); return (theirOwn ? tr("their exile", "nominative") : tr("%1's exile", "nominative").arg(ownerName));
else if (name == "sb") else if (name == ZONE_SIDEBOARD)
switch (gc) { switch (gc) {
case CaseLookAtZone: case CaseLookAtZone:
return (theirOwn ? tr("their sideboard", "look at zone") return (theirOwn ? tr("their sideboard", "look at zone")

View file

@ -10,7 +10,7 @@
#include <QPainter> #include <QPainter>
HandZone::HandZone(Player *_p, bool _contentsKnown, int _zoneHeight, QGraphicsItem *parent) HandZone::HandZone(Player *_p, bool _contentsKnown, int _zoneHeight, QGraphicsItem *parent)
: SelectZone(_p, "hand", false, false, _contentsKnown, parent), zoneHeight(_zoneHeight) : SelectZone(_p, ZONE_HAND, false, false, _contentsKnown, parent), zoneHeight(_zoneHeight)
{ {
connect(themeManager, SIGNAL(themeChanged()), this, SLOT(updateBg())); connect(themeManager, SIGNAL(themeChanged()), this, SLOT(updateBg()));
updateBg(); updateBg();

View file

@ -12,7 +12,7 @@
#include <QSet> #include <QSet>
StackZone::StackZone(Player *_p, int _zoneHeight, QGraphicsItem *parent) StackZone::StackZone(Player *_p, int _zoneHeight, QGraphicsItem *parent)
: SelectZone(_p, "stack", false, false, true, parent), zoneHeight(_zoneHeight) : SelectZone(_p, ZONE_STACK, false, false, true, parent), zoneHeight(_zoneHeight)
{ {
connect(themeManager, SIGNAL(themeChanged()), this, SLOT(updateBg())); connect(themeManager, SIGNAL(themeChanged()), this, SLOT(updateBg()));
updateBg(); updateBg();

View file

@ -20,7 +20,7 @@ const QColor TableZone::GRADIENT_COLOR = QColor(255, 255, 255, 150);
const QColor TableZone::GRADIENT_COLORLESS = QColor(255, 255, 255, 0); const QColor TableZone::GRADIENT_COLORLESS = QColor(255, 255, 255, 0);
TableZone::TableZone(Player *_p, QGraphicsItem *parent) TableZone::TableZone(Player *_p, QGraphicsItem *parent)
: SelectZone(_p, "table", true, false, true, parent), active(false) : SelectZone(_p, ZONE_TABLE, true, false, true, parent), active(false)
{ {
connect(themeManager, SIGNAL(themeChanged()), this, SLOT(updateBg())); connect(themeManager, SIGNAL(themeChanged()), this, SLOT(updateBg()));
connect(&SettingsCache::instance(), SIGNAL(invertVerticalCoordinateChanged()), this, SLOT(reorganizeCards())); connect(&SettingsCache::instance(), SIGNAL(invertVerticalCoordinateChanged()), this, SLOT(reorganizeCards()));
@ -218,7 +218,7 @@ void TableZone::toggleTapped()
auto isCardOnTable = [](const QGraphicsItem *item) { auto isCardOnTable = [](const QGraphicsItem *item) {
if (auto card = qgraphicsitem_cast<const CardItem *>(item)) { if (auto card = qgraphicsitem_cast<const CardItem *>(item)) {
return card->getZone()->getName() == "table"; return card->getZone()->getName() == ZONE_TABLE;
} }
return false; return false;
}; };

View file

@ -14,43 +14,43 @@
const QString &MessageLogWidget::tableConstant() const const QString &MessageLogWidget::tableConstant() const
{ {
static const QString constant("table"); static const QString constant(ZONE_TABLE);
return constant; return constant;
} }
const QString &MessageLogWidget::graveyardConstant() const const QString &MessageLogWidget::graveyardConstant() const
{ {
static const QString constant("grave"); static const QString constant(ZONE_GRAVEYARD);
return constant; return constant;
} }
const QString &MessageLogWidget::exileConstant() const const QString &MessageLogWidget::exileConstant() const
{ {
static const QString constant("rfg"); static const QString constant(ZONE_EXILE);
return constant; return constant;
} }
const QString &MessageLogWidget::handConstant() const const QString &MessageLogWidget::handConstant() const
{ {
static const QString constant("hand"); static const QString constant(ZONE_HAND);
return constant; return constant;
} }
const QString &MessageLogWidget::deckConstant() const const QString &MessageLogWidget::deckConstant() const
{ {
static const QString constant("deck"); static const QString constant(ZONE_DECK);
return constant; return constant;
} }
const QString &MessageLogWidget::sideboardConstant() const const QString &MessageLogWidget::sideboardConstant() const
{ {
static const QString constant("sb"); static const QString constant(ZONE_SIDEBOARD);
return constant; return constant;
} }
const QString &MessageLogWidget::stackConstant() const const QString &MessageLogWidget::stackConstant() const
{ {
static const QString constant("stack"); static const QString constant(ZONE_STACK);
return constant; return constant;
} }

View file

@ -6,6 +6,7 @@
#include <QKeySequence> #include <QKeySequence>
#include <QObject> #include <QObject>
#include <QSettings> #include <QSettings>
#include "../common/card_zones.h"
class ShortcutGroup class ShortcutGroup
{ {
@ -466,7 +467,7 @@ private:
parseSequenceString("Ctrl+Del"), parseSequenceString("Ctrl+Del"),
ShortcutGroup::Move_selected)}, ShortcutGroup::Move_selected)},
{"Player/aMoveToHand", {"Player/aMoveToHand",
ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Hand"), parseSequenceString(""), ShortcutGroup::Move_selected)}, ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", ZONE_HAND), parseSequenceString(""), ShortcutGroup::Move_selected)},
{"Player/aMoveToTopLibrary", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Top of Library"), {"Player/aMoveToTopLibrary", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Top of Library"),
parseSequenceString(""), parseSequenceString(""),
ShortcutGroup::Move_selected)}, ShortcutGroup::Move_selected)},
@ -477,7 +478,7 @@ private:
parseSequenceString(""), parseSequenceString(""),
ShortcutGroup::Move_selected)}, ShortcutGroup::Move_selected)},
{"Player/aViewHand", {"Player/aViewHand",
ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Hand"), parseSequenceString(""), ShortcutGroup::View)}, ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", ZONE_HAND), parseSequenceString(""), ShortcutGroup::View)},
{"Player/aViewGraveyard", {"Player/aViewGraveyard",
ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Graveyard"), parseSequenceString("F4"), ShortcutGroup::View)}, ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Graveyard"), parseSequenceString("F4"), ShortcutGroup::View)},
{"Player/aViewLibrary", {"Player/aViewLibrary",
@ -493,7 +494,7 @@ private:
{"Player/aCloseMostRecentZoneView", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Close Recent View"), {"Player/aCloseMostRecentZoneView", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Close Recent View"),
parseSequenceString("Esc"), parseSequenceString("Esc"),
ShortcutGroup::View)}, ShortcutGroup::View)},
{"Player/aMoveTopToPlay", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Stack"), {"Player/aMoveTopToPlay", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", ZONE_STACK),
parseSequenceString("Ctrl+Y"), parseSequenceString("Ctrl+Y"),
ShortcutGroup::Move_top)}, ShortcutGroup::Move_top)},
{"Player/aMoveTopToPlayFaceDown", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Battlefield, Face Down"), {"Player/aMoveTopToPlayFaceDown", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Battlefield, Face Down"),
@ -517,7 +518,7 @@ private:
parseSequenceString(""), parseSequenceString(""),
ShortcutGroup::Move_top)}, ShortcutGroup::Move_top)},
{"Player/aMoveBottomToPlay", {"Player/aMoveBottomToPlay",
ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Stack"), parseSequenceString(""), ShortcutGroup::Move_bottom)}, ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", ZONE_STACK), parseSequenceString(""), ShortcutGroup::Move_bottom)},
{"Player/aMoveBottomToPlayFaceDown", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Battlefield, Face Down"), {"Player/aMoveBottomToPlayFaceDown", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Battlefield, Face Down"),
parseSequenceString(""), parseSequenceString(""),
ShortcutGroup::Move_bottom)}, ShortcutGroup::Move_bottom)},

12
common/card_zones.h Normal file
View file

@ -0,0 +1,12 @@
#ifndef COCKATRICE_CARD_ZONES_H
#define COCKATRICE_CARD_ZONES_H
#define ZONE_DECK "deck"
#define ZONE_SIDEBOARD "sb"
#define ZONE_TABLE "table"
#define ZONE_HAND "hand"
#define ZONE_STACK "stack"
#define ZONE_GRAVEYARD "grave"
#define ZONE_EXILE "rfg"
#endif // COCKATRICE_CARD_ZONES_H

View file

@ -80,6 +80,7 @@
#include "server_game.h" #include "server_game.h"
#include "server_room.h" #include "server_room.h"
#include "trice_limits.h" #include "trice_limits.h"
#include "../common/card_zones.h"
#include <QDebug> #include <QDebug>
#include <algorithm> #include <algorithm>
@ -168,15 +169,15 @@ void Server_Player::setupZones()
// ------------------------------------------------------------------ // ------------------------------------------------------------------
// Create zones // Create zones
auto *deckZone = new Server_CardZone(this, "deck", false, ServerInfo_Zone::HiddenZone); auto *deckZone = new Server_CardZone(this, ZONE_DECK, false, ServerInfo_Zone::HiddenZone);
addZone(deckZone); addZone(deckZone);
auto *sbZone = new Server_CardZone(this, "sb", false, ServerInfo_Zone::HiddenZone); auto *sbZone = new Server_CardZone(this, ZONE_SIDEBOARD, false, ServerInfo_Zone::HiddenZone);
addZone(sbZone); addZone(sbZone);
addZone(new Server_CardZone(this, "table", true, ServerInfo_Zone::PublicZone)); addZone(new Server_CardZone(this, ZONE_TABLE, true, ServerInfo_Zone::PublicZone));
addZone(new Server_CardZone(this, "hand", false, ServerInfo_Zone::PrivateZone)); addZone(new Server_CardZone(this, ZONE_HAND, false, ServerInfo_Zone::PrivateZone));
addZone(new Server_CardZone(this, "stack", false, ServerInfo_Zone::PublicZone)); addZone(new Server_CardZone(this, ZONE_STACK, false, ServerInfo_Zone::PublicZone));
addZone(new Server_CardZone(this, "grave", false, ServerInfo_Zone::PublicZone)); addZone(new Server_CardZone(this, ZONE_GRAVEYARD, false, ServerInfo_Zone::PublicZone));
addZone(new Server_CardZone(this, "rfg", false, ServerInfo_Zone::PublicZone)); addZone(new Server_CardZone(this, ZONE_EXILE, false, ServerInfo_Zone::PublicZone));
addCounter(new Server_Counter(0, "life", makeColor(255, 255, 255), 25, 20)); addCounter(new Server_Counter(0, "life", makeColor(255, 255, 255), 25, 20));
addCounter(new Server_Counter(1, "w", makeColor(255, 255, 150), 20, 0)); addCounter(new Server_Counter(1, "w", makeColor(255, 255, 150), 20, 0));
@ -322,8 +323,8 @@ void Server_Player::addCounter(Server_Counter *counter)
Response::ResponseCode Server_Player::drawCards(GameEventStorage &ges, int number) Response::ResponseCode Server_Player::drawCards(GameEventStorage &ges, int number)
{ {
Server_CardZone *deckZone = zones.value("deck"); Server_CardZone *deckZone = zones.value(ZONE_DECK);
Server_CardZone *handZone = zones.value("hand"); Server_CardZone *handZone = zones.value(ZONE_HAND);
if (deckZone->getCards().size() < number) { if (deckZone->getCards().size() < number) {
number = deckZone->getCards().size(); number = deckZone->getCards().size();
} }
@ -480,7 +481,7 @@ Response::ResponseCode Server_Player::moveCard(GameEventStorage &ges,
// "Undo draw" should only remain valid if the just-drawn card stays within the user's hand (e.g., they only // "Undo draw" should only remain valid if the just-drawn card stays within the user's hand (e.g., they only
// reorder their hand). If a just-drawn card leaves the hand then remove cards before it from the list // reorder their hand). If a just-drawn card leaves the hand then remove cards before it from the list
// (Ignore the case where the card is currently being un-drawn.) // (Ignore the case where the card is currently being un-drawn.)
if (startzone->getName() == "hand" && targetzone->getName() != "hand" && !undoingDraw) { if (startzone->getName() == ZONE_HAND && targetzone->getName() != ZONE_HAND && !undoingDraw) {
int index = lastDrawList.lastIndexOf(card->getId()); int index = lastDrawList.lastIndexOf(card->getId());
if (index != -1) { if (index != -1) {
lastDrawList.erase(lastDrawList.begin(), lastDrawList.begin() + index); lastDrawList.erase(lastDrawList.begin(), lastDrawList.begin() + index);
@ -1002,11 +1003,11 @@ Server_Player::cmdShuffle(const Command_Shuffle &cmd, ResponseContainer & /*rc*/
return Response::RespContextError; return Response::RespContextError;
} }
if (cmd.has_zone_name() && cmd.zone_name() != "deck") { if (cmd.has_zone_name() && cmd.zone_name() != ZONE_DECK) {
return Response::RespFunctionNotAllowed; return Response::RespFunctionNotAllowed;
} }
Server_CardZone *zone = zones.value("deck"); Server_CardZone *zone = zones.value(ZONE_DECK);
if (!zone) { if (!zone) {
return Response::RespNameNotFound; return Response::RespNameNotFound;
} }
@ -1037,8 +1038,8 @@ Server_Player::cmdMulligan(const Command_Mulligan &cmd, ResponseContainer & /*rc
return Response::RespContextError; return Response::RespContextError;
} }
Server_CardZone *hand = zones.value("hand"); Server_CardZone *hand = zones.value(ZONE_HAND);
Server_CardZone *_deck = zones.value("deck"); Server_CardZone *_deck = zones.value(ZONE_DECK);
int number = cmd.number(); int number = cmd.number();
if (!hand->getCards().isEmpty()) { if (!hand->getCards().isEmpty()) {
@ -1131,7 +1132,7 @@ Server_Player::cmdUndoDraw(const Command_UndoDraw & /*cmd*/, ResponseContainer &
Response::ResponseCode retVal; Response::ResponseCode retVal;
auto *cardToMove = new CardToMove; auto *cardToMove = new CardToMove;
cardToMove->set_card_id(lastDrawList.takeLast()); cardToMove->set_card_id(lastDrawList.takeLast());
retVal = moveCard(ges, zones.value("hand"), QList<const CardToMove *>() << cardToMove, zones.value("deck"), 0, 0, retVal = moveCard(ges, zones.value(ZONE_HAND), QList<const CardToMove *>() << cardToMove, zones.value(ZONE_DECK), 0, 0,
false, true); false, true);
delete cardToMove; delete cardToMove;

File diff suppressed because one or more lines are too long