Skip to content

Commit 2c0a48a

Browse files
committed
manufacturing stuff
1 parent 5ccce87 commit 2c0a48a

5 files changed

Lines changed: 127 additions & 135 deletions

File tree

bin/data/Ruleset/Xcom1Ruleset.rul

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10228,6 +10228,61 @@ interfaces:
1022810228
color: 246 # purple
1022910229
- id: text
1023010230
color: 218 # blue
10231+
- type: manufactureMenu
10232+
elements:
10233+
- id: palette
10234+
color: 6 # oxide
10235+
- id: window
10236+
color: 246 # purple
10237+
- id: text1
10238+
color: 246 # purple
10239+
color2: 208 # white
10240+
- id: text2
10241+
color: 241 # pink
10242+
- id: list
10243+
color: 218 # blue
10244+
border: 246 # purple
10245+
- id: button
10246+
color: 218 # blue
10247+
- type: selectNewManufacture
10248+
elements:
10249+
- id: window
10250+
color: 241 # pink
10251+
- id: text
10252+
color: 241 # pink
10253+
- id: list
10254+
color: 208 # white
10255+
border: 241 # pink
10256+
- id: button
10257+
color: 218 # blue
10258+
- id: catBox
10259+
color: 241 # pink
10260+
- type: allocateManufacture
10261+
elements:
10262+
- id: window
10263+
color: 218 # blue
10264+
- id: text
10265+
color: 218 # blue
10266+
color2: 208 # white
10267+
- id: list
10268+
color: 218 # blue
10269+
color2: 208 # white
10270+
- id: button
10271+
color: 218 # blue
10272+
- type: manufactureInfo
10273+
elements:
10274+
- id: window
10275+
color: 241 # pink
10276+
- id: text
10277+
color: 241 # pink
10278+
color2: 208 # white
10279+
- id: list
10280+
color: 218 # blue
10281+
color2: 208 # white
10282+
- id: button1
10283+
color: 241 # pink
10284+
- id: button2
10285+
color: 246 # purple
1023110286
- type: basescape
1023210287
elements:
1023310288
- id: button

src/Basescape/ManufactureInfoState.cpp

Lines changed: 26 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -95,102 +95,83 @@ void ManufactureInfoState::buildUi()
9595
_surfaceUnits->onMouseClick((ActionHandler)&ManufactureInfoState::handleWheelUnit, 0);
9696

9797
// Set palette
98-
setPalette("PAL_BASESCAPE", 6);
98+
setPalette("PAL_BASESCAPE", _game->getRuleset()->getInterface("manufactureMenu")->getElement("palette")->color);
9999

100100
add(_surfaceEngineers);
101101
add(_surfaceUnits);
102-
add(_window);
103-
add(_txtTitle);
104-
add(_txtAvailableEngineer);
105-
add(_txtAvailableSpace);
106-
add(_txtAllocatedEngineer);
107-
add(_txtAllocated);
108-
add(_txtUnitToProduce);
109-
add(_txtTodo);
110-
add(_txtEngineerUp);
111-
add(_txtEngineerDown);
112-
add(_btnEngineerUp);
113-
add(_btnEngineerDown);
114-
add(_txtUnitUp);
115-
add(_txtUnitDown);
116-
add(_btnUnitUp);
117-
add(_btnUnitDown);
118-
add(_btnOk);
119-
add(_btnStop);
120-
add(_btnSell);
102+
add(_window, "window", "manufactureInfo");
103+
add(_txtTitle, "text", "manufactureInfo");
104+
add(_txtAvailableEngineer, "text", "manufactureInfo");
105+
add(_txtAvailableSpace, "text", "manufactureInfo");
106+
add(_txtAllocatedEngineer, "text", "manufactureInfo");
107+
add(_txtAllocated, "text", "manufactureInfo");
108+
add(_txtUnitToProduce, "text", "manufactureInfo");
109+
add(_txtTodo, "text", "manufactureInfo");
110+
add(_txtEngineerUp, "text", "manufactureInfo");
111+
add(_txtEngineerDown, "text", "manufactureInfo");
112+
add(_btnEngineerUp, "button1", "manufactureInfo");
113+
add(_btnEngineerDown, "button1", "manufactureInfo");
114+
add(_txtUnitUp, "text", "manufactureInfo");
115+
add(_txtUnitDown, "text", "manufactureInfo");
116+
add(_btnUnitUp, "button1", "manufactureInfo");
117+
add(_btnUnitDown, "button1", "manufactureInfo");
118+
add(_btnOk, "button2", "manufactureInfo");
119+
add(_btnStop, "button2", "manufactureInfo");
120+
add(_btnSell, "button1", "manufactureInfo");
121121

