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

sev- noreply at scummvm.org
Fri Sep 13 21:08:34 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:
302a4e0f50 QDENGINE: Implement gameplay pause flag
f570b90532 QDENGINE: Added more animation debug output


Commit: 302a4e0f50230cb8ebb6cc7a9cb0817c0da8cff3
    https://github.com/scummvm/scummvm/commit/302a4e0f50230cb8ebb6cc7a9cb0817c0da8cff3
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-09-13T23:07:09+02:00

Commit Message:
QDENGINE: Implement gameplay pause flag

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


diff --git a/engines/qdengine/qdcore/qd_game_dispatcher.cpp b/engines/qdengine/qdcore/qd_game_dispatcher.cpp
index 854805a2ef3..744c16eaea0 100644
--- a/engines/qdengine/qdcore/qd_game_dispatcher.cpp
+++ b/engines/qdengine/qdcore/qd_game_dispatcher.cpp
@@ -729,9 +729,9 @@ void qdGameDispatcher::redraw() {
 	_mouse_obj->set_pos(Vect3f(mouseDispatcher::instance()->mouse_x(), mouseDispatcher::instance()->mouse_y(), 0));
 	_mouse_obj->update_screen_pos();
 
-	if (!check_flag(SKIP_REDRAW_FLAG)) {
+	if (!check_flag(SKIP_REDRAW_FLAG) && (!is_gameplay_paused() || check_flag(NEXT_FRAME_FLAG))) {
 		if (!is_video_playing()) {
-			debugC(1, kDebugGraphics, "qdGameDispatcher::redraw(): =========== FRAME START");
+			debugC(1, kDebugGraphics, "qdGameDispatcher::redraw(): =========== FRAME START paused: %d", is_gameplay_paused());
 
 			pre_redraw();
 #ifndef _GD_REDRAW_REGIONS_CHECK_
@@ -2363,6 +2363,7 @@ bool qdGameDispatcher::keyboard_handler(Common::KeyCode vkey, bool event) {
 			switch (vkey) {
 			case Common::KEYCODE_p:
 				resume();
+				pause_gameplay(false);
 				return true;
 			case Common::KEYCODE_SPACE:
 				set_flag(NEXT_FRAME_FLAG);
@@ -2414,6 +2415,7 @@ bool qdGameDispatcher::keyboard_handler(Common::KeyCode vkey, bool event) {
 			return true;
 		case Common::KEYCODE_p:
 			pause();
+			pause_gameplay(true);
 			return true;
 #ifdef __QD_DEBUG_ENABLE__
 		case Common::KEYCODE_F10:
diff --git a/engines/qdengine/qdcore/qd_game_dispatcher.h b/engines/qdengine/qdcore/qd_game_dispatcher.h
index 9f1d3073796..c4c78ceaf5c 100644
--- a/engines/qdengine/qdcore/qd_game_dispatcher.h
+++ b/engines/qdengine/qdcore/qd_game_dispatcher.h
@@ -405,6 +405,12 @@ public:
 		return _is_paused;
 	}
 
+	bool is_gameplay_paused() {
+		return _is_gameplay_paused;
+	}
+
+	void pause_gameplay(bool pause) { _is_gameplay_paused = pause; }
+
 	bool restart();
 
 	qdScreenTextDispatcher &screen_texts_dispatcher() {
@@ -556,6 +562,7 @@ private:
 	int _timer;
 
 	bool _is_paused;
+	bool _is_gameplay_paused = false;
 
 	bool _enable_file_packages;
 	/// компрессия ресурсов в архивах, 0 - отключена, 9 - максимальная


Commit: f570b90532784987dee968ca666fd0edfb67ab10
    https://github.com/scummvm/scummvm/commit/f570b90532784987dee968ca666fd0edfb67ab10
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-09-13T23:07:13+02:00

Commit Message:
QDENGINE: Added more animation debug output

Changed paths:
    engines/qdengine/qdcore/qd_game_object_animated.cpp
    engines/qdengine/qdcore/qd_game_object_mouse.cpp
    engines/qdengine/qdcore/qd_game_object_moving.cpp
    engines/qdengine/qdcore/qd_game_object_static.cpp


diff --git a/engines/qdengine/qdcore/qd_game_object_animated.cpp b/engines/qdengine/qdcore/qd_game_object_animated.cpp
index e2f2a8a6892..60e0bfa1253 100644
--- a/engines/qdengine/qdcore/qd_game_object_animated.cpp
+++ b/engines/qdengine/qdcore/qd_game_object_animated.cpp
@@ -198,9 +198,9 @@ const Vect2f &qdGameObjectAnimated::screen_scale() const {
 }
 
 void qdGameObjectAnimated::redraw(int offs_x, int offs_y) const {
-	debugC(1, kDebugTemp, "qdGameObjectAnimated::redraw(), empty?: %d", _animation.is_empty());
+
 	if (!_animation.is_empty()) {
-		debugC(1, kDebugTemp, "anim is not empty");
+		debugC(2, kDebugGraphics, "qdGameObjectAnimated::redraw([%d, %d]), name: '%s'", offs_x, offs_y, transCyrillic(name()));
 		Vect2i r = screen_pos() + Vect2i(offs_x, offs_y);
 
 		if (_current_transform()) {
diff --git a/engines/qdengine/qdcore/qd_game_object_mouse.cpp b/engines/qdengine/qdcore/qd_game_object_mouse.cpp
index 62ea3d6d03c..8e0874ad8bb 100644
--- a/engines/qdengine/qdcore/qd_game_object_mouse.cpp
+++ b/engines/qdengine/qdcore/qd_game_object_mouse.cpp
@@ -166,6 +166,8 @@ bool qdGameObjectMouse::save_data(Common::WriteStream &fh) const {
 }
 
 void qdGameObjectMouse::redraw(int offs_x, int offs_y) const {
+	debugC(2, kDebugGraphics, "qdGameObjectMouse::redraw([%d, %d]), name: '%s'", offs_x, offs_y, transCyrillic(name()));
+
 	if (_object && !qdInterfaceDispatcher::get_dispatcher()->is_active()) {
 		update_object_position();
 		const qdGameObjectState *p = _object-> get_cur_state();
diff --git a/engines/qdengine/qdcore/qd_game_object_moving.cpp b/engines/qdengine/qdcore/qd_game_object_moving.cpp
index 913dae4c411..480ea03f3ea 100644
--- a/engines/qdengine/qdcore/qd_game_object_moving.cpp
+++ b/engines/qdengine/qdcore/qd_game_object_moving.cpp
@@ -1892,6 +1892,8 @@ grScreenRegion qdGameObjectMoving::screen_region() const {
 }
 
 void qdGameObjectMoving::redraw(int offs_x, int offs_y) const {
+	debugC(2, kDebugGraphics, "qdGameObjectMoving::redraw([%d, %d]), name: '%s'", offs_x, offs_y, transCyrillic(name()));
+
 	if (get_animation()->is_empty())
 		return;
 
diff --git a/engines/qdengine/qdcore/qd_game_object_static.cpp b/engines/qdengine/qdcore/qd_game_object_static.cpp
index 098b6d9bcd2..e147abbd873 100644
--- a/engines/qdengine/qdcore/qd_game_object_static.cpp
+++ b/engines/qdengine/qdcore/qd_game_object_static.cpp
@@ -19,6 +19,8 @@
  *
  */
 
+#include "common/debug.h"
+
 #include "qdengine/qd_fwd.h"
 #include "qdengine/parser/xml_tag.h"
 #include "qdengine/parser/qdscr_parser.h"
@@ -35,6 +37,8 @@ qdGameObjectStatic::~qdGameObjectStatic() {
 }
 
 void qdGameObjectStatic::redraw(int offs_x, int offs_y) const {
+	debugC(2, kDebugGraphics, "qdGameObjectStatic::redraw([%d, %d]), name: '%s'", offs_x, offs_y, transCyrillic(name()));
+
 	Vect2i scrCoord = screen_pos() + Vect2i(offs_x, offs_y);
 	_sprite.redraw(scrCoord.x, scrCoord.y, screen_depth(), 0);
 }




More information about the Scummvm-git-logs mailing list