[Scummvm-git-logs] scummvm master -> 05a75ada1209327eb0b889b3ab734f118267784f

bluegr noreply at scummvm.org
Fri Sep 25 06:41:51 UTC 2026


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
05a75ada12 NANCY: NANCY15: Handle the player character in the ControlUIItems AR


Commit: 05a75ada1209327eb0b889b3ab734f118267784f
    https://github.com/scummvm/scummvm/commit/05a75ada1209327eb0b889b3ab734f118267784f
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2026-09-25T09:41:44+03:00

Commit Message:
NANCY: NANCY15: Handle the player character in the ControlUIItems AR

Now the phone call sequence when switching to Frank, after the story
puzzle, is started correctly

Changed paths:
    engines/nancy/action/miscrecords.cpp
    engines/nancy/action/miscrecords.h


diff --git a/engines/nancy/action/miscrecords.cpp b/engines/nancy/action/miscrecords.cpp
index 5bd810f380f..4d5062441bd 100644
--- a/engines/nancy/action/miscrecords.cpp
+++ b/engines/nancy/action/miscrecords.cpp
@@ -235,7 +235,12 @@ void FrameTextBox::execute() {
 }
 
 void ControlUIItems::readData(Common::SeekableReadStream &stream) {
-	_uiButton = stream.readUint16LE();
+	if (g_nancy->getGameType() >= kGameTypeNancy15) {
+		_uiButton = stream.readByte();
+		_characterIndex = stream.readByte();
+	} else {
+		_uiButton = stream.readUint16LE();
+	}
 	_autoOpenOrBadgeSound = stream.readByte();
 	_flagB  = stream.readByte();
 	_startScene = stream.readSint16LE();
@@ -287,8 +292,12 @@ void ControlUIItems::execute() {
 		// (kNoScene). _flagB != 0 also sets the disabled button's rejection-sound
 		// mode from _autoOpenOrBadgeSound (which clickSoundName line plays when
 		// the button is clicked while its popup is unavailable).
+		// Nancy15 keeps separate overrides per player character. Only the
+		// active character's taskbar is modeled, so skip the others'.
+		uint characterIndex = _characterIndex == kPlayerCharacterActive ?
+			g_nancy->getPlayerCharacter() : _characterIndex;
 		UI::Taskbar *taskbar = NancySceneState.getTaskbar();
-		if (taskbar) {
+		if (taskbar && characterIndex == g_nancy->getPlayerCharacter()) {
 			if (_flagB != 0) {
 				int16 start = _startScene;
 				int16 end = _endScene;
diff --git a/engines/nancy/action/miscrecords.h b/engines/nancy/action/miscrecords.h
index 434a79991a0..e0b461291f4 100644
--- a/engines/nancy/action/miscrecords.h
+++ b/engines/nancy/action/miscrecords.h
@@ -153,14 +153,15 @@ public:
 	void execute() override;
 
 	uint16 _uiButton = 0;
+	byte _characterIndex = kPlayerCharacterActive; // Nancy15+: whose taskbar the disable applies to
 	byte _autoOpenOrBadgeSound = 0; // 1 = auto-open popup; 0/10 = notification-badge click-sound selector
 	byte _flagB = 0;    // 0 = clear, 1 = enable+remember scene
 	int16 _startScene = 0; // start scene id (9999 = none); also the auto-open cell phone's call target
 	int16 _endScene = 0;   // end scene id (9999 = none)
 
 	Common::String getRecordExtraInfo() const override {
-		return Common::String::format("uiButton: %d, autoOpenOrBadgeSound: %d, flagB: %d, startScene: %d, endScene: %d",
-									  _uiButton, _autoOpenOrBadgeSound, _flagB, _startScene, _endScene);
+		return Common::String::format("uiButton: %d, character: %d, autoOpenOrBadgeSound: %d, flagB: %d, startScene: %d, endScene: %d",
+									  _uiButton, _characterIndex, _autoOpenOrBadgeSound, _flagB, _startScene, _endScene);
 	}
 
 protected:




More information about the Scummvm-git-logs mailing list