[Scummvm-git-logs] scummvm master -> 6a3bf6f80ba92122ed51ee368de10c52d51d5712

bluegr noreply at scummvm.org
Wed Jun 17 01:32:26 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:
d5b055df85 NANCY: Fix cursors set by game scripts in Nancy10+
6a3bf6f80b NANCY: Fixes for the notebook popup in Nancy10+


Commit: d5b055df8501e6b233195d2a7525bb4f692df12d
    https://github.com/scummvm/scummvm/commit/d5b055df8501e6b233195d2a7525bb4f692df12d
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2026-06-17T04:27:30+03:00

Commit Message:
NANCY: Fix cursors set by game scripts in Nancy10+

Changed paths:
    engines/nancy/cursor.cpp


diff --git a/engines/nancy/cursor.cpp b/engines/nancy/cursor.cpp
index 6e9ad58c165..68c3e3c098f 100644
--- a/engines/nancy/cursor.cpp
+++ b/engines/nancy/cursor.cpp
@@ -147,8 +147,13 @@ uint CursorManager::resolveNancy10CursorID(CursorType type, int16 itemID, bool s
 		return itemsOffset + (uint)itemID * 2 + variant;
 	}
 
-	if (setFromScript)
-		return type;
+	if (setFromScript) {
+		// Scripts store a raw cursor type number T, while the chunk lays
+		// each type out as a [idle, hotspot] pair (slots T*2 and T*2+1).
+		// Script cursors are only ever applied while hovering a hotspot,
+		// so we always pick the hotspot variant.
+		return (uint)type * 2 + 1;
+	}
 
 	// System cursors: translate the legacy CursorType to the matching
 	// kNew* idle slot. Each Nancy 10+ cursor type T occupies a pair


Commit: 6a3bf6f80ba92122ed51ee368de10c52d51d5712
    https://github.com/scummvm/scummvm/commit/6a3bf6f80ba92122ed51ee368de10c52d51d5712
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2026-06-17T04:31:39+03:00

Commit Message:
NANCY: Fixes for the notebook popup in Nancy10+

- Remove hardcoded text for senior detective tasks page
- Fixes for notebook checkboxes

Changed paths:
    engines/nancy/ui/notebookpopup.cpp


diff --git a/engines/nancy/ui/notebookpopup.cpp b/engines/nancy/ui/notebookpopup.cpp
index 73037a51983..9e46c12d915 100644
--- a/engines/nancy/ui/notebookpopup.cpp
+++ b/engines/nancy/ui/notebookpopup.cpp
@@ -442,12 +442,12 @@ void NotebookPopup::buildTextLines() {
 
 	const CVTX *autotext = (const CVTX *)g_nancy->getEngineData("AUTOTEXT");
 
-	// Senior-detective Tasks page: hide the to-do list and show the
-	// AUTOTEXT placeholder body instead.
-	if (surfaceID == kNotebookTabTasks && NancySceneState.getDifficulty() == 2) {
-		// TODO: This is specific for Nancy10, adapt it for others, too
-		if (autotext->texts.contains("SHAT70")) {
-			addTextLine(autotext->texts["SHAT70"]);
+	// Senior-detective Tasks: chunk supplies a CVTX placeholder.
+	if (surfaceID == kNotebookTabTasks && NancySceneState.getDifficulty() != 0 &&
+			_uinbData->useFilenameTextFlag != 0 && autotext) {
+		Common::String key = _uinbData->conditionalTextFilename.toString();
+		if (!key.empty() && autotext->texts.contains(key)) {
+			addTextLine(autotext->texts[key]);
 		}
 		return;
 	}
@@ -460,11 +460,16 @@ void NotebookPopup::buildTextLines() {
 		Common::String stringID = entries[i].stringID;
 		Common::String body = getTextFromCaseInsensitiveKey(autotext->texts, stringID);
 
-		// Tasks are prefixed with a checkbox showing completion state.
-		// mark % 10 == 8 means "complete".
-		if (surfaceID == kNotebookTabTasks) {
-			const uint16 markStatus = entries[i].mark % 10;
-			body = Common::String(markStatus == 8 ? "<2>" : "<1>") + body;
+		// Task rows get a `<N>` prefix that turns into a MARK sprite;
+		// the "complete" sentinel (8) maps to secondaryFontAttr.
+		if (surfaceID == kNotebookTabTasks && entries[i].mark != 0) {
+			uint16 markValue = entries[i].mark;
+			if (markValue == 8) {
+				markValue = _uinbData->secondaryFontAttr;
+			}
+			if (markValue >= 1 && markValue <= 5) {
+				body = Common::String::format("<%u>", markValue) + body;
+			}
 		}
 
 		addTextLine(body);




More information about the Scummvm-git-logs mailing list