From ec602aefe11aefa51e7e8e396aa70fd01426ea3b Mon Sep 17 00:00:00 2001 From: Max-Wilhelm Bruker Date: Tue, 23 Nov 2010 02:07:56 +0100 Subject: [PATCH] server crash and inconsistency fix --- common/server_card.cpp | 4 ---- common/server_protocolhandler.cpp | 13 ++++++++----- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/common/server_card.cpp b/common/server_card.cpp index 6c332b93..792ec0db 100644 --- a/common/server_card.cpp +++ b/common/server_card.cpp @@ -37,15 +37,11 @@ Server_Card::~Server_Card() void Server_Card::resetState() { - setCoords(0, 0); counters.clear(); setTapped(false); setAttacking(false); - setFaceDown(false); - setColor(QString()); setPT(QString()); setAnnotation(QString()); - setDestroyOnZoneChange(false); setDoesntUntap(false); } diff --git a/common/server_protocolhandler.cpp b/common/server_protocolhandler.cpp index bfa61080..a5533626 100644 --- a/common/server_protocolhandler.cpp +++ b/common/server_protocolhandler.cpp @@ -623,6 +623,8 @@ ResponseCode Server_ProtocolHandler::moveCard(Server_Game *game, Server_Player * y = 0; if (x == -1) x = targetzone->cards.size(); + + card->resetState(); } else if (x == -1) x = targetzone->getFreeGridColumn(y); @@ -680,7 +682,7 @@ ResponseCode Server_ProtocolHandler::moveCard(Server_Game *game, Server_Player * if (tapped) setCardAttrHelper(cont, game, player, targetzone->getName(), card->getId(), "tapped", "1"); - + return RespOk; } @@ -1197,11 +1199,12 @@ ResponseCode Server_ProtocolHandler::cmdRevealCards(Command_RevealCards *cmd, Co for (int i = 0; i < cardsToReveal.size(); ++i) { Server_Card *card = cardsToReveal[i]; - QList cardCounterList; + QList cardCounterListPrivate, cardCounterListOmniscient; QMapIterator cardCounterIterator(card->getCounters()); while (cardCounterIterator.hasNext()) { cardCounterIterator.next(); - cardCounterList.append(new ServerInfo_CardCounter(cardCounterIterator.key(), cardCounterIterator.value())); + cardCounterListPrivate.append(new ServerInfo_CardCounter(cardCounterIterator.key(), cardCounterIterator.value())); + cardCounterListOmniscient.append(new ServerInfo_CardCounter(cardCounterIterator.key(), cardCounterIterator.value())); } int attachPlayerId = -1; @@ -1214,8 +1217,8 @@ ResponseCode Server_ProtocolHandler::cmdRevealCards(Command_RevealCards *cmd, Co } if (cmd->getPlayerId() != -1) - respCardListPrivate.append(new ServerInfo_Card(card->getId(), card->getName(), card->getX(), card->getY(), card->getTapped(), card->getAttacking(), card->getColor(), card->getPT(), card->getAnnotation(), card->getDestroyOnZoneChange(), cardCounterList, attachPlayerId, attachZone, attachCardId)); - respCardListOmniscient.append(new ServerInfo_Card(card->getId(), card->getName(), card->getX(), card->getY(), card->getTapped(), card->getAttacking(), card->getColor(), card->getPT(), card->getAnnotation(), card->getDestroyOnZoneChange(), cardCounterList, attachPlayerId, attachZone, attachCardId)); + respCardListPrivate.append(new ServerInfo_Card(card->getId(), card->getName(), card->getX(), card->getY(), card->getTapped(), card->getAttacking(), card->getColor(), card->getPT(), card->getAnnotation(), card->getDestroyOnZoneChange(), cardCounterListPrivate, attachPlayerId, attachZone, attachCardId)); + respCardListOmniscient.append(new ServerInfo_Card(card->getId(), card->getName(), card->getX(), card->getY(), card->getTapped(), card->getAttacking(), card->getColor(), card->getPT(), card->getAnnotation(), card->getDestroyOnZoneChange(), cardCounterListOmniscient, attachPlayerId, attachZone, attachCardId)); } if (cmd->getPlayerId() == -1)