GOB: Use a fake cursor for Addy for now :P

svn-id: r55550
This commit is contained in:
Sven Hesse 2011-01-26 19:04:24 +00:00
parent 7a41cd7fa9
commit d71125dc21
3 changed files with 29 additions and 3 deletions

View File

@ -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) {

View File

@ -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() {

View File

@ -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;