Exemple #1
0
bool ChicaneCardGame::mousePressCard( Card *card, QPoint p )
{
    Q_UNUSED(p);

    CanvasCard *item = (CanvasCard *)card;
    if (item->isFacing() != TRUE) {
	// From facedown stack
	if ((item->x() == 2) && ((int)item->y() == 10)) {		// Deal a row of 8 cards
	    // Move 8 cards, one to each workingPile
	    beginDealing();
	    for (int i=0; i<8 && faceDownDealingPile->cardOnTop(); i++) {
		CanvasCard *card =  (CanvasCard *)faceDownDealingPile->cardOnTop();
	        card->setZ(highestZ);
	        highestZ++;
		faceDownDealingPile->removeCard(card);
		workingPiles[i]->addCardToTop(card);
		card->setCardPile( workingPiles[i] );
		card->setFace(FALSE);
		QPoint p = workingPiles[i]->getCardPos(card);
		card->flipTo( p.x(), p.y() );
	    }
	    endDealing();
	}
	moving = NULL;
	moved = FALSE;

	return TRUE;
    } else if ( !card->getCardPile()->isAllowedToBeMoved(card) ) {	// Don't allow unclean columns to be moved
       	moving = NULL;
        return TRUE;
    }

    return FALSE;
}