From d53142d95e793861d2891f8a7d16ac11b9b94126 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 3 Jul 2011 15:41:07 +1000 Subject: CGE: Fixed code using memory overruns to do duplication --- engines/cge/bitmap.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'engines/cge') diff --git a/engines/cge/bitmap.cpp b/engines/cge/bitmap.cpp index c94b8503cf..833d0f1f1b 100644 --- a/engines/cge/bitmap.cpp +++ b/engines/cge/bitmap.cpp @@ -117,6 +117,11 @@ Bitmap::Bitmap(uint16 w, uint16 h, uint8 fill) HideDesc *b = (HideDesc *)(v + 4 * psiz); b->skip = (SCR_WID - _w) >> 2; b->hide = _w >> 2; + + // Replicate across the entire table + for (HideDesc *hdP = b + 1; hdP < (b + _h); ++hdP) + *hdP = *b; + memcpy(b + 1, b, (_h - 1) * sizeof(*b)); // tricky fill entire table b->skip = 0; // fix the first entry _v = v; -- cgit v1.2.3