code cleanup
This commit is contained in:
parent
cc3760a7df
commit
8b6eace312
4 changed files with 52 additions and 43 deletions
|
@ -60,19 +60,20 @@ int Server_CardZone::removeCard(Server_Card *card)
|
|||
return index;
|
||||
}
|
||||
|
||||
Server_Card *Server_CardZone::getCard(int id, int *position)
|
||||
Server_Card *Server_CardZone::getCard(int id, int *position, bool remove)
|
||||
{
|
||||
if (type != ServerInfo_Zone::HiddenZone) {
|
||||
QListIterator<Server_Card *> CardIterator(cards);
|
||||
int i = 0;
|
||||
while (CardIterator.hasNext()) {
|
||||
Server_Card *tmp = CardIterator.next();
|
||||
for (int i = 0; i < cards.size(); ++i) {
|
||||
Server_Card *tmp = cards[i];
|
||||
if (tmp->getId() == id) {
|
||||
if (position)
|
||||
*position = i;
|
||||
if (remove) {
|
||||
cards.removeAt(i);
|
||||
tmp->setZone(0);
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
return NULL;
|
||||
} else {
|
||||
|
@ -81,6 +82,10 @@ Server_Card *Server_CardZone::getCard(int id, int *position)
|
|||
Server_Card *tmp = cards[id];
|
||||
if (position)
|
||||
*position = id;
|
||||
if (remove) {
|
||||
cards.removeAt(id);
|
||||
tmp->setZone(0);
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
}
|
||||
|
@ -202,7 +207,10 @@ void Server_CardZone::insertCard(Server_Card *card, int x, int y)
|
|||
cards.append(card);
|
||||
} else {
|
||||
card->setCoords(0, 0);
|
||||
cards.insert(x, card);
|
||||
if (x == -1)
|
||||
cards.append(card);
|
||||
else
|
||||
cards.insert(x, card);
|
||||
}
|
||||
card->setZone(this);
|
||||
}
|
||||
|
|
|
@ -40,12 +40,14 @@ private:
|
|||
int cardsBeingLookedAt;
|
||||
QSet<int> playersWithWritePermission;
|
||||
bool alwaysRevealTopCard;
|
||||
QList<Server_Card *> cards;
|
||||
public:
|
||||
Server_CardZone(Server_Player *_player, const QString &_name, bool _has_coords, ServerInfo_Zone::ZoneType _type);
|
||||
~Server_CardZone();
|
||||
|
||||
|
||||
const QList<Server_Card *> &getCards() const { return cards; }
|
||||
int removeCard(Server_Card *card);
|
||||
Server_Card *getCard(int id, int *position = NULL);
|
||||
Server_Card *getCard(int id, int *position = NULL, bool remove = false);
|
||||
|
||||
int getCardsBeingLookedAt() const { return cardsBeingLookedAt; }
|
||||
void setCardsBeingLookedAt(int _cardsBeingLookedAt) { cardsBeingLookedAt = _cardsBeingLookedAt; }
|
||||
|
@ -60,7 +62,6 @@ public:
|
|||
bool isColumnStacked(int x, int y) const;
|
||||
void fixFreeSpaces(GameEventStorage &ges);
|
||||
void moveCard(GameEventStorage &ges, QMap<int, Server_Card *> &coordMap, Server_Card *card, int x, int y);
|
||||
QList<Server_Card *> cards;
|
||||
void insertCard(Server_Card *card, int x, int y);
|
||||
void shuffle();
|
||||
void clear();
|
||||
|
|
|
@ -516,8 +516,8 @@ void Server_Game::unattachCards(GameEventStorage &ges, Server_Player *player)
|
|||
QMapIterator<QString, Server_CardZone *> zoneIterator(player->getZones());
|
||||
while (zoneIterator.hasNext()) {
|
||||
Server_CardZone *zone = zoneIterator.next().value();
|
||||
for (int i = 0; i < zone->cards.size(); ++i) {
|
||||
Server_Card *card = zone->cards.at(i);
|
||||
for (int i = 0; i < zone->getCards().size(); ++i) {
|
||||
Server_Card *card = zone->getCards().at(i);
|
||||
|
||||
// Make a copy of the list because the original one gets modified during the loop
|
||||
QList<Server_Card *> attachedCards = card->getAttachedCards();
|
||||
|
|
|
@ -185,7 +185,7 @@ void Server_Player::setupZones()
|
|||
if (!currentCard)
|
||||
continue;
|
||||
for (int k = 0; k < currentCard->getNumber(); ++k)
|
||||
z->cards.append(new Server_Card(currentCard->getName(), nextCardId++, 0, 0, z));
|
||||
z->insertCard(new Server_Card(currentCard->getName(), nextCardId++, 0, 0, z), -1, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -209,11 +209,10 @@ void Server_Player::setupZones()
|
|||
else
|
||||
continue;
|
||||
|
||||
for (int j = 0; j < start->cards.size(); ++j)
|
||||
if (start->cards[j]->getName() == QString::fromStdString(m.card_name())) {
|
||||
Server_Card *card = start->cards[j];
|
||||
start->cards.removeAt(j);
|
||||
target->cards.append(card);
|
||||
for (int j = 0; j < start->getCards().size(); ++j)
|
||||
if (start->getCards()[j]->getName() == QString::fromStdString(m.card_name())) {
|
||||
Server_Card *card = start->getCard(j, NULL, true);
|
||||
target->insertCard(card, -1, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -286,16 +285,16 @@ Response::ResponseCode Server_Player::drawCards(GameEventStorage &ges, int numbe
|
|||
{
|
||||
Server_CardZone *deckZone = zones.value("deck");
|
||||
Server_CardZone *handZone = zones.value("hand");
|
||||
if (deckZone->cards.size() < number)
|
||||
number = deckZone->cards.size();
|
||||
if (deckZone->getCards().size() < number)
|
||||
number = deckZone->getCards().size();
|
||||
|
||||
Event_DrawCards eventOthers;
|
||||
eventOthers.set_number(number);
|
||||
Event_DrawCards eventPrivate(eventOthers);
|
||||
|
||||
for (int i = 0; i < number; ++i) {
|
||||
Server_Card *card = deckZone->cards.takeFirst();
|
||||
handZone->cards.append(card);
|
||||
Server_Card *card = deckZone->getCard(0, NULL, true);
|
||||
handZone->insertCard(card, -1, 0);
|
||||
lastDrawList.append(card->getId());
|
||||
|
||||
ServerInfo_Card *cardInfo = eventPrivate.add_cards();
|
||||
|
@ -306,11 +305,11 @@ Response::ResponseCode Server_Player::drawCards(GameEventStorage &ges, int numbe
|
|||
ges.enqueueGameEvent(eventPrivate, playerId, GameEventStorageItem::SendToPrivate, playerId);
|
||||
ges.enqueueGameEvent(eventOthers, playerId, GameEventStorageItem::SendToOthers);
|
||||
|
||||
if (deckZone->getAlwaysRevealTopCard() && !deckZone->cards.isEmpty()) {
|
||||
if (deckZone->getAlwaysRevealTopCard() && !deckZone->getCards().isEmpty()) {
|
||||
Event_RevealCards revealEvent;
|
||||
revealEvent.set_zone_name(deckZone->getName().toStdString());
|
||||
revealEvent.set_card_id(0);
|
||||
deckZone->cards.first()->getInfo(revealEvent.add_cards());
|
||||
deckZone->getCards().first()->getInfo(revealEvent.add_cards());
|
||||
|
||||
ges.enqueueGameEvent(revealEvent, playerId);
|
||||
}
|
||||
|
@ -346,7 +345,7 @@ Response::ResponseCode Server_Player::moveCard(GameEventStorage &ges, Server_Car
|
|||
return Response::RespContextError;
|
||||
|
||||
if (!targetzone->hasCoords() && (x == -1))
|
||||
x = targetzone->cards.size();
|
||||
x = targetzone->getCards().size();
|
||||
|
||||
QList<QPair<Server_Card *, int> > cardsToMove;
|
||||
QMap<Server_Card *, const CardToMove *> cardProperties;
|
||||
|
@ -525,19 +524,19 @@ Response::ResponseCode Server_Player::moveCard(GameEventStorage &ges, Server_Car
|
|||
if (!ptString.isEmpty() && !faceDown)
|
||||
setCardAttrHelper(ges, targetzone->getName(), card->getId(), AttrPT, ptString);
|
||||
}
|
||||
if (startzone->getAlwaysRevealTopCard() && !startzone->cards.isEmpty() && (originalPosition == 0)) {
|
||||
if (startzone->getAlwaysRevealTopCard() && !startzone->getCards().isEmpty() && (originalPosition == 0)) {
|
||||
Event_RevealCards revealEvent;
|
||||
revealEvent.set_zone_name(startzone->getName().toStdString());
|
||||
revealEvent.set_card_id(0);
|
||||
startzone->cards.first()->getInfo(revealEvent.add_cards());
|
||||
startzone->getCards().first()->getInfo(revealEvent.add_cards());
|
||||
|
||||
ges.enqueueGameEvent(revealEvent, playerId);
|
||||
}
|
||||
if (targetzone->getAlwaysRevealTopCard() && !targetzone->cards.isEmpty() && (newX == 0)) {
|
||||
if (targetzone->getAlwaysRevealTopCard() && !targetzone->getCards().isEmpty() && (newX == 0)) {
|
||||
Event_RevealCards revealEvent;
|
||||
revealEvent.set_zone_name(targetzone->getName().toStdString());
|
||||
revealEvent.set_card_id(0);
|
||||
targetzone->cards.first()->getInfo(revealEvent.add_cards());
|
||||
targetzone->getCards().first()->getInfo(revealEvent.add_cards());
|
||||
|
||||
ges.enqueueGameEvent(revealEvent, playerId);
|
||||
}
|
||||
|
@ -580,7 +579,7 @@ Response::ResponseCode Server_Player::setCardAttrHelper(GameEventStorage &ges, c
|
|||
|
||||
QString result;
|
||||
if (cardId == -1) {
|
||||
QListIterator<Server_Card *> CardIterator(zone->cards);
|
||||
QListIterator<Server_Card *> CardIterator(zone->getCards());
|
||||
while (CardIterator.hasNext()) {
|
||||
result = CardIterator.next()->setAttribute(attribute, attrValue, true);
|
||||
if (result.isNull())
|
||||
|
@ -782,11 +781,11 @@ Response::ResponseCode Server_Player::cmdShuffle(const Command_Shuffle & /*cmd*/
|
|||
event.set_zone_name("deck");
|
||||
ges.enqueueGameEvent(event, playerId);
|
||||
|
||||
if (deckZone->getAlwaysRevealTopCard() && !deckZone->cards.isEmpty()) {
|
||||
if (deckZone->getAlwaysRevealTopCard() && !deckZone->getCards().isEmpty()) {
|
||||
Event_RevealCards revealEvent;
|
||||
revealEvent.set_zone_name(deckZone->getName().toStdString());
|
||||
revealEvent.set_card_id(0);
|
||||
deckZone->cards.first()->getInfo(revealEvent.add_cards());
|
||||
deckZone->getCards().first()->getInfo(revealEvent.add_cards());
|
||||
|
||||
ges.enqueueGameEvent(revealEvent, playerId);
|
||||
}
|
||||
|
@ -805,12 +804,12 @@ Response::ResponseCode Server_Player::cmdMulligan(const Command_Mulligan & /*cmd
|
|||
return Response::RespContextError;
|
||||
|
||||
Server_CardZone *hand = zones.value("hand");
|
||||
int number = (hand->cards.size() <= 1) ? initialCards : hand->cards.size() - 1;
|
||||
int number = (hand->getCards().size() <= 1) ? initialCards : hand->getCards().size() - 1;
|
||||
|
||||
Server_CardZone *deck = zones.value("deck");
|
||||
while (!hand->cards.isEmpty()) {
|
||||
while (!hand->getCards().isEmpty()) {
|
||||
CardToMove *cardToMove = new CardToMove;
|
||||
cardToMove->set_card_id(hand->cards.first()->getId());
|
||||
cardToMove->set_card_id(hand->getCards().first()->getId());
|
||||
moveCard(ges, hand, QList<const CardToMove *>() << cardToMove, deck, 0, 0, false);
|
||||
delete cardToMove;
|
||||
}
|
||||
|
@ -1407,16 +1406,17 @@ Response::ResponseCode Server_Player::cmdDumpZone(const Command_DumpZone &cmd, R
|
|||
return Response::RespContextError;
|
||||
|
||||
int numberCards = cmd.number_cards();
|
||||
const QList<Server_Card *> &cards = zone->getCards();
|
||||
|
||||
Response_DumpZone *re = new Response_DumpZone;
|
||||
ServerInfo_Zone *zoneInfo = re->mutable_zone_info();
|
||||
zoneInfo->set_name(zone->getName().toStdString());
|
||||
zoneInfo->set_type(zone->getType());
|
||||
zoneInfo->set_with_coords(zone->hasCoords());
|
||||
zoneInfo->set_card_count(numberCards < zone->cards.size() ? zone->cards.size() : numberCards);
|
||||
zoneInfo->set_card_count(numberCards < cards.size() ? cards.size() : numberCards);
|
||||
|
||||
for (int i = 0; (i < zone->cards.size()) && (i < numberCards || numberCards == -1); ++i) {
|
||||
Server_Card *card = zone->cards[i];
|
||||
for (int i = 0; (i < cards.size()) && (i < numberCards || numberCards == -1); ++i) {
|
||||
Server_Card *card = cards[i];
|
||||
QString displayedName = card->getFaceDown() ? QString() : card->getName();
|
||||
ServerInfo_Card *cardInfo = zoneInfo->add_card_list();
|
||||
cardInfo->set_name(displayedName.toStdString());
|
||||
|
@ -1510,11 +1510,11 @@ Response::ResponseCode Server_Player::cmdRevealCards(const Command_RevealCards &
|
|||
|
||||
QList<Server_Card *> cardsToReveal;
|
||||
if (!cmd.has_card_id())
|
||||
cardsToReveal = zone->cards;
|
||||
cardsToReveal = zone->getCards();
|
||||
else if (cmd.card_id() == -2) {
|
||||
if (zone->cards.isEmpty())
|
||||
if (zone->getCards().isEmpty())
|
||||
return Response::RespContextError;
|
||||
cardsToReveal.append(zone->cards.at(rng->getNumber(0, zone->cards.size() - 1)));
|
||||
cardsToReveal.append(zone->getCards().at(rng->getNumber(0, zone->getCards().size() - 1)));
|
||||
} else {
|
||||
Server_Card *card = zone->getCard(cmd.card_id());
|
||||
if (!card)
|
||||
|
@ -1600,11 +1600,11 @@ Response::ResponseCode Server_Player::cmdChangeZoneProperties(const Command_Chan
|
|||
|
||||
ges.enqueueGameEvent(event, playerId);
|
||||
|
||||
if (!zone->cards.isEmpty() && cmd.always_reveal_top_card()) {
|
||||
if (!zone->getCards().isEmpty() && cmd.always_reveal_top_card()) {
|
||||
Event_RevealCards revealEvent;
|
||||
revealEvent.set_zone_name(zone->getName().toStdString());
|
||||
revealEvent.set_card_id(0);
|
||||
zone->cards.first()->getInfo(revealEvent.add_cards());
|
||||
zone->getCards().first()->getInfo(revealEvent.add_cards());
|
||||
|
||||
ges.enqueueGameEvent(revealEvent, playerId);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue