diff options
| author | Nicola Mettifogo | 2010-04-28 22:52:36 +0000 | 
|---|---|---|
| committer | Nicola Mettifogo | 2010-04-28 22:52:36 +0000 | 
| commit | 4cb1fc9e795d555826e1bd5e06320c329d73f30c (patch) | |
| tree | b2b9127f4f0c67194d8865fc12dd50234397598f /engines/parallaction | |
| parent | 9001a8fbc3429d4104f946322d306cbaef5f0965 (diff) | |
| download | scummvm-rg350-4cb1fc9e795d555826e1bd5e06320c329d73f30c.tar.gz scummvm-rg350-4cb1fc9e795d555826e1bd5e06320c329d73f30c.tar.bz2 scummvm-rg350-4cb1fc9e795d555826e1bd5e06320c329d73f30c.zip | |
Make sure walk coordinate are valid before checking path buffer.
svn-id: r48846
Diffstat (limited to 'engines/parallaction')
| -rw-r--r-- | engines/parallaction/walk.cpp | 8 | 
1 files changed, 4 insertions, 4 deletions
| diff --git a/engines/parallaction/walk.cpp b/engines/parallaction/walk.cpp index f20d4af7a7..8fc916e490 100644 --- a/engines/parallaction/walk.cpp +++ b/engines/parallaction/walk.cpp @@ -73,10 +73,10 @@ void PathWalker_NS::correctPathPoint(Common::Point &to) {  	int16 left = to.x;  	do {  		right++; -	} while (!IS_PATH_CLEAR(right, to.y) && (right < maxX)); +	} while ((right < maxX) && !IS_PATH_CLEAR(right, to.y));  	do {  		left--; -	} while (!IS_PATH_CLEAR(left, to.y) && (left > 0)); +	} while ((left > 0) && !IS_PATH_CLEAR(left, to.y));  	right = (right == maxX) ? 1000 : right - to.x;  	left = (left == 0) ? 1000 : to.x - left; @@ -85,10 +85,10 @@ void PathWalker_NS::correctPathPoint(Common::Point &to) {  	int16 bottom = to.y;  	do {  		top--; -	} while (!IS_PATH_CLEAR(to.x, top) && (top > 0)); +	} while ((top > 0) && !IS_PATH_CLEAR(to.x, top));  	do {  		bottom++; -	} while (!IS_PATH_CLEAR(to.x, bottom) && (bottom < maxY)); +	} while ((bottom < maxY) && !IS_PATH_CLEAR(to.x, bottom) );  	top = (top == 0) ? 1000 : to.y - top;  	bottom = (bottom == maxY) ? 1000 : bottom - to.y; | 
