[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