mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-13 12:39:56 +00:00
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
This commit is contained in:
parent
f9bbc2ca37
commit
1a40387d0d
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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");
|
||||
|
Loading…
Reference in New Issue
Block a user