mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-14 13:50:13 +00:00
NANCY: Add detection for Russian variant of Secrets Can Kill
Added a detection entry for the Russian translation of Nancy Drew: Secrets Can Kill.
This commit is contained in:
parent
de43aa79c1
commit
742edc40ec
@ -28,6 +28,7 @@
|
||||
const char *const directoryGlobs[] = {
|
||||
"game",
|
||||
"iff",
|
||||
"cifTree",
|
||||
0
|
||||
};
|
||||
|
||||
@ -67,6 +68,17 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
|
||||
},
|
||||
Nancy::kGameTypeNancy1
|
||||
},
|
||||
{ // MD5 by fracturehill
|
||||
{
|
||||
"nancy1", 0,
|
||||
AD_ENTRY1s("ciftree.dat", "e1cd21841ab1b83a0ea0755ce0254cbc", 4480956),
|
||||
Common::RU_RUS,
|
||||
Common::kPlatformWindows,
|
||||
ADGF_NO_FLAGS,
|
||||
GUIO0()
|
||||
},
|
||||
Nancy::kGameTypeNancy1
|
||||
},
|
||||
{ // MD5 by waltervn
|
||||
{
|
||||
"nancy2", 0,
|
||||
|
149
engines/nancy/dialogueresponses.cpp
Normal file
149
engines/nancy/dialogueresponses.cpp
Normal file
@ -0,0 +1,149 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "engines/nancy/nancy.h"
|
||||
#include "engines/nancy/dialogueresponses.h"
|
||||
|
||||
#include "engines/nancy/state/scene.h"
|
||||
|
||||
namespace Nancy {
|
||||
|
||||
struct ResponseInFile {
|
||||
uint address;
|
||||
uint scene;
|
||||
};
|
||||
|
||||
static const ResponseInFile nancy1ResponsesDaryl[] = {
|
||||
{ 0xB2820, 0x7C },
|
||||
{ 0xB27E4, 0x7F },
|
||||
{ 0xB279C, 0x81 },
|
||||
{ 0xB2730, 0x83 },
|
||||
{ 0xB26D4, 0x84 },
|
||||
{ 0xB25CC, 0x86 },
|
||||
{ 0xB2534, 0x8B },
|
||||
{ 0xB24D0, 0x8D },
|
||||
{ 0xB2438, 0x8F },
|
||||
{ 0xB239C, 0x90 },
|
||||
{ 0xB2300, 0x91 },
|
||||
{ 0xB228C, 0x92 },
|
||||
{ 0xB21D0, 0x96 },
|
||||
{ 0xB2170, 0x97 },
|
||||
{ 0xB20D0, 0x9C },
|
||||
{ 0xB2074, 0x93 },
|
||||
{ 0xB2038, 0x94 },
|
||||
{ 0xB1FE0, 0x95 }
|
||||
};
|
||||
|
||||
static const ResponseInFile nancy1ResponsesConnie[] = {
|
||||
{ 0xB2BC4, 0xE9 },
|
||||
{ 0xB2B6C, 0xEA },
|
||||
{ 0xB2B34, 0xEB },
|
||||
{ 0xB2AF4, 0xEC },
|
||||
{ 0xB2A9C, 0xED },
|
||||
{ 0xB29E0, 0xEE },
|
||||
{ 0xB26D4, 0xEF },
|
||||
{ 0xB2948, 0xF0 },
|
||||
{ 0xB28A8, 0xF5 },
|
||||
{ 0xB2864, 0xE7 }
|
||||
};
|
||||
|
||||
static const ResponseInFile nancy1ResponsesHal[] = {
|
||||
{ 0xB2EB0, 0x1B3 },
|
||||
{ 0xB27E4, 0x1B5 },
|
||||
{ 0xB2E54, 0x1B6 },
|
||||
{ 0xB2E0C, 0x1B7 },
|
||||
{ 0xB2DB4, 0x1B9 },
|
||||
{ 0xB2D28, 0x1BA },
|
||||
{ 0xB26D4, 0x1BB },
|
||||
{ 0xB2CA8, 0x1BC },
|
||||
{ 0xB2C0C, 0x1BE }
|
||||
};
|
||||
|
||||
static const ResponseInFile nancy1ResponsesHulk[] = {
|
||||
{ 0xB3144, 0x14D },
|
||||
{ 0xB2B34, 0x150 },
|
||||
{ 0xB30B8, 0x153 },
|
||||
{ 0xB2E0C, 0x154 },
|
||||
{ 0xB306C, 0x155 },
|
||||
{ 0xB26D4, 0x156 },
|
||||
{ 0xB3008, 0x157 },
|
||||
{ 0xB2F90, 0x158 },
|
||||
{ 0xB2EF0, 0x159 }
|
||||
};
|
||||
|
||||
#define ADD_RESPONSE(x) responses.push_back(PlayerResponse()); responses.back().sceneChange.sceneID = x.scene; responses.back().sceneChange.doNotStartSound = true; addresses.push_back(x.address);
|
||||
|
||||
const Common::Array<PlayerResponse> getResponsesNancy1(uint characterID) {
|
||||
Common::Array<PlayerResponse> responses;
|
||||
Common::Array<uint> addresses;
|
||||
State::Scene &scene = NancySceneState;
|
||||
|
||||
switch (characterID) {
|
||||
case 0: // Daryl
|
||||
if ( scene.getEventFlag(0x1D, kTrue) &&
|
||||
scene.getEventFlag(0x39, kFalse)) {
|
||||
ADD_RESPONSE(nancy1ResponsesDaryl[0])
|
||||
}
|
||||
|
||||
if ( scene.getEventFlag(0x13, kTrue) &&
|
||||
scene.getEventFlag(0x37, kFalse)) {
|
||||
ADD_RESPONSE(nancy1ResponsesDaryl[1])
|
||||
}
|
||||
|
||||
if ( scene.getEventFlag(0xB, kTrue) &&
|
||||
scene.getEventFlag(0x38, kFalse)) {
|
||||
ADD_RESPONSE(nancy1ResponsesDaryl[2])
|
||||
}
|
||||
|
||||
if ( scene.getEventFlag(0, kTrue) &&
|
||||
scene.getEventFlag(1, kFalse) &&
|
||||
scene.getEventFlag(0x68, kFalse)) {
|
||||
ADD_RESPONSE(nancy1ResponsesDaryl[3])
|
||||
}
|
||||
|
||||
|
||||
|
||||
break;
|
||||
case 1: // Connie
|
||||
|
||||
break;
|
||||
case 2: // Hal
|
||||
|
||||
break;
|
||||
case 3: // Hulk
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return responses;
|
||||
}
|
||||
|
||||
const Common::Array<PlayerResponse> getResponses(const uint characterID) {
|
||||
switch (g_nancy->getGameType()) {
|
||||
case kGameTypeNancy1:
|
||||
return getResponsesNancy1(characterID);
|
||||
default:
|
||||
return Common::Array<PlayerResponse>();
|
||||
}
|
||||
}
|
||||
|
||||
} // End of namespace Nancy
|
40
engines/nancy/dialogueresponses.h
Normal file
40
engines/nancy/dialogueresponses.h
Normal file
@ -0,0 +1,40 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef NANCY_DIALOGUERESPONSES_H
|
||||
#define NANCY_DIALOGUERESPONSES_H
|
||||
|
||||
#include "engines/nancy/commontypes.h"
|
||||
|
||||
namespace Nancy {
|
||||
|
||||
struct PlayerResponse {
|
||||
Common::String text;
|
||||
Common::String soundName;
|
||||
SceneChangeDescription sceneChange;
|
||||
};
|
||||
|
||||
const Common::Array<PlayerResponse> getResponses(const uint characterID);
|
||||
|
||||
} // End of namespace Nancy
|
||||
|
||||
#endif // NANCY_DIALOGUERESPONSES_H
|
@ -192,6 +192,8 @@ void NancyEngine::setState(NancyState::NancyState state, NancyState::NancyState
|
||||
s->onStateEnter();
|
||||
}
|
||||
|
||||
_input->forceCleanInput();
|
||||
|
||||
return;
|
||||
}
|
||||
case NancyState::kCheat:
|
||||
@ -297,6 +299,7 @@ void NancyEngine::bootGameEngine() {
|
||||
const Common::FSNode gameDataDir(ConfMan.get("path"));
|
||||
SearchMan.addSubDirectoryMatching(gameDataDir, "game");
|
||||
SearchMan.addSubDirectoryMatching(gameDataDir, "datafiles");
|
||||
SearchMan.addSubDirectoryMatching(gameDataDir, "ciftree");
|
||||
SearchMan.addSubDirectoryMatching(gameDataDir, "hdsound");
|
||||
SearchMan.addSubDirectoryMatching(gameDataDir, "cdsound");
|
||||
SearchMan.addSubDirectoryMatching(gameDataDir, "hdvideo");
|
||||
|
Loading…
Reference in New Issue
Block a user