[Scummvm-git-logs] scummvm master -> 42453dd8c86e7ff5375768a483a9ebbd4538b3b4
whiterandrek
whiterandrek at gmail.com
Mon May 25 15:44:12 UTC 2020
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
42453dd8c8 PETKA: created separate function for creating reaction
Commit: 42453dd8c86e7ff5375768a483a9ebbd4538b3b4
https://github.com/scummvm/scummvm/commit/42453dd8c86e7ff5375768a483a9ebbd4538b3b4
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2020-05-25T18:42:44+03:00
Commit Message:
PETKA: created separate function for creating reaction
Changed paths:
engines/petka/objects/object.cpp
diff --git a/engines/petka/objects/object.cpp b/engines/petka/objects/object.cpp
index 19938635b1..22e181bee7 100644
--- a/engines/petka/objects/object.cpp
+++ b/engines/petka/objects/object.cpp
@@ -43,6 +43,14 @@
namespace Petka {
+QReaction *createReaction(QMessage *messages, QMessage *end) {
+ QReaction *reaction = new QReaction();
+ while (messages != end) {
+ reaction->messages.push_back(*messages++);
+ }
+ return reaction;
+}
+
QVisibleObject::QVisibleObject()
: _resourceId(-1), _z(240) {}
@@ -73,20 +81,13 @@ void processSavedReaction(QReaction **reaction, QMessageObject *sender) {
bool processed = true;
switch (msg.opcode) {
case kDialog: {
- QReaction *dialogReaction = new QReaction();
- for (uint j = i + 1; j < r->messages.size(); ++j) {
- dialogReaction->messages.push_back(r->messages[j]);
- }
- g_vm->getQSystem()->_mainInterface->_dialog.setReaction(dialogReaction);
+ g_vm->getQSystem()->_mainInterface->_dialog.setReaction(createReaction(r->messages.data() + i + 1, r->messages.end()));
break;
}
case kPlay: {
QMessageObject *obj = g_vm->getQSystem()->findObject(msg.objId);
- obj->_reaction = new QReaction();
+ obj->_reaction = createReaction(r->messages.data() + i + 1, r->messages.end());
obj->_reactionResId = msg.arg1;
- for (uint j = i + 1; j < r->messages.size(); ++j) {
- obj->_reaction->messages.push_back(r->messages[j]);
- }
break;
}
case kWalk:
@@ -144,24 +145,16 @@ void QMessageObject::processMessage(const QMessage &msg) {
bool processed = true;
switch (rMsg.opcode) {
case kDialog: {
- QReaction *reaction = new QReaction();
- for (uint z = j + 1; z < r->messages.size(); ++z) {
- reaction->messages.push_back(r->messages[z]);
- }
- g_vm->getQSystem()->_mainInterface->_dialog.setReaction(reaction, true);
+ g_vm->getQSystem()->_mainInterface->_dialog.setReaction(createReaction(r->messages.data() + j + 1, r->messages.end()), true);
break;
}
case kPlay: {
QMessageObject *obj = g_vm->getQSystem()->findObject(rMsg.objId);
delete obj->_reaction;
- obj->_reaction = new QReaction();
+ obj->_reaction = createReaction(r->messages.data() + j + 1, r->messages.end());
obj->_reactionResId = rMsg.arg1;
- for (uint z = j + 1; z < r->messages.size(); ++z) {
- obj->_reaction->messages.push_back(r->messages[z]);
- }
break;
}
-
case kWalk:
case kWalkTo:
g_vm->getQSystem()->_petka->setReactionAfterWalk(j, &r, this, 0);
@@ -383,11 +376,7 @@ void QMessageObject::processMessage(const QMessage &msg) {
(r.senderId != -1 && r.senderId != msg.sender->_id)) {
continue;
}
- QReaction *reaction = new QReaction();
- for (uint j = 0; j < r.messages.size(); ++j) {
- reaction->messages.push_back(r.messages[j]);
- }
- g_vm->getQSystem()->_mainInterface->_dialog.setReaction(reaction, true);
+ g_vm->getQSystem()->_mainInterface->_dialog.setReaction(createReaction(r.messages.data(), r.messages.end()), true);
}
g_vm->getBigDialogue()->setHandler(_id, msg.opcode);
g_vm->getQSystem()->_mainInterface->_dialog.start(msg.arg1, this);
More information about the Scummvm-git-logs
mailing list