MCPcopy Create free account
hub / github.com/OpenXcom/OpenXcom / lstSoldiersClick

Method lstSoldiersClick

src/Geoscape/AllocatePsiTrainingState.cpp:169–194  ·  view source on GitHub ↗

* Assigns / removes a soldier from Psi Training. * @param action Pointer to an action. */

Source from the content-addressed store, hash-verified

167 * @param action Pointer to an action.
168 */
169void AllocatePsiTrainingState::lstSoldiersClick(Action *action)
170{
171 _sel = _lstSoldiers->getSelectedRow();
172 if (action->getDetails()->button.button == SDL_BUTTON_LEFT)
173 {
174 if (!_base->getSoldiers()->at(_sel)->isInPsiTraining())
175 {
176 if (_base->getUsedPsiLabs() < _base->getAvailablePsiLabs())
177 {
178 _lstSoldiers->setCellText(_sel, 3, tr("STR_YES").c_str());
179 _lstSoldiers->setRowColor(_sel, Palette::blockOffset(13)+5);
180 _labSpace--;
181 _txtRemaining->setText(tr("STR_REMAINING_PSI_LAB_CAPACITY").arg(_labSpace));
182 _base->getSoldiers()->at(_sel)->setPsiTraining();
183 }
184 }
185 else
186 {
187 _lstSoldiers->setCellText(_sel, 3, tr("STR_NO").c_str());
188 _lstSoldiers->setRowColor(_sel, Palette::blockOffset(15)+6);
189 _labSpace++;
190 _txtRemaining->setText(tr("STR_REMAINING_PSI_LAB_CAPACITY").arg(_labSpace));
191 _base->getSoldiers()->at(_sel)->setPsiTraining();
192 }
193 }
194}
195
196}

Callers

nothing calls this directly

Calls 11

getSelectedRowMethod · 0.80
getDetailsMethod · 0.80
isInPsiTrainingMethod · 0.80
getUsedPsiLabsMethod · 0.80
getAvailablePsiLabsMethod · 0.80
setCellTextMethod · 0.80
setRowColorMethod · 0.80
setPsiTrainingMethod · 0.80
argMethod · 0.60
getSoldiersMethod · 0.45
setTextMethod · 0.45

Tested by

no test coverage detected