[Scummvm-git-logs] scummvm master -> 8dc45d78578c56ea81f8e753fb6dbc9a5824d542
bluegr
noreply at scummvm.org
Sat May 2 02:46:59 UTC 2026
This automated email contains information about 6 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
6a7a25d9d6 NANCY: JANITORIAL: Remove superfluous namespace prefixes
5faa374ae3 NANCY: Make the CIF export console commands more usable
d688a1a803 NANCY: Use the correct mouse cursor when dragging in MultiBuildPuzzle
dcf1b99c13 NANCY: Use the correct mouse cursors in RotatingLockPuzzle
c797b8dcdc NANCY: Limit text input length in PasswordPuzzle in Nancy8+
8dc45d7857 NANCY: Add game IDs for all potential supported games
Commit: 6a7a25d9d66af5646914e27e9dee8033244b3f83
https://github.com/scummvm/scummvm/commit/6a7a25d9d66af5646914e27e9dee8033244b3f83
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2026-05-02T05:46:08+03:00
Commit Message:
NANCY: JANITORIAL: Remove superfluous namespace prefixes
Changed paths:
engines/nancy/action/actionmanager.h
engines/nancy/action/actionrecord.cpp
engines/nancy/action/actionrecord.h
engines/nancy/action/autotext.cpp
engines/nancy/action/datarecords.cpp
engines/nancy/action/overlay.h
engines/nancy/action/puzzle/orderingpuzzle.h
engines/nancy/action/puzzle/raycastpuzzle.cpp
engines/nancy/action/puzzle/rotatinglockpuzzle.h
engines/nancy/action/puzzle/setplayerclock.cpp
engines/nancy/console.cpp
engines/nancy/console.h
engines/nancy/cursor.cpp
engines/nancy/detection_tables.h
engines/nancy/misc/hypertext.cpp
engines/nancy/sound.cpp
engines/nancy/state/credits.h
engines/nancy/state/help.h
engines/nancy/state/loadsave.cpp
engines/nancy/state/logo.h
engines/nancy/state/mainmenu.cpp
engines/nancy/state/map.h
engines/nancy/state/scene.h
engines/nancy/ui/inventorybox.h
engines/nancy/ui/ornaments.h
engines/nancy/ui/textbox.h
engines/nancy/ui/viewport.cpp
engines/nancy/ui/viewport.h
diff --git a/engines/nancy/action/actionmanager.h b/engines/nancy/action/actionmanager.h
index 20c8018928c..cc4b541a495 100644
--- a/engines/nancy/action/actionmanager.h
+++ b/engines/nancy/action/actionmanager.h
@@ -46,8 +46,8 @@ struct DependencyRecord;
// The class that handles ActionRecords and their execution
class ActionManager {
- friend class Nancy::State::Scene;
- friend class Nancy::NancyConsole;
+ friend class State::Scene;
+ friend class NancyConsole;
public:
static const byte kCursInvHolding = 0;
diff --git a/engines/nancy/action/actionrecord.cpp b/engines/nancy/action/actionrecord.cpp
index 763bb517538..ad22f588222 100644
--- a/engines/nancy/action/actionrecord.cpp
+++ b/engines/nancy/action/actionrecord.cpp
@@ -55,7 +55,7 @@ void ActionRecord::finishExecution() {
}
void Unimplemented::execute() {
- debugC(Nancy::kDebugActionRecord, "Unimplemented or changed ActionRecord type %u", _type);
+ debugC(kDebugActionRecord, "Unimplemented or changed ActionRecord type %u", _type);
_isDone = true;
}
diff --git a/engines/nancy/action/actionrecord.h b/engines/nancy/action/actionrecord.h
index 18c71a1e77a..8bcd965ce0b 100644
--- a/engines/nancy/action/actionrecord.h
+++ b/engines/nancy/action/actionrecord.h
@@ -96,7 +96,7 @@ struct DependencyRecord {
// will have to subclass RenderActionRecord.
class ActionRecord {
friend class ActionManager;
- friend class Nancy::NancyConsole;
+ friend class NancyConsole;
public:
enum ExecutionState { kBegin, kRun, kActionTrigger };
diff --git a/engines/nancy/action/autotext.cpp b/engines/nancy/action/autotext.cpp
index 0839dc20e5d..5ab834dc298 100644
--- a/engines/nancy/action/autotext.cpp
+++ b/engines/nancy/action/autotext.cpp
@@ -79,7 +79,7 @@ void Autotext::execute() {
if (_surfaceID > 2) {
// Surfaces 3+ are journal surfaces, and their text contents are saved. Texts MUST be in CONVO chunk,
// so we do not check _useAutotextChunk
- Nancy::JournalData *journalData = (Nancy::JournalData *)NancySceneState.getPuzzleData(Nancy::JournalData::getTag());
+ JournalData *journalData = (JournalData *)NancySceneState.getPuzzleData(JournalData::getTag());
assert(journalData);
const CVTX *autotext = (const CVTX *)g_nancy->getEngineData("AUTOTEXT");
assert(autotext);
diff --git a/engines/nancy/action/datarecords.cpp b/engines/nancy/action/datarecords.cpp
index a5d73526343..5b77b6ae19a 100644
--- a/engines/nancy/action/datarecords.cpp
+++ b/engines/nancy/action/datarecords.cpp
@@ -413,7 +413,7 @@ void ModifyListEntry::readData(Common::SeekableReadStream &stream) {
}
void ModifyListEntry::execute() {
- JournalData *journalData = (Nancy::JournalData *)NancySceneState.getPuzzleData(Nancy::JournalData::getTag());
+ JournalData *journalData = (JournalData *)NancySceneState.getPuzzleData(JournalData::getTag());
assert(journalData);
Common::Array<JournalData::Entry> &array = journalData->journalEntries[_surfaceID];
diff --git a/engines/nancy/action/overlay.h b/engines/nancy/action/overlay.h
index ccfb27aca3f..b953f315edb 100644
--- a/engines/nancy/action/overlay.h
+++ b/engines/nancy/action/overlay.h
@@ -68,7 +68,7 @@ public:
SceneChangeDescription _sceneChange;
MultiEventFlagDescription _flagsOnTrigger;
- Nancy::SoundDescription _sound;
+ SoundDescription _sound;
// Describes a single frame in this animation
Common::Array<Common::Rect> _srcRects;
diff --git a/engines/nancy/action/puzzle/orderingpuzzle.h b/engines/nancy/action/puzzle/orderingpuzzle.h
index 7a44b51303a..ab957711f24 100644
--- a/engines/nancy/action/puzzle/orderingpuzzle.h
+++ b/engines/nancy/action/puzzle/orderingpuzzle.h
@@ -83,13 +83,13 @@ protected:
Common::Array<Common::Rect> _overlaySrcs;
Common::Array<Common::Rect> _overlayDests;
- Nancy::SoundDescription _pushDownSound;
- Nancy::SoundDescription _itemSound;
- Nancy::SoundDescription _popUpSound;
+ SoundDescription _pushDownSound;
+ SoundDescription _itemSound;
+ SoundDescription _popUpSound;
SceneChangeWithFlag _solveExitScene;
uint16 _solveSoundDelay = 0;
- Nancy::SoundDescription _solveSound;
+ SoundDescription _solveSound;
SceneChangeWithFlag _exitScene;
Common::Rect _exitHotspot;
diff --git a/engines/nancy/action/puzzle/raycastpuzzle.cpp b/engines/nancy/action/puzzle/raycastpuzzle.cpp
index 83420fd7ff8..08f37765634 100644
--- a/engines/nancy/action/puzzle/raycastpuzzle.cpp
+++ b/engines/nancy/action/puzzle/raycastpuzzle.cpp
@@ -1064,7 +1064,7 @@ bool RaycastDeferredLoader::loadInner() {
}
RaycastPuzzle::~RaycastPuzzle() {
- g_nancy->_input->setKeymapEnabled(Nancy::InputManager::_mazeKeymapID, false);
+ g_nancy->_input->setKeymapEnabled(InputManager::_mazeKeymapID, false);
}
void RaycastPuzzle::init() {
@@ -1111,7 +1111,7 @@ void RaycastPuzzle::execute() {
switch (_state) {
case kBegin:
init();
- g_nancy->_input->setKeymapEnabled(Nancy::InputManager::_mazeKeymapID, true);
+ g_nancy->_input->setKeymapEnabled(InputManager::_mazeKeymapID, true);
break;
case kRun:
checkSwitch();
@@ -1133,7 +1133,7 @@ void RaycastPuzzle::execute() {
void RaycastPuzzle::onPause(bool pause) {
RenderActionRecord::onPause(pause);
- g_nancy->_input->setKeymapEnabled(Nancy::InputManager::_mazeKeymapID, !pause);
+ g_nancy->_input->setKeymapEnabled(InputManager::_mazeKeymapID, !pause);
}
void RaycastPuzzle::handleInput(NancyInput &input) {
diff --git a/engines/nancy/action/puzzle/rotatinglockpuzzle.h b/engines/nancy/action/puzzle/rotatinglockpuzzle.h
index 0365a452101..4b7c9fea395 100644
--- a/engines/nancy/action/puzzle/rotatinglockpuzzle.h
+++ b/engines/nancy/action/puzzle/rotatinglockpuzzle.h
@@ -45,10 +45,10 @@ public:
Common::Array<Common::Rect> _upHotspots;
Common::Array<Common::Rect> _downHotspots;
Common::Array<byte> _correctSequence;
- Nancy::SoundDescription _clickSound;
+ SoundDescription _clickSound;
SceneChangeWithFlag _solveExitScene;
uint16 _solveSoundDelay = 0;
- Nancy::SoundDescription _solveSound;
+ SoundDescription _solveSound;
SceneChangeWithFlag _exitScene;
Common::Rect _exitHotspot;
diff --git a/engines/nancy/action/puzzle/setplayerclock.cpp b/engines/nancy/action/puzzle/setplayerclock.cpp
index e57f2fe92c9..8d921f85cca 100644
--- a/engines/nancy/action/puzzle/setplayerclock.cpp
+++ b/engines/nancy/action/puzzle/setplayerclock.cpp
@@ -34,7 +34,7 @@ namespace Nancy {
namespace Action {
SetPlayerClock::~SetPlayerClock() {
- Nancy::UI::Clock *clock = NancySceneState.getClock();
+ UI::Clock *clock = NancySceneState.getClock();
if (clock) {
clock->lockClock(false);
}
@@ -99,7 +99,7 @@ void SetPlayerClock::execute() {
_alarmHours = NancySceneState.getPlayerTime().getHours();
- Nancy::UI::Clock *clock = NancySceneState.getClock();
+ UI::Clock *clock = NancySceneState.getClock();
if (clock) {
clock->lockClock(true);
}
diff --git a/engines/nancy/console.cpp b/engines/nancy/console.cpp
index 9f92d134c36..4724fb8cc0e 100644
--- a/engines/nancy/console.cpp
+++ b/engines/nancy/console.cpp
@@ -103,7 +103,7 @@ void NancyConsole::postEnter() {
while (!g_nancy->shouldQuit() && !dec->endOfVideo()) {
Common::Event event;
if (ev->pollEvent(event)) {
- if (event.type == Common::EVENT_CUSTOM_ENGINE_ACTION_END && event.customType == Nancy::InputManager::kNancyActionLeftClick) {
+ if (event.type == Common::EVENT_CUSTOM_ENGINE_ACTION_END && event.customType == InputManager::kNancyActionLeftClick) {
break;
}
}
@@ -140,7 +140,7 @@ void NancyConsole::postEnter() {
while (!g_nancy->shouldQuit()) {
Common::Event event;
if (ev->pollEvent(event)) {
- if (event.type == Common::EVENT_CUSTOM_ENGINE_ACTION_END && event.customType == Nancy::InputManager::kNancyActionLeftClick) {
+ if (event.type == Common::EVENT_CUSTOM_ENGINE_ACTION_END && event.customType == InputManager::kNancyActionLeftClick) {
break;
}
@@ -481,12 +481,12 @@ bool NancyConsole::Cmd_sceneID(int argc, const char **argv) {
return true;
}
-void NancyConsole::printActionRecord(const Nancy::Action::ActionRecord *record, bool noDependencies) {
+void NancyConsole::printActionRecord(const Action::ActionRecord *record, bool noDependencies) {
debugPrintf("\n%s\n\ttype: %i, %s\n\texecType: %s",
record->_description.c_str(),
record->_type,
record->getRecordTypeName().c_str(),
- record->_execType == Nancy::Action::ActionRecord::kRepeating ? "kRepeating" : "kOneShot");
+ record->_execType == Action::ActionRecord::kRepeating ? "kRepeating" : "kOneShot");
if (!noDependencies && record->_dependencies.children.size()) {
debugPrintf("\n\tDependencies:");
@@ -495,8 +495,8 @@ void NancyConsole::printActionRecord(const Nancy::Action::ActionRecord *record,
}
}
-void NancyConsole::recursePrintDependencies(const Nancy::Action::DependencyRecord &record) {
- using namespace Nancy::Action;
+void NancyConsole::recursePrintDependencies(const Action::DependencyRecord &record) {
+ using namespace Action;
auto *inventoryData = GetEngineData(INV);
assert(inventoryData);
@@ -597,7 +597,7 @@ void NancyConsole::recursePrintDependencies(const Nancy::Action::DependencyRecor
}
bool NancyConsole::Cmd_listActionRecords(int argc, const char **argv) {
- using namespace Nancy::Action;
+ using namespace Action;
if (argc == 1) {
// Print the current scene
diff --git a/engines/nancy/console.h b/engines/nancy/console.h
index 8a283f7d6ec..849f8430d72 100644
--- a/engines/nancy/console.h
+++ b/engines/nancy/console.h
@@ -68,8 +68,8 @@ private:
bool Cmd_soundInfo(int argc, const char **argv);
bool Cmd_showHotspots(int argc, const char **argv);
- void printActionRecord(const Nancy::Action::ActionRecord *record, bool noDependencies = false);
- void recursePrintDependencies(const Nancy::Action::DependencyRecord &record);
+ void printActionRecord(const Action::ActionRecord *record, bool noDependencies = false);
+ void recursePrintDependencies(const Action::DependencyRecord &record);
Common::Path _videoFile;
Common::Path _imageFile;
diff --git a/engines/nancy/cursor.cpp b/engines/nancy/cursor.cpp
index 263832ef519..73c4bb41eb6 100644
--- a/engines/nancy/cursor.cpp
+++ b/engines/nancy/cursor.cpp
@@ -117,7 +117,7 @@ void CursorManager::setCursor(CursorType type, int16 itemID) {
return;
}
- Nancy::GameType gameType = g_nancy->getGameType();
+ GameType gameType = g_nancy->getGameType();
if (type == _curCursorType && itemID == _curItemID) {
return;
diff --git a/engines/nancy/detection_tables.h b/engines/nancy/detection_tables.h
index ce0dbce1738..b1baf1273ec 100644
--- a/engines/nancy/detection_tables.h
+++ b/engines/nancy/detection_tables.h
@@ -47,7 +47,7 @@ static const PlainGameDescriptor nancyGames[] = {
#define NANCY6_7_GUIOPTIONS GUIO3(GAMEOPTION_AUTO_MOVE, GAMEOPTION_FIX_SOFTLOCKS, GAMEOPTION_ORIGINAL_SAVELOAD)
#define NANCY8_GUIOPTIONS GUIO2(GAMEOPTION_AUTO_MOVE, GAMEOPTION_ORIGINAL_SAVELOAD)
-static const Nancy::NancyGameDescription gameDescriptions[] = {
+static const NancyGameDescription gameDescriptions[] = {
{ // MD5 by fracturehill
{
@@ -58,7 +58,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_DROPLANGUAGE | ADGF_DROPPLATFORM,
VAMPIRE_GUIOPTIONS
},
- Nancy::kGameTypeVampire
+ kGameTypeVampire
},
{ // MD5 by waltervn
{
@@ -69,7 +69,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_DROPPLATFORM,
NANCY_GUIOPTIONS
},
- Nancy::kGameTypeNancy1
+ kGameTypeNancy1
},
{ // MD5 by fracturehill
{
@@ -80,7 +80,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_DROPPLATFORM,
NANCY_GUIOPTIONS
},
- Nancy::kGameTypeNancy1
+ kGameTypeNancy1
},
{ // MD5 by fracturehill
{
@@ -95,10 +95,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::RU_RUS,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY_GUIOPTIONS
},
- Nancy::kGameTypeNancy1
+ kGameTypeNancy1
},
{ // MD5 by waltervn
{
@@ -109,7 +109,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_DROPPLATFORM,
NANCY2_GUIOPTIONS
},
- Nancy::kGameTypeNancy2
+ kGameTypeNancy2
},
{ // MD5 by fracturehill
{
@@ -120,7 +120,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_DROPPLATFORM,
NANCY2_GUIOPTIONS
},
- Nancy::kGameTypeNancy2
+ kGameTypeNancy2
},
{ // MD5 by fracturehill
{
@@ -134,10 +134,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::RU_RUS,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY2_GUIOPTIONS
},
- Nancy::kGameTypeNancy2
+ kGameTypeNancy2
},
{ // MD5 by waltervn
{
@@ -148,7 +148,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_DROPPLATFORM,
NANCY_GUIOPTIONS
},
- Nancy::kGameTypeNancy3
+ kGameTypeNancy3
},
{ // Steam version
{
@@ -159,7 +159,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_DROPPLATFORM,
NANCY_GUIOPTIONS
},
- Nancy::kGameTypeNancy3
+ kGameTypeNancy3
},
{ // MD5 by fracturehill
{
@@ -173,10 +173,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY_GUIOPTIONS
},
- Nancy::kGameTypeNancy3
+ kGameTypeNancy3
},
{ // MD5 by waltervn
{
@@ -190,10 +190,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY_GUIOPTIONS
},
- Nancy::kGameTypeNancy3
+ kGameTypeNancy3
},
{ // MD5 by fracturehill
{
@@ -204,7 +204,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_DROPPLATFORM,
NANCY_GUIOPTIONS
},
- Nancy::kGameTypeNancy3
+ kGameTypeNancy3
},
{ // MD5 by fracturehill
{
@@ -218,10 +218,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::RU_RUS,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY_GUIOPTIONS
},
- Nancy::kGameTypeNancy3
+ kGameTypeNancy3
},
{ // MD5 by waltervn
{
@@ -232,7 +232,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_DROPPLATFORM,
NANCY_GUIOPTIONS
},
- Nancy::kGameTypeNancy4
+ kGameTypeNancy4
},
{ // Steam version
{
@@ -243,7 +243,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_DROPPLATFORM,
NANCY_GUIOPTIONS
},
- Nancy::kGameTypeNancy4
+ kGameTypeNancy4
},
{ // MD5 by fracturehill
{
@@ -257,10 +257,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY_GUIOPTIONS
},
- Nancy::kGameTypeNancy4
+ kGameTypeNancy4
},
{ // MD5 by waltervn
{
@@ -274,10 +274,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY_GUIOPTIONS
},
- Nancy::kGameTypeNancy4
+ kGameTypeNancy4
},
{ // MD5 by eriktorbjorn
{
@@ -291,10 +291,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY_GUIOPTIONS
},
- Nancy::kGameTypeNancy4
+ kGameTypeNancy4
},
{ // MD5 by fracturehill
{
@@ -305,7 +305,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_DROPPLATFORM,
NANCY_GUIOPTIONS
},
- Nancy::kGameTypeNancy4
+ kGameTypeNancy4
},
{ // MD5 by fracturehill
{
@@ -320,10 +320,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::RU_RUS,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY_GUIOPTIONS
},
- Nancy::kGameTypeNancy4
+ kGameTypeNancy4
},
{ // MD5 by waltervn
{
@@ -334,7 +334,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_DROPPLATFORM,
NANCY5_GUIOPTIONS
},
- Nancy::kGameTypeNancy5
+ kGameTypeNancy5
},
{ // MD5 by waltervn
{
@@ -348,10 +348,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY5_GUIOPTIONS
},
- Nancy::kGameTypeNancy5
+ kGameTypeNancy5
},
{ // MD5 by fracturehill
{
@@ -365,10 +365,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY5_GUIOPTIONS
},
- Nancy::kGameTypeNancy5
+ kGameTypeNancy5
},
/* Temporarily disabled; needs ciftree.dat
{ // MD5 by clone2727
@@ -382,10 +382,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY5_GUIOPTIONS
},
- Nancy::kGameTypeNancy5
+ kGameTypeNancy5
},*/
{ // MD5 by fracturehill
{
@@ -396,7 +396,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_DROPPLATFORM,
NANCY5_GUIOPTIONS
},
- Nancy::kGameTypeNancy5
+ kGameTypeNancy5
},
{ // MD5 by fracturehill
{
@@ -411,10 +411,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::RU_RUS,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY5_GUIOPTIONS
},
- Nancy::kGameTypeNancy5
+ kGameTypeNancy5
},
{ // MD5 by Strangerke
{
@@ -429,7 +429,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_DROPPLATFORM,
NANCY6_7_GUIOPTIONS
},
- Nancy::kGameTypeNancy6
+ kGameTypeNancy6
},
{ // MD5 by eriktorbjorn
{
@@ -443,10 +443,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY6_7_GUIOPTIONS
},
- Nancy::kGameTypeNancy6
+ kGameTypeNancy6
},
{
{
@@ -460,10 +460,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY6_7_GUIOPTIONS
},
- Nancy::kGameTypeNancy6
+ kGameTypeNancy6
},
{ // MD5 by fracturehill
{
@@ -477,10 +477,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY6_7_GUIOPTIONS
},
- Nancy::kGameTypeNancy6
+ kGameTypeNancy6
},
{ // MD5 by fracturehill
{
@@ -491,7 +491,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_DROPPLATFORM,
NANCY6_7_GUIOPTIONS
},
- Nancy::kGameTypeNancy6
+ kGameTypeNancy6
},
{ // MD5 by fracturehill
{
@@ -505,10 +505,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::RU_RUS,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY6_7_GUIOPTIONS
},
- Nancy::kGameTypeNancy6
+ kGameTypeNancy6
},
{ // MD5 by fracturehill
{
@@ -519,7 +519,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_DROPPLATFORM,
NANCY6_7_GUIOPTIONS
},
- Nancy::kGameTypeNancy7
+ kGameTypeNancy7
},
{ // MD5 by eriktorbjorn
{
@@ -533,10 +533,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY6_7_GUIOPTIONS
},
- Nancy::kGameTypeNancy7
+ kGameTypeNancy7
},
{
{
@@ -550,10 +550,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY6_7_GUIOPTIONS
},
- Nancy::kGameTypeNancy7
+ kGameTypeNancy7
},
{ // MD5 by fracturehill
{
@@ -564,7 +564,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_DROPPLATFORM,
NANCY6_7_GUIOPTIONS
},
- Nancy::kGameTypeNancy7
+ kGameTypeNancy7
},
{ // MD5 by fracturehill
{
@@ -578,10 +578,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::RU_RUS,
Common::kPlatformWindows,
- ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY6_7_GUIOPTIONS
},
- Nancy::kGameTypeNancy7
+ kGameTypeNancy7
},
{ // MD5 by fracturehill
{
@@ -592,7 +592,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_TESTING | ADGF_DROPPLATFORM,
NANCY8_GUIOPTIONS
},
- Nancy::kGameTypeNancy8
+ kGameTypeNancy8
},
{ // MD5 by fracturehill
{
@@ -606,10 +606,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_TESTING | ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_TESTING | ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY8_GUIOPTIONS
},
- Nancy::kGameTypeNancy8
+ kGameTypeNancy8
},
{ // MD5 by fracturehill
{
@@ -620,7 +620,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_TESTING | ADGF_DROPPLATFORM,
NANCY8_GUIOPTIONS
},
- Nancy::kGameTypeNancy8
+ kGameTypeNancy8
},
{ // MD5 by fracturehill
{
@@ -634,10 +634,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::RU_RUS,
Common::kPlatformWindows,
- ADGF_TESTING | ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_TESTING | ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY8_GUIOPTIONS
},
- Nancy::kGameTypeNancy8
+ kGameTypeNancy8
},
{ // MD5 by fracturehill
{
@@ -652,7 +652,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_TESTING | ADGF_DROPPLATFORM,
NANCY8_GUIOPTIONS
},
- Nancy::kGameTypeNancy9
+ kGameTypeNancy9
},
{ // MD5 by fracturehill
{
@@ -666,10 +666,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_TESTING | ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_TESTING | ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY8_GUIOPTIONS
},
- Nancy::kGameTypeNancy9
+ kGameTypeNancy9
},
{
{
@@ -684,7 +684,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_UNSTABLE | ADGF_DROPPLATFORM,
NANCY8_GUIOPTIONS
},
- Nancy::kGameTypeNancy10
+ kGameTypeNancy10
},
{
{
@@ -698,10 +698,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_UNSTABLE | ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_UNSTABLE | ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY8_GUIOPTIONS
},
- Nancy::kGameTypeNancy10
+ kGameTypeNancy10
},
{
{
@@ -716,7 +716,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_UNSTABLE | ADGF_DROPPLATFORM,
NANCY8_GUIOPTIONS
},
- Nancy::kGameTypeNancy11
+ kGameTypeNancy11
},
{
{
@@ -730,10 +730,10 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_UNSTABLE | ADGF_DROPPLATFORM | Nancy::GF_COMPRESSED,
+ ADGF_UNSTABLE | ADGF_DROPPLATFORM | GF_COMPRESSED,
NANCY8_GUIOPTIONS
},
- Nancy::kGameTypeNancy11
+ kGameTypeNancy11
},
{ // MD5 by bluegr
{
@@ -744,7 +744,7 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_UNSTABLE | ADGF_DROPPLATFORM,
NANCY8_GUIOPTIONS
},
- Nancy::kGameTypeNancy12
+ kGameTypeNancy12
},
{ // MD5 by bluegr
{
@@ -755,11 +755,11 @@ static const Nancy::NancyGameDescription gameDescriptions[] = {
ADGF_UNSTABLE | ADGF_DROPPLATFORM,
NANCY8_GUIOPTIONS
},
- Nancy::kGameTypeNancy13
+ kGameTypeNancy13
},
// Do not delete
- { AD_TABLE_END_MARKER, Nancy::kGameTypeNone }
+ { AD_TABLE_END_MARKER, kGameTypeNone }
};
} // End of namespace Nancy
diff --git a/engines/nancy/misc/hypertext.cpp b/engines/nancy/misc/hypertext.cpp
index 7f1c8daf24c..504d0fe62ed 100644
--- a/engines/nancy/misc/hypertext.cpp
+++ b/engines/nancy/misc/hypertext.cpp
@@ -199,7 +199,7 @@ void HypertextParser::drawAllText(const Common::Rect &textBounds, uint leftOffse
// Ignore non-tokens when they're between braces. This fixes nancy6 scenes 1953 & 1954,
// where some sound names slipped through into the text data.
- debugC(Nancy::kDebugHypertext, "Unrecognized hypertext tag <%s>", curToken.c_str());
+ debugC(kDebugHypertext, "Unrecognized hypertext tag <%s>", curToken.c_str());
continue;
}
diff --git a/engines/nancy/sound.cpp b/engines/nancy/sound.cpp
index da2f5fc13ff..00db42190dc 100644
--- a/engines/nancy/sound.cpp
+++ b/engines/nancy/sound.cpp
@@ -613,7 +613,7 @@ void SoundManager::recalculateSoundEffects() {
_positionLerp = 0;
if (g_nancy->getGameType() >= kGameTypeNancy3) {
- const Nancy::State::Scene::SceneSummary &sceneSummary = NancySceneState.getSceneSummary();
+ const State::Scene::SceneSummary &sceneSummary = NancySceneState.getSceneSummary();
SceneChangeDescription &sceneInfo = NancySceneState.getSceneInfo();
Math::Vector3d rotatedFrontVector = NancySceneState.getSceneInfo().listenerFrontVector;
rotatedFrontVector.normalize();
@@ -638,7 +638,7 @@ void SoundManager::recalculateSoundEffects() {
void SoundManager::stopAndUnloadSceneSpecificSounds() {
byte numSSChans = g_nancy->getStaticData().soundChannelInfo.numSceneSpecificChannels;
- if (g_nancy->getGameType() == kGameTypeVampire && Nancy::State::Map::hasInstance()) {
+ if (g_nancy->getGameType() == kGameTypeVampire && State::Map::hasInstance()) {
// Don't stop the map sound in certain scenes
uint nextScene = NancySceneState.getNextSceneInfo().sceneID;
if (nextScene != 0 && (nextScene < 15 || nextScene > 27)) {
@@ -655,7 +655,7 @@ void SoundManager::stopAndUnloadSceneSpecificSounds() {
void SoundManager::pauseSceneSpecificSounds(bool pause) {
byte numSSChans = g_nancy->getStaticData().soundChannelInfo.numSceneSpecificChannels;
- if (g_nancy->getGameType() == kGameTypeVampire && Nancy::State::Map::hasInstance()) {
+ if (g_nancy->getGameType() == kGameTypeVampire && State::Map::hasInstance()) {
if (!pause || g_nancy->getState() != NancyState::kMap) {
// Stop the map sound in certain scenes
uint currentScene = NancySceneState.getSceneInfo().sceneID;
diff --git a/engines/nancy/state/credits.h b/engines/nancy/state/credits.h
index ae179a00ce5..4f70d99ca7c 100644
--- a/engines/nancy/state/credits.h
+++ b/engines/nancy/state/credits.h
@@ -61,7 +61,7 @@ protected:
uint _currentTextImage;
};
-#define NancyCreditsState Nancy::State::Credits::instance()
+#define NancyCreditsState State::Credits::instance()
} // End of namespace State
} // End of namespace Nancy
diff --git a/engines/nancy/state/help.h b/engines/nancy/state/help.h
index a136dd9d0f7..5badb70b1d1 100644
--- a/engines/nancy/state/help.h
+++ b/engines/nancy/state/help.h
@@ -59,7 +59,7 @@ private:
Time _buttonPressActivationTime;
};
-#define NancyHelpState Nancy::State::Help::instance()
+#define NancyHelpState State::Help::instance()
} // End of namespace State
} // End of namespace Nancy
diff --git a/engines/nancy/state/loadsave.cpp b/engines/nancy/state/loadsave.cpp
index 5ffde9de8ae..8cc51808b76 100644
--- a/engines/nancy/state/loadsave.cpp
+++ b/engines/nancy/state/loadsave.cpp
@@ -104,7 +104,7 @@ void LoadSaveMenu::onStateEnter(const NancyState::NancyState prevState) {
// Display the question dialog if we are in a scene, and if we are not
// in the middle of quitting the game, and a save has been requested
- if (Nancy::State::Scene::hasInstance() && !saveAndQuit) {
+ if (Scene::hasInstance() && !saveAndQuit) {
GUI::MessageDialog saveOrLoad(_("Would you like to load or save a game?"), _("Load"), _("Save"));
int choice = saveOrLoad.runModal();
@@ -160,8 +160,8 @@ void LoadSaveMenu::scummVMLoad() {
_selectedSave = slot;
if (slot >= 0) {
- if (Nancy::State::Scene::hasInstance())
- Nancy::State::Scene::destroy();
+ if (Scene::hasInstance())
+ Scene::destroy();
ConfMan.setInt("save_slot", slot, Common::ConfigManager::kTransientDomain);
@@ -244,7 +244,7 @@ bool LoadSaveMenu::save() {
void LoadSaveMenu::load() {
auto *sdlg = GetEngineData(SDLG);
- if (sdlg && sdlg->dialogs.size() > 1 && Nancy::State::Scene::hasInstance() && !g_nancy->_hasJustSaved) {
+ if (sdlg && sdlg->dialogs.size() > 1 && Scene::hasInstance() && !g_nancy->_hasJustSaved) {
// nancy6 added a "Do you want load without saving" dialog.
if (!ConfMan.hasKey("sdlg_return", Common::ConfigManager::kTransientDomain)) {
// Request the dialog
@@ -274,8 +274,8 @@ void LoadSaveMenu::load() {
}
}
- if (Nancy::State::Scene::hasInstance()) {
- Nancy::State::Scene::destroy();
+ if (Scene::hasInstance()) {
+ Scene::destroy();
}
ConfMan.setInt("save_slot", scummVMSaveSlotToLoad(), Common::ConfigManager::kTransientDomain);
@@ -472,12 +472,12 @@ void LoadSaveMenu_V1::run() {
if (_enteringNewState) {
// State has changed, revert all relevant objects to an appropriate state
for (uint i = 0; i < _textboxes.size(); ++i) {
- writeToTextbox(i, _filenameStrings[i], Nancy::State::Scene::hasInstance() ? _baseFont : _disabledFont);
+ writeToTextbox(i, _filenameStrings[i], Scene::hasInstance() ? _baseFont : _disabledFont);
// Set load button state depending on whether there exists a save in the corresponding slot
// Save buttons are always active
_loadButtons[i]->setDisabled(_saveExists[i] == false);
- _saveButtons[i]->setDisabled(!Nancy::State::Scene::hasInstance());
+ _saveButtons[i]->setDisabled(!Scene::hasInstance());
_cancelButtonOverlays[i]->setVisible(false);
_loadButtons[i]->_isClicked = false;
@@ -526,7 +526,7 @@ void LoadSaveMenu_V1::run() {
_saveButtons[i]->handleInput(input);
if (_saveButtons[i]->_isClicked) {
- if (Nancy::State::Scene::hasInstance()) {
+ if (Scene::hasInstance()) {
_state = kSave;
_enteringNewState = true;
_selectedSave = i;
@@ -546,7 +546,7 @@ void LoadSaveMenu_V1::run() {
bool hoversOverTextbox = false;
for (int i = 0; i < (int)_textboxes.size(); ++i) {
if (_textboxes[i]->getScreenPosition().contains(input.mousePos)) {
- if (Nancy::State::Scene::hasInstance()) {
+ if (Scene::hasInstance()) {
hoversOverTextbox = true;
if (_selectedSave != i) {
if (_selectedSave != -1) {
@@ -899,11 +899,11 @@ void LoadSaveMenu_V2::run() {
// State has changed, revert all relevant objects to an appropriate state
goToPage(_currentPage);
for (uint i = 0; i < _textboxes.size(); ++i) {
- writeToTextbox(i, _filenameStrings[i], Nancy::State::Scene::hasInstance() ? _baseFont : _disabledFont);
+ writeToTextbox(i, _filenameStrings[i], Scene::hasInstance() ? _baseFont : _disabledFont);
}
if (_currentPage == 0) {
- _saveButton->setDisabled(!Nancy::State::Scene::hasInstance());
+ _saveButton->setDisabled(!Scene::hasInstance());
_saveButton->_isClicked = false;
_inputTextbox->setVisible(true);
_textboxes[0]->setVisible(false);
@@ -945,7 +945,7 @@ void LoadSaveMenu_V2::run() {
_saveButton->handleInput(input);
if (_saveButton->_isClicked) {
- if (Nancy::State::Scene::hasInstance()) {
+ if (Scene::hasInstance()) {
_state = kSave;
_enteringNewState = true;
g_nancy->_sound->playSound("BULS");
@@ -1016,7 +1016,7 @@ void LoadSaveMenu_V2::run() {
}
}
- if (Nancy::State::Scene::hasInstance() && _currentPage == 0 &&
+ if (Scene::hasInstance() && _currentPage == 0 &&
_inputTextbox && _inputTextbox->getScreenPosition().contains(input.mousePos)) {
hoversOverTextbox = true;
@@ -1338,7 +1338,7 @@ void LoadSaveMenu_V2::extractSaveNames(uint pageID) {
}
// Load the top textbox showing the name of the last save made
- if (_enteredString.empty() && Nancy::State::Scene::hasInstance()) {
+ if (_enteredString.empty() && Scene::hasInstance()) {
bool textboxSet = false;
if (ConfMan.hasKey("display_slot", Common::ConfigManager::kTransientDomain)) {
diff --git a/engines/nancy/state/logo.h b/engines/nancy/state/logo.h
index cba948f85c7..255a358714a 100644
--- a/engines/nancy/state/logo.h
+++ b/engines/nancy/state/logo.h
@@ -66,7 +66,7 @@ private:
RenderObject _videoObj;
};
-#define NancyLogoState Nancy::State::Logo::instance()
+#define NancyLogoState State::Logo::instance()
} // end of namespace State
} // End of namespace Nancy
diff --git a/engines/nancy/state/mainmenu.cpp b/engines/nancy/state/mainmenu.cpp
index e15b86a0260..79c6778b4ed 100644
--- a/engines/nancy/state/mainmenu.cpp
+++ b/engines/nancy/state/mainmenu.cpp
@@ -201,7 +201,7 @@ void MainMenu::stop() {
break;
case 6:
// Exit Game
- if (g_nancy->getEngineData("SDLG") && Nancy::State::Scene::hasInstance() && !g_nancy->_hasJustSaved) {
+ if (g_nancy->getEngineData("SDLG") && Scene::hasInstance() && !g_nancy->_hasJustSaved) {
if (!ConfMan.hasKey("sdlg_return", Common::ConfigManager::kTransientDomain)) {
// Request the "Do you want to save before quitting" dialog
ConfMan.setInt("sdlg_id", 0, Common::ConfigManager::kTransientDomain);
diff --git a/engines/nancy/state/map.h b/engines/nancy/state/map.h
index 1a58924fee0..dc6725c99a8 100644
--- a/engines/nancy/state/map.h
+++ b/engines/nancy/state/map.h
@@ -56,7 +56,7 @@ public:
const SoundDescription &getSound();
protected:
- class MapViewport : public Nancy::RenderObject {
+ class MapViewport : public RenderObject {
public:
MapViewport() : RenderObject(6) {}
virtual ~MapViewport() = default;
@@ -101,7 +101,7 @@ public:
virtual ~TVDMap() = default;
private:
- class MapGlobe : public Nancy::UI::AnimatedButton {
+ class MapGlobe : public UI::AnimatedButton {
public:
MapGlobe(uint zOrder, TVDMap *owner) : AnimatedButton(zOrder), _gargoyleEyes(zOrder), _owner(owner) {}
virtual ~MapGlobe() = default;
@@ -139,7 +139,7 @@ private:
Common::ScopedPtr<UI::Button> _button;
};
-#define NancyMapState Nancy::State::Map::instance()
+#define NancyMapState State::Map::instance()
} // End of namespace State
} // End of namespace Nancy
diff --git a/engines/nancy/state/scene.h b/engines/nancy/state/scene.h
index 13e01bc05aa..df6824a7579 100644
--- a/engines/nancy/state/scene.h
+++ b/engines/nancy/state/scene.h
@@ -73,10 +73,10 @@ namespace State {
// The game state that handles all of the gameplay
class Scene : public State, public Common::Singleton<Scene> {
- friend class Nancy::Action::ActionRecord;
- friend class Nancy::Action::ActionManager;
- friend class Nancy::NancyConsole;
- friend class Nancy::NancyEngine;
+ friend class Action::ActionRecord;
+ friend class Action::ActionManager;
+ friend class NancyConsole;
+ friend class NancyEngine;
public:
struct SceneSummary {
diff --git a/engines/nancy/ui/inventorybox.h b/engines/nancy/ui/inventorybox.h
index 9e420d12e5c..b7c7f176a20 100644
--- a/engines/nancy/ui/inventorybox.h
+++ b/engines/nancy/ui/inventorybox.h
@@ -40,7 +40,7 @@ class Scene;
namespace UI {
class InventoryBox : public RenderObject {
- friend class Nancy::State::Scene;
+ friend class State::Scene;
public:
struct ItemDescription {
diff --git a/engines/nancy/ui/ornaments.h b/engines/nancy/ui/ornaments.h
index 53362fdf66d..842e3fd4520 100644
--- a/engines/nancy/ui/ornaments.h
+++ b/engines/nancy/ui/ornaments.h
@@ -27,7 +27,7 @@
namespace Nancy {
namespace UI {
-class ViewportOrnaments : public Nancy::RenderObject {
+class ViewportOrnaments : public RenderObject {
public:
ViewportOrnaments(uint16 zOrder) : RenderObject(zOrder) {}
virtual ~ViewportOrnaments() {}
@@ -35,7 +35,7 @@ public:
void init() override;
};
-class TextboxOrnaments : public Nancy::RenderObject {
+class TextboxOrnaments : public RenderObject {
public:
TextboxOrnaments(uint16 zOrder) : RenderObject(zOrder) {}
virtual ~TextboxOrnaments() {}
@@ -43,7 +43,7 @@ public:
void init() override;
};
-class InventoryBoxOrnaments : public Nancy::RenderObject {
+class InventoryBoxOrnaments : public RenderObject {
public:
InventoryBoxOrnaments(uint16 zOrder) : RenderObject(zOrder) {}
virtual ~InventoryBoxOrnaments() {}
diff --git a/engines/nancy/ui/textbox.h b/engines/nancy/ui/textbox.h
index 5866f92455f..ed6b92417a2 100644
--- a/engines/nancy/ui/textbox.h
+++ b/engines/nancy/ui/textbox.h
@@ -35,7 +35,7 @@ namespace UI {
class Scrollbar;
-class Textbox : public Nancy::RenderObject, public Misc::HypertextParser {
+class Textbox : public RenderObject, public Misc::HypertextParser {
public:
Textbox();
virtual ~Textbox();
diff --git a/engines/nancy/ui/viewport.cpp b/engines/nancy/ui/viewport.cpp
index 61193cccaab..4cfcf386bec 100644
--- a/engines/nancy/ui/viewport.cpp
+++ b/engines/nancy/ui/viewport.cpp
@@ -56,7 +56,7 @@ void Viewport::init() {
}
void Viewport::handleInput(NancyInput &input) {
- const Nancy::State::Scene::SceneSummary &summary = NancySceneState.getSceneSummary();
+ const State::Scene::SceneSummary &summary = NancySceneState.getSceneSummary();
Time systemTime = g_system->getMillis();
byte direction = 0;
diff --git a/engines/nancy/ui/viewport.h b/engines/nancy/ui/viewport.h
index c44b47210b4..6b2c5cb9367 100644
--- a/engines/nancy/ui/viewport.h
+++ b/engines/nancy/ui/viewport.h
@@ -38,7 +38,7 @@ struct NancyInput;
namespace UI {
-class Viewport : public Nancy::RenderObject {
+class Viewport : public RenderObject {
public:
Viewport() :
RenderObject(6),
Commit: 5faa374ae3f6b06d08c6b9e60a39d065e0e1dc68
https://github.com/scummvm/scummvm/commit/5faa374ae3f6b06d08c6b9e60a39d065e0e1dc68
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2026-05-02T05:46:09+03:00
Commit Message:
NANCY: Make the CIF export console commands more usable
Stay in the console window when exporting CIF files. Also, don't
error out in the cif_info command when a CIF file isn't found,
but throw a warning instead
Changed paths:
engines/nancy/console.cpp
engines/nancy/resource.cpp
diff --git a/engines/nancy/console.cpp b/engines/nancy/console.cpp
index 4724fb8cc0e..e3157ca778a 100644
--- a/engines/nancy/console.cpp
+++ b/engines/nancy/console.cpp
@@ -174,7 +174,7 @@ bool NancyConsole::Cmd_cifExport(int argc, const char **argv) {
if (!g_nancy->_resource->exportCif((argc == 2 ? "" : argv[2]), argv[1]))
debugPrintf("Failed to export '%s'\n", argv[1]);
- return cmdExit(0, nullptr);
+ return true;
}
bool NancyConsole::Cmd_ciftreeExport(int argc, const char **argv) {
@@ -193,7 +193,7 @@ bool NancyConsole::Cmd_ciftreeExport(int argc, const char **argv) {
if (!g_nancy->_resource->exportCifTree(argv[1], files))
debugPrintf("Failed to export '%s'\n", argv[1]);
- return cmdExit(0, nullptr);
+ return true;
}
bool NancyConsole::Cmd_cifList(int argc, const char **argv) {
diff --git a/engines/nancy/resource.cpp b/engines/nancy/resource.cpp
index b99461d7555..0e9b7fe5361 100644
--- a/engines/nancy/resource.cpp
+++ b/engines/nancy/resource.cpp
@@ -264,6 +264,11 @@ Common::String ResourceManager::getCifDescription(const Common::String &treeName
error("Couldn't find CifInfo struct inside loaded CifTrees");
}
+ if (!tree->hasFile(name)) {
+ Common::String ret = Common::String::format("Couldn't find CIF %s\n", name.toString().c_str());
+ return ret;
+ }
+
const CifInfo &info = tree->getCifInfo(name);
Common::String desc;
Commit: d688a1a80316002512b60bb68121fffbdd57248a
https://github.com/scummvm/scummvm/commit/d688a1a80316002512b60bb68121fffbdd57248a
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2026-05-02T05:46:10+03:00
Commit Message:
NANCY: Use the correct mouse cursor when dragging in MultiBuildPuzzle
Fix #16743
Changed paths:
engines/nancy/action/puzzle/multibuildpuzzle.cpp
diff --git a/engines/nancy/action/puzzle/multibuildpuzzle.cpp b/engines/nancy/action/puzzle/multibuildpuzzle.cpp
index af1bd0d8c12..03d9d85177b 100644
--- a/engines/nancy/action/puzzle/multibuildpuzzle.cpp
+++ b/engines/nancy/action/puzzle/multibuildpuzzle.cpp
@@ -370,7 +370,7 @@ void MultiBuildPuzzle::handleInput(NancyInput &input) {
}
if (topmost != -1) {
- g_nancy->_cursor->setCursorType(CursorManager::kHotspot);
+ g_nancy->_cursor->setCursorType(CursorManager::kCustom1);
if (input.input & NancyInput::kLeftMouseButtonUp) {
Piece &pp = _pieces[topmost];
Commit: dcf1b99c13c4d13868a842c9b49596e3224de801
https://github.com/scummvm/scummvm/commit/dcf1b99c13c4d13868a842c9b49596e3224de801
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2026-05-02T05:46:11+03:00
Commit Message:
NANCY: Use the correct mouse cursors in RotatingLockPuzzle
Fix #16725
Changed paths:
engines/nancy/action/puzzle/rotatinglockpuzzle.cpp
diff --git a/engines/nancy/action/puzzle/rotatinglockpuzzle.cpp b/engines/nancy/action/puzzle/rotatinglockpuzzle.cpp
index 4cb6628ebdc..5265088fa2c 100644
--- a/engines/nancy/action/puzzle/rotatinglockpuzzle.cpp
+++ b/engines/nancy/action/puzzle/rotatinglockpuzzle.cpp
@@ -178,7 +178,7 @@ void RotatingLockPuzzle::handleInput(NancyInput &input) {
for (uint i = 0; i < _upHotspots.size(); ++i) {
if (NancySceneState.getViewport().convertViewportToScreen(_upHotspots[i]).contains(input.mousePos)) {
- g_nancy->_cursor->setCursorType(CursorManager::kHotspot);
+ g_nancy->_cursor->setCursorType(CursorManager::kMoveUp);
if (!g_nancy->_sound->isSoundPlaying(_clickSound) && input.input & NancyInput::kLeftMouseButtonUp) {
g_nancy->_sound->playSound(_clickSound);
@@ -193,7 +193,7 @@ void RotatingLockPuzzle::handleInput(NancyInput &input) {
for (uint i = 0; i < _downHotspots.size(); ++i) {
if (NancySceneState.getViewport().convertViewportToScreen(_downHotspots[i]).contains(input.mousePos)) {
- g_nancy->_cursor->setCursorType(CursorManager::kHotspot);
+ g_nancy->_cursor->setCursorType(CursorManager::kMoveDown);
if (!g_nancy->_sound->isSoundPlaying(_clickSound) && input.input & NancyInput::kLeftMouseButtonUp) {
g_nancy->_sound->playSound(_clickSound);
Commit: c797b8dcdca3251fd98f312181c18c39a4a8bbdd
https://github.com/scummvm/scummvm/commit/c797b8dcdca3251fd98f312181c18c39a4a8bbdd
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2026-05-02T05:46:11+03:00
Commit Message:
NANCY: Limit text input length in PasswordPuzzle in Nancy8+
Fix #16692
Changed paths:
engines/nancy/action/puzzle/passwordpuzzle.cpp
engines/nancy/action/puzzle/passwordpuzzle.h
diff --git a/engines/nancy/action/puzzle/passwordpuzzle.cpp b/engines/nancy/action/puzzle/passwordpuzzle.cpp
index d280f10c8c1..fe0f5aa5e50 100644
--- a/engines/nancy/action/puzzle/passwordpuzzle.cpp
+++ b/engines/nancy/action/puzzle/passwordpuzzle.cpp
@@ -66,6 +66,8 @@ void PasswordPuzzle::readData(Common::SeekableReadStream &stream) {
stream.read(buf, fieldSize);
buf[fieldSize - 1] = '\0';
_names[i] = buf;
+ if (strlen(buf) > _maxNameLength)
+ _maxNameLength = strlen(buf);
}
s.skip((5 - numNames) * fieldSize, kGameTypeNancy4);
@@ -75,6 +77,8 @@ void PasswordPuzzle::readData(Common::SeekableReadStream &stream) {
stream.read(buf, fieldSize);
buf[19] = '\0';
_passwords[i] = buf;
+ if (strlen(buf) > _maxPassLength)
+ _maxPassLength = strlen(buf);
}
s.skip((5 - numPasswords) * fieldSize, kGameTypeNancy4);
@@ -207,6 +211,10 @@ void PasswordPuzzle::handleInput(NancyInput &input) {
for (uint i = 0; i < input.otherKbdInput.size(); ++i) {
Common::KeyState &key = input.otherKbdInput[i];
Common::String &activeField = _passwordFieldIsActive ? _playerPasswordInput : _playerNameInput;
+ uint maxStringLength = _maxStringLength;
+ if (g_nancy->getGameType() >= kGameTypeNancy8)
+ maxStringLength = _passwordFieldIsActive ? _maxPassLength : _maxNameLength;
+
if (key.keycode == Common::KEYCODE_BACKSPACE) {
if (activeField.size() && activeField.lastChar() == '-' ? activeField.size() > 1 : true) {
if (activeField.lastChar() == '-') {
@@ -221,13 +229,13 @@ void PasswordPuzzle::handleInput(NancyInput &input) {
_playerHasHitReturn = true;
} else if (Common::isAlnum(key.ascii) || Common::isSpace(key.ascii)) {
if (activeField.size() && activeField.lastChar() == '-') {
- if (activeField.size() <= _maxStringLength + 1) {
+ if (activeField.size() < maxStringLength + 1) {
activeField.deleteLastChar();
activeField += key.ascii;
activeField += '-';
}
} else {
- if (activeField.size() <= _maxStringLength) {
+ if (activeField.size() < maxStringLength) {
activeField += key.ascii;
}
}
diff --git a/engines/nancy/action/puzzle/passwordpuzzle.h b/engines/nancy/action/puzzle/passwordpuzzle.h
index 049ceac4a6f..4713b0e0da1 100644
--- a/engines/nancy/action/puzzle/passwordpuzzle.h
+++ b/engines/nancy/action/puzzle/passwordpuzzle.h
@@ -62,6 +62,8 @@ public:
SolveState _solveState = kNotSolved;
uint _maxStringLength = 0;
+ uint _maxNameLength = 0;
+ uint _maxPassLength = 0;
protected:
Common::String getRecordTypeName() const override { return "PasswordPuzzle"; }
Commit: 8dc45d78578c56ea81f8e753fb6dbc9a5824d542
https://github.com/scummvm/scummvm/commit/8dc45d78578c56ea81f8e753fb6dbc9a5824d542
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2026-05-02T05:46:12+03:00
Commit Message:
NANCY: Add game IDs for all potential supported games
- Game IDs have been sorted by release date
- Add detection entries for all English versions up to Nancy 1
remastered
- Add a hack for compressed resource flags to allow Nancy14 + 15
resources to be loaded
- Mark Nancy16 and newer games as unsupported, as the COF files in
these games use a newer unsupported version, so game resources
can't be handled yet
- Still missing detection entries for Nancy23 - Nancy32
- Fix #16300
Changed paths:
engines/nancy/cif.cpp
engines/nancy/detection.h
engines/nancy/detection_tables.h
engines/nancy/nancy.cpp
diff --git a/engines/nancy/cif.cpp b/engines/nancy/cif.cpp
index 8097979921d..48294eea031 100644
--- a/engines/nancy/cif.cpp
+++ b/engines/nancy/cif.cpp
@@ -60,6 +60,12 @@ static void syncCifInfo(Common::Serializer &ser, CifInfo &info, bool tree) {
if (!tree) {
info.dataOffset = ser.bytesSynced();
}
+
+ // HACK: Since Nancy14, the compression flag isn't set
+ // in the header. Try to detect compressed files by the
+ // presence of a compressed size
+ if (g_nancy->getGameType() >= kGameTypeNancy14 && info.compressedSize > 0)
+ info.comp = CifInfo::kResCompression;
}
// Reads the data for ciftree cif files
@@ -303,6 +309,7 @@ bool CifTree::sync(Common::Serializer &ser) {
uint32 ver = (g_nancy->getGameType() <= kGameTypeNancy1) ? 0 : 1;
ser.syncAsUint16LE(ver);
+ // TODO: Nancy16 introduced version 3
if (ver != 0 && ver != 1 && ver != 2) {
warning("Unsupported version %d found in CifTree '%s'", ver, _name.toString().c_str());
return false;
diff --git a/engines/nancy/detection.h b/engines/nancy/detection.h
index 37d8d68de25..1f954665307 100644
--- a/engines/nancy/detection.h
+++ b/engines/nancy/detection.h
@@ -28,20 +28,42 @@ namespace Nancy {
enum GameType {
kGameTypeNone = 0,
- kGameTypeVampire = 1,
- kGameTypeNancy1 = 2,
- kGameTypeNancy2 = 3,
- kGameTypeNancy3 = 4,
- kGameTypeNancy4 = 5,
- kGameTypeNancy5 = 6,
- kGameTypeNancy6 = 7,
- kGameTypeNancy7 = 8,
- kGameTypeNancy8 = 9,
- kGameTypeNancy9 = 10,
- kGameTypeNancy10 = 11,
- kGameTypeNancy11 = 12,
- kGameTypeNancy12 = 13,
- kGameTypeNancy13 = 14,
+ kGameTypeVampire = 1, // The Vampire Diaries - 1996-11-01
+ kGameTypeNancy1 = 2, // Secrets Can Kill - 1998-11-05
+ kGameTypeNancy2 = 3, // Stay Tuned for Danger - 1999-11-13
+ kGameTypeNancy3 = 4, // Message in a Haunted Mansion - 2000-11-24
+ kGameTypeNancy4 = 5, // Treasure in the Royal Tower - 2001-08-01
+ kGameTypeNancy5 = 6, // The Final Scene - 2001-11-01
+ kGameTypeNancy6 = 7, // Secret of the Scarlet Hand - 2002-08-12
+ kGameTypeNancy7 = 8, // Ghost Dogs of Moon Lake - 2002-11-01
+ kGameTypeNancy8 = 9, // The Haunted Carousel - 2003-08-22
+ kGameTypeNancy9 = 10, // Danger on Deception Island - 2003-10-03
+ kGameTypeNancy10 = 11, // The Secret of Shadow Ranch - 2004-08-30
+ kGameTypeNancy11 = 12, // Curse of Blackmoor Manor - 2004-10-05
+ kGameTypeNancy12 = 13, // Secret of the Old Clock - 2005-06-12
+ kGameTypeNancy13 = 14, // Last Train to Blue Moon Canyon - 2005-09-15
+ kGameTypeNancy14 = 15, // Danger by Design - 2006-07-24
+ kGameTypeNancy15 = 16, // The Creature of Kapu Cave - 2006-10-01
+ kGameTypeNancy16 = 17, // The White Wolf of Icicle Creek - 2007-06-07
+ kGameTypeNancy17 = 18, // Legend of the Crystal Skull - 2007-10-08
+ kGameTypeNancy18 = 19, // The Phantom of Venice - 2008-07-11
+ kGameTypeNancy19 = 20, // The Haunting of Castle Malloy - 2008-10-16
+ kGameTypeNancy20 = 21, // Ransom of the Seven Ships - 2009-07-14 (discontinued)
+ kGameTypeNancy21 = 22, // Warnings at Waverly Academy - 2009-10-13
+ kGameTypeNancy22 = 23, // Trail of the Twister - 2010-06-29
+ kGameTypeNancy1New = 24,// Secrets Can Kill Remastered - 2010-08-24
+ kGameTypeNancy23 = 25, // Shadow at the Water's Edge - 2010-10-19
+ kGameTypeNancy24 = 26, // The Captive Curse - 2011-06-28
+ kGameTypeNancy25 = 27, // Alibi in Ashes - 2011-10-18
+ kGameTypeNancy26 = 28, // Tomb of the Lost Queen - 2012-05-08
+ kGameTypeNancy27 = 29, // The Deadly Device - 2012-10-23
+ kGameTypeNancy28 = 30, // Ghost of Thornton Hall - 2013-05-14
+ kGameTypeNancy29 = 31, // The Silent Spy - 2013-10-22
+ kGameTypeNancy30 = 32, // The Shattered Medallion - 2014-05-20
+ kGameTypeNancy31 = 33, // Labyrinth of Lies - 2014-10-14
+ kGameTypeNancy32 = 34, // Sea of Darkness - 2015-05-19
+ // Midnight in Salem was made with Unity
+ // Mystery of the Seven Keys was made with Unity
};
enum NancyGameFlags {
diff --git a/engines/nancy/detection_tables.h b/engines/nancy/detection_tables.h
index b1baf1273ec..c03481c974d 100644
--- a/engines/nancy/detection_tables.h
+++ b/engines/nancy/detection_tables.h
@@ -19,6 +19,8 @@
*
*/
+#include "detection.h"
+
namespace Nancy {
static const PlainGameDescriptor nancyGames[] = {
@@ -37,6 +39,28 @@ static const PlainGameDescriptor nancyGames[] = {
{ "nancy11", "Nancy Drew: Curse of Blackmoor Manor" },
{ "nancy12", "Nancy Drew: Secret of the Old Clock" },
{ "nancy13", "Nancy Drew: Last Train to Blue Moon Canyon" },
+ { "nancy14", "Nancy Drew: Danger by Design" },
+ { "nancy15", "Nancy Drew: The Creature of Kapu Cave" },
+ { "nancy16", "Nancy Drew: The White Wolf of Icicle Creek" },
+ { "nancy17", "Nancy Drew: Legend of the Crystal Skull" },
+ { "nancy18", "Nancy Drew: The Phantom of Venice" },
+ { "nancy19", "Nancy Drew: The Haunting of Castle Malloy" },
+ { "nancy20", "Nancy Drew: Ransom of the Seven Ships" }, // Discontinued
+ { "nancy21", "Nancy Drew: Warnings at Waverly Academy" },
+ { "nancy22", "Nancy Drew: Trail of the Twister" },
+ { "nancy1new", "Nancy Drew: Secrets Can Kill Remastered" },
+ { "nancy23", "Nancy Drew: Shadow at the Water's Edge" },
+ { "nancy24", "Nancy Drew: The Captive Curse" },
+ { "nancy25", "Nancy Drew: Alibi in Ashes" },
+ { "nancy26", "Nancy Drew: Tomb of the Lost Queen" },
+ { "nancy27", "Nancy Drew: The Deadly Device" },
+ { "nancy28", "Nancy Drew: Ghost of Thornton Hall" },
+ { "nancy29", "Nancy Drew: The Silent Spy" },
+ { "nancy30", "Nancy Drew: The Shattered Medallion" },
+ { "nancy31", "Nancy Drew: Labyrinth of Lies" },
+ { "nancy32", "Nancy Drew: Sea of Darkness" },
+ // Midnight in Salem was made with Unity
+ // Mystery of the Seven Keys was made with Unity
{ nullptr, nullptr }
};
@@ -757,6 +781,105 @@ static const NancyGameDescription gameDescriptions[] = {
},
kGameTypeNancy13
},
+ { // MD5 by bluegr
+ {
+ "nancy14", nullptr,
+ AD_ENTRY1s("ciftree.dat", "731ae1a9e194757c6d23fda799142bd7", 44679840),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_UNSTABLE | ADGF_DROPPLATFORM,
+ NANCY8_GUIOPTIONS
+ },
+ kGameTypeNancy14
+ },
+ { // MD5 by bluegr
+ {
+ "nancy15", nullptr,
+ AD_ENTRY1s("ciftree.dat", "9c5af8a00225a528fe03f52d3664740d", 38659635),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_UNSTABLE | ADGF_DROPPLATFORM,
+ NANCY8_GUIOPTIONS
+ },
+ kGameTypeNancy15
+ },
+ { // MD5 by bluegr
+ {
+ "nancy16", nullptr,
+ AD_ENTRY1s("ciftree.dat", "4014eba84276281456cdba1fa9c03389", 45713842),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_UNSUPPORTED | ADGF_DROPPLATFORM,
+ NANCY8_GUIOPTIONS
+ },
+ kGameTypeNancy16
+ },
+ { // MD5 by bluegr
+ {
+ "nancy17", nullptr,
+ AD_ENTRY1s("ciftree.dat", "039950bfb8d1d614727ace5359ba6e20", 55775218),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_UNSUPPORTED | ADGF_DROPPLATFORM,
+ NANCY8_GUIOPTIONS
+ },
+ kGameTypeNancy17
+ },
+ { // MD5 by bluegr
+ {
+ "nancy18", nullptr,
+ AD_ENTRY1s("ciftree.dat", "f414a802b64d3a9e28ba8e69e953a2b8", 50123969),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_UNSUPPORTED | ADGF_DROPPLATFORM,
+ NANCY8_GUIOPTIONS
+ },
+ kGameTypeNancy18
+ },
+ { // MD5 by bluegr
+ {
+ "nancy19", nullptr,
+ AD_ENTRY1s("ciftree.dat", "e1d50b6fc3b72335863a45fdaf6f3da7", 53613856),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_UNSUPPORTED | ADGF_DROPPLATFORM,
+ NANCY8_GUIOPTIONS
+ },
+ kGameTypeNancy19
+ },
+ { // MD5 by bluegr
+ {
+ "nancy21", nullptr,
+ AD_ENTRY1s("ciftree.dat", "25249fabe11f2b865203284e798b8c09", 58348182),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_UNSUPPORTED | ADGF_DROPPLATFORM,
+ NANCY8_GUIOPTIONS
+ },
+ kGameTypeNancy21
+ },
+ { // MD5 by bluegr
+ {
+ "nancy22", nullptr,
+ AD_ENTRY1s("ciftree.dat", "2aa05fbc4f06f71ed98d092b60043c0e", 109670993),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_UNSUPPORTED | ADGF_DROPPLATFORM,
+ NANCY8_GUIOPTIONS
+ },
+ kGameTypeNancy22
+ },
+ { // MD5 by bluegr
+ {
+ "nancy1new", nullptr,
+ AD_ENTRY1s("ciftree.dat", "27dc04f52f2022c7eae8028b0b0dd215", 15296357),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_UNSUPPORTED | ADGF_DROPPLATFORM,
+ NANCY8_GUIOPTIONS
+ },
+ kGameTypeNancy1New
+ },
// Do not delete
{ AD_TABLE_END_MARKER, kGameTypeNone }
diff --git a/engines/nancy/nancy.cpp b/engines/nancy/nancy.cpp
index 9958cf6b01d..9dd72a66352 100644
--- a/engines/nancy/nancy.cpp
+++ b/engines/nancy/nancy.cpp
@@ -101,7 +101,7 @@ NancyEngine::~NancyEngine() {
}
NancyEngine *NancyEngine::create(GameType type, OSystem *syst, const NancyGameDescription *gd) {
- if (type >= kGameTypeVampire && type <= kGameTypeNancy13) {
+ if (type >= kGameTypeVampire && type <= kGameTypeNancy32) {
return new NancyEngine(syst, gd);
}
More information about the Scummvm-git-logs
mailing list