changed some shift operators to *, /

svn-id: r11315
This commit is contained in:
Paweł Kołodziejski 2003-11-16 20:52:57 +00:00
parent a169876a2f
commit d5eddef057
20 changed files with 163 additions and 163 deletions

View file

@ -1045,7 +1045,7 @@ void Actor::animateLimb(int limb, int f) {
aksq = _vm->findResourceData(MKID('AKSQ'), akos); aksq = _vm->findResourceData(MKID('AKSQ'), akos);
akfo = _vm->findResourceData(MKID('AKFO'), akos); akfo = _vm->findResourceData(MKID('AKFO'), akos);
size = _vm->getResourceDataSize(akfo) >> 1; size = _vm->getResourceDataSize(akfo) / 2;
while (f--) { while (f--) {
if (cost.active[limb] != 0) if (cost.active[limb] != 0)
@ -1103,10 +1103,10 @@ void ScummEngine::resetActorBgs() {
int ScummEngine::getActorFromPos(int x, int y) { int ScummEngine::getActorFromPos(int x, int y) {
int i; int i;
if (!testGfxAnyUsageBits(x >> 3)) if (!testGfxAnyUsageBits(x / 8))
return 0; return 0;
for (i = 1; i < _numActors; i++) { for (i = 1; i < _numActors; i++) {
if (testGfxUsageBit(x >> 3, i) && !getClass(i, kObjectClassUntouchable) if (testGfxUsageBit(x / 8, i) && !getClass(i, kObjectClassUntouchable)
&& y >= _actors[i].top && y <= _actors[i].bottom) { && y >= _actors[i].top && y <= _actors[i].bottom) {
if (_version > 2 || i != VAR(VAR_EGO)) if (_version > 2 || i != VAR(VAR_EGO))
return i; return i;

View file

@ -357,7 +357,7 @@ void AkosRenderer::codec1_genericDecode() {
scaleytab = &v1.scaletable[v1.scaleYindex]; scaleytab = &v1.scaletable[v1.scaleYindex];
maskbit = revBitMask[v1.x & 7]; maskbit = revBitMask[v1.x & 7];
mask = v1.mask_ptr + (v1.x >> 3); mask = v1.mask_ptr + v1.x / 8;
if (len) if (len)
goto StartPos; goto StartPos;
@ -418,7 +418,7 @@ void AkosRenderer::codec1_genericDecode() {
skip_column = true; skip_column = true;
v1.scaleXindex += v1.scaleXstep; v1.scaleXindex += v1.scaleXstep;
dst = v1.destptr; dst = v1.destptr;
mask = v1.mask_ptr + (v1.x >> 3); mask = v1.mask_ptr + v1.x / 8;
} }
StartPos:; StartPos:;
} while (--len); } while (--len);
@ -1067,7 +1067,7 @@ bool ScummEngine::akos_increaseAnims(const byte *akos, Actor *a) {
aksq = findResourceData(MKID('AKSQ'), akos); aksq = findResourceData(MKID('AKSQ'), akos);
akfo = findResourceData(MKID('AKFO'), akos); akfo = findResourceData(MKID('AKFO'), akos);
size = getResourceDataSize(akfo) >> 1; size = getResourceDataSize(akfo) / 2;
result = false; result = false;
for (i = 0; i < 16; i++) { for (i = 0; i < 16; i++) {

View file

@ -239,7 +239,7 @@ void ScummEngine::drawBomp(const BompDrawData &bd, bool mirror) {
// Also mask against any additionally imposed mask // Also mask against any additionally imposed mask
if (bd.maskPtr) { if (bd.maskPtr) {
mask = bd.maskPtr + (bd.y * gdi._numStrips) + ((bd.x + clip_left) >> 3); mask = bd.maskPtr + (bd.y * gdi._numStrips) + ((bd.x + clip_left) / 8);
} }
// Setup vertical scaling // Setup vertical scaling
@ -287,7 +287,7 @@ void ScummEngine::drawBomp(const BompDrawData &bd, bool mirror) {
tmp = skip_y_new & skip_y_bits; tmp = skip_y_new & skip_y_bits;
// Advance the scale-skip bit mask, if it's 0, get the next scale-skip byte // Advance the scale-skip bit mask, if it's 0, get the next scale-skip byte
skip_y_bits >>= 1; skip_y_bits /= 2;
if (skip_y_bits == 0) { if (skip_y_bits == 0) {
skip_y_bits = 0x80; skip_y_bits = 0x80;
skip_y_new = *scalingYPtr++; skip_y_new = *scalingYPtr++;
@ -357,11 +357,11 @@ int32 setupBompScale(byte *scaling, int32 size, byte scale) {
byte ret_value = 0; byte ret_value = 0;
const int offsets[8] = { 3, 2, 1, 0, 7, 6, 5, 4 }; const int offsets[8] = { 3, 2, 1, 0, 7, 6, 5, 4 };
count = (256 - (size >> 1)); count = (256 - size / 2);
assert(0 <= count && count < 768); assert(0 <= count && count < 768);
tmp_ptr = defaultScaleTable + count; tmp_ptr = defaultScaleTable + count;
count = (size + 7) >> 3; count = (size + 7) / 8;
while (count--) { while (count--) {
a = 0; a = 0;
for (int i = 0; i < 8; i++) { for (int i = 0; i < 8; i++) {
@ -379,7 +379,7 @@ int32 setupBompScale(byte *scaling, int32 size, byte scale) {
*(tmp_scaling - 1) |= revBitMask[size & 7]; *(tmp_scaling - 1) |= revBitMask[size & 7];
} }
count = (size + 7) >> 3; count = (size + 7) / 8;
while (count--) { while (count--) {
tmp = *scaling++; tmp = *scaling++;
ret_value += bitCount[tmp]; ret_value += bitCount[tmp];

View file

@ -125,10 +125,10 @@ void Bundle::initializeImcTables() {
int32 imcTable1Pos = 0; int32 imcTable1Pos = 0;
do { do {
byte put = 1; byte put = 1;
int32 tableValue = ((imcTable[imcTable1Pos] << 2) / 7) >> 1; int32 tableValue = ((imcTable[imcTable1Pos] * 4) / 7) / 2;
if (tableValue != 0) { if (tableValue != 0) {
do { do {
tableValue >>= 1; tableValue /= 2;
put++; put++;
} while (tableValue != 0); } while (tableValue != 0);
} }
@ -155,8 +155,8 @@ void Bundle::initializeImcTables() {
if ((count & n) != 0) { if ((count & n) != 0) {
put += tableValue; put += tableValue;
} }
count >>= 1; count /= 2;
tableValue >>= 1; tableValue /= 2;
} while (count != 0); } while (count != 0);
_destImcTable2[destTablePos] = put; _destImcTable2[destTablePos] = put;
destTablePos += 64; destTablePos += 64;
@ -526,13 +526,13 @@ int32 Bundle::decompressCodec(int32 codec, byte *comp_input, byte *comp_output,
s = 0; s = 0;
j = 0; j = 0;
do { do {
ptr = src + length + (k >> 1); ptr = src + length + k / 2;
if (k & 1) { if (k & 1) {
r = c >> 3; r = c / 8;
t_table[r + 2] = ((src[j] & 0x0f) << 4) | (ptr[1] >> 4); t_table[r + 2] = ((src[j] & 0x0f) << 4) | (ptr[1] >> 4);
t_table[r + 1] = (src[j] & 0xf0) | (t_table[r + 1]); t_table[r + 1] = (src[j] & 0xf0) | (t_table[r + 1]);
} else { } else {
r = s >> 3; r = s / 8;
t_table[r + 0] = ((src[j] & 0x0f) << 4) | (ptr[0] & 0x0f); t_table[r + 0] = ((src[j] & 0x0f) << 4) | (ptr[0] & 0x0f);
t_table[r + 1] = src[j] >> 4; t_table[r + 1] = src[j] >> 4;
} }
@ -569,13 +569,13 @@ int32 Bundle::decompressCodec(int32 codec, byte *comp_input, byte *comp_output,
j = 1; j = 1;
if (t > k) { if (t > k) {
do { do {
ptr = src + length + (k >> 1); ptr = src + length + k / 2;
if (k & 1) { if (k & 1) {
r = c >> 3; r = c / 8;
t_table[r + 0] = (src[j - 1] & 0xf0) | t_table[r]; t_table[r + 0] = (src[j - 1] & 0xf0) | t_table[r];
t_table[r + 1] = ((src[j - 1] & 0x0f) << 4) | (ptr[0] & 0x0f); t_table[r + 1] = ((src[j - 1] & 0x0f) << 4) | (ptr[0] & 0x0f);
} else { } else {
r = s >> 3; r = s / 8;
t_table[r + 0] = src[j - 1] >> 4; t_table[r + 0] = src[j - 1] >> 4;
t_table[r - 1] = ((src[j - 1] & 0x0f) << 4) | (ptr[0] >> 4); t_table[r - 1] = ((src[j - 1] & 0x0f) << 4) | (ptr[0] >> 4);
} }
@ -611,13 +611,13 @@ int32 Bundle::decompressCodec(int32 codec, byte *comp_input, byte *comp_output,
t = length - 1; t = length - 1;
if (t > 0) { if (t > 0) {
do { do {
ptr = src + length + (k >> 1); ptr = src + length + k / 2;
if (k & 1) { if (k & 1) {
r = s >> 3; r = s / 8;
t_table[r + 2] = (src[j] & 0xf0) | *(t_table + r + 2); t_table[r + 2] = (src[j] & 0xf0) | *(t_table + r + 2);
t_table[r + 3] = ((src[j] & 0x0f) << 4) | (ptr[0] >> 4); t_table[r + 3] = ((src[j] & 0x0f) << 4) | (ptr[0] >> 4);
} else { } else {
r = c >> 3; r = c / 8;
t_table[r + 2] = src[j] >> 4; t_table[r + 2] = src[j] >> 4;
t_table[r + 1] = ((src[j] & 0x0f) << 4) | (ptr[0] & 0x0f); t_table[r + 1] = ((src[j] & 0x0f) << 4) | (ptr[0] & 0x0f);
} }
@ -663,15 +663,15 @@ int32 Bundle::decompressCodec(int32 codec, byte *comp_input, byte *comp_output,
c = -12; c = -12;
s = 0; s = 0;
do { do {
j = length + (k >> 1); j = length + k / 2;
if (k & 1) { if (k & 1) {
r = c >> 3; r = c / 8;
t_tmp1 = t_table[k]; t_tmp1 = t_table[k];
t_tmp2 = t_table[j + 1]; t_tmp2 = t_table[j + 1];
src[r + 2] = ((t_tmp1 & 0x0f) << 4) | (t_tmp2 >> 4); src[r + 2] = ((t_tmp1 & 0x0f) << 4) | (t_tmp2 >> 4);
src[r + 1] = (src[r + 1]) | (t_tmp1 & 0xf0); src[r + 1] = (src[r + 1]) | (t_tmp1 & 0xf0);
} else { } else {
r = s >> 3; r = s / 8;
t_tmp1 = t_table[k]; t_tmp1 = t_table[k];
t_tmp2 = t_table[j]; t_tmp2 = t_table[j];
src[r + 0] = ((t_tmp1 & 0x0f) << 4) | (t_tmp2 & 0x0f); src[r + 0] = ((t_tmp1 & 0x0f) << 4) | (t_tmp2 & 0x0f);
@ -722,15 +722,15 @@ int32 Bundle::decompressCodec(int32 codec, byte *comp_input, byte *comp_output,
t = length + k; t = length + k;
if (t > k) { if (t > k) {
do { do {
j = length + (k / 2); j = length + k / 2;
if (k & 1) { if (k & 1) {
r = c >> 3; r = c / 8;
t_tmp1 = t_table[k - 1]; t_tmp1 = t_table[k - 1];
t_tmp2 = t_table[j]; t_tmp2 = t_table[j];
src[r + 0] = (src[r]) | (t_tmp1 & 0xf0); src[r + 0] = (src[r]) | (t_tmp1 & 0xf0);
src[r + 1] = ((t_tmp1 & 0x0f) << 4) | (t_tmp2 & 0x0f); src[r + 1] = ((t_tmp1 & 0x0f) << 4) | (t_tmp2 & 0x0f);
} else { } else {
r = s >> 3; r = s / 8;
t_tmp1 = t_table[k - 1]; t_tmp1 = t_table[k - 1];
t_tmp2 = t_table[j]; t_tmp2 = t_table[j];
src[r + 0] = t_tmp1 >> 4; src[r + 0] = t_tmp1 >> 4;
@ -779,15 +779,15 @@ int32 Bundle::decompressCodec(int32 codec, byte *comp_input, byte *comp_output,
t = length - 1; t = length - 1;
if (t > 0) { if (t > 0) {
do { do {
j = length + (k >> 1); j = length + k / 2;
if (k & 1) { if (k & 1) {
r = s >> 3; r = s / 8;
t_tmp1 = t_table[k]; t_tmp1 = t_table[k];
t_tmp2 = t_table[j]; t_tmp2 = t_table[j];
src[r + 2] = (src[r + 2]) | (t_tmp1 & 0xf0); src[r + 2] = (src[r + 2]) | (t_tmp1 & 0xf0);
src[r + 3] = ((t_tmp1 & 0x0f) << 4) | (t_tmp2 >> 4); src[r + 3] = ((t_tmp1 & 0x0f) << 4) | (t_tmp2 >> 4);
} else { } else {
r = c >> 3; r = c / 8;
t_tmp1 = t_table[k]; t_tmp1 = t_table[k];
t_tmp2 = t_table[j]; t_tmp2 = t_table[j];
src[r + 2] = t_tmp1 >> 4; src[r + 2] = t_tmp1 >> 4;
@ -842,8 +842,8 @@ int32 Bundle::decompressCodec(int32 codec, byte *comp_input, byte *comp_output,
left = 0x2000 - firstWord; left = 0x2000 - firstWord;
output_size = left; output_size = left;
} else { } else {
left = 0x1000 - (firstWord >> 1); left = 0x1000 - firstWord / 2;
output_size = left << 1; output_size = left * 2;
} }
} else { } else {
startPos = 1; startPos = 1;
@ -875,14 +875,14 @@ int32 Bundle::decompressCodec(int32 codec, byte *comp_input, byte *comp_output,
if (channels == 2) { if (channels == 2) {
if (l == 0) if (l == 0)
left++; left++;
left >>= 1; left /= 2;
} }
while (left--) { while (left--) {
curTableEntry = _destImcTable[curTablePos]; curTableEntry = _destImcTable[curTablePos];
decompTable = (byte)(curTableEntry - 2); decompTable = (byte)(curTableEntry - 2);
bitMask = 2 << decompTable; bitMask = 2 << decompTable;
readPos = src + (tableEntrySum >> 3); readPos = src + tableEntrySum / 8;
// FIXME - it seems the decoder often reads exactly one byte too // FIXME - it seems the decoder often reads exactly one byte too
// far - that is, it reads 2 bytes at once, and the second byte // far - that is, it reads 2 bytes at once, and the second byte
@ -897,7 +897,7 @@ int32 Bundle::decompressCodec(int32 codec, byte *comp_input, byte *comp_output,
if (readPos + 1 > comp_input + input_size || if (readPos + 1 > comp_input + input_size ||
curTableEntry + (tableEntrySum & 7) > 8) { curTableEntry + (tableEntrySum & 7) > 8) {
error("decompressCodec: input buffer overflow: %d bytes over (we need %d bits of data)", error("decompressCodec: input buffer overflow: %d bytes over (we need %d bits of data)",
(int)((readPos+1) - (comp_input+input_size))+1, (int)((readPos + 1) - (comp_input + input_size)) + 1,
curTableEntry + (tableEntrySum & 7) curTableEntry + (tableEntrySum & 7)
); );
} }
@ -906,7 +906,7 @@ int32 Bundle::decompressCodec(int32 codec, byte *comp_input, byte *comp_output,
otherTablePos = (byte)(readWord >> (16 - curTableEntry)); otherTablePos = (byte)(readWord >> (16 - curTableEntry));
tableEntrySum += curTableEntry; tableEntrySum += curTableEntry;
esiReg = ((imxShortTable[curTableEntry] & otherTablePos) esiReg = ((imxShortTable[curTableEntry] & otherTablePos)
<< (7 - curTableEntry)) + (curTablePos << 6); << (7 - curTableEntry)) + (curTablePos * 64);
imcTableEntry >>= (curTableEntry - 1); imcTableEntry >>= (curTableEntry - 1);
adder = imcTableEntry + _destImcTable2[esiReg]; adder = imcTableEntry + _destImcTable2[esiReg];
if ((otherTablePos & bitMask) != 0) { if ((otherTablePos & bitMask) != 0) {
@ -931,7 +931,7 @@ int32 Bundle::decompressCodec(int32 codec, byte *comp_input, byte *comp_output,
curTablePos = 0; curTablePos = 0;
imcTableEntry = imcTable[curTablePos]; imcTableEntry = imcTable[curTablePos];
destPos += channels << 1; destPos += channels * 2;
} }
} }
} }

View file

@ -99,7 +99,7 @@ void ScummEngine::setCameraFollows(Actor *a) {
setCameraAt(camera._cur.x, 0); setCameraAt(camera._cur.x, 0);
} }
t = (a->_pos.x >> 3); t = a->_pos.x / 8;
if (t - _screenStartStrip < camera._leftTrigger || t - _screenStartStrip > camera._rightTrigger) if (t - _screenStartStrip < camera._leftTrigger || t - _screenStartStrip > camera._rightTrigger)
setCameraAt(a->_pos.x, 0); setCameraAt(a->_pos.x, 0);
@ -178,7 +178,7 @@ void ScummEngine::moveCamera() {
a = derefActor(camera._follows, "moveCamera"); a = derefActor(camera._follows, "moveCamera");
actorx = a->_pos.x; actorx = a->_pos.x;
t = (actorx >> 3) - _screenStartStrip; t = actorx / 8 - _screenStartStrip;
if (t < camera._leftTrigger || t > camera._rightTrigger) { if (t < camera._leftTrigger || t > camera._rightTrigger) {
if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X)) { if (VAR_CAMERA_FAST_X != 0xFF && VAR(VAR_CAMERA_FAST_X)) {
@ -212,7 +212,7 @@ void ScummEngine::moveCamera() {
} }
/* a is set a bit above */ /* a is set a bit above */
if (camera._movingToActor && (camera._cur.x >> 3) == (a->_pos.x >> 3)) { if (camera._movingToActor && (camera._cur.x / 8) == (a->_pos.x / 8)) {
camera._movingToActor = false; camera._movingToActor = false;
} }
@ -330,13 +330,13 @@ void ScummEngine::cameraMoved() {
if (_features & GF_NEW_CAMERA) { if (_features & GF_NEW_CAMERA) {
_screenLeft = camera._cur.x - (_screenWidth / 2); _screenLeft = camera._cur.x - (_screenWidth / 2);
} else { } else {
_screenLeft = _screenStartStrip << 3; _screenLeft = _screenStartStrip * 8;
} }
#ifdef V7_SMOOTH_SCROLLING_HACK #ifdef V7_SMOOTH_SCROLLING_HACK
virtscr[0].xstart = _screenLeft; virtscr[0].xstart = _screenLeft;
#else #else
virtscr[0].xstart = _screenStartStrip << 3; virtscr[0].xstart = _screenStartStrip * 8;
#endif #endif
if (_charset->_hasMask && (_version >= 4 && _gameId != GID_LOOM256)) { if (_charset->_hasMask && (_version >= 4 && _gameId != GID_LOOM256)) {

View file

@ -298,7 +298,7 @@ void CostumeRenderer::c64_ignorePakCols(int num) {
// //
uint height = _height; uint height = _height;
num >>= 3; num /= 8;
while (num > 0) { while (num > 0) {
v1.replen = *_srcptr++; v1.replen = *_srcptr++;
@ -335,14 +335,14 @@ static const int v1_mm_actor_palatte_2[25] = {
}; };
#define MASK_AT(xoff) \ #define MASK_AT(xoff) \
(mask && (mask[((v1.x+xoff) >> 3) + v1.imgbufoffs] & revBitMask[(v1.x+xoff) & 7])) (mask && (mask[((v1.x + xoff) / 8) + v1.imgbufoffs] & revBitMask[(v1.x + xoff) & 7]))
#define LINE(c,p) \ #define LINE(c,p) \
pcolor = (color >> c) & 3; \ pcolor = (color >> c) & 3; \
if (pcolor) { \ if (pcolor) { \
if (!MASK_AT(p)) \ if (!MASK_AT(p)) \
dst[p] = palette[pcolor]; \ dst[p] = palette[pcolor]; \
if (!MASK_AT(p+1)) \ if (!MASK_AT(p + 1)) \
dst[p+1] = palette[pcolor]; \ dst[p + 1] = palette[pcolor]; \
} }
void CostumeRenderer::procC64(int actor) { void CostumeRenderer::procC64(int actor) {
@ -360,7 +360,7 @@ void CostumeRenderer::procC64(int actor) {
color = v1.repcolor; color = v1.repcolor;
height = _height; height = _height;
v1.skip_width >>= 3; v1.skip_width /= 8;
// Set up the palette data // Set up the palette data
byte palette[4] = { 0, 0, 0, 0 }; byte palette[4] = { 0, 0, 0, 0 };
@ -436,7 +436,7 @@ void CostumeRenderer::proc3() {
scaleytab = &v1.scaletable[_scaleIndexY]; scaleytab = &v1.scaletable[_scaleIndexY];
maskbit = revBitMask[v1.x & 7]; maskbit = revBitMask[v1.x & 7];
mask = v1.mask_ptr + (v1.x >> 3); mask = v1.mask_ptr + v1.x / 8;
if (len) if (len)
goto StartPos; goto StartPos;
@ -486,7 +486,7 @@ void CostumeRenderer::proc3() {
} }
_scaleIndexX += v1.scaleXstep; _scaleIndexX += v1.scaleXstep;
dst = v1.destptr; dst = v1.destptr;
mask = v1.mask_ptr + (v1.x >> 3); mask = v1.mask_ptr + v1.x / 8;
} }
StartPos:; StartPos:;
} while (--len); } while (--len);
@ -502,7 +502,7 @@ void CostumeRenderer::proc3_ami() {
bool masked; bool masked;
int oldXpos, oldScaleIndexX; int oldXpos, oldScaleIndexX;
mask = v1.mask_ptr + (v1.x >> 3); mask = v1.mask_ptr + v1.x / 8;
dst = v1.destptr; dst = v1.destptr;
height = _height; height = _height;
width = _width; width = _width;
@ -532,7 +532,7 @@ void CostumeRenderer::proc3_ami() {
maskbit = revBitMask[v1.x & 7]; maskbit = revBitMask[v1.x & 7];
} }
_scaleIndexX += v1.scaleXstep; _scaleIndexX += v1.scaleXstep;
mask = v1.mask_ptr + (v1.x >> 3); mask = v1.mask_ptr + v1.x / 8;
} }
if (!--width) { if (!--width) {
if (!--height) if (!--height)

View file

@ -330,19 +330,19 @@ void ScummEngine::updateDirtyRect(int virt, int left, int right, int top, int bo
bottom = vs->height; bottom = vs->height;
if (virt == 0 && dirtybit) { if (virt == 0 && dirtybit) {
lp = (left >> 3) + _screenStartStrip; lp = left / 8 + _screenStartStrip;
if (lp < 0) if (lp < 0)
lp = 0; lp = 0;
if (_version >= 7) { if (_version >= 7) {
#ifdef V7_SMOOTH_SCROLLING_HACK #ifdef V7_SMOOTH_SCROLLING_HACK
rp = (right + vs->xstart) >> 3; rp = (right + vs->xstart) / 8;
#else #else
rp = (right >> 3) + _screenStartStrip; rp = right / 8 + _screenStartStrip;
#endif #endif
if (rp > 409) if (rp > 409)
rp = 409; rp = 409;
} else { } else {
rp = (right >> 3) + _screenStartStrip; rp = right / 8 + _screenStartStrip;
if (rp >= 200) if (rp >= 200)
rp = 200; rp = 200;
} }
@ -351,8 +351,8 @@ void ScummEngine::updateDirtyRect(int virt, int left, int right, int top, int bo
} }
// The following code used to be in the separate method setVirtscreenDirty // The following code used to be in the separate method setVirtscreenDirty
lp = left >> 3; lp = left / 8;
rp = right >> 3; rp = right / 8;
if ((lp >= gdi._numStrips) || (rp < 0)) if ((lp >= gdi._numStrips) || (rp < 0))
return; return;
@ -416,7 +416,7 @@ void Gdi::updateDirtyScreen(VirtScreen *vs) {
return; return;
if (_vm->_features & GF_NEW_CAMERA && (_vm->camera._cur.y != _vm->camera._last.y)) { if (_vm->_features & GF_NEW_CAMERA && (_vm->camera._cur.y != _vm->camera._last.y)) {
drawStripToScreen(vs, 0, _numStrips << 3, 0, vs->height); drawStripToScreen(vs, 0, _numStrips * 8, 0, vs->height);
} else { } else {
int i; int i;
int start, w, top, bottom; int start, w, top, bottom;
@ -500,7 +500,7 @@ void Gdi::resetBackground(int top, int bottom, int strip) {
if (bottom > vs->bdirty[strip]) if (bottom > vs->bdirty[strip])
vs->bdirty[strip] = bottom; vs->bdirty[strip] = bottom;
offs = (top * _numStrips + _vm->_screenStartStrip + strip) << 3; offs = (top * _numStrips + _vm->_screenStartStrip + strip) * 8;
byte *mask_ptr = _vm->getMaskBuffer(strip * 8, top, 0); byte *mask_ptr = _vm->getMaskBuffer(strip * 8, top, 0);
bgbak_ptr = _vm->getResourceAddress(rtBuffer, 5) + offs; bgbak_ptr = _vm->getResourceAddress(rtBuffer, 5) + offs;
backbuff_ptr = vs->screenPtr + offs; backbuff_ptr = vs->screenPtr + offs;
@ -508,7 +508,7 @@ void Gdi::resetBackground(int top, int bottom, int strip) {
numLinesToProcess = bottom - top; numLinesToProcess = bottom - top;
if (numLinesToProcess) { if (numLinesToProcess) {
if ((_vm->_features & GF_NEW_OPCODES) || (_vm->VAR(_vm->VAR_CURRENT_LIGHTS) & LIGHTMODE_screen)) { if ((_vm->_features & GF_NEW_OPCODES) || (_vm->VAR(_vm->VAR_CURRENT_LIGHTS) & LIGHTMODE_screen)) {
if (_vm->hasCharsetMask(strip << 3, top, (strip + 1) << 3, bottom)) if (_vm->hasCharsetMask(strip * 8, top, (strip + 1) * 8, bottom))
draw8ColWithMasking(backbuff_ptr, bgbak_ptr, numLinesToProcess, mask_ptr); draw8ColWithMasking(backbuff_ptr, bgbak_ptr, numLinesToProcess, mask_ptr);
else else
draw8Col(backbuff_ptr, bgbak_ptr, numLinesToProcess); draw8Col(backbuff_ptr, bgbak_ptr, numLinesToProcess);
@ -761,7 +761,7 @@ void ScummEngine::redrawBGAreas() {
} }
if (_features & GF_NEW_CAMERA) { if (_features & GF_NEW_CAMERA) {
diff = (camera._cur.x >> 3) - (camera._last.x >> 3); diff = camera._cur.x / 8 - camera._last.x / 8;
if (_fullRedraw == 0 && diff == 1) { if (_fullRedraw == 0 && diff == 1) {
val = 2; val = 2;
redrawBGStrip(gdi._numStrips - 1, 1); redrawBGStrip(gdi._numStrips - 1, 1);
@ -864,10 +864,10 @@ void ScummEngine::restoreBG(Common::Rect rect, byte backColor) {
if (vs->number == 0 && _charset->_hasMask && height) { if (vs->number == 0 && _charset->_hasMask && height) {
byte *mask; byte *mask;
// Note: At first sight it may look as if this could // Note: At first sight it may look as if this could
// be optimized to (rect.right - rect.left) >> 3 and // be optimized to (rect.right - rect.left) / 8 and
// thus to width >> 3, but that's not the case since // thus to width * 8, but that's not the case since
// we are dealing with integer math here. // we are dealing with integer math here.
int mask_width = (rect.right >> 3) - (rect.left >> 3); int mask_width = (rect.right / 8) - (rect.left / 8);
if (rect.right & 0x07) if (rect.right & 0x07)
mask_width++; mask_width++;
@ -1008,7 +1008,7 @@ void Gdi::drawBitmap(const byte *ptr, VirtScreen *vs, int x, int y, const int wi
sx = x; sx = x;
if (vs->scrollable) if (vs->scrollable)
sx -= vs->xstart >> 3; sx -= vs->xstart / 8;
// //
// Since V3, all graphics data was encoded in strips, which is very efficient // Since V3, all graphics data was encoded in strips, which is very efficient
@ -1026,8 +1026,8 @@ void Gdi::drawBitmap(const byte *ptr, VirtScreen *vs, int x, int y, const int wi
mask_ptr = _vm->getResourceAddress(rtBuffer, 9) + (y * _numStrips + x) + _imgBufOffs[1]; mask_ptr = _vm->getResourceAddress(rtBuffer, 9) + (y * _numStrips + x) + _imgBufOffs[1];
const int left = (stripnr << 3); const int left = (stripnr * 8);
const int right = left + (numstrip << 3); const int right = left + (numstrip * 8);
byte *dst = bgbak_ptr; byte *dst = bgbak_ptr;
const byte *src; const byte *src;
byte color, data = 0; byte color, data = 0;
@ -1166,7 +1166,7 @@ void Gdi::drawBitmap(const byte *ptr, VirtScreen *vs, int x, int y, const int wi
CHECK_HEAP; CHECK_HEAP;
if (vs->alloctwobuffers) { if (vs->alloctwobuffers) {
if (_vm->hasCharsetMask(sx << 3, y, (sx + 1) << 3, bottom)) { if (_vm->hasCharsetMask(sx * 8, y, (sx + 1) * 8, bottom)) {
if (flag & dbClear || !lightsOn) if (flag & dbClear || !lightsOn)
clear8ColWithMasking(backbuff_ptr, height, mask_ptr); clear8ColWithMasking(backbuff_ptr, height, mask_ptr);
else else
@ -1360,7 +1360,7 @@ StripTable *Gdi::generateStripTable(const byte *src, int width, int height, Stri
void Gdi::drawStripC64Background(byte *dst, int stripnr, int height) { void Gdi::drawStripC64Background(byte *dst, int stripnr, int height) {
int charIdx; int charIdx;
height >>= 3; height /= 8;
for (int y = 0; y < height; y++) { for (int y = 0; y < height; y++) {
_C64Colors[3] = (_C64ColorMap[y + stripnr * height] & 7); _C64Colors[3] = (_C64ColorMap[y + stripnr * height] & 7);
// Check for room color change in V1 zak // Check for room color change in V1 zak
@ -1383,8 +1383,8 @@ void Gdi::drawStripC64Background(byte *dst, int stripnr, int height) {
void Gdi::drawStripC64Object(byte *dst, int stripnr, int width, int height) { void Gdi::drawStripC64Object(byte *dst, int stripnr, int width, int height) {
int charIdx; int charIdx;
height >>= 3; height /= 8;
width >>= 3; width /= 8;
for (int y = 0; y < height; y++) { for (int y = 0; y < height; y++) {
_C64Colors[3] = (_C64ObjectMap[(y + height) * width + stripnr] & 7); _C64Colors[3] = (_C64ObjectMap[(y + height) * width + stripnr] & 7);
charIdx = _C64ObjectMap[y * width + stripnr] * 8; charIdx = _C64ObjectMap[y * width + stripnr] * 8;
@ -1401,8 +1401,8 @@ void Gdi::drawStripC64Object(byte *dst, int stripnr, int width, int height) {
void Gdi::drawStripC64Mask(byte *dst, int stripnr, int width, int height) { void Gdi::drawStripC64Mask(byte *dst, int stripnr, int width, int height) {
int maskIdx; int maskIdx;
height >>= 3; height /= 8;
width >>= 3; width /= 8;
for (int y = 0; y < height; y++) { for (int y = 0; y < height; y++) {
if (_C64ObjectMode) if (_C64ObjectMode)
maskIdx = _C64ObjectMap[(y + 2 * height) * width + stripnr] * 8; maskIdx = _C64ObjectMap[(y + 2 * height) * width + stripnr] * 8;
@ -1466,7 +1466,7 @@ void Gdi::decodeStripEGA(byte *dst, const byte *src, int height) {
run = *src++; run = *src++;
} }
for (z = 0; z < run; z++) { for (z = 0; z < run; z++) {
*(dst + y * _vm->_screenWidth + x) = (z&1) ? _roomPalette[color & 0xf] : _roomPalette[color >> 4]; *(dst + y * _vm->_screenWidth + x) = (z & 1) ? _roomPalette[color & 0xf] : _roomPalette[color >> 4];
y++; y++;
if (y >= height) { if (y >= height) {
@ -1794,7 +1794,7 @@ void Gdi::unkDecodeA(byte *dst, const byte *src, int height) {
cl -= 3; cl -= 3;
bits >>= 3; bits >>= 3;
if (incm) { if (incm) {
color = (byte)((color+incm)&0xFF); color = (byte)((color + incm) & 0xFF);
} else { } else {
FILL_BITS; FILL_BITS;
reps = bits & 0xFF; reps = bits & 0xFF;
@ -2297,11 +2297,11 @@ void ScummEngine::transitionEffect(int a) {
delta[i] = transitionEffects[a].deltaTable[i]; delta[i] = transitionEffects[a].deltaTable[i];
j = transitionEffects[a].stripTable[i]; j = transitionEffects[a].stripTable[i];
if (j == 24) if (j == 24)
j = (virtscr[0].height >> 3) - 1; j = virtscr[0].height / 8 - 1;
tab_2[i] = j; tab_2[i] = j;
} }
bottom = virtscr[0].height >> 3; bottom = virtscr[0].height / 8;
for (j = 0; j < transitionEffects[a].numOfIterations; j++) { for (j = 0; j < transitionEffects[a].numOfIterations; j++) {
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
l = tab_2[i * 4]; l = tab_2[i * 4];
@ -2311,8 +2311,8 @@ void ScummEngine::transitionEffect(int a) {
if (t == b) { if (t == b) {
while (l <= r) { while (l <= r) {
if (l >= 0 && l < gdi._numStrips && (uint) t < (uint) bottom) { if (l >= 0 && l < gdi._numStrips && (uint) t < (uint) bottom) {
virtscr[0].tdirty[l] = t << 3; virtscr[0].tdirty[l] = t * 8;
virtscr[0].bdirty[l] = (t + 1) << 3; virtscr[0].bdirty[l] = (t + 1) * 8;
} }
l++; l++;
} }
@ -2323,8 +2323,8 @@ void ScummEngine::transitionEffect(int a) {
b = bottom; b = bottom;
if (t < 0) if (t < 0)
t = 0; t = 0;
virtscr[0].tdirty[l] = t << 3; virtscr[0].tdirty[l] = t * 8;
virtscr[0].bdirty[l] = (b + 1) << 3; virtscr[0].bdirty[l] = (b + 1) * 8;
} }
updateDirtyScreen(0); updateDirtyScreen(0);
} }
@ -3330,7 +3330,7 @@ const byte *ScummEngine::findPalInPals(const byte *pal, int idx) {
if (offs == NULL) if (offs == NULL)
return NULL; return NULL;
size = getResourceDataSize(offs) >> 2; size = getResourceDataSize(offs) / 4;
if ((uint32)idx >= (uint32)size) if ((uint32)idx >= (uint32)size)
return NULL; return NULL;
@ -3456,8 +3456,8 @@ void ScummEngine::useIm01Cursor(const byte *im, int w, int h) {
const byte *src; const byte *src;
int i; int i;
w <<= 3; w *= 8;
h <<= 3; h *= 8;
dst = buf = (byte *) malloc(w * h); dst = buf = (byte *) malloc(w * h);
src = vs->screenPtr + vs->xstart; src = vs->screenPtr + vs->xstart;
@ -3472,7 +3472,7 @@ void ScummEngine::useIm01Cursor(const byte *im, int w, int h) {
vs->alloctwobuffers = false; vs->alloctwobuffers = false;
gdi.disableZBuffer(); gdi.disableZBuffer();
gdi.drawBitmap(im, vs, _screenStartStrip, 0, w, h, 0, w >> 3, 0); gdi.drawBitmap(im, vs, _screenStartStrip, 0, w, h, 0, w / 8, 0);
vs->alloctwobuffers = true; vs->alloctwobuffers = true;
gdi.enableZBuffer(); gdi.enableZBuffer();
@ -3524,8 +3524,8 @@ void ScummEngine::animateCursor() {
void ScummEngine::useBompCursor(const byte *im, int width, int height) { void ScummEngine::useBompCursor(const byte *im, int width, int height) {
uint size; uint size;
width <<= 3; width *= 8;
height <<= 3; height *= 8;
size = width * height; size = width * height;
if (size > sizeof(_grabbedCursor)) if (size > sizeof(_grabbedCursor))

View file

@ -404,7 +404,7 @@ void IMuseInternal::handle_marker(uint id, byte data) {
int IMuseInternal::get_channel_volume(uint a) { int IMuseInternal::get_channel_volume(uint a) {
if (a < 8) if (a < 8)
return _channel_volume_eff[a]; return _channel_volume_eff[a];
return (_master_volume * _music_volume / 255) >> 1; return (_master_volume * _music_volume / 255) / 2;
} }
Part *IMuseInternal::allocate_part(byte pri, MidiDriver *midi) { Part *IMuseInternal::allocate_part(byte pri, MidiDriver *midi) {
@ -697,7 +697,7 @@ int32 IMuseInternal::doCommand (int numargs, int a[]) {
} }
case 7: case 7:
warning ("IMuse doCommand(7) - getMasterVolume (%d)", a[1]); warning ("IMuse doCommand(7) - getMasterVolume (%d)", a[1]);
return _master_volume >> 1; // Convert from 0-255 to 0-127 return _master_volume / 2; // Convert from 0-255 to 0-127
case 8: case 8:
return startSound(a[1]) ? 0 : -1; return startSound(a[1]) ? 0 : -1;
case 9: case 9:

View file

@ -879,7 +879,7 @@ int Player::setVolume(byte vol) {
return -1; return -1;
_volume = vol; _volume = vol;
_vol_eff = _se->get_channel_volume(_vol_chan) *(vol + 1) >> 7; _vol_eff = _se->get_channel_volume(_vol_chan) * (vol + 1) >> 7;
for (part = _parts; part; part = part->_next) { for (part = _parts; part; part = part->_next) {
part->volume(part->_vol); part->volume(part->_vol);

View file

@ -408,10 +408,10 @@ void ScummEngine::drawObject(int obj, int arg) {
checkRange(_numGlobalObjects - 1, 0, od.obj_nr, "Object %d out of range in drawObject"); checkRange(_numGlobalObjects - 1, 0, od.obj_nr, "Object %d out of range in drawObject");
xpos = od.x_pos >> 3; xpos = od.x_pos / 8;
ypos = od.y_pos; ypos = od.y_pos;
width = od.width >> 3; width = od.width / 8;
height = od.height &= 0xFFFFFFF8; // Mask out last 3 bits height = od.height &= 0xFFFFFFF8; // Mask out last 3 bits
if (width == 0 || xpos > _screenEndStrip || xpos + width < _screenStartStrip) if (width == 0 || xpos > _screenEndStrip || xpos + width < _screenStartStrip)
@ -447,13 +447,13 @@ void ScummEngine::drawObject(int obj, int arg) {
byte flags = Gdi::dbAllowMaskOr; byte flags = Gdi::dbAllowMaskOr;
if (_version == 1) { if (_version == 1) {
gdi._C64ObjectMode = true; gdi._C64ObjectMode = true;
gdi.decodeC64Gfx(ptr, gdi._C64ObjectMap, width * (height >> 3) * 3); gdi.decodeC64Gfx(ptr, gdi._C64ObjectMap, width * (height / 8) * 3);
} }
// Sam & Max needs this to fix object-layering problems with // Sam & Max needs this to fix object-layering problems with
// the inventory and conversation icons. // the inventory and conversation icons.
if ((_version >= 7 || _gameId == GID_SAMNMAX) && getClass(od.obj_nr, kObjectClassIgnoreBoxes)) if ((_version >= 7 || _gameId == GID_SAMNMAX) && getClass(od.obj_nr, kObjectClassIgnoreBoxes))
flags |= Gdi::dbDrawMaskOnAll; flags |= Gdi::dbDrawMaskOnAll;
gdi.drawBitmap(ptr, &virtscr[0], x, ypos, width << 3, height, x - xpos, numstrip, flags); gdi.drawBitmap(ptr, &virtscr[0], x, ypos, width * 8, height, x - xpos, numstrip, flags);
} }
} }
@ -692,14 +692,14 @@ void ScummEngine::setupRoomObject(ObjectData *od, const byte *room, const byte *
od->obj_nr = READ_LE_UINT16(ptr + 6); od->obj_nr = READ_LE_UINT16(ptr + 6);
od->x_pos = *(ptr + 9) << 3; od->x_pos = *(ptr + 9) * 8;
od->y_pos = ((*(ptr + 10)) & 0x7F) << 3; od->y_pos = ((*(ptr + 10)) & 0x7F) * 8;
od->parentstate = (*(ptr + 10) & 0x80) ? 1 : 0; od->parentstate = (*(ptr + 10) & 0x80) ? 1 : 0;
if (_version <= 2) if (_version <= 2)
od->parentstate <<= 3; od->parentstate *= 8;
od->width = *(ptr + 11) << 3; od->width = *(ptr + 11) * 8;
od->parent = *(ptr + 12); od->parent = *(ptr + 12);
@ -773,10 +773,10 @@ void ScummEngine::setupRoomObject(ObjectData *od, const byte *room, const byte *
} else { } else {
od->obj_nr = READ_LE_UINT16(&(cdhd->v5.obj_id)); od->obj_nr = READ_LE_UINT16(&(cdhd->v5.obj_id));
od->width = cdhd->v5.w << 3; od->width = cdhd->v5.w * 8;
od->height = cdhd->v5.h << 3; od->height = cdhd->v5.h * 8;
od->x_pos = cdhd->v5.x << 3; od->x_pos = cdhd->v5.x * 8;
od->y_pos = cdhd->v5.y << 3; od->y_pos = cdhd->v5.y * 8;
if (cdhd->v5.flags == 0x80) { if (cdhd->v5.flags == 0x80) {
od->parentstate = 1; od->parentstate = 1;
} else { } else {
@ -857,8 +857,8 @@ void ScummEngine::removeObjectFromRoom(int obj) {
for (i = 1; i < _numLocalObjects; i++) { for (i = 1; i < _numLocalObjects; i++) {
if (_objs[i].obj_nr == (uint16)obj) { if (_objs[i].obj_nr == (uint16)obj) {
if (_objs[i].width != 0) { if (_objs[i].width != 0) {
for (j = 0; j < _objs[i].width >> 3; j++) { for (j = 0; j < _objs[i].width / 8; j++) {
strip = (_objs[i].x_pos >> 3) + j; strip = (_objs[i].x_pos / 8) + j;
// Clip value // Clip value
if (strip < _screenStartStrip) if (strip < _screenStartStrip)
@ -1299,8 +1299,8 @@ void ScummEngine::setObjectState(int obj, int state, int x, int y) {
} }
if (x != -1) { if (x != -1) {
_objs[i].x_pos = x << 3; _objs[i].x_pos = x * 8;
_objs[i].y_pos = y << 3; _objs[i].y_pos = y * 8;
} }
addObjectToDrawQue(i); addObjectToDrawQue(i);
@ -1334,7 +1334,7 @@ int ScummEngine::getDistanceBetween(bool is_obj_1, int b, int c, bool is_obj_2,
y2 = f; y2 = f;
} }
return getDist(x, y, x2, y2) * 0xFF / ((i + j) >> 1); return getDist(x, y, x2, y2) * 0xFF / ((i + j) / 2);
} }
void ScummEngine::setCursorImg(uint img, uint room, uint imgindex) { void ScummEngine::setCursorImg(uint img, uint room, uint imgindex) {
@ -1351,18 +1351,18 @@ void ScummEngine::setCursorImg(uint img, uint room, uint imgindex) {
if (_version == 8) { if (_version == 8) {
setCursorHotspot(READ_LE_UINT32(&foir.imhd->v8.hotspot[0].x), setCursorHotspot(READ_LE_UINT32(&foir.imhd->v8.hotspot[0].x),
READ_LE_UINT32(&foir.imhd->v8.hotspot[0].y)); READ_LE_UINT32(&foir.imhd->v8.hotspot[0].y));
w = READ_LE_UINT32(&foir.imhd->v8.width) >> 3; w = READ_LE_UINT32(&foir.imhd->v8.width) / 8;
h = READ_LE_UINT32(&foir.imhd->v8.height) >> 3; h = READ_LE_UINT32(&foir.imhd->v8.height) / 8;
} else if (_version == 7) { } else if (_version == 7) {
setCursorHotspot(READ_LE_UINT16(&foir.imhd->v7.hotspot[0].x), setCursorHotspot(READ_LE_UINT16(&foir.imhd->v7.hotspot[0].x),
READ_LE_UINT16(&foir.imhd->v7.hotspot[0].y)); READ_LE_UINT16(&foir.imhd->v7.hotspot[0].y));
w = READ_LE_UINT16(&foir.imhd->v7.width) >> 3; w = READ_LE_UINT16(&foir.imhd->v7.width) / 8;
h = READ_LE_UINT16(&foir.imhd->v7.height) >> 3; h = READ_LE_UINT16(&foir.imhd->v7.height) / 8;
} else { } else {
setCursorHotspot(READ_LE_UINT16(&foir.imhd->old.hotspot[0].x), setCursorHotspot(READ_LE_UINT16(&foir.imhd->old.hotspot[0].x),
READ_LE_UINT16(&foir.imhd->old.hotspot[0].y)); READ_LE_UINT16(&foir.imhd->old.hotspot[0].y));
w = READ_LE_UINT16(&foir.cdhd->v6.w) >> 3; w = READ_LE_UINT16(&foir.cdhd->v6.w) / 8;
h = READ_LE_UINT16(&foir.cdhd->v6.h) >> 3; h = READ_LE_UINT16(&foir.cdhd->v6.h) / 8;
} }
dataptr = getObjectImage(foir.obim, imgindex); dataptr = getObjectImage(foir.obim, imgindex);
@ -1555,8 +1555,8 @@ void ScummEngine::removeBlastObject(BlastObject *eo) {
if (right > vs->width) if (right > vs->width)
right = vs->width; right = vs->width;
left_strip = left >> 3; left_strip = left / 8;
right_strip = (right - 1) >> 3; right_strip = (right - 1) / 8;
if (left_strip < 0) if (left_strip < 0)
left_strip = 0; left_strip = 0;

View file

@ -743,10 +743,10 @@ void ScummEngine_v2::o2_drawObject() {
od = &_objs[idx]; od = &_objs[idx];
if (xpos != 0xFF) { if (xpos != 0xFF) {
od->walk_x += (xpos << 3) - od->x_pos; od->walk_x += (xpos * 8) - od->x_pos;
od->x_pos = xpos << 3; od->x_pos = xpos * 8;
od->walk_y += (ypos << 3) - od->y_pos; od->walk_y += (ypos * 8) - od->y_pos;
od->y_pos = ypos << 3; od->y_pos = ypos * 8;
} }
addObjectToDrawQue(idx); addObjectToDrawQue(idx);
@ -819,8 +819,8 @@ void ScummEngine_v2::o2_verbOps() {
break; break;
default: { // New Verb default: { // New Verb
int x = fetchScriptByte() << 3; int x = fetchScriptByte() * 8;
int y = fetchScriptByte() << 3; int y = fetchScriptByte() * 8;
slot = getVarOrDirectByte(PARAM_1) + 1; slot = getVarOrDirectByte(PARAM_1) + 1;
int prep = fetchScriptByte(); // Only used in V1? int prep = fetchScriptByte(); // Only used in V1?
// V1 Maniac verbs are relative to the 'verb area' - under the sentence // V1 Maniac verbs are relative to the 'verb area' - under the sentence
@ -1496,10 +1496,10 @@ void ScummEngine_v2::o2_setObjectName() {
} }
while (i < size) { while (i < size) {
work[i-1] = '@'; work[i - 1] = '@';
i++; i++;
} }
work[i-1] = 0; work[i - 1] = 0;
memcpy(name, work, i); memcpy(name, work, i);
runInventoryScript(0); runInventoryScript(0);

View file

@ -837,10 +837,10 @@ void ScummEngine_v5::o5_drawObject() {
od = &_objs[idx]; od = &_objs[idx];
if (xpos != 0xFF) { if (xpos != 0xFF) {
od->walk_x += (xpos << 3) - od->x_pos; od->walk_x += (xpos * 8) - od->x_pos;
od->x_pos = xpos << 3; od->x_pos = xpos * 8;
od->walk_y += (ypos << 3) - od->y_pos; od->walk_y += (ypos * 8) - od->y_pos;
od->y_pos = ypos << 3; od->y_pos = ypos * 8;
} }
addObjectToDrawQue(idx); addObjectToDrawQue(idx);
@ -1967,9 +1967,9 @@ void ScummEngine_v5::o5_roomOps() {
int len = 256, cnt = 0; int len = 256, cnt = 0;
ptr = (byte *)malloc(len); ptr = (byte *)malloc(len);
while (ptr) { while (ptr) {
int r = file->read(ptr+cnt, len-cnt); int r = file->read(ptr + cnt, len - cnt);
if ((cnt += r) < len) break; if ((cnt += r) < len) break;
ptr = (byte *)realloc(ptr, len<<=1); ptr = (byte *)realloc(ptr, len *= 2);
} }
ptr[cnt] = '\0'; ptr[cnt] = '\0';
loadPtrToResource(rtString, a, ptr); loadPtrToResource(rtString, a, ptr);
@ -2584,7 +2584,7 @@ void ScummEngine_v5::o5_wait() {
break; break;
return; return;
case 3: // SO_WAIT_FOR_CAMERA case 3: // SO_WAIT_FOR_CAMERA
if (camera._cur.x >> 3 != camera._dest.x >> 3) if (camera._cur.x / 8 != camera._dest.x / 8)
break; break;
return; return;
case 4: // SO_WAIT_FOR_SENTENCE case 4: // SO_WAIT_FOR_SENTENCE

View file

@ -1550,7 +1550,7 @@ void ScummEngine_v6::o6_roomOps() {
case 181: // SO_ROOM_FADE case 181: // SO_ROOM_FADE
a = pop(); a = pop();
if (a) { if (a) {
_switchRoomEffect = (byte)(a&0xFF); _switchRoomEffect = (byte)(a & 0xFF);
_switchRoomEffect2 = (byte)(a >> 8); _switchRoomEffect2 = (byte)(a >> 8);
} else { } else {
fadeIn(_newEffect); fadeIn(_newEffect);
@ -2090,7 +2090,7 @@ void ScummEngine_v6::o6_wait() {
if (camera._dest != camera._cur) if (camera._dest != camera._cur)
break; break;
} else { } else {
if (camera._cur.x >> 3 != camera._dest.x >> 3) if (camera._cur.x / 8 != camera._dest.x / 8)
break; break;
} }

View file

@ -243,7 +243,7 @@ void Codec37Decoder::maketable(int pitch, int index) {
assert(index + 254 < (int32)(sizeof(maketable_bytes) / 2)); assert(index + 254 < (int32)(sizeof(maketable_bytes) / 2));
for (int32 i = 0; i < 255; i++) { for (int32 i = 0; i < 255; i++) {
int32 j = (i + index) << 1; int32 j = (i + index) * 2;
_offsetTable[i] = maketable_bytes[j + 1] * pitch + maketable_bytes[j]; _offsetTable[i] = maketable_bytes[j + 1] * pitch + maketable_bytes[j];
} }
} }
@ -443,8 +443,8 @@ void Codec37Decoder::proc4WithoutFDFE(byte *dst, const byte *src, int32 next_off
} }
void Codec37Decoder::decode(byte *dst, const byte *src) { void Codec37Decoder::decode(byte *dst, const byte *src) {
int32 bw = (_width + 3) >> 2, bh = (_height + 3) >> 2; int32 bw = (_width + 3) / 4, bh = (_height + 3) / 4;
int32 pitch = bw << 2; int32 pitch = bw * 4;
int16 seq_nb = READ_LE_UINT16(src + 2); int16 seq_nb = READ_LE_UINT16(src + 2);
int32 decoded_size = READ_LE_UINT32(src + 4); int32 decoded_size = READ_LE_UINT32(src + 4);

View file

@ -309,7 +309,7 @@ void Codec47Decoder::makeTables47(int width) {
int16 tmp; int16 tmp;
for (int l = 0; l < 512; l += 2) { for (int l = 0; l < 512; l += 2) {
_table[l >> 1] = (int16)(codec47_table[l + 1] * width + codec47_table[l]); _table[l / 2] = (int16)(codec47_table[l + 1] * width + codec47_table[l]);
} }
a = 0; a = 0;
@ -496,8 +496,8 @@ void Codec47Decoder::level1(byte *d_dst) {
void Codec47Decoder::decode2(byte *dst, const byte *src, int width, int height, const byte *param_ptr) { void Codec47Decoder::decode2(byte *dst, const byte *src, int width, int height, const byte *param_ptr) {
_d_src = src; _d_src = src;
_paramPtr = param_ptr - 0xf8; _paramPtr = param_ptr - 0xf8;
int bw = (width + 7) >> 3; int bw = (width + 7) / 8;
int bh = (height + 7) >> 3; int bh = (height + 7) / 8;
int next_line = width * 7; int next_line = width * 7;
_d_pitch = width; _d_pitch = width;

View file

@ -58,8 +58,8 @@ bool ImuseChannel::setParameters(int32 nb, int32 size, int32 flags, int32 unk1)
// 2 - Background music // 2 - Background music
// 0, 3-511 - SFX and volume // 0, 3-511 - SFX and volume
// FIXME: this should be better // FIXME: this should be better
if ((flags != 1) && (flags != 2) && ((flags >> 2) != 0)) { if ((flags != 1) && (flags != 2) && ((flags / 4) != 0)) {
_volume = 300 - ((flags >> 3) << 2); _volume = 300 - ((flags / 8) * 4);
} }
else { else {
_volume = 127; _volume = 127;

View file

@ -304,7 +304,7 @@ void SmushFont::drawStringWrapCentered(const char *str, byte *buffer, int dst_wi
y = dst_height - height; y = dst_height - height;
} }
max_width = (max_width + 1) >> 1; max_width = (max_width + 1) / 2;
x = left + width / 2; x = left + width / 2;
if (x < left + max_width) if (x < left + max_width)

View file

@ -446,7 +446,7 @@ void SmushPlayer::handleImuseAction(Chunk &b) {
d_src2 += 2; d_src2 += 2;
int32 count = 1024; int32 count = 1024;
byte variable1 = *d_src2++; byte variable1 = *d_src2++;
byte variable2 = variable1 >> 4; byte variable2 = variable1 / 16;
variable1 &= 0x0f; variable1 &= 0x0f;
do { do {
value = *(d_src2++); value = *(d_src2++);
@ -464,7 +464,7 @@ void SmushPlayer::handleImuseAction(Chunk &b) {
*dst++ = *d_src2++; *dst++ = *d_src2++;
} else { } else {
int16 val = (int8)value << variable1; int16 val = (int8)value << variable1;
*dst++ = val>> 8; *dst++ = val >> 8;
*dst++ = (byte)(val); *dst++ = (byte)(val);
} }
} while (--count); } while (--count);
@ -640,7 +640,7 @@ void SmushPlayer::readPalette(byte *out, Chunk &in) {
} }
static byte delta_color(byte org_color, int16 delta_color) { static byte delta_color(byte org_color, int16 delta_color) {
int t = ((org_color << 7) + org_color + delta_color) >> 7; int t = (org_color * 129 + delta_color) / 128;
if (t > 255) if (t > 255)
t = 255; t = 255;
if (t < 0) if (t < 0)

View file

@ -100,7 +100,7 @@ void ScummEngine::CHARSET_1() {
return; return;
if (!(_features & GF_NEW_CAMERA) && !(_gameId == GID_ZAK256 && VAR(VAR_TALK_ACTOR) == 0xff)) { if (!(_features & GF_NEW_CAMERA) && !(_gameId == GID_ZAK256 && VAR(VAR_TALK_ACTOR) == 0xff)) {
if ((camera._dest.x >> 3) != (camera._cur.x >> 3) || camera._cur.x != camera._last.x) if ((camera._dest.x / 8) != (camera._cur.x / 8) || camera._cur.x != camera._last.x)
return; return;
} }
@ -114,20 +114,20 @@ void ScummEngine::CHARSET_1() {
if (VAR(VAR_V5_TALK_STRING_Y) < 0) { if (VAR(VAR_V5_TALK_STRING_Y) < 0) {
s = (a->scaley * (int)VAR(VAR_V5_TALK_STRING_Y)) / 0xFF; s = (a->scaley * (int)VAR(VAR_V5_TALK_STRING_Y)) / 0xFF;
_string[0].ypos = (int)(((VAR(VAR_V5_TALK_STRING_Y) - s) >> 1) + s - a->elevation + a->_pos.y); _string[0].ypos = (int)(((VAR(VAR_V5_TALK_STRING_Y) - s) / 2) + s - a->elevation + a->_pos.y);
} else { } else {
_string[0].ypos = (int)VAR(VAR_V5_TALK_STRING_Y); _string[0].ypos = (int)VAR(VAR_V5_TALK_STRING_Y);
} }
} else { } else {
s = a->scaley * a->talkPosY / 0xFF; s = a->scaley * a->talkPosY / 0xFF;
_string[0].ypos = ((a->talkPosY - s) >> 1) + s - a->elevation + a->_pos.y; _string[0].ypos = ((a->talkPosY - s) / 2) + s - a->elevation + a->_pos.y;
if (_string[0].ypos < _screenTop) if (_string[0].ypos < _screenTop)
_string[0].ypos = _screenTop; _string[0].ypos = _screenTop;
s = a->scalex * a->talkPosX / 0xFF; s = a->scalex * a->talkPosX / 0xFF;
_string[0].xpos = ((a->talkPosX - s) >> 1) + s + a->_pos.x - camera._cur.x + (_screenWidth / 2); _string[0].xpos = ((a->talkPosX - s) / 2) + s + a->_pos.x - camera._cur.x + (_screenWidth / 2);
} }
if (_string[0].ypos < 1) if (_string[0].ypos < 1)
@ -207,7 +207,7 @@ void ScummEngine::CHARSET_1() {
if (_charset->_center) { if (_charset->_center) {
if (t > _charset->_nextLeft) if (t > _charset->_nextLeft)
t = _charset->_nextLeft; t = _charset->_nextLeft;
t <<= 1; t /= 2;
} }
buffer = _charsetBuffer + _charsetBufPos; buffer = _charsetBuffer + _charsetBufPos;
@ -215,7 +215,7 @@ void ScummEngine::CHARSET_1() {
_charset->addLinebreaks(0, buffer, 0, t); _charset->addLinebreaks(0, buffer, 0, t);
if (_charset->_center) { if (_charset->_center) {
_charset->_nextLeft -= _charset->getStringWidth(0, buffer) >> 1; _charset->_nextLeft -= _charset->getStringWidth(0, buffer) / 2;
if (_charset->_nextLeft < 0) if (_charset->_nextLeft < 0)
_charset->_nextLeft = 0; _charset->_nextLeft = 0;
} }
@ -235,7 +235,7 @@ void ScummEngine::CHARSET_1() {
newLine:; newLine:;
_charset->_nextLeft = _string[0].xpos; _charset->_nextLeft = _string[0].xpos;
if (_charset->_center) { if (_charset->_center) {
_charset->_nextLeft -= _charset->getStringWidth(0, buffer) >> 1; _charset->_nextLeft -= _charset->getStringWidth(0, buffer) / 2;
} }
_charset->_nextTop += _charset->getFontHeight(); _charset->_nextTop += _charset->getFontHeight();
if (_version > 3) { if (_version > 3) {
@ -390,7 +390,7 @@ void ScummEngine::drawString(int a) {
if (space) if (space)
*space = '\0'; *space = '\0';
if (_charset->_center) { if (_charset->_center) {
_charset->_left -= _charset->getStringWidth(a, buf) >> 1; _charset->_left -= _charset->getStringWidth(a, buf) / 2;
} }
if (_version < 7) if (_version < 7)
@ -713,7 +713,7 @@ void ScummEngine::drawBlastTexts() {
// Center text if necessary // Center text if necessary
if (_charset->_center) { if (_charset->_center) {
_charset->_nextLeft -= _charset->getStringWidth(0, buf) >> 1; _charset->_nextLeft -= _charset->getStringWidth(0, buf) / 2;
if (_charset->_nextLeft < 0) if (_charset->_nextLeft < 0)
_charset->_nextLeft = 0; _charset->_nextLeft = 0;
} }

View file

@ -451,29 +451,29 @@ void ScummEngine::drawVerbBitmap(int verb, int x, int y) {
twobufs = vs->alloctwobuffers; twobufs = vs->alloctwobuffers;
vs->alloctwobuffers = 0; vs->alloctwobuffers = 0;
xstrip = x >> 3; xstrip = x / 8;
ydiff = y - vs->topline; ydiff = y - vs->topline;
obim = getResourceAddress(rtVerb, verb); obim = getResourceAddress(rtVerb, verb);
assert(obim); assert(obim);
if (_features & GF_OLD_BUNDLE) { if (_features & GF_OLD_BUNDLE) {
imgw = obim[0]; imgw = obim[0];
imgh = obim[1] >> 3; imgh = obim[1] / 8;
imptr = obim + 2; imptr = obim + 2;
} else if (_features & GF_SMALL_HEADER) { } else if (_features & GF_SMALL_HEADER) {
size = READ_LE_UINT32(obim); size = READ_LE_UINT32(obim);
imgw = (*(obim + size + 11)); imgw = (*(obim + size + 11));
imgh = (*(obim + size + 17)) >> 3; imgh = (*(obim + size + 17)) / 8;
imptr = getObjectImage(obim, 1); imptr = getObjectImage(obim, 1);
} else { } else {
imhd = (const ImageHeader *)findResourceData(MKID('IMHD'), obim); imhd = (const ImageHeader *)findResourceData(MKID('IMHD'), obim);
if (_version >= 7) { if (_version >= 7) {
imgw = READ_LE_UINT16(&imhd->v7.width) >> 3; imgw = READ_LE_UINT16(&imhd->v7.width) / 8;
imgh = READ_LE_UINT16(&imhd->v7.height) >> 3; imgh = READ_LE_UINT16(&imhd->v7.height) / 8;
} else { } else {
imgw = READ_LE_UINT16(&imhd->old.width) >> 3; imgw = READ_LE_UINT16(&imhd->old.width) / 8;
imgh = READ_LE_UINT16(&imhd->old.height) >> 3; imgh = READ_LE_UINT16(&imhd->old.height) / 8;
} }
imptr = getObjectImage(obim, 1); imptr = getObjectImage(obim, 1);
} }