/*
Copyright (C) 2012 Sebastian Herbord. All rights reserved.
This file is part of Mod Organizer.
Mod Organizer is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Mod Organizer is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Mod Organizer. If not, see .
*/
#include "savegame.h"
#include
#include
#include
#include
#include
#include
#include
#include "gameinfo.h"
SaveGame::SaveGame(QObject *parent)
: QObject(parent), m_FileName(), m_PCName(), m_PCLevel(0), m_PCLocation(), m_SaveNumber(0), m_Screenshot()
{
}
SaveGame::SaveGame(QObject *parent, const QString &filename)
: QObject(parent), m_FileName(filename), m_PCName(), m_PCLevel(0), m_PCLocation(), m_SaveNumber(0), m_Screenshot()
{
}
SaveGame::SaveGame(const SaveGame& reference)
: m_FileName(reference.m_FileName), m_PCName(reference.m_PCName), m_PCLevel(reference.m_PCLevel),
m_PCLocation(reference.m_PCLocation), m_SaveNumber(reference.m_SaveNumber),
m_Screenshot(reference.m_Screenshot)
{
}
SaveGame& SaveGame::operator=(const SaveGame &reference)
{
if (&reference != this) {
m_FileName = reference.m_FileName;
m_PCName = reference.m_PCName;
m_PCLevel = reference.m_PCLevel;
m_PCLocation = reference.m_PCLocation;
m_SaveNumber = reference.m_SaveNumber;
m_Screenshot = reference.m_Screenshot;
}
return *this;
}
SaveGame::~SaveGame()
{
}
QStringList SaveGame::attachedFiles() const
{
QStringList result;
foreach (const std::wstring &ext, MOShared::GameInfo::instance().getSavegameAttachmentExtensions()) {
QFileInfo fi(fileName());
fi.setFile(fi.canonicalPath() + "/" + fi.completeBaseName() + "." + MOBase::ToQString(ext));
if (fi.exists()) {
result.append(fi.filePath());
}
}
return result;
}
QStringList SaveGame::saveFiles() const
{
QStringList result = attachedFiles();
result.append(fileName());
return result;
}
void SaveGame::setCreationTime(const QString &fileName)
{
QFileInfo creationTime(fileName);
QDateTime modified = creationTime.lastModified();
memset(&m_CreationTime, 0, sizeof(SYSTEMTIME));
m_CreationTime.wDay = static_cast(modified.date().day());
m_CreationTime.wDayOfWeek = static_cast(modified.date().dayOfWeek());
m_CreationTime.wMonth = static_cast(modified.date().month());
m_CreationTime.wYear =static_cast( modified.date().year());
m_CreationTime.wHour = static_cast(modified.time().hour());
m_CreationTime.wMinute = static_cast(modified.time().minute());
m_CreationTime.wSecond = static_cast(modified.time().second());
m_CreationTime.wMilliseconds = static_cast(modified.time().msec());
}