[Scummvm-cvs-logs] SF.net SVN: scummvm: [26544] scummvm/trunk/engines/parallaction/font.cpp

peres001 at users.sourceforge.net peres001 at users.sourceforge.net
Wed Apr 18 13:53:08 CEST 2007


Revision: 26544
          http://scummvm.svn.sourceforge.net/scummvm/?rev=26544&view=rev
Author:   peres001
Date:     2007-04-18 04:53:07 -0700 (Wed, 18 Apr 2007)

Log Message:
-----------
Fixes bug 1702679.

Modified Paths:
--------------
    scummvm/trunk/engines/parallaction/font.cpp

Modified: scummvm/trunk/engines/parallaction/font.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/font.cpp	2007-04-18 09:42:13 UTC (rev 26543)
+++ scummvm/trunk/engines/parallaction/font.cpp	2007-04-18 11:53:07 UTC (rev 26544)
@@ -251,18 +251,22 @@
 		uint16	_accessors;	// unused
 		byte	_loChar;
 		byte	_hiChar;
-		byte	*_charData;
+		uint32	_charData;
 		uint16	_modulo;
-		CharLoc	*_charLoc;
-		uint16	*_charSpace;
-		uint16	*_charKern;
+		uint32	_charLoc;
+		uint32	_charSpace;
+		uint32	_charKern;
 	};
 #include "common/pack-end.h"
 
 	AmigaDiskFont	*_font;
 	uint32		_dataSize;
 	byte		*_data;
-	bool			_proportional;
+	bool		_proportional;
+	byte		*_charData;
+	CharLoc		*_charLoc;
+	uint16		*_charSpace;
+	uint16		*_charKern;
 
 	byte			*_cp;
 	uint32		_pitch;
@@ -304,11 +308,17 @@
 	_font->_xSize = FROM_BE_16(_font->_xSize);
 	_font->_baseline = FROM_BE_16(_font->_baseline);
 	_font->_modulo = FROM_BE_16(_font->_modulo);
-
+/*
 	_font->_charLoc = (CharLoc*)(_data + FROM_BE_32((uint32)_font->_charLoc));
 	_font->_charData = _data + FROM_BE_32((uint32)_font->_charData);
 	_font->_charSpace = (uint16*)(_data + FROM_BE_32((uint32)_font->_charSpace));
 	_font->_charKern = (uint16*)(_data + FROM_BE_32((uint32)_font->_charKern));
+*/
+	_charLoc = (CharLoc*)(_data + FROM_BE_32(_font->_charLoc));
+	_charData = _data + FROM_BE_32(_font->_charData);
+	_charSpace = (uint16*)(_data + FROM_BE_32(_font->_charSpace));
+	_charKern = (uint16*)(_data + FROM_BE_32(_font->_charKern));
+
 /*
 	printf("H = %i, W = %i\n", _font->_ySize, _font->_xSize);
 	printf("_data = %p\n", _data);
@@ -327,19 +337,19 @@
 }
 
 uint16 AmigaFont::getSpacing(char c) {
-	return FROM_BE_16(_proportional  ? _font->_charSpace[c] : _font->_xSize);
+	return FROM_BE_16(_proportional  ? _charSpace[c] : _font->_xSize);
 }
 
 uint16 AmigaFont::getKerning(char c) {
-	return FROM_BE_16(_font->_charKern[c]);
+	return FROM_BE_16(_charKern[c]);
 }
 
 uint16 AmigaFont::getPixels(char c) {
-	return FROM_BE_16(_font->_charLoc[c]._length);
+	return FROM_BE_16(_charLoc[c]._length);
 }
 
 uint16 AmigaFont::getOffset(char c) {
-	return FROM_BE_16(_font->_charLoc[c]._offset);
+	return FROM_BE_16(_charLoc[c]._offset);
 }
 
 void AmigaFont::blitData(char c) {
@@ -348,7 +358,7 @@
 	int bitOffset = getOffset(c);
 
 	byte *d = _cp;
-	byte *s = _font->_charData;
+	byte *s = _charData;
 
 	for (int i = 0; i < _font->_ySize; i++) {
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list