[Scummvm-git-logs] scummvm master -> d866e4df5cdd5314ba7144c6d74830c0e391512d
sev-
noreply at scummvm.org
Fri Nov 1 20:53:27 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:
d866e4df5c QDENGINE: DT: Print personage state in the object list
Commit: d866e4df5cdd5314ba7144c6d74830c0e391512d
https://github.com/scummvm/scummvm/commit/d866e4df5cdd5314ba7144c6d74830c0e391512d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-11-01T21:53:11+01:00
Commit Message:
QDENGINE: DT: Print personage state in the object list
Changed paths:
engines/qdengine/debugger/debugtools.cpp
engines/qdengine/qdcore/qd_game_object_state.cpp
engines/qdengine/qdcore/qd_game_object_state.h
engines/qdengine/qdcore/qd_game_scene.h
diff --git a/engines/qdengine/debugger/debugtools.cpp b/engines/qdengine/debugger/debugtools.cpp
index fb02924212f..85ee29013e3 100644
--- a/engines/qdengine/debugger/debugtools.cpp
+++ b/engines/qdengine/debugger/debugtools.cpp
@@ -42,6 +42,7 @@
#include "qdengine/qdcore/qd_file_manager.h"
#include "qdengine/qdcore/qd_game_dispatcher.h"
#include "qdengine/qdcore/qd_game_object.h"
+#include "qdengine/qdcore/qd_game_object_moving.h"
#include "qdengine/qdcore/qd_game_scene.h"
#include "qdengine/qdengine.h"
#include "qdengine/system/graphics/gr_dispatcher.h"
@@ -416,7 +417,22 @@ void showSceneObjects() {
if (ImGui::Begin("Scene Objects", &_state->_showSceneObjects)) {
qdGameScene *scene;
- if (qdGameDispatcher::get_dispatcher() && ((scene = qdGameDispatcher::get_dispatcher()->get_active_scene()))) {
+ qdGameDispatcher *dp = qdGameDispatcher::get_dispatcher();
+ if (dp && ((scene = dp->get_active_scene()))) {
+ if (!scene->getPersonages()->empty()) {
+ for (auto &it : *scene->getPersonages()) {
+ Common::String name = Common::String::format("p-%s", transCyrillic(it->name()));
+ if (ImGui::Selectable(name.c_str(), _state->_objectToDisplay == it->name())) {
+ _state->_objectToDisplay = it->name();
+ }
+
+ ImGui::SameLine();
+
+ qdGameObjectState *st = it->get_state(it->cur_state());
+ ImGui::Text("%s", st ? qdGameObjectState::flag2str(st->flags(), true).c_str() : "<none>");
+ }
+ }
+
if (!scene->object_list().empty()) {
for (auto &it : g_engine->_visible_objects) {
if (ImGui::Selectable((char *)transCyrillic(it->name()), _state->_objectToDisplay == it->name())) {
diff --git a/engines/qdengine/qdcore/qd_game_object_state.cpp b/engines/qdengine/qdcore/qd_game_object_state.cpp
index 1363aad4167..51c394f6ec6 100644
--- a/engines/qdengine/qdcore/qd_game_object_state.cpp
+++ b/engines/qdengine/qdcore/qd_game_object_state.cpp
@@ -262,7 +262,7 @@ struct FlagsList {
defFlag(QD_OBJ_STATE_FLAG_FADE_OUT),
};
-Common::String qdGameObjectState::flag2str(int fl) const {
+Common::String qdGameObjectState::flag2str(int fl, bool truncate) {
Common::String res;
for (int i = 0; i < ARRAYSIZE(flagList); i++) {
@@ -270,7 +270,7 @@ Common::String qdGameObjectState::flag2str(int fl) const {
if (!res.empty())
res += " | ";
- res += flagList[i].s;
+ res += &flagList[i].s[truncate ? 18 : 0];
fl &= ~flagList[i].f;
}
diff --git a/engines/qdengine/qdcore/qd_game_object_state.h b/engines/qdengine/qdcore/qd_game_object_state.h
index 333ffc7df0a..fe9904e7b02 100644
--- a/engines/qdengine/qdcore/qd_game_object_state.h
+++ b/engines/qdengine/qdcore/qd_game_object_state.h
@@ -567,6 +567,8 @@ public:
_transform_speed = tr_speed;
}
+ static Common::String flag2str(int fl, bool truncate = false);
+
protected:
//! ÐагÑÑзка даннÑÑ
из ÑкÑипÑа.
@@ -577,8 +579,6 @@ protected:
//! ÐозвÑаÑÐ°ÐµÑ true, еÑли надо пеÑезапÑÑÑиÑÑ Ð·Ð²Ñк.
virtual bool need_sound_restart() const;
- Common::String flag2str(int fl) const;
-
private:
//! Тип ÑоÑÑоÑниÑ.
diff --git a/engines/qdengine/qdcore/qd_game_scene.h b/engines/qdengine/qdcore/qd_game_scene.h
index 623decf8365..5e956f9c458 100644
--- a/engines/qdengine/qdcore/qd_game_scene.h
+++ b/engines/qdengine/qdcore/qd_game_scene.h
@@ -41,6 +41,8 @@ namespace QDEngine {
class qdMiniGame;
+typedef Std::vector<qdGameObjectMoving *> personages_container_t;
+
//! СÑена.
class qdGameScene : public qdGameDispatcherBase, public qdFileOwner {
public:
@@ -239,6 +241,8 @@ public:
bool set_camera_mode(const qdCameraMode &mode, qdGameObjectAnimated *object);
+ personages_container_t *getPersonages() { return &_personages; }
+
#ifdef __QD_DEBUG_ENABLE__
bool get_resources_info(qdResourceInfoContainer &infos) const;
#endif
@@ -262,7 +266,6 @@ private:
/// true еÑли нÑжен пеÑезапÑÑк миниигÑÑ Ð¿Ñи загÑÑзке из ÑÑйва
bool _restart_minigame_on_load;
- typedef Std::vector<qdGameObjectMoving *> personages_container_t;
//! ÑпиÑок пеÑÑонажей ÑÑенÑ
personages_container_t _personages;
More information about the Scummvm-git-logs
mailing list