[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