MCPcopy Create free account
hub / github.com/OpenXcom/OpenXcom / BaseDestroyedState

Method BaseDestroyedState

src/Geoscape/BaseDestroyedState.cpp:39–107  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

37{
38
39BaseDestroyedState::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

Callers

nothing calls this directly

Calls 15

onMouseClickMethod · 0.80
onKeyboardPressMethod · 0.80
getRegionsMethod · 0.80
getSavedGameMethod · 0.80
insideRegionMethod · 0.80
getUfosMethod · 0.80
getMissionMethod · 0.80
argMethod · 0.60
setColorMethod · 0.45
setBackgroundMethod · 0.45
getSurfaceMethod · 0.45
getResourcePackMethod · 0.45

Tested by

no test coverage detected