/** * Callback from PlaceStartFacilityState * Removes placed facility from list */ void SelectStartFacilityState::FacilityBuilt() { _facilities.erase(_facilities.begin() + _lstFacilities->getSelectedRow()); if( _facilities.size() == 0 ) { _game->popState(); } else { PopulateBuildList(); } }
/** * Initializes all the elements in the Build Facilities window. * @param game Pointer to the core game. * @param base Pointer to the base to get info from. * @param state Pointer to the base state to refresh. */ BuildFacilitiesState::BuildFacilitiesState(Game *game, Base *base, State *state, bool cancellable) : State(game), _base(base), _state(state), _facilities() { _screen = false; // Create objects _window = new Window(this, 128, 160, 192, 40, POPUP_VERTICAL); if (cancellable) { _btnOk = new TextButton(112, 16, 200, 176); _lstFacilities = new TextList(100, 96, 200, 64); } else { _lstFacilities = new TextList(100, 128, 200, 64); } _txtTitle = new Text(118, 16, 197, 48); // Set palette _game->setPalette(_game->getResourcePack()->getPalette("BACKPALS.DAT")->getColors(Palette::blockOffset(6)), Palette::backPos, 16); add(_window); if (cancellable) { add(_btnOk); } add(_txtTitle); add(_lstFacilities); // Set up objects _window->setColor(Palette::blockOffset(13)+5); _window->setBackground(_game->getResourcePack()->getSurface("BACK05.SCR")); if (cancellable) { _btnOk->setColor(Palette::blockOffset(13)+5); _btnOk->setText(_game->getLanguage()->getString("STR_OK")); _btnOk->onMouseClick((ActionHandler)&BuildFacilitiesState::btnOkClick); } _txtTitle->setColor(Palette::blockOffset(13)); _txtTitle->setBig(); _txtTitle->setAlign(ALIGN_CENTER); _txtTitle->setText(_game->getLanguage()->getString("STR_INSTALLATION")); _lstFacilities->setColor(Palette::blockOffset(13)+5); _lstFacilities->setArrowColor(Palette::blockOffset(13)+5); _lstFacilities->setColumns(1, 100); _lstFacilities->setSelectable(true); _lstFacilities->setBackground(_window); _lstFacilities->setMargin(2); _lstFacilities->onMouseClick((ActionHandler)&BuildFacilitiesState::lstFacilitiesClick); PopulateBuildList(); }
/** * Initializes all the elements in the Build Facilities window. * @param game Pointer to the core game. * @param base Pointer to the base to get info from. * @param state Pointer to the base state to refresh. */ BuildFacilitiesState::BuildFacilitiesState(Base *base, State *state) : _base(base), _state(state) { _screen = false; // Create objects _window = new Window(this, 128, 160, 192, 40, POPUP_VERTICAL); _btnOk = new TextButton(112, 16, 200, 176); _lstFacilities = new TextList(104, 104, 200, 64); _txtTitle = new Text(118, 17, 197, 48); // Set palette setInterface("selectFacility"); add(_window, "window", "selectFacility"); add(_btnOk, "button", "selectFacility"); add(_txtTitle, "text", "selectFacility"); add(_lstFacilities, "list", "selectFacility"); centerAllSurfaces(); // Set up objects _window->setBackground(_game->getMod()->getSurface("BACK05.SCR")); _btnOk->setText(tr("STR_OK")); _btnOk->onMouseClick((ActionHandler)&BuildFacilitiesState::btnOkClick); _btnOk->onKeyboardPress((ActionHandler)&BuildFacilitiesState::btnOkClick, Options::keyCancel); _txtTitle->setBig(); _txtTitle->setAlign(ALIGN_CENTER); _txtTitle->setText(tr("STR_INSTALLATION")); _lstFacilities->setColumns(1, 104); _lstFacilities->setSelectable(true); _lstFacilities->setBackground(_window); _lstFacilities->setMargin(2); _lstFacilities->setWordWrap(true); _lstFacilities->setScrolling(true, 0); _lstFacilities->onMouseClick((ActionHandler)&BuildFacilitiesState::lstFacilitiesClick); PopulateBuildList(); }
/** * Initializes all the elements in the Build Facilities window. * @param game Pointer to the core game. * @param base Pointer to the base to get info from. * @param state Pointer to the base state to refresh. */ SelectStartFacilityState::SelectStartFacilityState(Game *game, Base *base, State *state, Globe *globe, std::vector<RuleBaseFacility*> Facilities) : BuildFacilitiesState(game, base, state, false), _globe(globe) { _facilities = Facilities; _lstFacilities->onMouseClick((ActionHandler)&SelectStartFacilityState::lstFacilitiesClick); PopulateBuildList(); }