[Scummvm-git-logs] scummvm master -> 6120e49575ecb1ebbc7f1695cf6551b2f362c133

sev- noreply at scummvm.org
Wed Oct 30 00:08:33 UTC 2024


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

Summary:
4054c6baea QDENGINE: Dump condutions in human-readable form in XML
6120e49575 QDENGINE: More human-readable flags in XML output


Commit: 4054c6baea82e2109d11e14c445b0acffe8f58d2
    https://github.com/scummvm/scummvm/commit/4054c6baea82e2109d11e14c445b0acffe8f58d2
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-30T01:08:20+01:00

Commit Message:
QDENGINE: Dump condutions in human-readable form in XML

Changed paths:
    engines/qdengine/qdcore/qd_condition_group.cpp
    engines/qdengine/qdcore/qd_conditional_object.cpp


diff --git a/engines/qdengine/qdcore/qd_condition_group.cpp b/engines/qdengine/qdcore/qd_condition_group.cpp
index 37e5ae433ab..9418352f7ff 100644
--- a/engines/qdengine/qdcore/qd_condition_group.cpp
+++ b/engines/qdengine/qdcore/qd_condition_group.cpp
@@ -19,6 +19,8 @@
  *
  */
 
+#include "common/debug.h"
+
 #include "qdengine/qd_fwd.h"
 #include "qdengine/parser/qdscr_parser.h"
 #include "qdengine/parser/xml_tag_buffer.h"
@@ -87,7 +89,11 @@ bool qdConditionGroup::save_script(Common::WriteStream &fh, int indent) const {
 	}
 
 	fh.writeString("<condition_group");
-	fh.writeString(Common::String::format(" type=\"%d\"", (int)_conditions_mode));
+	if (debugChannelSet(-1, kDebugLog))
+		fh.writeString(Common::String::format(" type=\"%s\"", _conditions_mode == CONDITIONS_AND ? "CONDITIONS_AND" : "CONDITIONS_OR"));
+	else
+		fh.writeString(Common::String::format(" type=\"%d\"", (int)_conditions_mode));
+
 	fh.writeString(">");
 
 	fh.writeString(Common::String::format("%u", _conditions.size()));
diff --git a/engines/qdengine/qdcore/qd_conditional_object.cpp b/engines/qdengine/qdcore/qd_conditional_object.cpp
index 3dea2c3e1c4..417e938ae85 100644
--- a/engines/qdengine/qdcore/qd_conditional_object.cpp
+++ b/engines/qdengine/qdcore/qd_conditional_object.cpp
@@ -181,7 +181,10 @@ bool qdConditionalObject::save_conditions_script(Common::WriteStream &fh, int in
 			fh.writeString("\t");
 		}
 
