summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2017-01-04 01:00:16 +0300
committerAndrei Karas <akaras@inbox.ru>2017-01-04 01:00:16 +0300
commit2e82d3003315806076a53df23064ba744e491fc2 (patch)
tree6cccb9ca1cf7126b6377269df7b376a2f50aa9be /src
parent75de17c7a86060f1c9475350c2e1bc7a712cd6b8 (diff)
downloadmanaplus-2e82d3003315806076a53df23064ba744e491fc2.tar.gz
manaplus-2e82d3003315806076a53df23064ba744e491fc2.tar.bz2
manaplus-2e82d3003315806076a53df23064ba744e491fc2.tar.xz
manaplus-2e82d3003315806076a53df23064ba744e491fc2.zip
Fix crash in special layer drawing with enabled simd in compiler flags.
Diffstat (limited to 'src')
-rw-r--r--src/resources/map/maplayer.cpp1
-rw-r--r--src/resources/map/speciallayer.h4
2 files changed, 3 insertions, 2 deletions
diff --git a/src/resources/map/maplayer.cpp b/src/resources/map/maplayer.cpp
index d92184e28..0780cd8d1 100644
--- a/src/resources/map/maplayer.cpp
+++ b/src/resources/map/maplayer.cpp
@@ -427,6 +427,7 @@ void MapLayer::drawSpecialLayer(Graphics *const graphics,
x += mSpecialLayer->mCache[ptr + x];
}
+ x0 = startX;
specialWidth = mTempLayer->mWidth;
ptr = y * specialWidth;
endX1 = endX;
diff --git a/src/resources/map/speciallayer.h b/src/resources/map/speciallayer.h
index f418aec7c..d71f1dab3 100644
--- a/src/resources/map/speciallayer.h
+++ b/src/resources/map/speciallayer.h
@@ -68,8 +68,8 @@ class SpecialLayer final : public MemoryCounter
private:
const std::string mName;
- MapItem **mTiles;
- int *mCache;
+ MapItem **mTiles __attribute__((packed));
+ int *mCache __attribute__((packed));
int mWidth;
int mHeight;
};