[Scummvm-cvs-logs] scummvm master -> 3429a14c119752daa8d17c499dbffb27a3fe23a5

sylvaintv sylvaintv at gmail.com
Wed Jun 1 23:51:31 CEST 2011


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
3429a14c11 TOON: Fix crash #3308220


Commit: 3429a14c119752daa8d17c499dbffb27a3fe23a5
    https://github.com/scummvm/scummvm/commit/3429a14c119752daa8d17c499dbffb27a3fe23a5
Author: sylvaintv (sylvaintv at gmail.com)
Date: 2011-06-01T14:49:19-07:00

Commit Message:
TOON: Fix crash #3308220

Bug #3308220: "Crashes"
Added clipping to magnifier effect

Changed paths:
    engines/toon/toon.cpp



diff --git a/engines/toon/toon.cpp b/engines/toon/toon.cpp
index 44c747c..e5c2cc0 100644
--- a/engines/toon/toon.cpp
+++ b/engines/toon/toon.cpp
@@ -466,20 +466,24 @@ void ToonEngine::doMagnifierEffect() {
 
 	byte tempBuffer[25 * 25];
 	for (int32 y = -12; y <= 12; y++) {
+		int32 cy = CLIP<int32>(posY + y, 0, TOON_BACKBUFFER_HEIGHT-1);
 		for (int32 x = -12; x <= 12; x++) {
+			int32 cx = CLIP<int32>(posX + x, 0, TOON_BACKBUFFER_WIDTH-1);
 			int32 destPitch = surface.pitch;
-			uint8 *curRow = (uint8 *)surface.pixels + (posY + y) * destPitch + (posX + x);
+			uint8 *curRow = (uint8 *)surface.pixels + cy * destPitch + cx;
 			tempBuffer[(y + 12) * 25 + x + 12] = *curRow;
 		}
 	}
 
 	for (int32 y = -12; y <= 12; y++) {
+		int32 cy = CLIP<int32>(posY + y, 0, TOON_BACKBUFFER_HEIGHT-1);
 		for (int32 x = -12; x <= 12; x++) {
 			int32 dist = y * y + x * x;
 			if (dist > 144)
 				continue;
+			int32 cx = CLIP<int32>(posX + x, 0, TOON_BACKBUFFER_WIDTH-1);
 			int32 destPitch = surface.pitch;
-			uint8 *curRow = (uint8 *)surface.pixels + (posY + y) * destPitch + (posX + x);
+			uint8 *curRow = (uint8 *)surface.pixels + cy * destPitch + cx;
 			int32 lerp = (512 + intSqrt[dist] * 256 / 12);
 			*curRow = tempBuffer[(y * lerp / 1024 + 12) * 25 + x * lerp / 1024 + 12];
 		}






More information about the Scummvm-git-logs mailing list