aboutsummaryrefslogtreecommitdiff
path: root/engines/m4/mads_views.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2010-07-29 11:04:54 +0000
committerPaul Gilbert2010-07-29 11:04:54 +0000
commitfd804eb44b3e0f952efc2ffd3c66303e4a1c882c (patch)
tree4c9c42838dd47aaf06b18c65af45efa48ee5162b /engines/m4/mads_views.cpp
parentf22821af666fe89a3635d53f02351273b435c952 (diff)
downloadscummvm-rg350-fd804eb44b3e0f952efc2ffd3c66303e4a1c882c.tar.gz
scummvm-rg350-fd804eb44b3e0f952efc2ffd3c66303e4a1c882c.tar.bz2
scummvm-rg350-fd804eb44b3e0f952efc2ffd3c66303e4a1c882c.zip
M4: Further work done on the setup and starting of actions
svn-id: r51461
Diffstat (limited to 'engines/m4/mads_views.cpp')
-rw-r--r--engines/m4/mads_views.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/engines/m4/mads_views.cpp b/engines/m4/mads_views.cpp
index 20d469fedf..6c16e0e611 100644
--- a/engines/m4/mads_views.cpp
+++ b/engines/m4/mads_views.cpp
@@ -40,9 +40,10 @@ namespace M4 {
MadsAction::MadsAction(MadsView &owner): _owner(owner) {
clear();
_currentAction = kVerbNone;
- _verbNounFlag = false;
+ _startWalkFlag = false;
_statusTextIndex = -1;
_selectedAction = 0;
+ _inProgress = false;
}
void MadsAction::clear() {
@@ -256,7 +257,7 @@ void MadsAction::refresh() {
void MadsAction::startAction() {
_madsVm->_player.moveComplete();
- _v84538 = -1;
+ _inProgress = true;
_v8453A = 0;
_savedFields.selectedRow = _selectedRow;
_savedFields.articleNumber = _articleNumber;
@@ -274,7 +275,7 @@ void MadsAction::startAction() {
if ((_savedFields.actionMode2 == ACTMODE2_4) && (savedV86F42 == 0))
_v8453A = true;
- _verbNounFlag = false;
+ _startWalkFlag = false;
int hotspotId = -1;
HotSpotList &dynHotspots = *_madsVm->scene()->getSceneResources().dynamicHotspots;
HotSpotList &hotspots = *_madsVm->scene()->getSceneResources().hotspots;
@@ -289,11 +290,11 @@ void MadsAction::startAction() {
HotSpot &hs = dynHotspots[hotspotId - hotspots.size()];
if ((hs.getFeetX() == -1) || (hs.getFeetX() == -3)) {
if (_v86F4A && ((hs.getFeetX() == -3) || (_savedFields.selectedRow < 0))) {
- _verbNounFlag = true;
- _madsVm->scene()->_destPos = _customDest;
+ _startWalkFlag = true;
+ _madsVm->scene()->_destPos = _madsVm->scene()->_customDest;
}
} else if ((hs.getFeetX() >= 0) && ((_savedFields.actionMode == ACTMODE_NONE) || (hs.getCursor() < 2))) {
- _verbNounFlag = true;
+ _startWalkFlag = true;
_madsVm->scene()->_destPos.x = hs.getFeetX();
_madsVm->scene()->_destPos.y = hs.getFeetY();
}
@@ -306,21 +307,23 @@ void MadsAction::startAction() {
HotSpot &hs = hotspots[hotspotId];
if ((hs.getFeetX() == -1) || (hs.getFeetX() == -3)) {
if (_v86F4A && ((hs.getFeetX() == -3) || (_savedFields.selectedRow < 0))) {
- _verbNounFlag = true;
- _madsVm->scene()->_destPos = _customDest;
+ _startWalkFlag = true;
+ _madsVm->scene()->_destPos = _madsVm->scene()->_customDest;
}
} else if ((hs.getFeetX() >= 0) && ((_savedFields.actionMode == ACTMODE_NONE) || (hs.getCursor() < 2))) {
- _verbNounFlag = true;
+ _startWalkFlag = true;
_madsVm->scene()->_destPos.x = hs.getFeetX();
_madsVm->scene()->_destPos.y = hs.getFeetY();
}
_madsVm->scene()->_destFacing = hs.getFacing();
}
+
+ _walkFlag = _startWalkFlag;
}
void MadsAction::checkAction() {
if (isAction(kVerbLookAt) || isAction(kVerbThrow))
- _verbNounFlag = 0;
+ _startWalkFlag = 0;
}
bool MadsAction::isAction(int verbId, int objectNameId, int indirectObjectId) {