[Scummvm-git-logs] scummvm master -> 38d27dd9aa23d5e62b856329bd4f6094ca14bb9f

whiterandrek whiterandrek at gmail.com
Wed May 27 14:07:00 UTC 2020


This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
6a07eb0841 PETKA: fixed crash
befe598e62 PETKA: fixed cursor after continuing dialog after user msg
d5ccd4619d PETKA: fixed crash
0f30304afa PETKA: some fixes to heroes
38d27dd9aa PETKA: updated engine status


Commit: 6a07eb0841e9b90e106b31427997b6e8883a951d
    https://github.com/scummvm/scummvm/commit/6a07eb0841e9b90e106b31427997b6e8883a951d
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-27T17:06:09+03:00

Commit Message:
PETKA: fixed crash

Changed paths:
    engines/petka/interfaces/dialog_interface.cpp


diff --git a/engines/petka/interfaces/dialog_interface.cpp b/engines/petka/interfaces/dialog_interface.cpp
index 3e57b6c38c..b38b8f5dc3 100644
--- a/engines/petka/interfaces/dialog_interface.cpp
+++ b/engines/petka/interfaces/dialog_interface.cpp
@@ -187,8 +187,11 @@ void DialogInterface::playSound(const Common::String &name) {
 	_soundName = name;
 	Sound *s = g_vm->soundMgr()->addSound(name, Audio::Mixer::kSpeechSoundType);
 	if (s) {
-		Common::Rect bounds = g_vm->resMgr()->loadFlic(_talker->_resourceId)->getBounds();
-		s->setBalance(bounds.left + _talker->_x + bounds.width(), 640);
+		FlicDecoder *flc = g_vm->resMgr()->loadFlic(_talker->_resourceId);
+		if (flc) {
+			Common::Rect bounds = flc->getBounds();
+			s->setBalance(bounds.left + _talker->_x + bounds.width(), 640);
+		}
 		s->play(0);
 	}
 }


Commit: befe598e62ee919c56460294ed47123fbc6c5ce5
    https://github.com/scummvm/scummvm/commit/befe598e62ee919c56460294ed47123fbc6c5ce5
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-27T17:06:09+03:00

Commit Message:
PETKA: fixed cursor after continuing dialog after user msg

Changed paths:
    engines/petka/interfaces/dialog_interface.cpp


