void kpok::displayWin(const char *hand, int cashWon) { char buf[200]; setHand(hand); setCash(getCash() + cashWon); if (cashWon) { playSound("win.wav"); sprintf(buf,"%s %d !",locale->translate("You won $"), cashWon); // locale } else { playSound("lose.wav"); sprintf(buf,locale->translate("Game Over")); // locale } wonLabel->setText(buf); wonLabel->move(this->width() / 2 - wonLabel->width() / 2, wonLabelVDist); if (!cashWon) { wonLabel->show(); } else { wonLabel->hide(); startWave(); } }
void kpok::drawClick() { int cardsToDraw[5]; int w; drawButton->setEnabled(false); if (status == 0) { wonLabel->hide(); cleanFoundCard(); stopBlinking(); stopWave(); setCash(getCash() - cashPerRound); for (w=0; w<5;w++) { cardsToDraw[w]=0; cardW[w]->setHeld(0); } for (w=0; w<highestCard;w++) done[w]=0; for (w=0;w<5;w++) { cards[w]=0; cardW[w]->heldLabel->hide(); cardW[w]->show(); cardW[w]->paintCard(cards[w],0,0); } drawCards(cardsToDraw); if (cardW[0]->queryHeld()) drawTimer->start(0, TRUE); else drawTimer->start(drawDelay, TRUE); } else { clickToHold->hide(); for (w=0; w<5;w++) cardsToDraw[w] = cardW[w]->queryHeld(); for (w=0;w<5;w++) { if (!cardsToDraw[w]) { cards[w]=0; cardW[w]->show(); cardW[w]->paintCard(cards[w],0,0); } } drawCards(cardsToDraw); if (cardW[0]->queryHeld()) drawTimer->start(0, TRUE); else drawTimer->start(drawDelay, TRUE); } }
void Player::dumpSave(bool saveToFile /*= false*/) { SaveController& sc = *SharedGameDelegate::Instance().getSaveController(); sc.setHighScore(getHighScore()); sc.setCash(getCash()); sc.setMapProgress(m_storyProgress); sc.setChipPosition(m_tokenMapPosition); }
void kpok::drawCardsEvent() { int testResult; cardW[drawStat]->show(); cardW[drawStat]->paintCard(cards[drawStat],0,0); if (!cardW[drawStat]->queryHeld()) playSound("cardflip.wav"); if (drawStat == 4) { /* just did last card */ drawButton->setEnabled(true); drawStat=0; if (status == 1) { testResult=testHand(); switch (testResult) { case 1 : if (foundCards[0].cardType >= 17) { foundCards[0].cardType=0; foundCards[1].cardType=0; displayWin(locale->translate("nothing"),0); break; } displayWin(locale->translate("One Pair"),5); break; case 2 : displayWin(locale->translate("Two Pairs"), 10); break; case 3 : displayWin(locale->translate("3 of a kind"), 15); break; case 4 : displayWin(locale->translate("Full House"), 40); break; case 6 : displayWin(locale->translate("4 of a kind"), 125); break; case 7 : displayWin(locale->translate("Straight"),20); break; case 8 : displayWin(locale->translate("Flush"),25); break; case 9 : displayWin(locale->translate("Straight Flush"),250); break; case 10 : displayWin(locale->translate("Royal Flush"),2000); break; default: displayWin(locale->translate("nothing"),0); break; } startBlinking(); status = 0; if (getCash() < cashPerRound) { KMsgBox::message(0,locale->translate("You Lost"), locale->translate("Oops - you went bankrupt.\n"), KMsgBox::EXCLAMATION,locale->translate("New game")); initPoker(); } } else { clickToHold->show(); status =1; } } else { /* only inc drawStat if not done with displaying */ drawStat++; /* look at next card and if it is held instantly call drawCardEvent again */ if (cardW[drawStat]->queryHeld()) drawTimer->start(0,TRUE); else drawTimer->start(drawDelay,TRUE); } }