aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/neverhood/mouse.cpp9
-rw-r--r--engines/neverhood/mouse.h1
2 files changed, 9 insertions, 1 deletions
diff --git a/engines/neverhood/mouse.cpp b/engines/neverhood/mouse.cpp
index a1c4a9a5a8..bce66467de 100644
--- a/engines/neverhood/mouse.cpp
+++ b/engines/neverhood/mouse.cpp
@@ -42,7 +42,7 @@ Mouse::Mouse(NeverhoodEngine *vm, uint32 fileHash, const NRect &mouseRect)
Mouse::Mouse(NeverhoodEngine *vm, uint32 fileHash, int16 x1, int16 x2)
: StaticSprite(vm, 2000), _mouseType(kMouseType435),
- _mouseCursorResource(vm), _frameNum(0), _x1(x1), _x2(x2) {
+ _mouseCursorResource(vm), _frameNum(0), _x1(x1), _x2(x2), _visible(true) {
init(fileHash);
if (_x <= _x1) {
@@ -85,6 +85,13 @@ void Mouse::load(uint32 fileHash) {
}
void Mouse::update() {
+ if (_visible && !_surface->getVisible()) {
+ CursorMan.showMouse(false);
+ _visible = false;
+ } else if (!_visible && _surface->getVisible()) {
+ CursorMan.showMouse(true);
+ _visible = true;
+ }
updateCursor();
_frameNum++;
if (_frameNum >= 6)
diff --git a/engines/neverhood/mouse.h b/engines/neverhood/mouse.h
index 0b4f6b81db..a163a7a01c 100644
--- a/engines/neverhood/mouse.h
+++ b/engines/neverhood/mouse.h
@@ -51,6 +51,7 @@ protected:
int16 _x1;
int16 _x2;
int _type;
+ bool _visible;
void init(uint32 fileHash);
void update();
void updateCursorNum();