diff --git a/engines/petka/interfaces/dialog_interface.cpp b/engines/petka/interfaces/dialog_interface.cpp
index b38b8f5dc3..69f6c3a1f1 100644
--- a/engines/petka/interfaces/dialog_interface.cpp
+++ b/engines/petka/interfaces/dialog_interface.cpp
@@ -150,6 +150,7 @@ void DialogInterface::onEndOpcode() {
 
 void DialogInterface::endUserMsg() {
 	_isUserMsg = false;
+	initCursor();
 	next(-1);
 }
 


Commit: d5ccd4619dde44798b32a479568a6441ec63e192
    https://github.com/scummvm/scummvm/commit/d5ccd4619dde44798b32a479568a6441ec63e192
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-27T17:06:09+03:00

Commit Message:
PETKA: fixed crash

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


diff --git a/engines/petka/objects/text.cpp b/engines/petka/objects/text.cpp
index 879b178d5b..1b4fd7f477 100644
--- a/engines/petka/objects/text.cpp
+++ b/engines/petka/objects/text.cpp
@@ -53,7 +53,9 @@ QText::QText(const Common::U32String &text, uint16 textColor, uint16 outlineColo
 
 void QText::draw() {
 	const Graphics::Surface *s = g_vm->resMgr()->loadBitmap(-2);
-	g_vm->videoSystem()->transBlitFrom(*s, Common::Point((640 - s->w) / 2, 479 - s->h));
+	if (s) {
+		g_vm->videoSystem()->transBlitFrom(*s, Common::Point((640 - s->w) / 2, 479 - s->h));
+	}
 }
 
 const Common::Rect &QText::getRect() {


Commit: 0f30304afa8657dd14934159f38d0abf70fc0fb0
    https://github.com/scummvm/scummvm/commit/0f30304afa8657dd14934159f38d0abf70fc0fb0
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-27T17:06:09+03:00

Commit Message:
PETKA: some fixes to heroes

Changed paths:
    engines/petka/objects/heroes.cpp
    engines/petka/objects/heroes.h


diff --git a/engines/petka/objects/heroes.cpp b/engines/petka/objects/heroes.cpp
index 6d13133e4f..b69abd22ac 100644
--- a/engines/petka/objects/heroes.cpp
+++ b/engines/petka/objects/heroes.cpp
@@ -55,6 +55,11 @@ void QObjectPetka::processMessage(const QMessage &arg) {
 		_imageId = msg.arg1;
 	}
 	if (msg.opcode == kSaid || msg.opcode == kStand) {
+		msg.opcode = kSet;
+		msg.arg1 = _imageId;
+		msg.arg2 = 1;
+	}
+	if (msg.opcode == kSay) {
 		msg.opcode = kSet;
 		msg.arg1 = _imageId + 1;
 		msg.arg2 = 1;
@@ -98,11 +103,11 @@ void QObjectPetka::walk(int x, int y) {
 			currPos.y = _y_;
 		}
 
-		if (currPos.sqrDist(walkPos) >= 25 * 25) {
+		//if (currPos.sqrDist(walkPos) >= 25 * 25) {
 			//_walkObj->init(currPos, walkPos);
 			_destX = x;
 			_destY = y;
-			_resourceId = _imageId; // + _walkObj->getResId() + 10;
+			_resourceId = _imageId + 10; // + _walkObj->getResId() + 10;
 			_isWalking = true;
 			_animate = true;
 
@@ -115,7 +120,7 @@ void QObjectPetka::walk(int x, int y) {
 			_field7C = 0;
 			_time = 0;
 			_holdMessages = true;
-		}
+		//}
 	} else {
 		setPos(x, y);
 	}
@@ -233,6 +238,7 @@ void QObjectPetka::setReactionAfterWalk(uint index, QReaction *reaction, QMessag
 	stopWalk();
 
 	QMessage msg(_id, kWalked, 0, 0, 0, sender, 0);
+	g_vm->getQSystem()->addMessage(msg);
 	_heroReaction = new QReaction();
 	_sender = sender;
 
@@ -251,7 +257,7 @@ void QObjectPetka::stopWalk() {
 	_holdMessages = false;
 
 	Common::List<QMessage> &list = g_vm->getQSystem()->_messages;
-	for (Common::List<QMessage>::iterator it = list.begin(); it != list.end();) {
+	for (Common::List<QMessage>::iterator it = list.begin(); it != list.end(); ++it) {
 		if (it->opcode == kWalked && it->objId == _id) {
 			it->objId = -1;
 		}
@@ -273,7 +279,7 @@ void QObjectPetka::update(int time) {
 	_time += time;
 	FlicDecoder *flc = g_vm->resMgr()->loadFlic(_resourceId);
 	if (flc && flc->getFrameCount() != 1) {
-		while (_time >= flc->getDelay()) {
+		while (_time >= (int)flc->getDelay()) {
 			if (_sound && flc->getCurFrame() == 0) {
 				_startSound = true;
 			}
@@ -285,8 +291,8 @@ void QObjectPetka::update(int time) {
 				g_vm->getQSystem()->addMessage(_id, kHalf, _resourceId, 0, 0, 0, 0);
 			}
 
-			if (_field7C && flc->getCurFrame() == 0)
-				_time = -10000;
+			//if (_field7C && flc->getCurFrame() == 0)
+			//	_time = -10000;
 
 			updateWalk();
 			flc = g_vm->resMgr()->loadFlic(_resourceId);
@@ -301,6 +307,21 @@ void QObjectPetka::update(int time) {
 	}
 }
 
+bool QObjectPetka::isInPoint(int x, int y) {
+	if (!_isActive)
+		return false;
+	FlicDecoder *flc = g_vm->resMgr()->loadFlic(_resourceId);
+	Graphics::Surface *s = g_vm->resMgr()->loadBitmap(_surfId);
+	if (!s)
+		return false;
+	Common::Rect bounds(_surfW, _surfH);
+	x -= _x;
+	y -= _y;
+	if (!bounds.contains(x, y))
+		return false;
+	return *(uint16 *)s->getBasePtr(x, y) != flc->getTransColor(s->format);
+}
+
 QObjectChapayev::QObjectChapayev() {
 	_x = 477;
 	_y = 350;
diff --git a/engines/petka/objects/heroes.h b/engines/petka/objects/heroes.h
index 2eedd984c6..aea0598bae 100644
--- a/engines/petka/objects/heroes.h
+++ b/engines/petka/objects/heroes.h
@@ -39,6 +39,7 @@ public:
 	void setReactionAfterWalk(uint index, QReaction *reaction, QMessageObject *sender, bool deleteReaction);
 
 	void draw() override;
+	bool isInPoint(int x, int y) override;
 	void update(int time) override;
 	void setPos(int x, int y) override;
 


Commit: 38d27dd9aa23d5e62b856329bd4f6094ca14bb9f
    https://github.com/scummvm/scummvm/commit/38d27dd9aa23d5e62b856329bd4f6094ca14bb9f
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-27T17:06:09+03:00

Commit Message:
PETKA: updated engine status

Changed paths:
    engines/petka/petka.h


diff --git a/engines/petka/petka.h b/engines/petka/petka.h
index 3b25f1b075..09d6a49904 100644
--- a/engines/petka/petka.h
+++ b/engines/petka/petka.h
@@ -40,6 +40,9 @@
  *  Games using this engine:
  *  - Red Comrades Demo
  *  - Red Comrades Save the Galaxy
+ *  	- Part 1: can be completed
+ *  	- Part 2: not tested
+ *  	- Part 3: not tested
  *  - Red Comrades 2: For the Great Justice
  */
 




More information about the Scummvm-git-logs mailing list