Crash fix
This commit is contained in:
parent
2d2958e931
commit
e94f59d7c2
5 changed files with 11 additions and 8 deletions
|
@ -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");
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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<QPair<int, int> > DeckViewCardContainer::getRowsAndCols() const
|
||||
|
|
|
@ -148,7 +148,10 @@ void TableZone::handleDropEventByGrid(const QList<CardDragItem *> &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);
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue