ResidualVM logo ResidualVM website - Forums - Contact us BuildBot - Doxygen - Wiki curved edge

savestate.cpp

Go to the documentation of this file.
00001 /* ScummVM - Graphic Adventure Engine
00002  *
00003  * ScummVM is the legal property of its developers, whose names
00004  * are too numerous to list here. Please refer to the COPYRIGHT
00005  * file distributed with this source distribution.
00006  *
00007  * This program is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License
00009  * as published by the Free Software Foundation; either version 2
00010  * of the License, or (at your option) any later version.
00011  *
00012  * This program is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  * GNU General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License
00018  * along with this program; if not, write to the Free Software
00019  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00020  *
00021  */
00022 
00023 #include "engines/savestate.h"
00024 #include "graphics/surface.h"
00025 #include "common/textconsole.h"
00026 #include "common/translation.h"
00027 
00028 SaveStateDescriptor::SaveStateDescriptor()
00029     // FIXME: default to 0 (first slot) or to -1 (invalid slot) ?
00030     : _slot(-1), _description(), _isDeletable(true), _isWriteProtected(false),
00031       _isLocked(false), _saveDate(), _saveTime(), _playTime(), _playTimeMSecs(0),
00032     _thumbnail(), _saveType(kSaveTypeUndetermined) {
00033 }
00034 
00035 SaveStateDescriptor::SaveStateDescriptor(int s, const Common::String &d)
00036     : _slot(s), _description(d), _isDeletable(true), _isWriteProtected(false),
00037       _isLocked(false), _saveDate(), _saveTime(), _playTime(), _playTimeMSecs(0),
00038     _thumbnail(), _saveType(kSaveTypeUndetermined) {
00039 }
00040 
00041 void SaveStateDescriptor::setThumbnail(Graphics::Surface *t) {
00042     if (_thumbnail.get() == t)
00043         return;
00044 
00045     _thumbnail = Common::SharedPtr<Graphics::Surface>(t, Graphics::SurfaceDeleter());
00046 }
00047 
00048 void SaveStateDescriptor::setSaveDate(int year, int month, int day) {
00049     _saveDate = Common::String::format("%.4d-%.2d-%.2d", year, month, day);
00050 }
00051 
00052 void SaveStateDescriptor::setSaveTime(int hour, int min) {
00053     _saveTime = Common::String::format("%.2d:%.2d", hour, min);
00054 }
00055 
00056 void SaveStateDescriptor::setPlayTime(int hours, int minutes) {
00057     _playTimeMSecs = ((hours * 60 + minutes) * 60) * 1000;
00058     _playTime = Common::String::format("%.2d:%.2d", hours, minutes);
00059 }
00060 
00061 void SaveStateDescriptor::setPlayTime(uint32 msecs) {
00062     _playTimeMSecs = msecs;
00063     uint minutes = msecs / 60000;
00064     setPlayTime(minutes / 60, minutes % 60);
00065 }
00066 
00067 void SaveStateDescriptor::setAutosave(bool autosave) {
00068     _saveType = autosave ? kSaveTypeAutosave : kSaveTypeRegular;
00069 }
00070 
00071 bool SaveStateDescriptor::isAutosave() const {
00072     if (_saveType != kSaveTypeUndetermined) {
00073         return _saveType == kSaveTypeAutosave;
00074     } else {
00075         return _description == _("Autosave");
00076     }
00077 }


Generated on Sat Jul 11 2020 05:01:11 for ResidualVM by doxygen 1.7.1
curved edge   curved edge