summaryrefslogtreecommitdiff
path: root/quacker/quacker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'quacker/quacker.cpp')
-rw-r--r--quacker/quacker.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/quacker/quacker.cpp b/quacker/quacker.cpp
index 6b5becb..ffe6531 100644
--- a/quacker/quacker.cpp
+++ b/quacker/quacker.cpp
@@ -297,6 +297,7 @@ void TopLevel::setCandidateMove(const Quackle::Move &move)
if (!m_game->hasPositions() || (move.action == Quackle::Move::Place && move.tiles().empty()))
return;
+ bool playHasIllegalWords = false;
Quackle::Move prettiedMove(move);
m_game->currentPosition().ensureMoveTilesDoNotIncludePlayThru(prettiedMove);
m_game->currentPosition().ensureMovePrettiness(prettiedMove);
@@ -367,6 +368,8 @@ void TopLevel::setCandidateMove(const Quackle::Move &move)
{
prettiedMove.setIsChallengedPhoney(true);
}
+ else
+ playHasIllegalWords = true;
}
validityFlags ^= Quackle::GamePosition::UnacceptableWord;
@@ -384,13 +387,18 @@ void TopLevel::setCandidateMove(const Quackle::Move &move)
if (!carryOn)
return;
- m_game->currentPosition().scoreMove(prettiedMove);
+ if (playHasIllegalWords && QuackleIO::UtilSettings::self()->scoreInvalidAsZero)
+ prettiedMove.score = 0;
+ else
+ m_game->currentPosition().scoreMove(prettiedMove);
m_game->currentPosition().addAndSetMoveMade(prettiedMove);
switchToTab(ChoicesTabIndex);
ensureUpToDateSimulatorMoveList();
}
- if (!m_game->currentPosition().currentPlayer().racksAreKnown() && !m_game->currentPosition().currentPlayer().rack().contains(prettiedMove.usedTiles()))
+ if (!m_game->currentPosition().currentPlayer().racksAreKnown() &&
+ !m_game->currentPosition().currentPlayer().rack().contains(prettiedMove.usedTiles()) &&
+ prettiedMove.action != Quackle::Move::BlindExchange)
{
m_game->currentPosition().setCurrentPlayerRack(Quackle::Rack(prettiedMove.usedTiles()));
}
@@ -1319,6 +1327,7 @@ void TopLevel::reportAs(Quackle::ComputerPlayer *player)
Quackle::ComputerPlayer *clone = player->clone();
QTextStream stream(&file);
+ stream.setCodec(QTextCodec::codecForName("UTF-8"));
QuackleIO::StreamingReporter::reportGame(*m_game, clone, stream);
delete clone;
}
@@ -2077,6 +2086,7 @@ void TopLevel::writeAsciiToFile(const QString &text, const QString &filename)
}
QTextStream stream(&file);
+ stream.setCodec(QTextCodec::codecForName("UTF-8"));
stream << text << "\n";
file.close();
@@ -2102,6 +2112,7 @@ void TopLevel::print()
}
QTextStream stream(&file);
+ stream.setCodec(QTextCodec::codecForName("UTF-8"));
//stream << printer.html() << "\n";
file.close();