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