diff options
-rw-r--r-- | engines/gob/draw_v2.cpp | 8 | ||||
-rw-r--r-- | engines/gob/inter_v7.cpp | 18 | ||||
-rw-r--r-- | engines/gob/video.cpp | 6 |
3 files changed, 29 insertions, 3 deletions
diff --git a/engines/gob/draw_v2.cpp b/engines/gob/draw_v2.cpp index ee6f9132aa..e9564cd7ec 100644 --- a/engines/gob/draw_v2.cpp +++ b/engines/gob/draw_v2.cpp @@ -149,8 +149,12 @@ void Draw_v2::animateCursor(int16 cursor) { cursorIndex * _cursorWidth, 0, (cursorIndex + 1) * _cursorWidth - 1, _cursorHeight - 1, 0, 0); - CursorMan.replaceCursor(_scummvmCursor->getData(), - _cursorWidth, _cursorHeight, hotspotX, hotspotY, 0, 1, &_vm->getPixelFormat()); + + if ((_vm->getGameType() != kGameTypeAdibou2) && + (_vm->getGameType() != kGameTypeAdi2) && + (_vm->getGameType() != kGameTypeAdi4)) + CursorMan.replaceCursor(_scummvmCursor->getData(), + _cursorWidth, _cursorHeight, hotspotX, hotspotY, 0, 1, &_vm->getPixelFormat()); if (_frontSurface != _backSurface) { if (!_noInvalidated) { diff --git a/engines/gob/inter_v7.cpp b/engines/gob/inter_v7.cpp index a1b06c42ec..9996f0ff59 100644 --- a/engines/gob/inter_v7.cpp +++ b/engines/gob/inter_v7.cpp @@ -26,6 +26,8 @@ #include "common/endian.h" #include "common/archive.h" +#include "graphics/cursorman.h" + #include "gob/gob.h" #include "gob/global.h" #include "gob/inter.h" @@ -86,6 +88,22 @@ void Inter_v7::o7_loadCursor() { Common::String cursorFile = _vm->_game->_script->getResultStr(); warning("Addy Stub: Load cursor \"%s\" to %d", cursorFile.c_str(), cursorIndex); + + byte cursor[9]; + byte palette[6]; + + cursor[0] = 0; cursor[1] = 0; cursor[2] = 0; + cursor[3] = 0; cursor[4] = 1; cursor[5] = 0; + cursor[6] = 0; cursor[7] = 0; cursor[8] = 0; + + palette[0] = 0; palette[1] = 0; palette[2] = 0; + palette[3] = 255; palette[4] = 255; palette[5] = 255; + + CursorMan.pushCursorPalette(palette, 0, 2); + CursorMan.disableCursorPalette(false); + CursorMan.replaceCursor(cursor, 3, 3, 1, 1, 255); + + CursorMan.showMouse(true); } void Inter_v7::o7_displayWarning() { diff --git a/engines/gob/video.cpp b/engines/gob/video.cpp index 91e3737832..84aca62cc5 100644 --- a/engines/gob/video.cpp +++ b/engines/gob/video.cpp @@ -227,7 +227,11 @@ void Video::setSize(bool defaultTo1XScaler) { void Video::retrace(bool mouse) { if (mouse) - CursorMan.showMouse((_vm->_draw->_showCursor & 2) != 0); + if ((_vm->getGameType() != kGameTypeAdibou2) && + (_vm->getGameType() != kGameTypeAdi2) && + (_vm->getGameType() != kGameTypeAdi4)) + CursorMan.showMouse((_vm->_draw->_showCursor & 2) != 0); + if (_vm->_global->_primarySurfDesc) { int screenX = _screenDeltaX; int screenY = _screenDeltaY; |