From e183a929a3653446a6545ca764e47c47f7b00e50 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 17 Jul 2011 16:50:57 +0300 Subject: Improve map reduce speed. --- src/map.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/map.cpp') diff --git a/src/map.cpp b/src/map.cpp index 66bdbd4bc..fa9d014df 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -1816,10 +1816,18 @@ void Map::reduce() Image *img = layer->mTiles[x + y * layer->mWidth]; if (img) { - img->setAlphaVisible(true); - if (img->mBounds.w > 32 || img->mBounds.h > 32) + if (img->hasAlphaChannel() && img->isAlphaCalculated()) + { + if (!img->isAlphaVisible()) + { + dontHaveAlpha = true; + img->setAlphaVisible(false); + } + } + else if (img->mBounds.w > 32 || img->mBounds.h > 32) { correct = false; + img->setAlphaVisible(true); break; } else if (!img->isHasAlphaChannel()) @@ -1832,6 +1840,7 @@ void Map::reduce() Uint8 *arr = img->SDLgetAlphaChannel(); if (!arr) continue; + bool bad(false); bool stop(false); int width; @@ -1868,6 +1877,7 @@ void Map::reduce() img->setAlphaVisible(true); } } + img->setAlphaCalculated(true); } } if (!correct || !dontHaveAlpha) -- cgit v1.2.3-60-g2f50