I just played 3 long games and I was able to undo two fully and got an assert on the third one after more than 1000 actions... so I commit what I have:
- Modified undo to stop at "next phase" action - Added "muligan" and "force library shuffling" to the list of logged action - Fixed random logging - Fixed double logging of actions - Merged all the "next game" functions into a single one - Created a PlayerType type instead of using int - Moved the player loading code into the GameObserver and out of GameStateDuel to avoid having player references in both and simplify the initialization and termination. Tweeked a bit the humanplayer class to be able to do that. - Added a "load" menu available in testsuite mode, I use that to load problematique game. To use it, just copy-paste a game from the traces into Res/test/game/timetwister.txt. Game in traces starts by "rvalues:..." and ends by "[end]" - Added some untested and commented out code in GuiCombat to use the mouse/touch to setup the damage on the blockers - Broke the network game ... hoh well, I'll repair it when everything else works !! - various code cleanup and compilation fixes on Linux
This commit is contained in:
@@ -110,12 +110,12 @@ JQuadPtr Player::getIcon()
|
||||
|
||||
Player * Player::opponent()
|
||||
{
|
||||
if (!observer) return NULL;
|
||||
if (!observer || (observer->players.size() < 2 )) return NULL;
|
||||
return this == observer->players[0] ? observer->players[1] : observer->players[0];
|
||||
}
|
||||
|
||||
HumanPlayer::HumanPlayer(GameObserver *observer, string file, string fileSmall, MTGDeck * deck) :
|
||||
Player(observer, file, fileSmall, deck)
|
||||
HumanPlayer::HumanPlayer(GameObserver *observer, string file, string fileSmall, bool premade, MTGDeck * deck) :
|
||||
Player(observer, file, fileSmall, deck), premade(premade)
|
||||
{
|
||||
mAvatarName = "avatar.jpg";
|
||||
playMode = MODE_HUMAN;
|
||||
@@ -248,6 +248,11 @@ bool Player::parseLine(const string& s)
|
||||
deckFile = s.substr(limiter + 1);
|
||||
return true;
|
||||
}
|
||||
else if (areaS.compare("deckfilesmall") == 0)
|
||||
{
|
||||
deckFileSmall = s.substr(limiter + 1);
|
||||
return true;
|
||||
}
|
||||
else if (areaS.compare("offerinterruptonphase") == 0)
|
||||
{
|
||||
for (int i = 0; i < Constants::NB_MTG_PHASES; i++)
|
||||
@@ -287,6 +292,8 @@ ostream& operator<<(ostream& out, const Player& p)
|
||||
out << "offerinterruptonphase=" << Constants::MTGPhaseCodeNames[p.offerInterruptOnPhase] << endl;
|
||||
if(p.deckFile != "")
|
||||
out << "deckfile=" << p.deckFile << endl;
|
||||
if(p.deckFileSmall != "")
|
||||
out << "deckfilesmall=" << p.deckFileSmall << endl;
|
||||
|
||||
if(p.game)
|
||||
{
|
||||
@@ -295,3 +302,4 @@ ostream& operator<<(ostream& out, const Player& p)
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user