mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-17 15:18:11 +00:00
076667dc00
Custom deleters of ScopedPtr are not currently fully conforming to C++11's support for custom deleters in std::unique_ptr for the sake of simplicity of implementation. Unlike in the standard library, plain functions and lvalue references are not supported, nor may custom deleters be passed to the constructor at runtime. This can be improved in the future, if necessary, by doing what standard library implementations usually do and creating a Pair class that uses the Empty Base Optimization idiom to avoid extra storage overhead of the deleter instance when it is not needed, as in typical standard library implementations, plus some additional type traits to support the necessary metaprogramming for the different type overloads.
61 lines
2.2 KiB
C++
61 lines
2.2 KiB
C++
/* ScummVM - Graphic Adventure Engine
|
|
*
|
|
* ScummVM is the legal property of its developers, whose names
|
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
* file distributed with this source distribution.
|
|
*
|
|
* This program 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 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program 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 this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
*/
|
|
|
|
#include "engines/savestate.h"
|
|
#include "graphics/surface.h"
|
|
#include "common/textconsole.h"
|
|
|
|
SaveStateDescriptor::SaveStateDescriptor()
|
|
// FIXME: default to 0 (first slot) or to -1 (invalid slot) ?
|
|
: _slot(-1), _description(), _isDeletable(true), _isWriteProtected(false),
|
|
_isLocked(false), _saveDate(), _saveTime(), _playTime(), _thumbnail() {
|
|
}
|
|
|
|
SaveStateDescriptor::SaveStateDescriptor(int s, const Common::String &d)
|
|
: _slot(s), _description(d), _isDeletable(true), _isWriteProtected(false),
|
|
_isLocked(false), _saveDate(), _saveTime(), _playTime(), _thumbnail() {
|
|
}
|
|
|
|
void SaveStateDescriptor::setThumbnail(Graphics::Surface *t) {
|
|
if (_thumbnail.get() == t)
|
|
return;
|
|
|
|
_thumbnail = Common::SharedPtr<Graphics::Surface>(t, Graphics::SurfaceDeleter());
|
|
}
|
|
|
|
void SaveStateDescriptor::setSaveDate(int year, int month, int day) {
|
|
_saveDate = Common::String::format("%.4d-%.2d-%.2d", year, month, day);
|
|
}
|
|
|
|
void SaveStateDescriptor::setSaveTime(int hour, int min) {
|
|
_saveTime = Common::String::format("%.2d:%.2d", hour, min);
|
|
}
|
|
|
|
void SaveStateDescriptor::setPlayTime(int hours, int minutes) {
|
|
_playTime = Common::String::format("%.2d:%.2d", hours, minutes);
|
|
}
|
|
|
|
void SaveStateDescriptor::setPlayTime(uint32 msecs) {
|
|
uint minutes = msecs / 60000;
|
|
setPlayTime(minutes / 60, minutes % 60);
|
|
}
|