Skip to content

Commit 22629a3

Browse files
committed
yeah
1 parent 8017fb3 commit 22629a3

6 files changed

Lines changed: 29 additions & 11 deletions

File tree

changelog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
- Small changes to default graph and label layout
88
- Made backup creating and reverting safer
99
- Added a counter showing the amount of hidden runs according to your settings
10+
- Made graph data appear lower down on mobile devices se it is seen
11+
- Fixed some people having the old Seconds session method
1012

1113
## v3.0.5
1214
- Fixed crash to do with unicode paths

mod.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
},
99
"id": "elohmrow.death_tracker",
1010
"name": "Death Tracker",
11-
"version": "v3.0.5",
11+
"version": "v3.0.6",
1212
"developer": "abb2k",
1313
"description": "Tracks your deaths at every percentage",
1414
"links": {

src/managers/StatsManager.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,16 @@ Result<BackupLevelData> StatsManager::getBackupData(const std::string& levelKey,
213213
if (!std::filesystem::exists(levelSaveFilePath))
214214
return Err("1 (no stats exist for backup!)");
215215

216+
if (std::filesystem::exists(levelSaveFilePath / StatsManager::METADATA_FILE_NAME)){
217+
auto levelStatsJsonRes = file::readJson(levelSaveFilePath / StatsManager::METADATA_FILE_NAME);
218+
if (levelStatsJsonRes.isErr()) return Err("Failed to get backup level stats!");
219+
auto levelStatsJson = levelStatsJsonRes.unwrap();
220+
221+
auto metaJsonObjRes = levelStatsJson.as<LevelMetadeta>();
222+
if (metaJsonObjRes.isErr()) return Err("Failed to get backup metadata!");
223+
data.meta = metaJsonObjRes.unwrap();
224+
}
225+
216226
if (std::filesystem::exists(levelSaveFilePath / StatsManager::FROM0_FILE_NAME)){
217227
auto levelStatsJsonRes = file::readJson(levelSaveFilePath / StatsManager::FROM0_FILE_NAME);
218228
if (levelStatsJsonRes.isErr()) return Err("Failed to get backup level stats!");
@@ -364,6 +374,9 @@ Result<> StatsManager::addBackup(const std::string& levelKey, bool saveLevelStat
364374
}
365375
}
366376

377+
std::filesystem::copy_file(getSavesFolderPath() / levelKey / StatsManager::METADATA_FILE_NAME, levelBackupsFilePath / StatsManager::METADATA_FILE_NAME, std::filesystem::copy_options::overwrite_existing, ec);
378+
if (ec) return Err("Failed to backup level metadata: {}", ec.message());
379+
367380
if (sessionsToSave == std::nullopt) return Ok();
368381

369382
if (sessionsToSave.value() >= -1){

src/nodes/layers/DTLayer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3108,7 +3108,7 @@ UpdateFuture DTLayer::onSectionKey(){
31083108
validSections.push_back(section);
31093109
}
31103110

3111-
if (validSections.size() <= 1) co_return Err("Not enough sections!");
3111+
if (validSections.size() <= 1) co_return Err(UpdateFutureError("Not enough sections!", false));
31123112

31133113
GEODE_CO_UNWRAP_INTO(auto deaths, co_await getTFor<Deaths>([](GeneralData const& data){
31143114
auto runs = data.runs;

src/nodes/optionNodes/SaveOptions.cpp

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -291,22 +291,25 @@ void SaveOptions::createChoiceAlert(const std::string& title, const std::string&
291291
}
292292

293293
void 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.\nAre 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
}
324327
void SaveOptions::onBackupDelete(BackupCell* cell){
325-
if (DTLayer::get()->m_MyLevelStats.isErr()) return;
326-
327328
createChoiceAlert("WARNING!", "Deleting this backup is irreversible.\nAre 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){
340341
void 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();

src/types/DTTypes.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,7 @@ struct LevelData {
426426
};
427427

428428
struct BackupLevelData {
429+
std::optional<LevelMetadeta> meta;
429430
std::optional<GeneralData> from0 = std::nullopt;
430431
std::optional<std::set<long long>> sessionNames = std::nullopt;
431432
long long backupDate;

0 commit comments

Comments
 (0)