changed some shift operators to *, /
svn-id: r11315
This commit is contained in:
parent
a169876a2f
commit
d5eddef057
20 changed files with 163 additions and 163 deletions
|
@ -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;
|
||||||
|
|
|
@ -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++) {
|
||||||
|
|
|
@ -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];
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)) {
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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))
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue