Applied patch #1238516, with very minor modifications. It gets rid of an

old DOTT hack/workaround.

svn-id: r18559
This commit is contained in:
Torbjörn Andersson 2005-07-19 17:53:55 +00:00
parent f7749e4789
commit 546a9d852b
4 changed files with 25 additions and 8 deletions

View File

@ -75,6 +75,22 @@ static const uint16 default_he_cursor[64] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
};
static const byte default_v6_cursor[] = {
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x00,0x0F,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x00,0x0F,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x00,0x0F,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x00,0x0F,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x00,0x0F,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0F,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, 0x0F,0x0F,0x0F, 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0F,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x00,0x0F,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x00,0x0F,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x00,0x0F,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x00,0x0F,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x00,0x0F,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
};
ScummEngine_v5::ScummEngine_v5(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16], int substResFileNameIndex)
: ScummEngine(detector, syst, gs, md5sum, substResFileNameIndex) {
@ -133,7 +149,12 @@ void ScummEngine_v6::grabCursor(int x, int y, int w, int h) {
setCursorFromBuffer((byte *)vs->pixels + (y - vs->topline) * vs->pitch + x, w, h, vs->pitch);
}
void ScummEngine::setCursorFromBuffer(byte *ptr, int width, int height, int pitch) {
void ScummEngine_v6::setDefaultCursor() {
setCursorHotspot(7, 6);
setCursorFromBuffer(default_v6_cursor, 16, 13, 16);
}
void ScummEngine::setCursorFromBuffer(const byte *ptr, int width, int height, int pitch) {
uint size;
byte *dst;

View File

@ -537,6 +537,7 @@ protected:
virtual void writeArray(int array, int index, int base, int value);
void shuffleArray(int num, int minIdx, int maxIdx);
void setDefaultCursor();
void setCursorTransparency(int a);
void setCursorHotspot(int x, int y);

View File

@ -1840,12 +1840,7 @@ void ScummEngine_v2::scummInit() {
void ScummEngine_v6::scummInit() {
ScummEngine::scummInit();
if (_gameId == GID_TENTACLE && res.roomno[rtRoom][60]) {
// HACK: For DOTT we manually set the default cursor. See also bug #786994
setCursorFromImg(697, 60, 1);
setCursorTransparency(1);
}
setDefaultCursor();
}
void ScummEngine_v60he::scummInit() {

View File

@ -983,7 +983,7 @@ protected:
void setupCursor();
void setCursorFromBuffer(byte *ptr, int width, int height, int pitch);
void setCursorFromBuffer(const byte *ptr, int width, int height, int pitch);
public:
void markRectAsDirty(VirtScreenNumber virt, int left, int right, int top, int bottom, int dirtybit = 0);