applied patch: #634326, and changed strip ranges for after and before scumm v7,

added comments to saveload

svn-id: r5448
This commit is contained in:
Paweł Kołodziejski 2002-11-06 17:55:44 +00:00
parent 73452fa331
commit 85c7c9ffe6
5 changed files with 28 additions and 9 deletions

View File

@ -430,8 +430,12 @@ void Scumm::initBGBuffers(int height)
size = itemsize * gdi._numZBuffer;
memset(createResource(rtBuffer, 9, size), 0, size);
for (i = 0; i < 4; i++)
gdi._imgBufOffs[i] = i * itemsize;
for (i = 0; i < (int)ARRAYSIZE(gdi._imgBufOffs); i++) {
if (i < gdi._numZBuffer)
gdi._imgBufOffs[i] = i * itemsize;
else
gdi._imgBufOffs[i] = (gdi._numZBuffer - 1) * itemsize;
}
}
void Scumm::setPaletteFromPtr(byte *ptr)
@ -1854,8 +1858,13 @@ void Scumm::updateDirtyRect(int virt, int left, int right, int top, int bottom,
lp = (left >> 3) + _screenStartStrip;
if (lp < 0)
lp = 0;
if (rp >= 240)
rp = 240;
if (_features & GF_AFTER_V7) {
if (rp > 409)
rp = 409;
} else {
if (rp >= 200)
rp = 200;
}
if (lp <= rp) {
num = rp - lp + 1;
sp = &gfxUsageBits[lp];

View File

@ -116,7 +116,7 @@ struct Gdi {
uint _readOffs;
int _numZBuffer;
int _imgBufOffs[4];
int _imgBufOffs[5];
byte _disable_zbuffer;
int32 _numStrips;

View File

@ -1433,9 +1433,13 @@ void Scumm::removeBlastObject(BlastObject *eo)
if (left_strip < 0)
left_strip = 0;
if (right_strip >= 409)
right_strip = 409;
if (_features & GF_AFTER_V7) {
if (right_strip > 409)
right_strip = 409;
} else {
if (right_strip >= 200)
right_strip = 200;
}
for (i = left_strip; i <= right_strip; i++)
gdi.resetBackground(top, bottom, i);

View File

@ -410,6 +410,8 @@ void Scumm::saveOrLoad(Serializer *s)
// MKLINE(Scumm, _palManipEnd, sleByte),
// MKLINE(Scumm, _palManipCounter, sleUint16),
// MKARRAY(Scumm, gfxUsageBits[0], sleUint32, 410),
// replace below:
MKARRAY(Scumm, gfxUsageBits[0], sleUint32, 200),
MKLINE(Scumm, gdi._transparency, sleByte),
MKARRAY(Scumm, _currentPalette[0], sleByte, 768),
@ -421,6 +423,7 @@ void Scumm::saveOrLoad(Serializer *s)
MKLINE(Scumm, _egoPositioned, sleByte),
// FIXME: Should be 5, not 4 :
MKARRAY(Scumm, gdi._imgBufOffs[0], sleUint16, 4),
MKLINE(Scumm, gdi._numZBuffer, sleByte),
@ -521,6 +524,8 @@ void Scumm::saveOrLoad(Serializer *s)
// MKLINE(Scumm, _palManipEnd, sleByte),
// MKLINE(Scumm, _palManipCounter, sleUint16),
// MKARRAY(Scumm, gfxUsageBits[0], sleUint32, 410),
// replace below:
MKARRAY(Scumm, gfxUsageBits[0], sleUint32, 200),
MKLINE(Scumm, gdi._transparency, sleByte),
MKARRAY(Scumm, _currentPalette[0], sleByte, 768),
@ -532,6 +537,7 @@ void Scumm::saveOrLoad(Serializer *s)
MKLINE(Scumm, _egoPositioned, sleByte),
// FIXME: Should be 5, not 4 :
MKARRAY(Scumm, gdi._imgBufOffs[0], sleUint16, 4),
MKLINE(Scumm, gdi._numZBuffer, sleByte),

View File

@ -840,7 +840,7 @@ public:
uint16 _palManipCounter;
byte *_palManipPalette;
byte *_palManipIntermediatePal;
uint32 gfxUsageBits[409];
uint32 gfxUsageBits[410];
byte *_shadowPalette;
int _shadowPaletteSize;
byte _currentPalette[3 * 256];