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) {
|
if (startZone->getName().compare("hand") == 0) {
|
||||||
startCard->playCard(false);
|
startCard->playCard(false);
|
||||||
CardInfo *ci = startCard->getInfo();
|
CardInfo *ci = startCard->getInfo();
|
||||||
if (((!settingsCache->getPlayToStack() && ci->getTableRow() == 3) ||
|
if (ci && (((!settingsCache->getPlayToStack() && ci->getTableRow() == 3) ||
|
||||||
((settingsCache->getPlayToStack() && ci->getTableRow() != 0) &&
|
((settingsCache->getPlayToStack() && ci->getTableRow() != 0) &&
|
||||||
startCard->getZone()->getName().toStdString() != "stack")))
|
startCard->getZone()->getName().toStdString() != "stack"))))
|
||||||
cmd.set_start_zone("stack");
|
cmd.set_start_zone("stack");
|
||||||
else
|
else
|
||||||
cmd.set_start_zone(settingsCache->getPlayToStack() ? "stack" :"table");
|
cmd.set_start_zone(settingsCache->getPlayToStack() ? "stack" :"table");
|
||||||
|
|
|
@ -42,8 +42,8 @@ public:
|
||||||
inline bool operator()(CardItem *a, CardItem *b) const
|
inline bool operator()(CardItem *a, CardItem *b) const
|
||||||
{
|
{
|
||||||
if (flags & SortByType) {
|
if (flags & SortByType) {
|
||||||
QString t1 = a->getInfo()->getMainCardType();
|
QString t1 = a->getInfo() ? a->getInfo()->getMainCardType() : QString();
|
||||||
QString t2 = b->getInfo()->getMainCardType();
|
QString t2 = b->getInfo() ? b->getInfo()->getMainCardType() : QString();
|
||||||
if ((t1 == t2) && (flags & SortByName))
|
if ((t1 == t2) && (flags & SortByName))
|
||||||
return a->getName() < b->getName();
|
return a->getName() < b->getName();
|
||||||
return t1 < t2;
|
return t1 < t2;
|
||||||
|
|
|
@ -176,13 +176,13 @@ void DeckViewCardContainer::paint(QPainter *painter, const QStyleOptionGraphicsI
|
||||||
void DeckViewCardContainer::addCard(DeckViewCard *card)
|
void DeckViewCardContainer::addCard(DeckViewCard *card)
|
||||||
{
|
{
|
||||||
cards.append(card);
|
cards.append(card);
|
||||||
cardsByType.insert(card->getInfo()->getMainCardType(), card);
|
cardsByType.insert(card->getInfo() ? card->getInfo()->getMainCardType() : "", card);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DeckViewCardContainer::removeCard(DeckViewCard *card)
|
void DeckViewCardContainer::removeCard(DeckViewCard *card)
|
||||||
{
|
{
|
||||||
cards.removeAt(cards.indexOf(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
|
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();
|
CardToMove *ctm = cmd.mutable_cards_to_move()->add_card();
|
||||||
ctm->set_card_id(dragItems[i]->getId());
|
ctm->set_card_id(dragItems[i]->getId());
|
||||||
ctm->set_face_down(dragItems[i]->getFaceDown());
|
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);
|
startZone->getPlayer()->sendGameCommand(cmd);
|
||||||
|
|
|
@ -116,7 +116,7 @@ void ZoneViewZone::reorganizeCards()
|
||||||
QString lastCardType;
|
QString lastCardType;
|
||||||
for (int i = 0; i < cardCount; i++) {
|
for (int i = 0; i < cardCount; i++) {
|
||||||
CardItem *c = cardsToDisplay.at(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 (i){ // if not the first card
|
||||||
if (cardType == lastCardType)
|
if (cardType == lastCardType)
|
||||||
|
|
Loading…
Reference in a new issue