/** * Updates the production list * after going to other screens. */ void ManufactureState::init () { fillProductionList(); }
/** * Initializes all the elements in the Manufacture screen. * @param game Pointer to the core game. * @param base Pointer to the base to get info from. */ ManufactureState::ManufactureState(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, 17, 5, 8); _txtAvailable = new Text(150, 9, 8, 24); _txtAllocated = new Text(150, 9, 160, 24); _txtSpace = new Text(150, 9, 8, 34); _txtFunds = new Text(150, 9, 160, 34); _txtItem = new Text(80, 9, 10, 52); _txtEngineers = new Text(56, 18, 112, 44); _txtProduced = new Text(56, 18, 168, 44); _txtCost = new Text(44, 27, 222, 44); _txtTimeLeft = new Text(55, 18, 260, 44); _lstManufacture = new TextList(307, 90, 8, 80); // 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(6)), Palette::backPos, 16); add(_window); add(_btnNew); add(_btnOk); add(_txtTitle); add(_txtAvailable); add(_txtAllocated); add(_txtSpace); add(_txtFunds); add(_txtItem); add(_txtEngineers); add(_txtProduced); add(_txtCost); add(_txtTimeLeft); add(_lstManufacture); centerAllSurfaces(); // Set up objects _window->setColor(Palette::blockOffset(15)+6); _window->setBackground(_game->getResourcePack()->getSurface("BACK17.SCR")); _btnNew->setColor(Palette::blockOffset(13)+10); _btnNew->setText(tr("STR_NEW_PRODUCTION")); _btnNew->onMouseClick((ActionHandler)&ManufactureState::btnNewProductionClick); _btnOk->setColor(Palette::blockOffset(13)+10); _btnOk->setText(tr("STR_OK")); _btnOk->onMouseClick((ActionHandler)&ManufactureState::btnOkClick); _btnOk->onKeyboardPress((ActionHandler)&ManufactureState::btnOkClick, (SDLKey)Options::getInt("keyCancel")); _txtTitle->setColor(Palette::blockOffset(15)+6); _txtTitle->setBig(); _txtTitle->setAlign(ALIGN_CENTER); _txtTitle->setText(tr("STR_CURRENT_PRODUCTION")); _txtAvailable->setColor(Palette::blockOffset(15)+6); _txtAvailable->setSecondaryColor(Palette::blockOffset(13)); _txtAllocated->setColor(Palette::blockOffset(15)+6); _txtAllocated->setSecondaryColor(Palette::blockOffset(13)); _txtSpace->setColor(Palette::blockOffset(15)+6); _txtSpace->setSecondaryColor(Palette::blockOffset(13)); _txtFunds->setColor(Palette::blockOffset(15)+6); _txtFunds->setSecondaryColor(Palette::blockOffset(13)); _txtFunds->setText(tr("STR_CURRENT_FUNDS").arg(Text::formatFunding(_game->getSavedGame()->getFunds()))); _txtItem->setColor(Palette::blockOffset(15)+1); _txtItem->setText(tr("STR_ITEM")); _txtEngineers->setColor(Palette::blockOffset(15)+1); _txtEngineers->setText(tr("STR_ENGINEERS__ALLOCATED")); _txtEngineers->setWordWrap(true); _txtEngineers->setVerticalAlign(ALIGN_BOTTOM); _txtProduced->setColor(Palette::blockOffset(15)+1); _txtProduced->setText(tr("STR_UNITS_PRODUCED")); _txtProduced->setWordWrap(true); _txtProduced->setVerticalAlign(ALIGN_BOTTOM); _txtCost->setColor(Palette::blockOffset(15)+1); _txtCost->setText(tr("STR_COST__PER__UNIT")); _txtCost->setWordWrap(true); _txtCost->setVerticalAlign(ALIGN_BOTTOM); _txtTimeLeft->setColor(Palette::blockOffset(15)+1); _txtTimeLeft->setText(tr("STR_DAYS_HOURS_LEFT")); _txtTimeLeft->setWordWrap(true); _txtTimeLeft->setVerticalAlign(ALIGN_BOTTOM); _lstManufacture->setColor(Palette::blockOffset(13)+10); _lstManufacture->setArrowColor(Palette::blockOffset(15)+9); _lstManufacture->setColumns(5, 122, 17, 52, 56, 32); _lstManufacture->setAlign(ALIGN_RIGHT); _lstManufacture->setAlign(ALIGN_LEFT, 0); _lstManufacture->setSelectable(true); _lstManufacture->setBackground(_window); _lstManufacture->setMargin(1); _lstManufacture->onMouseClick((ActionHandler)&ManufactureState::lstManufactureClick); fillProductionList(); }
/** Initialize state(fill list of possible productions) */ void NewManufactureListState::init () { fillProductionList(); }
void NewManufactureListState::cbxCategoryChange(Action *) { fillProductionList(); }
/** * Initializes all the elements in the Manufacture screen. * @param game Pointer to the core game. * @param base Pointer to the base to get info from. */ ManufactureState::ManufactureState(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, 8, 24); _txtAllocated = new Text(150, 9, 160, 24); _txtSpace = new Text(150, 9, 8, 34); _txtFunds = new Text(150, 9, 160, 34); _txtItem = new Text(80, 9, 10, 52); _txtEngineers = new Text(50, 18, 70, 44); _txtProduced = new Text(56, 18, 120, 44); _txtTotal = new Text(50, 18, 176, 44); _txtCost = new Text(40, 27, 227, 44); _txtTimeLeft = new Text(55, 18, 265, 44); _lstManufacture = new TextList(300, 90, 8, 80); // Set palette _game->setPalette(_game->getResourcePack()->getPalette("PALETTES.DAT_1")->getColors()); _game->setPalette(_game->getResourcePack()->getPalette("BACKPALS.DAT")->getColors(Palette::blockOffset(6)), Palette::backPos, 16); add(_window); add(_btnNew); add(_btnOk); add(_txtTitle); add(_txtAvailable); add(_txtAllocated); add(_txtSpace); add(_txtFunds); add(_txtItem); add(_txtEngineers); add(_txtProduced); add(_txtTotal); add(_txtCost); add(_txtTimeLeft); add(_lstManufacture); // Set up objects _window->setColor(Palette::blockOffset(15)+6); _window->setBackground(_game->getResourcePack()->getSurface("BACK17.SCR")); _btnNew->setColor(Palette::blockOffset(13)+10); _btnNew->setText(_game->getLanguage()->getString("STR_NEW_PRODUCTION")); _btnNew->onMouseClick((ActionHandler)&ManufactureState::btnNewProductionClick); _btnOk->setColor(Palette::blockOffset(13)+10); _btnOk->setText(_game->getLanguage()->getString("STR_OK")); _btnOk->onMouseClick((ActionHandler)&ManufactureState::btnOkClick); _txtTitle->setColor(Palette::blockOffset(15)+6); _txtTitle->setBig(); _txtTitle->setAlign(ALIGN_CENTER); _txtTitle->setText(_game->getLanguage()->getString("STR_CURRENT_PRODUCTION")); _txtAvailable->setColor(Palette::blockOffset(15)+6); _txtAvailable->setSecondaryColor(Palette::blockOffset(13)); _txtAllocated->setColor(Palette::blockOffset(15)+6); _txtAllocated->setSecondaryColor(Palette::blockOffset(13)); _txtSpace->setColor(Palette::blockOffset(15)+6); _txtSpace->setSecondaryColor(Palette::blockOffset(13)); _txtFunds->setColor(Palette::blockOffset(15)+6); _txtFunds->setSecondaryColor(Palette::blockOffset(13)); std::wstringstream ss4; ss4 << _game->getLanguage()->getString("STR_CURRENT_FUNDS") << L'\x01' << Text::formatFunding(_game->getSavedGame()->getFunds()); _txtFunds->setText(ss4.str()); _txtItem->setColor(Palette::blockOffset(15)+1); _txtItem->setText(_game->getLanguage()->getString("STR_ITEM")); _txtEngineers->setColor(Palette::blockOffset(15)+1); _txtEngineers->setText(_game->getLanguage()->getString("STR_ENGINEERS__ALLOCATED")); _txtProduced->setColor(Palette::blockOffset(15)+1); _txtProduced->setText(_game->getLanguage()->getString("STR_UNITS_PRODUCED")); _txtTotal->setColor(Palette::blockOffset(15)+1); _txtTotal->setText(_game->getLanguage()->getString("STR_TOTAL_TO_PRODUCE")); _txtCost->setColor(Palette::blockOffset(15)+1); _txtCost->setText(_game->getLanguage()->getString("STR_COST__PER__UNIT")); _txtTimeLeft->setColor(Palette::blockOffset(15)+1); _txtTimeLeft->setText(_game->getLanguage()->getString("STR_DAYS_HOURS_LEFT")); _lstManufacture->setColor(Palette::blockOffset(13)+10); _lstManufacture->setArrowColor(Palette::blockOffset(15)+9); _lstManufacture->setColumns(6, 105, 39, 45, 27, 47, 40); _lstManufacture->setSelectable(true); _lstManufacture->setBackground(_window); _lstManufacture->setMargin(1); _lstManufacture->onMouseClick((ActionHandler)&ManufactureState::lstManufactureClick); fillProductionList(); }
/** * Initializes all the elements in the Manufacture screen. * @param game Pointer to the core game. * @param base Pointer to the base to get info from. */ ManufactureState::ManufactureState(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, 8, 24); _txtAllocated = new Text(150, 9, 160, 24); _txtSpace = new Text(150, 9, 8, 34); _txtFunds = new Text(150, 9, 160, 34); _txtItem = new Text(80, 9, 10, 52); _txtEngineers = new Text(56, 18, 112, 44); _txtProduced = new Text(56, 18, 168, 44); _txtCost = new Text(44, 27, 222, 44); _txtTimeLeft = new Text(60, 27, 260, 44); _lstManufacture = new TextList(288, 88, 8, 80); // Set palette setInterface("manufactureMenu"); add(_window, "window", "manufactureMenu"); add(_btnNew, "button", "manufactureMenu"); add(_btnOk, "button", "manufactureMenu"); add(_txtTitle, "text1", "manufactureMenu"); add(_txtAvailable, "text1", "manufactureMenu"); add(_txtAllocated, "text1", "manufactureMenu"); add(_txtSpace, "text1", "manufactureMenu"); add(_txtFunds, "text1", "manufactureMenu"); add(_txtItem, "text2", "manufactureMenu"); add(_txtEngineers, "text2", "manufactureMenu"); add(_txtProduced, "text2", "manufactureMenu"); add(_txtCost, "text2", "manufactureMenu"); add(_txtTimeLeft, "text2", "manufactureMenu"); add(_lstManufacture, "list", "manufactureMenu"); centerAllSurfaces(); // Set up objects _window->setBackground(_game->getMod()->getSurface("BACK17.SCR")); _btnNew->setText(tr("STR_NEW_PRODUCTION")); _btnNew->onMouseClick((ActionHandler)&ManufactureState::btnNewProductionClick); _btnOk->setText(tr("STR_OK")); _btnOk->onMouseClick((ActionHandler)&ManufactureState::btnOkClick); _btnOk->onKeyboardPress((ActionHandler)&ManufactureState::btnOkClick, Options::keyCancel); _txtTitle->setBig(); _txtTitle->setAlign(ALIGN_CENTER); _txtTitle->setText(tr("STR_CURRENT_PRODUCTION")); _txtFunds->setText(tr("STR_CURRENT_FUNDS").arg(Unicode::formatFunding(_game->getSavedGame()->getFunds()))); _txtItem->setText(tr("STR_ITEM")); _txtEngineers->setText(tr("STR_ENGINEERS__ALLOCATED")); _txtEngineers->setWordWrap(true); _txtProduced->setText(tr("STR_UNITS_PRODUCED")); _txtProduced->setWordWrap(true); _txtCost->setText(tr("STR_COST__PER__UNIT")); _txtCost->setWordWrap(true); _txtTimeLeft->setText(tr("STR_DAYS_HOURS_LEFT")); _txtTimeLeft->setWordWrap(true); _lstManufacture->setColumns(5, 115, 15, 52, 56, 48); _lstManufacture->setAlign(ALIGN_RIGHT); _lstManufacture->setAlign(ALIGN_LEFT, 0); _lstManufacture->setSelectable(true); _lstManufacture->setBackground(_window); _lstManufacture->setMargin(2); _lstManufacture->setWordWrap(true); _lstManufacture->onMouseClick((ActionHandler)&ManufactureState::lstManufactureClick); fillProductionList(); }
/** * Initializes all the elements in the Manufacture screen. * @param game Pointer to the core game. * @param base Pointer to the base to get info from. */ ManufactureState::ManufactureState(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, 17, 5, 8); _txtAvailable = new Text(150, 9, 8, 24); _txtAllocated = new Text(150, 9, 160, 24); _txtSpace = new Text(150, 9, 8, 34); _txtFunds = new Text(150, 9, 160, 34); _txtItem = new Text(80, 9, 10, 52); _txtEngineers = new Text(56, 18, 112, 44); _txtProduced = new Text(56, 18, 168, 44); _txtCost = new Text(44, 27, 222, 44); _txtTimeLeft = new Text(60, 27, 260, 44); _lstManufacture = new TextList(288, 90, 8, 80); // Set palette setPalette("PAL_BASESCAPE", 6); add(_window); add(_btnNew); add(_btnOk); add(_txtTitle); add(_txtAvailable); add(_txtAllocated); add(_txtSpace); add(_txtFunds); add(_txtItem); add(_txtEngineers); add(_txtProduced); add(_txtCost); add(_txtTimeLeft); add(_lstManufacture); centerAllSurfaces(); // Set up objects _window->setColor(Palette::blockOffset(15)+6); _window->setBackground(_game->getResourcePack()->getSurface("BACK17.SCR")); _btnNew->setColor(Palette::blockOffset(13)+10); _btnNew->setText(tr("STR_NEW_PRODUCTION")); _btnNew->onMouseClick((ActionHandler)&ManufactureState::btnNewProductionClick); _btnOk->setColor(Palette::blockOffset(13)+10); _btnOk->setText(tr("STR_OK")); _btnOk->onMouseClick((ActionHandler)&ManufactureState::btnOkClick); _btnOk->onKeyboardPress((ActionHandler)&ManufactureState::btnOkClick, Options::keyCancel); _txtTitle->setColor(Palette::blockOffset(15)+6); _txtTitle->setBig(); _txtTitle->setAlign(ALIGN_CENTER); _txtTitle->setText(tr("STR_CURRENT_PRODUCTION")); _txtAvailable->setColor(Palette::blockOffset(15)+6); _txtAvailable->setSecondaryColor(Palette::blockOffset(13)); _txtAllocated->setColor(Palette::blockOffset(15)+6); _txtAllocated->setSecondaryColor(Palette::blockOffset(13)); _txtSpace->setColor(Palette::blockOffset(15)+6); _txtSpace->setSecondaryColor(Palette::blockOffset(13)); _txtFunds->setColor(Palette::blockOffset(15)+6); _txtFunds->setSecondaryColor(Palette::blockOffset(13)); _txtFunds->setText(tr("STR_CURRENT_FUNDS").arg(Text::formatFunding(_game->getSavedGame()->getFunds()))); _txtItem->setColor(Palette::blockOffset(15)+1); _txtItem->setText(tr("STR_ITEM")); _txtEngineers->setColor(Palette::blockOffset(15)+1); _txtEngineers->setText(tr("STR_ENGINEERS__ALLOCATED")); _txtEngineers->setWordWrap(true); _txtProduced->setColor(Palette::blockOffset(15)+1); _txtProduced->setText(tr("STR_UNITS_PRODUCED")); _txtProduced->setWordWrap(true); _txtCost->setColor(Palette::blockOffset(15)+1); _txtCost->setText(tr("STR_COST__PER__UNIT")); _txtCost->setWordWrap(true); _txtTimeLeft->setColor(Palette::blockOffset(15)+1); _txtTimeLeft->setText(tr("STR_DAYS_HOURS_LEFT")); _txtTimeLeft->setWordWrap(true); _lstManufacture->setColor(Palette::blockOffset(13)+10); _lstManufacture->setArrowColor(Palette::blockOffset(15)+9); _lstManufacture->setColumns(5, 115, 15, 52, 56, 48); _lstManufacture->setAlign(ALIGN_RIGHT); _lstManufacture->setAlign(ALIGN_LEFT, 0); _lstManufacture->setSelectable(true); _lstManufacture->setBackground(_window); _lstManufacture->setMargin(2); _lstManufacture->setWordWrap(true); _lstManufacture->onMouseClick((ActionHandler)&ManufactureState::lstManufactureClick); fillProductionList(); }