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

whiterandrek whiterandrek at gmail.com
Thu May 21 11:34:53 UTC 2020


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:
fcf01fd764 PETKA: implemented drawing game object name


Commit: fcf01fd764033b6209bea82b9bd50b5afa80e716
    https://github.com/scummvm/scummvm/commit/fcf01fd764033b6209bea82b9bd50b5afa80e716
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-21T14:34:38+03:00

Commit Message:
PETKA: implemented drawing game object name

Changed paths:
    engines/petka/interfaces/main.cpp
    engines/petka/objects/object.cpp
    engines/petka/objects/object.h


diff --git a/engines/petka/interfaces/main.cpp b/engines/petka/interfaces/main.cpp
index 272916cafc..be18014d15 100644
--- a/engines/petka/interfaces/main.cpp
+++ b/engines/petka/interfaces/main.cpp
@@ -236,15 +236,30 @@ void InterfaceMain::onRightButtonDown(const Common::Point p) {
 }
 
 void InterfaceMain::onMouseMove(const Common::Point p) {
-	QObjectCursor *cursor = g_vm->getQSystem()->_cursor.get();
+	QMessageObject *prevObj = (QMessageObject *)_objUnderCursor;
 	_objUnderCursor = nullptr;
+
 	for (int i = _objs.size() - 1; i >= 0; --i) {
 		if (_objs[i]->isInPoint(p.x, p.y)) {
 			_objs[i]->onMouseMove(p.x, p.y);
 		}
 	}
+
+	QObjectCursor *cursor = g_vm->getQSystem()->_cursor.get();
 	cursor->_animate = _objUnderCursor != nullptr;
 	cursor->setCursorPos(p.x, p.y, true);
+
+	if (prevObj != _objUnderCursor && _objUnderCursor && _dialog._state == kIdle) {
+		Graphics::PixelFormat fmt = g_system->getScreenFormat();
+		QMessageObject *obj = (QMessageObject *)_objUnderCursor;
+		if (!obj->_nameOnScreen.empty()) {
+			setText(Common::convertToU32String(obj->_nameOnScreen.c_str(), Common::kWindows1251), fmt.RGBToColor(0xC0, 0xFF, 0xFF), fmt.RGBToColor(0xA, 0xA, 0xA));
+		} else {
+			setText(Common::convertToU32String(obj->_name.c_str(), Common::kWindows1251), fmt.RGBToColor(0x80, 0, 0), fmt.RGBToColor(0xA, 0xA, 0xA));
+		}
+	} else if (prevObj && !_objUnderCursor && _dialog._state == kIdle) {
+		setText(Common::U32String(""), 0, 0);
+	}
 }
 
 void InterfaceMain::setTextChoice(const Common::Array<Common::U32String> &choices, uint16 color, uint16 selectedColor) {
diff --git a/engines/petka/objects/object.cpp b/engines/petka/objects/object.cpp
index 4acd5e57f9..d70b17b17f 100644
--- a/engines/petka/objects/object.cpp
+++ b/engines/petka/objects/object.cpp
@@ -555,4 +555,8 @@ void QObject::onClick(int x, int y) {
 	}
 }
 
+void QObject::onMouseMove(int x, int y) {
+	g_vm->getQSystem()->_mainInterface->_objUnderCursor = this;
+}
+
 }
diff --git a/engines/petka/objects/object.h b/engines/petka/objects/object.h
index cf80180ffe..43fd8c1cdf 100644
--- a/engines/petka/objects/object.h
+++ b/engines/petka/objects/object.h
@@ -97,6 +97,7 @@ public:
 	void setPos(int x, int y) override;
 	void show(bool v) override;
 	void onClick(int x, int y) override;
+	void onMouseMove(int x, int y) override;
 };
 
 extern QReaction *g_dialogReaction;




More information about the Scummvm-git-logs mailing list