[Scummvm-git-logs] scummvm master -> e75be91f414fb691f2611fb6db99f005e170f6fd
bluegr
noreply at scummvm.org
Thu Apr 9 06:38:28 UTC 2026
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
31591e5a1b NANCY: Start mapping new cursors for Nancy10+
e75be91f41 NANCY: Map more scene movement AR actions for Nancy10+
Commit: 31591e5a1b53cb437329f87a40fc6ded6e2beaf9
https://github.com/scummvm/scummvm/commit/31591e5a1b53cb437329f87a40fc6ded6e2beaf9
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2026-04-09T09:37:12+03:00
Commit Message:
NANCY: Start mapping new cursors for Nancy10+
Still not right, but noticeably better
Changed paths:
engines/nancy/cursor.cpp
engines/nancy/cursor.h
diff --git a/engines/nancy/cursor.cpp b/engines/nancy/cursor.cpp
index 99891744485..263832ef519 100644
--- a/engines/nancy/cursor.cpp
+++ b/engines/nancy/cursor.cpp
@@ -135,21 +135,15 @@ void CursorManager::setCursor(CursorType type, int16 itemID) {
// value of the CursorType enum.
switch (type) {
case kNormalArrow:
- if (gameType >= kGameTypeNancy10)
- _curCursorID = 8;
- else
- _curCursorID = _numCursorTypes;
+ _curCursorID = (gameType >= kGameTypeNancy10) ? kNewNormalArrow: _numCursorTypes;
return;
case kHotspotArrow:
- if (gameType >= kGameTypeNancy10)
- _curCursorID = 9;
- else
- _curCursorID = _numCursorTypes + 1;
+ _curCursorID = (gameType >= kGameTypeNancy10) ? kNewHotspotArrow : _numCursorTypes + 1;
return;
case kInvertedRotateLeft:
// Only valid for nancy6 and up
if (gameType >= kGameTypeNancy6) {
- _curCursorID = kInvertedRotateLeft;
+ _curCursorID = (gameType >= kGameTypeNancy10) ? kNewInvertedRotateLeft : kInvertedRotateLeft;
return;
}
@@ -157,7 +151,7 @@ void CursorManager::setCursor(CursorType type, int16 itemID) {
case kRotateLeft:
// Only valid for nancy6 and up
if (gameType >= kGameTypeNancy6) {
- _curCursorID = kRotateLeft;
+ _curCursorID = (gameType >= kGameTypeNancy10) ? kNewRotateLeft : kRotateLeft;
return;
}
@@ -165,7 +159,7 @@ void CursorManager::setCursor(CursorType type, int16 itemID) {
case kMoveLeft:
// Only valid for nancy3 and up
if (gameType >= kGameTypeNancy3) {
- _curCursorID = kMoveLeft;
+ _curCursorID = (gameType >= kGameTypeNancy10) ? kNewMoveLeft : kMoveLeft;
return;
} else {
type = kMove;
@@ -175,7 +169,7 @@ void CursorManager::setCursor(CursorType type, int16 itemID) {
case kInvertedRotateRight:
// Only valid for nancy6 and up
if (gameType >= kGameTypeNancy6) {
- _curCursorID = kInvertedRotateRight;
+ _curCursorID = (gameType >= kGameTypeNancy10) ? kNewInvertedRotateRight : kInvertedRotateRight;
return;
}
@@ -183,7 +177,7 @@ void CursorManager::setCursor(CursorType type, int16 itemID) {
case kRotateRight:
// Only valid for nancy6 and up
if (gameType >= kGameTypeNancy6) {
- _curCursorID = kRotateRight;
+ _curCursorID = (gameType >= kGameTypeNancy10) ? kNewRotateRight : kRotateRight;
return;
}
@@ -191,7 +185,7 @@ void CursorManager::setCursor(CursorType type, int16 itemID) {
case kMoveRight:
// Only valid for nancy3 and up
if (gameType >= kGameTypeNancy3) {
- _curCursorID = kMoveRight;
+ _curCursorID = (gameType >= kGameTypeNancy10) ? kNewMoveRight : kMoveRight;
return;
} else {
type = kMove;
@@ -201,7 +195,7 @@ void CursorManager::setCursor(CursorType type, int16 itemID) {
case kMoveUp:
// Only valid for nancy4 and up
if (gameType >= kGameTypeNancy4) {
- _curCursorID = kMoveUp;
+ _curCursorID = (gameType >= kGameTypeNancy10) ? kNewMoveUp : kMoveUp;
return;
} else {
type = kMove;
@@ -211,7 +205,7 @@ void CursorManager::setCursor(CursorType type, int16 itemID) {
case kMoveDown:
// Only valid for nancy4 and up
if (gameType >= kGameTypeNancy4) {
- _curCursorID = kMoveDown;
+ _curCursorID = (gameType >= kGameTypeNancy10) ? kNewMoveDown : kMoveDown;
return;
} else {
type = kMove;
@@ -221,7 +215,7 @@ void CursorManager::setCursor(CursorType type, int16 itemID) {
case kMoveForward:
// Only valid for nancy4 and up
if (gameType >= kGameTypeNancy4) {
- _curCursorID = kMoveForward;
+ _curCursorID = (gameType >= kGameTypeNancy10) ? kNewMoveForward : kMoveForward;
return;
} else {
type = kHotspot;
@@ -231,7 +225,7 @@ void CursorManager::setCursor(CursorType type, int16 itemID) {
case kMoveBackward:
// Only valid for nancy4 and up
if (gameType >= kGameTypeNancy4) {
- _curCursorID = kMoveBackward;
+ _curCursorID = (gameType >= kGameTypeNancy10) ? kNewMoveBackward : kMoveBackward;
return;
} else {
type = kHotspot;
@@ -241,16 +235,16 @@ void CursorManager::setCursor(CursorType type, int16 itemID) {
case kExit:
// Not valid in TVD
if (gameType != kGameTypeVampire) {
- _curCursorID = 3;
+ _curCursorID = (gameType >= kGameTypeNancy10) ? kNewExit : kExit;
return;
}
break;
case kRotateCW:
- _curCursorID = kRotateCW;
+ _curCursorID = (gameType >= kGameTypeNancy10) ? kNewRotateCW : kRotateCW;
return;
case kRotateCCW:
- _curCursorID = kRotateCCW;
+ _curCursorID = (gameType >= kGameTypeNancy10) ? kNewRotateCCW : kRotateCCW;
return;
default:
break;
diff --git a/engines/nancy/cursor.h b/engines/nancy/cursor.h
index 42622d6d1eb..16c88371d41 100644
--- a/engines/nancy/cursor.h
+++ b/engines/nancy/cursor.h
@@ -56,8 +56,27 @@ public:
kCustom1Hotspot = 17,
kCustom2 = 18,
kCustom2Hotspot = 19,
- kNormalArrow,
- kHotspotArrow
+ kNormalArrow = 20,
+ kHotspotArrow = 21,
+
+ // Cursors in Nancy10 and newer games
+ kNewNormal = 0, // Eyeglass, non-highlighted
+ kNewHotspot = 1, // Eyeglass, highlighted
+ kNewNormalArrow = 8,
+ kNewHotspotArrow = 9,
+ kNewExit = 10, // Used for movement and exiting puzzles
+ kNewRotateCW = 13, // Used in puzzles only
+ kNewRotateCCW = 14, // Used in puzzles only
+ kNewMoveLeft = 15, // Used for movement and turning in 360 scenes
+ kNewMoveRight = 16, // Used for movement and turning in 360 scenes
+ kNewMoveForward = 17, // Used for movement
+ kNewMoveBackward = 18, // Used for movement and exiting puzzles
+ kNewMoveUp = 19, // Used for movement
+ kNewMoveDown = 20, // Used for movement
+ kNewRotateRight = 21, // Used in 360 scenes
+ kNewRotateLeft = 22, // Used in 360 scenes
+ kNewInvertedRotateRight = 23, // Used in 360 scenes
+ kNewInvertedRotateLeft = 24, // Used in 360 scenes
};
CursorManager();
Commit: e75be91f414fb691f2611fb6db99f005e170f6fd
https://github.com/scummvm/scummvm/commit/e75be91f414fb691f2611fb6db99f005e170f6fd
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2026-04-09T09:37:13+03:00
Commit Message:
NANCY: Map more scene movement AR actions for Nancy10+
Changed paths:
engines/nancy/action/arfactory.cpp
diff --git a/engines/nancy/action/arfactory.cpp b/engines/nancy/action/arfactory.cpp
index 2de25ae3499..29ecec5fd53 100644
--- a/engines/nancy/action/arfactory.cpp
+++ b/engines/nancy/action/arfactory.cpp
@@ -90,12 +90,16 @@ ActionRecord *ActionManager::createActionRecord(uint16 type, Common::SeekableRea
if (g_nancy->getGameType() <= kGameTypeNancy9) {
return new HotMultiframeSceneChange(CursorManager::kHotspot);
} else {
- // TODO: Handle this correctly, as it messes up scene hotspots
- return nullptr;
- //return new HotSingleFrameSceneChange(true);
+ return new HotSingleFrameSceneChange(true);
}
case 12:
- return new SceneChange();
+ if (g_nancy->getGameType() <= kGameTypeNancy9) {
+ return new SceneChange();
+ } else {
+ // Nancy11+
+ // TODO: Handle this correctly
+ return nullptr;
+ }
case 13:
return new HotMultiframeMultisceneChange();
case 14:
More information about the Scummvm-git-logs
mailing list