From b31500343962a1b8b0d79db566fa08419db1bb2d Mon Sep 17 00:00:00 2001 From: lukaslw Date: Tue, 12 Aug 2014 20:26:03 +0200 Subject: PRINCE: Graphics::drawTransparentWithTrans fix --- engines/prince/graphics.cpp | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) (limited to 'engines/prince/graphics.cpp') 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; } } -- cgit v1.2.3