MOHAWK: Fix flag values used to dertermine if an area can become active.

svn-id: r54622
This commit is contained in:
Bastien Bouclet 2010-11-29 20:57:11 +00:00
parent 3b1440b0d4
commit d3289529eb
3 changed files with 7 additions and 2 deletions

View File

@ -501,7 +501,7 @@ void MohawkEngine_Myst::drawResourceRects() {
for (uint16 i = 0; i < _resources.size(); i++) {
_resources[i]->getRect().debugPrint(0);
if (_resources[i]->getRect().isValidRect()) {
if (_resources[i]->unreachableZipDest())
if (!_resources[i]->canBecomeActive())
_gfx->drawRect(_resources[i]->getRect(), kRectUnreachable);
else if (_resources[i]->isEnabled())
_gfx->drawRect(_resources[i]->getRect(), kRectEnabled);
@ -518,7 +518,7 @@ void MohawkEngine_Myst::checkCurrentResource() {
bool foundResource = false;
for (uint16 i = 0; i < _resources.size(); i++)
if (!_resources[i]->unreachableZipDest() &&
if (_resources[i]->canBecomeActive() &&
_resources[i]->contains(_system->getEventManager()->getMousePos())) {
if (_curResource != i) {
if (_curResource != -1 && _resources[_curResource]->isEnabled())

View File

@ -75,6 +75,10 @@ void MystResource::handleMouseUp(Common::Point *mouse) {
warning("Movement type resource with null destination at position (%d, %d), (%d, %d)", _rect.left, _rect.top, _rect.right, _rect.bottom);
}
bool MystResource::canBecomeActive() {
return !unreachableZipDest() && (isEnabled() || (_flags & kMystUnknownFlag));
}
bool MystResource::unreachableZipDest() {
return (_flags & kMystZipModeEnableFlag) && !_vm->_zipMode;
}

View File

@ -49,6 +49,7 @@ public:
uint16 getDest() { return _dest; }
virtual uint16 getType8Var() { return 0xFFFF; }
bool unreachableZipDest();
bool canBecomeActive();
// Mouse interface
virtual void handleMouseUp(Common::Point *mouse);