[Scummvm-cvs-logs] scummvm master -> 1a40387d0d0bbbf2661a5885a4458887c1871181

bluegr bluegr at gmail.com
Thu Oct 31 07:25:31 CET 2013


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:
1a40387d0d NEVERHOOD: Add an option to skip the Hall of Records storyboard scenes


Commit: 1a40387d0d0bbbf2661a5885a4458887c1871181
    https://github.com/scummvm/scummvm/commit/1a40387d0d0bbbf2661a5885a4458887c1871181
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2013-10-30T23:24:03-07:00

Commit Message:
NEVERHOOD: Add an option to skip the Hall of Records storyboard scenes

Quoting from the Neverhood wiki: "The Hall of Records is considered to
be one of the longest and most tedious elements of the Neverhood, and
takes approximately nine to ten minutes to walk through".

This option allows the player to just skip past all of these tedious
storyboard scenes

Changed paths:
    engines/neverhood/detection.cpp
    engines/neverhood/modules/module2200.cpp
    engines/neverhood/neverhood.cpp



diff --git a/engines/neverhood/detection.cpp b/engines/neverhood/detection.cpp
index 96c87ab..efd0699 100644
--- a/engines/neverhood/detection.cpp
+++ b/engines/neverhood/detection.cpp
@@ -152,13 +152,20 @@ static const NeverhoodGameDescription gameDescriptions[] = {
 
 } // End of namespace Neverhood
 
-static const ExtraGuiOption neverhoodExtraGuiOption = {
+static const ExtraGuiOption neverhoodExtraGuiOption1 = {
 	_s("Use original save/load screens"),
 	_s("Use the original save/load screens, instead of the ScummVM ones"),
 	"originalsaveload",
 	false
 };
 
+static const ExtraGuiOption neverhoodExtraGuiOption2 = {
+	_s("Skip the Hall of Records storyboard scenes"),
+	_s("Allows the player to skip past the Hall of Records storyboard scenes"),
+	"skiphallofrecordsscenes",
+	false
+};
+
 class NeverhoodMetaEngine : public AdvancedMetaEngine {
 public:
 	NeverhoodMetaEngine() : AdvancedMetaEngine(Neverhood::gameDescriptions, sizeof(Neverhood::NeverhoodGameDescription), neverhoodGames) {
@@ -212,7 +219,8 @@ bool NeverhoodMetaEngine::createInstance(OSystem *syst, Engine **engine, const A
 
 const ExtraGuiOptions NeverhoodMetaEngine::getExtraGuiOptions(const Common::String &target) const {
 	ExtraGuiOptions options;
-	options.push_back(neverhoodExtraGuiOption);
+	options.push_back(neverhoodExtraGuiOption1);
+	options.push_back(neverhoodExtraGuiOption2);
 	return options;
 }
 
diff --git a/engines/neverhood/modules/module2200.cpp b/engines/neverhood/modules/module2200.cpp
index 745af42..eecddf9 100644
--- a/engines/neverhood/modules/module2200.cpp
+++ b/engines/neverhood/modules/module2200.cpp
@@ -20,6 +20,8 @@
  *
  */
 
+#include "common/config-manager.h"
+
 #include "neverhood/diskplayerscene.h"
 #include "neverhood/gamemodule.h"
 #include "neverhood/modules/module1000_sprites.h"
@@ -46,6 +48,18 @@ Module2200::~Module2200() {
 }
 
 void Module2200::createScene(int sceneNum, int which) {
+	if (sceneNum == 46 && ConfMan.getBool("skiphallofrecordsscenes")) {
+		// Skip the whole Hall of Records storyboard scenes,
+		// and teleport to the last scene
+		sceneNum = 41;
+	}
+
+	if (sceneNum == 40 && ConfMan.getBool("skiphallofrecordsscenes")) {
+		// Skip the whole Hall of Records storyboard scenes,
+		// and teleport back to the first scene
+		sceneNum = 5;
+	}
+
 	debug(1, "Module2200::createScene(%d, %d)", sceneNum, which);
 	_sceneNum = sceneNum;
 	switch (_sceneNum) {
diff --git a/engines/neverhood/neverhood.cpp b/engines/neverhood/neverhood.cpp
index 1fb32a1..b961bcc 100644
--- a/engines/neverhood/neverhood.cpp
+++ b/engines/neverhood/neverhood.cpp
@@ -79,6 +79,7 @@ Common::Error NeverhoodEngine::run() {
 
 	// Assign default values to the config manager, in case settings are missing
 	ConfMan.registerDefault("originalsaveload", "false");
+	ConfMan.registerDefault("skiphallofrecordsscenes", "false");
 
 	_staticData = new StaticData();
 	_staticData->load("neverhood.dat");






More information about the Scummvm-git-logs mailing list