diff options
Diffstat (limited to 'engines/dreamweb/stubs.cpp')
-rw-r--r-- | engines/dreamweb/stubs.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index 990cb57e7a..afa8cc0eab 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -1803,7 +1803,7 @@ void DreamWebEngine::sortOutMap() { void DreamWebEngine::mainScreen() { _inMapArea = 0; if (_vars._watchOn == 1) { - RectWithCallback<DreamWebEngine> mainList[] = { + RectWithCallback mainList[] = { { 44,70,32,46,&DreamWebEngine::look }, { 0,50,0,180,&DreamWebEngine::inventory }, { 226,244,10,26,&DreamWebEngine::zoomOnOff }, @@ -1814,7 +1814,7 @@ void DreamWebEngine::mainScreen() { }; checkCoords(mainList); } else { - RectWithCallback<DreamWebEngine> mainList2[] = { + RectWithCallback mainList2[] = { { 44,70,32,46,&DreamWebEngine::look }, { 0,50,0,180,&DreamWebEngine::inventory }, { 226+48,244+48,10,26,&DreamWebEngine::zoomOnOff }, @@ -2679,7 +2679,7 @@ void DreamWebEngine::decide() { fadeScreenUp(); _getBack = 0; - RectWithCallback<DreamWebEngine> decideList[] = { + RectWithCallback decideList[] = { { kOpsx+69,kOpsx+124,kOpsy+30,kOpsy+76,&DreamWebEngine::newGame }, { kOpsx+20,kOpsx+87,kOpsy+10,kOpsy+59,&DreamWebEngine::DOSReturn }, { kOpsx+123,kOpsx+190,kOpsy+10,kOpsy+59,&DreamWebEngine::loadOld }, @@ -3143,4 +3143,16 @@ void DreamWebEngine::purgeAnItem() { } } +void DreamWebEngine::checkCoords(const RectWithCallback *rectWithCallbacks) { + if (_newLocation != 0xff) + return; + const RectWithCallback *r; + for (r = rectWithCallbacks; r->_xMin != 0xffff; ++r) { + if (r->contains(_mouseX, _mouseY)) { + (this->*(r->_callback))(); + return; + } + } +} + } // End of namespace DreamWeb |