bool SaveGameEntry::load(const std::string& filename) { CharacterCoreReader reader; CharacterCoreData data; if (!reader.readCharacterCore(filename.c_str(), data)) { g_logger->logError("SaveGameEntry", "Could not load data from file: " + std::string(filename)); return false; } m_filename = filename; // format date saved char buff[20]; strftime(buff, 20, "%Y-%m-%d %H:%M:%S", localtime(&data.dateSaved)); m_dateSaved.setString(string(buff)); m_name.setString(data.saveGameName); // format time played int secondsPlayed = static_cast<int>(data.timePlayed.asSeconds()); int hoursPlayed = secondsPlayed / 3600; int minutesPlayed = (secondsPlayed / 60) % 60; secondsPlayed = (secondsPlayed % 60); string stringHours = hoursPlayed > 0 ? to_string(hoursPlayed) + " h - " : ""; string stringMinutes = minutesPlayed > 0 ? to_string(minutesPlayed) + " m - " : ""; string stringSeconds = to_string(secondsPlayed) + " s"; string formattedTime = stringHours + stringMinutes + stringSeconds; m_timePlayed.setString(formattedTime); return true; }
bool CharacterCore::load(const std::string& fileName) { CharacterCoreReader reader; if (!reader.readCharacterCore(fileName, m_data)) { return false; } // measuring the time played with this save. m_stopwatch.restart(); reloadAttributes(); loadQuests(); return true; }