aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/prince/detection.cpp3
-rw-r--r--engines/prince/prince.cpp13
2 files changed, 10 insertions, 6 deletions
diff --git a/engines/prince/detection.cpp b/engines/prince/detection.cpp
index dd553adc6e..3fe7993fdb 100644
--- a/engines/prince/detection.cpp
+++ b/engines/prince/detection.cpp
@@ -55,7 +55,8 @@ bool PrinceMetaEngine::hasFeature(MetaEngineFeature f) const {
(f == kSavesSupportMetaInfo) ||
(f == kSavesSupportThumbnail) ||
(f == kSavesSupportCreationDate) ||
- (f == kSupportsListSaves);
+ (f == kSupportsListSaves) ||
+ (f == kSupportsLoadingDuringStartup);
}
bool Prince::PrinceEngine::hasFeature(EngineFeature f) const {
diff --git a/engines/prince/prince.cpp b/engines/prince/prince.cpp
index 6239d6aa40..5055c6a225 100644
--- a/engines/prince/prince.cpp
+++ b/engines/prince/prince.cpp
@@ -439,13 +439,16 @@ void PrinceEngine::showLogo() {
}
Common::Error PrinceEngine::run() {
-
+ syncSoundSettings();
+ int startGameSlot = ConfMan.hasKey("save_slot") ? ConfMan.getInt("save_slot") : -1;
init();
-
- showLogo();
-
+ if (startGameSlot == -1) {
+ showLogo();
+ } else {
+ loadLocation(59); // load intro location - easiest way to set everything up
+ loadGame(startGameSlot);
+ }
mainLoop();
-
return Common::kNoError;
}