void PlayerBox::cardClicked(CardWidget* MyCW) { emit toggleHeld(); if (m_enableHeldLabels && MyCW->toggleHeld()) MyCW->heldLabel->show(); else MyCW->heldLabel->hide(); }
void kpok::initPoker(unsigned int numPlayers) { m_numPlayers = numPlayers; // Tell the game about the players also. PokerGameType gametype = (numPlayers == 1) ? SinglePlayer : MultiPlayer; // Read some defaults. kapp->config()->setGroup("General"); int minBet = kapp->config()->readNumEntry("MinBet", MIN_BET); int maxBet = kapp->config()->readNumEntry("MaxBet", MAX_BET); // Start a new poker game using the data found out above. m_game.newGame(gametype, m_numPlayers, m_players, minBet, maxBet); // Not (yet) configurable cashPerRound = CASH_PER_ROUND; drawDelay = kapp->config()->readNumEntry("DrawDelay", DRAWDELAY); m_blinkingBox = 0; currentMustBet = m_game.getMinBet(); // --- Graphics --- // Make all labels / boxes / cardwidgets for every player. playerBox = new PlayerBox *[numPlayers]; for (int unsigned i = 0; i < numPlayers; i++) { playerBox[i] = new PlayerBox(i == 0, this); playerBox[i]->setPlayer(&m_players[i]); if (i == 0) topLayout->insertWidget(0, playerBox[i]); else topLayout->addWidget(playerBox[i]); playerBox[i]->showName(); // If it has been deleted and created again it hasn't be shown // correctly - hiding and re-showing solves the problem. playerBox[i]->hide(); playerBox[i]->show(); } // Connects for player 1 // // FIXME: Make CardWidget::toggleHeld() work. playerBox[0]->activateToggleHeld(); connect(playerBox[0], SIGNAL(toggleHeld()), this, SLOT(toggleHeld())); // hide some things playerBox[0]->showHelds(false); wonLabel->hide(); emit showClickToHold(false); // Different meaning of the status for single and multi player games. if (m_game.getNumActivePlayers() > 1) { setHand(i18n("Nobody"), false); betBox->show(); betBox->setEnabled(false); potLabel->show(); } else { setHand(i18n("Nothing")); betBox->hide(); potLabel->hide(); playerBox[0]->singlePlayerGame(cashPerRound); } // Some final inits. drawStat = 0; waveActive = 0; fCount = 0; // Finally clear the pot and show the decks/cash - in one word: begin :-) m_game.clearPot(); drawAllDecks(); for (unsigned int i = 0; i < m_numPlayers; i++) { playerBox[i]->repaintCard(); } paintCash(); playerBox[0]->setHeldEnabled(false); }