[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