[Scummvm-cvs-logs] scummvm master -> ecb1979245fb6695a68286a59f5eaf2c3677b579

bluegr bluegr at gmail.com
Mon Dec 8 00:26:29 CET 2014


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
ecb1979245 ZVISION: Implement more advanced engine features


Commit: ecb1979245fb6695a68286a59f5eaf2c3677b579
    https://github.com/scummvm/scummvm/commit/ecb1979245fb6695a68286a59f5eaf2c3677b579
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2014-12-08T01:25:27+02:00

Commit Message:
ZVISION: Implement more advanced engine features

Save game thumbnails and save game creation date have now been
implemented

Changed paths:
    engines/zvision/detection.cpp
    engines/zvision/scripting/controls/save_control.cpp



diff --git a/engines/zvision/detection.cpp b/engines/zvision/detection.cpp
index a60ef60..ebf5bdc 100644
--- a/engines/zvision/detection.cpp
+++ b/engines/zvision/detection.cpp
@@ -183,10 +183,10 @@ bool ZVisionMetaEngine::hasFeature(MetaEngineFeature f) const {
 	return
 	(f == kSupportsListSaves) ||
 	(f == kSupportsLoadingDuringStartup) ||
-	(f == kSupportsDeleteSave);
-	//(f == kSavesSupportMetaInfo) ||
-	//(f == kSavesSupportThumbnail) ||
-	//(f == kSavesSupportCreationDate) ||
+	(f == kSupportsDeleteSave) ||
+	(f == kSavesSupportMetaInfo) ||
+	(f == kSavesSupportThumbnail) ||
+	(f == kSavesSupportCreationDate);
 	//(f == kSavesSupportPlayTime);
 }
 
@@ -293,41 +293,41 @@ void ZVisionMetaEngine::removeSaveState(const char *target, int slot) const {
 }
 
 SaveStateDescriptor ZVisionMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
-	/*
-	Common::String filename = ZVision::ZVision::getSavegameFilename(target, slot);
+	Common::String filename = Common::String::format("%s.%03u", target, slot);
 	Common::InSaveFile *in = g_system->getSavefileManager()->openForLoading(filename.c_str());
 
 	if (in) {
-	    ZVision::ZVision::SaveHeader header;
-	    ZVision::ZVision::kReadSaveHeaderError error;
+	    ZVision::SaveGameHeader header;
 
-	    error = ZVision::ZVision::readSaveHeader(in, true, header);
+		// We only use readSaveGameHeader() here, which doesn't need an engine callback
+		ZVision::SaveManager *zvisionSaveMan = new ZVision::SaveManager(NULL);
+		bool successfulRead = zvisionSaveMan->readSaveGameHeader(in, header);
+		delete zvisionSaveMan;
 	    delete in;
 
-	    if (error == ZVision::ZVision::kRSHENoError) {
-	        SaveStateDescriptor desc(slot, header.description);
+	    if (successfulRead) {
+	        SaveStateDescriptor desc(slot, header.saveName);
 
 	        desc.setThumbnail(header.thumbnail);
 
 	        if (header.version > 0) {
-	            int day = (header.saveDate >> 24) & 0xFF;
-	            int month = (header.saveDate >> 16) & 0xFF;
-	            int year = header.saveDate & 0xFFFF;
+	            int day = header.saveDay;
+	            int month = header.saveMonth;
+	            int year = header.saveYear;
 
 	            desc.setSaveDate(year, month, day);
 
-	            int hour = (header.saveTime >> 16) & 0xFF;
-	            int minutes = (header.saveTime >> 8) & 0xFF;
+	            int hour = header.saveHour;
+	            int minutes = header.saveMinutes;
 
 	            desc.setSaveTime(hour, minutes);
 
-	            desc.setPlayTime(header.playTime * 1000);
+	            //desc.setPlayTime(header.playTime * 1000);
 	        }
 
 	        return desc;
 	    }
 	}
-	*/
 
 	return SaveStateDescriptor();
 }
diff --git a/engines/zvision/scripting/controls/save_control.cpp b/engines/zvision/scripting/controls/save_control.cpp
index ad01257..d773b5f 100644
--- a/engines/zvision/scripting/controls/save_control.cpp
+++ b/engines/zvision/scripting/controls/save_control.cpp
@@ -101,6 +101,8 @@ bool SaveControl::process(uint32 deltaTimeInMillis) {
 								toSave = false;
 
 						if (toSave) {
+							// FIXME: At this point, the screen shows the save control, so the save game thumbnails will always
+							// show the save control
 							_engine->getSaveManager()->saveGameBuffered(iter->saveId, inp->getText());
 							_engine->delayedMessage(_engine->getStringManager()->getTextLine(StringManager::ZVISION_STR_SAVED), 2000);
 							_engine->getScriptManager()->changeLocation(_engine->getScriptManager()->getLastMenuLocation());






More information about the Scummvm-git-logs mailing list