[Scummvm-cvs-logs] CVS: scummvm/scumm nut_renderer.cpp,1.51,1.52 nut_renderer.h,1.20,1.21

Max Horn fingolfin at users.sourceforge.net
Fri Oct 8 17:55:53 CEST 2004


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24418

Modified Files:
	nut_renderer.cpp nut_renderer.h 
Log Message:
Added methods to access charset x/y offs values (though those seem to be all 0 in COMI)

Index: nut_renderer.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/nut_renderer.cpp,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -d -r1.51 -r1.52
--- nut_renderer.cpp	18 Sep 2004 22:42:43 -0000	1.51
+++ nut_renderer.cpp	9 Oct 2004 00:47:47 -0000	1.52
@@ -30,14 +30,14 @@
 	_vm(vm),
 	_initialized(false),
 	_loaded(false),
-	_nbChars(0) {
+	_numChars(0) {
 
 	for (int i = 0; i < 256; i++)
 		_chars[i].src = NULL;
 }
 
 NutRenderer::~NutRenderer() {
-	for (int i = 0; i < _nbChars; i++) {
+	for (int i = 0; i < _numChars; i++) {
 		if (_chars[i].src)
 			delete []_chars[i].src;
 	}
@@ -143,11 +143,11 @@
 		return false;
 	}
 
-	_nbChars = READ_LE_UINT16(dataSrc + 10);
+	_numChars = READ_LE_UINT16(dataSrc + 10);
 	uint32 offset = 0;
 	int32 decoded_length;
 
-	for (int l = 0; l < _nbChars; l++) {
+	for (int l = 0; l < _numChars; l++) {
 		offset += READ_BE_UINT32(dataSrc + offset + 4) + 8;
 		if (READ_BE_UINT32(dataSrc + offset) == 'FRME') {
 			offset += 8;
@@ -197,7 +197,7 @@
 	return true;
 }
 
-int NutRenderer::getCharWidth(byte c) {
+int NutRenderer::getCharWidth(byte c) const {
 	debug(8, "NutRenderer::getCharWidth() called");
 	if (!_loaded) {
 		warning("NutRenderer::getCharWidth() Font is not loaded");
@@ -212,13 +212,13 @@
 		return 0;
 	}
 
-	if (c >= _nbChars)
-		error("invalid character in NutRenderer::getCharWidth : %d (%d)", c, _nbChars);
+	if (c >= _numChars)
+		error("invalid character in NutRenderer::getCharWidth : %d (%d)", c, _numChars);
 
 	return _chars[c].width;
 }
 
-int NutRenderer::getCharHeight(byte c) {
+int NutRenderer::getCharHeight(byte c) const {
 	debug(8, "NutRenderer::getCharHeight() called");
 	if (!_loaded) {
 		warning("NutRenderer::getCharHeight() Font is not loaded");
@@ -233,12 +233,46 @@
 		return 0;
 	}
 
-	if (c >= _nbChars)
-		error("invalid character in NutRenderer::getCharHeight : %d (%d)", c, _nbChars);
+	if (c >= _numChars)
+		error("invalid character in NutRenderer::getCharHeight : %d (%d)", c, _numChars);
 
 	return _chars[c].height;
 }
 
+int NutRenderer::getCharOffsX(byte c) const {
+	debug(8, "NutRenderer::getCharOffsX() called");
+	if (!_loaded) {
+		warning("NutRenderer::getCharOffsX() Font is not loaded");
+		return 0;
+	}
+
+	if (c >= 0x80 && _vm->_useCJKMode) {
+		return 0;
+	}
+
+	if (c >= _numChars)
+		error("invalid character in NutRenderer::getCharOffsX : %d (%d)", c, _numChars);
+
+	return _chars[c].xoffs;
+}
+
+int NutRenderer::getCharOffsY(byte c) const {
+	debug(8, "NutRenderer::getCharOffsY() called");
+	if (!_loaded) {
+		warning("NutRenderer::getCharOffsY() Font is not loaded");
+		return 0;
+	}
+
+	if (c >= 0x80 && _vm->_useCJKMode) {
+		return 0;
+	}
+
+	if (c >= _numChars)
+		error("invalid character in NutRenderer::getCharOffsY : %d (%d)", c, _numChars);
+
+	return _chars[c].yoffs;
+}
+
 void NutRenderer::drawShadowChar(const Graphics::Surface &s, int c, int x, int y, byte color, bool showShadow) {
 	debug(8, "NutRenderer::drawShadowChar('%c', %d, %d, %d, %d) called", c, x, y, (int)color, showShadow);
 	if (!_loaded) {

Index: nut_renderer.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/nut_renderer.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- nut_renderer.h	8 Aug 2004 22:09:50 -0000	1.20
+++ nut_renderer.h	9 Oct 2004 00:47:47 -0000	1.21
@@ -33,7 +33,7 @@
 	ScummEngine *_vm;
 	bool _initialized;
 	bool _loaded;
-	int _nbChars;
+	int _numChars;
 	struct {
 		int xoffs;
 		int yoffs;
@@ -50,15 +50,18 @@
 public:
 	NutRenderer(ScummEngine *vm);
 	virtual ~NutRenderer();
-	int getNbChars() { return _nbChars; }
+	int getNumChars() { return _numChars; }
 
 	bool loadFont(const char *filename);
 
 	void drawFrame(byte *dst, int c, int x, int y);
 	void drawShadowChar(const Graphics::Surface &s, int c, int x, int y, byte color, bool showShadow);
 
-	int getCharWidth(byte c);
-	int getCharHeight(byte c);
+	int getCharWidth(byte c) const;
+	int getCharHeight(byte c) const;
+
+	int getCharOffsX(byte c) const;
+	int getCharOffsY(byte c) const;
 };
 
 } // End of namespace Scumm





More information about the Scummvm-git-logs mailing list