@@ -116,7 +116,7 @@ SavedGameState::SavedGameState(Game *game, OptionsOrigin origin, int firstValidR
116116
117117 _txtDetails->setColor (Palette::blockOffset (15 )-1 );
118118 _txtDetails->setSecondaryColor (Palette::blockOffset (8 )+10 );
119- _txtDetails->setText (L" " );
119+ _txtDetails->setText (tr ( " STR_DETAILS " ). arg ( L" " ) );
120120}
121121
122122/* *
@@ -191,7 +191,7 @@ void SavedGameState::init()
191191void SavedGameState::updateList ()
192192{
193193 _lstSaves->clearList ();
194- _saves = SavedGame::getList (_lstSaves, _game->getLanguage ());
194+ _saves = SavedGame::getList (_lstSaves, _game->getLanguage (), &_details );
195195}
196196
197197/* *
@@ -217,38 +217,17 @@ void SavedGameState::btnCancelClick(Action *)
217217void SavedGameState::lstSavesMouseOver (Action *)
218218{
219219 int sel = _lstSaves->getSelectedRow () - _firstValidRow;
220- if (0 > sel)
220+ std::wstring wstr;
221+ if (sel >= 0 && sel < _saves.size ())
221222 {
222- _txtDetails->setText (L" " );
223- return ;
224- }
225- std::string fullname = Options::getUserFolder () + _saves[sel];
226- std::wstring wstr=L" " ;
227- try
228- {
229- YAML ::Node doc = YAML::LoadFile (fullname);
230- if (doc[" turn" ])
231- {
232- wstr = tr (" STR_BATTLESCAPE" ); wstr += L" : " ;
233- wstr += tr (doc[" mission" ].as <std::string>()); wstr += L" , " ;
234- wstr += tr (" STR_TURN" ).arg (Language::utf8ToWstr (doc[" turn" ].as <std::string>()));
235- }
236- else wstr = tr (" STR_GEOSCAPE" );
237- }
238- catch (Exception &e)
239- {
240- Log (LOG_ERROR ) << e.what ();
241- }
242- catch (YAML ::Exception &e)
243- {
244- Log (LOG_ERROR ) << e.what ();
223+ wstr = _details[sel];
245224 }
246225 _txtDetails->setText (tr (" STR_DETAILS" ).arg (wstr));
247226}
248227
249228void SavedGameState::lstSavesMouseOut (Action *)
250229{
251- _txtDetails->setText (L" " );
230+ _txtDetails->setText (tr ( " STR_DETAILS " ). arg ( L" " ) );
252231}
253232
254233}
0 commit comments