diff --git a/cockatrice/src/arrowitem.cpp b/cockatrice/src/arrowitem.cpp index ba585226..059abbb3 100644 --- a/cockatrice/src/arrowitem.cpp +++ b/cockatrice/src/arrowitem.cpp @@ -227,9 +227,9 @@ void ArrowDragItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) if (startZone->getName().compare("hand") == 0) { startCard->playCard(false); CardInfo *ci = startCard->getInfo(); - if (((!settingsCache->getPlayToStack() && ci->getTableRow() == 3) || + if (ci && (((!settingsCache->getPlayToStack() && ci->getTableRow() == 3) || ((settingsCache->getPlayToStack() && ci->getTableRow() != 0) && - startCard->getZone()->getName().toStdString() != "stack"))) + startCard->getZone()->getName().toStdString() != "stack")))) cmd.set_start_zone("stack"); else cmd.set_start_zone(settingsCache->getPlayToStack() ? "stack" :"table"); diff --git a/cockatrice/src/cardlist.cpp b/cockatrice/src/cardlist.cpp index 34466265..d034bccf 100644 --- a/cockatrice/src/cardlist.cpp +++ b/cockatrice/src/cardlist.cpp @@ -42,8 +42,8 @@ public: inline bool operator()(CardItem *a, CardItem *b) const { if (flags & SortByType) { - QString t1 = a->getInfo()->getMainCardType(); - QString t2 = b->getInfo()->getMainCardType(); + QString t1 = a->getInfo() ? a->getInfo()->getMainCardType() : QString(); + QString t2 = b->getInfo() ? b->getInfo()->getMainCardType() : QString(); if ((t1 == t2) && (flags & SortByName)) return a->getName() < b->getName(); return t1 < t2; diff --git a/cockatrice/src/deckview.cpp b/cockatrice/src/deckview.cpp index cd5d1022..db0e3aba 100644 --- a/cockatrice/src/deckview.cpp +++ b/cockatrice/src/deckview.cpp @@ -176,13 +176,13 @@ void DeckViewCardContainer::paint(QPainter *painter, const QStyleOptionGraphicsI void DeckViewCardContainer::addCard(DeckViewCard *card) { cards.append(card); - cardsByType.insert(card->getInfo()->getMainCardType(), card); + cardsByType.insert(card->getInfo() ? card->getInfo()->getMainCardType() : "", card); } void DeckViewCardContainer::removeCard(DeckViewCard *card) { cards.removeAt(cards.indexOf(card)); - cardsByType.remove(card->getInfo()->getMainCardType(), card); + cardsByType.remove(card->getInfo() ? card->getInfo()->getMainCardType(): "", card); } QList > DeckViewCardContainer::getRowsAndCols() const diff --git a/cockatrice/src/tablezone.cpp b/cockatrice/src/tablezone.cpp index eebae0f3..a38a5eb4 100644 --- a/cockatrice/src/tablezone.cpp +++ b/cockatrice/src/tablezone.cpp @@ -148,7 +148,10 @@ void TableZone::handleDropEventByGrid(const QList &dragItems, Ca CardToMove *ctm = cmd.mutable_cards_to_move()->add_card(); ctm->set_card_id(dragItems[i]->getId()); ctm->set_face_down(dragItems[i]->getFaceDown()); - ctm->set_pt(startZone->getName() == name ? std::string() : dragItems[i]->getItem()->getInfo()->getPowTough().toStdString()); + if(startZone->getName() != name && dragItems[i]->getItem()->getInfo()) + ctm->set_pt(dragItems[i]->getItem()->getInfo()->getPowTough().toStdString()); + else + ctm->set_pt(std::string()); } startZone->getPlayer()->sendGameCommand(cmd); diff --git a/cockatrice/src/zoneviewzone.cpp b/cockatrice/src/zoneviewzone.cpp index 191c1d94..4532875b 100644 --- a/cockatrice/src/zoneviewzone.cpp +++ b/cockatrice/src/zoneviewzone.cpp @@ -116,7 +116,7 @@ void ZoneViewZone::reorganizeCards() QString lastCardType; for (int i = 0; i < cardCount; i++) { CardItem *c = cardsToDisplay.at(i); - QString cardType = c->getInfo()->getMainCardType(); + QString cardType = c->getInfo() ? c->getInfo()->getMainCardType() : ""; if (i){ // if not the first card if (cardType == lastCardType)