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;