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

sev- noreply at scummvm.org
Sat May 25 00:32:31 UTC 2024


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

Summary:
e9695c57af DIRECTOR: DEBUGGER: Rearranged Vars window


Commit: e9695c57af855153647cf5acc332949b5217e6a2
    https://github.com/scummvm/scummvm/commit/e9695c57af855153647cf5acc332949b5217e6a2
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-05-25T02:31:36+02:00

Commit Message:
DIRECTOR: DEBUGGER: Rearranged Vars window

Put all variables into collapsable groups and
moved Global vars to the very top

Changed paths:
    engines/director/debugtools.cpp


diff --git a/engines/director/debugtools.cpp b/engines/director/debugtools.cpp
index cc074b4950d..ba6ea852673 100644
--- a/engines/director/debugtools.cpp
+++ b/engines/director/debugtools.cpp
@@ -2163,53 +2163,55 @@ static void showVars() {
 	ImGui::SetNextWindowSize(ImVec2(300, 250), ImGuiCond_FirstUseEver);
 	if (ImGui::Begin("Vars", &_state->_w.vars)) {
 		Common::Array<Common::String> keyBuffer;
-		const ImVec4 head_color = ImVec4(0.9f, 0.08f, 0.0f, 1.0f);
 
-		ImGui::TextColored(head_color, "Local vars:");
-		if (!_state->_vars._locals.empty()) {
-			for (auto &it : _state->_vars._locals) {
+		if (ImGui::CollapsingHeader("Global vars:", ImGuiTreeNodeFlags_DefaultOpen)) {
+			for (auto &it : _state->_vars._globals) {
 				keyBuffer.push_back(it._key);
 			}
 			Common::sort(keyBuffer.begin(), keyBuffer.end());
 			for (auto &i : keyBuffer) {
-				Datum &val = _state->_vars._locals.getVal(i);
+				Datum &val = _state->_vars._globals.getVal(i);
 				displayVariable(i);
 				ImGui::SameLine();
 				ImGui::Text(" - [%s] %s", val.type2str(), formatStringForDump(val.asString(true)).c_str());
 			}
 			keyBuffer.clear();
-		} else {
-			ImGui::Text("  (no local vars)");
 		}
-
-		if (lingo->_state->me.type == OBJECT && lingo->_state->me.u.obj->getObjType() & (kFactoryObj | kScriptObj)) {
-			ScriptContext *script = static_cast<ScriptContext *>(lingo->_state->me.u.obj);
-			ImGui::TextColored(head_color, "Instance/property vars:");
-			for (uint32 i = 1; i <= script->getPropCount(); i++) {
-				keyBuffer.push_back(script->getPropAt(i));
-			}
-			Common::sort(keyBuffer.begin(), keyBuffer.end());
-			for (auto &i : keyBuffer) {
-				Datum val = script->getProp(i);
-				displayVariable(i);
-				ImGui::SameLine();
-				ImGui::Text(" - [%s] %s", val.type2str(), formatStringForDump(val.asString(true)).c_str());
+		if (ImGui::CollapsingHeader("Local vars:", ImGuiTreeNodeFlags_None)) {
+			if (!_state->_vars._locals.empty()) {
+				for (auto &it : _state->_vars._locals) {
+					keyBuffer.push_back(it._key);
+				}
+				Common::sort(keyBuffer.begin(), keyBuffer.end());
+				for (auto &i : keyBuffer) {
+					Datum &val = _state->_vars._locals.getVal(i);
+					displayVariable(i);
+					ImGui::SameLine();
+					ImGui::Text(" - [%s] %s", val.type2str(), formatStringForDump(val.asString(true)).c_str());
+				}
+				keyBuffer.clear();
+			} else {
+				ImGui::Text("  (no local vars)");
 			}
-			keyBuffer.clear();
 		}
-
-		ImGui::TextColored(head_color, "Global vars:");
-		for (auto &it : _state->_vars._globals) {
-			keyBuffer.push_back(it._key);
-		}
-		Common::sort(keyBuffer.begin(), keyBuffer.end());
-		for (auto &i : keyBuffer) {
-			Datum &val = _state->_vars._globals.getVal(i);
-			displayVariable(i);
-			ImGui::SameLine();
-			ImGui::Text(" - [%s] %s", val.type2str(), formatStringForDump(val.asString(true)).c_str());
+		if (ImGui::CollapsingHeader("Instance/property vars:", ImGuiTreeNodeFlags_None)) {
+			if (lingo->_state->me.type == OBJECT && lingo->_state->me.u.obj->getObjType() & (kFactoryObj | kScriptObj)) {
+				ScriptContext *script = static_cast<ScriptContext *>(lingo->_state->me.u.obj);
+				for (uint32 i = 1; i <= script->getPropCount(); i++) {
+					keyBuffer.push_back(script->getPropAt(i));
+				}
+				Common::sort(keyBuffer.begin(), keyBuffer.end());
+				for (auto &i : keyBuffer) {
+					Datum val = script->getProp(i);
+					displayVariable(i);
+					ImGui::SameLine();
+					ImGui::Text(" - [%s] %s", val.type2str(), formatStringForDump(val.asString(true)).c_str());
+				}
+				keyBuffer.clear();
+			} else {
+				ImGui::Text("  (no instance or property)");
+			}
 		}
-		keyBuffer.clear();
 	}
 	ImGui::End();
 }




More information about the Scummvm-git-logs mailing list