aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/detection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/detection.cpp')
-rw-r--r--engines/sci/detection.cpp34
1 files changed, 18 insertions, 16 deletions
diff --git a/engines/sci/detection.cpp b/engines/sci/detection.cpp
index a4d1edf2ed..a4914e57b4 100644
--- a/engines/sci/detection.cpp
+++ b/engines/sci/detection.cpp
@@ -29,6 +29,7 @@
#include "common/savefile.h"
#include "common/system.h"
#include "graphics/thumbnail.h"
+#include "graphics/surface.h"
#include "sci/sci.h"
#include "sci/engine/kernel.h"
@@ -118,7 +119,7 @@ static const PlainGameDescriptor s_sciGameTitles[] = {
{"lsl7", "Leisure Suit Larry 7: Love for Sail!"},
{"lighthouse", "Lighthouse: The Dark Being"},
{"phantasmagoria2", "Phantasmagoria II: A Puzzle of Flesh"},
- {"shivers2", "Shivers II: Harvest of Souls"},
+ //{"shivers2", "Shivers II: Harvest of Souls"}, // Not SCI
{"rama", "RAMA"},
{0, 0}
};
@@ -190,7 +191,7 @@ static const GameIdStrToEnum s_gameIdStrToEnum[] = {
{ "rama", GID_RAMA },
{ "sci-fanmade", GID_FANMADE }, // FIXME: Do we really need/want this?
{ "shivers", GID_SHIVERS },
- { "shivers2", GID_SHIVERS2 },
+ //{ "shivers2", GID_SHIVERS2 }, // Not SCI
{ "slater", GID_SLATER },
{ "sq1sci", GID_SQ1 },
{ "sq3", GID_SQ3 },
@@ -513,7 +514,7 @@ const ADGameDescription *SciMetaEngine::fallbackDetect(const Common::FSList &fsl
ResourceManager *resMan = new ResourceManager();
assert(resMan);
resMan->addAppropriateSources(fslist);
- resMan->init();
+ resMan->init(true);
// TODO: Add error handling.
#ifndef ENABLE_SCI32
@@ -624,7 +625,8 @@ bool SciMetaEngine::hasFeature(MetaEngineFeature f) const {
(f == kSupportsDeleteSave) ||
(f == kSavesSupportMetaInfo) ||
(f == kSavesSupportThumbnail) ||
- (f == kSavesSupportCreationDate);
+ (f == kSavesSupportCreationDate) ||
+ (f == kSavesSupportPlayTime);
}
bool SciEngine::hasFeature(EngineFeature f) const {
@@ -665,7 +667,7 @@ SaveStateList SciMetaEngine::listSaves(const char *target) const {
delete in;
continue;
}
- saveList.push_back(SaveStateDescriptor(slotNum, meta.savegame_name));
+ saveList.push_back(SaveStateDescriptor(slotNum, meta.name));
delete in;
}
}
@@ -675,7 +677,7 @@ SaveStateList SciMetaEngine::listSaves(const char *target) const {
}
SaveStateDescriptor SciMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
- Common::String fileName = Common::String::printf("%s.%03d", target, slot);
+ Common::String fileName = Common::String::format("%s.%03d", target, slot);
Common::InSaveFile *in = g_system->getSavefileManager()->openForLoading(fileName);
if (in) {
@@ -688,7 +690,7 @@ SaveStateDescriptor SciMetaEngine::querySaveMetaInfos(const char *target, int sl
return desc;
}
- SaveStateDescriptor desc(slot, meta.savegame_name);
+ SaveStateDescriptor desc(slot, meta.name);
Graphics::Surface *thumbnail = new Graphics::Surface();
assert(thumbnail);
@@ -702,18 +704,18 @@ SaveStateDescriptor SciMetaEngine::querySaveMetaInfos(const char *target, int sl
desc.setDeletableFlag(true);
desc.setWriteProtectedFlag(false);
- int day = (meta.savegame_date >> 24) & 0xFF;
- int month = (meta.savegame_date >> 16) & 0xFF;
- int year = meta.savegame_date & 0xFFFF;
+ int day = (meta.saveDate >> 24) & 0xFF;
+ int month = (meta.saveDate >> 16) & 0xFF;
+ int year = meta.saveDate & 0xFFFF;
desc.setSaveDate(year, month, day);
- int hour = (meta.savegame_time >> 16) & 0xFF;
- int minutes = (meta.savegame_time >> 8) & 0xFF;
+ int hour = (meta.saveTime >> 16) & 0xFF;
+ int minutes = (meta.saveTime >> 8) & 0xFF;
desc.setSaveTime(hour, minutes);
- // TODO: played time
+ desc.setPlayTime(meta.playTime * 1000);
delete in;
@@ -726,12 +728,12 @@ SaveStateDescriptor SciMetaEngine::querySaveMetaInfos(const char *target, int sl
int SciMetaEngine::getMaximumSaveSlot() const { return 99; }
void SciMetaEngine::removeSaveState(const char *target, int slot) const {
- Common::String fileName = Common::String::printf("%s.%03d", target, slot);
+ Common::String fileName = Common::String::format("%s.%03d", target, slot);
g_system->getSavefileManager()->removeSavefile(fileName);
}
Common::Error SciEngine::loadGameState(int slot) {
- Common::String fileName = Common::String::printf("%s.%03d", _targetName.c_str(), slot);
+ Common::String fileName = Common::String::format("%s.%03d", _targetName.c_str(), slot);
Common::SaveFileManager *saveFileMan = g_engine->getSaveFileManager();
Common::SeekableReadStream *in = saveFileMan->openForLoading(fileName);
@@ -750,7 +752,7 @@ Common::Error SciEngine::loadGameState(int slot) {
}
Common::Error SciEngine::saveGameState(int slot, const char *desc) {
- Common::String fileName = Common::String::printf("%s.%03d", _targetName.c_str(), slot);
+ Common::String fileName = Common::String::format("%s.%03d", _targetName.c_str(), slot);
Common::SaveFileManager *saveFileMan = g_engine->getSaveFileManager();
Common::OutSaveFile *out = saveFileMan->openForSaving(fileName);
const char *version = "";