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

Method BaseDefenseState

src/Geoscape/BaseDefenseState.cpp:55–108  ·  view source on GitHub ↗

* Initializes all the elements in the Base Defense screen. * @param game Pointer to the core game. * @param base Pointer to the base being attacked. * @param ufo Pointer to the attacking ufo. * @param state Pointer to the Geoscape. */

Source from the content-addressed store, hash-verified

53 * @param state Pointer to the Geoscape.
54 */
55BaseDefenseState::BaseDefenseState(Game *game, Base *base, Ufo *ufo, GeoscapeState *state) : State(game), _state(state)
56{
57 _base = base;
58 _action = BDA_NONE;
59 _row = -1;
60 _passes = 0;
61 _attacks = 0;
62 _thinkcycles = 0;
63 _ufo = ufo;
64 // Create objects
65 _window = new Window(this, 320, 200, 0, 0);
66 _txtTitle = new Text(300, 17, 16, 6);
67 _txtInit = new Text(300, 10, 16, 24);
68 _lstDefenses = new TextList(300, 130, 16, 40);
69 _btnOk = new TextButton(120, 18, 100, 170);
70
71 // Set palette
72 setPalette("PAL_BASESCAPE", 2);
73
74 add(_window);
75 add(_btnOk);
76 add(_txtTitle);
77 add(_txtInit);
78 add(_lstDefenses);
79
80 centerAllSurfaces();
81
82 // Set up objects
83 _window->setColor(Palette::blockOffset(15)+6);
84 _window->setBackground(_game->getResourcePack()->getSurface("BACK04.SCR"));
85
86 _btnOk->setColor(Palette::blockOffset(13)+10);
87 _btnOk->setText(tr("STR_OK"));
88 _btnOk->onMouseClick((ActionHandler)&BaseDefenseState::btnOkClick);
89 _btnOk->onKeyboardPress((ActionHandler)&BaseDefenseState::btnOkClick, Options::keyOk);
90 _btnOk->onKeyboardPress((ActionHandler)&BaseDefenseState::btnOkClick, Options::keyCancel);
91 _btnOk->setVisible(false);
92
93 _txtTitle->setColor(Palette::blockOffset(13)+10);
94 _txtTitle->setBig();
95 _txtTitle->setText(tr("STR_BASE_UNDER_ATTACK").arg(_base->getName()));
96 _txtInit->setVisible(false);
97
98 _txtInit->setColor(Palette::blockOffset(13)+10);
99 _txtInit->setText(tr("STR_BASE_DEFENSES_INITIATED"));
100
101 _lstDefenses->setColor(Palette::blockOffset(13)+10);
102 _lstDefenses->setColumns(3, 134, 70, 50);
103 _gravShields = _base->getGravShields();
104 _defenses = _base->getDefenses()->size();
105 _timer = new Timer(750);
106 _timer->onTimer((StateHandler)&BaseDefenseState::nextStep);
107 _timer->start();
108}
109/**
110 *
111 */

Callers

nothing calls this directly

Calls 15

onMouseClickMethod · 0.80
onKeyboardPressMethod · 0.80
setColumnsMethod · 0.80
getGravShieldsMethod · 0.80
getDefensesMethod · 0.80
onTimerMethod · 0.80
argMethod · 0.60
setColorMethod · 0.45
setBackgroundMethod · 0.45
getSurfaceMethod · 0.45
getResourcePackMethod · 0.45
setTextMethod · 0.45

Tested by

no test coverage detected