| 37 | { |
| 38 | |
| 39 | BaseDestroyedState::BaseDestroyedState(Game *game, Base *base) : State(game), _base(base) |
| 40 | { |
| 41 | _screen = false; |
| 42 | |
| 43 | // Create objects |
| 44 | _window = new Window(this, 256, 160, 32, 20); |
| 45 | _btnOk = new TextButton(100, 20, 110, 142); |
| 46 | _txtMessage = new Text(224, 48, 48, 76); |
| 47 | |
| 48 | // Set palette |
| 49 | setPalette("PAL_GEOSCAPE", 7); |
| 50 | |
| 51 | add(_window); |
| 52 | add(_btnOk); |
| 53 | add(_txtMessage); |
| 54 | |
| 55 | centerAllSurfaces(); |
| 56 | |
| 57 | // Set up objects |
| 58 | _window->setColor(Palette::blockOffset(8)+5); |
| 59 | _window->setBackground(_game->getResourcePack()->getSurface("BACK15.SCR")); |
| 60 | |
| 61 | _btnOk->setColor(Palette::blockOffset(8)+5); |
| 62 | _btnOk->setText(tr("STR_OK")); |
| 63 | _btnOk->onMouseClick((ActionHandler)&BaseDestroyedState::btnOkClick); |
| 64 | _btnOk->onKeyboardPress((ActionHandler)&BaseDestroyedState::btnOkClick, Options::keyOk); |
| 65 | _btnOk->onKeyboardPress((ActionHandler)&BaseDestroyedState::btnOkClick, Options::keyCancel); |
| 66 | |
| 67 | _txtMessage->setAlign(ALIGN_CENTER); |
| 68 | _txtMessage->setBig(); |
| 69 | _txtMessage->setWordWrap(true); |
| 70 | _txtMessage->setColor(Palette::blockOffset(8)+5); |
| 71 | |
| 72 | _txtMessage->setText(tr("STR_THE_ALIENS_HAVE_DESTROYED_THE_UNDEFENDED_BASE").arg(_base->getName())); |
| 73 | |
| 74 | std::vector<Region*>::iterator k = _game->getSavedGame()->getRegions()->begin(); |
| 75 | for (; k != _game->getSavedGame()->getRegions()->end(); ++k) |
| 76 | { |
| 77 | if ((*k)->getRules()->insideRegion((base)->getLongitude(), (base)->getLatitude())) |
| 78 | { |
| 79 | break; |
| 80 | } |
| 81 | } |
| 82 | |
| 83 | AlienMission* am = _game->getSavedGame()->getAlienMission((*k)->getRules()->getType(), "STR_ALIEN_RETALIATION"); |
| 84 | for (std::vector<Ufo*>::iterator i = _game->getSavedGame()->getUfos()->begin(); i != _game->getSavedGame()->getUfos()->end();) |
| 85 | { |
| 86 | if ((*i)->getMission() == am) |
| 87 | { |
| 88 | delete *i; |
| 89 | i = _game->getSavedGame()->getUfos()->erase(i); |
| 90 | } |
| 91 | else |
| 92 | { |
| 93 | ++i; |
| 94 | } |
| 95 | } |
| 96 |
nothing calls this directly
no test coverage detected