@@ -291,22 +291,25 @@ void SaveOptions::createChoiceAlert(const std::string& title, const std::string&
291291}
292292
293293void SaveOptions::onBackupRevert (BackupCell* cell){
294- if (DTLayer::get ()->m_MyLevelStats .isErr ()) return ;
295-
296294 if (cell->getBackupData () == nullptr ) return ;
297295
298296 createChoiceAlert (" WARNING!" , " Reverting to this backup will overwrite your current death tracker save for this level.\n Are you sure you want to do this?" , " No" , " Yes" , [&, cell](bool btn2){
299297 if (btn2){
298+ Result<> metaRes = Ok ();
300299 Result<> generalRes = Ok ();
301300 Result<> sessionsRes = Ok ();
302301
302+ if (cell->getBackupData ()->meta .has_value ())
303+ metaRes = StatsManager::setMetadata (cell->getBackupData ()->meta .value (), cell->getLevelKey ());
303304 if (cell->getBackupData ()->from0 .has_value ())
304305 generalRes = StatsManager::setGeneral (cell->getBackupData ()->from0 .value (), cell->getLevelKey ());
305306 if (cell->getBackupData ()->sessionNames .has_value ()){
306307 sessionsRes = StatsManager::reveretBackupSessions (cell->getLevelKey (), cell->getBackupTime ());
307308 }
308309
309- if (generalRes.isErr () || sessionsRes.isErr ()){
310+ if (generalRes.isErr () || sessionsRes.isErr () || metaRes.isErr ()){
311+ if (metaRes.isErr ())
312+ log::error (" {}" , metaRes.unwrapErr ());
310313 if (generalRes.isErr ())
311314 log::error (" {}" , generalRes.unwrapErr ());
312315 if (sessionsRes.isErr ())
@@ -322,8 +325,6 @@ void SaveOptions::onBackupRevert(BackupCell* cell){
322325 });
323326}
324327void SaveOptions::onBackupDelete (BackupCell* cell){
325- if (DTLayer::get ()->m_MyLevelStats .isErr ()) return ;
326-
327328 createChoiceAlert (" WARNING!" , " Deleting this backup is irreversible.\n Are you sure you want to do this?" , " No" , " Yes" , [&, cell](bool btn2){
328329 if (btn2){
329330 auto deleteBackupRes = StatsManager::deleteBackup (cell->getLevelKey (), cell->getBackupTime ());
@@ -340,13 +341,13 @@ void SaveOptions::onBackupDelete(BackupCell* cell){
340341void SaveOptions::updateBackupsList (){
341342 backupsScrollLayer->m_contentLayer ->removeAllChildren ();
342343
343- if (DTLayer::get ()->m_MyLevelStats .isOk ()){
344- auto & stats = DTLayer::get ()->m_MyLevelStats .unwrap ();
344+ auto lvlKey = StatsManager::getLevelKey (DTLayer::get ()->m_Level );
345345
346- auto backupsList = StatsManager::getBackupsCount (stats.levelKey );
346+ if (lvlKey.isOk ()){
347+ auto backupsList = StatsManager::getBackupsCount (lvlKey.unwrap ());
347348 int z = 0 ;
348349 for (const auto & backupTime : backupsList){
349- auto cell = BackupCell::create (backupsScrollLayer->getContentWidth () - 5 , stats. levelKey , backupTime);
350+ auto cell = BackupCell::create (backupsScrollLayer->getContentWidth () - 5 , lvlKey. unwrap () , backupTime);
350351 cell->onRevertCallback = std::bind (&SaveOptions::onBackupRevert, this , std::placeholders::_1);
351352 cell->onDeleteCallback = std::bind (&SaveOptions::onBackupDelete, this , std::placeholders::_1);
352353 backupsScrollLayer->m_contentLayer ->addChild (cell);
@@ -358,6 +359,7 @@ void SaveOptions::updateBackupsList(){
358359 cell->setZOrder (z++);
359360 }
360361 }
362+
361363
362364 backupsScrollLayer->m_contentLayer ->updateLayout ();
363365 backupsScrollLayer->moveToTop ();
0 commit comments