aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Hesse2011-01-26 19:04:24 +0000
committerSven Hesse2011-01-26 19:04:24 +0000
commitd71125dc214c122d753b95624077960df7e0bb8d (patch)
tree149d514f74b6d2bb8d241ba94e5991bfc2760c77
parent7a41cd7fa958c1dff2383c55af45ae2251ca7c5a (diff)
downloadscummvm-rg350-d71125dc214c122d753b95624077960df7e0bb8d.tar.gz
scummvm-rg350-d71125dc214c122d753b95624077960df7e0bb8d.tar.bz2
scummvm-rg350-d71125dc214c122d753b95624077960df7e0bb8d.zip
GOB: Use a fake cursor for Addy for now :P
svn-id: r55550
-rw-r--r--engines/gob/draw_v2.cpp8
-rw-r--r--engines/gob/inter_v7.cpp18
-rw-r--r--engines/gob/video.cpp6
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;