diff options
| -rw-r--r-- | graphics/scummfont.cpp | 12 | 
1 files changed, 8 insertions, 4 deletions
| diff --git a/graphics/scummfont.cpp b/graphics/scummfont.cpp index 1b41bad8ee..baa7db7c39 100644 --- a/graphics/scummfont.cpp +++ b/graphics/scummfont.cpp @@ -62,16 +62,20 @@ int ScummFont::getCharWidth(byte chr) const {  }  //void ScummFont::drawChar(byte chr, int xx, int yy, OverlayColor color) { -void ScummFont::drawChar(const Surface *dst, byte chr, int x, int y, uint32 color) const { +void ScummFont::drawChar(const Surface *dst, byte chr, int tx, int ty, uint32 color) const {  	assert(dst != 0); -	byte *ptr = (byte *)dst->pixels + x * dst->bytesPerPixel + y * dst->pitch; +	byte *ptr = (byte *)dst->getBasePtr(tx, ty);  	const byte *tmp = guifont + 6 + guifont[4] + chr * 8;  	uint buffer = 0;  	uint mask = 0; -	for (y = 0; y < 8; y++) { -		for (x = 0; x < 8; x++) { +	for (int y = 0; y < 8; y++) { +		if (ty + y < 0 || ty + y >= dst->h) +			continue; +		for (int x = 0; x < 8; x++) { +			if (tx + x < 0 || tx + x >= dst->w) +				continue;  			unsigned char c;  			mask >>= 1;  			if (mask == 0) { | 
