aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/mouse_cursor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic/mouse_cursor.cpp')
-rw-r--r--engines/titanic/mouse_cursor.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/engines/titanic/mouse_cursor.cpp b/engines/titanic/mouse_cursor.cpp
index 54c9ce8fbd..3acd871396 100644
--- a/engines/titanic/mouse_cursor.cpp
+++ b/engines/titanic/mouse_cursor.cpp
@@ -50,8 +50,9 @@ static const int CURSOR_DATA[NUM_CURSORS][4] = {
};
CMouseCursor::CMouseCursor(CScreenManager *screenManager) :
- _screenManager(screenManager), _cursorId(CURSOR_1) {
+ _screenManager(screenManager), _cursorId(CURSOR_15) {
loadCursorImages();
+ setCursor(CURSOR_1);
}
CMouseCursor::~CMouseCursor() {
@@ -89,7 +90,20 @@ void CMouseCursor::hide() {
}
void CMouseCursor::setCursor(CursorId cursorId) {
- warning("CMouseCursor::setCursor");
+ if (cursorId != _cursorId) {
+ CursorEntry &ce = _cursors[cursorId - 1];
+ CVideoSurface &surface = *ce._videoSurface;
+ surface.lock();
+
+ // ***DEBUG*** Dummy cursor
+ Common::fill(surface.getPixels(), surface.getPixels() + 128, 0x5555);
+
+ CursorMan.replaceCursor(surface.getPixels(), surface.getWidth(), surface.getHeight(),
+ ce._centroid.x, ce._centroid.y, 0, false, &g_vm->_screen->format);
+ surface.unlock();
+
+ _cursorId = cursorId;
+ }
}
void CMouseCursor::update() {