/** * initialize screen(Fill list) */ void NewResearchListState::init() { fillProjectList (); }
/** * Updates the research list * after going to other screens. */ void ResearchState::init() { fillProjectList(); }
/** * Initializes all the elements in the Research screen. * @param game Pointer to the core game. * @param base Pointer to the base to get info from. */ ResearchState::ResearchState(Game *game, Base *base) : State(game), _base(base) { // Create objects _window = new Window(this, 320, 200, 0, 0); _btnNew = new TextButton(148, 16, 8, 176); _btnOk = new TextButton(148, 16, 164, 176); _txtTitle = new Text(310, 16, 5, 8); _txtAvailable = new Text(150, 9, 10, 24); _txtAllocated = new Text(150, 9, 160, 24); _txtSpace = new Text(300, 9, 10, 34); _txtProject = new Text(110, 16, 10, 44); _txtScientists = new Text(110, 16, 120, 44); _txtProgress = new Text(80, 9, 230, 44); _lstResearch = new TextList(288, 112, 8, 62); // back up palette in case we're being called from Geoscape! memcpy(_oldPalette, _game->getScreen()->getPalette(), 256*sizeof(SDL_Color)); // Set palette _game->setPalette(_game->getResourcePack()->getPalette("PALETTES.DAT_1")->getColors()); _game->setPalette(_game->getResourcePack()->getPalette("BACKPALS.DAT")->getColors(Palette::blockOffset(1)), Palette::backPos, 16); add(_window); add(_btnNew); add(_btnOk); add(_txtTitle); add(_txtAvailable); add(_txtAllocated); add(_txtSpace); add(_txtProject); add(_txtScientists); add(_txtProgress); add(_lstResearch); centerAllSurfaces(); // Set up objects _window->setColor(Palette::blockOffset(13)+10); _window->setBackground(_game->getResourcePack()->getSurface("BACK05.SCR")); _btnNew->setColor(Palette::blockOffset(15)+6); _btnNew->setText(tr("STR_NEW_PROJECT")); _btnNew->onMouseClick((ActionHandler)&ResearchState::btnNewClick); _btnOk->setColor(Palette::blockOffset(15)+6); _btnOk->setText(tr("STR_OK")); _btnOk->onMouseClick((ActionHandler)&ResearchState::btnOkClick); _btnOk->onKeyboardPress((ActionHandler)&ResearchState::btnOkClick, (SDLKey)Options::getInt("keyCancel")); _txtTitle->setColor(Palette::blockOffset(13)+10); _txtTitle->setBig(); _txtTitle->setAlign(ALIGN_CENTER); _txtTitle->setText(tr("STR_CURRENT_RESEARCH")); _txtAvailable->setColor(Palette::blockOffset(13)+10); _txtAvailable->setSecondaryColor(Palette::blockOffset(13)); _txtAllocated->setColor(Palette::blockOffset(13)+10); _txtAllocated->setSecondaryColor(Palette::blockOffset(13)); _txtSpace->setColor(Palette::blockOffset(13)+10); _txtSpace->setSecondaryColor(Palette::blockOffset(13)); _txtProject->setColor(Palette::blockOffset(13)+10); _txtProject->setWordWrap(true); _txtProject->setText(tr("STR_RESEARCH_PROJECT")); _txtScientists->setColor(Palette::blockOffset(13)+10); _txtScientists->setWordWrap(true); _txtScientists->setText(tr("STR_SCIENTISTS_ALLOCATED_UC")); _txtProgress->setColor(Palette::blockOffset(13)+10); _txtProgress->setText(tr("STR_PROGRESS")); _lstResearch->setColor(Palette::blockOffset(15)+6); _lstResearch->setArrowColor(Palette::blockOffset(13)+10); _lstResearch->setColumns(3, 158, 62, 66); _lstResearch->setSelectable(true); _lstResearch->setBackground(_window); _lstResearch->setMargin(2); _lstResearch->onMouseClick((ActionHandler)&ResearchState::onSelectProject); fillProjectList(); }
/** * Initializes all the elements in the Research screen. * @param game Pointer to the core game. * @param base Pointer to the base to get info from. */ ResearchState::ResearchState(Base *base) : _base(base) { // Create objects _window = new Window(this, 320, 200, 0, 0); _btnNew = new TextButton(148, 16, 8, 176); _btnOk = new TextButton(148, 16, 164, 176); _txtTitle = new Text(310, 17, 5, 8); _txtAvailable = new Text(150, 9, 10, 24); _txtAllocated = new Text(150, 9, 160, 24); _txtSpace = new Text(300, 9, 10, 34); _txtProject = new Text(110, 17, 10, 44); _txtScientists = new Text(106, 17, 120, 44); _txtProgress = new Text(84, 9, 226, 44); _lstResearch = new TextList(288, 112, 8, 62); // Set palette setInterface("researchMenu"); add(_window, "window", "researchMenu"); add(_btnNew, "button", "researchMenu"); add(_btnOk, "button", "researchMenu"); add(_txtTitle, "text", "researchMenu"); add(_txtAvailable, "text", "researchMenu"); add(_txtAllocated, "text", "researchMenu"); add(_txtSpace, "text", "researchMenu"); add(_txtProject, "text", "researchMenu"); add(_txtScientists, "text", "researchMenu"); add(_txtProgress, "text", "researchMenu"); add(_lstResearch, "list", "researchMenu"); centerAllSurfaces(); // Set up objects _window->setBackground(_game->getMod()->getSurface("BACK05.SCR")); _btnNew->setText(tr("STR_NEW_PROJECT")); _btnNew->onMouseClick((ActionHandler)&ResearchState::btnNewClick); _btnOk->setText(tr("STR_OK")); _btnOk->onMouseClick((ActionHandler)&ResearchState::btnOkClick); _btnOk->onKeyboardPress((ActionHandler)&ResearchState::btnOkClick, Options::keyCancel); _txtTitle->setBig(); _txtTitle->setAlign(ALIGN_CENTER); _txtTitle->setText(tr("STR_CURRENT_RESEARCH")); _txtProject->setWordWrap(true); _txtProject->setText(tr("STR_RESEARCH_PROJECT")); _txtScientists->setWordWrap(true); _txtScientists->setText(tr("STR_SCIENTISTS_ALLOCATED_UC")); _txtProgress->setText(tr("STR_PROGRESS")); _lstResearch->setColumns(3, 158, 58, 70); _lstResearch->setSelectable(true); _lstResearch->setBackground(_window); _lstResearch->setMargin(2); _lstResearch->setWordWrap(true); _lstResearch->onMouseClick((ActionHandler)&ResearchState::onSelectProject); fillProjectList(); }