diff options
author | Andrew Kurushin | 2005-04-18 20:03:14 +0000 |
---|---|---|
committer | Andrew Kurushin | 2005-04-18 20:03:14 +0000 |
commit | d52032c75c4c3964219874d68ec9a84dc8e6f3fa (patch) | |
tree | c66544dde7b5bf7bbbaf991b369c048411a2492e /saga/actor.cpp | |
parent | 3ea96a13a053e803435e93b20cf07d01d0c3d821 (diff) | |
download | scummvm-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.cpp | 11 |
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; } |