aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/agi/agi.cpp9
-rw-r--r--engines/agi/graphics.cpp3
-rw-r--r--engines/agi/graphics.h1
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;