From 7c6337d810a22a3f6671acea64fd0ee27c9571d2 Mon Sep 17 00:00:00 2001 From: lotodore Date: Fri, 11 May 2007 12:01:13 +0000 Subject: [PATCH] Changes in preparation for the integration of the network server. GUI does not directly know Game and Hand any more, only Session. WARNING: This version crashes due to initialization order problems. --- src/engine/local_engine/localflop.cpp | 28 +- src/engine/local_engine/localhand.cpp | 1 - src/engine/local_engine/localpreflop.cpp | 22 +- src/engine/local_engine/localriver.cpp | 26 +- src/engine/local_engine/localturn.cpp | 28 +- src/game.cpp | 5 + src/game.h | 6 +- src/gui/guiinterface.h | 15 +- src/gui/qt/guiwrapper.cpp | 9 +- src/gui/qt/guiwrapper.h | 17 +- src/gui/qt/log/log.cpp | 59 +-- src/gui/qt/mainwindow/mainwindowimpl.cpp | 437 ++++++++++++----------- src/gui/qt/mainwindow/mainwindowimpl.h | 25 +- src/net/common/serverrecvthread.cpp | 10 +- src/net/common/serverthread.cpp | 12 +- src/net/serverrecvthread.h | 16 +- src/net/serverthread.h | 2 + src/pokerth.cpp | 6 +- src/session.cpp | 32 +- src/session.h | 8 +- 20 files changed, 441 insertions(+), 323 deletions(-) diff --git a/src/engine/local_engine/localflop.cpp b/src/engine/local_engine/localflop.cpp index 61c5c47e..98d89956 100755 --- a/src/engine/local_engine/localflop.cpp +++ b/src/engine/local_engine/localflop.cpp @@ -110,17 +110,25 @@ void LocalFlop::flopRun() { // cout << "playersTurn " << playersTurn << endl; // wenn wir letzter aktiver Spieler vor SmallBlind sind, dann flopFirstRound zuende if(myHand->getPlayerArray()[playersTurn]->getMyID() == activePlayerBeforeSmallBlind) { firstFlopRound = 0; } - - if(playersTurn == 0) { - // Wir sind dran -// cout << "actualRound " << myHand->getActualRound() << endl; -// cout << "highestSet vor meInAction " << highestSet << endl; - myHand->getGuiInterface()->meInAction(); + + if(myHand->getGuiInterface()->isNetworkServer()) + { + myHand->getGuiInterface()->waitForNetworkAction( + GAME_STATE_FLOP, myHand->getPlayerArray()[playersTurn]->getMyUniqueID()); } - else { - //Gegner sind dran -// cout << "NextPlayerSpeed3 start" << endl; - myHand->getGuiInterface()->flopAnimation2(); + else + { + if(playersTurn == 0) { + // Wir sind dran +// cout << "actualRound " << myHand->getActualRound() << endl; +// cout << "highestSet vor meInAction " << highestSet << endl; + myHand->getGuiInterface()->meInAction(); + } + else { + //Gegner sind dran +// cout << "NextPlayerSpeed3 start" << endl; + myHand->getGuiInterface()->flopAnimation2(); + } } } } diff --git a/src/engine/local_engine/localhand.cpp b/src/engine/local_engine/localhand.cpp index 3f79f693..ac46003b 100755 --- a/src/engine/local_engine/localhand.cpp +++ b/src/engine/local_engine/localhand.cpp @@ -30,7 +30,6 @@ LocalHand::LocalHand(EngineFactory *f, GuiInterface *g, BoardInterface *b, Playe CardsValue myCardsValue; - myGui->setHand(this); myBoard->setHand(this); diff --git a/src/engine/local_engine/localpreflop.cpp b/src/engine/local_engine/localpreflop.cpp index 6467908d..4cb62463 100755 --- a/src/engine/local_engine/localpreflop.cpp +++ b/src/engine/local_engine/localpreflop.cpp @@ -107,14 +107,22 @@ void LocalPreflop::preflopRun() { myHand->getPlayerArray()[playersTurn]->setMyTurn(1); myHand->getGuiInterface()->refreshGroupbox(playersTurn,2); - if(playersTurn == 0) { - // Wir sind dran - myHand->getGuiInterface()->meInAction(); + if(myHand->getGuiInterface()->isNetworkServer()) + { + myHand->getGuiInterface()->waitForNetworkAction( + GAME_STATE_PREFLOP, myHand->getPlayerArray()[playersTurn]->getMyUniqueID()); } - else { - //Gegner sind dran -// cout << "NextPlayerSpeed3 start" << endl; - myHand->getGuiInterface()->preflopAnimation2(); + else + { + if(playersTurn == 0) { + // Wir sind dran + myHand->getGuiInterface()->meInAction(); + } + else { + //Gegner sind dran +// cout << "NextPlayerSpeed3 start" << endl; + myHand->getGuiInterface()->preflopAnimation2(); + } } } } diff --git a/src/engine/local_engine/localriver.cpp b/src/engine/local_engine/localriver.cpp index d6d33b79..7d367217 100755 --- a/src/engine/local_engine/localriver.cpp +++ b/src/engine/local_engine/localriver.cpp @@ -110,16 +110,24 @@ void LocalRiver::riverRun() { // cout << "playersTurn " << playersTurn << endl; // wenn wir letzter aktiver Spieler vor SmallBlind sind, dann flopFirstRound zuende if(myHand->getPlayerArray()[playersTurn]->getMyID() == activePlayerBeforeSmallBlind) { firstRiverRound = 0; } - - if(playersTurn == 0) { - // Wir sind dran -// cout << "actualRound " << myHand->getActualRound() << endl; -// cout << "highestSet vor meInAction " << highestSet << endl; - myHand->getGuiInterface()->meInAction(); + + if(myHand->getGuiInterface()->isNetworkServer()) + { + myHand->getGuiInterface()->waitForNetworkAction( + GAME_STATE_RIVER, myHand->getPlayerArray()[playersTurn]->getMyUniqueID()); } - else { - //Gegner sind dran - myHand->getGuiInterface()->riverAnimation2(); + else + { + if(playersTurn == 0) { + // Wir sind dran +// cout << "actualRound " << myHand->getActualRound() << endl; +// cout << "highestSet vor meInAction " << highestSet << endl; + myHand->getGuiInterface()->meInAction(); + } + else { + //Gegner sind dran + myHand->getGuiInterface()->riverAnimation2(); + } } } } diff --git a/src/engine/local_engine/localturn.cpp b/src/engine/local_engine/localturn.cpp index ca4cb43d..ea581d6f 100755 --- a/src/engine/local_engine/localturn.cpp +++ b/src/engine/local_engine/localturn.cpp @@ -111,17 +111,25 @@ void LocalTurn::turnRun() { // cout << "playersTurn " << playersTurn << endl; // wenn wir letzter aktiver Spieler vor SmallBlind sind, dann flopFirstRound zuende if(myHand->getPlayerArray()[playersTurn]->getMyID() == activePlayerBeforeSmallBlind) { firstTurnRound = 0; } - - if(playersTurn == 0) { - // Wir sind dran -// cout << "actualRound " << myHand->getActualRound() << endl; -// cout << "highestSet vor meInAction " << highestSet << endl; - myHand->getGuiInterface()->meInAction(); + + if(myHand->getGuiInterface()->isNetworkServer()) + { + myHand->getGuiInterface()->waitForNetworkAction( + GAME_STATE_TURN, myHand->getPlayerArray()[playersTurn]->getMyUniqueID()); } - else { - //Gegner sind dran -// cout << "NextPlayerSpeed3 start" << endl; - myHand->getGuiInterface()->turnAnimation2(); + else + { + if(playersTurn == 0) { + // Wir sind dran +// cout << "actualRound " << myHand->getActualRound() << endl; +// cout << "highestSet vor meInAction " << highestSet << endl; + myHand->getGuiInterface()->meInAction(); + } + else { + //Gegner sind dran +// cout << "NextPlayerSpeed3 start" << endl; + myHand->getGuiInterface()->turnAnimation2(); + } } } } diff --git a/src/game.cpp b/src/game.cpp index 2094f90d..5dec6a8c 100755 --- a/src/game.cpp +++ b/src/game.cpp @@ -110,6 +110,11 @@ Game::~Game() } +HandInterface * Game::getCurrentHand() +{ + return actualHand; +} + void Game::startHand() { diff --git a/src/game.h b/src/game.h index 93349fa9..74cccb43 100755 --- a/src/game.h +++ b/src/game.h @@ -37,9 +37,11 @@ struct GameData; class Game { public: - Game(GuiInterface *gui, const PlayerDataList &playerDataList, const GameData &gameData, int gameId); + Game(GuiInterface *gui, const PlayerDataList &playerDataList, const GameData &gameData, int gameId); - ~Game(); + ~Game(); + + HandInterface *getCurrentHand(); //Zufgriff Startvariablen void setStartQuantityPlayers(const int& theValue) { startQuantityPlayers = theValue; } diff --git a/src/gui/guiinterface.h b/src/gui/guiinterface.h index 2b107dcc..26dc9152 100644 --- a/src/gui/guiinterface.h +++ b/src/gui/guiinterface.h @@ -22,11 +22,12 @@ #include #include +#include #include +#include + -class Game; class Session; -class HandInterface; class GuiInterface : public ClientCallback, public ServerCallback { @@ -34,10 +35,12 @@ public: virtual ~GuiInterface(); virtual void initGui(int speed) =0; - //set - virtual void setGame(Game*) =0; - virtual void setHand(HandInterface*) =0; - virtual void setSession(Session*) =0; + + virtual Session &getSession() =0; + virtual void setSession(boost::shared_ptr session) =0; + + virtual bool isNetworkServer() const =0; + virtual void waitForNetworkAction(GameState state, unsigned uniquePlayerId) =0; //refresh-Funktionen virtual void refreshSet() const=0; diff --git a/src/gui/qt/guiwrapper.cpp b/src/gui/qt/guiwrapper.cpp index f3889454..f16edc21 100644 --- a/src/gui/qt/guiwrapper.cpp +++ b/src/gui/qt/guiwrapper.cpp @@ -19,6 +19,7 @@ ***************************************************************************/ #include "guiwrapper.h" +#include "session.h" using namespace std; @@ -43,9 +44,11 @@ GuiWrapper::~GuiWrapper() void GuiWrapper::initGui(int speed) { myW->initGui(speed); } -void GuiWrapper::setGame(Game *g) { myW->setGame(g); } -void GuiWrapper::setHand(HandInterface *lh) { myW->setHand(lh); } -void GuiWrapper::setSession(Session *s) { myW->setSession(s); } +Session &GuiWrapper::getSession() { return myW->getSession(); } +void GuiWrapper::setSession(boost::shared_ptr session) { myW->setSession(session); } + +bool GuiWrapper::isNetworkServer() const { /* TODO hack */ return false; } +void GuiWrapper::waitForNetworkAction(GameState state, unsigned uniquePlayerId) { /* TODO hack */ } void GuiWrapper::refreshSet() const { myW->refreshSet(); } void GuiWrapper::refreshCash() const { myW->refreshCash(); } diff --git a/src/gui/qt/guiwrapper.h b/src/gui/qt/guiwrapper.h index a929044f..d88c17c4 100644 --- a/src/gui/qt/guiwrapper.h +++ b/src/gui/qt/guiwrapper.h @@ -30,23 +30,22 @@ #include #include -#include "handinterface.h" -#include "session.h" -#include "game.h" - +class Session; class GuiWrapper : public GuiInterface { public: - GuiWrapper(); + GuiWrapper(); - ~GuiWrapper(); + ~GuiWrapper(); void initGui(int speed); - void setGame(Game*); - void setHand(HandInterface*); - void setSession(Session*); + Session &getSession(); + void setSession(boost::shared_ptr session); + + bool isNetworkServer() const; + void waitForNetworkAction(GameState state, unsigned uniquePlayerId); void refreshSet() const; void refreshCash() const; diff --git a/src/gui/qt/log/log.cpp b/src/gui/qt/log/log.cpp index 6c7ea0f9..c88b3f14 100644 --- a/src/gui/qt/log/log.cpp +++ b/src/gui/qt/log/log.cpp @@ -20,6 +20,9 @@ #include "log.h" #include "mainwindowimpl.h" +#include +#include +#include #include using namespace std; @@ -149,44 +152,45 @@ void Log::logNewGameHandMsg(int gameID, int handID) { //Aktive Spieler zählen int activePlayersCounter = 0; + HandInterface *currentHand = myW->getSession().getCurrentGame()->getCurrentHand(); for (k=0; kgetActualHand()->getPlayerArray()[k]->getMyActiveStatus() == 1) activePlayersCounter++; + if (currentHand->getPlayerArray()[k]->getMyActiveStatus() == 1) activePlayersCounter++; } k = 0; if(activePlayersCounter > 2) { - for(i=0; igetActualHand()->getStartQuantityPlayers(); i++) { + for(i=0; igetStartQuantityPlayers(); i++) { - if(myW->getActualHand()->getPlayerArray()[i]->getMyActiveStatus()) { + if(currentHand->getPlayerArray()[i]->getMyActiveStatus()) { //print cash only for active players - if(myW->getActualHand()->getPlayerArray()[i]->getMyButton() == 1) { + if(currentHand->getPlayerArray()[i]->getMyButton() == 1) { if(k==1) { stream << ", "; } k=1; - stream << QString::fromUtf8(myW->getActualHand()->getPlayerArray()[i]->getMyName().c_str())+" (Dealer): "+QString::number(myW->getActualHand()->getPlayerArray()[i]->getMyCash(),10)+"$"; + stream << QString::fromUtf8(currentHand->getPlayerArray()[i]->getMyName().c_str())+" (Dealer): "+QString::number(currentHand->getPlayerArray()[i]->getMyCash(),10)+"$"; } else { if(k==1) { stream << ", "; } k=1; - stream << QString::fromUtf8(myW->getActualHand()->getPlayerArray()[i]->getMyName().c_str())+": "+QString::number(myW->getActualHand()->getPlayerArray()[i]->getMyCash()+myW->getActualHand()->getPlayerArray()[i]->getMySet(),10)+"$"; + stream << QString::fromUtf8(currentHand->getPlayerArray()[i]->getMyName().c_str())+": "+QString::number(currentHand->getPlayerArray()[i]->getMyCash()+currentHand->getPlayerArray()[i]->getMySet(),10)+"$"; } } } } else { - for(i=0; igetActualHand()->getStartQuantityPlayers(); i++) { - if(myW->getActualHand()->getPlayerArray()[i]->getMyActiveStatus()) { + for(i=0; igetStartQuantityPlayers(); i++) { + if(currentHand->getPlayerArray()[i]->getMyActiveStatus()) { //print cash only for active players - if(myW->getActualHand()->getPlayerArray()[i]->getMyButton() == 3) { + if(currentHand->getPlayerArray()[i]->getMyButton() == 3) { if(k==1) { stream << ", "; } k=1; - stream << QString::fromUtf8(myW->getActualHand()->getPlayerArray()[i]->getMyName().c_str())+" (Dealer): "+QString::number(myW->getActualHand()->getPlayerArray()[i]->getMyCash()+myW->getActualHand()->getPlayerArray()[i]->getMySet(),10)+"$"; + stream << QString::fromUtf8(currentHand->getPlayerArray()[i]->getMyName().c_str())+" (Dealer): "+QString::number(currentHand->getPlayerArray()[i]->getMyCash()+currentHand->getPlayerArray()[i]->getMySet(),10)+"$"; } else { if(k==1) { stream << ", "; } k=1; - stream << QString::fromUtf8(myW->getActualHand()->getPlayerArray()[i]->getMyName().c_str())+": "+QString::number(myW->getActualHand()->getPlayerArray()[i]->getMyCash()+myW->getActualHand()->getPlayerArray()[i]->getMySet(),10)+"$"; + stream << QString::fromUtf8(currentHand->getPlayerArray()[i]->getMyName().c_str())+": "+QString::number(currentHand->getPlayerArray()[i]->getMyCash()+currentHand->getPlayerArray()[i]->getMySet(),10)+"$"; } } } @@ -198,17 +202,17 @@ void Log::logNewGameHandMsg(int gameID, int handID) { //Aktive Spieler zählen int activePlayersCounter = 0; for (k=0; kgetActualHand()->getPlayerArray()[k]->getMyAction() != 1 && myW->getActualHand()->getPlayerArray()[k]->getMyActiveStatus() == 1) activePlayersCounter++; + if (currentHand->getPlayerArray()[k]->getMyAction() != 1 && currentHand->getPlayerArray()[k]->getMyActiveStatus() == 1) activePlayersCounter++; } if(activePlayersCounter < 3) { j=1; } // cout << activePlayersCounter << endl; -// cout << (i+myW->getActualHand()->getDealerPosition()+j)%5 << endl; +// cout << (i+currentHand->getDealerPosition()+j)%5 << endl; - switch (myW->getActualHand()->getPlayerArray()[(i+myW->getActualHand()->getDealerPosition()+j)%MAX_NUMBER_OF_PLAYERS]->getMyButton()) { - case 2 : stream << QString::fromUtf8(myW->getActualHand()->getPlayerArray()[(i+myW->getActualHand()->getDealerPosition()+j)%MAX_NUMBER_OF_PLAYERS]->getMyName().c_str())+" ("+QString::number(myW->getActualHand()->getPlayerArray()[(i+myW->getActualHand()->getDealerPosition()+j)%MAX_NUMBER_OF_PLAYERS]->getMySet(),10)+"$), "; + switch (currentHand->getPlayerArray()[(i+currentHand->getDealerPosition()+j)%MAX_NUMBER_OF_PLAYERS]->getMyButton()) { + case 2 : stream << QString::fromUtf8(currentHand->getPlayerArray()[(i+currentHand->getDealerPosition()+j)%MAX_NUMBER_OF_PLAYERS]->getMyName().c_str())+" ("+QString::number(currentHand->getPlayerArray()[(i+currentHand->getDealerPosition()+j)%MAX_NUMBER_OF_PLAYERS]->getMySet(),10)+"$), "; break; - case 3 : stream << QString::fromUtf8(myW->getActualHand()->getPlayerArray()[(i+myW->getActualHand()->getDealerPosition()+j)%MAX_NUMBER_OF_PLAYERS]->getMyName().c_str())+" ("+QString::number(myW->getActualHand()->getPlayerArray()[(i+myW->getActualHand()->getDealerPosition()+j)%MAX_NUMBER_OF_PLAYERS]->getMySet(),10)+"$)"; + case 3 : stream << QString::fromUtf8(currentHand->getPlayerArray()[(i+currentHand->getDealerPosition()+j)%MAX_NUMBER_OF_PLAYERS]->getMyName().c_str())+" ("+QString::number(currentHand->getPlayerArray()[(i+currentHand->getDealerPosition()+j)%MAX_NUMBER_OF_PLAYERS]->getMySet(),10)+"$)"; break; default :; } @@ -226,18 +230,19 @@ void Log::logNewGameHandMsg(int gameID, int handID) { void Log::logPlayerWinsMsg(int playerID, int pot) { int i; + HandInterface *currentHand = myW->getSession().getCurrentGame()->getCurrentHand(); myLogFile->open( QIODevice::ReadWrite ); QTextStream stream( myLogFile ); for(i=0; i<=linesInFile; i++) { stream.readLine(); } // if (cardsValueInt != -1) { -// myW->textBrowser_Log->append(QString::fromUtf8(myW->getActualHand()->getPlayerArray()[playerID]->getMyName())+" wins "+QString::number(pot,10)+"$ with "+translateCardsValueCode(cardsValueInt).at(0)+"!!! "); -// stream << "
"+QString::fromUtf8(myW->getActualHand()->getPlayerArray()[playerID]->getMyName())+" wins "+QString::number(pot,10)+"$!!!

\n"; +// myW->textBrowser_Log->append(QString::fromUtf8(currentHand->getPlayerArray()[playerID]->getMyName())+" wins "+QString::number(pot,10)+"$ with "+translateCardsValueCode(cardsValueInt).at(0)+"!!! "); +// stream << "
"+QString::fromUtf8(currentHand->getPlayerArray()[playerID]->getMyName())+" wins "+QString::number(pot,10)+"$!!!

\n"; // } // else { - myW->textBrowser_Log->append(QString::fromUtf8(myW->getActualHand()->getPlayerArray()[playerID]->getMyName().c_str())+" wins "+QString::number(pot,10)+"$!!! "); - stream << "
"+QString::fromUtf8(myW->getActualHand()->getPlayerArray()[playerID]->getMyName().c_str())+" wins "+QString::number(pot,10)+"$!!!

\n"; + myW->textBrowser_Log->append(QString::fromUtf8(currentHand->getPlayerArray()[playerID]->getMyName().c_str())+" wins "+QString::number(pot,10)+"$!!! "); + stream << "
"+QString::fromUtf8(currentHand->getPlayerArray()[playerID]->getMyName().c_str())+" wins "+QString::number(pot,10)+"$!!!

\n"; // } myLogFile->close(); @@ -340,20 +345,20 @@ void Log::logFlipHoleCardsMsg(std::string playerName, int card1, int card2, int // Kicker anzeigen? // for(i=0; i<5; i++) { -// if(myW->getActualHand()->getPlayerArray()[i]->getMyAction() != 1 && myW->getActualHand()->getPlayerArray()[i]->getMyActiveStatus() == 1 && myW->getActualHand()->getPlayerArray()[i]->getMyCardsValueInt()/100000000 == 3 && myW->getActualHand()->getPlayerArray()[i]->getMyCardsValueInt()/1000000 - (int)(myW->getActualHand()->getPlayerArray()[i]->getMyCardsValueInt()/100000000)*100 == secondPart) { +// if(currentHand->getPlayerArray()[i]->getMyAction() != 1 && currentHand->getPlayerArray()[i]->getMyActiveStatus() == 1 && currentHand->getPlayerArray()[i]->getMyCardsValueInt()/100000000 == 3 && currentHand->getPlayerArray()[i]->getMyCardsValueInt()/1000000 - (int)(currentHand->getPlayerArray()[i]->getMyCardsValueInt()/100000000)*100 == secondPart) { // sameHandCounter++; -// if(myW->getActualHand()->getPlayerArray()[i]->getMyCardsValueInt() > tempHighestCardsValueInt) { -// tempHighestCardsValueInt = myW->getActualHand()->getPlayerArray()[i]->getMyCardsValueInt(); +// if(currentHand->getPlayerArray()[i]->getMyCardsValueInt() > tempHighestCardsValueInt) { +// tempHighestCardsValueInt = currentHand->getPlayerArray()[i]->getMyCardsValueInt(); // } // } // } // Unterschied ermitteln // for(i=0; i<5; i++) { -// if(myW->getActualHand()->getPlayerArray()[i]->getMyAction() != 1 && myW->getActualHand()->getPlayerArray()[i]->getMyActiveStatus() == 1 && myW->getActualHand()->getPlayerArray()[i]->getMyCardsValueInt()/100000000 == 3 && myW->getActualHand()->getPlayerArray()[i]->getMyCardsValueInt()/1000000 - (int)(myW->getActualHand()->getPlayerArray()[i]->getMyCardsValueInt()/100000000)*100 == secondPart) { +// if(currentHand->getPlayerArray()[i]->getMyAction() != 1 && currentHand->getPlayerArray()[i]->getMyActiveStatus() == 1 && currentHand->getPlayerArray()[i]->getMyCardsValueInt()/100000000 == 3 && currentHand->getPlayerArray()[i]->getMyCardsValueInt()/1000000 - (int)(currentHand->getPlayerArray()[i]->getMyCardsValueInt()/100000000)*100 == secondPart) { // sameHandCounter++; -// if(myW->getActualHand()->getPlayerArray()[i]->getMyCardsValueInt() > tempHighestCardsValueInt) { -// tempHighestCardsValueInt = myW->getActualHand()->getPlayerArray()[i]->getMyCardsValueInt(); +// if(currentHand->getPlayerArray()[i]->getMyCardsValueInt() > tempHighestCardsValueInt) { +// tempHighestCardsValueInt = currentHand->getPlayerArray()[i]->getMyCardsValueInt(); // } // } // } @@ -364,7 +369,7 @@ void Log::logFlipHoleCardsMsg(std::string playerName, int card1, int card2, int /* } else { if(cardsValueInt == tempHighestCardsValueInt) { for(i=0; i<5; i++) { - if(myW->getActualHand()->getPlayerArray()[i]->getMyAction() != 1 && myW->getActualHand()->getPlayerArray()[i]->getMyActiveStatus() == 1 && myW->getActualHand()->getPlayerArray()[i]->getMyCardsValueInt()/100000000 == 3 && myW->getActualHand()->getPlayerArray()[i]->getMyCardsValueInt()/1000000 - (int)(myW->getActualHand()->getPlayerArray()[i]->getMyCardsValueInt()/100000000)*100 == secondPart) ; + if(currentHand->getPlayerArray()[i]->getMyAction() != 1 && currentHand->getPlayerArray()[i]->getMyActiveStatus() == 1 && currentHand->getPlayerArray()[i]->getMyCardsValueInt()/100000000 == 3 && currentHand->getPlayerArray()[i]->getMyCardsValueInt()/1000000 - (int)(currentHand->getPlayerArray()[i]->getMyCardsValueInt()/100000000)*100 == secondPart) ; } } }*/ diff --git a/src/gui/qt/mainwindow/mainwindowimpl.cpp b/src/gui/qt/mainwindow/mainwindowimpl.cpp index 48cd6ab8..a446accf 100755 --- a/src/gui/qt/mainwindow/mainwindowimpl.cpp +++ b/src/gui/qt/mainwindow/mainwindowimpl.cpp @@ -34,7 +34,8 @@ #include "playerinterface.h" #include "boardinterface.h" -#include "game.h" +#include "handinterface.h" +#include "game.h" #include "session.h" #include "log.h" @@ -49,8 +50,8 @@ using namespace std; mainWindowImpl::mainWindowImpl(QMainWindow *parent) - : QMainWindow(parent), actualGame(0), actualHand(0), mySession(0), gameSpeed(0), debugMode(0), breakAfterActualHand(FALSE) -{ + : QMainWindow(parent), gameSpeed(0), debugMode(0), breakAfterActualHand(FALSE) +{ int i; this->setStyle(new QPlastiqueStyle); @@ -711,29 +712,31 @@ void mainWindowImpl::callSettingsDialog() { else { groupBox_RightToolBox->hide(); } //Falls Spielernamen geändert wurden --> neu zeichnen --> erst beim nächsten Neustart neu ausgelesen - if (v->getPlayerNickIsChanged() && actualGame) { + if (v->getPlayerNickIsChanged() && mySession->getCurrentGame()) { - actualHand->getPlayerArray()[0]->setMyName(v->lineEdit_humanPlayerName->text().toUtf8().constData()); - actualHand->getPlayerArray()[1]->setMyName(v->lineEdit_Opponent1Name->text().toUtf8().constData()); - actualHand->getPlayerArray()[2]->setMyName(v->lineEdit_Opponent2Name->text().toUtf8().constData()); - actualHand->getPlayerArray()[3]->setMyName(v->lineEdit_Opponent3Name->text().toUtf8().constData()); - actualHand->getPlayerArray()[4]->setMyName(v->lineEdit_Opponent4Name->text().toUtf8().constData()); - actualHand->getPlayerArray()[5]->setMyName(v->lineEdit_Opponent5Name->text().toUtf8().constData()); - actualHand->getPlayerArray()[6]->setMyName(v->lineEdit_Opponent6Name->text().toUtf8().constData()); + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + currentHand->getPlayerArray()[0]->setMyName(v->lineEdit_humanPlayerName->text().toUtf8().constData()); + currentHand->getPlayerArray()[1]->setMyName(v->lineEdit_Opponent1Name->text().toUtf8().constData()); + currentHand->getPlayerArray()[2]->setMyName(v->lineEdit_Opponent2Name->text().toUtf8().constData()); + currentHand->getPlayerArray()[3]->setMyName(v->lineEdit_Opponent3Name->text().toUtf8().constData()); + currentHand->getPlayerArray()[4]->setMyName(v->lineEdit_Opponent4Name->text().toUtf8().constData()); + currentHand->getPlayerArray()[5]->setMyName(v->lineEdit_Opponent5Name->text().toUtf8().constData()); + currentHand->getPlayerArray()[6]->setMyName(v->lineEdit_Opponent6Name->text().toUtf8().constData()); v->setPlayerNickIsChanged(FALSE); refreshPlayerName(); } - if(actualGame) { + if(mySession->getCurrentGame()) { - actualHand->getPlayerArray()[0]->setMyAvatar(v->lineEdit_humanPlayerAvatar->text().toUtf8().constData()); - actualHand->getPlayerArray()[1]->setMyAvatar(v->lineEdit_Opponent1Avatar->text().toUtf8().constData()); - actualHand->getPlayerArray()[2]->setMyAvatar(v->lineEdit_Opponent2Avatar->text().toUtf8().constData()); - actualHand->getPlayerArray()[3]->setMyAvatar(v->lineEdit_Opponent3Avatar->text().toUtf8().constData()); - actualHand->getPlayerArray()[4]->setMyAvatar(v->lineEdit_Opponent4Avatar->text().toUtf8().constData()); - actualHand->getPlayerArray()[5]->setMyAvatar(v->lineEdit_Opponent5Avatar->text().toUtf8().constData()); - actualHand->getPlayerArray()[6]->setMyAvatar(v->lineEdit_Opponent6Avatar->text().toUtf8().constData()); + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + currentHand->getPlayerArray()[0]->setMyAvatar(v->lineEdit_humanPlayerAvatar->text().toUtf8().constData()); + currentHand->getPlayerArray()[1]->setMyAvatar(v->lineEdit_Opponent1Avatar->text().toUtf8().constData()); + currentHand->getPlayerArray()[2]->setMyAvatar(v->lineEdit_Opponent2Avatar->text().toUtf8().constData()); + currentHand->getPlayerArray()[3]->setMyAvatar(v->lineEdit_Opponent3Avatar->text().toUtf8().constData()); + currentHand->getPlayerArray()[4]->setMyAvatar(v->lineEdit_Opponent4Avatar->text().toUtf8().constData()); + currentHand->getPlayerArray()[5]->setMyAvatar(v->lineEdit_Opponent5Avatar->text().toUtf8().constData()); + currentHand->getPlayerArray()[6]->setMyAvatar(v->lineEdit_Opponent6Avatar->text().toUtf8().constData()); //avatar refresh refreshPlayerAvatar(); @@ -790,11 +793,12 @@ void mainWindowImpl::initGui(int speed) setSpeeds(); } -void mainWindowImpl::setGame(Game *g) { actualGame = g; } +Session &mainWindowImpl::getSession() { assert(mySession.get()); return *mySession; } -void mainWindowImpl::setHand(HandInterface* br) { actualHand = br; } - -void mainWindowImpl::setSession(Session* s) { mySession = s; } +void mainWindowImpl::setSession(boost::shared_ptr session) +{ + mySession = session; +} void mainWindowImpl::setLog(Log* l) { myLog = l; } @@ -803,8 +807,8 @@ void mainWindowImpl::refreshSet() { int i; for (i=0; igetPlayerArray()[i]->getMySet() == 0) setLabelArray[i]->setText(""); - else setLabelArray[i]->setText("

Set: "+QString::number(actualHand->getPlayerArray()[i]->getMySet(),10)+" $

"); + if(mySession->getCurrentGame()->getCurrentHand()->getPlayerArray()[i]->getMySet() == 0) setLabelArray[i]->setText(""); + else setLabelArray[i]->setText("

Set: "+QString::number(mySession->getCurrentGame()->getCurrentHand()->getPlayerArray()[i]->getMySet(),10)+" $

"); } } @@ -818,13 +822,15 @@ void mainWindowImpl::refreshButton() { //Aktive Spieler zählen int activePlayersCounter = 0; for (k=0; kgetPlayerArray()[k]->getMyActiveStatus() == 1) activePlayersCounter++; + if (mySession->getCurrentGame()->getCurrentHand()->getPlayerArray()[k]->getMyActiveStatus() == 1) activePlayersCounter++; } + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + for (i=0; igetPlayerArray()[i]->getMyActiveStatus()) { + if(currentHand->getPlayerArray()[i]->getMyActiveStatus()) { if(activePlayersCounter > 2) { - if (actualHand->getPlayerArray()[i]->getMyButton()==1) { + if (currentHand->getPlayerArray()[i]->getMyButton()==1) { buttonLabelArray[i]->setPixmap(dealerButton); } else { @@ -832,7 +838,7 @@ void mainWindowImpl::refreshButton() { } } else { - if (actualHand->getPlayerArray()[i]->getMyButton()==3) { + if (currentHand->getPlayerArray()[i]->getMyButton()==3) { buttonLabelArray[i]->setPixmap(dealerButton); } else { @@ -848,8 +854,8 @@ void mainWindowImpl::refreshPlayerName() { int i; for (i=0; igetPlayerArray()[i]->getMyActiveStatus()) { - playerNameLabelArray[i]->setText(QString::fromUtf8(actualHand->getPlayerArray()[i]->getMyName().c_str())); + if(mySession->getCurrentGame()->getCurrentHand()->getPlayerArray()[i]->getMyActiveStatus()) { + playerNameLabelArray[i]->setText(QString::fromUtf8(mySession->getCurrentGame()->getCurrentHand()->getPlayerArray()[i]->getMyName().c_str())); } else { playerNameLabelArray[i]->setText(""); @@ -864,23 +870,25 @@ void mainWindowImpl::refreshPlayerAvatar() { QPixmap onePix(":/graphics/resources/graphics/1px.png"); int i; + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + for (i=0; igetPlayerArray()[i]->getMyActiveStatus()) { + if(currentHand->getPlayerArray()[i]->getMyActiveStatus()) { if(!i) { - if(actualHand->getPlayerArray()[0]->getMyAvatar() == "") { + if(currentHand->getPlayerArray()[0]->getMyAvatar() == "") { playerAvatarLabelArray[0]->setPixmap(QPixmap(":/guiv2/resources/guiv2/genereticAvatar.png")); } else { - playerAvatarLabelArray[0]->setPixmap(QString::fromUtf8(actualHand->getPlayerArray()[0]->getMyAvatar().c_str())); + playerAvatarLabelArray[0]->setPixmap(QString::fromUtf8(currentHand->getPlayerArray()[0]->getMyAvatar().c_str())); } } else { - if(actualHand->getPlayerArray()[i]->getMyAvatar() == "") { + if(currentHand->getPlayerArray()[i]->getMyAvatar() == "") { playerAvatarLabelArray[i]->setPixmap(QPixmap(":/guiv2/resources/guiv2/genereticAvatar.png")); } else { - playerAvatarLabelArray[i]->setPixmap(QString::fromUtf8(actualHand->getPlayerArray()[i]->getMyAvatar().c_str())); + playerAvatarLabelArray[i]->setPixmap(QString::fromUtf8(currentHand->getPlayerArray()[i]->getMyAvatar().c_str())); } } } @@ -898,24 +906,26 @@ void mainWindowImpl::refreshAction(int playerID, int playerAction) { QStringList actionArray; actionArray << "" << "fold" << "check" << "call" << "bet" << "raise" << "allin"; + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + if(playerID == -1 || playerAction == -1) { int i; for (i=0; i clear Pixmap - if(actualHand->getPlayerArray()[i]->getMyAction() == 0) { + if(currentHand->getPlayerArray()[i]->getMyAction() == 0) { actionLabelArray[i]->setPixmap(onePix); } else { - if(i!=0 || ( i==0 && actualHand->getPlayerArray()[0]->getMyAction() != 1) ) { + if(i!=0 || ( i==0 && currentHand->getPlayerArray()[0]->getMyAction() != 1) ) { //paint action pixmap - actionLabelArray[i]->setPixmap(QPixmap(":/actions/resources/graphics/actions/action_"+actionArray[actualHand->getPlayerArray()[i]->getMyAction()]+".png")); + actionLabelArray[i]->setPixmap(QPixmap(":/actions/resources/graphics/actions/action_"+actionArray[currentHand->getPlayerArray()[i]->getMyAction()]+".png")); } - // actionLabelArray[i]->setStyleSheet("QLabel { background-image: url(:/actions/resources/graphics/actions/action_"+actionArray[actualHand->getPlayerArray()[i]->getMyAction()]+".png"); + // actionLabelArray[i]->setStyleSheet("QLabel { background-image: url(:/actions/resources/graphics/actions/action_"+actionArray[currentHand->getPlayerArray()[i]->getMyAction()]+".png"); } - if (actualHand->getPlayerArray()[i]->getMyAction()==1) { + if (currentHand->getPlayerArray()[i]->getMyAction()==1) { // groupBoxArray[i]->setDisabled(TRUE); if(i != 0) { @@ -950,10 +960,12 @@ void mainWindowImpl::refreshAction(int playerID, int playerAction) { void mainWindowImpl::refreshCash() { int i; - for (i=0; igetPlayerArray()[i]->getMyActiveStatus()) { + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); - cashLabelArray[i]->setText(QString::number(actualHand->getPlayerArray()[i]->getMyCash(),10)+" $"); + for (i=0; igetPlayerArray()[i]->getMyActiveStatus()) { + + cashLabelArray[i]->setText(QString::number(currentHand->getPlayerArray()[i]->getMyCash(),10)+" $"); cashTopLabelArray[i]->setText("Cash:"); } else { @@ -968,9 +980,10 @@ void mainWindowImpl::refreshGroupbox(int playerID, int status) { if(playerID == -1 || status == -1) { int i,j; + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); for (i=0; igetPlayerArray()[i]->getMyTurn()) { + if(currentHand->getPlayerArray()[i]->getMyTurn()) { //Groupbox glow wenn der Spiele dran ist. if(i==0) { groupBoxArray[0]->setStyleSheet("QGroupBox { background-image: url(:/guiv2/resources/guiv2/playerBoxActiveGlow.png) }"); @@ -981,7 +994,7 @@ void mainWindowImpl::refreshGroupbox(int playerID, int status) { } else { //Groupbox auf Hintergrundfarbe setzen wenn der Spiele nicht dran aber aktiv ist. - if(actualHand->getPlayerArray()[i]->getMyActiveStatus()) { + if(currentHand->getPlayerArray()[i]->getMyActiveStatus()) { if(i==0) { groupBoxArray[0]->setStyleSheet("QGroupBox { background-image: url(:/guiv2/resources/guiv2/playerBoxInactiveGlow.png) }"); //show buttons @@ -1059,8 +1072,8 @@ void mainWindowImpl::highlightRoundLabel(string tempround) { // frame_handLabel->setPalette(tempPalette); textLabel_handLabel->setText(round); - textLabel_handNumber->setText(QString::number(actualHand->getMyID(),10)); - textLabel_gameNumber->setText(QString::number(actualGame->getMyGameID(),10)); + textLabel_handNumber->setText(QString::number(mySession->getCurrentGame()->getCurrentHand()->getMyID(),10)); + textLabel_gameNumber->setText(QString::number(mySession->getCurrentGame()->getMyGameID(),10)); } } @@ -1083,9 +1096,10 @@ void mainWindowImpl::refreshChangePlayer() { } void mainWindowImpl::refreshPot() { + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); - textLabel_Sets->setText(""+QString::number(actualHand->getBoard()->getSets(),10)+" $"); - textLabel_Pot->setText(""+QString::number(actualHand->getBoard()->getPot(),10)+" $"); + textLabel_Sets->setText(""+QString::number(currentHand->getBoard()->getSets(),10)+" $"); + textLabel_Pot->setText(""+QString::number(currentHand->getBoard()->getPot(),10)+" $"); } void mainWindowImpl::dealHoleCards() { @@ -1098,10 +1112,11 @@ void mainWindowImpl::dealHoleCards() { // Karten der Gegner austeilen int i, j; + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); for(i=1; igetPlayerArray()[i]->getMyCards(tempCardsIntArray); + currentHand->getPlayerArray()[i]->getMyCards(tempCardsIntArray); for(j=0; j<2; j++) { - if(actualHand->getPlayerArray()[i]->getMyActiveStatus()) { + if(currentHand->getPlayerArray()[i]->getMyActiveStatus()) { if (debugMode) { tempCardsPixmapArray[j].load(":/cards/resources/graphics/cards/"+QString::number(tempCardsIntArray[j], 10)+".png"); holeCardsArray[i][j]->setPixmap(tempCardsPixmapArray[j],FALSE); @@ -1119,10 +1134,10 @@ void mainWindowImpl::dealHoleCards() { } // eigenen Karten austeilen - actualHand->getPlayerArray()[0]->getMyCards(tempCardsIntArray); + currentHand->getPlayerArray()[0]->getMyCards(tempCardsIntArray); for(i=0; i<2; i++) { - if(actualHand->getPlayerArray()[0]->getMyActiveStatus()) { + if(currentHand->getPlayerArray()[0]->getMyActiveStatus()) { tempCardsPixmapArray[i].load(":/cards/resources/graphics/cards/"+QString::number(tempCardsIntArray[i], 10)+".png"); holeCardsArray[0][i]->setPixmap(tempCardsPixmapArray[i], FALSE); @@ -1162,7 +1177,7 @@ void mainWindowImpl::dealFlopCards4() { int tempBoardCardsArray[5]; QPixmap tempCardsPixmap; - actualHand->getBoard()->getMyCards(tempBoardCardsArray); + mySession->getCurrentGame()->getCurrentHand()->getBoard()->getMyCards(tempBoardCardsArray); tempCardsPixmap.load(":/cards/resources/graphics/cards/"+QString::number(tempBoardCardsArray[0], 10)+".png"); QPixmap card(tempCardsPixmap); @@ -1182,7 +1197,7 @@ void mainWindowImpl::dealFlopCards5() { int tempBoardCardsArray[5]; QPixmap tempCardsPixmap; - actualHand->getBoard()->getMyCards(tempBoardCardsArray); + mySession->getCurrentGame()->getCurrentHand()->getBoard()->getMyCards(tempBoardCardsArray); tempCardsPixmap.load(":/cards/resources/graphics/cards/"+QString::number(tempBoardCardsArray[1], 10)+".png"); QPixmap card(tempCardsPixmap); @@ -1202,7 +1217,7 @@ void mainWindowImpl::dealFlopCards6() { int tempBoardCardsArray[5]; QPixmap tempCardsPixmap; - actualHand->getBoard()->getMyCards(tempBoardCardsArray); + mySession->getCurrentGame()->getCurrentHand()->getBoard()->getMyCards(tempBoardCardsArray); tempCardsPixmap.load(":/cards/resources/graphics/cards/"+QString::number(tempBoardCardsArray[2], 10)+".png"); QPixmap card(tempCardsPixmap); @@ -1219,7 +1234,7 @@ void mainWindowImpl::dealFlopCards6() { myLog->logDealBoardCardsMsg(1, tempBoardCardsArray[0], tempBoardCardsArray[1], tempBoardCardsArray[2]); // stable // wenn alle All In - if(actualHand->getAllInCondition()) { dealFlopCards6Timer->start(AllInDealCardsSpeed); } + if(mySession->getCurrentGame()->getCurrentHand()->getAllInCondition()) { dealFlopCards6Timer->start(AllInDealCardsSpeed); } // sonst normale Variante else { dealFlopCards6Timer->start(postDealCardsSpeed);} } @@ -1236,7 +1251,7 @@ void mainWindowImpl::dealTurnCards2() { int tempBoardCardsArray[5]; QPixmap tempCardsPixmap; - actualHand->getBoard()->getMyCards(tempBoardCardsArray); + mySession->getCurrentGame()->getCurrentHand()->getBoard()->getMyCards(tempBoardCardsArray); tempCardsPixmap.load(":/cards/resources/graphics/cards/"+QString::number(tempBoardCardsArray[3], 10)+".png"); QPixmap card(tempCardsPixmap); @@ -1253,7 +1268,7 @@ void mainWindowImpl::dealTurnCards2() { myLog->logDealBoardCardsMsg(2, tempBoardCardsArray[0], tempBoardCardsArray[1], tempBoardCardsArray[2], tempBoardCardsArray[3]); // stable // wenn alle All In - if(actualHand->getAllInCondition()) { dealTurnCards2Timer->start(AllInDealCardsSpeed); + if(mySession->getCurrentGame()->getCurrentHand()->getAllInCondition()) { dealTurnCards2Timer->start(AllInDealCardsSpeed); } // sonst normale Variante else { dealTurnCards2Timer->start(postDealCardsSpeed); } @@ -1272,7 +1287,7 @@ void mainWindowImpl::dealRiverCards2() { int tempBoardCardsArray[5]; QPixmap tempCardsPixmap; - actualHand->getBoard()->getMyCards(tempBoardCardsArray); + mySession->getCurrentGame()->getCurrentHand()->getBoard()->getMyCards(tempBoardCardsArray); tempCardsPixmap.load(":/cards/resources/graphics/cards/"+QString::number(tempBoardCardsArray[4], 10)+".png"); QPixmap card(tempCardsPixmap); @@ -1289,7 +1304,7 @@ void mainWindowImpl::dealRiverCards2() { myLog->logDealBoardCardsMsg(3, tempBoardCardsArray[0], tempBoardCardsArray[1], tempBoardCardsArray[2], tempBoardCardsArray[3], tempBoardCardsArray[4]); // stable // wenn alle All In - if(actualHand->getAllInCondition()) { dealRiverCards2Timer->start(AllInDealCardsSpeed); } + if(mySession->getCurrentGame()->getCurrentHand()->getAllInCondition()) { dealRiverCards2Timer->start(AllInDealCardsSpeed); } // sonst normale Variante else { dealRiverCards2Timer->start(postDealCardsSpeed); @@ -1301,13 +1316,14 @@ void mainWindowImpl::meInAction() { if(myConfig->readConfigInt("ShowStatusbarMessages")) { statusBar()->showMessage(tr("F1 - Fold/All-In | F2 - Check/Call | F3 - Bet/Raise"), 15000); } + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); - switch (actualHand->getActualRound()) { + switch (currentHand->getActualRound()) { case 0: { - if (actualHand->getPlayerArray()[0]->getMyCash()+actualHand->getPlayerArray()[0]->getMySet() > actualHand->getPreflop()->getHighestSet()) { pushButton_BetRaise->setText("Raise"); } + if (currentHand->getPlayerArray()[0]->getMyCash()+currentHand->getPlayerArray()[0]->getMySet() > currentHand->getPreflop()->getHighestSet()) { pushButton_BetRaise->setText("Raise"); } - if ( actualHand->getPlayerArray()[0]->getMySet()== actualHand->getPreflop()->getHighestSet() && actualHand->getPlayerArray()[0]->getMyButton() == 3) { pushButton_CallCheckSet->setText("Check"); } + if ( currentHand->getPlayerArray()[0]->getMySet()== currentHand->getPreflop()->getHighestSet() && currentHand->getPlayerArray()[0]->getMyButton() == 3) { pushButton_CallCheckSet->setText("Check"); } else { pushButton_CallCheckSet->setText("Call"); } pushButton_FoldAllin->setText("Fold"); } @@ -1316,14 +1332,14 @@ void mainWindowImpl::meInAction() { pushButton_FoldAllin->setText("Fold"); -// cout << "highestSet in meInAction " << actualHand->getFlop()->getHighestSet() << endl; - if (actualHand->getFlop()->getHighestSet() == 0) { +// cout << "highestSet in meInAction " << currentHand->getFlop()->getHighestSet() << endl; + if (currentHand->getFlop()->getHighestSet() == 0) { pushButton_CallCheckSet->setText("Check"); pushButton_BetRaise->setText("Bet"); } - if (actualHand->getFlop()->getHighestSet() > 0 && actualHand->getFlop()->getHighestSet() > actualHand->getPlayerArray()[0]->getMySet()) { + if (currentHand->getFlop()->getHighestSet() > 0 && currentHand->getFlop()->getHighestSet() > currentHand->getPlayerArray()[0]->getMySet()) { pushButton_CallCheckSet->setText("Call"); - if (actualHand->getPlayerArray()[0]->getMyCash()+actualHand->getPlayerArray()[0]->getMySet() > actualHand->getPreflop()->getHighestSet()) { pushButton_BetRaise->setText("Raise"); } + if (currentHand->getPlayerArray()[0]->getMyCash()+currentHand->getPlayerArray()[0]->getMySet() > currentHand->getPreflop()->getHighestSet()) { pushButton_BetRaise->setText("Raise"); } } } break; @@ -1331,14 +1347,14 @@ void mainWindowImpl::meInAction() { pushButton_FoldAllin->setText("Fold"); -// cout << "highestSet in meInAction " << actualHand->getFlop()->getHighestSet() << endl; - if (actualHand->getTurn()->getHighestSet() == 0) { +// cout << "highestSet in meInAction " << currentHand->getFlop()->getHighestSet() << endl; + if (currentHand->getTurn()->getHighestSet() == 0) { pushButton_CallCheckSet->setText("Check"); pushButton_BetRaise->setText("Bet"); } - if (actualHand->getTurn()->getHighestSet() > 0 && actualHand->getTurn()->getHighestSet() > actualHand->getPlayerArray()[0]->getMySet()) { + if (currentHand->getTurn()->getHighestSet() > 0 && currentHand->getTurn()->getHighestSet() > currentHand->getPlayerArray()[0]->getMySet()) { pushButton_CallCheckSet->setText("Call"); - if (actualHand->getPlayerArray()[0]->getMyCash()+actualHand->getPlayerArray()[0]->getMySet() > actualHand->getPreflop()->getHighestSet()) { pushButton_BetRaise->setText("Raise"); } + if (currentHand->getPlayerArray()[0]->getMyCash()+currentHand->getPlayerArray()[0]->getMySet() > currentHand->getPreflop()->getHighestSet()) { pushButton_BetRaise->setText("Raise"); } } } break; @@ -1346,14 +1362,14 @@ void mainWindowImpl::meInAction() { pushButton_FoldAllin->setText("Fold"); -// cout << "highestSet in meInAction " << actualHand->getFlop()->getHighestSet() << endl; - if (actualHand->getRiver()->getHighestSet() == 0) { +// cout << "highestSet in meInAction " << currentHand->getFlop()->getHighestSet() << endl; + if (currentHand->getRiver()->getHighestSet() == 0) { pushButton_CallCheckSet->setText("Check"); pushButton_BetRaise->setText("Bet"); } - if (actualHand->getRiver()->getHighestSet() > 0 && actualHand->getRiver()->getHighestSet() > actualHand->getPlayerArray()[0]->getMySet()) { + if (currentHand->getRiver()->getHighestSet() > 0 && currentHand->getRiver()->getHighestSet() > currentHand->getPlayerArray()[0]->getMySet()) { pushButton_CallCheckSet->setText("Call"); - if (actualHand->getPlayerArray()[0]->getMyCash()+actualHand->getPlayerArray()[0]->getMySet() > actualHand->getPreflop()->getHighestSet()) { pushButton_BetRaise->setText("Raise"); } + if (currentHand->getPlayerArray()[0]->getMyCash()+currentHand->getPlayerArray()[0]->getMySet() > currentHand->getPreflop()->getHighestSet()) { pushButton_BetRaise->setText("Raise"); } } } break; @@ -1393,18 +1409,19 @@ void mainWindowImpl::myCallCheckSet() { void mainWindowImpl::myFold(){ - actualHand->getPlayerArray()[0]->setMyAction(1); - actualHand->getPlayerArray()[0]->setMyTurn(0); + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + currentHand->getPlayerArray()[0]->setMyAction(1); + currentHand->getPlayerArray()[0]->setMyTurn(0); //Action in LogWindow - myLog->logPlayerActionMsg(actualHand->getPlayerArray()[0]->getMyName(), actualHand->getPlayerArray()[0]->getMyAction(), actualHand->getPlayerArray()[0]->getMySet()); + myLog->logPlayerActionMsg(currentHand->getPlayerArray()[0]->getMyName(), currentHand->getPlayerArray()[0]->getMyAction(), currentHand->getPlayerArray()[0]->getMySet()); holeCardsArray[0][0]->startFadeOut(10); holeCardsArray[0][1]->startFadeOut(10); disableMyButtons(); //set that i was the last active player. need this for unhighlighting groupbox - actualHand->setLastPlayersTurn(0); + currentHand->setLastPlayersTurn(0); statusBar()->clearMessage(); @@ -1413,17 +1430,17 @@ void mainWindowImpl::myFold(){ } void mainWindowImpl::myCheck() { - - actualHand->getPlayerArray()[0]->setMyAction(2); - actualHand->getPlayerArray()[0]->setMyTurn(0); + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + currentHand->getPlayerArray()[0]->setMyAction(2); + currentHand->getPlayerArray()[0]->setMyTurn(0); //Action in LogWindow - myLog->logPlayerActionMsg(actualHand->getPlayerArray()[0]->getMyName(), actualHand->getPlayerArray()[0]->getMyAction(), actualHand->getPlayerArray()[0]->getMySet()); + myLog->logPlayerActionMsg(currentHand->getPlayerArray()[0]->getMyName(), currentHand->getPlayerArray()[0]->getMyAction(), currentHand->getPlayerArray()[0]->getMySet()); disableMyButtons(); //set that i was the last active player. need this for unhighlighting groupbox - actualHand->setLastPlayersTurn(0); + currentHand->setLastPlayersTurn(0); statusBar()->clearMessage(); @@ -1434,41 +1451,42 @@ void mainWindowImpl::myCheck() { void mainWindowImpl::myCall(){ int tempHighestSet = 0; - switch (actualHand->getActualRound()) { + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + switch (currentHand->getActualRound()) { - case 0: {tempHighestSet = actualHand->getPreflop()->getHighestSet();} + case 0: {tempHighestSet = currentHand->getPreflop()->getHighestSet();} break; - case 1: {tempHighestSet = actualHand->getFlop()->getHighestSet();} + case 1: {tempHighestSet = currentHand->getFlop()->getHighestSet();} break; - case 2: {tempHighestSet = actualHand->getTurn()->getHighestSet();} + case 2: {tempHighestSet = currentHand->getTurn()->getHighestSet();} break; - case 3: {tempHighestSet = actualHand->getRiver()->getHighestSet();} + case 3: {tempHighestSet = currentHand->getRiver()->getHighestSet();} break; default: {} } - if (actualHand->getPlayerArray()[0]->getMyCash()+actualHand->getPlayerArray()[0]->getMySet() <= tempHighestSet) { + if (currentHand->getPlayerArray()[0]->getMyCash()+currentHand->getPlayerArray()[0]->getMySet() <= tempHighestSet) { - actualHand->getPlayerArray()[0]->setMyAction(6); - actualHand->getPlayerArray()[0]->setMySet(actualHand->getPlayerArray()[0]->getMyCash()); - actualHand->getPlayerArray()[0]->setMyCash(0); + currentHand->getPlayerArray()[0]->setMyAction(6); + currentHand->getPlayerArray()[0]->setMySet(currentHand->getPlayerArray()[0]->getMyCash()); + currentHand->getPlayerArray()[0]->setMyCash(0); } else { - actualHand->getPlayerArray()[0]->setMySet(tempHighestSet - actualHand->getPlayerArray()[0]->getMySet()); - actualHand->getPlayerArray()[0]->setMyAction(3); + currentHand->getPlayerArray()[0]->setMySet(tempHighestSet - currentHand->getPlayerArray()[0]->getMySet()); + currentHand->getPlayerArray()[0]->setMyAction(3); } - actualHand->getPlayerArray()[0]->setMyTurn(0); + currentHand->getPlayerArray()[0]->setMyTurn(0); - actualHand->getBoard()->collectSets(); + currentHand->getBoard()->collectSets(); refreshPot(); //Action in LogWindow - myLog->logPlayerActionMsg(actualHand->getPlayerArray()[0]->getMyName(), actualHand->getPlayerArray()[0]->getMyAction(), actualHand->getPlayerArray()[0]->getMySet()); + myLog->logPlayerActionMsg(currentHand->getPlayerArray()[0]->getMyName(), currentHand->getPlayerArray()[0]->getMyAction(), currentHand->getPlayerArray()[0]->getMySet()); disableMyButtons(); //set that i was the last active player. need this for unhighlighting groupbox - actualHand->setLastPlayersTurn(0); + currentHand->setLastPlayersTurn(0); statusBar()->clearMessage(); @@ -1482,16 +1500,18 @@ void mainWindowImpl::myBet(){ pushButton_CallCheckSet->setText("Set"); pushButton_FoldAllin->setText("All-In"); spinBox_set->show(); + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + if (currentHand->getActualRound() <= 2 ) { spinBox_set->setMinimum(currentHand->getSmallBlind()*2); } + else { spinBox_set->setMinimum(currentHand->getSmallBlind()*4); } - if (actualHand->getActualRound() <= 2 ) { spinBox_set->setMinimum(actualHand->getSmallBlind()*2); } - else { spinBox_set->setMinimum(actualHand->getSmallBlind()*4); } - - spinBox_set->setMaximum(actualHand->getPlayerArray()[0]->getMyCash()); + spinBox_set->setMaximum(currentHand->getPlayerArray()[0]->getMyCash()); spinBox_set->setValue(spinBox_set->minimum()); spinBox_set->setFocus(); spinBox_set->selectAll(); - actualHand->getPlayerArray()[0]->setMyAction(4); + currentHand->getPlayerArray()[0]->setMyAction(4); } void mainWindowImpl::myRaise(){ @@ -1502,107 +1522,109 @@ void mainWindowImpl::myRaise(){ spinBox_set->show(); int tempHighestSet = 0; - switch (actualHand->getActualRound()) { + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + switch (currentHand->getActualRound()) { - case 0: {tempHighestSet = actualHand->getPreflop()->getHighestSet();} + case 0: {tempHighestSet = currentHand->getPreflop()->getHighestSet();} break; - case 1: {tempHighestSet = actualHand->getFlop()->getHighestSet();} + case 1: {tempHighestSet = currentHand->getFlop()->getHighestSet();} break; - case 2: {tempHighestSet = actualHand->getTurn()->getHighestSet();} + case 2: {tempHighestSet = currentHand->getTurn()->getHighestSet();} break; - case 3: {tempHighestSet = actualHand->getRiver()->getHighestSet();} + case 3: {tempHighestSet = currentHand->getRiver()->getHighestSet();} break; default: {} } - spinBox_set->setMinimum(tempHighestSet*2 - actualHand->getPlayerArray()[0]->getMySet()); - spinBox_set->setMaximum(actualHand->getPlayerArray()[0]->getMyCash()); + spinBox_set->setMinimum(tempHighestSet*2 - currentHand->getPlayerArray()[0]->getMySet()); + spinBox_set->setMaximum(currentHand->getPlayerArray()[0]->getMyCash()); spinBox_set->setValue(spinBox_set->minimum()); spinBox_set->setFocus(); spinBox_set->selectAll(); - actualHand->getPlayerArray()[0]->setMyAction(5); + currentHand->getPlayerArray()[0]->setMyAction(5); } void mainWindowImpl::mySet(){ - int tempCash = actualHand->getPlayerArray()[0]->getMyCash(); + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + int tempCash = currentHand->getPlayerArray()[0]->getMyCash(); // cout << "Set-Value " << spinBox_set->value() << endl; - actualHand->getPlayerArray()[0]->setMySet(spinBox_set->value()); -// cout << "MySET " << actualHand->getPlayerArray()[0]->getMySet() << endl; + currentHand->getPlayerArray()[0]->setMySet(spinBox_set->value()); +// cout << "MySET " << currentHand->getPlayerArray()[0]->getMySet() << endl; if (spinBox_set->value() >= tempCash ) { - actualHand->getPlayerArray()[0]->setMyAction(6); - actualHand->getPlayerArray()[0]->setMySet(actualHand->getPlayerArray()[0]->getMyCash()); - actualHand->getPlayerArray()[0]->setMyCash(0); + currentHand->getPlayerArray()[0]->setMyAction(6); + currentHand->getPlayerArray()[0]->setMySet(currentHand->getPlayerArray()[0]->getMyCash()); + currentHand->getPlayerArray()[0]->setMyCash(0); } - switch (actualHand->getActualRound()) { + switch (currentHand->getActualRound()) { - case 0: {actualHand->getPreflop()->setHighestSet(actualHand->getPlayerArray()[0]->getMySet());} + case 0: {currentHand->getPreflop()->setHighestSet(currentHand->getPlayerArray()[0]->getMySet());} break; - case 1: {actualHand->getFlop()->setHighestSet( actualHand->getPlayerArray()[0]->getMySet());} + case 1: {currentHand->getFlop()->setHighestSet( currentHand->getPlayerArray()[0]->getMySet());} break; - case 2: {actualHand->getTurn()->setHighestSet( actualHand->getPlayerArray()[0]->getMySet());} + case 2: {currentHand->getTurn()->setHighestSet( currentHand->getPlayerArray()[0]->getMySet());} break; - case 3: {actualHand->getRiver()->setHighestSet( actualHand->getPlayerArray()[0]->getMySet());} + case 3: {currentHand->getRiver()->setHighestSet( currentHand->getPlayerArray()[0]->getMySet());} break; default: {} } - actualHand->getPlayerArray()[0]->setMyTurn(0); + currentHand->getPlayerArray()[0]->setMyTurn(0); - actualHand->getBoard()->collectSets(); + currentHand->getBoard()->collectSets(); refreshPot(); //Action in LogWindow - myLog->logPlayerActionMsg(actualHand->getPlayerArray()[0]->getMyName(), actualHand->getPlayerArray()[0]->getMyAction(), actualHand->getPlayerArray()[0]->getMySet()); + myLog->logPlayerActionMsg(currentHand->getPlayerArray()[0]->getMyName(), currentHand->getPlayerArray()[0]->getMyAction(), currentHand->getPlayerArray()[0]->getMySet()); disableMyButtons(); statusBar()->clearMessage(); //set that i was the last active player. need this for unhighlighting groupbox - actualHand->setLastPlayersTurn(0); + currentHand->setLastPlayersTurn(0); //Spiel läuft weiter nextPlayerAnimation(); } void mainWindowImpl::myAllIn(){ - - actualHand->getPlayerArray()[0]->setMyAction(6); - actualHand->getPlayerArray()[0]->setMySet(actualHand->getPlayerArray()[0]->getMyCash()); - actualHand->getPlayerArray()[0]->setMyCash(0); + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + currentHand->getPlayerArray()[0]->setMyAction(6); + currentHand->getPlayerArray()[0]->setMySet(currentHand->getPlayerArray()[0]->getMyCash()); + currentHand->getPlayerArray()[0]->setMyCash(0); - switch (actualHand->getActualRound()) { + switch (currentHand->getActualRound()) { - case 0: {if(actualHand->getPlayerArray()[0]->getMySet() > actualHand->getPreflop()->getHighestSet()) actualHand->getPreflop()->setHighestSet(actualHand->getPlayerArray()[0]->getMySet());} + case 0: {if(currentHand->getPlayerArray()[0]->getMySet() > currentHand->getPreflop()->getHighestSet()) currentHand->getPreflop()->setHighestSet(currentHand->getPlayerArray()[0]->getMySet());} break; - case 1: {if(actualHand->getPlayerArray()[0]->getMySet() > actualHand->getFlop()->getHighestSet()) actualHand->getFlop()->setHighestSet(actualHand->getPlayerArray()[0]->getMySet());} + case 1: {if(currentHand->getPlayerArray()[0]->getMySet() > currentHand->getFlop()->getHighestSet()) currentHand->getFlop()->setHighestSet(currentHand->getPlayerArray()[0]->getMySet());} break; - case 2: {if(actualHand->getPlayerArray()[0]->getMySet() > actualHand->getTurn()->getHighestSet()) actualHand->getTurn()->setHighestSet(actualHand->getPlayerArray()[0]->getMySet());} + case 2: {if(currentHand->getPlayerArray()[0]->getMySet() > currentHand->getTurn()->getHighestSet()) currentHand->getTurn()->setHighestSet(currentHand->getPlayerArray()[0]->getMySet());} break; - case 3: {if(actualHand->getPlayerArray()[0]->getMySet() > actualHand->getRiver()->getHighestSet()) actualHand->getRiver()->setHighestSet(actualHand->getPlayerArray()[0]->getMySet());} + case 3: {if(currentHand->getPlayerArray()[0]->getMySet() > currentHand->getRiver()->getHighestSet()) currentHand->getRiver()->setHighestSet(currentHand->getPlayerArray()[0]->getMySet());} break; default: {} } - actualHand->getPlayerArray()[0]->setMyTurn(0); + currentHand->getPlayerArray()[0]->setMyTurn(0); - actualHand->getBoard()->collectSets(); + currentHand->getBoard()->collectSets(); refreshPot(); //Action in LogWindow - myLog->logPlayerActionMsg(actualHand->getPlayerArray()[0]->getMyName(), actualHand->getPlayerArray()[0]->getMyAction(), actualHand->getPlayerArray()[0]->getMySet()); + myLog->logPlayerActionMsg(currentHand->getPlayerArray()[0]->getMyName(), currentHand->getPlayerArray()[0]->getMyAction(), currentHand->getPlayerArray()[0]->getMySet()); disableMyButtons(); statusBar()->clearMessage(); //set that i was the last active player. need this for unhighlighting groupbox - actualHand->setLastPlayersTurn(0); + currentHand->setLastPlayersTurn(0); //Spiel läuft weiter nextPlayerAnimation(); @@ -1610,42 +1632,43 @@ void mainWindowImpl::myAllIn(){ void mainWindowImpl::nextPlayerAnimation() { - + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + //refresh Change Player refreshSet(); - refreshAction(actualHand->getLastPlayersTurn(), actualHand->getPlayerArray()[actualHand->getLastPlayersTurn()]->getMyAction()); + refreshAction(currentHand->getLastPlayersTurn(), currentHand->getPlayerArray()[currentHand->getLastPlayersTurn()]->getMyAction()); refreshCash(); nextPlayerAnimationTimer->start(nextPlayerSpeed1); } void mainWindowImpl::preflopAnimation1() { preflopAnimation1Timer->start(nextPlayerSpeed2); } -void mainWindowImpl::preflopAnimation1Action() { actualHand->getPreflop()->preflopRun(); } +void mainWindowImpl::preflopAnimation1Action() { mySession->getCurrentGame()->getCurrentHand()->getPreflop()->preflopRun(); } void mainWindowImpl::preflopAnimation2() { preflopAnimation2Timer->start(preflopNextPlayerSpeed); } -void mainWindowImpl::preflopAnimation2Action() { actualHand->getPreflop()->nextPlayer2(); } +void mainWindowImpl::preflopAnimation2Action() { mySession->getCurrentGame()->getCurrentHand()->getPreflop()->nextPlayer2(); } void mainWindowImpl::flopAnimation1() { flopAnimation1Timer->start(nextPlayerSpeed2); } -void mainWindowImpl::flopAnimation1Action() { actualHand->getFlop()->flopRun(); } +void mainWindowImpl::flopAnimation1Action() { mySession->getCurrentGame()->getCurrentHand()->getFlop()->flopRun(); } void mainWindowImpl::flopAnimation2() { flopAnimation2Timer->start(nextPlayerSpeed3); } -void mainWindowImpl::flopAnimation2Action() { actualHand->getFlop()->nextPlayer2(); } +void mainWindowImpl::flopAnimation2Action() { mySession->getCurrentGame()->getCurrentHand()->getFlop()->nextPlayer2(); } void mainWindowImpl::turnAnimation1() { turnAnimation1Timer->start(nextPlayerSpeed2); } -void mainWindowImpl::turnAnimation1Action() { actualHand->getTurn()->turnRun(); } +void mainWindowImpl::turnAnimation1Action() { mySession->getCurrentGame()->getCurrentHand()->getTurn()->turnRun(); } void mainWindowImpl::turnAnimation2() { turnAnimation2Timer->start(nextPlayerSpeed3); } -void mainWindowImpl::turnAnimation2Action() { actualHand->getTurn()->nextPlayer2(); } +void mainWindowImpl::turnAnimation2Action() { mySession->getCurrentGame()->getCurrentHand()->getTurn()->nextPlayer2(); } void mainWindowImpl::riverAnimation1() { riverAnimation1Timer->start(nextPlayerSpeed2); } -void mainWindowImpl::riverAnimation1Action() { actualHand->getRiver()->riverRun(); } +void mainWindowImpl::riverAnimation1Action() { mySession->getCurrentGame()->getCurrentHand()->getRiver()->riverRun(); } void mainWindowImpl::riverAnimation2() { riverAnimation2Timer->start(nextPlayerSpeed3); } -void mainWindowImpl::riverAnimation2Action() { actualHand->getRiver()->nextPlayer2(); } +void mainWindowImpl::riverAnimation2Action() { mySession->getCurrentGame()->getCurrentHand()->getRiver()->nextPlayer2(); } void mainWindowImpl::postRiverAnimation1() { postRiverAnimation1Timer->start(nextPlayerSpeed2); } -void mainWindowImpl::postRiverAnimation1Action() { actualHand->getRiver()->postRiverRun(); } +void mainWindowImpl::postRiverAnimation1Action() { mySession->getCurrentGame()->getCurrentHand()->getRiver()->postRiverRun(); } void mainWindowImpl::postRiverRunAnimation1() { @@ -1665,11 +1688,12 @@ void mainWindowImpl::postRiverRunAnimation1() { void mainWindowImpl::postRiverRunAnimation2() { int i; + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); //Aktive Spieler zählen --> wenn nur noch einer nicht-folded dann keine Karten umdrehen int activePlayersCounter = 0; for (i=0; igetPlayerArray()[i]->getMyAction() != 1 && actualHand->getPlayerArray()[i]->getMyActiveStatus() == 1) activePlayersCounter++; + if (currentHand->getPlayerArray()[i]->getMyAction() != 1 && currentHand->getPlayerArray()[i]->getMyActiveStatus() == 1) activePlayersCounter++; } if(activePlayersCounter!=1) { @@ -1686,8 +1710,8 @@ void mainWindowImpl::postRiverRunAnimation2() { int i, j; for(i=0; igetPlayerArray()[i]->getMyCards(tempCardsIntArray); - if(actualHand->getPlayerArray()[i]->getMyActiveStatus() && actualHand->getPlayerArray()[i]->getMyAction() != 1) { + currentHand->getPlayerArray()[i]->getMyCards(tempCardsIntArray); + if(currentHand->getPlayerArray()[i]->getMyActiveStatus() && currentHand->getPlayerArray()[i]->getMyAction() != 1) { if(i) { for(j=0; j<2; j++) { @@ -1695,9 +1719,9 @@ void mainWindowImpl::postRiverRunAnimation2() { } } //Karten umdrehen Loggen - myLog->logFlipHoleCardsMsg(actualHand->getPlayerArray()[i]->getMyName(), tempCardsIntArray[0], tempCardsIntArray[1], actualHand->getPlayerArray()[i]->getMyCardsValueInt()); + myLog->logFlipHoleCardsMsg(currentHand->getPlayerArray()[i]->getMyName(), tempCardsIntArray[0], tempCardsIntArray[1], currentHand->getPlayerArray()[i]->getMyCardsValueInt()); - actualHand->getPlayerArray()[i]->setMyCardsFlip(1); + currentHand->getPlayerArray()[i]->setMyCardsFlip(1); } } } @@ -1713,8 +1737,8 @@ void mainWindowImpl::postRiverRunAnimation2() { int i, j; for(i=0; igetPlayerArray()[i]->getMyCards(tempCardsIntArray); - if(actualHand->getPlayerArray()[i]->getMyActiveStatus() && actualHand->getPlayerArray()[i]->getMyAction() != 1) { + currentHand->getPlayerArray()[i]->getMyCards(tempCardsIntArray); + if(currentHand->getPlayerArray()[i]->getMyActiveStatus() && currentHand->getPlayerArray()[i]->getMyAction() != 1) { if(i) { for(j=0; j<2; j++) { tempCardsPixmapArray[j].load(":/cards/resources/graphics/cards/"+QString::number(tempCardsIntArray[j], 10)+".png"); @@ -1723,9 +1747,9 @@ void mainWindowImpl::postRiverRunAnimation2() { } } //Karten umdrehen Loggen - myLog->logFlipHoleCardsMsg(actualHand->getPlayerArray()[i]->getMyName(), tempCardsIntArray[0], tempCardsIntArray[1], actualHand->getPlayerArray()[i]->getMyCardsValueInt() ); + myLog->logFlipHoleCardsMsg(currentHand->getPlayerArray()[i]->getMyName(), tempCardsIntArray[0], tempCardsIntArray[1], currentHand->getPlayerArray()[i]->getMyCardsValueInt() ); - actualHand->getPlayerArray()[i]->setMyCardsFlip(1); + currentHand->getPlayerArray()[i]->setMyCardsFlip(1); } } } @@ -1736,11 +1760,11 @@ void mainWindowImpl::postRiverRunAnimation2() { int tempCardsIntArray[2]; int i; for(i=0; igetPlayerArray()[i]->getMyCards(tempCardsIntArray); - if(actualHand->getPlayerArray()[i]->getMyActiveStatus() && actualHand->getPlayerArray()[i]->getMyAction() != 1) { + currentHand->getPlayerArray()[i]->getMyCards(tempCardsIntArray); + if(currentHand->getPlayerArray()[i]->getMyActiveStatus() && currentHand->getPlayerArray()[i]->getMyAction() != 1) { //Kartenwerte Loggen - myLog->logFlipHoleCardsMsg(actualHand->getPlayerArray()[i]->getMyName(), tempCardsIntArray[0], tempCardsIntArray[1], actualHand->getPlayerArray()[i]->getMyCardsValueInt(), "has"); + myLog->logFlipHoleCardsMsg(currentHand->getPlayerArray()[i]->getMyName(), tempCardsIntArray[0], tempCardsIntArray[1], currentHand->getPlayerArray()[i]->getMyCardsValueInt(), "has"); } } } @@ -1752,11 +1776,12 @@ void mainWindowImpl::postRiverRunAnimation2() { void mainWindowImpl::postRiverRunAnimation3() { int i; + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); // cout << "Neue Runde" << endl; //Alle Winner erhellen und "Winner" schreiben for(i=0; igetPlayerArray()[i]->getMyActiveStatus() && actualHand->getPlayerArray()[i]->getMyAction() != 1 && actualHand->getPlayerArray()[i]->getMyCardsValueInt() == actualHand->getRiver()->getHighestCardsValue() ) { + if(currentHand->getPlayerArray()[i]->getMyActiveStatus() && currentHand->getPlayerArray()[i]->getMyAction() != 1 && currentHand->getPlayerArray()[i]->getMyCardsValueInt() == currentHand->getRiver()->getHighestCardsValue() ) { // QPalette tempPalette = groupBoxArray[i]->palette(); // tempPalette.setColor(QPalette::Window, highlight); @@ -1764,58 +1789,58 @@ void mainWindowImpl::postRiverRunAnimation3() { actionLabelArray[i]->setPixmap(QPixmap(":/actions/resources/graphics/actions/action_winner.png")); //nicht gewonnene Karten ausblenden - if ( actualHand->getActivePlayersCounter() != 1 && myConfig->readConfigInt("ShowFadeOutCardsAnimation")) { + if ( currentHand->getActivePlayersCounter() != 1 && myConfig->readConfigInt("ShowFadeOutCardsAnimation")) { int j; //index 0 testen --> Karte darf nicht im MyBestHand Position Array drin sein, es darf nicht nur ein Spieler Aktiv sein, die Config fordert die Animation bool index0 = TRUE; for(j=0; j<5; j++) { - // cout << (actualHand->getPlayerArray()[i]->getMyBestHandPosition())[j] << endl; - if ((actualHand->getPlayerArray()[i]->getMyBestHandPosition())[j] == 0 ) { index0 = FALSE; } + // cout << (currentHand->getPlayerArray()[i]->getMyBestHandPosition())[j] << endl; + if ((currentHand->getPlayerArray()[i]->getMyBestHandPosition())[j] == 0 ) { index0 = FALSE; } } if (index0) { holeCardsArray[i][0]->startFadeOut(guiGameSpeed); /*cout << "Fade Out index0" << endl;*/} //index 1 testen bool index1 = TRUE; for(j=0; j<5; j++) { - if ((actualHand->getPlayerArray()[i]->getMyBestHandPosition())[j] == 1 ) { index1 = FALSE; } + if ((currentHand->getPlayerArray()[i]->getMyBestHandPosition())[j] == 1 ) { index1 = FALSE; } } if (index1) { holeCardsArray[i][1]->startFadeOut(guiGameSpeed); /*cout << "Fade Out index1" << endl;*/} //index 2 testen bool index2 = TRUE; for(j=0; j<5; j++) { - if ((actualHand->getPlayerArray()[i]->getMyBestHandPosition())[j] == 2 ) { index2 = FALSE; } + if ((currentHand->getPlayerArray()[i]->getMyBestHandPosition())[j] == 2 ) { index2 = FALSE; } } if (index2) { boardCardsArray[0]->startFadeOut(guiGameSpeed); /*cout << "Fade Out index2" << endl;*/} //index 3 testen bool index3 = TRUE; for(j=0; j<5; j++) { - if ((actualHand->getPlayerArray()[i]->getMyBestHandPosition())[j] == 3 ) { index3 = FALSE; } + if ((currentHand->getPlayerArray()[i]->getMyBestHandPosition())[j] == 3 ) { index3 = FALSE; } } if (index3) { boardCardsArray[1]->startFadeOut(guiGameSpeed); /*cout << "Fade Out index3" << endl;*/} //index 4 testen bool index4 = TRUE; for(j=0; j<5; j++) { - if ((actualHand->getPlayerArray()[i]->getMyBestHandPosition())[j] == 4 ) { index4 = FALSE; } + if ((currentHand->getPlayerArray()[i]->getMyBestHandPosition())[j] == 4 ) { index4 = FALSE; } } if (index4) { boardCardsArray[2]->startFadeOut(guiGameSpeed); /*cout << "Fade Out index4" << endl;*/} //index 5 testen bool index5 = TRUE; for(j=0; j<5; j++) { - if ((actualHand->getPlayerArray()[i]->getMyBestHandPosition())[j] == 5 ) { index5 = FALSE; } + if ((currentHand->getPlayerArray()[i]->getMyBestHandPosition())[j] == 5 ) { index5 = FALSE; } } if (index5) { boardCardsArray[3]->startFadeOut(guiGameSpeed); /*cout << "Fade Out index5" << endl;*/} //index 6 testen bool index6 = TRUE; for(j=0; j<5; j++) { - if ((actualHand->getPlayerArray()[i]->getMyBestHandPosition())[j] == 6 ) { index6 = FALSE; } + if ((currentHand->getPlayerArray()[i]->getMyBestHandPosition())[j] == 6 ) { index6 = FALSE; } } if (index6) { boardCardsArray[4]->startFadeOut(guiGameSpeed); /*cout << "Fade Out index6" << endl;*/} } //Pot-Verteilung Loggen //Pro Spieler den Cash aus dem Player und dem Label auslesen. Player_cash - Label_cash = Gewinnsumme bool toIntBool = TRUE; - int pot = actualHand->getPlayerArray()[i]->getMyCash() - cashLabelArray[i]->text().remove(" $").toInt(&toIntBool,10) ; + int pot = currentHand->getPlayerArray()[i]->getMyCash() - cashLabelArray[i]->text().remove(" $").toInt(&toIntBool,10) ; //Wenn River dann auch das Blatt loggen! // if (textLabel_handLabel->text() == "River") { myLog->logPlayerWinsMsg(i, pot); @@ -1826,7 +1851,7 @@ void mainWindowImpl::postRiverRunAnimation3() { } else { - if( actualHand->getActivePlayersCounter() != 1 && actualHand->getPlayerArray()[i]->getMyAction() != 1 && actualHand->getPlayerArray()[i]->getMyActiveStatus() && myConfig->readConfigInt("ShowFadeOutCardsAnimation") ) { + if( currentHand->getActivePlayersCounter() != 1 && currentHand->getPlayerArray()[i]->getMyAction() != 1 && currentHand->getPlayerArray()[i]->getMyActiveStatus() && myConfig->readConfigInt("ShowFadeOutCardsAnimation") ) { //aufgedeckte Gegner auch ausblenden holeCardsArray[i][0]->startFadeOut(guiGameSpeed); @@ -1847,6 +1872,7 @@ void mainWindowImpl::postRiverRunAnimation4() { void mainWindowImpl::postRiverRunAnimation5() { int i; + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); //CashTopLabel und PotLabel blinken lassen if (distributePotAnimCounter<10) { @@ -1856,7 +1882,7 @@ void mainWindowImpl::postRiverRunAnimation5() { label_Pot->setText(""); for(i=0; igetPlayerArray()[i]->getMyActiveStatus() && actualHand->getPlayerArray()[i]->getMyAction() != 1 && actualHand->getPlayerArray()[i]->getMyCardsValueInt() == actualHand->getRiver()->getHighestCardsValue() ) { + if(currentHand->getPlayerArray()[i]->getMyActiveStatus() && currentHand->getPlayerArray()[i]->getMyAction() != 1 && currentHand->getPlayerArray()[i]->getMyCardsValueInt() == currentHand->getRiver()->getHighestCardsValue() ) { cashTopLabelArray[i]->setText(""); } @@ -1866,7 +1892,7 @@ void mainWindowImpl::postRiverRunAnimation5() { label_Pot->setText("Pot"); for(i=0; igetPlayerArray()[i]->getMyActiveStatus() && actualHand->getPlayerArray()[i]->getMyAction() != 1 && actualHand->getPlayerArray()[i]->getMyCardsValueInt() == actualHand->getRiver()->getHighestCardsValue() ) { + if(currentHand->getPlayerArray()[i]->getMyActiveStatus() && currentHand->getPlayerArray()[i]->getMyAction() != 1 && currentHand->getPlayerArray()[i]->getMyCardsValueInt() == currentHand->getRiver()->getHighestCardsValue() ) { cashTopLabelArray[i]->setText("Cash:"); } @@ -1884,24 +1910,25 @@ void mainWindowImpl::postRiverRunAnimation5() { void mainWindowImpl::postRiverRunAnimation6() { int i; + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); refreshCash(); refreshPot(); // wenn nur noch ein Spieler aktive "neues Spiel"-Dialog anzeigen int playersPositiveCashCounter = 0; - for (i=0; igetStartQuantityPlayers(); i++) { -// cout << "player 0 cash: " << actualHand->getPlayerArray()[0]->getMyCash() + for (i=0; igetCurrentGame()->getStartQuantityPlayers(); i++) { +// cout << "player 0 cash: " << currentHand->getPlayerArray()[0]->getMyCash() - if (actualHand->getPlayerArray()[i]->getMyCash() > 0) + if (currentHand->getPlayerArray()[i]->getMyCash() > 0) playersPositiveCashCounter++; } if (playersPositiveCashCounter==1) { -// for (i=0; igetStartQuantityPlayers(); i++) { -// // cout << "player 0 cash: " << actualHand->getPlayerArray()[0]->getMyCash() -// if (actualHand->getPlayerArray()[i]->getMyCash() > 0) { -// (statisticArray[actualHand->getPlayerArray()[i]->getMyDude4()+7])++; +// for (i=0; igetCurrentGame()->getStartQuantityPlayers(); i++) { +// // cout << "player 0 cash: " << currentHand->getPlayerArray()[0]->getMyCash() +// if (currentHand->getPlayerArray()[i]->getMyCash() > 0) { +// (statisticArray[currentHand->getPlayerArray()[i]->getMyDude4()+7])++; // } // } @@ -1921,12 +1948,13 @@ void mainWindowImpl::postRiverRunAnimation6() { void mainWindowImpl::flipHolecardsAllIn() { int i; + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); if(!flipHolecardsAllInAlreadyDone) { //Aktive Spieler zählen --> wenn nur noch einer nicht-folded dann keine Karten umdrehen int activePlayersCounter = 0; for (i=0; igetPlayerArray()[i]->getMyAction() != 1 && actualHand->getPlayerArray()[i]->getMyActiveStatus() == 1) activePlayersCounter++; + if (currentHand->getPlayerArray()[i]->getMyAction() != 1 && currentHand->getPlayerArray()[i]->getMyActiveStatus() == 1) activePlayersCounter++; } if(activePlayersCounter!=1) { @@ -1941,17 +1969,17 @@ void mainWindowImpl::flipHolecardsAllIn() { int i, j; for(i=0; igetPlayerArray()[i]->getMyCards(tempCardsIntArray); - if(actualHand->getPlayerArray()[i]->getMyActiveStatus() && actualHand->getPlayerArray()[i]->getMyAction() != 1) { + currentHand->getPlayerArray()[i]->getMyCards(tempCardsIntArray); + if(currentHand->getPlayerArray()[i]->getMyActiveStatus() && currentHand->getPlayerArray()[i]->getMyAction() != 1) { if(i) { for(j=0; j<2; j++) { holeCardsArray[i][j]->startFlipCards(guiGameSpeed, QPixmap(":/cards/resources/graphics/cards/"+QString::number(tempCardsIntArray[j], 10)+".png"), flipside); } } //Karten umdrehen Loggen - myLog->logFlipHoleCardsMsg(actualHand->getPlayerArray()[i]->getMyName(), tempCardsIntArray[0], tempCardsIntArray[1]); + myLog->logFlipHoleCardsMsg(currentHand->getPlayerArray()[i]->getMyName(), tempCardsIntArray[0], tempCardsIntArray[1]); - actualHand->getPlayerArray()[i]->setMyCardsFlip(1); + currentHand->getPlayerArray()[i]->setMyCardsFlip(1); } } @@ -1968,8 +1996,8 @@ void mainWindowImpl::flipHolecardsAllIn() { int i, j; for(i=0; igetPlayerArray()[i]->getMyCards(temp2CardsIntArray); - if(actualHand->getPlayerArray()[i]->getMyActiveStatus() && actualHand->getPlayerArray()[i]->getMyAction() != 1) { + currentHand->getPlayerArray()[i]->getMyCards(temp2CardsIntArray); + if(currentHand->getPlayerArray()[i]->getMyActiveStatus() && currentHand->getPlayerArray()[i]->getMyAction() != 1) { if(i) { for(j=0; j<2; j++) { @@ -1978,9 +2006,9 @@ void mainWindowImpl::flipHolecardsAllIn() { } } //Karten umdrehen Loggen - myLog->logFlipHoleCardsMsg(actualHand->getPlayerArray()[i]->getMyName(), temp2CardsIntArray[0], temp2CardsIntArray[1] ); + myLog->logFlipHoleCardsMsg(currentHand->getPlayerArray()[i]->getMyName(), temp2CardsIntArray[0], temp2CardsIntArray[1] ); - actualHand->getPlayerArray()[i]->setMyCardsFlip(1); + currentHand->getPlayerArray()[i]->setMyCardsFlip(1); } } } @@ -1995,20 +2023,21 @@ void mainWindowImpl::showMyCards() { //TempArrays int tempCardsIntArray[2]; - - actualHand->getPlayerArray()[0]->getMyCards(tempCardsIntArray); - if( actualHand->getPlayerArray()[0]->getMyCardsFlip() == 0 && actualHand->getActualRound() == 4 && actualHand->getPlayerArray()[0]->getMyActiveStatus() && actualHand->getPlayerArray()[0]->getMyAction() != 1) { - //Karten umdrehen Loggen - myLog->logFlipHoleCardsMsg(actualHand->getPlayerArray()[0]->getMyName(), tempCardsIntArray[0], tempCardsIntArray[1], actualHand->getPlayerArray()[0]->getMyCardsValueInt() ); + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); - actualHand->getPlayerArray()[0]->setMyCardsFlip(1); + currentHand->getPlayerArray()[0]->getMyCards(tempCardsIntArray); + if( currentHand->getPlayerArray()[0]->getMyCardsFlip() == 0 && currentHand->getActualRound() == 4 && currentHand->getPlayerArray()[0]->getMyActiveStatus() && currentHand->getPlayerArray()[0]->getMyAction() != 1) { + //Karten umdrehen Loggen + myLog->logFlipHoleCardsMsg(currentHand->getPlayerArray()[0]->getMyName(), tempCardsIntArray[0], tempCardsIntArray[1], currentHand->getPlayerArray()[0]->getMyCardsValueInt() ); + + currentHand->getPlayerArray()[0]->setMyCardsFlip(1); } } void mainWindowImpl::startNewHand() { - if( !breakAfterActualHand){ actualGame->startHand(); + if( !breakAfterActualHand){ mySession->getCurrentGame()->startHand(); } else { pushButton_break->setDisabled(FALSE); @@ -2024,7 +2053,7 @@ void mainWindowImpl::startNewHand() { } } -void mainWindowImpl::handSwitchRounds() { actualHand->switchRounds(); } +void mainWindowImpl::handSwitchRounds() { mySession->getCurrentGame()->getCurrentHand()->switchRounds(); } void mainWindowImpl::nextRoundCleanGui() { @@ -2046,7 +2075,7 @@ void mainWindowImpl::nextRoundCleanGui() { // label_Pot->setPalette(labelPalette); // for startNewGame during human player is active - if(actualHand->getPlayerArray()[0]->getMyActiveStatus() == 1) { + if(mySession->getCurrentGame()->getCurrentHand()->getPlayerArray()[0]->getMyActiveStatus() == 1) { disableMyButtons(); } // QPalette tempPalette = frame_Pot->palette(); diff --git a/src/gui/qt/mainwindow/mainwindowimpl.h b/src/gui/qt/mainwindow/mainwindowimpl.h index 2f74a7f7..dd1274f0 100755 --- a/src/gui/qt/mainwindow/mainwindowimpl.h +++ b/src/gui/qt/mainwindow/mainwindowimpl.h @@ -21,20 +21,19 @@ #define MAINWINDOWIMPL_H #include "ui_mainwindow.h" +#include "game_defs.h" +#include + #include #include +#include #include #include -#include "handinterface.h" -#include "game_defs.h" -#include - -class Session; -class Game; class Log; class ConfigFile; +class Session; class BoardInterface; // class HandInterface; @@ -60,15 +59,11 @@ public: void initGui(int speed); - void setGame(Game*); - void setHand(HandInterface*); - void setSession(Session*); + Session &getSession(); + void setSession(boost::shared_ptr session); + void setLog(Log*); - void setActualHand(HandInterface* theValue) { actualHand = theValue;} - HandInterface* getActualHand() const { return actualHand;} - - //refresh-Funktionen void refreshSet(); void refreshButton(); @@ -203,9 +198,7 @@ public slots: private: - Game *actualGame; - HandInterface *actualHand; - Session *mySession; + boost::shared_ptr mySession; Log *myLog; ConfigFile *myConfig; diff --git a/src/net/common/serverrecvthread.cpp b/src/net/common/serverrecvthread.cpp index 4e404fcd..8bd31fe3 100644 --- a/src/net/common/serverrecvthread.cpp +++ b/src/net/common/serverrecvthread.cpp @@ -80,10 +80,10 @@ ServerRecvThread::AddConnection(boost::shared_ptr data) } void -ServerRecvThread::AddNotification(unsigned notification) +ServerRecvThread::AddNotification(unsigned message, unsigned param1, unsigned param2) { boost::mutex::scoped_lock lock(m_notificationQueueMutex); - m_notificationQueue.push_back(notification); + m_notificationQueue.push_back(Notification(message, param1, param2)); } void @@ -135,14 +135,16 @@ ServerRecvThread::NotificationLoop() // Process all notifications. while (!m_notificationQueue.empty()) { - unsigned notification = m_notificationQueue.front(); + Notification notification = m_notificationQueue.front(); m_notificationQueue.pop_front(); - switch(notification) + switch(notification.message) { case NOTIFY_GAME_START: SetState(SERVER_START_GAME_STATE::Instance()); break; + case NOTIFY_WAIT_FOR_CLIENT_ACTION: + break; } } } diff --git a/src/net/common/serverthread.cpp b/src/net/common/serverthread.cpp index 974a3f1c..33b1382e 100644 --- a/src/net/common/serverthread.cpp +++ b/src/net/common/serverthread.cpp @@ -62,7 +62,17 @@ ServerThread::StartGame() return; // TODO: throw exception // Thread-safe notification. - GetRecvThread().AddNotification(NOTIFY_GAME_START); + GetRecvThread().AddNotification(NOTIFY_GAME_START, 0, 0); +} + +void +ServerThread::WaitForClientAction(GameState state, unsigned uniquePlayerId) +{ + if (!IsRunning()) + return; // TODO: throw exception + + // Thread-safe notification. + GetRecvThread().AddNotification(NOTIFY_WAIT_FOR_CLIENT_ACTION, state, uniquePlayerId); } ServerCallback & diff --git a/src/net/serverrecvthread.h b/src/net/serverrecvthread.h index 23c76391..d5aa9249 100644 --- a/src/net/serverrecvthread.h +++ b/src/net/serverrecvthread.h @@ -36,7 +36,8 @@ #define RECEIVER_THREAD_TERMINATE_TIMEOUT 200 // Notifications -#define NOTIFY_GAME_START 1 +#define NOTIFY_GAME_START 1 +#define NOTIFY_WAIT_FOR_CLIENT_ACTION 2 class ServerRecvState; class SenderThread; @@ -54,15 +55,24 @@ public: void Init(const std::string &pwd, const GameData &gameData); void AddConnection(boost::shared_ptr data); - void AddNotification(unsigned notification); + void AddNotification(unsigned message, unsigned param1, unsigned param2); ServerCallback &GetCallback(); protected: + struct Notification + { + Notification(unsigned m, unsigned p1, unsigned p2) + : message(m), param1(p1), param2(p2) {} + unsigned message; + unsigned param1; + unsigned param2; + }; + typedef std::deque > ConnectQueue; typedef std::map > SocketSessionMap; - typedef std::deque NotificationQueue; + typedef std::deque NotificationQueue; typedef std::list > > CloseSessionList; // Main function of the thread. diff --git a/src/net/serverthread.h b/src/net/serverthread.h index 459aaa2e..cb5b1d65 100644 --- a/src/net/serverthread.h +++ b/src/net/serverthread.h @@ -21,6 +21,7 @@ #ifndef _SERVERTHREAD_H_ #define _SERVERTHREAD_H_ +#include #include #include #include @@ -42,6 +43,7 @@ public: void Init(unsigned serverPort, bool ipv6, const std::string &pwd, const GameData &gameData); void StartGame(); + void WaitForClientAction(GameState state, unsigned uniquePlayerId); ServerCallback &GetCallback(); diff --git a/src/pokerth.cpp b/src/pokerth.cpp index e21fc85a..80388029 100755 --- a/src/pokerth.cpp +++ b/src/pokerth.cpp @@ -87,8 +87,10 @@ int main( int argc, char **argv ) /////////////////////////////////////////////////// GuiInterface *myGuiInterface = new GuiWrapper(); - Session theFirst(myGuiInterface); - myGuiInterface->setSession(&theFirst); + { + boost::shared_ptr session(new Session(myGuiInterface)); + myGuiInterface->setSession(session); + } int retVal = a.exec(); diff --git a/src/session.cpp b/src/session.cpp index 1a1dea61..33fe106e 100755 --- a/src/session.cpp +++ b/src/session.cpp @@ -30,7 +30,7 @@ using namespace std; Session::Session(GuiInterface *g) -: currentGameID(0), myNetClient(0), myNetServer(0), actualGame(0), myGui(g) +: currentGameID(0), myNetClient(0), myNetServer(0), currentGame(0), myGui(g) { myConfig = new ConfigFile; @@ -49,9 +49,8 @@ Session::~Session() void Session::startGame(const GameData &gameData) { - myGui->setGame(0); - myGui->initGui(gameData.guiSpeed); deleteGame(); + myGui->initGui(gameData.guiSpeed); currentGameID++; @@ -75,18 +74,21 @@ void Session::startGame(const GameData &gameData) { playerDataList.push_back(playerData); } - - actualGame = new Game(myGui, playerDataList, gameData, currentGameID); - myGui->setGame(actualGame); + currentGame = new Game(myGui, playerDataList, gameData, currentGameID); } void Session::deleteGame() { - delete actualGame; - actualGame = 0; + delete currentGame; + currentGame = 0; } +Game *Session::getCurrentGame() +{ + return currentGame; +} + void Session::startNetworkClient(const string &serverAddress, unsigned serverPort, bool ipv6, const string &pwd) { if (myNetClient || !myGui) @@ -149,6 +151,13 @@ void Session::initiateNetworkServerGame() myNetServer->StartGame(); } +void Session::waitForNetworkServerAction(GameState state, unsigned uniquePlayerId) +{ + if (!myNetServer) + return; // TODO: throw exception + myNetServer->WaitForClientAction(state, uniquePlayerId); +} + void Session::terminateNetworkServer() { if (!myNetServer) @@ -163,3 +172,10 @@ void Session::terminateNetworkServer() myNetServer = 0; } +bool Session::isNetworkServerRunning() const +{ + // TODO: Hack + // TODO: Every function which calls this function is also hacked. + return myNetServer != 0; +} + diff --git a/src/session.h b/src/session.h index 5be1e93a..287ed22f 100755 --- a/src/session.h +++ b/src/session.h @@ -20,6 +20,7 @@ #ifndef STDSESSION_H #define STDSESSION_H #include "gamedata.h" +#include "game_defs.h" #include class GuiInterface; @@ -38,14 +39,19 @@ public: void startGame(const GameData &gameData); void deleteGame(); + Game *getCurrentGame(); + void startNetworkClient(const std::string &serverAddress, unsigned serverPort, bool ipv6, const std::string &pwd); void startNetworkClientForLocalServer(); void terminateNetworkClient(); void startNetworkServer(const GameData &gameData); void initiateNetworkServerGame(); + void waitForNetworkServerAction(GameState state, unsigned uniquePlayerId); void terminateNetworkServer(); + bool isNetworkServerRunning() const; + void setCurrentGameID(const int& theValue) { currentGameID = theValue; } int getCurrentGameID() const { return currentGameID; } @@ -56,7 +62,7 @@ private: ClientThread *myNetClient; ServerThread *myNetServer; - Game *actualGame; + Game *currentGame; GuiInterface *myGui; ConfigFile *myConfig;