Пример #1
0
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();
   }
}
Пример #2
0
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);

   }
}
Пример #3
0
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);
}
Пример #4
0
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);
   }
}