diff options
author | Oystein Eftevaag | 2006-01-10 02:43:30 +0000 |
---|---|---|
committer | Oystein Eftevaag | 2006-01-10 02:43:30 +0000 |
commit | 6946efeb7f87d104ba5416935032c01033b7b805 (patch) | |
tree | a0527974b9270d492ef76daf9d8422640c635255 | |
parent | 713a646409fed4ff46c61f1cc6417b5fe8d3d8c9 (diff) | |
download | scummvm-rg350-6946efeb7f87d104ba5416935032c01033b7b805.tar.gz scummvm-rg350-6946efeb7f87d104ba5416935032c01033b7b805.tar.bz2 scummvm-rg350-6946efeb7f87d104ba5416935032c01033b7b805.zip |
Fixed regression bug #1400707, and reenabled mouselocking with a fix,
to remove the mouse flickering under cutscenes and such.
svn-id: r19962
-rw-r--r-- | kyra/debugger.cpp | 2 | ||||
-rw-r--r-- | kyra/screen.cpp | 9 | ||||
-rw-r--r-- | kyra/screen.h | 2 | ||||
-rw-r--r-- | kyra/sprites.cpp | 6 |
4 files changed, 13 insertions, 6 deletions
diff --git a/kyra/debugger.cpp b/kyra/debugger.cpp index 1384ce5fd8..e74d328f62 100644 --- a/kyra/debugger.cpp +++ b/kyra/debugger.cpp @@ -85,6 +85,8 @@ bool Debugger::cmd_enterRoom(int argc, const char **argv) { _vm->enterNewScene(room, _vm->_currentCharacter->facing, 0, 0, 1); _vm->_system->showOverlay(); + _vm->_screen->_mouseLockCount = 0; + _detach_now = true; return false; } diff --git a/kyra/screen.cpp b/kyra/screen.cpp index 14f4bfb516..f4071c880b 100644 --- a/kyra/screen.cpp +++ b/kyra/screen.cpp @@ -1650,15 +1650,18 @@ int Screen::getRectSize(int x, int y) { void Screen::hideMouse() { debug(9, "Screen::hideMouse()"); - //++_mouseLockCount; + ++_mouseLockCount; _system->showMouse(false); } void Screen::showMouse() { debug(9, "Screen::showMouse()"); - //if (--_mouseLockCount == 0) { + + if (_mouseLockCount > 0) + _mouseLockCount--; + + if (_mouseLockCount == 0) _system->showMouse(true); - //} } void Screen::setShapePages(int page1, int page2) { diff --git a/kyra/screen.h b/kyra/screen.h index a59a61f4b8..fbf00c23f0 100644 --- a/kyra/screen.h +++ b/kyra/screen.h @@ -30,6 +30,7 @@ class OSystem; namespace Kyra { class KyraEngine; +class Debugger; struct Rect; struct ScreenDim { @@ -53,6 +54,7 @@ struct Font { }; class Screen { + friend class Debugger; public: enum { diff --git a/kyra/sprites.cpp b/kyra/sprites.cpp index 89bdc0cbb6..91563d2ee5 100644 --- a/kyra/sprites.cpp +++ b/kyra/sprites.cpp @@ -88,7 +88,7 @@ void Sprites::setupSceneAnims() { data += 4; _anims[i].y = READ_LE_UINT16(data); data += 4; - _anims[i].width = *(data)/8 + 1; + _anims[i].width = *(data) - 1; data += 4; _anims[i].height = *(data); data += 4; @@ -111,14 +111,14 @@ void Sprites::setupSceneAnims() { int bkgdHeight = _anims[i].height; if (_anims[i].width2) - bkgdWidth += (_anims[i].width2 >> 3) + 1; + bkgdWidth += _anims[i].width2 << 3; if (_anims[i].height2) bkgdHeight += _anims[i].height2; _anims[i].background = (uint8 *)malloc(_screen->getRectSize(bkgdWidth + 1, bkgdHeight)); memset(_anims[i].background, 0, _screen->getRectSize(bkgdWidth + 1, bkgdHeight)); - //_anims[i].background = (uint8 *)malloc(100*100); + assert(_anims[i].background); } } |