122122
centerAllSurfaces();
123123

124-
_window->setColor(Palette::blockOffset(15)+1);
125124
_window->setBackground(_game->getResourcePack()->getSurface("BACK17.SCR"));
126-
_txtTitle->setColor(Palette::blockOffset(15)+1);
125+
127126
_txtTitle->setText(tr(_item ? _item->getName() : _production->getRules()->getName()));
128127
_txtTitle->setBig();
129128
_txtTitle->setAlign(ALIGN_CENTER);
130129

131-
_txtAvailableEngineer->setColor(Palette::blockOffset(15)+1);
132-
_txtAvailableEngineer->setSecondaryColor(Palette::blockOffset(13));
133-
_txtAvailableSpace->setColor(Palette::blockOffset(15)+1);
134-
_txtAvailableSpace->setSecondaryColor(Palette::blockOffset(13));
135-
136-
_txtAllocatedEngineer->setColor(Palette::blockOffset(15)+1);
137130
_txtAllocatedEngineer->setText(tr("STR_ENGINEERS__ALLOCATED"));
138131
_txtAllocatedEngineer->setBig();
139132
_txtAllocatedEngineer->setWordWrap(true);
140133
_txtAllocatedEngineer->setVerticalAlign(ALIGN_MIDDLE);
141134

142-
_txtAllocated->setColor(Palette::blockOffset(15)+1);
143-
_txtAllocated->setSecondaryColor(Palette::blockOffset(13));
144135
_txtAllocated->setBig();
145-
_txtTodo->setColor(Palette::blockOffset(15)+1);
146-
_txtTodo->setSecondaryColor(Palette::blockOffset(13));
136+
147137
_txtTodo->setBig();
148138

149-
_txtUnitToProduce->setColor(Palette::blockOffset(15)+1);
150139
_txtUnitToProduce->setText(tr("STR_UNITS_TO_PRODUCE"));
151140
_txtUnitToProduce->setBig();
152141
_txtUnitToProduce->setWordWrap(true);
153142
_txtUnitToProduce->setVerticalAlign(ALIGN_MIDDLE);
154143

155-
_txtEngineerUp->setColor(Palette::blockOffset(15)+1);
156144
_txtEngineerUp->setText(tr("STR_INCREASE_UC"));
157-
_txtEngineerDown->setColor(Palette::blockOffset(15)+1);
145+
158146
_txtEngineerDown->setText(tr("STR_DECREASE_UC"));
159-
_btnEngineerUp->setColor(Palette::blockOffset(15)+1);
147+
160148
_btnEngineerUp->onMousePress((ActionHandler)&ManufactureInfoState::moreEngineerPress);
161149
_btnEngineerUp->onMouseRelease((ActionHandler)&ManufactureInfoState::moreEngineerRelease);
162150
_btnEngineerUp->onMouseClick((ActionHandler)&ManufactureInfoState::moreEngineerClick, 0);
163151

164-
_btnEngineerDown->setColor(Palette::blockOffset(15)+1);
165152
_btnEngineerDown->onMousePress((ActionHandler)&ManufactureInfoState::lessEngineerPress);
166153
_btnEngineerDown->onMouseRelease((ActionHandler)&ManufactureInfoState::lessEngineerRelease);
167154
_btnEngineerDown->onMouseClick((ActionHandler)&ManufactureInfoState::lessEngineerClick, 0);
168155

169-
_btnUnitUp->setColor(Palette::blockOffset(15)+1);
170156
_btnUnitUp->onMousePress((ActionHandler)&ManufactureInfoState::moreUnitPress);
171157
_btnUnitUp->onMouseRelease((ActionHandler)&ManufactureInfoState::moreUnitRelease);
172158
_btnUnitUp->onMouseClick((ActionHandler)&ManufactureInfoState::moreUnitClick, 0);
173159

174-
_btnUnitDown->setColor(Palette::blockOffset(15)+1);
175160
_btnUnitDown->onMousePress((ActionHandler)&ManufactureInfoState::lessUnitPress);
176161
_btnUnitDown->onMouseRelease((ActionHandler)&ManufactureInfoState::lessUnitRelease);
177162
_btnUnitDown->onMouseClick((ActionHandler)&ManufactureInfoState::lessUnitClick, 0);
178163

