zoneview improvement

This commit is contained in:
Max-Wilhelm Bruker 2009-08-19 18:55:21 +02:00
parent ff4b451e55
commit cc8de80db8
14 changed files with 277 additions and 176 deletions

View file

@ -93,6 +93,8 @@ void CardItem::setAttacking(bool _attacking)
void CardItem::setFaceDown(bool _facedown) void CardItem::setFaceDown(bool _facedown)
{ {
facedown = _facedown; facedown = _facedown;
if (facedown)
setName(QString());
update(); update();
} }

View file

@ -47,6 +47,7 @@ void CardZone::mousePressEvent(QGraphicsSceneMouseEvent *event)
void CardZone::addCard(CardItem *card, bool reorganize, int x, int y) void CardZone::addCard(CardItem *card, bool reorganize, int x, int y)
{ {
if (view) if (view)
if ((x <= view->getCards().size()) || (view->getNumberCards() == -1))
view->addCard(new CardItem(player->getDb(), card->getName(), card->getId()), reorganize, x, y); view->addCard(new CardItem(player->getDb(), card->getName(), card->getId()), reorganize, x, y);
addCardImpl(card, x, y); addCardImpl(card, x, y);

View file

@ -2,6 +2,7 @@
#include <QMenu> #include <QMenu>
#include <QMessageBox> #include <QMessageBox>
#include <QSettings> #include <QSettings>
#include <stdlib.h>
#include "serverplayer.h" #include "serverplayer.h"
#include "game.h" #include "game.h"
#include "servereventdata.h" #include "servereventdata.h"
@ -80,19 +81,17 @@ Game::Game(CardDatabase *_db, Client *_client, QGraphicsScene *_scene, QMenu *_a
initSayMenu(); initSayMenu();
aTap = new QAction(tr("&Tap"), this); aTap = new QAction(tr("&Tap"), this);
connect(aTap, SIGNAL(triggered()), this, SLOT(actTap()));
aUntap = new QAction(tr("&Untap"), this); aUntap = new QAction(tr("&Untap"), this);
connect(aUntap, SIGNAL(triggered()), this, SLOT(actUntap()));
aDoesntUntap = new QAction(tr("Toggle &normal untapping"), this); aDoesntUntap = new QAction(tr("Toggle &normal untapping"), this);
connect(aDoesntUntap, SIGNAL(triggered()), this, SLOT(actDoesntUntap()));
aFlip = new QAction(tr("&Flip"), this); aFlip = new QAction(tr("&Flip"), this);
connect(aFlip, SIGNAL(triggered()), this, SLOT(actFlip()));
aAddCounter = new QAction(tr("&Add counter"), this); aAddCounter = new QAction(tr("&Add counter"), this);
connect(aAddCounter, SIGNAL(triggered()), this, SLOT(actAddCounter()));
aRemoveCounter = new QAction(tr("&Remove counter"), this); aRemoveCounter = new QAction(tr("&Remove counter"), this);
connect(aRemoveCounter, SIGNAL(triggered()), this, SLOT(actRemoveCounter()));
aSetCounters = new QAction(tr("&Set counters..."), this); aSetCounters = new QAction(tr("&Set counters..."), this);
connect(aSetCounters, SIGNAL(triggered()), this, SLOT(actSetCounters())); connect(aSetCounters, SIGNAL(triggered()), this, SLOT(actSetCounters()));
aMoveToTopLibrary = new QAction(tr("&top of library"), this);
aMoveToBottomLibrary = new QAction(tr("&bottom of library"), this);
aMoveToGraveyard = new QAction(tr("&graveyard"), this);
aMoveToExile = new QAction(tr("&exile"), this);
cardMenu->addAction(aTap); cardMenu->addAction(aTap);
cardMenu->addAction(aUntap); cardMenu->addAction(aUntap);
@ -103,6 +102,30 @@ Game::Game(CardDatabase *_db, Client *_client, QGraphicsScene *_scene, QMenu *_a
cardMenu->addAction(aAddCounter); cardMenu->addAction(aAddCounter);
cardMenu->addAction(aRemoveCounter); cardMenu->addAction(aRemoveCounter);
cardMenu->addAction(aSetCounters); cardMenu->addAction(aSetCounters);
cardMenu->addSeparator();
moveMenu = cardMenu->addMenu(tr("&Move to"));
moveMenu->addAction(aMoveToTopLibrary);
moveMenu->addAction(aMoveToBottomLibrary);
moveMenu->addAction(aMoveToGraveyard);
moveMenu->addAction(aMoveToExile);
cardMenuHandlers.insert(aTap, &Game::actTap);
cardMenuHandlers.insert(aUntap, &Game::actUntap);
cardMenuHandlers.insert(aDoesntUntap, &Game::actDoesntUntap);
cardMenuHandlers.insert(aFlip, &Game::actFlip);
cardMenuHandlers.insert(aAddCounter, &Game::actAddCounter);
cardMenuHandlers.insert(aRemoveCounter, &Game::actRemoveCounter);
cardMenuHandlers.insert(aMoveToTopLibrary, &Game::actMoveToTopLibrary);
cardMenuHandlers.insert(aMoveToBottomLibrary, &Game::actMoveToBottomLibrary);
cardMenuHandlers.insert(aMoveToGraveyard, &Game::actMoveToGraveyard);
cardMenuHandlers.insert(aMoveToExile, &Game::actMoveToExile);
QHashIterator<QAction *, CardMenuHandler> i(cardMenuHandlers);
while (i.hasNext()) {
i.next();
connect(i.key(), SIGNAL(triggered()), this, SLOT(cardMenuAction()));
}
dlgStartGame = new DlgStartGame(db); dlgStartGame = new DlgStartGame(db);
connect(dlgStartGame, SIGNAL(newDeckLoaded(const QStringList &)), client, SLOT(submitDeck(const QStringList &))); connect(dlgStartGame, SIGNAL(newDeckLoaded(const QStringList &)), client, SLOT(submitDeck(const QStringList &)));
@ -367,63 +390,55 @@ void Game::showCardMenu(QPoint p)
cardMenu->exec(p); cardMenu->exec(p);
} }
void Game::actTap() void Game::cardMenuAction()
{ {
QListIterator<QGraphicsItem *> i(scene->selectedItems()); // Determine the appropriate handler function.
while (i.hasNext()) { CardMenuHandler handler = cardMenuHandlers.value(static_cast<QAction *>(sender()));
CardItem *temp = (CardItem *) i.next();
if (!temp->getTapped()) // The list of selected items is randomly shuffled.
client->setCardAttr(qgraphicsitem_cast<CardZone *>(temp->parentItem())->getName(), temp->getId(), "tapped", "1"); QList<QGraphicsItem *> sel = scene->selectedItems();
while (!sel.isEmpty()) {
unsigned int i = (unsigned int) (((double) sel.size()) * qrand() / (RAND_MAX + 1.0));
qDebug(QString("%1 items left, i=%2").arg(sel.size()).arg(i).toLatin1());
CardItem *card = qgraphicsitem_cast<CardItem *>(sel.takeAt(i));
// For each item, the handler function is called.
(this->*handler)(card);
} }
} }
void Game::actUntap() void Game::actTap(CardItem *card)
{ {
QListIterator<QGraphicsItem *> i(scene->selectedItems()); if (!card->getTapped())
while (i.hasNext()) { client->setCardAttr(qgraphicsitem_cast<CardZone *>(card->parentItem())->getName(), card->getId(), "tapped", "1");
CardItem *temp = (CardItem *) i.next();
if (temp->getTapped())
client->setCardAttr(qgraphicsitem_cast<CardZone *>(temp->parentItem())->getName(), temp->getId(), "tapped", "0");
}
} }
void Game::actDoesntUntap() void Game::actUntap(CardItem *card)
{ {
QListIterator<QGraphicsItem *> i(scene->selectedItems()); if (card->getTapped())
while (i.hasNext()) { client->setCardAttr(qgraphicsitem_cast<CardZone *>(card->parentItem())->getName(), card->getId(), "tapped", "0");
CardItem *temp = (CardItem *) i.next();
client->setCardAttr(qgraphicsitem_cast<CardZone *>(temp->parentItem())->getName(), temp->getId(), "doesnt_untap", QString::number(!temp->getDoesntUntap()));
}
} }
void Game::actFlip() void Game::actDoesntUntap(CardItem *card)
{ {
QListIterator<QGraphicsItem *> i(scene->selectedItems()); client->setCardAttr(qgraphicsitem_cast<CardZone *>(card->parentItem())->getName(), card->getId(), "doesnt_untap", QString::number(!card->getDoesntUntap()));
while (i.hasNext()) {
CardItem *temp = (CardItem *) i.next();
QString zone = qgraphicsitem_cast<CardZone *>(temp->parentItem())->getName();
client->moveCard(temp->getId(), zone, zone, temp->getGridPoint().x(), temp->getGridPoint().y(), !temp->getFaceDown());
}
} }
void Game::actAddCounter() void Game::actFlip(CardItem *card)
{ {
QListIterator<QGraphicsItem *> i(scene->selectedItems()); QString zone = qgraphicsitem_cast<CardZone *>(card->parentItem())->getName();
while (i.hasNext()) { client->moveCard(card->getId(), zone, zone, card->getGridPoint().x(), card->getGridPoint().y(), !card->getFaceDown());
CardItem *temp = (CardItem *) i.next();
if (temp->getCounters() < MAX_COUNTERS_ON_CARD)
client->setCardAttr(qgraphicsitem_cast<CardZone *>(temp->parentItem())->getName(), temp->getId(), "counters", QString::number(temp->getCounters() + 1));
}
} }
void Game::actRemoveCounter() void Game::actAddCounter(CardItem *card)
{ {
QListIterator<QGraphicsItem *> i(scene->selectedItems()); if (card->getCounters() < MAX_COUNTERS_ON_CARD)
while (i.hasNext()) { client->setCardAttr(qgraphicsitem_cast<CardZone *>(card->parentItem())->getName(), card->getId(), "counters", QString::number(card->getCounters() + 1));
CardItem *temp = (CardItem *) i.next(); }
if (temp->getCounters())
client->setCardAttr(qgraphicsitem_cast<CardZone *>(temp->parentItem())->getName(), temp->getId(), "counters", QString::number(temp->getCounters() - 1)); void Game::actRemoveCounter(CardItem *card)
} {
if (card->getCounters())
client->setCardAttr(qgraphicsitem_cast<CardZone *>(card->parentItem())->getName(), card->getId(), "counters", QString::number(card->getCounters() - 1));
} }
void Game::actSetCounters() void Game::actSetCounters()
@ -440,6 +455,30 @@ void Game::actSetCounters()
} }
} }
void Game::actMoveToTopLibrary(CardItem *card)
{
CardZone *startZone = qgraphicsitem_cast<CardZone *>(card->parentItem());
client->moveCard(card->getId(), startZone->getName(), "deck", 0, 0, false);
}
void Game::actMoveToBottomLibrary(CardItem *card)
{
CardZone *startZone = qgraphicsitem_cast<CardZone *>(card->parentItem());
client->moveCard(card->getId(), startZone->getName(), "deck", -1, 0, false);
}
void Game::actMoveToGraveyard(CardItem *card)
{
CardZone *startZone = qgraphicsitem_cast<CardZone *>(card->parentItem());
client->moveCard(card->getId(), startZone->getName(), "grave", 0, 0, false);
}
void Game::actMoveToExile(CardItem *card)
{
CardZone *startZone = qgraphicsitem_cast<CardZone *>(card->parentItem());
client->moveCard(card->getId(), startZone->getName(), "rfg", 0, 0, false);
}
void Game::actSayMessage() void Game::actSayMessage()
{ {
QAction *a = qobject_cast<QAction *>(sender()); QAction *a = qobject_cast<QAction *>(sender());

View file

@ -17,8 +17,12 @@ class Game : public QObject {
private: private:
static const int phaseCount = 11; static const int phaseCount = 11;
QMenu *actionsMenu, *sayMenu, *cardMenu; typedef void (Game::*CardMenuHandler)(CardItem *card);
QHash<QAction *, CardMenuHandler> cardMenuHandlers;
QMenu *actionsMenu, *sayMenu, *cardMenu, *moveMenu;
QAction *aTap, *aUntap, *aDoesntUntap, *aFlip, *aAddCounter, *aRemoveCounter, *aSetCounters, QAction *aTap, *aUntap, *aDoesntUntap, *aFlip, *aAddCounter, *aRemoveCounter, *aSetCounters,
*aMoveToTopLibrary, *aMoveToBottomLibrary, *aMoveToGraveyard, *aMoveToExile,
*aNextPhase, *aNextTurn, *aUntapAll, *aDecLife, *aIncLife, *aSetLife, *aShuffle, *aDraw, *aDrawCards, *aRollDice, *aCreateToken; *aNextPhase, *aNextTurn, *aUntapAll, *aDecLife, *aIncLife, *aSetLife, *aShuffle, *aDraw, *aDrawCards, *aRollDice, *aCreateToken;
DlgStartGame *dlgStartGame; DlgStartGame *dlgStartGame;
@ -32,6 +36,8 @@ private:
Player *addPlayer(int playerId, const QString &playerName, QPointF base, bool local); Player *addPlayer(int playerId, const QString &playerName, QPointF base, bool local);
void initSayMenu(); void initSayMenu();
private slots: private slots:
void cardMenuAction();
void actNextPhase(); void actNextPhase();
void actNextTurn(); void actNextTurn();
void actUntapAll(); void actUntapAll();
@ -45,20 +51,23 @@ private slots:
void actCreateToken(); void actCreateToken();
void showCardMenu(QPoint p); void showCardMenu(QPoint p);
void actDoesntUntap(); void actTap(CardItem *card);
void actFlip(); void actUntap(CardItem *card);
void actAddCounter(); void actDoesntUntap(CardItem *card);
void actRemoveCounter(); void actFlip(CardItem *card);
void actAddCounter(CardItem *card);
void actRemoveCounter(CardItem *card);
void actSetCounters(); void actSetCounters();
void actMoveToTopLibrary(CardItem *card);
void actMoveToBottomLibrary(CardItem *card);
void actMoveToGraveyard(CardItem *card);
void actMoveToExile(CardItem *card);
void actSayMessage(); void actSayMessage();
void gameEvent(const ServerEventData &msg); void gameEvent(const ServerEventData &msg);
void playerListReceived(QList<ServerPlayer *> playerList); void playerListReceived(QList<ServerPlayer *> playerList);
void readyStart(); void readyStart();
public slots:
void actTap();
void actUntap();
signals: signals:
void submitDecklist(); void submitDecklist();
void hoverCard(QString name); void hoverCard(QString name);

View file

@ -24,6 +24,7 @@
#include <QtPlugin> #include <QtPlugin>
#include <QTranslator> #include <QTranslator>
#include <QLibraryInfo> #include <QLibraryInfo>
#include <QDateTime>
#include <QSettings> #include <QSettings>
#include <stdio.h> #include <stdio.h>
@ -66,7 +67,7 @@ int main(int argc, char *argv[])
translator.load(lang); translator.load(lang);
app.installTranslator(&translator); app.installTranslator(&translator);
qsrand(QDateTime::currentDateTime().toTime_t());
MainWindow ui(&translator); MainWindow ui(&translator);
qDebug("main(): MainWindow constructor finished"); qDebug("main(): MainWindow constructor finished");

View file

@ -186,7 +186,7 @@ void MessageLogWidget::logSetDoesntUntap(Player *player, QString cardName, bool
void MessageLogWidget::logDumpZone(Player *player, QString zoneName, QString zoneOwner, int numberCards) void MessageLogWidget::logDumpZone(Player *player, QString zoneName, QString zoneOwner, int numberCards)
{ {
if (numberCards) if (numberCards != -1)
append(tr("%1 is looking at the top %2 cards of %3's %4").arg(sanitizeHtml(player->getName())).arg(numberCards).arg(zoneOwner).arg(zoneName)); append(tr("%1 is looking at the top %2 cards of %3's %4").arg(sanitizeHtml(player->getName())).arg(numberCards).arg(zoneOwner).arg(zoneName));
else else
append(tr("%1 is looking at %2's %3").arg(sanitizeHtml(player->getName())).arg(zoneOwner).arg(zoneName)); append(tr("%1 is looking at %2's %3").arg(sanitizeHtml(player->getName())).arg(zoneOwner).arg(zoneName));

View file

@ -86,7 +86,7 @@ void Player::actMoveHandToBottomLibrary()
void Player::actViewLibrary() void Player::actViewLibrary()
{ {
emit toggleZoneView(this, "deck", 0); emit toggleZoneView(this, "deck", -1);
} }
void Player::actViewTopCards() void Player::actViewTopCards()
@ -101,17 +101,17 @@ void Player::actViewTopCards()
void Player::actViewGraveyard() void Player::actViewGraveyard()
{ {
emit toggleZoneView(this, "grave", 0); emit toggleZoneView(this, "grave", -1);
} }
void Player::actViewRfg() void Player::actViewRfg()
{ {
emit toggleZoneView(this, "rfg", 0); emit toggleZoneView(this, "rfg", -1);
} }
void Player::actViewSideboard() void Player::actViewSideboard()
{ {
emit toggleZoneView(this, "sb", 0); emit toggleZoneView(this, "sb", -1);
} }
void Player::addZone(CardZone *z) void Player::addZone(CardZone *z)

View file

@ -14,7 +14,6 @@ ZoneViewWidget::ZoneViewWidget(CardDatabase *_db, Player *_player, CardZone *_or
qreal y = 10; qreal y = 10;
if (_origZone->getIsShufflable() && (numberCards == 0)) { if (_origZone->getIsShufflable() && (numberCards == 0)) {
qDebug(QString("ZoneViewWidget: bla!").toLatin1());
shuffleCheckBox = new QCheckBox("shuffle when closing"); shuffleCheckBox = new QCheckBox("shuffle when closing");
shuffleCheckBox->setChecked(true); shuffleCheckBox->setChecked(true);
QGraphicsProxyWidget *shuffleProxy = new QGraphicsProxyWidget(this); QGraphicsProxyWidget *shuffleProxy = new QGraphicsProxyWidget(this);

View file

@ -30,7 +30,7 @@ bool ZoneViewZone::initializeCards()
return false; return false;
const CardList &c = origZone->getCards(); const CardList &c = origZone->getCards();
int number = numberCards == 0 ? c.size() : (numberCards < c.size() ? numberCards : c.size()); int number = numberCards == -1 ? c.size() : (numberCards < c.size() ? numberCards : c.size());
for (int i = 0; i < number; i++) { for (int i = 0; i < number; i++) {
CardItem *card = c.at(i); CardItem *card = c.at(i);
addCard(new CardItem(player->getDb(), card->getName(), card->getId(), this), false, i); addCard(new CardItem(player->getDb(), card->getName(), card->getId(), this), false, i);

View file

@ -15,7 +15,7 @@ private:
signals: signals:
void removeZoneViewWidget(ZoneViewWidget *zv); void removeZoneViewWidget(ZoneViewWidget *zv);
public: public:
ZoneViewZone(Player *_p, CardZone *_origZone, int _numberCards = 0, QGraphicsItem *parent = 0); ZoneViewZone(Player *_p, CardZone *_origZone, int _numberCards = -1, QGraphicsItem *parent = 0);
~ZoneViewZone(); ~ZoneViewZone();
QRectF boundingRect() const; QRectF boundingRect() const;
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);

View file

@ -278,131 +278,156 @@
<context> <context>
<name>Game</name> <name>Game</name>
<message> <message>
<location filename="../src/game.cpp" line="25"/> <location filename="../src/game.cpp" line="26"/>
<source>&amp;Untap all permanents</source> <source>&amp;Untap all permanents</source>
<translation>&amp;Enttappe alle bleibenden Karten</translation> <translation>&amp;Enttappe alle bleibenden Karten</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="26"/> <location filename="../src/game.cpp" line="27"/>
<source>Ctrl+U</source> <source>Ctrl+U</source>
<translation>Ctrl+U</translation> <translation>Ctrl+U</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="29"/> <location filename="../src/game.cpp" line="30"/>
<source>&amp;Decrement life</source> <source>&amp;Decrement life</source>
<translation>Lebenspunkt &amp;verringern</translation> <translation>Lebenspunkt &amp;verringern</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="30"/> <location filename="../src/game.cpp" line="31"/>
<source>F11</source> <source>F11</source>
<translation>F11</translation> <translation>F11</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="32"/> <location filename="../src/game.cpp" line="33"/>
<source>&amp;Increment life</source> <source>&amp;Increment life</source>
<translation>Lebens&amp;punkt erhöhen</translation> <translation>Lebens&amp;punkt erhöhen</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="33"/> <location filename="../src/game.cpp" line="34"/>
<source>F12</source> <source>F12</source>
<translation>F12</translation> <translation>F12</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="35"/> <location filename="../src/game.cpp" line="36"/>
<source>&amp;Set life</source> <source>&amp;Set life</source>
<translation>&amp;Setze Lebenspunkte</translation> <translation>&amp;Setze Lebenspunkte</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="36"/> <location filename="../src/game.cpp" line="37"/>
<source>Ctrl+L</source> <source>Ctrl+L</source>
<translation>Ctrl+L</translation> <translation>Ctrl+L</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="39"/> <location filename="../src/game.cpp" line="40"/>
<source>&amp;Shuffle</source> <source>&amp;Shuffle</source>
<translation>Mi&amp;schen</translation> <translation>Mi&amp;schen</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="40"/> <location filename="../src/game.cpp" line="41"/>
<source>Ctrl+S</source> <source>Ctrl+S</source>
<translation>Ctrl+S</translation> <translation>Ctrl+S</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="42"/> <location filename="../src/game.cpp" line="43"/>
<source>&amp;Draw a card</source> <source>&amp;Draw a card</source>
<translation>Karte &amp;ziehen</translation> <translation>Karte &amp;ziehen</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="43"/> <location filename="../src/game.cpp" line="44"/>
<source>Ctrl+D</source> <source>Ctrl+D</source>
<translation>Ctrl+D</translation> <translation>Ctrl+D</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="45"/> <location filename="../src/game.cpp" line="46"/>
<source>D&amp;raw cards...</source> <source>D&amp;raw cards...</source>
<translation>Ka&amp;rten ziehen...</translation> <translation>Ka&amp;rten ziehen...</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="47"/> <location filename="../src/game.cpp" line="48"/>
<source>Ctrl+E</source> <source>Ctrl+E</source>
<translation>Ctrl+E</translation> <translation>Ctrl+E</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="48"/> <location filename="../src/game.cpp" line="49"/>
<source>R&amp;oll dice...</source> <source>R&amp;oll dice...</source>
<translation>&amp;Würfeln...</translation> <translation>&amp;Würfeln...</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="49"/> <location filename="../src/game.cpp" line="50"/>
<source>Ctrl+I</source> <source>Ctrl+I</source>
<translation>Ctrl+I</translation> <translation>Ctrl+I</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="52"/> <location filename="../src/game.cpp" line="53"/>
<source>&amp;Create token...</source> <source>&amp;Create token...</source>
<translation>&amp;Token erstellen...</translation> <translation>&amp;Token erstellen...</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="53"/> <location filename="../src/game.cpp" line="54"/>
<source>Ctrl+T</source> <source>Ctrl+T</source>
<translation>Ctrl+T</translation> <translation>Ctrl+T</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="56"/> <location filename="../src/game.cpp" line="57"/>
<source>Next &amp;phase</source> <source>Next &amp;phase</source>
<translation>Nächste &amp;Phase</translation> <translation>Nächste &amp;Phase</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="57"/> <location filename="../src/game.cpp" line="58"/>
<source>Ctrl+Space</source> <source>Ctrl+Space</source>
<translation>Ctrl+Space</translation> <translation>Ctrl+Space</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="59"/> <location filename="../src/game.cpp" line="60"/>
<source>Next &amp;turn</source> <source>Next &amp;turn</source>
<translation>Nächster &amp;Zug</translation> <translation>Nächster &amp;Zug</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="60"/> <location filename="../src/game.cpp" line="61"/>
<source>Ctrl+Enter</source> <source>Ctrl+Enter</source>
<translation>Ctrl+Enter</translation> <translation>Ctrl+Enter</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="60"/> <location filename="../src/game.cpp" line="61"/>
<source>Ctrl+Return</source> <source>Ctrl+Return</source>
<translation>Ctrl+Return</translation> <translation>Ctrl+Return</translation>
</message> </message>
<message>
<location filename="../src/game.cpp" line="91"/>
<source>&amp;top of library</source>
<translation>&amp;auf die Bibliothek</translation>
</message>
<message>
<location filename="../src/game.cpp" line="92"/>
<source>&amp;bottom of library</source>
<translation>&amp;unter die Bibliothek</translation>
</message>
<message>
<location filename="../src/game.cpp" line="93"/>
<source>&amp;graveyard</source>
<translation>in den &amp;Friedhof</translation>
</message>
<message>
<location filename="../src/game.cpp" line="94"/>
<source>&amp;exile</source>
<translation>ins &amp;Exil</translation>
</message>
<message>
<location filename="../src/game.cpp" line="106"/>
<source>&amp;Move to</source>
<translation>&amp;Verschieben</translation>
</message>
<message> <message>
<source>&amp;Edit messages...</source> <source>&amp;Edit messages...</source>
<translation type="obsolete">Mitteilungen &amp;bearbeiten...</translation> <translation type="obsolete">Mitteilungen &amp;bearbeiten...</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="79"/> <location filename="../src/game.cpp" line="80"/>
<source>S&amp;ay</source> <source>S&amp;ay</source>
<translation>&amp;Sagen</translation> <translation>&amp;Sagen</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="82"/> <location filename="../src/game.cpp" line="83"/>
<source>&amp;Tap</source> <source>&amp;Tap</source>
<translation>&amp;Tappen</translation> <translation>&amp;Tappen</translation>
</message> </message>
@ -412,27 +437,27 @@
<translation>E&amp;nttappen</translation> <translation>E&amp;nttappen</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="86"/> <location filename="../src/game.cpp" line="85"/>
<source>Toggle &amp;normal untapping</source> <source>Toggle &amp;normal untapping</source>
<translation>&amp;Normales enttappen umschalten</translation> <translation>&amp;Normales enttappen umschalten</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="88"/> <location filename="../src/game.cpp" line="86"/>
<source>&amp;Flip</source> <source>&amp;Flip</source>
<translation>&amp;Umdrehen</translation> <translation>&amp;Umdrehen</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="90"/> <location filename="../src/game.cpp" line="87"/>
<source>&amp;Add counter</source> <source>&amp;Add counter</source>
<translation>Zählm&amp;arke hinzufügen</translation> <translation>Zählm&amp;arke hinzufügen</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="92"/> <location filename="../src/game.cpp" line="88"/>
<source>&amp;Remove counter</source> <source>&amp;Remove counter</source>
<translation>Zählma&amp;rke entfernen</translation> <translation>Zählma&amp;rke entfernen</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="94"/> <location filename="../src/game.cpp" line="89"/>
<source>&amp;Set counters...</source> <source>&amp;Set counters...</source>
<translation>&amp;Setze Zählmarken...</translation> <translation>&amp;Setze Zählmarken...</translation>
</message> </message>
@ -441,78 +466,78 @@
<translation type="obsolete">Neu a&amp;rrangieren</translation> <translation type="obsolete">Neu a&amp;rrangieren</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="132"/> <location filename="../src/game.cpp" line="155"/>
<source>F5</source> <source>F5</source>
<translation>F5</translation> <translation>F5</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="133"/> <location filename="../src/game.cpp" line="156"/>
<source>F6</source> <source>F6</source>
<translation>F6</translation> <translation>F6</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="134"/> <location filename="../src/game.cpp" line="157"/>
<source>F7</source> <source>F7</source>
<translation>F7</translation> <translation>F7</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="135"/> <location filename="../src/game.cpp" line="158"/>
<source>F8</source> <source>F8</source>
<translation>F8</translation> <translation>F8</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="136"/> <location filename="../src/game.cpp" line="159"/>
<source>F9</source> <source>F9</source>
<translation>F9</translation> <translation>F9</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="137"/> <location filename="../src/game.cpp" line="160"/>
<source>F10</source> <source>F10</source>
<translation>F10</translation> <translation>F10</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="329"/> <location filename="../src/game.cpp" line="352"/>
<source>Set life</source> <source>Set life</source>
<translation>Setze Leben</translation> <translation>Setze Leben</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="329"/> <location filename="../src/game.cpp" line="352"/>
<source>New life total:</source> <source>New life total:</source>
<translation>Neues Leben insgesammt:</translation> <translation>Neues Leben insgesammt:</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="342"/> <location filename="../src/game.cpp" line="365"/>
<source>Roll dice</source> <source>Roll dice</source>
<translation>Würfeln</translation> <translation>Würfeln</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="342"/> <location filename="../src/game.cpp" line="365"/>
<source>Number of sides:</source> <source>Number of sides:</source>
<translation>Anzahl der Seiten:</translation> <translation>Anzahl der Seiten:</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="354"/> <location filename="../src/game.cpp" line="377"/>
<source>Draw cards</source> <source>Draw cards</source>
<translation>Karten ziehen</translation> <translation>Karten ziehen</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="354"/> <location filename="../src/game.cpp" line="377"/>
<location filename="../src/game.cpp" line="432"/> <location filename="../src/game.cpp" line="447"/>
<source>Number:</source> <source>Number:</source>
<translation>Anzahl:</translation> <translation>Anzahl:</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="361"/> <location filename="../src/game.cpp" line="384"/>
<source>Create token</source> <source>Create token</source>
<translation>Token erstellen</translation> <translation>Token erstellen</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="361"/> <location filename="../src/game.cpp" line="384"/>
<source>Name:</source> <source>Name:</source>
<translation>Name:</translation> <translation>Name:</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="432"/> <location filename="../src/game.cpp" line="447"/>
<source>Set counters</source> <source>Set counters</source>
<translation>Setze Zählmarke</translation> <translation>Setze Zählmarke</translation>
</message> </message>

View file

@ -219,127 +219,127 @@
<context> <context>
<name>Game</name> <name>Game</name>
<message> <message>
<location filename="../src/game.cpp" line="25"/> <location filename="../src/game.cpp" line="26"/>
<source>&amp;Untap all permanents</source> <source>&amp;Untap all permanents</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="26"/> <location filename="../src/game.cpp" line="27"/>
<source>Ctrl+U</source> <source>Ctrl+U</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="29"/> <location filename="../src/game.cpp" line="30"/>
<source>&amp;Decrement life</source> <source>&amp;Decrement life</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="30"/> <location filename="../src/game.cpp" line="31"/>
<source>F11</source> <source>F11</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="32"/> <location filename="../src/game.cpp" line="33"/>
<source>&amp;Increment life</source> <source>&amp;Increment life</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="33"/> <location filename="../src/game.cpp" line="34"/>
<source>F12</source> <source>F12</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="35"/> <location filename="../src/game.cpp" line="36"/>
<source>&amp;Set life</source> <source>&amp;Set life</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="36"/> <location filename="../src/game.cpp" line="37"/>
<source>Ctrl+L</source> <source>Ctrl+L</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="39"/> <location filename="../src/game.cpp" line="40"/>
<source>&amp;Shuffle</source> <source>&amp;Shuffle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="40"/> <location filename="../src/game.cpp" line="41"/>
<source>Ctrl+S</source> <source>Ctrl+S</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="42"/> <location filename="../src/game.cpp" line="43"/>
<source>&amp;Draw a card</source> <source>&amp;Draw a card</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="43"/> <location filename="../src/game.cpp" line="44"/>
<source>Ctrl+D</source> <source>Ctrl+D</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="45"/> <location filename="../src/game.cpp" line="46"/>
<source>D&amp;raw cards...</source> <source>D&amp;raw cards...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="47"/> <location filename="../src/game.cpp" line="48"/>
<source>Ctrl+E</source> <source>Ctrl+E</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="48"/> <location filename="../src/game.cpp" line="49"/>
<source>R&amp;oll dice...</source> <source>R&amp;oll dice...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="49"/> <location filename="../src/game.cpp" line="50"/>
<source>Ctrl+I</source> <source>Ctrl+I</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="52"/> <location filename="../src/game.cpp" line="53"/>
<source>&amp;Create token...</source> <source>&amp;Create token...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="53"/> <location filename="../src/game.cpp" line="54"/>
<source>Ctrl+T</source> <source>Ctrl+T</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="56"/> <location filename="../src/game.cpp" line="57"/>
<source>Next &amp;phase</source> <source>Next &amp;phase</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="57"/> <location filename="../src/game.cpp" line="58"/>
<source>Ctrl+Space</source> <source>Ctrl+Space</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="59"/> <location filename="../src/game.cpp" line="60"/>
<source>Next &amp;turn</source> <source>Next &amp;turn</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="60"/> <location filename="../src/game.cpp" line="61"/>
<source>Ctrl+Enter</source> <source>Ctrl+Enter</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="60"/> <location filename="../src/game.cpp" line="61"/>
<source>Ctrl+Return</source> <source>Ctrl+Return</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="79"/> <location filename="../src/game.cpp" line="80"/>
<source>S&amp;ay</source> <source>S&amp;ay</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="82"/> <location filename="../src/game.cpp" line="83"/>
<source>&amp;Tap</source> <source>&amp;Tap</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -349,103 +349,128 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="86"/> <location filename="../src/game.cpp" line="85"/>
<source>Toggle &amp;normal untapping</source> <source>Toggle &amp;normal untapping</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="88"/> <location filename="../src/game.cpp" line="86"/>
<source>&amp;Flip</source> <source>&amp;Flip</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="90"/> <location filename="../src/game.cpp" line="87"/>
<source>&amp;Add counter</source> <source>&amp;Add counter</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="92"/> <location filename="../src/game.cpp" line="88"/>
<source>&amp;Remove counter</source> <source>&amp;Remove counter</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="94"/> <location filename="../src/game.cpp" line="89"/>
<source>&amp;Set counters...</source> <source>&amp;Set counters...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="132"/> <location filename="../src/game.cpp" line="91"/>
<source>&amp;top of library</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/game.cpp" line="92"/>
<source>&amp;bottom of library</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/game.cpp" line="93"/>
<source>&amp;graveyard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/game.cpp" line="94"/>
<source>&amp;exile</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/game.cpp" line="106"/>
<source>&amp;Move to</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/game.cpp" line="155"/>
<source>F5</source> <source>F5</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="133"/> <location filename="../src/game.cpp" line="156"/>
<source>F6</source> <source>F6</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="134"/> <location filename="../src/game.cpp" line="157"/>
<source>F7</source> <source>F7</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="135"/> <location filename="../src/game.cpp" line="158"/>
<source>F8</source> <source>F8</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="136"/> <location filename="../src/game.cpp" line="159"/>
<source>F9</source> <source>F9</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="137"/> <location filename="../src/game.cpp" line="160"/>
<source>F10</source> <source>F10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="329"/> <location filename="../src/game.cpp" line="352"/>
<source>Set life</source> <source>Set life</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="329"/> <location filename="../src/game.cpp" line="352"/>
<source>New life total:</source> <source>New life total:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="342"/> <location filename="../src/game.cpp" line="365"/>
<source>Roll dice</source> <source>Roll dice</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="342"/> <location filename="../src/game.cpp" line="365"/>
<source>Number of sides:</source> <source>Number of sides:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="354"/> <location filename="../src/game.cpp" line="377"/>
<source>Draw cards</source> <source>Draw cards</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="354"/> <location filename="../src/game.cpp" line="377"/>
<location filename="../src/game.cpp" line="432"/> <location filename="../src/game.cpp" line="447"/>
<source>Number:</source> <source>Number:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="361"/> <location filename="../src/game.cpp" line="384"/>
<source>Create token</source> <source>Create token</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="361"/> <location filename="../src/game.cpp" line="384"/>
<source>Name:</source> <source>Name:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="432"/> <location filename="../src/game.cpp" line="447"/>
<source>Set counters</source> <source>Set counters</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View file

@ -22,7 +22,7 @@
#include "card.h" #include "card.h"
PlayerZone::PlayerZone(const QString &_name, bool _has_coords, ZoneType _type) PlayerZone::PlayerZone(const QString &_name, bool _has_coords, ZoneType _type)
: name(_name), has_coords(_has_coords), type(_type), cardsBeingLookedAt(-1) : name(_name), has_coords(_has_coords), type(_type), cardsBeingLookedAt(0)
{ {
} }

View file

@ -362,28 +362,28 @@ ReturnMessage::ReturnCode ServerSocket::cmdMoveCard(const QList<QVariant> &param
targetzone->insertCard(card, x, y); targetzone->insertCard(card, x, y);
bool targetBeingLookedAt = (targetzone->getType() != PlayerZone::HiddenZone) || (targetzone->getCardsBeingLookedAt() > x) || (targetzone->getCardsBeingLookedAt() == -1);
bool sourceBeingLookedAt = (startzone->getType() != PlayerZone::HiddenZone) || (startzone->getCardsBeingLookedAt() > position) || (startzone->getCardsBeingLookedAt() == -1);
bool targetHiddenToPlayer = facedown || !targetBeingLookedAt;
bool targetHiddenToOthers = facedown || (targetzone->getType() != PlayerZone::PublicZone);
bool sourceHiddenToPlayer = card->getFaceDown() || !sourceBeingLookedAt;
bool sourceHiddenToOthers = card->getFaceDown() || (startzone->getType() != PlayerZone::PublicZone);
QString privateCardName, publicCardName; QString privateCardName, publicCardName;
if (!(sourceHiddenToPlayer && targetHiddenToPlayer))
privateCardName = card->getName();
if (!(sourceHiddenToOthers && targetHiddenToOthers))
publicCardName = card->getName();
if (facedown) if (facedown)
card->setId(newCardId()); card->setId(newCardId());
if ((!facedown && !card->getFaceDown())
|| (card->getFaceDown() && !facedown && (startzone->getType() == PlayerZone::PublicZone) && (targetzone->getType() == PlayerZone::PublicZone)))
publicCardName = card->getName();
if ((!facedown && !card->getFaceDown())
|| (card->getFaceDown() && !facedown && (startzone->getType() == PlayerZone::PublicZone) && (targetzone->getType() == PlayerZone::PublicZone))
|| (!facedown && (targetzone->getType() != PlayerZone::PublicZone)))
privateCardName = card->getName();
card->setFaceDown(facedown); card->setFaceDown(facedown);
// The player does not get to see which card he moved if it moves between two parts of hidden zones which // The player does not get to see which card he moved if it moves between two parts of hidden zones which
// are not being looked at. // are not being looked at.
QString privateCardId = QString::number(card->getId()); QString privateCardId = QString::number(card->getId());
if ((targetzone->getType() == PlayerZone::HiddenZone) if (!targetBeingLookedAt && !sourceBeingLookedAt) {
&& (startzone->getType() == PlayerZone::HiddenZone)
&& (startzone->getCardsBeingLookedAt() <= position)
&& (startzone->getCardsBeingLookedAt() != 0)
&& (targetzone->getCardsBeingLookedAt() <= x)
&& (targetzone->getCardsBeingLookedAt() != 0)) {
privateCardId = QString(); privateCardId = QString();
privateCardName = QString(); privateCardName = QString();
} }
@ -399,9 +399,9 @@ ReturnMessage::ReturnCode ServerSocket::cmdMoveCard(const QList<QVariant> &param
// Other players do not get to see the start and/or target position of the card if the respective // Other players do not get to see the start and/or target position of the card if the respective
// part of the zone is being looked at. The information is not needed anyway because in hidden zones, // part of the zone is being looked at. The information is not needed anyway because in hidden zones,
// all cards are equal. // all cards are equal.
if ((startzone->getType() == PlayerZone::HiddenZone) && ((startzone->getCardsBeingLookedAt() > position) || (startzone->getCardsBeingLookedAt() == 0))) if ((startzone->getType() == PlayerZone::HiddenZone) && ((startzone->getCardsBeingLookedAt() > position) || (startzone->getCardsBeingLookedAt() == -1)))
position = -1; position = -1;
if ((targetzone->getType() == PlayerZone::HiddenZone) && ((targetzone->getCardsBeingLookedAt() > position) || (targetzone->getCardsBeingLookedAt() == 0))) if ((targetzone->getType() == PlayerZone::HiddenZone) && ((targetzone->getCardsBeingLookedAt() > x) || (targetzone->getCardsBeingLookedAt() == -1)))
x = -1; x = -1;
if ((startzone->getType() == PlayerZone::PublicZone) || (targetzone->getType() == PlayerZone::PublicZone)) if ((startzone->getType() == PlayerZone::PublicZone) || (targetzone->getType() == PlayerZone::PublicZone))
@ -558,7 +558,7 @@ ReturnMessage::ReturnCode ServerSocket::cmdDumpZone(const QList<QVariant> &param
QListIterator<Card *> card_iterator(zone->cards); QListIterator<Card *> card_iterator(zone->cards);
QStringList result; QStringList result;
for (int i = 0; card_iterator.hasNext() && (i < number_cards || number_cards == 0); i++) { for (int i = 0; card_iterator.hasNext() && (i < number_cards || number_cards == -1); i++) {
Card *tmp = card_iterator.next(); Card *tmp = card_iterator.next();
// XXX Face down cards // XXX Face down cards
if (zone->getType() != PlayerZone::HiddenZone) if (zone->getType() != PlayerZone::HiddenZone)
@ -590,7 +590,7 @@ ReturnMessage::ReturnCode ServerSocket::cmdStopDumpZone(const QList<QVariant> &p
return ReturnMessage::ReturnContextError; return ReturnMessage::ReturnContextError;
if (zone->getType() == PlayerZone::HiddenZone) { if (zone->getType() == PlayerZone::HiddenZone) {
zone->setCardsBeingLookedAt(-1); zone->setCardsBeingLookedAt(0);
emit broadcastEvent(QString("stop_dump_zone|%1|%2").arg(player->getPlayerId()).arg(zone->getName()), this); emit broadcastEvent(QString("stop_dump_zone|%1|%2").arg(player->getPlayerId()).arg(zone->getName()), this);
} }
return ReturnMessage::ReturnOk; return ReturnMessage::ReturnOk;
@ -603,7 +603,7 @@ ReturnMessage::ReturnCode ServerSocket::cmdRollDice(const QList<QVariant> &param
return ReturnMessage::ReturnOk; return ReturnMessage::ReturnOk;
} }
ReturnMessage::ReturnCode ServerSocket::cmdNextTurn(const QList<QVariant> &params) ReturnMessage::ReturnCode ServerSocket::cmdNextTurn(const QList<QVariant> &/*params*/)
{ {
int activePlayer = game->getActivePlayer(); int activePlayer = game->getActivePlayer();
if (++activePlayer == game->getPlayerCount()) if (++activePlayer == game->getPlayerCount())