[Scummvm-git-logs] scummvm master -> 7b37ca7b8ac93ddfc294595cef4c271bd6c0ec7f
whiterandrek
whiterandrek at gmail.com
Wed May 20 15:53:19 UTC 2020
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:
270086fd9f PETKA: added stable sorting function
7b37ca7b8a PETKA: added missing things when clicking left button
Commit: 270086fd9fcb97ed268bcb424a36e67cfae81d77
https://github.com/scummvm/scummvm/commit/270086fd9fcb97ed268bcb424a36e67cfae81d77
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-20T18:36:58+03:00
Commit Message:
PETKA: added stable sorting function
Changed paths:
engines/petka/video.cpp
engines/petka/video.h
diff --git a/engines/petka/video.cpp b/engines/petka/video.cpp
index ead2139a72..0cb046ca0d 100644
--- a/engines/petka/video.cpp
+++ b/engines/petka/video.cpp
@@ -55,7 +55,7 @@ void VideoSystem::update() {
interface->_objs[i]->updateZ();
}
- Common::sort(interface->_objs.begin(), interface->_objs.end(), objCmp);
+ sort();
for (uint i = 0; i < interface->_objs.size(); ++i) {
interface->_objs[i]->draw();
@@ -128,4 +128,22 @@ void VideoSystem::setShake(bool shake) {
_shake = shake;
}
+void VideoSystem::sort() {
+ Common::Array<QVisibleObject *> &objs = g_vm->getQSystem()->_currInterface->_objs;
+ for (uint i = 0; i < objs.size() - 1; ++i) {
+ int minIndex = i;
+ for (uint j = i + 1; j < objs.size(); ++j) {
+ if (objs[j]->_z < objs[minIndex]->_z) {
+ minIndex = j;
+ }
+ }
+
+ if (i != minIndex) {
+ QVisibleObject *tmp = objs[i];
+ objs[i] = objs[minIndex];
+ objs[minIndex] = tmp;
+ }
+ }
+}
+
}
diff --git a/engines/petka/video.h b/engines/petka/video.h
index 10919d48c7..4117a37671 100644
--- a/engines/petka/video.h
+++ b/engines/petka/video.h
@@ -43,6 +43,9 @@ public:
const Common::List<Common::Rect> rects() const;
Graphics::Screen &screen();
+private:
+ void sort();
+
private:
Graphics::Screen _screen;
Common::List<Common::Rect> _rects;
Commit: 7b37ca7b8ac93ddfc294595cef4c271bd6c0ec7f
https://github.com/scummvm/scummvm/commit/7b37ca7b8ac93ddfc294595cef4c271bd6c0ec7f
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-20T18:51:52+03:00
Commit Message:
PETKA: added missing things when clicking left button
Changed paths:
engines/petka/interfaces/main.cpp
diff --git a/engines/petka/interfaces/main.cpp b/engines/petka/interfaces/main.cpp
index 6ea1b637f2..60721ac000 100644
--- a/engines/petka/interfaces/main.cpp
+++ b/engines/petka/interfaces/main.cpp
@@ -168,15 +168,43 @@ void InterfaceMain::unloadRoom(bool fromSave) {
}
void InterfaceMain::onLeftButtonDown(const Common::Point p) {
- if (!g_vm->getQSystem()->_cursor->_isShown) {
+ QObjectCursor *cursor = g_vm->getQSystem()->_cursor.get();
+ if (!cursor->_isShown) {
_dialog.next(-1);
return;
}
+
for (int i = _objs.size() - 1; i >= 0; --i) {
if (_objs[i]->isInPoint(p.x, p.y)) {
_objs[i]->onClick(p.x, p.y);
- break;
+ return;
+ }
+ }
+
+ switch (cursor->_actionType) {
+ case kActionWalk: {
+ QObjectPetka *petka = g_vm->getQSystem()->_petka.get();
+ if (petka->_heroReaction) {
+ for (uint i = 0; i < petka->_heroReaction->messages.size(); ++i) {
+ if (petka->_heroReaction->messages[i].opcode == kGoTo) {
+ QObjectChapayev *chapay = g_vm->getQSystem()->_chapayev.get();
+ chapay->stopWalk();
+ break;
+ }
+ }
+ delete petka->_heroReaction;
+ petka->_heroReaction = nullptr;
}
+ petka->walk(p.x, p.y);
+ break;
+ }
+ case kActionObjUseChapayev: {
+ QObjectChapayev *chapay = g_vm->getQSystem()->_chapayev.get();
+ chapay->walk(p.x, p.y);
+ break;
+ }
+ default:
+ break;
}
}
More information about the Scummvm-git-logs
mailing list