aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2010-01-31 08:28:10 +0000
committerFilippos Karapetis2010-01-31 08:28:10 +0000
commitf59f03967bb5ec222c75f5d5ce12a864113d8b92 (patch)
tree0ce058ac0a8d93dc9b8d99a4ec2851d7a67c5050
parent20f8503c23e89a8db14a5cca9feef92bfc5079d2 (diff)
downloadscummvm-rg350-f59f03967bb5ec222c75f5d5ce12a864113d8b92.tar.gz
scummvm-rg350-f59f03967bb5ec222c75f5d5ce12a864113d8b92.tar.bz2
scummvm-rg350-f59f03967bb5ec222c75f5d5ce12a864113d8b92.zip
- Fixed saving from the GMM
- Grouped game IDs per SCI generation svn-id: r47742
-rw-r--r--engines/sci/detection.cpp97
1 files changed, 55 insertions, 42 deletions
diff --git a/engines/sci/detection.cpp b/engines/sci/detection.cpp
index cfa81ed6e1..3ffabba6fd 100644
--- a/engines/sci/detection.cpp
+++ b/engines/sci/detection.cpp
@@ -41,71 +41,79 @@ namespace Sci {
static const PlainGameDescriptor SciGameTitles[] = {
{"sci", "Sierra SCI Game"},
{"sci-fanmade", "Fanmade SCI Game"},
+ // === SCI0 games =========================================================
{"astrochicken", "Astro Chicken"},
{"christmas1988", "Christmas Card 1988"},
- {"christmas1990", "Christmas Card 1990: The Seasoned Professional"},
- {"christmas1992", "Christmas Card 1992"},
- {"castlebrain", "Castle of Dr. Brain"},
{"iceman", "Codename: Iceman"},
{"camelot", "Conquests of Camelot: King Arthur, Quest for the Grail"},
- {"longbow", "Conquests of the Longbow: The Adventures of Robin Hood"},
+ {"funseeker", "Fun Seeker's Guide"},
+ {"hoyle1", "Hoyle Official Book of Games: Volume 1"},
+ {"hoyle2", "Hoyle Official Book of Games: Volume 2"},
+ {"kq4sci", "King's Quest IV: The Perils of Rosella, SCI Remake"},
+ {"laurabow", "Laura Bow: The Colonel's Bequest"},
+ {"lsl2", "Leisure Suit Larry 2: Goes Looking for Love (in Several Wrong Places)"},
+ {"lsl3", "Leisure Suit Larry 3: Passionate Patti in Pursuit of the Pulsating Pectorals"},
+ {"pq2", "Police Quest II: The Vengeance"},
+ {"qfg1", "Quest for Glory I: So You Want to Be a Hero"}, // EGA is SCI0, VGA SCI1.1
+ {"sq3", "Space Quest III: The Pirates of Pestulon"},
+ // === SCI01 games ========================================================
+ {"qfg2", "Quest for Glory II: Trial by Fire"},
+ {"kq1sci", "King's Quest I: Quest for the Crown, SCI Remake"},
+ // === SCI1 games =========================================================
+ {"castlebrain", "Castle of Dr. Brain"},
+ {"christmas1990", "Christmas Card 1990: The Seasoned Professional"},
{"cnick-lsl", "Crazy Nick's Software Picks: Leisure Suit Larry's Casino"},
{"cnick-kq", "Crazy Nick's Software Picks: King Graham's Board Game Challenge"},
{"cnick-laurabow", "Crazy Nick's Software Picks: Parlor Games with Laura Bow"},
{"cnick-longbow", "Crazy Nick's Software Picks: Robin Hood's Game of Skill and Chance"},
{"cnick-sq", "Crazy Nick's Software Picks: Roger Wilco's Spaced Out Game Pack"},
- {"ecoquest", "EcoQuest: The Search for Cetus"},
- {"ecoquest2", "EcoQuest II: Lost Secret of the Rainforest"},
- {"freddypharkas", "Freddy Pharkas: Frontier Pharmacist"},
- {"funseeker", "Fun Seeker's Guide"},
- {"hoyle1", "Hoyle Official Book of Games: Volume 1"},
- {"hoyle2", "Hoyle Official Book of Games: Volume 2"},
+ {"ecoquest", "EcoQuest: The Search for Cetus"}, // floppy is SCI1, CD SCI1.1
+ {"fairytales", "Mixed-up Fairy Tales"},
{"hoyle3", "Hoyle Official Book of Games: Volume 3"},
- {"hoyle4", "Hoyle Classic Card Games"},
{"jones", "Jones in the Fast Lane"},
- {"kq1sci", "King's Quest I: Quest for the Crown, SCI Remake"},
- {"kq4sci", "King's Quest IV: The Perils of Rosella, SCI Remake"},
{"kq5", "King's Quest V: Absence Makes the Heart Go Yonder"},
- {"kq6", "King's Quest VI: Heir Today, Gone Tomorrow"},
- {"laurabow", "Laura Bow: The Colonel's Bequest"},
- {"laurabow2", "Laura Bow 2: The Dagger of Amon Ra"},
+ {"longbow", "Conquests of the Longbow: The Adventures of Robin Hood"},
{"lsl1sci", "Leisure Suit Larry in the Land of the Lounge Lizards"},
- {"lsl2", "Leisure Suit Larry 2: Goes Looking for Love (in Several Wrong Places)"},
- {"lsl3", "Leisure Suit Larry 3: Passionate Patti in Pursuit of the Pulsating Pectorals"},
{"lsl5", "Leisure Suit Larry 5: Passionate Patti Does a Little Undercover Work"},
- {"lsl6", "Leisure Suit Larry 6: Shape Up or Slip Out!"},
- {"fairytales", "Mixed-up Fairy Tales"},
- {"mothergoose", "Mixed-Up Mother Goose"},
{"msastrochicken", "Ms. Astro Chicken"},
- {"pepper", "Pepper's Adventure in Time"},
{"pq1sci", "Police Quest: In Pursuit of the Death Angel"},
- {"pq2", "Police Quest II: The Vengeance"},
{"pq3", "Police Quest III: The Kindred"},
- {"qfg1", "Quest for Glory I: So You Want to Be a Hero"},
- {"qfg2", "Quest for Glory II: Trial by Fire"},
- {"qfg3", "Quest for Glory III: Wages of War"},
- {"slater", "Slater & Charlie Go Camping"},
{"sq1sci", "Space Quest I: The Sarien Encounter"},
- {"sq3", "Space Quest III: The Pirates of Pestulon"},
- {"sq4", "Space Quest IV: Roger Wilco and the Time Rippers"},
+ {"sq4", "Space Quest IV: Roger Wilco and the Time Rippers"}, // floppy is SCI1, CD SCI1.1
+ // === SCI1.1 games =======================================================
+ {"christmas1992", "Christmas Card 1992"},
+ {"ecoquest2", "EcoQuest II: Lost Secret of the Rainforest"},
+ {"freddypharkas", "Freddy Pharkas: Frontier Pharmacist"},
+ {"hoyle4", "Hoyle Classic Card Games"},
+ {"kq6", "King's Quest VI: Heir Today, Gone Tomorrow"},
+ {"laurabow2", "Laura Bow 2: The Dagger of Amon Ra"},
+ {"qfg3", "Quest for Glory III: Wages of War"},
{"sq5", "Space Quest V: The Next Mutation"},
{"islandbrain", "The Island of Dr. Brain"},
- // SCI32 games
+ {"lsl6", "Leisure Suit Larry 6: Shape Up or Slip Out!"},
+ {"mothergoose", "Mixed-Up Mother Goose"}, // floppy is SCI1.1, CD SCI2.1
+ {"pepper", "Pepper's Adventure in Time"},
+ {"slater", "Slater & Charlie Go Camping"},
+ // === SCI2 games =========================================================
{"gk1", "Gabriel Knight: Sins of the Fathers"}, // demo is SCI11, full version SCI32
+ {"pq4", "Police Quest IV: Open Season"}, // floppy is SCI2, CD SCI2.1
+ {"qfg4", "Quest for Glory IV: Shadows of Darkness"}, // floppy is SCI2, CD SCI2.1
+ // === SCI2.1 games ========================================================
{"gk2", "The Beast Within: A Gabriel Knight Mystery"},
+ // TODO: Inside The Chest/Behind the Developer's Shield
{"kq7", "King's Quest VII: The Princeless Bride"},
- {"lsl7", "Leisure Suit Larry 7: Love for Sail!"},
- {"lighthouse", "Lighthouse: The Dark Being"},
+ // TODO: King's Questions
{"phantasmagoria", "Phantasmagoria"},
- {"phantasmagoria2", "Phantasmagoria II: A Puzzle of Flesh"},
- {"pq4", "Police Quest IV: Open Season"},
{"pqswat", "Police Quest: SWAT"},
- {"qfg4", "Quest for Glory IV: Shadows of Darkness"},
- {"rama", "RAMA"},
{"shivers", "Shivers"},
- {"shivers2", "Shivers II: Harvest of Souls"},
{"sq6", "Space Quest 6: The Spinal Frontier"},
{"torin", "Torin's Passage"},
+ // === SCI3 games =========================================================
+ {"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"},
+ {"rama", "RAMA"},
{0, 0}
};
@@ -494,8 +502,6 @@ Common::Error SciEngine::loadGameState(int slot) {
}
Common::Error SciEngine::saveGameState(int slot, const char *desc) {
- // TODO: Savegames created from the GMM are still problematic
-#if 0
Common::String fileName = Common::String::printf("%s.%03d", _targetName.c_str(), slot);
Common::SaveFileManager *saveFileMan = g_engine->getSaveFileManager();
Common::OutSaveFile *out = saveFileMan->openForSaving(fileName);
@@ -507,10 +513,17 @@ Common::Error SciEngine::saveGameState(int slot, const char *desc) {
if (gamestate_save(_gamestate, out, desc, version)) {
warning("Saving the game state to '%s' failed", fileName);
- return Common::kUnknownError;
+ return Common::kWritingFailed;
+ } else {
+ out->finalize();
+ if (out->err()) {
+ warning("Writing the savegame failed.");
+ return Common::kWritingFailed;
+ }
+ delete out;
}
-#endif
- return Common::kNoError; // TODO: return success/failure
+
+ return Common::kNoError;
}
bool SciEngine::canLoadGameStateCurrently() {