aboutsummaryrefslogtreecommitdiff
path: root/engines/prince/graphics.cpp
diff options
context:
space:
mode:
authorlukaslw2014-08-12 20:26:03 +0200
committerlukaslw2014-08-12 20:26:03 +0200
commitb31500343962a1b8b0d79db566fa08419db1bb2d (patch)
tree8a108289824aa3a601c09e2dde750f605dd500ac /engines/prince/graphics.cpp
parent6471a354f4f8a42876f9f9b7d44de50dca31a9f6 (diff)
downloadscummvm-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.cpp39
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;
}
}