diff options
author | lukaslw | 2014-08-12 20:26:03 +0200 |
---|---|---|
committer | lukaslw | 2014-08-12 20:26:03 +0200 |
commit | b31500343962a1b8b0d79db566fa08419db1bb2d (patch) | |
tree | 8a108289824aa3a601c09e2dde750f605dd500ac /engines/prince/graphics.cpp | |
parent | 6471a354f4f8a42876f9f9b7d44de50dca31a9f6 (diff) | |
download | scummvm-rg350-b31500343962a1b8b0d79db566fa08419db1bb2d.tar.gz scummvm-rg350-b31500343962a1b8b0d79db566fa08419db1bb2d.tar.bz2 scummvm-rg350-b31500343962a1b8b0d79db566fa08419db1bb2d.zip |
PRINCE: Graphics::drawTransparentWithTrans fix
Diffstat (limited to 'engines/prince/graphics.cpp')
-rw-r--r-- | engines/prince/graphics.cpp | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/engines/prince/graphics.cpp b/engines/prince/graphics.cpp index bb6d7f7292..d70591d2cc 100644 --- a/engines/prince/graphics.cpp +++ b/engines/prince/graphics.cpp @@ -191,27 +191,34 @@ void GraphicsMan::drawTransparentWithTransDrawNode(Graphics::Surface *screen, Dr if (x + drawNode->posX < screen->w && x + drawNode->posX >= 0) { if (*src2 != 255) { *dst2 = *src2; - } else if (x) { - if (*(src2 - 1) == 255) { - if (x != drawNode->s->w - 1) { - if (*(src2 + 1) == 255) { - continue; + } else { + if (x) { + if (*(src2 - 1) == 255) { + if (x != drawNode->s->w - 1) { + if (*(src2 + 1) == 255) { + continue; + } } } + } else if (*(src2 + 1) == 255) { + continue; } - } else if (*(src2 + 1) == 255) { - continue; - } - byte value = 0; - if (y != drawNode->s->h - 1) { - value = *(src1 + drawNode->s->pitch + x); - if (value == 255) { - if (y) { - value = *(src1 + x); - if (value == 255) { + byte value = 0; + if (y != drawNode->s->h - 1) { + value = *(src2 + drawNode->s->pitch); + if (value == 255) { + if (y) { + value = *(src2 - drawNode->s->pitch); + if (value == 255) { + continue; + } + } else { continue; } - } else { + } + } else { + value = *(src2 - drawNode->s->pitch); + if (value == 255) { continue; } } |