aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
Diffstat (limited to 'scumm')
-rw-r--r--scumm/smush/blitter.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/scumm/smush/blitter.cpp b/scumm/smush/blitter.cpp
index 38116dbbf5..7adaa6cc5c 100644
--- a/scumm/smush/blitter.cpp
+++ b/scumm/smush/blitter.cpp
@@ -203,13 +203,29 @@ void Blitter::putBlock(Chunk & src) {
void Blitter::blockCopy(int32 offset) {
if(_cur.getX() + 3 < _src.right() && _cur.getY() + 3 < _src.bottom()) {// This is clipping
byte * dst = _offset;
+#ifndef _WIN32_WCE
*((uint32 *)dst) = *((uint32 *)(dst + offset));
+#else
+ memcpy(dst, dst + offset, sizeof(uint32));
+#endif
dst += _clip.getX();
+#ifndef _WIN32_WCE
*((uint32 *)dst) = *((uint32 *)(dst + offset));
+#else
+ memcpy(dst, dst + offset, sizeof(uint32));
+#endif
dst += _clip.getX();
+#ifndef _WIN32_WCE
*((uint32 *)dst) = *((uint32 *)(dst + offset));
+#else
+ memcpy(dst, dst + offset, sizeof(uint32));
+#endif
dst += _clip.getX();
+#ifndef _WIN32_WCE
*((uint32 *)dst) = *((uint32 *)(dst + offset));
+#else
+ memcpy(dst, dst + offset, sizeof(uint32));
+#endif
#ifdef DEBUG_CLIPPER
} else {
_clippedBlock ++;