-		fh.writeString(Common::String::format("<conditions_mode>%d</conditions_mode>\r\n", _conditions_mode));
+		if (debugChannelSet(-1, kDebugLog))
+			fh.writeString(Common::String::format("<conditions_mode>%s</conditions_mode>\r\n", _conditions_mode == CONDITIONS_AND ? "CONDITIONS_AND" : "CONDITIONS_OR"));
+		else
+			fh.writeString(Common::String::format("<conditions_mode>%d</conditions_mode>\r\n", _conditions_mode));
 	}
 
 	for (auto  &it : _condition_groups) {


Commit: 6120e49575ecb1ebbc7f1695cf6551b2f362c133
    https://github.com/scummvm/scummvm/commit/6120e49575ecb1ebbc7f1695cf6551b2f362c133
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-30T01:08:20+01:00

Commit Message:
QDENGINE: More human-readable flags in XML output

Changed paths:
    engines/qdengine/qdcore/qd_coords_animation.cpp
    engines/qdengine/qdcore/qd_coords_animation.h
    engines/qdengine/qdcore/qd_game_dispatcher.cpp
    engines/qdengine/qdcore/qd_game_object.cpp


diff --git a/engines/qdengine/qdcore/qd_coords_animation.cpp b/engines/qdengine/qdcore/qd_coords_animation.cpp
index ab81315aacc..7a9722fbd31 100644
--- a/engines/qdengine/qdcore/qd_coords_animation.cpp
+++ b/engines/qdengine/qdcore/qd_coords_animation.cpp
@@ -282,7 +282,11 @@ bool qdCoordsAnimation::save_script(Common::WriteStream &fh, int indent) const {
 		for (int i = 0; i <= indent; i++) {
 			fh.writeString("\t");
 		}
-		fh.writeString(Common::String::format("<flag>%d</flag>\r\n", flags()));
+
+		if (debugChannelSet(-1, kDebugLog))
+			fh.writeString(Common::String::format("<flag>%s</flag>\r\n", flag2str(flags()).c_str()));
+		else
+			fh.writeString(Common::String::format("<flag>%d</flag>\r\n", flags()));
 	}
 
 	if (NULL != _start_object) {
@@ -477,4 +481,36 @@ bool qdCoordsAnimation::save_data(Common::WriteStream &fh) const {
 	debugC(4, kDebugSave, "    qdCoordsAnimation::save_data(): after: %d", (int)fh.pos());
 	return true;
 }
+
+#define defFlag(x) { x, #x }
+
+struct FlagsList {
+	int f;
+	const char *s;
+} static flagList[] = {
+	defFlag(QD_COORDS_ANM_OBJECT_START_FLAG),
+	defFlag(QD_COORDS_ANM_LOOP_FLAG),
+	defFlag(QD_COORDS_ANM_RELATIVE_FLAG),
+};
+
+Common::String qdCoordsAnimation::flag2str(int fl) const {
+	Common::String res;
+
+	for (int i = 0; i < ARRAYSIZE(flagList); i++) {
+		if (fl & flagList[i].f) {
+			if (!res.empty())
+				res += " | ";
+
+			res += flagList[i].s;
+
+			fl &= ~flagList[i].f;
+		}
+	}
+
+	if (fl)
+		res += Common::String::format(" | %x", fl);
+
+	return res;
+}
+
 } // namespace QDEngine
diff --git a/engines/qdengine/qdcore/qd_coords_animation.h b/engines/qdengine/qdcore/qd_coords_animation.h
index dbd2fbc919a..7c63f93c493 100644
--- a/engines/qdengine/qdcore/qd_coords_animation.h
+++ b/engines/qdengine/qdcore/qd_coords_animation.h
@@ -129,6 +129,8 @@ public:
 	//! Запись данных в сэйв.
 	bool save_data(Common::WriteStream &fh) const;
 
+	Common::String flag2str(int flags) const;
+
 private:
 
 	qdCoordsAnimationType _type;
diff --git a/engines/qdengine/qdcore/qd_game_dispatcher.cpp b/engines/qdengine/qdcore/qd_game_dispatcher.cpp
index 8e722c6fa13..dc7ca96a425 100644
--- a/engines/qdengine/qdcore/qd_game_dispatcher.cpp
+++ b/engines/qdengine/qdcore/qd_game_dispatcher.cpp
@@ -1649,6 +1649,7 @@ bool qdGameDispatcher::check_condition(qdCondition *cnd) {
 		}
 		return false;
 	case qdCondition::CONDITION_KEYPRESS: {
+		warning("**** CONDITION_KEYPRESS");
 		int vkey;
 		if (!cnd->get_value(0, vkey)) return false;
 		return keyboardDispatcher::instance()->is_pressed(vkey);
diff --git a/engines/qdengine/qdcore/qd_game_object.cpp b/engines/qdengine/qdcore/qd_game_object.cpp
index 2835d9b300f..029028b7c1d 100644
--- a/engines/qdengine/qdcore/qd_game_object.cpp
+++ b/engines/qdengine/qdcore/qd_game_object.cpp
@@ -107,7 +107,11 @@ bool qdGameObject::save_script_body(Common::WriteStream &fh, int indent) const {
 		for (int i = 0; i <= indent; i++) {
 			fh.writeString("\t");
 		}
-		fh.writeString(Common::String::format("<flag>%d</flag>\r\n", flags()));
+
+		if (debugChannelSet(-1, kDebugLog))
+			fh.writeString(Common::String::format("<flag>%s</flag>\r\n", flag2str(flags()).c_str()));
+		else
+			fh.writeString(Common::String::format("<flag>%d</flag>\r\n", flags()));
 	}
 
 	return true;




More information about the Scummvm-git-logs mailing list