179-
_txtUnitUp->setColor(Palette::blockOffset(15)+1);
180164
_txtUnitUp->setText(tr("STR_INCREASE_UC"));
181-
_txtUnitDown->setColor(Palette::blockOffset(15)+1);
165+
182166
_txtUnitDown->setText(tr("STR_DECREASE_UC"));
183167

184-
_btnSell->setColor(Palette::blockOffset(15)+1);
185168
_btnSell->setText(tr("STR_SELL_PRODUCTION"));
186169

187-
_btnOk->setColor(Palette::blockOffset(15)+6);
188170
_btnOk->setText(tr("STR_OK"));
189171
_btnOk->onMouseClick((ActionHandler)&ManufactureInfoState::btnOkClick);
190172
_btnOk->onKeyboardPress((ActionHandler)&ManufactureInfoState::btnOkClick, Options::keyOk);
191173
_btnOk->onKeyboardPress((ActionHandler)&ManufactureInfoState::btnOkClick, Options::keyCancel);
192174

193-
_btnStop->setColor(Palette::blockOffset(15)+6);
194175
_btnStop->setText(tr("STR_STOP_PRODUCTION"));
195176
_btnStop->onMouseClick((ActionHandler)&ManufactureInfoState::btnStopClick);
196177
if (!_production)
@@ -373,7 +354,7 @@ void ManufactureInfoState::moreUnit(int change)
373354
if (_production->getRules()->getCategory() == "STR_CRAFT" && _base->getAvailableHangars() - _base->getUsedHangars() <= 0)
374355
{
375356
_timerMoreUnit->stop();
376-
_game->pushState(new ErrorMessageState(tr("STR_NO_FREE_HANGARS_FOR_CRAFT_PRODUCTION"), _palette, Palette::blockOffset(15)+1, "BACK17.SCR", 6));
357+
_game->pushState(new ErrorMessageState(tr("STR_NO_FREE_HANGARS_FOR_CRAFT_PRODUCTION"), _palette, _game->getRuleset()->getInterface("basescape")->getElement("errorMessage")->color, "BACK17.SCR", _game->getRuleset()->getInterface("basescape")->getElement("errorPalette")->color));
377358
}
378359
else
379360
{

src/Basescape/ManufactureStartState.cpp

Lines changed: 19 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -62,45 +62,37 @@ ManufactureStartState::ManufactureStartState(Base * base, RuleManufacture * item
6262
_btnStart = new TextButton(136, 16, 168, 155);
6363

6464
// Set palette
65-
setPalette("PAL_BASESCAPE", 6);
65+
setPalette("PAL_BASESCAPE", _game->getRuleset()->getInterface("manufactureMenu")->getElement("palette")->color);
6666

67-
add(_window);
68-
add(_txtTitle);
69-
add(_txtManHour);
70-
add(_txtCost);
71-
add(_txtWorkSpace);
72-
add(_btnCancel);
67+
add(_window, "window", "allocateManufacture");
68+
add(_txtTitle, "text", "allocateManufacture");
69+
add(_txtManHour, "text", "allocateManufacture");
70+
add(_txtCost, "text", "allocateManufacture");
71+
add(_txtWorkSpace, "text", "allocateManufacture");
72+
add(_btnCancel, "button", "allocateManufacture");
7373

74-
add(_txtRequiredItemsTitle);
75-
add(_txtItemNameColumn);
76-
add(_txtUnitRequiredColumn);
77-
add(_txtUnitAvailableColumn);
78-
add(_lstRequiredItems);
74+
add(_txtRequiredItemsTitle, "text", "allocateManufacture");
75+
add(_txtItemNameColumn, "text", "allocateManufacture");
76+
add(_txtUnitRequiredColumn, "text", "allocateManufacture");
77+
add(_txtUnitAvailableColumn, "text", "allocateManufacture");
78+
add(_lstRequiredItems, "list", "allocateManufacture");
7979

80-
add(_btnStart);
80+
add(_btnStart, "button", "allocateManufacture");
8181

8282
centerAllSurfaces();
8383

84-
_window->setColor(Palette::blockOffset(13)+10);
8584
_window->setBackground(_game->getResourcePack()->getSurface("BACK17.SCR"));
8685

87-
_txtTitle->setColor(Palette::blockOffset(13)+10);
8886
_txtTitle->setText(tr(_item->getName()));
8987
_txtTitle->setBig();
9088
_txtTitle->setAlign(ALIGN_CENTER);
9189

92-
_txtManHour->setColor(Palette::blockOffset(13)+10);
9390
_txtManHour->setText(tr("STR_ENGINEER_HOURS_TO_PRODUCE_ONE_UNIT").arg(_item->getManufactureTime()));
9491

95-
_txtCost->setColor(Palette::blockOffset(13)+10);
96-
_txtCost->setSecondaryColor(Palette::blockOffset(13));
9792
_txtCost->setText(tr("STR_COST_PER_UNIT_").arg(Text::formatFunding(_item->getManufactureCost())));
9893

99-
_txtWorkSpace->setColor(Palette::blockOffset(13)+10);
100-
_txtWorkSpace->setSecondaryColor(Palette::blockOffset(13));
10194
_txtWorkSpace->setText(tr("STR_WORK_SPACE_REQUIRED").arg(_item->getRequiredSpace()));
10295

103-
_btnCancel->setColor(Palette::blockOffset(13)+10);
10496
_btnCancel->setText(tr("STR_CANCEL_UC"));
10597
_btnCancel->onMouseClick((ActionHandler)&ManufactureStartState::btnCancelClick);
10698
_btnCancel->onKeyboardPress((ActionHandler)&ManufactureStartState::btnCancelClick, Options::keyCancel);
@@ -110,36 +102,32 @@ ManufactureStartState::ManufactureStartState(Base * base, RuleManufacture * item
110102
bool productionPossible = _game->getSavedGame()->getFunds() > _item->getManufactureCost();
111103
productionPossible &= (availableWorkSpace > 0);
112104

113-
_txtRequiredItemsTitle->setColor(Palette::blockOffset(13)+10);
114105
_txtRequiredItemsTitle->setText(tr("STR_SPECIAL_MATERIALS_REQUIRED"));
115106
_txtRequiredItemsTitle->setAlign(ALIGN_CENTER);
116-
_txtItemNameColumn->setColor(Palette::blockOffset(13)+10);
107+
117108
_txtItemNameColumn->setText(tr("STR_ITEM_REQUIRED"));
118109
_txtItemNameColumn->setWordWrap(true);
119-
_txtUnitRequiredColumn->setColor(Palette::blockOffset(13)+10);
110+
120111
_txtUnitRequiredColumn->setText(tr("STR_UNITS_REQUIRED"));
121112
_txtUnitRequiredColumn->setWordWrap(true);
122-
_txtUnitAvailableColumn->setColor(Palette::blockOffset(13)+10);
113+
123114
_txtUnitAvailableColumn->setText(tr("STR_UNITS_AVAILABLE"));
124115
_txtUnitAvailableColumn->setWordWrap(true);
125116

126117
_lstRequiredItems->setColumns(3, 140, 75, 55);
127118
_lstRequiredItems->setBackground(_window);
128-
_lstRequiredItems->setColor(Palette::blockOffset(13));
129-
_lstRequiredItems->setArrowColor(Palette::blockOffset(15)+1);
130-
119+
131120
ItemContainer * itemContainer (base->getItems());
132121
int row = 0;
133122
for (std::map<std::string, int>::const_iterator iter = requiredItems.begin();
134123
iter != requiredItems.end();
135124
++iter)
136125
{
137126
std::wostringstream s1, s2;
138-
s1 << iter->second;
139-
s2 << itemContainer->getItem(iter->first);
127+
s1 << L'\x01' << iter->second;
128+
s2 << L'\x01' << itemContainer->getItem(iter->first);
140129
productionPossible &= (itemContainer->getItem(iter->first) >= iter->second);
141130
_lstRequiredItems->addRow(3, tr(iter->first).c_str(), s1.str().c_str(), s2.str().c_str());
142-
_lstRequiredItems->setCellColor(row, 0, Palette::blockOffset(13)+10);
143131
row++;
144132
}
145133
_txtRequiredItemsTitle->setVisible(!requiredItems.empty());
@@ -148,7 +136,6 @@ ManufactureStartState::ManufactureStartState(Base * base, RuleManufacture * item
148136
_txtUnitAvailableColumn->setVisible(!requiredItems.empty());
149137
_lstRequiredItems->setVisible(!requiredItems.empty());
150138

151-
_btnStart->setColor(Palette::blockOffset(13)+10);
152139
_btnStart->setText(tr("STR_START_PRODUCTION"));
153140
_btnStart->onMouseClick((ActionHandler)&ManufactureStartState::btnStartClick);
154141
_btnStart->onKeyboardPress((ActionHandler)&ManufactureStartState::btnStartClick, Options::keyOk);

0 commit comments

Comments
 (0)