mirror of
git://git.savannah.nongnu.org/eliot.git
synced 2024-12-25 21:59:30 +01:00
Removed experimental support of the real bag. It was not a good idea after all...
This commit is contained in:
parent
675b534e77
commit
7fa8c2b58f
4 changed files with 0 additions and 94 deletions
|
@ -234,13 +234,9 @@ int FreeGame::checkPass(const Player &iPlayer,
|
|||
// It is forbidden to change letters when the bag does not contain at
|
||||
// least 7 letters (this is explicitly stated in the ODS). But it is
|
||||
// still allowed to pass
|
||||
#ifdef REAL_BAG_MODE
|
||||
if (m_bag.getNbTiles() < 7 && !iToChange.empty())
|
||||
#else
|
||||
Bag bag(getDic());
|
||||
realBag(bag);
|
||||
if (bag.getNbTiles() < 7 && !iToChange.empty())
|
||||
#endif
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -125,42 +125,6 @@ void Game::shuffleRack()
|
|||
m_players[currPlayer()]->setCurrentRack(pld);
|
||||
}
|
||||
|
||||
#ifdef REAL_BAG_MODE
|
||||
|
||||
Bag Game::getBag() const
|
||||
{
|
||||
Bag bag = m_bag;
|
||||
|
||||
vector<Tile> tiles;
|
||||
|
||||
// The real content of the bag depends on the game mode
|
||||
if (getMode() == kFREEGAME)
|
||||
{
|
||||
// In freegame mode, replace the letters from all the racks
|
||||
BOOST_FOREACH(const Player *player, m_players)
|
||||
{
|
||||
player->getCurrentRack().getAllTiles(tiles);
|
||||
BOOST_FOREACH(const Tile &tile, tiles)
|
||||
{
|
||||
bag.replaceTile(tile);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// In training or duplicate mode, replace the rack of the current
|
||||
// player only
|
||||
getPlayer(m_currPlayer).getCurrentRack().getAllTiles(tiles);
|
||||
BOOST_FOREACH(const Tile &tile, tiles)
|
||||
{
|
||||
bag.replaceTile(tile);
|
||||
}
|
||||
}
|
||||
|
||||
return bag;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
void Game::realBag(Bag &ioBag) const
|
||||
{
|
||||
|
@ -194,7 +158,6 @@ void Game::realBag(Bag &ioBag) const
|
|||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
PlayedRack Game::helperSetRackRandom(const PlayedRack &iPld,
|
||||
bool iCheck, set_rack_mode mode) const
|
||||
|
@ -224,12 +187,8 @@ PlayedRack Game::helperSetRackRandom(const PlayedRack &iPld,
|
|||
// Create a copy of the bag in which we can do everything we want,
|
||||
// and take from it the tiles of the players rack so that "bag"
|
||||
// contains the right number of tiles.
|
||||
#ifdef REAL_BAG_MODE
|
||||
Bag &bag = m_bag;
|
||||
#else
|
||||
Bag bag(m_dic);
|
||||
realBag(bag);
|
||||
#endif
|
||||
if (mode == RACK_NEW && nold != 0)
|
||||
{
|
||||
// We may have removed too many letters from the bag (i.e. the 'new'
|
||||
|
@ -448,21 +407,12 @@ int Game::helperSetRackManual(unsigned int p, bool iCheck, const wstring &iLette
|
|||
PlayedRack pld;
|
||||
pld.setManual(iLetters);
|
||||
|
||||
#ifdef REAL_BAG_MODE
|
||||
vector<Tile> allTiles;
|
||||
m_players[p]->getCurrentRack().getAllTiles(allTiles);
|
||||
BOOST_FOREACH(const Tile &tile, allTiles)
|
||||
{
|
||||
m_bag.replaceTile(tile);
|
||||
}
|
||||
#else
|
||||
Rack rack;
|
||||
pld.getRack(rack);
|
||||
if (!rackInBag(rack, m_bag))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (iCheck)
|
||||
{
|
||||
|
@ -474,26 +424,10 @@ int Game::helperSetRackManual(unsigned int p, bool iCheck, const wstring &iLette
|
|||
min = 1;
|
||||
if (!pld.checkRack(min, min))
|
||||
{
|
||||
#ifdef REAL_BAG_MODE
|
||||
// Changing the rack failed, so we restore the tiles we
|
||||
// just removed
|
||||
BOOST_FOREACH(const Tile &tile, allTiles)
|
||||
{
|
||||
m_bag.takeTile(tile);
|
||||
}
|
||||
#endif
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef REAL_BAG_MODE
|
||||
pld.getAllTiles(allTiles);
|
||||
BOOST_FOREACH(const Tile &tile, allTiles)
|
||||
{
|
||||
m_bag.takeTile(tile);
|
||||
}
|
||||
#endif
|
||||
|
||||
m_players[p]->setCurrentRack(pld);
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -100,9 +100,6 @@ public:
|
|||
const Board& getBoard() const { return m_board; }
|
||||
Board & accessBoard() { return m_board; }
|
||||
/// Get the bag
|
||||
#ifdef REAL_BAG_MODE
|
||||
Bag getBag() const;
|
||||
#else
|
||||
const Bag& getBag() const { return m_bag; }
|
||||
Bag & accessBag() { return m_bag; }
|
||||
/**
|
||||
|
@ -114,7 +111,6 @@ public:
|
|||
* it is important to set m_currPlayer accurately before!
|
||||
*/
|
||||
void realBag(Bag &iBag) const;
|
||||
#endif
|
||||
|
||||
|
||||
/// Get the history of the game */
|
||||
|
|
|
@ -51,16 +51,6 @@ void GameMoveCmd::doExecute()
|
|||
{
|
||||
playRound();
|
||||
}
|
||||
#ifdef REAL_BAG_MODE
|
||||
else if (m_move.getType() == Move::CHANGE_LETTERS)
|
||||
{
|
||||
// Put the changed letters back into the bag
|
||||
BOOST_FOREACH(wchar_t ch, m_move.getChangedLetters())
|
||||
{
|
||||
m_bag.replaceTile(Tile(ch));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
@ -87,8 +77,6 @@ void GameMoveCmd::playRound()
|
|||
// method.
|
||||
m_round = m_move.getRound();
|
||||
|
||||
#ifdef REAL_BAG_MODE
|
||||
#else
|
||||
// Update the bag
|
||||
// We remove tiles from the bag only when they are played
|
||||
// on the board. When going back in the game, we must only
|
||||
|
@ -109,7 +97,6 @@ void GameMoveCmd::playRound()
|
|||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (m_game.getVariant() == Game::kJOKER)
|
||||
{
|
||||
|
@ -118,12 +105,8 @@ void GameMoveCmd::playRound()
|
|||
if (m_round.isPlayedFromRack(i) && m_round.isJoker(i))
|
||||
{
|
||||
// Get the real bag
|
||||
#ifdef REAL_BAG_MODE
|
||||
Bag &bag = m_game.accessBag();
|
||||
#else
|
||||
Bag bag(m_game.getDic());
|
||||
m_game.realBag(bag);
|
||||
#endif
|
||||
|
||||
// Is the represented letter still available in the bag?
|
||||
// XXX: this way to get the represented letter sucks...
|
||||
|
@ -155,8 +138,6 @@ void GameMoveCmd::unplayRound()
|
|||
// Update the board
|
||||
m_game.accessBoard().removeRound(m_game.getDic(), m_round);
|
||||
|
||||
#ifdef REAL_BAG_MODE
|
||||
#else
|
||||
// Update the bag
|
||||
// We remove tiles from the bag only when they are played
|
||||
// on the board. When going back in the game, we must only
|
||||
|
@ -177,6 +158,5 @@ void GameMoveCmd::unplayRound()
|
|||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue