[Scummvm-git-logs] scummvm master -> d62d250678f121c5e63f0a321122454995078bee

sev- noreply at scummvm.org
Thu Sep 4 22:12:06 UTC 2025


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

Summary:
86226b0ffb DIRECTOR: DT: Fix mode selector in Score viewer
ca05223e18 DIRECTOR: DT: Fix Score navigation
d62d250678 DIRECTOR: DT: Fixed duplicated table IDs for Score


Commit: 86226b0ffbe2695cb70f990d45ce06a286ad9e47
    https://github.com/scummvm/scummvm/commit/86226b0ffbe2695cb70f990d45ce06a286ad9e47
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-09-05T00:10:15+02:00

Commit Message:
DIRECTOR: DT: Fix mode selector in Score viewer

Changed paths:
    engines/director/debugger/dt-score.cpp


diff --git a/engines/director/debugger/dt-score.cpp b/engines/director/debugger/dt-score.cpp
index e9dc5faef2c..051ee63d011 100644
--- a/engines/director/debugger/dt-score.cpp
+++ b/engines/director/debugger/dt-score.cpp
@@ -564,7 +564,7 @@ void showScore() {
 
 			const char *selMode = modes[_state->_scoreMode];
 
-			if (ImGui::BeginCombo("##", selMode)) {
+			if (ImGui::BeginCombo("##mode", selMode)) {
 				for (int n = 0; n < ARRAYSIZE(modes); n++) {
 					const bool selected = (_state->_scoreMode == n);
 					if (ImGui::Selectable(modes[n], selected))


Commit: ca05223e1847f82519b9c3f9d6869a24e776681b
    https://github.com/scummvm/scummvm/commit/ca05223e1847f82519b9c3f9d6869a24e776681b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-09-05T00:10:44+02:00

Commit Message:
DIRECTOR: DT: Fix Score navigation

It was disabled with range rendering that broke the execution flow

Changed paths:
    engines/director/debugger/dt-score.cpp


diff --git a/engines/director/debugger/dt-score.cpp b/engines/director/debugger/dt-score.cpp
index 051ee63d011..a6e3af74c59 100644
--- a/engines/director/debugger/dt-score.cpp
+++ b/engines/director/debugger/dt-score.cpp
@@ -76,6 +76,24 @@ static void buildContinuationData() {
 			} else {
 				currentContinuation = f;
 			}
+
+			if (ch == 1 && prevSprite) {
+				warning("%02d: st: %d cid: %d sp: %d w: %d h: %d i: %d f: %d b: %d bl: %d in: %d t: %d",
+					f,
+					prevSprite->_spriteType == sprite._spriteType,
+					prevSprite->_castId == sprite._castId,
+					prevSprite->_startPoint == sprite._startPoint,
+					prevSprite->_width == sprite._width,
+					prevSprite->_height == sprite._height,
+					prevSprite->_ink == sprite._ink,
+					prevSprite->_foreColor == sprite._foreColor,
+					prevSprite->_backColor == sprite._backColor,
+					prevSprite->_blendAmount == sprite._blendAmount,
+					prevSprite->_inkData == sprite._inkData,
+					prevSprite->_thickness == sprite._thickness
+				);
+			}
+
 			_state->_continuationData[ch][f].first = currentContinuation;
 		}
 
@@ -168,15 +186,9 @@ static void displayScoreChannel(int ch, int mode, int modeSel) {
 		if (f + _state->_scoreFrameOffset == (int)currentFrameNum)
 			ImGui::TableSetBgColor(ImGuiTableBgTarget_CellBg, cell_bg_color);
 
-		if (ImGui::IsMouseClicked(ImGuiMouseButton_Left)) {
-			_state->_selectedScoreCast.frame = f + _state->_scoreFrameOffset - 1;
-			_state->_selectedScoreCast.channel = ch;
-		}
-
-		if (ImGui::IsItemHovered()) {
-			_state->_hoveredScoreCast.frame = f;
-			_state->_hoveredScoreCast.channel = ch;
-		}
+		if (f == _state->_selectedScoreCast.frame + _state->_scoreFrameOffset - 1 &&
+		  ch == _state->_selectedScoreCast.channel && mode <= kModeExtended)
+			ImGui::TableSetBgColor(ImGuiTableBgTarget_CellBg, ImGui::GetColorU32(ImVec4(1.0f, 0.3f, 0.3f, 0.6f)));
 
 		if (!(startCont == endCont) && (sprite._castId.member || sprite.isQDShape())) {
 			if (_state->_selectedScoreCast.frame + _state->_scoreFrameOffset - 1 >= startCont &&
@@ -196,38 +208,45 @@ static void displayScoreChannel(int ch, int mode, int modeSel) {
 			}
 		}
 
+		int mode1 = mode;
+
+		ImGui::PushID(ch * 10000 + f);
+
 		// If the frame is not the start, then don't render any text
 		if (f != startCont || !(sprite._castId.member || sprite.isQDShape())) {
 			if (f == endCont && sprite._castId.member && mode == _state->_scoreMode) {
 				ImGui::PushFont(ImGui::GetIO().FontDefault);
 				ImGui::TextUnformatted("-\uf819");
 				ImGui::PopFont();
+			} else {
+				ImGui::Selectable(" ");
 			}
-			continue;
+			mode1 = -1; // Skip cell data rendering
 		}
 
-		ImGui::PushID(ch * 10000 + f);
+		switch (mode1) {
+		case -1:
+			break;
 
-		switch (mode) {
 		case kModeMember:
 			if (sprite._castId.member)
-				ImGui::Text("%d", sprite._castId.member);
+				ImGui::Selectable(Common::String::format("%d", sprite._castId.member).c_str());
 			else if (sprite.isQDShape())
-				ImGui::TextUnformatted("Q");
+				ImGui::Selectable("Q");
 			else
-				ImGui::TextUnformatted("  ");
+				ImGui::Selectable("  ");
 			break;
 
 		case kModeInk:
-			ImGui::Text(inkType2str(sprite._ink));
+			ImGui::Selectable(Common::String::format("%s", inkType2str(sprite._ink)).c_str());
 			break;
 
 		case kModeLocation:
-			ImGui::Text("%d, %d", sprite._startPoint.x, sprite._startPoint.y);
+			ImGui::Selectable(Common::String::format("%d, %d", sprite._startPoint.x, sprite._startPoint.y).c_str());
 			break;
 
 		case kModeBlend:
-			ImGui::Text("%d", sprite._blendAmount);
+			ImGui::Selectable(Common::String::format("%d", sprite._blendAmount).c_str());
 			break;
 
 		case kModeBehavior:
@@ -236,27 +255,27 @@ static void displayScoreChannel(int ch, int mode, int modeSel) {
 
 		case kChTempo:
 			if (frame._mainChannels.tempo)
-				ImGui::Text("%d", frame._mainChannels.tempo);
+				ImGui::Selectable(Common::String::format("%d", frame._mainChannels.tempo).c_str());
 			break;
 
 		case kChPalette:
 			if (frame._mainChannels.palette.paletteId.member)
-				ImGui::Text("%d", frame._mainChannels.palette.paletteId.member);
+				ImGui::Selectable(Common::String::format("%d", frame._mainChannels.palette.paletteId.member).c_str());
 			break;
 
 		case kChTransition:
 			if (frame._mainChannels.transType)
-				ImGui::Text("%d", frame._mainChannels.transType);
+				ImGui::Selectable(Common::String::format("%d", frame._mainChannels.transType).c_str());
 			break;
 
 		case kChSound1:
 			if (frame._mainChannels.sound1.member)
-				ImGui::Text("%d", frame._mainChannels.sound1.member);
+				ImGui::Selectable(Common::String::format("%d", frame._mainChannels.sound1.member).c_str());
 			break;
 
 		case kChSound2:
 			if (frame._mainChannels.sound2.member)
-				ImGui::Text("%d", frame._mainChannels.sound2.member);
+				ImGui::Selectable(Common::String::format("%d", frame._mainChannels.sound2.member).c_str());
 			break;
 
 		case kChScript:
@@ -265,7 +284,7 @@ static void displayScoreChannel(int ch, int mode, int modeSel) {
 
 		case kModeExtended: // Render empty row
 		default:
-			ImGui::TextUnformatted("  ");
+			ImGui::Selectable("  ");
 		}
 
 		ImGui::PopID();


Commit: d62d250678f121c5e63f0a321122454995078bee
    https://github.com/scummvm/scummvm/commit/d62d250678f121c5e63f0a321122454995078bee
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-09-05T00:11:48+02:00

Commit Message:
DIRECTOR: DT: Fixed duplicated table IDs for Score

Changed paths:
    engines/director/debugger/dt-score.cpp


diff --git a/engines/director/debugger/dt-score.cpp b/engines/director/debugger/dt-score.cpp
index a6e3af74c59..578728c6480 100644
--- a/engines/director/debugger/dt-score.cpp
+++ b/engines/director/debugger/dt-score.cpp
@@ -210,7 +210,7 @@ static void displayScoreChannel(int ch, int mode, int modeSel) {
 
 		int mode1 = mode;
 
-		ImGui::PushID(ch * 10000 + f);
+		ImGui::PushID((ch + 10 - mode) * 10000 + f);
 
 		// If the frame is not the start, then don't render any text
 		if (f != startCont || !(sprite._castId.member || sprite.isQDShape())) {




More information about the Scummvm-git-logs mailing list