[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