* 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. */
| 53 | * @param state Pointer to the Geoscape. |
| 54 | */ |
| 55 | BaseDefenseState::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 | */ |
nothing calls this directly
no test coverage detected