[Scummvm-git-logs] scummvm master -> 5f202584b88df3c748e6c99e0bd3ab10c7210136

sev- noreply at scummvm.org
Mon Mar 10 11:42:57 UTC 2025


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

Summary:
76421e2974 QDENGINE: Create separate method for path drawing
64d0210c32 QDENGINE: Add debug screen for path drawing
5f202584b8 QDENGINE: Fix slowdown in pathfinding


Commit: 76421e2974a357193b4bb4b6a86a0685262f805f
    https://github.com/scummvm/scummvm/commit/76421e2974a357193b4bb4b6a86a0685262f805f
Author: ormanbai123 (lowliet1990 at mail.ru)
Date: 2025-03-10T12:42:52+01:00

Commit Message:
QDENGINE: Create separate method for path drawing

Changed paths:
    engines/qdengine/qdcore/qd_game_object_moving.cpp
    engines/qdengine/qdcore/qd_game_object_moving.h


diff --git a/engines/qdengine/qdcore/qd_game_object_moving.cpp b/engines/qdengine/qdcore/qd_game_object_moving.cpp
index a5f13146999..3dc56bad7db 100644
--- a/engines/qdengine/qdcore/qd_game_object_moving.cpp
+++ b/engines/qdengine/qdcore/qd_game_object_moving.cpp
@@ -1088,7 +1088,7 @@ float qdGameObjectMoving::radius() const {
 	return qdGameObjectAnimated::radius() * calc_scale();
 }
 
-void qdGameObjectMoving::debug_redraw() const {
+void qdGameObjectMoving::drawDebugPath() const {
 	if (check_flag(QD_OBJ_MOVING_FLAG)) {
 		const int cl = grDispatcher::instance()->make_rgb(255, 255, 255);
 		Vect3f r = R();
@@ -1104,6 +1104,10 @@ void qdGameObjectMoving::debug_redraw() const {
 			v0 = v1;
 		}
 	}
+}
+
+void qdGameObjectMoving::debug_redraw() const {
+	drawDebugPath();
 
 	Common::String str = Common::String::format("movement_mode: %d", _movement_mode);
 	grDispatcher::instance()->drawText(10, 110, grDispatcher::instance()->make_rgb888(255, 255, 255), str.c_str());
diff --git a/engines/qdengine/qdcore/qd_game_object_moving.h b/engines/qdengine/qdcore/qd_game_object_moving.h
index eb5b7ef7cff..b49fcf0dc69 100644
--- a/engines/qdengine/qdcore/qd_game_object_moving.h
+++ b/engines/qdengine/qdcore/qd_game_object_moving.h
@@ -240,6 +240,7 @@ public:
 	void quant(float dt);
 
 	void redraw(int offs_x = 0, int offs_y = 0) const;
+	void drawDebugPath() const;
 	void debug_redraw() const;
 	void draw_contour(uint32 color) const;
 	void draw_shadow(int offs_x, int offs_y, uint32 color, int alpha) const;


Commit: 64d0210c323aba4efa47f3e0108b6e04d18bd434
    https://github.com/scummvm/scummvm/commit/64d0210c323aba4efa47f3e0108b6e04d18bd434
Author: ormanbai123 (lowliet1990 at mail.ru)
Date: 2025-03-10T12:42:52+01:00

Commit Message:
QDENGINE: Add debug screen for path drawing

Changed paths:
    engines/qdengine/qdcore/qd_game_dispatcher.cpp
    engines/qdengine/qdcore/qd_game_scene.cpp
    engines/qdengine/qdengine.h


diff --git a/engines/qdengine/qdcore/qd_game_dispatcher.cpp b/engines/qdengine/qdcore/qd_game_dispatcher.cpp
index 8e722c6fa13..ed486177f82 100644
--- a/engines/qdengine/qdcore/qd_game_dispatcher.cpp
+++ b/engines/qdengine/qdcore/qd_game_dispatcher.cpp
@@ -2410,6 +2410,10 @@ bool qdGameDispatcher::keyboard_handler(Common::KeyCode vkey, bool event) {
 			g_engine->_debugDraw = !g_engine->_debugDraw;
 			toggle_full_redraw();
 			return true;
+		case Common::KEYCODE_F7:
+			g_engine->_debugDrawPath = !g_engine->_debugDrawPath;
+			toggle_full_redraw();
+			return true;
 		case Common::KEYCODE_F8:
 			g_engine->_debugDrawGrid = !g_engine->_debugDrawGrid;
 			toggle_full_redraw();
diff --git a/engines/qdengine/qdcore/qd_game_scene.cpp b/engines/qdengine/qdcore/qd_game_scene.cpp
index 3f6c4efe8d8..81469a5bb55 100644
--- a/engines/qdengine/qdcore/qd_game_scene.cpp
+++ b/engines/qdengine/qdcore/qd_game_scene.cpp
@@ -518,6 +518,11 @@ void qdGameScene::debug_redraw() {
 	if (g_engine->_debugDrawGrid)
 		_camera.draw_grid();
 
+	if (g_engine->_debugDrawPath) {
+		qdGameObjectMoving *personage = get_active_personage();
+		if (personage)
+			personage->drawDebugPath();
+	}
 }
 
 int qdGameScene::get_resources_size() {
diff --git a/engines/qdengine/qdengine.h b/engines/qdengine/qdengine.h
index 36f1400cb1c..b6fe5304e8f 100644
--- a/engines/qdengine/qdengine.h
+++ b/engines/qdengine/qdengine.h
@@ -143,6 +143,7 @@ public:
 	int _thumbSizeX = 0, _thumbSizeY = 0;
 	bool _debugDraw = false;
 	bool _debugDrawGrid = false;
+	bool _debugDrawPath = false;
 	int _gameVersion = 0;
 
 	Vect2i _screen_offset = Vect2i(0, 0);


Commit: 5f202584b88df3c748e6c99e0bd3ab10c7210136
    https://github.com/scummvm/scummvm/commit/5f202584b88df3c748e6c99e0bd3ab10c7210136
Author: ormanbai123 (lowliet1990 at mail.ru)
Date: 2025-03-10T12:42:52+01:00

Commit Message:
QDENGINE: Fix slowdown in pathfinding

Changed paths:
    engines/qdengine/qdcore/qd_game_scene.cpp


diff --git a/engines/qdengine/qdcore/qd_game_scene.cpp b/engines/qdengine/qdcore/qd_game_scene.cpp
index 81469a5bb55..26bbca2861d 100644
--- a/engines/qdengine/qdcore/qd_game_scene.cpp
+++ b/engines/qdengine/qdcore/qd_game_scene.cpp
@@ -1525,7 +1525,7 @@ void qdGameScene::collision_quant() {
 				}
 			}
 
-			if (dr.norm() > dist) {
+			if (dr.norm() < dist) {
 				if (fabs(getDeltaAngle(angle, _selected_object->direction_angle())) < M_PI / 2.0f) {
 					if ((*it)->has_control_type(qdGameObjectMoving::CONTROL_AVOID_COLLISION))
 						(*it)->avoid_collision(_selected_object);




More information about the Scummvm-git-logs mailing list