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

whiterandrek whiterandrek at gmail.com
Sun May 17 18:34:10 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:
40540ad0df PETKA: fixed processing messages by objects
a070bd97ff PETKA: added new opcodes


Commit: 40540ad0df586b1a01fe1c5dc8d3e1890f5ba679
    https://github.com/scummvm/scummvm/commit/40540ad0df586b1a01fe1c5dc8d3e1890f5ba679
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-17T21:33:27+03:00

Commit Message:
PETKA: fixed processing messages by objects

Changed paths:
    engines/petka/objects/object.cpp


diff --git a/engines/petka/objects/object.cpp b/engines/petka/objects/object.cpp
index 4a4dae0f1e..a7fd2f1d05 100644
--- a/engines/petka/objects/object.cpp
+++ b/engines/petka/objects/object.cpp
@@ -131,9 +131,9 @@ void QMessageObject::processMessage(const QMessage &msg) {
 				break;
 			}
 			if (rMsg.opcode == kIf &&
-			    (rMsg.arg1 == 0xffff || rMsg.arg1 != msg.arg1) &&
-			    (rMsg.arg2 == -1 || rMsg.arg2 != msg.arg2) &&
-			    (rMsg.arg3 == -1 || rMsg.arg3 != msg.arg3)) {
+				((rMsg.arg1 != 0xffff && rMsg.arg1 != msg.arg1) ||
+			    (rMsg.arg2 != -1 && rMsg.arg2 != msg.arg2) ||
+			    (rMsg.arg3 != -1 && rMsg.arg3 != msg.arg3))) {
 				break;
 			}
 			if (rMsg.opcode == kRandom && rMsg.arg2 != -1) {
@@ -170,6 +170,7 @@ void QMessageObject::processMessage(const QMessage &msg) {
 				break;
 			default:
 				processed = false;
+				break;
 			}
 			if (processed)
 				break;
@@ -272,6 +273,7 @@ void QMessageObject::processMessage(const QMessage &msg) {
 		case kStop:
 			g_vm->getQSystem()->_cursor.get()->show(msg.arg1);
 			g_vm->getQSystem()->_star.get()->_isActive = msg.arg1;
+			break;
 		case kShow:
 			show(true);
 			break;
@@ -348,7 +350,6 @@ void QMessageObject::processMessage(const QMessage &msg) {
 			for (uint j = 0; j < r.messages.size(); ++j) {
 				g_dialogReaction->messages.push_back(r.messages[j]);
 			}
-			break;
 		}
 		g_vm->getQSystem()->_mainInterface->_dialog.start(msg.arg1, this);
 	}


Commit: a070bd97ff3942aa3746e7ca5eafb11ce9d77e5a
    https://github.com/scummvm/scummvm/commit/a070bd97ff3942aa3746e7ca5eafb11ce9d77e5a
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-17T21:33:47+03:00

Commit Message:
PETKA: added new opcodes

Changed paths:
    engines/petka/objects/object.cpp
    engines/petka/video.cpp
    engines/petka/video.h


diff --git a/engines/petka/objects/object.cpp b/engines/petka/objects/object.cpp
index a7fd2f1d05..fc54747147 100644
--- a/engines/petka/objects/object.cpp
+++ b/engines/petka/objects/object.cpp
@@ -254,6 +254,9 @@ void QMessageObject::processMessage(const QMessage &msg) {
 			}
 			_notLoopedSound = msg.arg2 != 5;
 			break;
+		case kAnimate:
+			_animate = msg.arg1;
+			break;
 		case kEnd:
 			if (_reaction && _reactionResId == msg.arg1) {
 				processSavedReaction(&_reaction, this);
@@ -277,6 +280,24 @@ void QMessageObject::processMessage(const QMessage &msg) {
 		case kShow:
 			show(true);
 			break;
+		case kShake:
+			g_vm->videoSystem()->setShake(msg.arg1);
+			break;
+		case kSystem:
+			switch (msg.arg1){
+			case 0:
+				g_vm->getQSystem()->_star->_isActive = 0;
+				break;
+			case 1:
+				g_vm->getQSystem()->_star->_isActive = 1;
+				break;
+			case 242:
+				g_system->quit();
+				break;
+			default:
+				break;
+			}
+			break;
 		case kHide:
 			show(false);
 			break;
@@ -334,6 +355,22 @@ void QMessageObject::processMessage(const QMessage &msg) {
 				g_vm->getQSystem()->_chapayev->walk(_walkX, _walkY);
 			}
 			break;
+		case kDescription: {
+			Common::ScopedPtr<Common::SeekableReadStream> invStream(g_vm->openFile("invntr.txt", false));
+			Common::INIFile invIni;
+			if (invStream) {
+				Common::String desc;
+
+				invIni.loadFromStream(*invStream);
+				invIni.getKey(_name, "ALL", desc);
+
+				g_vm->getQSystem()->_mainInterface->setTextDescription(Common::U32String(desc.c_str()), msg.arg1);
+			}
+			break;
+		}
+		default:
+			debug("Opcode %d is not implemented", msg.opcode);
+			break;
 		}
 	} else {
 		g_vm->getBigDialogue()->setHandler(_id, msg.opcode, -1);
diff --git a/engines/petka/video.cpp b/engines/petka/video.cpp
index fa1297b3de..ead2139a72 100644
--- a/engines/petka/video.cpp
+++ b/engines/petka/video.cpp
@@ -124,4 +124,8 @@ void VideoSystem::updateTime() {
 	_time = g_system->getMillis();
 }
 
+void VideoSystem::setShake(bool shake) {
+	_shake = shake;
+}
+
 }
diff --git a/engines/petka/video.h b/engines/petka/video.h
index 8be0ad9fd6..10919d48c7 100644
--- a/engines/petka/video.h
+++ b/engines/petka/video.h
@@ -39,6 +39,7 @@ public:
 	void addDirtyRect(const Common::Rect &rect);
 	void addDirtyRect(Common::Point pos, FlicDecoder &flc);
 	void addDirtyRectFromMsk(Common::Point pos, FlicDecoder &flc);
+	void setShake(bool shake);
 	const Common::List<Common::Rect> rects() const;
 	Graphics::Screen &screen();
 




More information about the Scummvm-git-logs mailing list