// Tells the entities to use their grayscale renderables // instead of their colored ones (applies to all entities) void Game::SetEntitiesGrayscale(bool grayscale) { if (mRobot) mRobot->SetGrayscale(grayscale); if (mBackground) mBackground->SetGrayscale(grayscale); if (mForeground) mForeground->SetGrayscale(grayscale); if (mFlagPole) mFlagPole->SetGrayscale(grayscale); if (mGrid) { int tileWidth = mGrid->TileWidth(); int tileHeight = mGrid->TileHeight(); GG::Rect tileRect(0, 0, tileWidth, tileHeight); for (int y = 0; y < mGrid->NumRows(); y++) { for (int x = 0; x < mGrid->NumCols(); x++) { Tile* tile = mGrid->GetTile(y, x); if (tile->GetRenderable()) { tile->SetGrayscale(grayscale); } tileRect.x += tileWidth; } tileRect.y += tileHeight; tileRect.x = 0; } } std::list<Explosion*>::iterator it = mExplosions.begin(); for ( ; it != mExplosions.end(); ++it) { Explosion* boom = *it; boom->SetGrayscale(grayscale); } std::list<Meteor*>::iterator metIt = mMeteors.begin(); for ( ; metIt != mMeteors.end(); ++metIt) { Meteor* meteor = *metIt; meteor->SetGrayscale(grayscale); } std::list<Crawler*>::iterator crawlerIter = mCrawlers.begin(); for ( ; crawlerIter != mCrawlers.end(); ++crawlerIter) { Crawler* crawler = *crawlerIter; crawler->SetGrayscale(grayscale); } std::list<Coin*>::iterator coinIter = mCoins.begin(); for ( ; coinIter != mCoins.end(); ++coinIter) { Coin* coin = *coinIter; coin->SetGrayscale(grayscale); } std::list<Layer*>::iterator mushIter = mMushrooms.begin(); for ( ; mushIter != mMushrooms.end(); ++mushIter) { Layer* mushroom = *mushIter; mushroom->SetGrayscale(grayscale); } }