aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorStrangerke2013-02-03 01:25:37 +0100
committerStrangerke2013-02-03 01:25:37 +0100
commit6797698af8fe90cd8cbfa02870e38f6ca47f7ca9 (patch)
tree5693141e8d063e94ff5ae0cd3107f69066acc691 /engines
parentb889bb69efee53327039d492b05cdc8cf20ea769 (diff)
downloadscummvm-rg350-6797698af8fe90cd8cbfa02870e38f6ca47f7ca9.tar.gz
scummvm-rg350-6797698af8fe90cd8cbfa02870e38f6ca47f7ca9.tar.bz2
scummvm-rg350-6797698af8fe90cd8cbfa02870e38f6ca47f7ca9.zip
HOPKINS: Some more refactoring
Diffstat (limited to 'engines')
-rw-r--r--engines/hopkins/graphics.cpp86
1 files changed, 33 insertions, 53 deletions
diff --git a/engines/hopkins/graphics.cpp b/engines/hopkins/graphics.cpp
index b5920e37e6..6318bd1ca8 100644
--- a/engines/hopkins/graphics.cpp
+++ b/engines/hopkins/graphics.cpp
@@ -249,19 +249,15 @@ void GraphicsManager::scrollScreen(int amount) {
}
void GraphicsManager::Trans_bloc(byte *destP, const byte *srcP, int count, int minThreshold, int maxThreshold) {
- int palIndex;
- int srcOffset;
- int col1, col2;
-
byte *destPosP = destP;
for (int idx = 0; idx < count; ++idx) {
- palIndex = *destPosP;
- srcOffset = 3 * palIndex;
- col1 = srcP[srcOffset] + srcP[srcOffset + 1] + srcP[srcOffset + 2];
+ int palIndex = *destPosP;
+ int srcOffset = 3 * palIndex;
+ int col1 = srcP[srcOffset] + srcP[srcOffset + 1] + srcP[srcOffset + 2];
for (int idx2 = 0; idx2 < 38; ++idx2) {
srcOffset = 3 * idx2;
- col2 = srcP[srcOffset] + srcP[srcOffset + 1] + srcP[srcOffset + 2];
+ int col2 = srcP[srcOffset] + srcP[srcOffset + 1] + srcP[srcOffset + 2];
col2 += minThreshold;
if (col2 < col1)
@@ -1112,9 +1108,7 @@ void GraphicsManager::addVesaSegment(int x1, int y1, int x2, int y2) {
int16 blocIndex = 0;
do {
BlocItem &bloc = _vm->_globals.BLOC[blocIndex];
-
- if (bloc._activeFl && tempX >= bloc._x1 && x2 <= bloc._x2
- && y1 >= bloc._y1 && y2 <= bloc._y2)
+ if (bloc._activeFl && tempX >= bloc._x1 && x2 <= bloc._x2 && y1 >= bloc._y1 && y2 <= bloc._y2)
addFlag = false;
++blocIndex;
} while (_vm->_globals.NBBLOC + 1 != blocIndex);
@@ -1151,10 +1145,10 @@ void GraphicsManager::displayVesaSegment() {
dstRect.top = bloc._y1 * 2 + 30;
dstRect.setWidth((bloc._x2 - bloc._x1) * 2);
dstRect.setHeight((bloc._y2 - bloc._y1) * 2);
- } else if (bloc._x2 > _vm->_eventsManager._startPos.x && bloc._x1 < (_vm->_eventsManager._startPos.x + SCREEN_WIDTH)) {
+ } else if (bloc._x2 > _vm->_eventsManager._startPos.x && bloc._x1 < _vm->_eventsManager._startPos.x + SCREEN_WIDTH) {
if (bloc._x1 < _vm->_eventsManager._startPos.x)
bloc._x1 = _vm->_eventsManager._startPos.x;
- if (bloc._x2 > (_vm->_eventsManager._startPos.x + SCREEN_WIDTH))
+ if (bloc._x2 > _vm->_eventsManager._startPos.x + SCREEN_WIDTH)
bloc._x2 = _vm->_eventsManager._startPos.x + SCREEN_WIDTH;
// WORKAROUND: Original didn't lock the screen for access
@@ -1271,25 +1265,16 @@ int GraphicsManager::zoomOut(int v, int percentage) {
// Display 'Perfect?'
void GraphicsManager::Affiche_Perfect(byte *surface, const byte *srcData, int xp300, int yp300, int frameIndex, int zoom1, int zoom2, bool flipFl) {
- const byte *spriteStartP;
- int i;
- const byte *spriteSizeP;
- const byte *spritePixelsP;
- byte *dest1P;
- byte *dest2P;
- byte *v29;
- byte *v40;
-
- spriteStartP = srcData + 3;
- for (i = frameIndex; i; --i)
+ const byte *spriteStartP = srcData + 3;
+ for (int i = frameIndex; i; --i)
spriteStartP += READ_LE_UINT32(spriteStartP) + 16;
- spriteSizeP = spriteStartP + 4;
+ const byte *spriteSizeP = spriteStartP + 4;
int spriteWidth = (int16)READ_LE_UINT16(spriteSizeP);
spriteSizeP += 2;
int spriteHeight2 = (int16)READ_LE_UINT16(spriteSizeP);
int spriteHeight1 = spriteHeight2;
- spritePixelsP = spriteSizeP + 10;
+ const byte *spritePixelsP = spriteSizeP + 10;
_posXClipped = 0;
_posYClipped = 0;
clip_x1 = 0;
@@ -1311,7 +1296,7 @@ void GraphicsManager::Affiche_Perfect(byte *surface, const byte *srcData, int xp
if (yp300 < _minY + 300)
_posYClipped = _minY + 300 - yp300;
- dest1P = xp300 + _lineNbr2 * (yp300 - 300) - 300 + surface;
+ byte *dest1P = xp300 + _lineNbr2 * (yp300 - 300) - 300 + surface;
if (zoom2) {
Agr_x = 0;
Agr_y = 0;
@@ -1321,7 +1306,7 @@ void GraphicsManager::Affiche_Perfect(byte *surface, const byte *srcData, int xp
int zoomedWidth = zoomIn(spriteWidth, zoom2);
int zoomedHeight = zoomIn(spriteHeight1, zoom2);
if (flipFl) {
- v29 = zoomedWidth + dest1P;
+ byte *v29 = zoomedWidth + dest1P;
if (_posYClipped) {
if (_posYClipped < 0 || _posYClipped >= zoomedHeight)
return;
@@ -1345,8 +1330,7 @@ void GraphicsManager::Affiche_Perfect(byte *surface, const byte *srcData, int xp
int v33 = 0;
while (zoomIn(++v33, zoom2) < v32)
;
- int v34 = v33;
- spritePixelsP += v34;
+ spritePixelsP += v33;
zoomedWidth = clip_x1;
}
int v63;
@@ -1446,7 +1430,7 @@ void GraphicsManager::Affiche_Perfect(byte *surface, const byte *srcData, int xp
spritePixelsP = _width + oldSpritePixelsP;
dest1P = _lineNbr2 + oldDest1P;
if (!Agr_Flag_y)
- Agr_y = zoom2 + Agr_y;
+ Agr_y += zoom2;
if ((uint16)Agr_y < 100)
break;
Agr_y -= 100;
@@ -1468,16 +1452,16 @@ void GraphicsManager::Affiche_Perfect(byte *surface, const byte *srcData, int xp
if (zoom1 < 100) {
int v37 = zoomOut(spriteWidth, Red);
if (flipFl) {
- v40 = v37 + dest1P;
+ byte *v40 = v37 + dest1P;
do {
int v65 = spriteHeight2;
byte *v55 = v40;
- Red_y = Red + Red_y;
+ Red_y += Red;
if ((uint16)Red_y < 100) {
Red_x = 0;
int v42 = v37;
for (int v41 = _width; v41; v41--) {
- Red_x = Red + Red_x;
+ Red_x += Red;
if ((uint16)Red_x < 100) {
if (v42 >= _posXClipped && v42 < clip_x1 && *spritePixelsP)
*v40 = *spritePixelsP;
@@ -1485,14 +1469,14 @@ void GraphicsManager::Affiche_Perfect(byte *surface, const byte *srcData, int xp
++spritePixelsP;
--v42;
} else {
- Red_x = Red_x - 100;
+ Red_x -= 100;
++spritePixelsP;
}
}
spriteHeight2 = v65;
v40 = _lineNbr2 + v55;
} else {
- Red_y = Red_y - 100;
+ Red_y -= 100;
spritePixelsP += _width;
}
--spriteHeight2;
@@ -1501,12 +1485,12 @@ void GraphicsManager::Affiche_Perfect(byte *surface, const byte *srcData, int xp
do {
int oldSpriteHeight = spriteHeight2;
byte *oldDest1P = dest1P;
- Red_y = Red + Red_y;
+ Red_y += Red;
if ((uint16)Red_y < 100) {
Red_x = 0;
int v39 = 0;
- for (i = _width; i; i--) {
- Red_x = Red + Red_x;
+ for (int i = _width; i; i--) {
+ Red_x += Red;
if ((uint16)Red_x < 100) {
if (v39 >= _posXClipped && v39 < clip_x1 && *spritePixelsP)
*dest1P = *spritePixelsP;
@@ -1514,14 +1498,14 @@ void GraphicsManager::Affiche_Perfect(byte *surface, const byte *srcData, int xp
++spritePixelsP;
++v39;
} else {
- Red_x = Red_x - 100;
+ Red_x -= 100;
++spritePixelsP;
}
}
spriteHeight2 = oldSpriteHeight;
dest1P = _lineNbr2 + oldDest1P;
} else {
- Red_y = Red_y - 100;
+ Red_y -= 100;
spritePixelsP += _width;
}
--spriteHeight2;
@@ -1531,7 +1515,7 @@ void GraphicsManager::Affiche_Perfect(byte *surface, const byte *srcData, int xp
} else {
_width = spriteWidth;
if (flipFl) {
- dest2P = spriteWidth + dest1P;
+ byte *dest2P = spriteWidth + dest1P;
spec_largeur = spriteWidth;
if (_posYClipped) {
if (_posYClipped >= spriteHeight1 || spriteHeight1 < 0)
@@ -1641,7 +1625,7 @@ void GraphicsManager::copySurface(const byte *surface, int x1, int y1, int width
croppedHeight = height - (_minY - y1);
top = _minY;
}
- int top2 = top;
+
if (top + croppedHeight > _maxY)
croppedHeight = _maxY - top;
xRight = left + croppedWidth;
@@ -1650,26 +1634,22 @@ void GraphicsManager::copySurface(const byte *surface, int x1, int y1, int width
if (croppedWidth > 0 && croppedHeight > 0) {
int height2 = croppedHeight;
- Copy_Mem(surface, left, top2, croppedWidth, croppedHeight, destSurface, destX, destY);
- addVesaSegment(left, top2, left + croppedWidth, top2 + height2);
+ Copy_Mem(surface, left, top, croppedWidth, croppedHeight, destSurface, destX, destY);
+ addVesaSegment(left, top, left + croppedWidth, top + height2);
}
}
void GraphicsManager::Copy_Mem(const byte *srcSurface, int x1, int y1, uint16 width, int height, byte *destSurface, int destX, int destY) {
- int yCurrent;
- byte *dest2P;
- const byte *src2P;
- uint16 pitch;
-
const byte *srcP = x1 + _lineNbr2 * y1 + srcSurface;
byte *destP = destX + _lineNbr2 * destY + destSurface;
int yp = height;
+ int yCurrent;
do {
yCurrent = yp;
memcpy(destP, srcP, 4 * (width >> 2));
- src2P = (srcP + 4 * (width >> 2));
- dest2P = (destP + 4 * (width >> 2));
- pitch = width - 4 * (width >> 2);
+ const byte *src2P = (srcP + 4 * (width >> 2));
+ byte *dest2P = (destP + 4 * (width >> 2));
+ int pitch = width - 4 * (width >> 2);
memcpy(dest2P, src2P, pitch);
destP = (dest2P + pitch + _lineNbr2 - width);
srcP = (src2P + pitch + _lineNbr2 - width);