diff options
-rw-r--r-- | engines/agi/agi.cpp | 9 | ||||
-rw-r--r-- | engines/agi/graphics.cpp | 3 | ||||
-rw-r--r-- | engines/agi/graphics.h | 1 |
3 files changed, 9 insertions, 4 deletions
diff --git a/engines/agi/agi.cpp b/engines/agi/agi.cpp index 19e05959dc..9362ceff70 100644 --- a/engines/agi/agi.cpp +++ b/engines/agi/agi.cpp @@ -275,9 +275,7 @@ AgiBase::~AgiBase() { delete _sound; - if (_fontDataAllocated) { - free(_fontDataAllocated); - } + free(_fontDataAllocated); } void AgiBase::initRenderMode() { @@ -856,7 +854,10 @@ void AgiEngine::redrawScreen() { // Used on mouse cursor coordinates before passing them to scripts void AgiEngine::adjustPosToGameScreen(int16 &x, int16 &y) { x = x / 2; // 320 -> 160 - y = y - 8; // remove status bar line + y = y - _gfx->getRenderStartOffsetY(); // remove status bar line + if (y < 0) { + y = 0; + } if (y >= SCRIPT_HEIGHT) { y = SCRIPT_HEIGHT + 1; // 1 beyond } diff --git a/engines/agi/graphics.cpp b/engines/agi/graphics.cpp index e9ae1295e9..467d63be84 100644 --- a/engines/agi/graphics.cpp +++ b/engines/agi/graphics.cpp @@ -172,6 +172,9 @@ void GfxMgr::setRenderStartOffset(uint16 offsetY) { _renderStartOffsetY = offsetY; } +uint16 GfxMgr::getRenderStartOffsetY() { + return _renderStartOffsetY; +} void GfxMgr::debugShowMap(int mapNr) { switch (mapNr) { diff --git a/engines/agi/graphics.h b/engines/agi/graphics.h index a89a7fdabc..7fffe320c9 100644 --- a/engines/agi/graphics.h +++ b/engines/agi/graphics.h @@ -80,6 +80,7 @@ public: int deinitMachine(); void setRenderStartOffset(uint16 offsetY); + uint16 getRenderStartOffsetY(); private: uint _pixels; |