[Scummvm-cvs-logs] CVS: scummvm/scumm bundle.cpp,1.18,1.19 charset.cpp,2.11,2.12 gfx.cpp,2.23,2.24 nut_renderer.cpp,1.13,1.14 nut_renderer.h,1.3,1.4
Max Horn
fingolfin at users.sourceforge.net
Tue Jan 14 19:11:04 CET 2003
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv25615
Modified Files:
bundle.cpp charset.cpp gfx.cpp nut_renderer.cpp nut_renderer.h
Log Message:
made NUT font rendered honor _ignoreCharsetMask
Index: bundle.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/bundle.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- bundle.cpp 14 Jan 2003 17:58:03 -0000 1.18
+++ bundle.cpp 15 Jan 2003 03:10:28 -0000 1.19
@@ -280,7 +280,8 @@
output_size =
decompressCodec(_compVoiceTable[i].codec, comp_input, comp_output, _compVoiceTable[i].size, i, channels);
- memcpy((byte *)&comp_final[final_size], comp_output, output_size);
+ assert(output_size <= 10000);
+ memcpy(comp_final + final_size, comp_output, output_size);
final_size += output_size;
free(comp_input);
Index: charset.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/charset.cpp,v
retrieving revision 2.11
retrieving revision 2.12
diff -u -d -r2.11 -r2.12
--- charset.cpp 31 Dec 2002 21:41:24 -0000 2.11
+++ charset.cpp 15 Jan 2003 03:10:28 -0000 2.12
@@ -451,7 +451,7 @@
int height = _current->getCharHeight(chr);
_hasMask = true;
- _current->drawChar((char)chr, _left, _top, _color);
+ _current->drawChar((char)chr, _left, _top, _color, !_ignoreCharsetMask);
_vm->updateDirtyRect(0, _left, _left + width, _top, _top + height, 0);
_left += width;
Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.cpp,v
retrieving revision 2.23
retrieving revision 2.24
diff -u -d -r2.23 -r2.24
--- gfx.cpp 14 Jan 2003 10:05:39 -0000 2.23
+++ gfx.cpp 15 Jan 2003 03:10:28 -0000 2.24
@@ -757,7 +757,6 @@
topline = vs->topline;
height = topline + vs->height;
-// right++; // FIXME - why did we increment here?!? it caused bug
if (left < 0)
left = 0;
if (right < 0)
Index: nut_renderer.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/nut_renderer.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- nut_renderer.cpp 31 Dec 2002 21:15:46 -0000 1.13
+++ nut_renderer.cpp 15 Jan 2003 03:10:28 -0000 1.14
@@ -163,6 +163,7 @@
return length;
}
+/*
void NutRenderer::drawString(const char *string, int32 x, int32 y, byte color, int32 mode) {
debug(2, "NutRenderer::drawString() called");
if (_loaded == false) {
@@ -189,9 +190,10 @@
_vm->updateDirtyRect(0, left, x, y, y + height, 0);
}
+*/
-void NutRenderer::drawChar(char c, int32 x, int32 y, byte color) {
- debug(2, "NutRenderer::drawChar('%c', %d, %d, %d) called", c, x, y, (int)color);
+void NutRenderer::drawChar(char c, int32 x, int32 y, byte color, bool useMask) {
+ debug(2, "NutRenderer::drawChar('%c', %d, %d, %d, %d) called", c, x, y, (int)color, useMask);
if (_loaded == false) {
debug(2, "NutRenderer::drawChar() Font is not loaded");
return;
@@ -215,17 +217,19 @@
int offsetX[7] = { -1, 0, 1, 0, 1, 2, 0 };
int offsetY[7] = { 0, -1, 0, 1, 2, 1, 0 };
int cTable[7] = { 0, 0, 0, 0, 0, 0, color };
+
+ byte *dst, *mask = NULL;
+ byte maskmask;
+ int maskpos;
for (int i = 0; i < 7; i++) {
x += offsetX[i];
y += offsetY[i];
color = cTable[i];
- byte *dst = _vm->virtscr[0].screenPtr + y * _vm->_realWidth + x + _vm->virtscr[0].xstart;
- byte *mask = _vm->getResourceAddress(rtBuffer, 9)
+ dst = _vm->virtscr[0].screenPtr + y * _vm->_realWidth + x + _vm->virtscr[0].xstart;
+ mask = _vm->getResourceAddress(rtBuffer, 9)
+ (y * _vm->_realWidth + x) / 8 + _vm->_screenStartStrip;
- byte maskmask;
- int maskpos;
src = _tmpCodecBuffer;
@@ -237,7 +241,8 @@
#if 1
if (pixel != 0) {
dst[tx] = color;
- mask[maskpos] |= maskmask;
+ if (useMask)
+ mask[maskpos] |= maskmask;
}
#else
if (pixel != 0) {
@@ -246,7 +251,8 @@
if (pixel == 0xff)
pixel = 0x0;
dst[tx] = pixel;
- mask[maskpos] |= maskmask;
+ if (useMask)
+ mask[maskpos] |= maskmask;
}
#endif
maskmask >>= 1;
Index: nut_renderer.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/nut_renderer.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- nut_renderer.h 30 Dec 2002 13:55:36 -0000 1.3
+++ nut_renderer.h 15 Jan 2003 03:10:28 -0000 1.4
@@ -41,8 +41,8 @@
~NutRenderer();
bool loadFont(const char *filename, const char *dir);
- void drawChar(char c, int32 x, int32 y, byte color);
- void drawString(const char *string, int32 x, int32 y, byte color, int32 mode);
+ void drawChar(char c, int32 x, int32 y, byte color, bool useMask);
+// void drawString(const char *string, int32 x, int32 y, byte color, int32 mode);
int32 getCharWidth(char c);
int32 getCharHeight(char c);
int32 getStringWidth(char *string);
More information about the Scummvm-git-logs
mailing list