summaryrefslogtreecommitdiff
path: root/quackleio/util.cpp
diff options
context:
space:
mode:
authorJohn Fultz <jfultz@wolfram.com>2016-08-02 04:08:43 -0500
committerJohn Fultz <jfultz@wolfram.com>2016-08-02 06:37:15 -0500
commitdbcb13d3c87133117bc54023c162ad0a202efa1d (patch)
tree955715420b4584b73baa676c1b4b5fe4febb3c48 /quackleio/util.cpp
parenta3aa3602d173939a2b616bb78a5a739eb9761d9b (diff)
Fixes to allow bad endgames to be loaded from GCGs.
Not perfect, but it now does a decent job of not corrupting GCGs when it loads one where players have messed up tile counts/drawing in the end-game. It also tries to annotate these for the player and in any GCG file that's round-tripped. Also, a lot of C++11-izing of ranged iterators.
Diffstat (limited to 'quackleio/util.cpp')
-rw-r--r--quackleio/util.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/quackleio/util.cpp b/quackleio/util.cpp
index 901c65e..774dcad 100644
--- a/quackleio/util.cpp
+++ b/quackleio/util.cpp
@@ -59,8 +59,11 @@ QString Util::moveToDetailedString(const Quackle::Move &move)
ret = QObject::tr("Exch. %1").arg(move.tiles().length());
break;
+ case Quackle::Move::UnusedTilesBonusError:
case Quackle::Move::UnusedTilesBonus:
ret = QObject::tr("2*(%1)").arg(letterStringToQString(Util::alphagram(move.usedTiles())));
+ if (move.action == Quackle::Move::UnusedTilesBonusError)
+ ret += " [Endgame Error]";
break;
case Quackle::Move::TimePenalty:
@@ -72,6 +75,7 @@ QString Util::moveToDetailedString(const Quackle::Move &move)
break;
case Quackle::Move::Place:
+ case Quackle::Move::PlaceError:
ret = uvStringToQString(move.positionString()) + " ";
ret += prettyTiles;
@@ -81,6 +85,9 @@ QString Util::moveToDetailedString(const Quackle::Move &move)
if (move.isChallengedPhoney())
ret = QObject::tr("%1 [Challenged Off]").arg(ret);
+ if (move.action == Quackle::Move::PlaceError)
+ ret += " [Endgame Misdraw]";
+
break;
}