aboutsummaryrefslogtreecommitdiff
path: root/engines/hopkins
diff options
context:
space:
mode:
authorPaul Gilbert2012-10-25 10:43:31 +1100
committerPaul Gilbert2012-10-25 10:43:31 +1100
commitc78a92682b9502c8719ce946c3906de2d5d4bf60 (patch)
treea7d66e09b20d3cbfc163081e942a5b8c0295ea5c /engines/hopkins
parent39c856e70c26765fc03aa42c40b1688e21a00ece (diff)
downloadscummvm-rg350-c78a92682b9502c8719ce946c3906de2d5d4bf60.tar.gz
scummvm-rg350-c78a92682b9502c8719ce946c3906de2d5d4bf60.tar.bz2
scummvm-rg350-c78a92682b9502c8719ce946c3906de2d5d4bf60.zip
HOPKINS: Renamed fields of VBobItem class
Diffstat (limited to 'engines/hopkins')
-rw-r--r--engines/hopkins/globals.cpp24
-rw-r--r--engines/hopkins/globals.h18
-rw-r--r--engines/hopkins/graphics.cpp42
-rw-r--r--engines/hopkins/graphics.h2
-rw-r--r--engines/hopkins/objects.cpp154
-rw-r--r--engines/hopkins/objects.h2
6 files changed, 119 insertions, 123 deletions
diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp
index df6bd6798e..d6a2f328d9 100644
--- a/engines/hopkins/globals.cpp
+++ b/engines/hopkins/globals.cpp
@@ -422,26 +422,26 @@ void Globals::INIT_ANIM() {
void Globals::INIT_VBOB() {
for (int idx = 0; idx < 30; ++idx) {
VBob[idx].field4 = 0;
- VBob[idx].field6 = 0;
- VBob[idx].field8 = 0;
- VBob[idx].fieldA = 0;
+ VBob[idx].xp = 0;
+ VBob[idx].yp = 0;
+ VBob[idx].frameIndex = 0;
VBob[idx].fieldC = 0;
- VBob[idx].field10 = g_PTRNUL;
- VBob[idx].field0 = g_PTRNUL;
- VBob[idx].field1C = g_PTRNUL;
+ VBob[idx].surface = g_PTRNUL;
+ VBob[idx].spriteData = g_PTRNUL;
+ VBob[idx].oldSpriteData = g_PTRNUL;
}
}
void Globals::CLEAR_VBOB() {
for (int idx = 0; idx < 30; ++idx) {
VBob[idx].field4 = 0;
- VBob[idx].field6 = 0;
- VBob[idx].field8 = 0;
- VBob[idx].fieldA = 0;
+ VBob[idx].xp = 0;
+ VBob[idx].yp = 0;
+ VBob[idx].frameIndex = 0;
VBob[idx].fieldC = 0;
- VBob[idx].field10 = g_PTRNUL;
- VBob[idx].field0 = g_PTRNUL;
- VBob[idx].field1C = g_PTRNUL;
+ VBob[idx].surface = g_PTRNUL;
+ VBob[idx].spriteData = g_PTRNUL;
+ VBob[idx].oldSpriteData = g_PTRNUL;
}
}
diff --git a/engines/hopkins/globals.h b/engines/hopkins/globals.h
index 15c44f74d7..841972084c 100644
--- a/engines/hopkins/globals.h
+++ b/engines/hopkins/globals.h
@@ -132,18 +132,18 @@ struct BlAnimItem {
};
struct VBobItem {
- byte *field0;
+ byte *spriteData;
int field4;
- int field6;
- int field8;
- int fieldA;
+ int xp;
+ int yp;
+ int frameIndex;
int fieldC;
int fieldE;
- byte *field10;
- int field14;
- int field16;
- int field18;
- byte *field1C;
+ byte *surface;
+ int oldX;
+ int oldY;
+ int oldFrameIndex;
+ byte *oldSpriteData;
};
struct ObjetWItem {
diff --git a/engines/hopkins/graphics.cpp b/engines/hopkins/graphics.cpp
index 64af872727..d603c63546 100644
--- a/engines/hopkins/graphics.cpp
+++ b/engines/hopkins/graphics.cpp
@@ -1675,36 +1675,36 @@ void GraphicsManager::CopyAsm(const byte *surface) {
} while (v4);
}
-void GraphicsManager::Restore_Mem(byte *a1, const byte *a2, int a3, int a4, unsigned int a5, int a6) {
+void GraphicsManager::Restore_Mem(byte *destSurface, const byte *src, int xp, int yp, int width, int height) {
byte *v6;
int v7;
- const byte *v8;
+ const byte *srcP;
unsigned int i;
- int v10;
+ int yCtr;
- v6 = a3 + nbrligne2 * a4 + a1;
- v7 = a6;
- v8 = a2;
+ v6 = xp + nbrligne2 * yp + destSurface;
+ v7 = height;
+ srcP = src;
do {
- v10 = v7;
- if (a5 & 1) {
- memcpy(v6, v8, a5);
- v8 += a5;
- v6 += a5;
- } else if (a5 & 2) {
- for (i = a5 >> 1; i; --i) {
- *(uint16 *)v6 = *(uint16 *)v8;
- v8 += 2;
+ yCtr = v7;
+ if (width & 1) {
+ memcpy(v6, srcP, width);
+ srcP += width;
+ v6 += width;
+ } else if (width & 2) {
+ for (i = width >> 1; i; --i) {
+ *(uint16 *)v6 = *(uint16 *)srcP;
+ srcP += 2;
v6 += 2;
}
} else {
- memcpy(v6, v8, 4 * (a5 >> 2));
- v8 += 4 * (a5 >> 2);
- v6 += 4 * (a5 >> 2);
+ memcpy(v6, srcP, 4 * (width >> 2));
+ srcP += 4 * (width >> 2);
+ v6 += 4 * (width >> 2);
}
- v6 = nbrligne2 + v6 - a5;
- v7 = v10 - 1;
- } while (v10 != 1);
+ v6 = nbrligne2 + v6 - width;
+ v7 = yCtr - 1;
+ } while (yCtr != 1);
}
int GraphicsManager::Reel_Zoom(int v, int percentage) {
diff --git a/engines/hopkins/graphics.h b/engines/hopkins/graphics.h
index 18f600a184..affbe01b77 100644
--- a/engines/hopkins/graphics.h
+++ b/engines/hopkins/graphics.h
@@ -167,7 +167,7 @@ public:
int Magic_Number(int v);
void Affiche_Segment_Vesa();
void CopyAsm(const byte *surface);
- void Restore_Mem(byte *a1, const byte *a2, int a3, int a4, unsigned int a5, int a6);
+ void Restore_Mem(byte *destSurface, const byte *src, int xp, int yp, int width, int height);
int Reel_Zoom(int v, int percentage);
int Reel_Reduc(int v, int percentage);
void Affiche_Perfect(byte *surface, const byte *srcData, int xp300, int yp300, int frameIndex, int a6, int a7, int a8);
diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp
index 8857e8eacc..bc82807c17 100644
--- a/engines/hopkins/objects.cpp
+++ b/engines/hopkins/objects.cpp
@@ -1426,108 +1426,104 @@ void ObjectsManager::AFF_VBOB() {
int idx = 0;
do {
if (_vm->_globals.VBob[idx].field4 == 4) {
- width = Get_Largeur(_vm->_globals.VBob[idx].field0, _vm->_globals.VBob[idx].fieldA);
- height = Get_Hauteur(_vm->_globals.VBob[idx].field0, _vm->_globals.VBob[idx].fieldA);
+ width = Get_Largeur(_vm->_globals.VBob[idx].spriteData, _vm->_globals.VBob[idx].frameIndex);
+ height = Get_Hauteur(_vm->_globals.VBob[idx].spriteData, _vm->_globals.VBob[idx].frameIndex);
- _vm->_graphicsManager.Restore_Mem(_vm->_graphicsManager.VESA_SCREEN,
- _vm->_globals.VBob[idx].field10, _vm->_globals.VBob[idx].field6,
- _vm->_globals.VBob[idx].field8,
- width, height);
+ _vm->_graphicsManager.Restore_Mem(_vm->_graphicsManager.VESA_SCREEN,
+ _vm->_globals.VBob[idx].surface, _vm->_globals.VBob[idx].xp,
+ _vm->_globals.VBob[idx].yp, width, height);
_vm->_graphicsManager.Restore_Mem(
- _vm->_graphicsManager.VESA_BUFFER, _vm->_globals.VBob[idx].field10,
- _vm->_globals.VBob[idx].field6, _vm->_globals.VBob[idx].field8,
+ _vm->_graphicsManager.VESA_BUFFER, _vm->_globals.VBob[idx].surface,
+ _vm->_globals.VBob[idx].xp, _vm->_globals.VBob[idx].yp,
width, height);
_vm->_graphicsManager.Ajoute_Segment_Vesa(
- _vm->_globals.VBob[idx].field6, _vm->_globals.VBob[idx].field8,
- _vm->_globals.VBob[idx].field6 + width,
- height + _vm->_globals.VBob[idx].field8);
+ _vm->_globals.VBob[idx].xp, _vm->_globals.VBob[idx].yp,
+ _vm->_globals.VBob[idx].xp + width, height + _vm->_globals.VBob[idx].yp);
- if (g_PTRNUL != _vm->_globals.VBob[idx].field10)
- _vm->_globals.dos_free2(_vm->_globals.VBob[idx].field10);
+ if (_vm->_globals.VBob[idx].surface != g_PTRNUL)
+ _vm->_globals.dos_free2(_vm->_globals.VBob[idx].surface);
_vm->_globals.VBob[idx].field4 = 0;
- _vm->_globals.VBob[idx].field10 = g_PTRNUL;
- _vm->_globals.VBob[idx].field0 = g_PTRNUL;
- _vm->_globals.VBob[idx].field6 = 0;
- _vm->_globals.VBob[idx].field8 = 0;
- _vm->_globals.VBob[idx].field14 = 0;
- _vm->_globals.VBob[idx].field16 = 0;
- _vm->_globals.VBob[idx].fieldA = 0;
- _vm->_globals.VBob[idx].field18 = 0;
- _vm->_globals.VBob[idx].field1C = g_PTRNUL;
+ _vm->_globals.VBob[idx].surface = g_PTRNUL;
+ _vm->_globals.VBob[idx].spriteData = g_PTRNUL;
+ _vm->_globals.VBob[idx].xp = 0;
+ _vm->_globals.VBob[idx].yp = 0;
+ _vm->_globals.VBob[idx].oldX = 0;
+ _vm->_globals.VBob[idx].oldY = 0;
+ _vm->_globals.VBob[idx].frameIndex = 0;
+ _vm->_globals.VBob[idx].oldFrameIndex = 0;
+ _vm->_globals.VBob[idx].oldSpriteData = g_PTRNUL;
}
if (_vm->_globals.VBob[idx].field4 == 3) {
- width = Get_Largeur(_vm->_globals.VBob[idx].field1C, _vm->_globals.VBob[idx].field18);
- height = Get_Hauteur(_vm->_globals.VBob[idx].field1C, _vm->_globals.VBob[idx].field18);
+ width = Get_Largeur(_vm->_globals.VBob[idx].oldSpriteData, _vm->_globals.VBob[idx].oldFrameIndex);
+ height = Get_Hauteur(_vm->_globals.VBob[idx].oldSpriteData, _vm->_globals.VBob[idx].oldFrameIndex);
_vm->_graphicsManager.Restore_Mem(_vm->_graphicsManager.VESA_SCREEN,
- _vm->_globals.VBob[idx].field10, _vm->_globals.VBob[idx].field14,
- _vm->_globals.VBob[idx].field16,
+ _vm->_globals.VBob[idx].surface, _vm->_globals.VBob[idx].oldX,
+ _vm->_globals.VBob[idx].oldY,
width, height);
_vm->_graphicsManager.Restore_Mem(_vm->_graphicsManager.VESA_BUFFER,
- _vm->_globals.VBob[idx].field10, _vm->_globals.VBob[idx].field14,
- _vm->_globals.VBob[idx].field16,
- width, height);
+ _vm->_globals.VBob[idx].surface, _vm->_globals.VBob[idx].oldX,
+ _vm->_globals.VBob[idx].oldY, width, height);
- _vm->_graphicsManager.Ajoute_Segment_Vesa(_vm->_globals.VBob[idx].field14,
- _vm->_globals.VBob[idx].field16, _vm->_globals.VBob[idx].field14 + width,
- _vm->_globals.VBob[idx].field16 + height);
+ _vm->_graphicsManager.Ajoute_Segment_Vesa(_vm->_globals.VBob[idx].oldX,
+ _vm->_globals.VBob[idx].oldY, _vm->_globals.VBob[idx].oldX + width,
+ _vm->_globals.VBob[idx].oldY + height);
_vm->_globals.VBob[idx].field4 = 1;
- _vm->_globals.VBob[idx].field1C = _vm->_globals.VBob[idx].field0;
+ _vm->_globals.VBob[idx].oldSpriteData = _vm->_globals.VBob[idx].spriteData;
- if (g_PTRNUL != _vm->_globals.VBob[idx].field10)
- _vm->_globals.dos_free2(_vm->_globals.VBob[idx].field10);
+ if (_vm->_globals.VBob[idx].surface != g_PTRNUL)
+ _vm->_globals.dos_free2(_vm->_globals.VBob[idx].surface);
- _vm->_globals.VBob[idx].field10 = g_PTRNUL;
- _vm->_globals.VBob[idx].field14 = _vm->_globals.VBob[idx].field6;
- _vm->_globals.VBob[idx].field16 = _vm->_globals.VBob[idx].field8;
- _vm->_globals.VBob[idx].field18 = _vm->_globals.VBob[idx].fieldA;
+ _vm->_globals.VBob[idx].surface = g_PTRNUL;
+ _vm->_globals.VBob[idx].oldX = _vm->_globals.VBob[idx].xp;
+ _vm->_globals.VBob[idx].oldY = _vm->_globals.VBob[idx].yp;
+ _vm->_globals.VBob[idx].oldFrameIndex = _vm->_globals.VBob[idx].frameIndex;
}
if (_vm->_globals.VBob[idx].field4 == 1) {
- width = Get_Largeur(_vm->_globals.VBob[idx].field0, _vm->_globals.VBob[idx].fieldA);
- height = Get_Hauteur(_vm->_globals.VBob[idx].field0, _vm->_globals.VBob[idx].fieldA);
+ width = Get_Largeur(_vm->_globals.VBob[idx].spriteData, _vm->_globals.VBob[idx].frameIndex);
+ height = Get_Hauteur(_vm->_globals.VBob[idx].spriteData, _vm->_globals.VBob[idx].frameIndex);
- if (g_PTRNUL != _vm->_globals.VBob[idx].field10)
- _vm->_globals.dos_free2(_vm->_globals.VBob[idx].field10);
+ if (_vm->_globals.VBob[idx].surface != g_PTRNUL)
+ _vm->_globals.dos_free2(_vm->_globals.VBob[idx].surface);
byte *surface = _vm->_globals.dos_malloc2(height * width);
- _vm->_globals.VBob[idx].field10 = surface;
+ _vm->_globals.VBob[idx].surface = surface;
_vm->_graphicsManager.Capture_Mem(_vm->_graphicsManager.VESA_SCREEN, surface,
- _vm->_globals.VBob[idx].field6, _vm->_globals.VBob[idx].field8, width, height);
+ _vm->_globals.VBob[idx].xp, _vm->_globals.VBob[idx].yp, width, height);
- byte *v10 = _vm->_globals.VBob[idx].field0;
+ byte *v10 = _vm->_globals.VBob[idx].spriteData;
if (*v10 == 78) {
_vm->_graphicsManager.Affiche_Perfect(_vm->_graphicsManager.VESA_SCREEN, v10,
- _vm->_globals.VBob[idx].field6 + 300,
- _vm->_globals.VBob[idx].field8 + 300,
- _vm->_globals.VBob[idx].fieldA,
+ _vm->_globals.VBob[idx].xp + 300, _vm->_globals.VBob[idx].yp + 300,
+ _vm->_globals.VBob[idx].frameIndex,
0, 0, 0);
_vm->_graphicsManager.Affiche_Perfect(_vm->_graphicsManager.VESA_BUFFER,
- _vm->_globals.VBob[idx].field0,
- _vm->_globals.VBob[idx].field6 + 300, _vm->_globals.VBob[idx].field8 + 300,
- _vm->_globals.VBob[idx].fieldA,
+ _vm->_globals.VBob[idx].spriteData,
+ _vm->_globals.VBob[idx].xp + 300, _vm->_globals.VBob[idx].yp + 300,
+ _vm->_globals.VBob[idx].frameIndex,
0, 0, 0);
} else {
_vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager.VESA_BUFFER,
- v10, _vm->_globals.VBob[idx].field6 + 300, _vm->_globals.VBob[idx].field8 + 300,
- _vm->_globals.VBob[idx].fieldA);
+ v10, _vm->_globals.VBob[idx].xp + 300, _vm->_globals.VBob[idx].yp + 300,
+ _vm->_globals.VBob[idx].frameIndex);
- _vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager.VESA_SCREEN, _vm->_globals.VBob[idx].field0,
- _vm->_globals.VBob[idx].field6 + 300, _vm->_globals.VBob[idx].field8 + 300,
- _vm->_globals.VBob[idx].fieldA);
+ _vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager.VESA_SCREEN, _vm->_globals.VBob[idx].spriteData,
+ _vm->_globals.VBob[idx].xp + 300, _vm->_globals.VBob[idx].yp + 300,
+ _vm->_globals.VBob[idx].frameIndex);
}
- _vm->_graphicsManager.Ajoute_Segment_Vesa(_vm->_globals.VBob[idx].field6,
- _vm->_globals.VBob[idx].field8, _vm->_globals.VBob[idx].field6 + width,
- _vm->_globals.VBob[idx].field8 + height);
+ _vm->_graphicsManager.Ajoute_Segment_Vesa(_vm->_globals.VBob[idx].xp,
+ _vm->_globals.VBob[idx].yp , _vm->_globals.VBob[idx].xp + width,
+ _vm->_globals.VBob[idx].yp + height);
_vm->_globals.VBob[idx].field4 = 2;
}
++idx;
@@ -4407,35 +4403,35 @@ void ObjectsManager::BOB_VIVANT(int idx) {
}
}
-void ObjectsManager::VBOB(byte *a1, int idx, int a3, int a4, int a5) {
+void ObjectsManager::VBOB(byte *src, int idx, int xp, int yp, int frameIndex) {
if (idx > 29)
error("MAX_VBOB exceeded");
if (_vm->_globals.VBob[idx].field4 <= 1) {
_vm->_globals.VBob[idx].field4 = 1;
- _vm->_globals.VBob[idx].field6 = a3;
- _vm->_globals.VBob[idx].field8 = a4;
- _vm->_globals.VBob[idx].fieldA = a5;
- _vm->_globals.VBob[idx].field14 = a3;
- _vm->_globals.VBob[idx].field16 = a4;
- _vm->_globals.VBob[idx].field18 = a5;
- _vm->_globals.VBob[idx].field0 = a1;
- _vm->_globals.VBob[idx].field1C = a1;
- if (_vm->_globals.VBob[idx].field10 != g_PTRNUL)
- _vm->_globals.VBob[idx].field10 = _vm->_globals.dos_free2(_vm->_globals.VBob[idx].field10);
+ _vm->_globals.VBob[idx].xp = xp;
+ _vm->_globals.VBob[idx].yp = yp;
+ _vm->_globals.VBob[idx].frameIndex = frameIndex;
+ _vm->_globals.VBob[idx].oldX = xp;
+ _vm->_globals.VBob[idx].oldY = yp;
+ _vm->_globals.VBob[idx].oldFrameIndex = frameIndex;
+ _vm->_globals.VBob[idx].spriteData = src;
+ _vm->_globals.VBob[idx].oldSpriteData = src;
+ if (_vm->_globals.VBob[idx].surface != g_PTRNUL)
+ _vm->_globals.VBob[idx].surface = _vm->_globals.dos_free2(_vm->_globals.VBob[idx].surface);
}
int f4 = _vm->_globals.VBob[idx].field4;
if (f4 == 2 || f4 == 4) {
_vm->_globals.VBob[idx].field4 = 3;
- _vm->_globals.VBob[idx].field14 = _vm->_globals.VBob[idx].field6;
- _vm->_globals.VBob[idx].field16 = _vm->_globals.VBob[idx].field8;
- _vm->_globals.VBob[idx].field1C = _vm->_globals.VBob[idx].field0;
- _vm->_globals.VBob[idx].field18 = _vm->_globals.VBob[idx].fieldA;
- _vm->_globals.VBob[idx].field6 = a3;
- _vm->_globals.VBob[idx].field8 = a4;
- _vm->_globals.VBob[idx].fieldA = a5;
- _vm->_globals.VBob[idx].field0 = a1;
+ _vm->_globals.VBob[idx].oldX = _vm->_globals.VBob[idx].xp;
+ _vm->_globals.VBob[idx].oldY = _vm->_globals.VBob[idx].yp;
+ _vm->_globals.VBob[idx].oldSpriteData = _vm->_globals.VBob[idx].spriteData;
+ _vm->_globals.VBob[idx].oldFrameIndex = _vm->_globals.VBob[idx].frameIndex;
+ _vm->_globals.VBob[idx].xp = xp;
+ _vm->_globals.VBob[idx].yp = yp;
+ _vm->_globals.VBob[idx].frameIndex = frameIndex;
+ _vm->_globals.VBob[idx].spriteData = src;
}
}
diff --git a/engines/hopkins/objects.h b/engines/hopkins/objects.h
index 331245215d..d9f15abdea 100644
--- a/engines/hopkins/objects.h
+++ b/engines/hopkins/objects.h
@@ -203,7 +203,7 @@ public:
void OPTI_OBJET();
void SPECIAL_JEU();
void BOB_VIVANT(int a1);
- void VBOB(byte *a1, int a2, int a3, int a4, int a5);
+ void VBOB(byte *src, int idx, int xp, int yp, int frameIndex);
void VBOB_OFF(int idx);
void ACTION_DOS(int idx);
void ACTION_DROITE(int idx);