aboutsummaryrefslogtreecommitdiff
path: root/saga/actor.cpp
diff options
context:
space:
mode:
authorAndrew Kurushin2005-04-18 20:03:14 +0000
committerAndrew Kurushin2005-04-18 20:03:14 +0000
commitd52032c75c4c3964219874d68ec9a84dc8e6f3fa (patch)
treec66544dde7b5bf7bbbaf991b369c048411a2492e /saga/actor.cpp
parent3ea96a13a053e803435e93b20cf07d01d0c3d821 (diff)
downloadscummvm-rg350-d52032c75c4c3964219874d68ec9a84dc8e6f3fa.tar.gz
scummvm-rg350-d52032c75c4c3964219874d68ec9a84dc8e6f3fa.tar.bz2
scummvm-rg350-d52032c75c4c3964219874d68ec9a84dc8e6f3fa.zip
converse support improved (still has some bugs)
fixed: now protagonist can't be target object fixed: statusbar color added: *mouseButtonPressed in SagaEngine svn-id: r17672
Diffstat (limited to 'saga/actor.cpp')
-rw-r--r--saga/actor.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/saga/actor.cpp b/saga/actor.cpp
index fdd0649e5c..d2fc6352ed 100644
--- a/saga/actor.cpp
+++ b/saga/actor.cpp
@@ -260,8 +260,6 @@ Actor::Actor(SagaEngine *vm) : _vm(vm) {
obj->location.y = ITE_ObjectTable[i].y;
obj->location.z = ITE_ObjectTable[i].z;
obj->disabled = false;
-
- obj->spritelistRn = 0;
}
} else {
@@ -857,8 +855,8 @@ void Actor::handleActions(int msec, bool setup) {
while ((delta.u() == 0) && (delta.v() == 0)) {
- if ((actor == _protagonist) && (_vm->_interface->_playfieldClicked)) {
- _vm->_isoMap->screenPointToTileCoords(_vm->getMousePos(), pickLocation);
+ if ((actor == _protagonist) && (_vm->mouseButtonPressed())) {
+ _vm->_isoMap->screenPointToTileCoords(_vm->mousePos(), pickLocation);
if (!actorWalkTo(_protagonist->id, pickLocation)) {
break;
@@ -1170,7 +1168,7 @@ void Actor::calcScreenPosition(CommonObjectData *commonObjectData) {
}
-uint16 Actor::hitTest(const Point &testPoint) {
+uint16 Actor::hitTest(const Point &testPoint, bool skipProtagonist) {
CommonObjectOrderList::iterator drawOrderIterator;
CommonObjectDataPointer drawObject;
int frameNumber;
@@ -1178,6 +1176,9 @@ uint16 Actor::hitTest(const Point &testPoint) {
createDrawOrderList();
for (drawOrderIterator = _drawOrderList.begin(); drawOrderIterator != _drawOrderList.end(); ++drawOrderIterator) {
drawObject = drawOrderIterator.operator*();
+ if (skipProtagonist && (drawObject == _protagonist)) {
+ continue;
+ }
if (!getSpriteParams(drawObject, frameNumber, spriteList)) {
continue;
}