Skip to content

Commit 1376bf5

Browse files
committed
string processing for research
- reads in the string template on all the research screens instead of the research name if one is available
1 parent cb9c04e commit 1376bf5

3 files changed

Lines changed: 39 additions & 3 deletions

File tree

‎src/Basescape/NewResearchListState.cpp‎

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,19 @@ void NewResearchListState::fillProjectList ()
120120
_game->getSavedGame()->getAvailableResearchProjects(_projects, _game->getRuleset() , _base);
121121
for (std::vector<RuleResearch *>::iterator it = _projects.begin (); it != _projects.end (); ++it)
122122
{
123-
_lstResearch->addRow(1, _game->getLanguage()->getString((*it)->getName ()).c_str());
123+
if((*it)->getStringTemplate().size() == 0)
124+
{
125+
_lstResearch->addRow(1, _game->getLanguage()->getString((*it)->getName ()).c_str());
126+
}
127+
else
128+
{
129+
std::wstring ss;
130+
for(int st = 0; st != (*it)->getStringTemplate().size(); ++st)
131+
{
132+
ss += _game->getLanguage()->getString((*it)->getStringTemplate().at(st));
133+
}
134+
_lstResearch->addRow(1, ss.c_str());
135+
}
124136
}
125137
}
126138
}

‎src/Basescape/ResearchInfoState.cpp‎

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,19 @@ void ResearchInfoState::buildUi ()
109109
_window->setBackground(_game->getResourcePack()->getSurface("BACK05.SCR"));
110110
_txtTitle->setColor(Palette::blockOffset(13)+5);
111111
_txtTitle->setBig();
112-
_txtTitle->setText(_rule ? _game->getLanguage()->getString(_rule->getName()) : _game->getLanguage()->getString(_project->getRules ()->getName()));
112+
if(_project->getRules()->getStringTemplate().size() == 0 && _rule->getStringTemplate().size() == 0)
113+
{
114+
_txtTitle->setText(_rule ? _game->getLanguage()->getString(_rule->getName()) : _game->getLanguage()->getString(_project->getRules ()->getName()));
115+
}
116+
else
117+
{
118+
std::wstring ss;
119+
for(int st = 0; st != _project->getRules()->getStringTemplate().size(); ++st)
120+
{
121+
ss += _game->getLanguage()->getString(_project->getRules()->getStringTemplate().at(st));
122+
}
123+
_txtTitle->setText(ss.c_str());
124+
}
113125
_txtAvailableScientist->setColor(Palette::blockOffset(13)+5);
114126
_txtAvailableScientist->setSecondaryColor(Palette::blockOffset(13));
115127

‎src/Basescape/ResearchState.cpp‎

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,19 @@ void ResearchState::fillProjectList()
174174
sstr << (*iter)->getAssigned ();
175175
const RuleResearch *r = (*iter)->getRules();
176176
std::wstring wstr = _game->getLanguage()->getString(r->getName ());
177-
_lstResearch->addRow(3, wstr.c_str(), sstr.str().c_str(), _game->getLanguage()->getString((*iter)->getResearchProgress()).c_str());
177+
if((*iter)->getRules()->getStringTemplate().size() == 0)
178+
{
179+
_lstResearch->addRow(3, wstr.c_str(), sstr.str().c_str(), _game->getLanguage()->getString((*iter)->getResearchProgress()).c_str());
180+
}
181+
else
182+
{
183+
std::wstring ss;
184+
for(int st = 0; st != (*iter)->getRules()->getStringTemplate().size(); ++st)
185+
{
186+
ss += _game->getLanguage()->getString((*iter)->getRules()->getStringTemplate().at(st));
187+
}
188+
_lstResearch->addRow(3, ss.c_str(), sstr.str().c_str(), _game->getLanguage()->getString((*iter)->getResearchProgress()).c_str());
189+
}
178190
}
179191
std::wstringstream ss;
180192
ss << _game->getLanguage()->getString("STR_SCIENTISTS_AVAILABLE") << L'\x01' << _base->getAvailableScientists();

0 commit comments

Comments
 (0)