aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2012-10-11 22:58:04 +1100
committerPaul Gilbert2012-10-11 22:58:04 +1100
commit721b619398af28037cc595300052af430b9b31a5 (patch)
treeed64118f048a6ca7998fb6b5d0abd02c5f1a1c3e /engines
parentd8dd04130a3ea4018f26467f86a9e0bebe24bf5c (diff)
downloadscummvm-rg350-721b619398af28037cc595300052af430b9b31a5.tar.gz
scummvm-rg350-721b619398af28037cc595300052af430b9b31a5.tar.bz2
scummvm-rg350-721b619398af28037cc595300052af430b9b31a5.zip
HOPKINS: Added explicit int16 cast to all READ_LE_UINT16 accesses.
I've already previously fixed two initialisatoin errors for data reading that expected int's to be 16 bits and signed, so adding the explicit cast everywhere will likely fix other similiar issues.
Diffstat (limited to 'engines')
-rw-r--r--engines/hopkins/anim.cpp30
-rw-r--r--engines/hopkins/font.cpp2
-rw-r--r--engines/hopkins/globals.cpp8
-rw-r--r--engines/hopkins/graphics.cpp38
-rw-r--r--engines/hopkins/lines.cpp250
-rw-r--r--engines/hopkins/menu.cpp2
-rw-r--r--engines/hopkins/objects.cpp244
-rw-r--r--engines/hopkins/talk.cpp134
8 files changed, 354 insertions, 354 deletions
diff --git a/engines/hopkins/anim.cpp b/engines/hopkins/anim.cpp
index 8950437998..0c0924ef67 100644
--- a/engines/hopkins/anim.cpp
+++ b/engines/hopkins/anim.cpp
@@ -859,10 +859,10 @@ int AnimationManager::CHARGE_BANK_SPRITE1(int idx, const Common::String &filenam
if (_vm->_globals.Bank[idx].field1A > 0) {
for (int v14 = 0; v14 < _vm->_globals.Bank[idx].field1A; ++v14) {
- v16 = READ_LE_UINT16(v13);
- v17 = READ_LE_UINT16(v13 + 2);
- v21 = READ_LE_UINT16(v13 + 4);
- v20 = READ_LE_UINT16(v13 + 6);
+ v16 = (int16)READ_LE_UINT16(v13);
+ v17 = (int16)READ_LE_UINT16(v13 + 2);
+ v21 = (int16)READ_LE_UINT16(v13 + 4);
+ v20 = (int16)READ_LE_UINT16(v13 + 6);
v13 += 8;
_vm->_objectsManager.set_offsetxy(_vm->_globals.Bank[idx].data, v14, v16, v17, 0);
@@ -953,11 +953,11 @@ void AnimationManager::RECHERCHE_ANIM(const byte *data, int idx, int nbytes) {
v9 = dataP + 20;
v23 = v21 + data + 25;
- v10 = READ_LE_UINT16(v21 + data + 25);
- v11 = READ_LE_UINT16(v21 + data + 27);
- v22 = READ_LE_UINT16(v21 + data + 29);
- v12 = READ_LE_UINT16(v21 + data + 31);
- v13 = READ_LE_UINT16(v21 + data + 33);
+ v10 = (int16)READ_LE_UINT16(v21 + data + 25);
+ v11 = (int16)READ_LE_UINT16(v21 + data + 27);
+ v22 = (int16)READ_LE_UINT16(v21 + data + 29);
+ v12 = (int16)READ_LE_UINT16(v21 + data + 31);
+ v13 = (int16)READ_LE_UINT16(v21 + data + 33);
*(dataP + 29) = *(v21 + data + 34);
WRITE_LE_UINT16(dataP + 20, v10);
WRITE_LE_UINT16(dataP + 22, v11);
@@ -972,11 +972,11 @@ void AnimationManager::RECHERCHE_ANIM(const byte *data, int idx, int nbytes) {
if (!v22)
break;
- v24 = READ_LE_UINT16(v23);
- v15 = READ_LE_UINT16(v23 + 2);
- v22 = READ_LE_UINT16(v23 + 4);
- v16 = READ_LE_UINT16(v23 + 6);
- v17 = READ_LE_UINT16(v23 + 8);
+ v24 = (int16)READ_LE_UINT16(v23);
+ v15 = (int16)READ_LE_UINT16(v23 + 2);
+ v22 = (int16)READ_LE_UINT16(v23 + 4);
+ v16 = (int16)READ_LE_UINT16(v23 + 6);
+ v17 = (int16)READ_LE_UINT16(v23 + 8);
*(v9 + 9) = *(v23 + 9);
WRITE_LE_UINT16(v9, v24);
WRITE_LE_UINT16(v9 + 2, v15);
@@ -1102,7 +1102,7 @@ void AnimationManager::PLAY_SEQ(int a1, const Common::String &a2, uint32 a3, uin
if (strncmp((const char *)v10, "IMAGE=", 7))
v5 = -1;
if (!v5) {
- f.read(v9, READ_LE_UINT16(v10 + 8));
+ f.read(v9, (int16)READ_LE_UINT16(v10 + 8));
if (_vm->_globals.iRegul == 1) {
do {
if (_vm->_eventsManager.ESC_KEY == 1) {
diff --git a/engines/hopkins/font.cpp b/engines/hopkins/font.cpp
index aa0c1741a7..6f0f22bcd4 100644
--- a/engines/hopkins/font.cpp
+++ b/engines/hopkins/font.cpp
@@ -253,7 +253,7 @@ void FontManager::BOITE(int idx, int fileIndex, const Common::String &filename,
v10 = _vm->_globals.BUF_ZONE + Index[fileIndex];
memcpy(v9, v10, 0x60u);
v11 = 0;
- WRITE_LE_UINT16((uint16 *)v9 + 48, READ_LE_UINT16(v10 + 96));
+ WRITE_LE_UINT16((uint16 *)v9 + 48, (int16)READ_LE_UINT16(v10 + 96));
}
v59 = texte_tmp;
v63 = 0;
diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp
index a02e47dbf0..0441806231 100644
--- a/engines/hopkins/globals.cpp
+++ b/engines/hopkins/globals.cpp
@@ -883,11 +883,11 @@ void Globals::CHARGE_CACHE(const Common::String &file) {
v15 = 60;
v14 = 0;
do {
- v11 = READ_LE_UINT16((uint16 *)ptr + v15);
- v4 = READ_LE_UINT16((uint16 *)ptr + v15 + 1);
- v5 = READ_LE_UINT16((uint16 *)ptr + v15 + 2);
+ v11 = (int16)READ_LE_UINT16((uint16 *)ptr + v15);
+ v4 = (int16)READ_LE_UINT16((uint16 *)ptr + v15 + 1);
+ v5 = (int16)READ_LE_UINT16((uint16 *)ptr + v15 + 2);
v6 = v14;
- Cache[v6].field14 = READ_LE_UINT16((uint16 *)ptr + v15 + 4);
+ Cache[v6].field14 = (int16)READ_LE_UINT16((uint16 *)ptr + v15 + 4);
Cache[v6].field2 = v11;
Cache[v6].field0 = v4;
Cache[v6].field4 = v5;
diff --git a/engines/hopkins/graphics.cpp b/engines/hopkins/graphics.cpp
index 9fda73fc95..4912849344 100644
--- a/engines/hopkins/graphics.cpp
+++ b/engines/hopkins/graphics.cpp
@@ -372,9 +372,9 @@ void GraphicsManager::A_PCX640_480(byte *surface, const Common::String &file, by
v7 = _vm->_globals.CAT_TAILLE - 896;
v8 = f.read(HEADER_PCX, 128);
- v6 = READ_LE_UINT16(&HEADER_PCX[8]) + 1;
- v20 = READ_LE_UINT16(&HEADER_PCX[10]) + 1;
- if ((READ_LE_UINT16(&HEADER_PCX[8]) + 1) <= SCREEN_WIDTH) {
+ v6 = (int16)READ_LE_UINT16(&HEADER_PCX[8]) + 1;
+ v20 = (int16)READ_LE_UINT16(&HEADER_PCX[10]) + 1;
+ if (((int16)READ_LE_UINT16(&HEADER_PCX[8]) + 1) <= SCREEN_WIDTH) {
DOUBLE_ECRAN = false;
} else {
v6 = SCREEN_WIDTH * 2;
@@ -396,8 +396,8 @@ void GraphicsManager::A_PCX640_480(byte *surface, const Common::String &file, by
if (bytesRead < 128)
error("Erreur en cours de lecture.");
- v6 = READ_LE_UINT16(&HEADER_PCX[8]) + 1;
- v20 = READ_LE_UINT16(&HEADER_PCX[10]) + 1;
+ v6 = (int16)READ_LE_UINT16(&HEADER_PCX[8]) + 1;
+ v20 = (int16)READ_LE_UINT16(&HEADER_PCX[10]) + 1;
if (v6 <= SCREEN_WIDTH) {
DOUBLE_ECRAN = false;
} else {
@@ -1091,7 +1091,7 @@ void GraphicsManager::Copy_WinScan_Vbe3(const byte *sourceSurface, byte *destSur
v6 = *(v5 + 2);
v5 += 2;
} else if (v6 == 254) {
- v3 += READ_LE_UINT16(v5 + 1);
+ v3 += (int16)READ_LE_UINT16(v5 + 1);
v6 = *(v5 + 3);
v5 += 3;
} else {
@@ -1162,7 +1162,7 @@ void GraphicsManager::Copy_Video_Vbe3(const byte *surface) {
v5 = *(v4 + 2);
v4 += 2;
} else if (v5 == (byte)-2) {
- v2 += READ_LE_UINT16(v4 + 1);
+ v2 += (int16)READ_LE_UINT16(v4 + 1);
v5 = *(v4 + 3);
v4 += 3;
} else {
@@ -1217,7 +1217,7 @@ void GraphicsManager::Copy_Video_Vbe16(const byte *surface) {
srcByte = *(const byte *)(srcP + 2);
srcP += 2;
} else if (srcByte == 254) {
- destOffset += READ_LE_UINT16(srcP + 1);
+ destOffset += (int16)READ_LE_UINT16(srcP + 1);
srcByte = *(const byte *)(srcP + 3);
srcP += 3;
} else {
@@ -1277,7 +1277,7 @@ void GraphicsManager::Copy_Video_Vbe16a(const byte *surface) {
v4 = *(v3 + 2);
v3 += 2;
} else if (v4 == -2) {
- v2 += READ_LE_UINT16(v3 + 1);
+ v2 += (int16)READ_LE_UINT16(v3 + 1);
v4 = *(v3 + 3);
v3 += 3;
} else {
@@ -1286,7 +1286,7 @@ void GraphicsManager::Copy_Video_Vbe16a(const byte *surface) {
v3 += 5;
}
Video_Cont_Vbe16a:
- WRITE_LE_UINT16(v2 + v2 + VideoPtr, READ_LE_UINT16(PAL_PIXELS + 2 * v4));
+ WRITE_LE_UINT16(v2 + v2 + VideoPtr, (int16)READ_LE_UINT16(PAL_PIXELS + 2 * v4));
++v3;
++v2;
}
@@ -1336,9 +1336,9 @@ void GraphicsManager::Sprite_Vesa(byte *surface, const byte *spriteData, int xp,
clip_flag = false;
spriteP += 4;
- int width = READ_LE_UINT16(spriteP);
+ int width = (int16)READ_LE_UINT16(spriteP);
spriteP += 2;
- int height = READ_LE_UINT16(spriteP);
+ int height = (int16)READ_LE_UINT16(spriteP);
// Clip X
clip_x1 = width;
@@ -1386,7 +1386,7 @@ void GraphicsManager::Sprite_Vesa(byte *surface, const byte *spriteData, int xp,
// Set up source
spriteP += 6;
- int srcOffset = READ_LE_UINT16(spriteP);
+ int srcOffset = (int16)READ_LE_UINT16(spriteP);
spriteP += 4;
const byte *srcP = spriteP;
spriteP += srcOffset;
@@ -1404,7 +1404,7 @@ void GraphicsManager::Sprite_Vesa(byte *surface, const byte *spriteData, int xp,
while ((byteVal = *srcP) != 253) {
++srcP;
- width = READ_LE_UINT16(srcP);
+ width = (int16)READ_LE_UINT16(srcP);
srcP += 2;
if (byteVal == 254) {
@@ -1432,7 +1432,7 @@ void GraphicsManager::Sprite_Vesa(byte *surface, const byte *spriteData, int xp,
while ((byteVal = *srcP) != 253) {
++srcP;
- width = READ_LE_UINT16(srcP);
+ width = (int16)READ_LE_UINT16(srcP);
srcP += 2;
if (byteVal == 254) {
@@ -2294,9 +2294,9 @@ void GraphicsManager::Affiche_Fonte(byte *surface, const byte *spriteData, int x
v9 = 0;
v10 = 0;
v8 = v6 + 4;
- v9 = READ_LE_UINT16(v8);
+ v9 = (int16)READ_LE_UINT16(v8);
v8 += 2;
- v10 = READ_LE_UINT16(v8);
+ v10 = (int16)READ_LE_UINT16(v8);
v11 = v8 + 10;
destP = surface + xp + nbrligne2 * yp;
Largeur = v9;
@@ -2465,7 +2465,7 @@ void GraphicsManager::Copy_WinScan_Vbe(const byte *src, byte *dest) {
byteVal = *(srcPtr + 2);
srcPtr += 2;
} else if (byteVal == (byte)-2) {
- destOffset += READ_LE_UINT16(srcPtr + 1);
+ destOffset += (int16)READ_LE_UINT16(srcPtr + 1);
byteVal = *(srcPtr + 3);
srcPtr += 3;
} else {
@@ -2499,7 +2499,7 @@ void GraphicsManager::Copy_Video_Vbe(const byte *src) {
byteVal = *(srcP + 2);
srcP += 2;
} else if (byteVal == -2) {
- destOffset += READ_LE_UINT16(srcP + 1);
+ destOffset += (int16)READ_LE_UINT16(srcP + 1);
byteVal = *(srcP + 3);
srcP += 3;
} else {
diff --git a/engines/hopkins/lines.cpp b/engines/hopkins/lines.cpp
index 6c499d0c37..26cef1d7d9 100644
--- a/engines/hopkins/lines.cpp
+++ b/engines/hopkins/lines.cpp
@@ -415,11 +415,11 @@ LABEL_29:
if (v7 != g_PTRNUL) {
v23 = 1;
v8 = 2 * Ligne[v6].field0;
- v9 = READ_LE_UINT16(v7);
- v16 = READ_LE_UINT16(v7 + 2);
- v10 = READ_LE_UINT16(v7 + 2 * v8 - 4);
- v18 = READ_LE_UINT16(v7 + 2 * v8 - 2);
- if (READ_LE_UINT16(v7) >= v10)
+ v9 = (int16)READ_LE_UINT16(v7);
+ v16 = (int16)READ_LE_UINT16(v7 + 2);
+ v10 = (int16)READ_LE_UINT16(v7 + 2 * v8 - 4);
+ v18 = (int16)READ_LE_UINT16(v7 + 2 * v8 - 2);
+ if ((int16)READ_LE_UINT16(v7) >= v10)
goto LABEL_32;
if (v22 < v9 || v21 > v10)
v23 = 0;
@@ -451,9 +451,9 @@ LABEL_28:
goto LABEL_29;
}
while (1) {
- v12 = READ_LE_UINT16(v7);
+ v12 = (int16)READ_LE_UINT16(v7);
v13 = v7 + 2;
- v14 = READ_LE_UINT16(v13);
+ v14 = (int16)READ_LE_UINT16(v13);
v7 = v13 + 2;
if (a1 == v12 || a1 + 1 == v12) {
if (a2 == v14 || a2 + 1 == v14)
@@ -506,11 +506,11 @@ LABEL_47:
if (g_PTRNUL != v7) {
v23 = 1;
v8 = 2 * Ligne[v6].field0;
- v9 = READ_LE_UINT16(v7);
- v15 = READ_LE_UINT16(v7 + 2);
- v10 = READ_LE_UINT16(v7 + 2 * v8 - 4);
- v17 = READ_LE_UINT16(v7 + 2 * v8 - 2);
- if (READ_LE_UINT16(v7) >= v10)
+ v9 = (int16)READ_LE_UINT16(v7);
+ v15 = (int16)READ_LE_UINT16(v7 + 2);
+ v10 = (int16)READ_LE_UINT16(v7 + 2 * v8 - 4);
+ v17 = (int16)READ_LE_UINT16(v7 + 2 * v8 - 2);
+ if ((int16)READ_LE_UINT16(v7) >= v10)
goto LABEL_50;
if (v22 < v9 || v21 > v10)
v23 = 0;
@@ -542,9 +542,9 @@ LABEL_46:
goto LABEL_47;
}
while (1) {
- v12 = READ_LE_UINT16(v7);
+ v12 = (int16)READ_LE_UINT16(v7);
v13 = v7 + 2;
- v16 = READ_LE_UINT16(v13);
+ v16 = (int16)READ_LE_UINT16(v13);
v7 = v13 + 2;
if (a1 == v12
|| v12 == a1 + 1
@@ -598,16 +598,16 @@ void LinesManager::INIPARCOURS() {
int v14;
int v15;
- v15 = READ_LE_UINT16(Ligne[0].fieldC);
- v14 = READ_LE_UINT16(Ligne[0].fieldC + 2);
+ v15 = (int16)READ_LE_UINT16(Ligne[0].fieldC);
+ v14 = (int16)READ_LE_UINT16(Ligne[0].fieldC + 2);
v0 = 1;
v1 = 0;
do {
v2 = Ligne[v0].field0;
v3 = Ligne[v0].fieldC;
- v4 = READ_LE_UINT16(v3 + 4 * v2 - 4);
- v5 = READ_LE_UINT16(v3 + 4 * v2 - 2);
+ v4 = (int16)READ_LE_UINT16(v3 + 4 * v2 - 4);
+ v5 = (int16)READ_LE_UINT16(v3 + 4 * v2 - 2);
if (_vm->_graphicsManager.max_x == v4 || _vm->_graphicsManager.max_y == v5 || _vm->_graphicsManager.min_x == v4
|| _vm->_graphicsManager.min_y == v5)
v1 = 1;
@@ -619,7 +619,7 @@ void LinesManager::INIPARCOURS() {
v1 = v6;
}
v7 = Ligne[v0 + 1].fieldC;
- if (READ_LE_UINT16(v7) != v4 && READ_LE_UINT16(v7 + 2) != v5)
+ if ((int16)READ_LE_UINT16(v7) != v4 && (int16)READ_LE_UINT16(v7 + 2) != v5)
v1 = 1;
if (!v1)
++v0;
@@ -680,8 +680,8 @@ int LinesManager::CONTOURNE(int a1, int a2, int a3, int a4, int a5, byte *a6, in
if (a1 < a4) {
for (i = a2; Ligne[a1].field0 > i; ++i) {
v10 = Ligne[a1].fieldC;
- v11 = READ_LE_UINT16(v10 + 4 * i);
- v50 = READ_LE_UINT16(v10 + 4 * i + 2);
+ v11 = (int16)READ_LE_UINT16(v10 + 4 * i);
+ v50 = (int16)READ_LE_UINT16(v10 + 4 * i + 2);
v12 = v8;
WRITE_LE_UINT16(a6 + 2 * v12, v11);
WRITE_LE_UINT16(a6 + 2 * v12 + 2, v50);
@@ -695,8 +695,8 @@ int LinesManager::CONTOURNE(int a1, int a2, int a3, int a4, int a5, byte *a6, in
if (Ligne[v34].field0 > 0) {
do {
v14 = Ligne[v34].fieldC;
- v15 = READ_LE_UINT16(v14 + 4 * v13);
- v50 = READ_LE_UINT16(v14 + 4 * v13 + 2);
+ v15 = (int16)READ_LE_UINT16(v14 + 4 * v13);
+ v50 = (int16)READ_LE_UINT16(v14 + 4 * v13 + 2);
v16 = v8;
WRITE_LE_UINT16(a6 + 2 * v16, v15);
WRITE_LE_UINT16(a6 + 2 * v16 + 2, v50);
@@ -714,8 +714,8 @@ int LinesManager::CONTOURNE(int a1, int a2, int a3, int a4, int a5, byte *a6, in
if (v36 > a4) {
for (j = v7; j > 0; --j) {
v18 = Ligne[v36].fieldC;
- v19 = READ_LE_UINT16(v18 + 4 * j);
- v50 = READ_LE_UINT16(v18 + 4 * j + 2);
+ v19 = (int16)READ_LE_UINT16(v18 + 4 * j);
+ v50 = (int16)READ_LE_UINT16(v18 + 4 * j + 2);
v20 = v8;
WRITE_LE_UINT16(a6 + 2 * v20, v19);
WRITE_LE_UINT16(a6 + 2 * v20 + 2, v50);
@@ -727,8 +727,8 @@ int LinesManager::CONTOURNE(int a1, int a2, int a3, int a4, int a5, byte *a6, in
do {
for (k = Ligne[v35].field0 - 1; k > 0; --k) {
v22 = Ligne[v35].fieldC;
- v23 = READ_LE_UINT16(v22 + 4 * k);
- v50 = READ_LE_UINT16(v22 + 4 * k + 2);
+ v23 = (int16)READ_LE_UINT16(v22 + 4 * k);
+ v50 = (int16)READ_LE_UINT16(v22 + 4 * k + 2);
v24 = v8;
WRITE_LE_UINT16(a6 + 2 * v24, v23);
WRITE_LE_UINT16(a6 + 2 * v24 + 2, v50);
@@ -747,8 +747,8 @@ int LinesManager::CONTOURNE(int a1, int a2, int a3, int a4, int a5, byte *a6, in
v29 = v7;
do {
v30 = Ligne[a4].fieldC;
- v31 = READ_LE_UINT16(v30 + 4 * v29);
- v50 = READ_LE_UINT16(v30 + 4 * v29 + 2);
+ v31 = (int16)READ_LE_UINT16(v30 + 4 * v29);
+ v50 = (int16)READ_LE_UINT16(v30 + 4 * v29 + 2);
v32 = v8;
WRITE_LE_UINT16(a6 + 2 * v32, v31);
WRITE_LE_UINT16(a6 + 2 * v32 + 2, v50);
@@ -761,8 +761,8 @@ int LinesManager::CONTOURNE(int a1, int a2, int a3, int a4, int a5, byte *a6, in
v25 = v7;
do {
v26 = Ligne[a4].fieldC;
- v27 = READ_LE_UINT16(v26 + 4 * v25);
- v50 = READ_LE_UINT16(v26 + 4 * v25 + 2);
+ v27 = (int16)READ_LE_UINT16(v26 + 4 * v25);
+ v50 = (int16)READ_LE_UINT16(v26 + 4 * v25 + 2);
v28 = v8;
WRITE_LE_UINT16(a6 + 2 * v28, v27);
WRITE_LE_UINT16(a6 + 2 * v28 + 2, v50);
@@ -815,8 +815,8 @@ int LinesManager::CONTOURNE1(int a1, int a2, int a3, int a4, int a5, byte *a6, i
if (a4 < a1) {
for (i = a2; Ligne[a1].field0 > i; ++i) {
v12 = Ligne[a1].fieldC;
- v13 = READ_LE_UINT16(v12 + 4 * i);
- v50 = READ_LE_UINT16(v12 + 4 * i + 2);
+ v13 = (int16)READ_LE_UINT16(v12 + 4 * i);
+ v50 = (int16)READ_LE_UINT16(v12 + 4 * i + 2);
v14 = v40;
WRITE_LE_UINT16(a6 + 2 * v14, v13);
WRITE_LE_UINT16(a6 + 2 * v14 + 2, v50);
@@ -831,8 +831,8 @@ int LinesManager::CONTOURNE1(int a1, int a2, int a3, int a4, int a5, byte *a6, i
if (Ligne[v15].field0 > 0) {
do {
v17 = Ligne[v15].fieldC;
- v18 = READ_LE_UINT16(v17 + 4 * v16);
- v50 = READ_LE_UINT16(v17 + 4 * v16 + 2);
+ v18 = (int16)READ_LE_UINT16(v17 + 4 * v16);
+ v50 = (int16)READ_LE_UINT16(v17 + 4 * v16 + 2);
v19 = v40;
WRITE_LE_UINT16(a6 + 2 * v19, v18);
WRITE_LE_UINT16(a6 + 2 * v19 + 2, v50);
@@ -851,8 +851,8 @@ int LinesManager::CONTOURNE1(int a1, int a2, int a3, int a4, int a5, byte *a6, i
if (a4 > v9) {
for (j = v10; j > 0; --j) {
v21 = Ligne[v9].fieldC;;
- v22 = READ_LE_UINT16(v21 + 4 * j);
- v50 = READ_LE_UINT16(v21 + 4 * j + 2);
+ v22 = (int16)READ_LE_UINT16(v21 + 4 * j);
+ v50 = (int16)READ_LE_UINT16(v21 + 4 * j + 2);
v23 = v40;
WRITE_LE_UINT16(a6 + 2 * v23, v22);
WRITE_LE_UINT16(a6 + 2 * v23 + 2, v50);
@@ -865,8 +865,8 @@ int LinesManager::CONTOURNE1(int a1, int a2, int a3, int a4, int a5, byte *a6, i
while (a4 != v24) {
for (k = Ligne[v24].field0 - 1; k > 0; --k) {
v26 = Ligne[v24].fieldC;
- v27 = READ_LE_UINT16(v26 + 4 * k);
- v50 = READ_LE_UINT16(v26 + 4 * k + 2);
+ v27 = (int16)READ_LE_UINT16(v26 + 4 * k);
+ v50 = (int16)READ_LE_UINT16(v26 + 4 * k + 2);
v28 = v40;
WRITE_LE_UINT16(a6 + 2 * v28, v27);
WRITE_LE_UINT16(a6 + 2 * v28 + 2, v50);
@@ -887,8 +887,8 @@ int LinesManager::CONTOURNE1(int a1, int a2, int a3, int a4, int a5, byte *a6, i
v39 = a4;
do {
v34 = Ligne[v39].fieldC;
- v35 = READ_LE_UINT16(v34 + 4 * v33);
- v50 = READ_LE_UINT16(v34 + 4 * v33 + 2);
+ v35 = (int16)READ_LE_UINT16(v34 + 4 * v33);
+ v50 = (int16)READ_LE_UINT16(v34 + 4 * v33 + 2);
v36 = v40;
WRITE_LE_UINT16(a6 + 2 * v36, v35);
WRITE_LE_UINT16(a6 + 2 * v36 + 2, v50);
@@ -902,8 +902,8 @@ int LinesManager::CONTOURNE1(int a1, int a2, int a3, int a4, int a5, byte *a6, i
v38 = a4;
do {
v30 = Ligne[v38].fieldC;
- v31 = READ_LE_UINT16(v30 + 4 * v29);
- v50 = READ_LE_UINT16(v30 + 4 * v29 + 2);
+ v31 = (int16)READ_LE_UINT16(v30 + 4 * v29);
+ v50 = (int16)READ_LE_UINT16(v30 + 4 * v29 + 2);
v32 = v40;
WRITE_LE_UINT16(a6 + 2 * v32, v31);
WRITE_LE_UINT16(a6 + 2 * v32 + 2, v50);
@@ -1334,8 +1334,8 @@ LABEL_112:
return -1;
}
v10 = Ligne[a1].fieldC;
- v98 = READ_LE_UINT16(v10);
- v97 = READ_LE_UINT16(v10 + 2);
+ v98 = (int16)READ_LE_UINT16(v10);
+ v97 = (int16)READ_LE_UINT16(v10 + 2);
v92 = a1;
while (1) {
@@ -1344,7 +1344,7 @@ LABEL_112:
v12 = Ligne[v92 - 1].fieldC;
if (v12 == g_PTRNUL)
break;
- while (READ_LE_UINT16(v12 + 2 * v11 - 4) != v98 || v97 != READ_LE_UINT16(v12 + 2 * v11 - 2)) {
+ while ((int16)READ_LE_UINT16(v12 + 2 * v11 - 4) != v98 || v97 != (int16)READ_LE_UINT16(v12 + 2 * v11 - 2)) {
--v86;
if (_vm->_objectsManager.DERLIGNE - 1 != v86) {
v11 = 2 * Ligne[v86].field0;
@@ -1355,14 +1355,14 @@ LABEL_112:
goto LABEL_11;
}
v92 = v86;
- v98 = READ_LE_UINT16(v12);
- v97 = READ_LE_UINT16(v12 + 2);
+ v98 = (int16)READ_LE_UINT16(v12);
+ v97 = (int16)READ_LE_UINT16(v12 + 2);
}
LABEL_11:
v13 = Ligne[a1].fieldC;
v14 = 2 * Ligne[a1].field0;
- v95 = READ_LE_UINT16(v13 + 2 * v14 - 4);
- v93 = READ_LE_UINT16(v13 + 2 * v14 - 2);
+ v95 = (int16)READ_LE_UINT16(v13 + 2 * v14 - 4);
+ v93 = (int16)READ_LE_UINT16(v13 + 2 * v14 - 2);
v91 = a1;
while (1) {
v87 = v91 + 1;
@@ -1372,9 +1372,9 @@ LABEL_11:
break;
while (1) {
v65 = v15;
- v17 = READ_LE_UINT16(v16 + 2 * v15 - 4);
- if (READ_LE_UINT16(v16) == v95) {
- if (v93 == READ_LE_UINT16(v16 + 2))
+ v17 = (int16)READ_LE_UINT16(v16 + 2 * v15 - 4);
+ if ((int16)READ_LE_UINT16(v16) == v95) {
+ if (v93 == (int16)READ_LE_UINT16(v16 + 2))
break;
}
++v87;
@@ -1388,7 +1388,7 @@ LABEL_11:
}
v91 = v87;
v95 = v17;
- v93 = READ_LE_UINT16(v16 + 2 * v65 - 2);
+ v93 = (int16)READ_LE_UINT16(v16 + 2 * v65 - 2);
}
LABEL_17:
v18 = a3 - a5;
@@ -1436,8 +1436,8 @@ LABEL_17:
v89 = v85 + 1;
if ((int)(v85 + 1) > 0) {
do {
- v96 = READ_LE_UINT16((uint16 *)_vm->_globals.BufLig + v25);
- v94 = READ_LE_UINT16((uint16 *)_vm->_globals.BufLig + v25 + 1);
+ v96 = (int16)READ_LE_UINT16((uint16 *)_vm->_globals.BufLig + v25);
+ v94 = (int16)READ_LE_UINT16((uint16 *)_vm->_globals.BufLig + v25 + 1);
if (colision2_ligne(v96, v94, &v101, &v100, v92, v91) == 1 && _vm->_objectsManager.DERLIGNE < v100) {
v80 = v100;
v77 = v101;
@@ -1457,11 +1457,11 @@ LABEL_17:
if (g_PTRNUL == v28)
error("erreur dans da routine genial");
v29 = *(uint16 *)v28;
- v30 = READ_LE_UINT16(v28 + 2);
- v59 = READ_LE_UINT16(v28 + 2);
+ v30 = (int16)READ_LE_UINT16(v28 + 2);
+ v59 = (int16)READ_LE_UINT16(v28 + 2);
v31 = v27;
- v32 = READ_LE_UINT16(v28 + 2 * v27 - 4);
- v33 = READ_LE_UINT16(v28 + 2 * v31 - 2);
+ v32 = (int16)READ_LE_UINT16(v28 + 2 * v27 - 4);
+ v33 = (int16)READ_LE_UINT16(v28 + 2 * v31 - 2);
if (i == v92) {
v72 = v33;
if (v30 <= v33)
@@ -2264,8 +2264,8 @@ LABEL_234:
if (v115 < v121) {
for (i = v114; Ligne[v115].field0 > i; ++i) {
v70 = Ligne[v115].fieldC;
- v119 = READ_LE_UINT16(v70 + 4 * i);
- v118 = READ_LE_UINT16(v70 + 4 * i + 2);
+ v119 = (int16)READ_LE_UINT16(v70 + 4 * i);
+ v118 = (int16)READ_LE_UINT16(v70 + 4 * i + 2);
v71 = v112;
_vm->_globals.super_parcours[v71] = v119;
_vm->_globals.super_parcours[v71 + 1] = v118;
@@ -2280,8 +2280,8 @@ LABEL_234:
v110 = v116;
for (j = v116; Ligne[j].field0 > v72; j = v116) {
v74 = Ligne[v110].fieldC;
- v119 = READ_LE_UINT16(v74 + 4 * v72);
- v118 = READ_LE_UINT16(v74 + 4 * v72 + 2);
+ v119 = (int16)READ_LE_UINT16(v74 + 4 * v72);
+ v118 = (int16)READ_LE_UINT16(v74 + 4 * v72 + 2);
v75 = v112;
_vm->_globals.super_parcours[v75] = v119;
_vm->_globals.super_parcours[v75 + 1] = v118;
@@ -2330,8 +2330,8 @@ LABEL_200:
v98 = 16 * v115;
do {
v81 = Ligne[v98].fieldC;
- v119 = READ_LE_UINT16(v81 + 4 * v80);
- v118 = READ_LE_UINT16(v81 + 4 * v80 + 2);
+ v119 = (int16)READ_LE_UINT16(v81 + 4 * v80);
+ v118 = (int16)READ_LE_UINT16(v81 + 4 * v80 + 2);
v82 = v112;
_vm->_globals.super_parcours[v82] = v119;
_vm->_globals.super_parcours[v82 + 1] = v118;
@@ -2349,8 +2349,8 @@ LABEL_200:
v109 = 16 * v117;
do {
v84 = Ligne[v109].fieldC;
- v119 = READ_LE_UINT16(v84 + 4 * v83);
- v118 = READ_LE_UINT16(v84 + 4 * v83 + 2);
+ v119 = (int16)READ_LE_UINT16(v84 + 4 * v83);
+ v118 = (int16)READ_LE_UINT16(v84 + 4 * v83 + 2);
v85 = v112;
_vm->_globals.super_parcours[v85] = v119;
_vm->_globals.super_parcours[v85 + 1] = v118;
@@ -2395,9 +2395,9 @@ LABEL_200:
v100 = 16 * v121;
do {
v95 = Ligne[v100].fieldC;;
- v96 = READ_LE_UINT16(v95 + 4 * v94 + 2);
+ v96 = (int16)READ_LE_UINT16(v95 + 4 * v94 + 2);
v97 = v112;
- _vm->_globals.super_parcours[v97] = READ_LE_UINT16(v95 + 4 * v94);
+ _vm->_globals.super_parcours[v97] = (int16)READ_LE_UINT16(v95 + 4 * v94);
_vm->_globals.super_parcours[v97 + 1] = v96;
_vm->_globals.super_parcours[v97 + 2] = Ligne[v100].field6;
_vm->_globals.super_parcours[v97 + 3] = 0;
@@ -2410,9 +2410,9 @@ LABEL_200:
v99 = 16 * v121;
do {
v91 = Ligne[v99].fieldC;
- v92 = READ_LE_UINT16(v91 + 4 * v90 + 2);
+ v92 = (int16)READ_LE_UINT16(v91 + 4 * v90 + 2);
v93 = v112;
- _vm->_globals.super_parcours[v93] = READ_LE_UINT16(v91 + 4 * v90);
+ _vm->_globals.super_parcours[v93] = (int16)READ_LE_UINT16(v91 + 4 * v90);
_vm->_globals.super_parcours[v93 + 1] = v92;
_vm->_globals.super_parcours[v93 + 2] = Ligne[v99].field8;
_vm->_globals.super_parcours[v93 + 3] = 0;
@@ -2640,14 +2640,14 @@ LABEL_150:
v29 = _vm->_globals.essai0;
do {
v30 = v137;
- _vm->_globals.super_parcours[v30] = READ_LE_UINT16(v29 + 2 * v116);
- _vm->_globals.super_parcours[v30 + 1] = READ_LE_UINT16(v29 + 2 * v116 + 2);
- _vm->_globals.super_parcours[v30 + 2] = READ_LE_UINT16(v29 + 2 * v116 + 4);
+ _vm->_globals.super_parcours[v30] = (int16)READ_LE_UINT16(v29 + 2 * v116);
+ _vm->_globals.super_parcours[v30 + 1] = (int16)READ_LE_UINT16(v29 + 2 * v116 + 2);
+ _vm->_globals.super_parcours[v30 + 2] = (int16)READ_LE_UINT16(v29 + 2 * v116 + 4);
_vm->_globals.super_parcours[v30 + 3] = 0;
v116 += 3;
v137 += 4;
- if (READ_LE_UINT16(v29 + 2 * v116) == -1) {
- if (READ_LE_UINT16(v29 + 2 * v116 + 2) == -1)
+ if ((int16)READ_LE_UINT16(v29 + 2 * v116) == -1) {
+ if ((int16)READ_LE_UINT16(v29 + 2 * v116 + 2) == -1)
v127 = 1;
}
} while (v127 != 1);
@@ -2925,13 +2925,13 @@ LABEL_195:
v50 = _vm->_globals.essai1;
do {
v51 = v137;
- _vm->_globals.super_parcours[v51] = READ_LE_UINT16(v50 + 2 * v118);
- _vm->_globals.super_parcours[v51 + 1] = READ_LE_UINT16(v50 + 2 * v118 + 2);
- _vm->_globals.super_parcours[v51 + 2] = READ_LE_UINT16(v50 + 2 * v118 + 4);
+ _vm->_globals.super_parcours[v51] = (int16)READ_LE_UINT16(v50 + 2 * v118);
+ _vm->_globals.super_parcours[v51 + 1] = (int16)READ_LE_UINT16(v50 + 2 * v118 + 2);
+ _vm->_globals.super_parcours[v51 + 2] = (int16)READ_LE_UINT16(v50 + 2 * v118 + 4);
_vm->_globals.super_parcours[v51 + 3] = 0;
v118 += 3;
v137 += 4;
- if (READ_LE_UINT16(v50 + 2 * v118) == -1 && READ_LE_UINT16(v50 + 2 * v118 + 2) == -1)
+ if ((int16)READ_LE_UINT16(v50 + 2 * v118) == -1 && (int16)READ_LE_UINT16(v50 + 2 * v118 + 2) == -1)
v128 = 1;
} while (v128 != 1);
}
@@ -3038,7 +3038,7 @@ LABEL_249:
WRITE_LE_UINT16(v77 + 2 * v76 + 4, (uint16)-1);
if (v136 != 1) {
if (a6 > v144) {
- if (READ_LE_UINT16(_vm->_globals.essai0) != -1 && v142 > v144 && v140 <= v142 && v138 <= v142 && a6 >= v142) {
+ if ((int16)READ_LE_UINT16(_vm->_globals.essai0) != -1 && v142 > v144 && v140 <= v142 && v138 <= v142 && a6 >= v142) {
NV_LIGNEDEP = v142;
NV_LIGNEOFS = v143;
v130 = 0;
@@ -3046,13 +3046,13 @@ LABEL_249:
v78 = _vm->_globals.essai0;
do {
v79 = v137;
- _vm->_globals.super_parcours[v79] = READ_LE_UINT16(v78 + 2 * v120);
- _vm->_globals.super_parcours[v79 + 1] = READ_LE_UINT16(v78 + 2 * v120 + 2);
- _vm->_globals.super_parcours[v79 + 2] = READ_LE_UINT16(v78 + 2 * v120 + 4);
+ _vm->_globals.super_parcours[v79] = (int16)READ_LE_UINT16(v78 + 2 * v120);
+ _vm->_globals.super_parcours[v79 + 1] = (int16)READ_LE_UINT16(v78 + 2 * v120 + 2);
+ _vm->_globals.super_parcours[v79 + 2] = (int16)READ_LE_UINT16(v78 + 2 * v120 + 4);
_vm->_globals.super_parcours[v79 + 3] = 0;
v120 += 3;
v137 += 4;
- if (READ_LE_UINT16(v78 + 2 * v120) == -1 && READ_LE_UINT16(v78 + 2 * v120 + 2) == -1)
+ if ((int16)READ_LE_UINT16(v78 + 2 * v120) == -1 && (int16)READ_LE_UINT16(v78 + 2 * v120 + 2) == -1)
v130 = 1;
} while (v130 != 1);
LABEL_323:
@@ -3060,20 +3060,20 @@ LABEL_323:
return 2;
}
v80 = _vm->_globals.essai1;
- if (READ_LE_UINT16(_vm->_globals.essai1) != -1 && v144 < v140 && v138 <= v140 && v142 <= v140 && a6 >= v140) {
+ if ((int16)READ_LE_UINT16(_vm->_globals.essai1) != -1 && v144 < v140 && v138 <= v140 && v142 <= v140 && a6 >= v140) {
NV_LIGNEDEP = v140;
NV_LIGNEOFS = v141;
v131 = 0;
v121 = 0;
do {
v81 = v137;
- _vm->_globals.super_parcours[v81] = READ_LE_UINT16(v80 + 2 * v121);
- _vm->_globals.super_parcours[v81 + 1] = READ_LE_UINT16(v80 + 2 * v121 + 2);
- _vm->_globals.super_parcours[v81 + 2] = READ_LE_UINT16(v80 + 2 * v121 + 4);
+ _vm->_globals.super_parcours[v81] = (int16)READ_LE_UINT16(v80 + 2 * v121);
+ _vm->_globals.super_parcours[v81 + 1] = (int16)READ_LE_UINT16(v80 + 2 * v121 + 2);
+ _vm->_globals.super_parcours[v81 + 2] = (int16)READ_LE_UINT16(v80 + 2 * v121 + 4);
_vm->_globals.super_parcours[v81 + 3] = 0;
v121 += 3;
v137 += 4;
- if ((int16)READ_LE_UINT16(v80 + 2 * v121) == -1 && (int16)READ_LE_UINT16(v80 + 2 * v121 + 2) == -1)
+ if ((int16)(int16)READ_LE_UINT16(v80 + 2 * v121) == -1 && (int16)(int16)READ_LE_UINT16(v80 + 2 * v121 + 2) == -1)
v131 = 1;
} while (v131 != 1);
LABEL_301:
@@ -3081,7 +3081,7 @@ LABEL_301:
return 2;
}
v82 = _vm->_globals.essai2;
- if (READ_LE_UINT16(_vm->_globals.essai2) != -1) {
+ if ((int16)READ_LE_UINT16(_vm->_globals.essai2) != -1) {
if (v144 < v138 && v140 < v138 && v142 < v138 && a6 >= v138) {
NV_LIGNEDEP = v138;
NV_LIGNEOFS = v139;
@@ -3089,13 +3089,13 @@ LABEL_301:
v122 = 0;
do {
v83 = v137;
- _vm->_globals.super_parcours[v83] = READ_LE_UINT16(v82 + 2 * v122);
- _vm->_globals.super_parcours[v83 + 1] = READ_LE_UINT16(v82 + 2 * v122 + 2);
- _vm->_globals.super_parcours[v83 + 2] = READ_LE_UINT16(v82 + 2 * v122 + 4);
+ _vm->_globals.super_parcours[v83] = (int16)READ_LE_UINT16(v82 + 2 * v122);
+ _vm->_globals.super_parcours[v83 + 1] = (int16)READ_LE_UINT16(v82 + 2 * v122 + 2);
+ _vm->_globals.super_parcours[v83 + 2] = (int16)READ_LE_UINT16(v82 + 2 * v122 + 4);
_vm->_globals.super_parcours[v83 + 3] = 0;
v122 += 3;
v137 += 4;
- if (READ_LE_UINT16(v82 + 2 * v122) == -1 && READ_LE_UINT16(v82 + 2 * v122 + 2) == -1)
+ if ((int16)READ_LE_UINT16(v82 + 2 * v122) == -1 && (int16)READ_LE_UINT16(v82 + 2 * v122 + 2) == -1)
v132 = 1;
} while (v132 != 1);
LABEL_312:
@@ -3111,7 +3111,7 @@ LABEL_312:
v142 = 1300;
if (v138 == -1)
v142 = 1300;
- if (READ_LE_UINT16(_vm->_globals.essai1) != -1 && v140 < v144 && v138 >= v140 && v142 >= v140 && a6 <= v140) {
+ if ((int16)READ_LE_UINT16(_vm->_globals.essai1) != -1 && v140 < v144 && v138 >= v140 && v142 >= v140 && a6 <= v140) {
NV_LIGNEDEP = v140;
NV_LIGNEOFS = v141;
v133 = 0;
@@ -3119,37 +3119,37 @@ LABEL_312:
v84 = _vm->_globals.essai1;
do {
v85 = v137;
- _vm->_globals.super_parcours[v85] = READ_LE_UINT16(v84 + 2 * v123);
- _vm->_globals.super_parcours[v85 + 1] = READ_LE_UINT16(v84 + 2 * v123 + 2);
- _vm->_globals.super_parcours[v85 + 2] = READ_LE_UINT16(v84 + 2 * v123 + 4);
+ _vm->_globals.super_parcours[v85] = (int16)READ_LE_UINT16(v84 + 2 * v123);
+ _vm->_globals.super_parcours[v85 + 1] = (int16)READ_LE_UINT16(v84 + 2 * v123 + 2);
+ _vm->_globals.super_parcours[v85 + 2] = (int16)READ_LE_UINT16(v84 + 2 * v123 + 4);
_vm->_globals.super_parcours[v85 + 3] = 0;
v123 += 3;
v137 += 4;
- if (READ_LE_UINT16(v84 + 2 * v123) == -1 && READ_LE_UINT16(v84 + 2 * v123 + 2) == -1)
+ if ((int16)READ_LE_UINT16(v84 + 2 * v123) == -1 && (int16)READ_LE_UINT16(v84 + 2 * v123 + 2) == -1)
v133 = 1;
} while (v133 != 1);
goto LABEL_301;
}
v86 = _vm->_globals.essai2;
- if ((int16)READ_LE_UINT16(_vm->_globals.essai2) != -1 && v144 > v138 && v140 >= v138 && v142 >= v138 && a6 <= v138) {
+ if ((int16)(int16)READ_LE_UINT16(_vm->_globals.essai2) != -1 && v144 > v138 && v140 >= v138 && v142 >= v138 && a6 <= v138) {
NV_LIGNEDEP = v138;
NV_LIGNEOFS = v139;
v134 = 0;
v124 = 0;
do {
v87 = v137;
- _vm->_globals.super_parcours[v87] = READ_LE_UINT16(v86 + 2 * v124);
- _vm->_globals.super_parcours[v87 + 1] = READ_LE_UINT16(v86 + 2 * v124 + 2);
- _vm->_globals.super_parcours[v87 + 2] = READ_LE_UINT16(v86 + 2 * v124 + 4);
+ _vm->_globals.super_parcours[v87] = (int16)READ_LE_UINT16(v86 + 2 * v124);
+ _vm->_globals.super_parcours[v87 + 1] = (int16)READ_LE_UINT16(v86 + 2 * v124 + 2);
+ _vm->_globals.super_parcours[v87 + 2] = (int16)READ_LE_UINT16(v86 + 2 * v124 + 4);
_vm->_globals.super_parcours[v87 + 3] = 0;
v124 += 3;
v137 += 4;
- if (READ_LE_UINT16(v86 + 2 * v124) == -1 && READ_LE_UINT16(v86 + 2 * v124 + 2) == -1)
+ if ((int16)READ_LE_UINT16(v86 + 2 * v124) == -1 && (int16)READ_LE_UINT16(v86 + 2 * v124 + 2) == -1)
v134 = 1;
} while (v134 != 1);
goto LABEL_312;
}
- if ((int16)READ_LE_UINT16(_vm->_globals.essai1) != -1 && v144 > v142 && v140 >= v142 && v138 >= v142 && a6 <= v142) {
+ if ((int16)(int16)READ_LE_UINT16(_vm->_globals.essai1) != -1 && v144 > v142 && v140 >= v142 && v138 >= v142 && a6 <= v142) {
NV_LIGNEDEP = v142;
NV_LIGNEOFS = v143;
v135 = 0;
@@ -3157,13 +3157,13 @@ LABEL_312:
v88 = _vm->_globals.essai0;
do {
v89 = v137;
- _vm->_globals.super_parcours[v89] = READ_LE_UINT16(v88 + 2 * v125);
- _vm->_globals.super_parcours[v89 + 1] = READ_LE_UINT16(v88 + 2 * v125 + 2);
- _vm->_globals.super_parcours[v89 + 2] = READ_LE_UINT16(v88 + 2 * v125 + 4);
+ _vm->_globals.super_parcours[v89] = (int16)READ_LE_UINT16(v88 + 2 * v125);
+ _vm->_globals.super_parcours[v89 + 1] = (int16)READ_LE_UINT16(v88 + 2 * v125 + 2);
+ _vm->_globals.super_parcours[v89 + 2] = (int16)READ_LE_UINT16(v88 + 2 * v125 + 4);
_vm->_globals.super_parcours[v89 + 3] = 0;
v125 += 3;
v137 += 4;
- if (READ_LE_UINT16(v88 + 2 * v125) == -1 && READ_LE_UINT16(v88 + 2 * v125 + 2) == -1)
+ if ((int16)READ_LE_UINT16(v88 + 2 * v125) == -1 && (int16)READ_LE_UINT16(v88 + 2 * v125 + 2) == -1)
v135 = 1;
} while (v135 != 1);
goto LABEL_323;
@@ -3250,13 +3250,13 @@ LABEL_242:
v72 = _vm->_globals.essai2;
do {
v73 = v137;
- _vm->_globals.super_parcours[v73] = READ_LE_UINT16(v72 + 2 * v119);
- _vm->_globals.super_parcours[v73 + 1] = READ_LE_UINT16(v72 + 2 * v119 + 2);
- _vm->_globals.super_parcours[v73 + 2] = READ_LE_UINT16(v72 + 2 * v119 + 4);
+ _vm->_globals.super_parcours[v73] = (int16)READ_LE_UINT16(v72 + 2 * v119);
+ _vm->_globals.super_parcours[v73 + 1] = (int16)READ_LE_UINT16(v72 + 2 * v119 + 2);
+ _vm->_globals.super_parcours[v73 + 2] = (int16)READ_LE_UINT16(v72 + 2 * v119 + 4);
_vm->_globals.super_parcours[v73 + 3] = 0;
v119 += 3;
v137 += 4;
- if (READ_LE_UINT16(v72 + 2 * v119) == -1 && READ_LE_UINT16(v72 + 2 * v119 + 2) == -1)
+ if ((int16)READ_LE_UINT16(v72 + 2 * v119) == -1 && (int16)READ_LE_UINT16(v72 + 2 * v119 + 2) == -1)
v129 = 1;
} while (v129 != 1);
}
@@ -3751,8 +3751,8 @@ LABEL_60:
v25 = _vm->_globals.essai0;
do {
v15 = Ligne[v32].fieldC;
- v16 = READ_LE_UINT16(v15 + 4 * v14);
- v29 = READ_LE_UINT16(v15 + 4 * v14 + 2);
+ v16 = (int16)READ_LE_UINT16(v15 + 4 * v14);
+ v29 = (int16)READ_LE_UINT16(v15 + 4 * v14 + 2);
if (!a6) {
v17 = v41;
_vm->_globals.super_parcours[v17] = v16;
@@ -3779,8 +3779,8 @@ LABEL_60:
v26 = _vm->_globals.essai0;
do {
v20 = Ligne[v31].fieldC;
- v21 = READ_LE_UINT16(v20 + 4 * v19);
- v30 = READ_LE_UINT16(v20 + 4 * v19 + 2);
+ v21 = (int16)READ_LE_UINT16(v20 + 4 * v19);
+ v30 = (int16)READ_LE_UINT16(v20 + 4 * v19 + 2);
if (a6) {
v23 = v41;
WRITE_LE_UINT16(v26 + 2 * v23, v21);
@@ -3835,9 +3835,9 @@ int LinesManager::TEST_LIGNE(int a1, int a2, int *a3, int *a4, int *a5) {
v6 = i;
v7 = Ligne[i].fieldC;
v8 = Ligne[v6].field0;
- v23 = READ_LE_UINT16(v7 + 4 * v8 - 4);
- v9 = READ_LE_UINT16(v7 + 4 * v8 - 2);
- if (*v7 == a1 && a2 == READ_LE_UINT16(v7 + 2)) {
+ v23 = (int16)READ_LE_UINT16(v7 + 4 * v8 - 4);
+ v9 = (int16)READ_LE_UINT16(v7 + 4 * v8 - 2);
+ if (*v7 == a1 && a2 == (int16)READ_LE_UINT16(v7 + 2)) {
v24 = v25;
v26 = 1;
*a3 = 1;
@@ -3858,8 +3858,8 @@ LABEL_12:
v10 = v24;
v11 = Ligne[v10].field0;
v12 = Ligne[v10].fieldC;
- v13 = READ_LE_UINT16(v12 + 4 * v11 - 4);
- v14 = READ_LE_UINT16(v12 + 4 * v11 - 2);
+ v13 = (int16)READ_LE_UINT16(v12 + 4 * v11 - 4);
+ v14 = (int16)READ_LE_UINT16(v12 + 4 * v11 - 2);
v15 = Ligne[v10].field6;
if (v15 == 5 || v15 == 1)
v14 += 2;
@@ -3874,7 +3874,7 @@ LABEL_12:
if (v26 == 1 && *a3 == 2) {
v17 = Ligne[v25].fieldC;
v18 = *v17;
- v19 = READ_LE_UINT16(v17 + 2);
+ v19 = (int16)READ_LE_UINT16(v17 + 2);
v20 = Ligne[v24].field6;
if (v20 == 5 || v20 == 1)
v19 -= 2;
diff --git a/engines/hopkins/menu.cpp b/engines/hopkins/menu.cpp
index 23baec188e..fcebb2ce8b 100644
--- a/engines/hopkins/menu.cpp
+++ b/engines/hopkins/menu.cpp
@@ -290,7 +290,7 @@ void MenuManager::CHARGE_PARTIE() {
v4 = &_vm->_globals.SAUVEGARDE->data[svField1300];
v5 = 0;
do {
- _vm->_globals.INVENTAIRE[v5] = READ_LE_UINT16(v4 + 2 * v5);
+ _vm->_globals.INVENTAIRE[v5] = (int16)READ_LE_UINT16(v4 + 2 * v5);
++v5;
} while (v5 <= 34);
diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp
index d76352ac0e..559eb6558c 100644
--- a/engines/hopkins/objects.cpp
+++ b/engines/hopkins/objects.cpp
@@ -214,12 +214,12 @@ void ObjectsManager::set_offsetxy(byte *data, int idx, int xp, int yp, bool isSi
int ObjectsManager::get_offsetx(const byte *spriteData, int spriteIndex, bool isSize) {
const byte *v3 = spriteData + 3;
for (int i = spriteIndex; i; --i)
- v3 += READ_LE_UINT16(v3) + 16;
+ v3 += (int16)READ_LE_UINT16(v3) + 16;
const byte *v5 = v3 + 8;
- int result = READ_LE_UINT16(v5);
+ int result = (int16)READ_LE_UINT16(v5);
if (isSize)
- result = READ_LE_UINT16(v5 + 4);
+ result = (int16)READ_LE_UINT16(v5 + 4);
return result;
}
@@ -227,12 +227,12 @@ int ObjectsManager::get_offsetx(const byte *spriteData, int spriteIndex, bool is
int ObjectsManager::get_offsety(const byte *spriteData, int spriteIndex, bool isSize) {
const byte *v3 = spriteData + 3;
for (int i = spriteIndex; i; --i)
- v3 += READ_LE_UINT16(v3) + 16;
+ v3 += (int16)READ_LE_UINT16(v3) + 16;
const byte *v5 = v3 + 10;
- int result = READ_LE_UINT16(v5);
+ int result = (int16)READ_LE_UINT16(v5);
if (isSize)
- result = READ_LE_UINT16(v5 + 4);
+ result = (int16)READ_LE_UINT16(v5 + 4);
return result;
}
@@ -242,7 +242,7 @@ int ObjectsManager::Get_Largeur(const byte *objectData, int idx) {
for (int i = idx; i; --i)
rectP += READ_LE_UINT32(rectP) + 16;
- return (int16)READ_LE_UINT16(rectP + 4);
+ return (int16)(int16)READ_LE_UINT16(rectP + 4);
}
int ObjectsManager::Get_Hauteur(const byte *objectData, int idx) {
@@ -250,7 +250,7 @@ int ObjectsManager::Get_Hauteur(const byte *objectData, int idx) {
for (int i = idx; i; --i)
rectP += READ_LE_UINT32(rectP) + 16;
- return (int16)READ_LE_UINT16(rectP + 6);
+ return (int16)(int16)READ_LE_UINT16(rectP + 6);
}
int ObjectsManager::sprite_alone(const byte *objectData, byte *sprite, int objIndex) {
@@ -260,7 +260,7 @@ int ObjectsManager::sprite_alone(const byte *objectData, byte *sprite, int objIn
}
objP += 4;
- int result = READ_LE_UINT16(objP) * READ_LE_UINT16(objP + 2);
+ int result = (int16)READ_LE_UINT16(objP) * (int16)READ_LE_UINT16(objP + 2);
memcpy(sprite + 3, objP - 4, result + 16);
return result;
@@ -288,7 +288,7 @@ int ObjectsManager::capture_mem_sprite(const byte *objectData, byte *sprite, int
}
objP += 4;
- int result = READ_LE_UINT16(objP) * READ_LE_UINT16(objP + 2);
+ int result = (int16)READ_LE_UINT16(objP) * (int16)READ_LE_UINT16(objP + 2);
memcpy(sprite, objP + 12, result);
return result;
@@ -712,19 +712,19 @@ void ObjectsManager::BOB_VISU(int idx) {
BOB_ZERO(idx);
data = _vm->_globals.Bqe_Anim[idx].data;
- v1 = READ_LE_UINT16(data);
- v9 = READ_LE_UINT16(data + 2);
- v8 = READ_LE_UINT16(data + 4);
- v7 = READ_LE_UINT16(data + 6);
- v6 = READ_LE_UINT16(data + 8);
- if (READ_LE_UINT16(data)) {
+ v1 = (int16)READ_LE_UINT16(data);
+ v9 = (int16)READ_LE_UINT16(data + 2);
+ v8 = (int16)READ_LE_UINT16(data + 4);
+ v7 = (int16)READ_LE_UINT16(data + 6);
+ v6 = (int16)READ_LE_UINT16(data + 8);
+ if ((int16)READ_LE_UINT16(data)) {
if (_vm->_globals.Bank[idx].field4) {
if (!v9)
v9 = 1;
if (!v6)
v6 = -1;
- if (READ_LE_UINT16(data + 24)) {
+ if ((int16)READ_LE_UINT16(data + 24)) {
_vm->_globals.Bob[idx].field3A = 0;
if (_vm->_globals.Bank[idx].fileHeader == 1) {
@@ -1352,15 +1352,15 @@ void ObjectsManager::AFF_BOB_ANIM() {
v20 = _vm->_globals.Bob[idx].field18 + 20;
v24 = _vm->_globals.Bob[idx].field10;
- _vm->_globals.Bob[idx].field8 = READ_LE_UINT16(v20 + 2 * v24);
+ _vm->_globals.Bob[idx].field8 = (int16)READ_LE_UINT16(v20 + 2 * v24);
if (_vm->_globals.BL_ANIM[idx].v1 == 1)
_vm->_globals.Bob[idx].field8 = _vm->_globals.BL_ANIM[idx].v2;
if ( PERSO_ON == 1 && idx > 20 )
_vm->_globals.Bob[idx].field8 += _vm->_eventsManager.start_x;
- _vm->_globals.Bob[idx].fieldA = READ_LE_UINT16(v20 + 2 * v24 + 2);
- _vm->_globals.Bob[idx].field12 = READ_LE_UINT16(v20 + 2 * v24 + 4);
- _vm->_globals.Bob[idx].field36 = READ_LE_UINT16(v20 + 2 * v24 + 6);
+ _vm->_globals.Bob[idx].fieldA = (int16)READ_LE_UINT16(v20 + 2 * v24 + 2);
+ _vm->_globals.Bob[idx].field12 = (int16)READ_LE_UINT16(v20 + 2 * v24 + 4);
+ _vm->_globals.Bob[idx].field36 = (int16)READ_LE_UINT16(v20 + 2 * v24 + 6);
_vm->_globals.Bob[idx].fieldC = *(v20 + 2 * v24 + 8);
_vm->_globals.Bob[idx].field38 = *(v20 + 2 * v24 + 9);
_vm->_globals.Bob[idx].field10 += 5;
@@ -1392,16 +1392,16 @@ LABEL_38:
} else {
_vm->_globals.Bob[idx].field10 = 0;
v21 = _vm->_globals.Bob[idx].field18 + 20;
- _vm->_globals.Bob[idx].field8 = READ_LE_UINT16(v21);
+ _vm->_globals.Bob[idx].field8 = (int16)READ_LE_UINT16(v21);
if (_vm->_globals.BL_ANIM[idx].v1 == 1)
_vm->_globals.Bob[idx].field8 = _vm->_globals.BL_ANIM[idx].v2;
if (PERSO_ON == 1 && idx > 20)
_vm->_globals.Bob[idx].field8 += _vm->_eventsManager.start_x;
- _vm->_globals.Bob[idx].fieldA = READ_LE_UINT16(v21 + 2);
- _vm->_globals.Bob[idx].field12 = READ_LE_UINT16(v21 + 4);
- _vm->_globals.Bob[idx].field36 = READ_LE_UINT16(v21 + 6);
+ _vm->_globals.Bob[idx].fieldA = (int16)READ_LE_UINT16(v21 + 2);
+ _vm->_globals.Bob[idx].field12 = (int16)READ_LE_UINT16(v21 + 4);
+ _vm->_globals.Bob[idx].field36 = (int16)READ_LE_UINT16(v21 + 6);
_vm->_globals.Bob[idx].fieldC = *(v21 + 8);
_vm->_globals.Bob[idx].field38 = *(v21 + 9);
_vm->_globals.Bob[idx].field10 += 5;
@@ -1928,9 +1928,9 @@ void ObjectsManager::CARRE_ZONE() {
v12 = _vm->_linesManager.LigneZone[idx].field0;
if (v12 > 0) {
do {
- v5 = READ_LE_UINT16(v3);
+ v5 = (int16)READ_LE_UINT16(v3);
v6 = v3 + 2;
- v11 = READ_LE_UINT16(v6);
+ v11 = (int16)READ_LE_UINT16(v6);
v3 = v6 + 2;
if (_vm->_globals.CarreZone[v4].field2 >= v5)
_vm->_globals.CarreZone[v4].field2 = v5;
@@ -2160,9 +2160,9 @@ void ObjectsManager::BTGAUCHE() {
v3 = _vm->_globals.essai2;
v4 = _vm->_globals.chemin;
do {
- WRITE_LE_UINT16(v3 + 2 * v2, READ_LE_UINT16(v4 + 2 * v2));
+ WRITE_LE_UINT16(v3 + 2 * v2, (int16)READ_LE_UINT16(v4 + 2 * v2));
++v2;
- } while ((int16)READ_LE_UINT16(v4 + 2 * v2) != -1);
+ } while ((int16)(int16)READ_LE_UINT16(v4 + 2 * v2) != -1);
v5 = _vm->_globals.essai2;
WRITE_LE_UINT16(_vm->_globals.essai2 + 2 * v2, (uint16)-1);
WRITE_LE_UINT16(v5 + 2 * v2 + 2, (uint16)-1);
@@ -2793,29 +2793,29 @@ void ObjectsManager::PACOURS_PROPRE(byte *a1) {
v1 = 0;
v13 = 0;
v14 = -1;
- v2 = READ_LE_UINT16(a1 + 2);
- v15 = READ_LE_UINT16(a1 + 4);
- if ((int16)READ_LE_UINT16(a1) != -1 || v2 != -1) {
+ v2 = (int16)READ_LE_UINT16(a1 + 2);
+ v15 = (int16)READ_LE_UINT16(a1 + 4);
+ if ((int16)(int16)READ_LE_UINT16(a1) != -1 || v2 != -1) {
while (1) {
if (v14 != -1 && v15 != v14) {
v11 = v1;
v12 = 0;
v10 = CALC_PROPRE(v2);
- v4 = READ_LE_UINT16(a1 + 2 * v1);
- v9 = READ_LE_UINT16(a1 + 2 * v1);
- v5 = READ_LE_UINT16(a1 + 2 * v1 + 2);
+ v4 = (int16)READ_LE_UINT16(a1 + 2 * v1);
+ v9 = (int16)READ_LE_UINT16(a1 + 2 * v1);
+ v5 = (int16)READ_LE_UINT16(a1 + 2 * v1 + 2);
v6 = 0;
while (v4 != -1 || v5 != -1) {
int idx = v1;
v1 += 4;
++v12;
- if (READ_LE_UINT16(a1 + 2 * idx + 4) != v15)
+ if ((int16)READ_LE_UINT16(a1 + 2 * idx + 4) != v15)
v6 = 1;
if (v6 == 1)
break;
- v4 = READ_LE_UINT16(a1 + 2 * v1);
- v9 = READ_LE_UINT16(a1 + 2 * v1);
- v5 = READ_LE_UINT16(a1 + 2 * v1 + 2);
+ v4 = (int16)READ_LE_UINT16(a1 + 2 * v1);
+ v9 = (int16)READ_LE_UINT16(a1 + 2 * v1);
+ v5 = (int16)READ_LE_UINT16(a1 + 2 * v1 + 2);
}
if (v12 < v10) {
v7 = v11;
@@ -2837,9 +2837,9 @@ void ObjectsManager::PACOURS_PROPRE(byte *a1) {
if (v13 == 1)
break;
v14 = v15;
- v2 = READ_LE_UINT16(a1 + 2 * v1 + 2);
- v15 = READ_LE_UINT16(a1 + 2 * v1 + 4);
- if (READ_LE_UINT16(a1 + 2 * v1) == -1) {
+ v2 = (int16)READ_LE_UINT16(a1 + 2 * v1 + 2);
+ v15 = (int16)READ_LE_UINT16(a1 + 2 * v1 + 4);
+ if ((int16)READ_LE_UINT16(a1 + 2 * v1) == -1) {
if (v2 == -1)
break;
}
@@ -3083,9 +3083,9 @@ byte *ObjectsManager::PARC_VOITURE(int a1, int a2, int a3, int a4) {
if (_vm->_linesManager.colision2_ligne(a1, a2, &v83, &v88, 0, _vm->_linesManager.TOTAL_LIGNES) == 1) {
v27 = 0;
while (1) {
- v28 = READ_LE_UINT16(_vm->_globals.essai2 + 2 * (signed __int16)v27);
- v29 = READ_LE_UINT16(_vm->_globals.essai2 + 2 * (signed __int16)v27 + 2);
- v66 = READ_LE_UINT16(_vm->_globals.essai2 + 2 * (signed __int16)v27 + 4);
+ v28 = (int16)READ_LE_UINT16(_vm->_globals.essai2 + 2 * (signed __int16)v27);
+ v29 = (int16)READ_LE_UINT16(_vm->_globals.essai2 + 2 * (signed __int16)v27 + 2);
+ v66 = (int16)READ_LE_UINT16(_vm->_globals.essai2 + 2 * (signed __int16)v27 + 4);
v27 = v27 + 4;
v30 = v27;
v31 = _vm->_linesManager.colision2_ligne(v28, v29, &v83, &v88, 0, DERLIGNE);
@@ -3120,8 +3120,8 @@ LABEL_90:
v35 = v68;
for (i = _vm->_linesManager.Ligne[v69].field0; v35 < (i - 2); i = _vm->_linesManager.Ligne[v69].field0) {
v37 = _vm->_linesManager.Ligne[v69].fieldC;
- v38 = READ_LE_UINT16(v37 + 4 * v35);
- int v37_2 = READ_LE_UINT16(v37 + 4 * v35 + 2);
+ v38 = (int16)READ_LE_UINT16(v37 + 4 * v35);
+ int v37_2 = (int16)READ_LE_UINT16(v37 + 4 * v35 + 2);
v39 = v67;
_vm->_globals.super_parcours[v39] = v38;
_vm->_globals.super_parcours[v39 + 1] = v37_2;
@@ -3133,8 +3133,8 @@ LABEL_90:
}
for (j = v69 + 1; j < v73; ++j) {
if (_vm->_linesManager.PLAN_TEST(
- READ_LE_UINT16(_vm->_linesManager.Ligne[j].fieldC),
- READ_LE_UINT16(_vm->_linesManager.Ligne[j].fieldC + 2),
+ (int16)READ_LE_UINT16(_vm->_linesManager.Ligne[j].fieldC),
+ (int16)READ_LE_UINT16(_vm->_linesManager.Ligne[j].fieldC + 2),
v67,
j,
v73,
@@ -3150,8 +3150,8 @@ LABEL_88:
if (_vm->_linesManager.Ligne[j].field0 - 2 > 0) {
do {
v41 = _vm->_linesManager.Ligne[j].fieldC;
- v42 = READ_LE_UINT16(v41 + 4 * v40);
- int v41_2 = READ_LE_UINT16(v41 + 4 * v40 + 2);
+ v42 = (int16)READ_LE_UINT16(v41 + 4 * v40);
+ int v41_2 = (int16)READ_LE_UINT16(v41 + 4 * v40 + 2);
v43 = v67;
_vm->_globals.super_parcours[v43] = v42;
_vm->_globals.super_parcours[v43 + 1] = v41_2;
@@ -3168,8 +3168,8 @@ LABEL_88:
if (v69 > v73) {
for (k = v68; k > 0; --k) {
v45 = _vm->_linesManager.Ligne[v69].fieldC;
- v46 = READ_LE_UINT16(v45 + 4 * k);
- int v45_2 = READ_LE_UINT16(v45 + 4 * k + 2);
+ v46 = (int16)READ_LE_UINT16(v45 + 4 * k);
+ int v45_2 = (int16)READ_LE_UINT16(v45 + 4 * k + 2);
v47 = v67;
_vm->_globals.super_parcours[v47] = v46;
_vm->_globals.super_parcours[v47 + 1] = v45_2;
@@ -3180,8 +3180,8 @@ LABEL_88:
for (l = v69 - 1; l > v73; --l) {
v48 = l;
if (_vm->_linesManager.PLAN_TEST(
- READ_LE_UINT16(_vm->_linesManager.Ligne[l].fieldC + 4 * _vm->_linesManager.Ligne[v48].field0 - 4),
- READ_LE_UINT16(_vm->_linesManager.Ligne[l].fieldC + 4 * _vm->_linesManager.Ligne[v48].field0 - 2),
+ (int16)READ_LE_UINT16(_vm->_linesManager.Ligne[l].fieldC + 4 * _vm->_linesManager.Ligne[v48].field0 - 4),
+ (int16)READ_LE_UINT16(_vm->_linesManager.Ligne[l].fieldC + 4 * _vm->_linesManager.Ligne[v48].field0 - 2),
v67,
l,
v73,
@@ -3191,8 +3191,8 @@ LABEL_88:
if ((_vm->_linesManager.Ligne[v48].field0 - 2) > 0) {
do {
v50 = _vm->_linesManager.Ligne[l].fieldC;
- v51 = READ_LE_UINT16(v50 + 4 * v49);
- int v50_2 = READ_LE_UINT16(v50 + 4 * v49 + 2);
+ v51 = (int16)READ_LE_UINT16(v50 + 4 * v49);
+ int v50_2 = (int16)READ_LE_UINT16(v50 + 4 * v49 + 2);
v52 = v67;
_vm->_globals.super_parcours[v52] = v51;
_vm->_globals.super_parcours[v52 + 1] = v50_2;
@@ -3212,8 +3212,8 @@ LABEL_88:
v57 = v68;
do {
v58 = _vm->_linesManager.Ligne[v73].fieldC;
- v59 = READ_LE_UINT16(v58 + 4 * v57);
- int v58_2 = READ_LE_UINT16(v58 + 4 * v57 + 2);
+ v59 = (int16)READ_LE_UINT16(v58 + 4 * v57);
+ int v58_2 = (int16)READ_LE_UINT16(v58 + 4 * v57 + 2);
v60 = v67;
_vm->_globals.super_parcours[v60] = v59;
_vm->_globals.super_parcours[v60 + 1] = v58_2;
@@ -3227,8 +3227,8 @@ LABEL_88:
v53 = v68;
do {
v54 = _vm->_linesManager.Ligne[v73].fieldC;
- v55 = READ_LE_UINT16(v54 + 4 * v53);
- int v54_2 = READ_LE_UINT16(v54 + 4 * v53 + 2);
+ v55 = (int16)READ_LE_UINT16(v54 + 4 * v53);
+ int v54_2 = (int16)READ_LE_UINT16(v54 + 4 * v53 + 2);
v56 = v67;
_vm->_globals.super_parcours[2 * v56] = v55;
_vm->_globals.super_parcours[2 * v56 + 1] = v54_2;
@@ -4002,9 +4002,9 @@ int ObjectsManager::Traduction(byte *a1) {
v70 = *(a1 + 6);
v2 = *(a1 + 7);
v69 = *(a1 + 8);
- v67 = READ_LE_UINT16(a1 + 9);
- v65 = READ_LE_UINT16(a1 + 11);
- v3 = READ_LE_UINT16(a1 + 13);
+ v67 = (int16)READ_LE_UINT16(a1 + 9);
+ v65 = (int16)READ_LE_UINT16(a1 + 11);
+ v3 = (int16)READ_LE_UINT16(a1 + 13);
v1 = 1;
if (!TRAVAILOBJET) {
if (_vm->_globals.SAUVEGARDE->data[svField356] == 1) {
@@ -4123,10 +4123,10 @@ LABEL_104:
v72 = *(a1 + 5);
v70 = *(a1 + 6);
v4 = *(a1 + 7);
- v68 = READ_LE_UINT16(a1 + 8);
- v66 = READ_LE_UINT16(a1 + 10);
+ v68 = (int16)READ_LE_UINT16(a1 + 8);
+ v66 = (int16)READ_LE_UINT16(a1 + 10);
if (v72 == 52) {
- _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, v68, READ_LE_UINT16(a1 + 10), v70);
+ _vm->_graphicsManager.AFFICHE_SPEED(_vm->_globals.SPRITE_ECRAN, v68, (int16)READ_LE_UINT16(a1 + 10), v70);
} else if (v72 == 51) {
BOB_VIVANT(v70);
} else {
@@ -4154,7 +4154,7 @@ LABEL_1141:
DEUXPERSO = 0;
v5 = *(a1 + 5);
v6 = *(a1 + 8);
- PERX = READ_LE_UINT16(a1 + 6);
+ PERX = (int16)READ_LE_UINT16(a1 + 6);
PERY = v6;
PERI = v5;
if (CH_TETE == 1) {
@@ -4240,14 +4240,14 @@ LABEL_1141:
}
if (*(a1 + 2) == 'B' && *(a1 + 3) == 'O' && *(a1 + 4) == 'F') {
if (DESACTIVE != 1)
- VBOB_OFF(READ_LE_UINT16(a1 + 5));
+ VBOB_OFF((int16)READ_LE_UINT16(a1 + 5));
v1 = 1;
}
if (*(a1 + 2) == 'P' && *(a1 + 3) == 'E' && *(a1 + 4) == 'R') {
- v73 = READ_LE_UINT16(a1 + 5);
+ v73 = (int16)READ_LE_UINT16(a1 + 5);
if (!_vm->_globals.SAUVEGARDE->data[svField122] && !_vm->_globals.SAUVEGARDE->data[svField356]) {
v70 = 0;
- if (READ_LE_UINT16(a1 + 5) == 14)
+ if ((int16)READ_LE_UINT16(a1 + 5) == 14)
v73 = 1;
if (v73 == 17)
v73 = 7;
@@ -4429,7 +4429,7 @@ LABEL_1141:
if (*(a1 + 2) == 'M' && *(a1 + 3) == 'U' && *(a1 + 4) == 'S')
v1 = 1;
if (*(a1 + 2) == 'W' && *(a1 + 3) == 'A' && *(a1 + 4) == 'I') {
- v74 = READ_LE_UINT16(a1 + 5) / _vm->_globals.vitesse;
+ v74 = (int16)READ_LE_UINT16(a1 + 5) / _vm->_globals.vitesse;
if (!v74)
v74 = 1;
v10 = 0;
@@ -4444,37 +4444,37 @@ LABEL_1141:
if (*(a1 + 2) == 'O') {
if (*(a1 + 3) == 'B' && *(a1 + 4) == 'P') {
v1 = 1;
- AJOUTE_OBJET(READ_LE_UINT16(a1 + 5));
+ AJOUTE_OBJET((int16)READ_LE_UINT16(a1 + 5));
}
if (*(a1 + 2) == 'O' && *(a1 + 3) == 'B' && *(a1 + 4) == 'M') {
v1 = 1;
- DELETE_OBJET(READ_LE_UINT16(a1 + 5));
+ DELETE_OBJET((int16)READ_LE_UINT16(a1 + 5));
}
}
if (*(a1 + 2) == 'G' && *(a1 + 3) == 'O' && *(a1 + 4) == 'T')
v1 = 2;
if (*(a1 + 2) == 'Z') {
if (*(a1 + 3) == 'O' && *(a1 + 4) == 'N') {
- ZONE_ON(READ_LE_UINT16(a1 + 5));
+ ZONE_ON((int16)READ_LE_UINT16(a1 + 5));
v1 = 1;
}
if (*(a1 + 2) == 'Z' && *(a1 + 3) == 'O' && *(a1 + 4) == 'F') {
- ZONE_OFF(READ_LE_UINT16(a1 + 5));
+ ZONE_OFF((int16)READ_LE_UINT16(a1 + 5));
v1 = 1;
}
}
if (*(a1 + 2) == 'E' && *(a1 + 3) == 'X' && *(a1 + 4) == 'I')
v1 = 5;
if (*(a1 + 2) == 'S' && *(a1 + 3) == 'O' && *(a1 + 4) == 'R') {
- _vm->_globals.SORTIE = READ_LE_UINT16(a1 + 5);
+ _vm->_globals.SORTIE = (int16)READ_LE_UINT16(a1 + 5);
v1 = 5;
}
if (*(a1 + 2) == 'B' && *(a1 + 3) == 'C' && *(a1 + 4) == 'A') {
- _vm->_globals.CACHE_OFF(READ_LE_UINT16(a1 + 5));
+ _vm->_globals.CACHE_OFF((int16)READ_LE_UINT16(a1 + 5));
v1 = 1;
}
if (*(a1 + 2) == 'A' && *(a1 + 3) == 'N' && *(a1 + 4) == 'I') {
- v75 = READ_LE_UINT16(a1 + 5);
+ v75 = (int16)READ_LE_UINT16(a1 + 5);
if (v75 <= 100)
BOBANIM_ON(v75);
else
@@ -4482,7 +4482,7 @@ LABEL_1141:
v1 = 1;
}
if (*(a1 + 2) == 'S' && *(a1 + 3) == 'P' && *(a1 + 4) == 'E') {
- v76 = READ_LE_UINT16(a1 + 5);
+ v76 = (int16)READ_LE_UINT16(a1 + 5);
if (v76 == 7)
_vm->_talkManager.PARLER_PERSO("rueh1.pe2");
if (v76 == 8)
@@ -6051,32 +6051,32 @@ LABEL_1141:
v1 = 4;
if (*(a1 + 2) == 'V' && *(a1 + 3) == 'A' && *(a1 + 4) == 'L') {
v1 = 1;
- _vm->_globals.SAUVEGARDE->data[READ_LE_UINT16(a1 + 5)] = READ_LE_UINT16(a1 + 7);
+ _vm->_globals.SAUVEGARDE->data[(int16)READ_LE_UINT16(a1 + 5)] = (int16)READ_LE_UINT16(a1 + 7);
}
if (*(a1 + 2) == 'A' && *(a1 + 3) == 'D' && *(a1 + 4) == 'D') {
v1 = 1;
- _vm->_globals.SAUVEGARDE->data[READ_LE_UINT16(a1 + 5)] += *(a1 + 7);
+ _vm->_globals.SAUVEGARDE->data[(int16)READ_LE_UINT16(a1 + 5)] += *(a1 + 7);
}
if (*(a1 + 2) == 'B' && *(a1 + 3) == 'O' && *(a1 + 4) == 'S') {
v1 = 1;
- BOB_OFFSET(READ_LE_UINT16(a1 + 5), READ_LE_UINT16(a1 + 7));
+ BOB_OFFSET((int16)READ_LE_UINT16(a1 + 5), (int16)READ_LE_UINT16(a1 + 7));
}
if (*(a1 + 2) == 'V' && *(a1 + 3) == 'O' && *(a1 + 4) == 'N') {
- VERBE_ON(READ_LE_UINT16(a1 + 5), READ_LE_UINT16(a1 + 7));
+ VERBE_ON((int16)READ_LE_UINT16(a1 + 5), (int16)READ_LE_UINT16(a1 + 7));
v1 = 1;
}
if (*(a1 + 2) == 'Z' && *(a1 + 3) == 'C' && *(a1 + 4) == 'H') {
- _vm->_globals.ZONEP[READ_LE_UINT16(a1 + 5)].field12 = READ_LE_UINT16(a1 + 7);
+ _vm->_globals.ZONEP[(int16)READ_LE_UINT16(a1 + 5)].field12 = (int16)READ_LE_UINT16(a1 + 7);
v1 = 1;
}
if (*(a1 + 2) == 'J' && *(a1 + 3) == 'U' && *(a1 + 4) == 'M') {
- v59 = READ_LE_UINT16(a1 + 7);
- NVZONE = READ_LE_UINT16(a1 + 5);
+ v59 = (int16)READ_LE_UINT16(a1 + 7);
+ NVZONE = (int16)READ_LE_UINT16(a1 + 5);
NVVERBE = v59;
v1 = 6;
}
if (*(a1 + 2) == 'S' && *(a1 + 3) == 'O' && *(a1 + 4) == 'U') {
- v60 = READ_LE_UINT16(a1 + 5);
+ v60 = (int16)READ_LE_UINT16(a1 + 5);
memset(&s, 0, 0x13u);
v77 = Common::String::format("SOUND%d.WAV", v60);
@@ -6084,7 +6084,7 @@ LABEL_1141:
v1 = 1;
}
if (*(a1 + 2) == 'V' && *(a1 + 3) == 'O' && *(a1 + 4) == 'F') {
- VERBE_OFF(READ_LE_UINT16(a1 + 5), READ_LE_UINT16(a1 + 7));
+ VERBE_OFF((int16)READ_LE_UINT16(a1 + 5), (int16)READ_LE_UINT16(a1 + 7));
v1 = 1;
}
if (*(a1 + 2) == 'I' && *(a1 + 3) == 'I' && *(a1 + 4) == 'F') {
@@ -6101,10 +6101,10 @@ void ObjectsManager::BOB_VIVANT(int idx) {
int v4;
v1 = 5 * idx;
- v2 = READ_LE_UINT16(_vm->_talkManager.ADR_ANIM + 2 * v1);
- v3 = READ_LE_UINT16(_vm->_talkManager.ADR_ANIM + 2 * v1 + 2);
+ v2 = (int16)READ_LE_UINT16(_vm->_talkManager.ADR_ANIM + 2 * v1);
+ v3 = (int16)READ_LE_UINT16(_vm->_talkManager.ADR_ANIM + 2 * v1 + 2);
v4 = *(_vm->_talkManager.ADR_ANIM + 2 * v1 + 8);
- if (READ_LE_UINT16(_vm->_talkManager.ADR_ANIM + 2 * v1 + 4)) {
+ if ((int16)READ_LE_UINT16(_vm->_talkManager.ADR_ANIM + 2 * v1 + 4)) {
if (!_vm->_globals.NO_OFFSET)
_vm->_graphicsManager.AFFICHE_SPEED(_vm->_talkManager.PERSOSPR,
_vm->_graphicsManager.ofscroll + v2, v3,
@@ -6478,7 +6478,7 @@ void ObjectsManager::INILINK(const Common::String &file) {
}
if (!OBSSEUL) {
for (int idx = 0; idx < 500; ++idx)
- _vm->_globals.STAILLE[idx] = READ_LE_UINT16((uint16 *)ptr + idx);
+ _vm->_globals.STAILLE[idx] = (int16)READ_LE_UINT16((uint16 *)ptr + idx);
_vm->_globals.RESET_CACHE();
@@ -6501,12 +6501,12 @@ void ObjectsManager::INILINK(const Common::String &file) {
v40 = 0;
do {
- v8 = READ_LE_UINT16(v37 + 2 * v36);
- v9 = READ_LE_UINT16(v37 + 2 * v36 + 2);
- v10 = READ_LE_UINT16(v37 + 2 * v36 + 4);
+ v8 = (int16)READ_LE_UINT16(v37 + 2 * v36);
+ v9 = (int16)READ_LE_UINT16(v37 + 2 * v36 + 2);
+ v10 = (int16)READ_LE_UINT16(v37 + 2 * v36 + 4);
v11 = v40;
- _vm->_globals.Cache[v11].field14 = READ_LE_UINT16(v37 + 2 * v36 + 8);
+ _vm->_globals.Cache[v11].field14 = (int16)READ_LE_UINT16(v37 + 2 * v36 + 8);
_vm->_globals.Cache[v11].field2 = v8;
_vm->_globals.Cache[v11].field0 = v9;
_vm->_globals.Cache[v11].field4 = v10;
@@ -6544,15 +6544,15 @@ void ObjectsManager::INILINK(const Common::String &file) {
v34 = 0;
_vm->_linesManager.TOTAL_LIGNES = 0;
do {
- v27 = (int16)READ_LE_UINT16(v16 + 2 * v32);
+ v27 = (int16)(int16)READ_LE_UINT16(v16 + 2 * v32);
if (v27 != -1) {
_vm->_linesManager.AJOUTE_LIGNE(
v34,
v27,
- READ_LE_UINT16(v16 + 2 * v32 + 2),
- READ_LE_UINT16(v16 + 2 * v32 + 4),
- READ_LE_UINT16(v16 + 2 * v32 + 6),
- READ_LE_UINT16(v16 + 2 * v32 + 8),
+ (int16)READ_LE_UINT16(v16 + 2 * v32 + 2),
+ (int16)READ_LE_UINT16(v16 + 2 * v32 + 4),
+ (int16)READ_LE_UINT16(v16 + 2 * v32 + 6),
+ (int16)READ_LE_UINT16(v16 + 2 * v32 + 8),
1);
++_vm->_linesManager.TOTAL_LIGNES;
}
@@ -6594,14 +6594,14 @@ void ObjectsManager::INILINK(const Common::String &file) {
v31 = 0;
do {
- v28 = (int16)READ_LE_UINT16(v17 + 2 * v33);
+ v28 = (int16)(int16)READ_LE_UINT16(v17 + 2 * v33);
if (v28 != -1) {
_vm->_linesManager.AJOUTE_LIGNE_ZONE(
v35,
- READ_LE_UINT16(v17 + 2 * v33 + 2),
- READ_LE_UINT16(v17 + 2 * v33 + 4),
- READ_LE_UINT16(v17 + 2 * v33 + 6),
- READ_LE_UINT16(v17 + 2 * v33 + 8),
+ (int16)READ_LE_UINT16(v17 + 2 * v33 + 2),
+ (int16)READ_LE_UINT16(v17 + 2 * v33 + 4),
+ (int16)READ_LE_UINT16(v17 + 2 * v33 + 6),
+ (int16)READ_LE_UINT16(v17 + 2 * v33 + 8),
v28);
_vm->_globals.ZONEP[v28].field10 = 1;
}
@@ -6612,9 +6612,9 @@ void ObjectsManager::INILINK(const Common::String &file) {
v20 = 1;
do {
v21 = v20;
- _vm->_globals.ZONEP[v21].field0 = READ_LE_UINT16(v17 + 2 * v33);
- _vm->_globals.ZONEP[v21].field2 = READ_LE_UINT16(v17 + 2 * v33 + 2);
- _vm->_globals.ZONEP[v21].field4 = READ_LE_UINT16(v17 + 2 * v33 + 4);
+ _vm->_globals.ZONEP[v21].field0 = (int16)READ_LE_UINT16(v17 + 2 * v33);
+ _vm->_globals.ZONEP[v21].field2 = (int16)READ_LE_UINT16(v17 + 2 * v33 + 2);
+ _vm->_globals.ZONEP[v21].field4 = (int16)READ_LE_UINT16(v17 + 2 * v33 + 4);
v33 += 3;
++v20;
} while (v20 <= 100);
@@ -6640,7 +6640,7 @@ void ObjectsManager::INILINK(const Common::String &file) {
v30 = 0;
v25 = 1;
do
- _vm->_globals.ZONEP[v25].field12 = READ_LE_UINT16(v22 + 1010 + 2 * v30++);
+ _vm->_globals.ZONEP[v25].field12 = (int16)READ_LE_UINT16(v22 + 1010 + 2 * v30++);
while (++v25 <= 100);
CARRE_ZONE();
}
@@ -6796,7 +6796,7 @@ void ObjectsManager::SCI_OPTI_ONE(int a1, int a2, int a3, int a4) {
}
int ObjectsManager::Control_Goto(const byte *dataP) {
- return READ_LE_UINT16(dataP + 5);
+ return (int16)READ_LE_UINT16(dataP + 5);
}
int ObjectsManager::Control_If(const byte *dataP, int a2) {
@@ -6849,10 +6849,10 @@ LABEL_2:
v9 = *(v8 + 13);
v17 = *(v8 + 14);
v16 = *(v8 + 15);
- v10 = READ_LE_UINT16(v8 + 5);
- v11 = READ_LE_UINT16(v8 + 7);
- v19 = READ_LE_UINT16(v8 + 9);
- v18 = READ_LE_UINT16(v8 + 11);
+ v10 = (int16)READ_LE_UINT16(v8 + 5);
+ v11 = (int16)READ_LE_UINT16(v8 + 7);
+ v19 = (int16)READ_LE_UINT16(v8 + 9);
+ v18 = (int16)READ_LE_UINT16(v8 + 11);
v14 = 0;
v15 = 0;
if (v9 == 1 && _vm->_globals.SAUVEGARDE->data[v10] == v11)
@@ -7157,10 +7157,10 @@ int ObjectsManager::colision(int a1, int a2) {
byte *srcP = _vm->_linesManager.LigneZone[v8].field4;
if (srcP != g_PTRNUL) {
bool flag = true;
- int v11 = READ_LE_UINT16(srcP + _vm->_linesManager.LigneZone[v8].field0 * 2);
- int dataV2 = READ_LE_UINT16(srcP + _vm->_linesManager.LigneZone[v8].field0 * 2 + 2);
- int v12 = READ_LE_UINT16(srcP + _vm->_linesManager.LigneZone[v8].field0 * 4 - 4);
- int v13 = READ_LE_UINT16(srcP + _vm->_linesManager.LigneZone[v8].field0 * 4 - 2);
+ int v11 = (int16)READ_LE_UINT16(srcP + _vm->_linesManager.LigneZone[v8].field0 * 2);
+ int dataV2 = (int16)READ_LE_UINT16(srcP + _vm->_linesManager.LigneZone[v8].field0 * 2 + 2);
+ int v12 = (int16)READ_LE_UINT16(srcP + _vm->_linesManager.LigneZone[v8].field0 * 4 - 4);
+ int v13 = (int16)READ_LE_UINT16(srcP + _vm->_linesManager.LigneZone[v8].field0 * 4 - 2);
int v10 = v13;
if (v11 < v12 && v4 >= v11 && v5 > v13)
@@ -7176,8 +7176,8 @@ int ObjectsManager::colision(int a1, int a2) {
if (!flag) {
if (v11 < _vm->_linesManager.LigneZone[v8].field0) {
for (; v11 < _vm->_linesManager.LigneZone[v8].field0; ++idx) {
- int v11 = READ_LE_UINT16(srcP);
- int v12 = READ_LE_UINT16(srcP + 2);
+ int v11 = (int16)READ_LE_UINT16(srcP);
+ int v12 = (int16)READ_LE_UINT16(srcP + 2);
srcP += 4;
if ((v2 == v11 || v9 == v11) && a2 == v12)
diff --git a/engines/hopkins/talk.cpp b/engines/hopkins/talk.cpp
index 589183157a..dc2f8d045c 100644
--- a/engines/hopkins/talk.cpp
+++ b/engines/hopkins/talk.cpp
@@ -78,9 +78,9 @@ void TalkManager::PARLER_PERSO(const Common::String &filename) {
} else if (_vm->_globals.FR == 2) {
FREPON = FQUEST = "RUEES.TXT";
}
- v2 = READ_LE_UINT16((uint16 *)BUFFERPERSO + 40);
- v3 = 20 * READ_LE_UINT16((uint16 *)BUFFERPERSO + 42) + 110;
- PCHERCHE = 20 * READ_LE_UINT16((uint16 *)BUFFERPERSO + 42) + 110;
+ v2 = (int16)READ_LE_UINT16((uint16 *)BUFFERPERSO + 40);
+ v3 = 20 * (int16)READ_LE_UINT16((uint16 *)BUFFERPERSO + 42) + 110;
+ PCHERCHE = 20 * (int16)READ_LE_UINT16((uint16 *)BUFFERPERSO + 42) + 110;
PERSOSPR = _vm->_fileManager.RECHERCHE_CAT(v16, 7);
if (PERSOSPR) {
_vm->_globals.CAT_FLAG = 0;
@@ -218,8 +218,8 @@ void TalkManager::PARLER_PERSO2(const Common::String &filename) {
break;
}
- v1 = READ_LE_UINT16((uint16 *)BUFFERPERSO + 40);
- PCHERCHE = 20 * READ_LE_UINT16((uint16 *)BUFFERPERSO + 42) + 110;
+ v1 = (int16)READ_LE_UINT16((uint16 *)BUFFERPERSO + 40);
+ PCHERCHE = 20 * (int16)READ_LE_UINT16((uint16 *)BUFFERPERSO + 42) + 110;
CHERCHE_PAL(PCHERCHE, 0);
PLIGNE1 = v1;
PLIGNE2 = v1 + 1;
@@ -288,17 +288,17 @@ int TalkManager::DIALOGUE() {
if (STATI) {
v0 = BUFFERPERSO;
- v1 = READ_LE_UINT16((uint16 *)BUFFERPERSO + 48);
+ v1 = (int16)READ_LE_UINT16((uint16 *)BUFFERPERSO + 48);
if (v1)
_vm->_objectsManager.BOBANIM_ON(v1);
- if (READ_LE_UINT16((uint16 *)v0 + 48) != 1)
- _vm->_objectsManager.BOBANIM_ON(READ_LE_UINT16((uint16 *)v0 + 49));
- if (READ_LE_UINT16((uint16 *)v0 + 48) != 2)
- _vm->_objectsManager.BOBANIM_ON(READ_LE_UINT16((uint16 *)v0 + 50));
- if ( READ_LE_UINT16((uint16 *)v0 + 48) != 3)
- _vm->_objectsManager.BOBANIM_ON(READ_LE_UINT16((uint16 *)v0 + 51));
- if (READ_LE_UINT16((uint16 *)v0 + 48) != 4)
- _vm->_objectsManager.BOBANIM_ON(READ_LE_UINT16((uint16 *)v0 + 52));
+ if ((int16)READ_LE_UINT16((uint16 *)v0 + 48) != 1)
+ _vm->_objectsManager.BOBANIM_ON((int16)READ_LE_UINT16((uint16 *)v0 + 49));
+ if ((int16)READ_LE_UINT16((uint16 *)v0 + 48) != 2)
+ _vm->_objectsManager.BOBANIM_ON((int16)READ_LE_UINT16((uint16 *)v0 + 50));
+ if ( (int16)READ_LE_UINT16((uint16 *)v0 + 48) != 3)
+ _vm->_objectsManager.BOBANIM_ON((int16)READ_LE_UINT16((uint16 *)v0 + 51));
+ if ((int16)READ_LE_UINT16((uint16 *)v0 + 48) != 4)
+ _vm->_objectsManager.BOBANIM_ON((int16)READ_LE_UINT16((uint16 *)v0 + 52));
} else {
VISU_WAIT();
}
@@ -361,19 +361,19 @@ int TalkManager::DIALOGUE() {
if (STATI) {
v11 = BUFFERPERSO;
- v12 = READ_LE_UINT16((uint16 *)BUFFERPERSO + 48);
+ v12 = (int16)READ_LE_UINT16((uint16 *)BUFFERPERSO + 48);
if (v12)
_vm->_objectsManager.BOBANIM_OFF(v12);
- v13 = READ_LE_UINT16((uint16 *)v11 + 49);
+ v13 = (int16)READ_LE_UINT16((uint16 *)v11 + 49);
if (v13 != 1)
_vm->_objectsManager.BOBANIM_OFF(v13);
- v14 = READ_LE_UINT16((uint16 *)v11 + 50);
+ v14 = (int16)READ_LE_UINT16((uint16 *)v11 + 50);
if (v14 != 2)
_vm->_objectsManager.BOBANIM_OFF(v14);
- v15 = READ_LE_UINT16((uint16 *)v11 + 51);
+ v15 = (int16)READ_LE_UINT16((uint16 *)v11 + 51);
if (v15 != 3)
_vm->_objectsManager.BOBANIM_OFF(v15);
- v16 = READ_LE_UINT16((uint16 *)v11 + 52);
+ v16 = (int16)READ_LE_UINT16((uint16 *)v11 + 52);
if (v16 != 4)
_vm->_objectsManager.BOBANIM_OFF(v16);
} else {
@@ -413,9 +413,9 @@ int TalkManager::DIALOGUE_REP(int idx) {
v1 = 0;
v2 = 0;
v3 = BUFFERPERSO + 110;
- for (i = idx; READ_LE_UINT16(v3) != idx; v3 = BUFFERPERSO + 20 * v1 + 110) {
+ for (i = idx; (int16)READ_LE_UINT16(v3) != idx; v3 = BUFFERPERSO + 20 * v1 + 110) {
++v1;
- if (READ_LE_UINT16((uint16 *)BUFFERPERSO + 42) < v1)
+ if ((int16)READ_LE_UINT16((uint16 *)BUFFERPERSO + 42) < v1)
v2 = 1;
if (v2 == 1)
return -1;
@@ -424,16 +424,16 @@ int TalkManager::DIALOGUE_REP(int idx) {
if (v2 == 1)
return -1;
- v22 = READ_LE_UINT16((uint16 *)v3 + 1);
- v25 = READ_LE_UINT16((uint16 *)v3 + 2);
- v24 = READ_LE_UINT16((uint16 *)v3 + 3);
- i = READ_LE_UINT16((uint16 *)v3 + 4);
- v23 = READ_LE_UINT16((uint16 *)v3 + 4);
- PLIGNE1 = READ_LE_UINT16((uint16 *)v3 + 5);
- PLIGNE2 = READ_LE_UINT16((uint16 *)v3 + 6);
- PLIGNE3 = READ_LE_UINT16((uint16 *)v3 + 7);
- v6 = READ_LE_UINT16((uint16 *)v3 + 8);
- v7 = READ_LE_UINT16((uint16 *)v3 + 9);
+ v22 = (int16)READ_LE_UINT16((uint16 *)v3 + 1);
+ v25 = (int16)READ_LE_UINT16((uint16 *)v3 + 2);
+ v24 = (int16)READ_LE_UINT16((uint16 *)v3 + 3);
+ i = (int16)READ_LE_UINT16((uint16 *)v3 + 4);
+ v23 = (int16)READ_LE_UINT16((uint16 *)v3 + 4);
+ PLIGNE1 = (int16)READ_LE_UINT16((uint16 *)v3 + 5);
+ PLIGNE2 = (int16)READ_LE_UINT16((uint16 *)v3 + 6);
+ PLIGNE3 = (int16)READ_LE_UINT16((uint16 *)v3 + 7);
+ v6 = (int16)READ_LE_UINT16((uint16 *)v3 + 8);
+ v7 = (int16)READ_LE_UINT16((uint16 *)v3 + 9);
if (v7)
_vm->_globals.SAUVEGARDE->data[svField4] = v7;
@@ -442,19 +442,19 @@ int TalkManager::DIALOGUE_REP(int idx) {
v6 = 10;
if (STATI) {
v8 = BUFFERPERSO;
- v9 = READ_LE_UINT16((uint16 *)BUFFERPERSO + 43);
+ v9 = (int16)READ_LE_UINT16((uint16 *)BUFFERPERSO + 43);
if (v9)
_vm->_objectsManager.BOBANIM_ON(v9);
- v10 = READ_LE_UINT16((uint16 *)v8 + 44);
+ v10 = (int16)READ_LE_UINT16((uint16 *)v8 + 44);
if (v10)
_vm->_objectsManager.BOBANIM_ON(v10);
- v11 = READ_LE_UINT16((uint16 *)v8 + 45);
+ v11 = (int16)READ_LE_UINT16((uint16 *)v8 + 45);
if (v11)
_vm->_objectsManager.BOBANIM_ON(v11);
- v12 = READ_LE_UINT16((uint16 *)v8 + 46);
+ v12 = (int16)READ_LE_UINT16((uint16 *)v8 + 46);
if (v12)
_vm->_objectsManager.BOBANIM_ON(v12);
- v13 = READ_LE_UINT16((uint16 *)v8 + 47);
+ v13 = (int16)READ_LE_UINT16((uint16 *)v8 + 47);
if (v13)
_vm->_objectsManager.BOBANIM_ON(v13);
} else {
@@ -480,19 +480,19 @@ int TalkManager::DIALOGUE_REP(int idx) {
_vm->_fontManager.TEXTE_OFF(9);
if (STATI) {
v15 = BUFFERPERSO;
- v16 = READ_LE_UINT16((uint16 *)BUFFERPERSO + 43);
+ v16 = (int16)READ_LE_UINT16((uint16 *)BUFFERPERSO + 43);
if (v16)
_vm->_objectsManager.BOBANIM_OFF(v16);
- v17 = READ_LE_UINT16((uint16 *)v15 + 44);
+ v17 = (int16)READ_LE_UINT16((uint16 *)v15 + 44);
if (v17)
_vm->_objectsManager.BOBANIM_OFF(v17);
- v18 = READ_LE_UINT16((uint16 *)v15 + 45);
+ v18 = (int16)READ_LE_UINT16((uint16 *)v15 + 45);
if (v18)
_vm->_objectsManager.BOBANIM_OFF(v18);
- v19 = READ_LE_UINT16((uint16 *)v15 + 46);
+ v19 = (int16)READ_LE_UINT16((uint16 *)v15 + 46);
if (v19)
_vm->_objectsManager.BOBANIM_OFF(v19);
- v20 = READ_LE_UINT16((uint16 *)v15 + 47);
+ v20 = (int16)READ_LE_UINT16((uint16 *)v15 + 47);
if (v20)
_vm->_objectsManager.BOBANIM_OFF(v20);
} else {
@@ -718,10 +718,10 @@ void TalkManager::BOB_VISU_PARLE(int idx) {
if (!_vm->_globals.Bob[idx].field0) {
_vm->_objectsManager.BOB_ZERO(idx);
v5 = _vm->_globals.Bqe_Anim[idx].data;
- v4 = READ_LE_UINT16(v5 + 2);
+ v4 = (int16)READ_LE_UINT16(v5 + 2);
if (!v4)
v4 = 1;
- if (READ_LE_UINT16(v5 + 24)) {
+ if ((int16)READ_LE_UINT16(v5 + 24)) {
_vm->_globals.Bob[idx].field3A = 1;
_vm->_globals.Bob[idx].field36 = 0;
_vm->_globals.Bob[idx].field38 = 0;
@@ -772,10 +772,10 @@ void TalkManager::CHERCHE_ANIM0(int a1, int a2) {
if (!a2) {
v6 = 0;
do {
- v7 = READ_LE_UINT16(&v8[2 * v6 + 4]);
+ v7 = (int16)READ_LE_UINT16(&v8[2 * v6 + 4]);
if (v7 && _vm->_globals.vitesse != 501)
- _vm->_graphicsManager.AFFICHE_SPEED(PERSOSPR, _vm->_eventsManager.start_x + READ_LE_UINT16(&v8[2 * v6]),
- READ_LE_UINT16(&v8[2 * v6 + 2]), v9[2 * v6 + 8]);
+ _vm->_graphicsManager.AFFICHE_SPEED(PERSOSPR, _vm->_eventsManager.start_x + (int16)READ_LE_UINT16(&v8[2 * v6]),
+ (int16)READ_LE_UINT16(&v8[2 * v6 + 2]), v9[2 * v6 + 8]);
v6 += 5;
} while (_vm->_globals.vitesse != 501 && v7);
}
@@ -797,34 +797,34 @@ void TalkManager::ANIM_PERSO_INIT() {
v0 = BUFFERPERSO;
v1 = BUFFERPERSO + 110;
- v2 = READ_LE_UINT16((uint16 *)BUFFERPERSO + 43);
+ v2 = (int16)READ_LE_UINT16((uint16 *)BUFFERPERSO + 43);
if (v2)
RECHERCHE_ANIM_PERSO(21, (BUFFERPERSO + 110), v2, TAILLEPERSO);
- v4 = READ_LE_UINT16((uint16 *)v0 + 44);
+ v4 = (int16)READ_LE_UINT16((uint16 *)v0 + 44);
if (v4)
RECHERCHE_ANIM_PERSO(22, v1, v4, TAILLEPERSO);
- v5 = READ_LE_UINT16((uint16 *)v0 + 45);
+ v5 = (int16)READ_LE_UINT16((uint16 *)v0 + 45);
if (v5)
RECHERCHE_ANIM_PERSO(23, v1, v5, TAILLEPERSO);
- v6 = READ_LE_UINT16((uint16 *)v0 + 46);
+ v6 = (int16)READ_LE_UINT16((uint16 *)v0 + 46);
if (v6)
RECHERCHE_ANIM_PERSO(24, v1, v6, TAILLEPERSO);
- v7 = READ_LE_UINT16((uint16 *)v0 + 47);
+ v7 = (int16)READ_LE_UINT16((uint16 *)v0 + 47);
if (v7)
RECHERCHE_ANIM_PERSO(25, v1, v7, TAILLEPERSO);
- v8 = READ_LE_UINT16((uint16 *)v0 + 48);
+ v8 = (int16)READ_LE_UINT16((uint16 *)v0 + 48);
if (v8)
RECHERCHE_ANIM_PERSO(26, v1, v8, TAILLEPERSO);
- v9 = READ_LE_UINT16((uint16 *)v0 + 49);
+ v9 = (int16)READ_LE_UINT16((uint16 *)v0 + 49);
if (v9)
RECHERCHE_ANIM_PERSO(27, v1, v9, TAILLEPERSO);
- v10 = READ_LE_UINT16((uint16 *)v0 + 50);
+ v10 = (int16)READ_LE_UINT16((uint16 *)v0 + 50);
if (v10)
RECHERCHE_ANIM_PERSO(28, v1, v10, TAILLEPERSO);
- v11 = READ_LE_UINT16((uint16 *)v0 + 51);
+ v11 = (int16)READ_LE_UINT16((uint16 *)v0 + 51);
if (v11)
RECHERCHE_ANIM_PERSO(29, v1, v11, TAILLEPERSO);
- v12 = READ_LE_UINT16((uint16 *)v0 + 52);
+ v12 = (int16)READ_LE_UINT16((uint16 *)v0 + 52);
if (v12)
RECHERCHE_ANIM_PERSO(30, v1, v12, TAILLEPERSO);
}
@@ -893,10 +893,10 @@ bool TalkManager::RECHERCHE_ANIM_PERSO(int a1, const byte *bufPerso, int a3, int
v9 = v8 + 20;
v24 = v22 + bufPerso + 25;
- v10 = READ_LE_UINT16(v22 + bufPerso + 25);
- v11 = READ_LE_UINT16(v22 + bufPerso + 27);
- v23 = READ_LE_UINT16(v22 + bufPerso + 29);
- v12 = READ_LE_UINT16(v22 + bufPerso + 31);
+ v10 = (int16)READ_LE_UINT16(v22 + bufPerso + 25);
+ v11 = (int16)READ_LE_UINT16(v22 + bufPerso + 27);
+ v23 = (int16)READ_LE_UINT16(v22 + bufPerso + 29);
+ v12 = (int16)READ_LE_UINT16(v22 + bufPerso + 31);
v13 = *(v22 + bufPerso + 33);
*(v8 + 29) = *(v22 + bufPerso + 34);
WRITE_LE_UINT16(v8 + 20, v10);
@@ -910,10 +910,10 @@ bool TalkManager::RECHERCHE_ANIM_PERSO(int a1, const byte *bufPerso, int a3, int
v24 += 10;
if (!v23)
break;
- v14 = READ_LE_UINT16(v24);
- v15 = READ_LE_UINT16(v24 + 2);
- v23 = READ_LE_UINT16(v24 + 4);
- v16 = READ_LE_UINT16(v24 + 6);
+ v14 = (int16)READ_LE_UINT16(v24);
+ v15 = (int16)READ_LE_UINT16(v24 + 2);
+ v23 = (int16)READ_LE_UINT16(v24 + 4);
+ v16 = (int16)READ_LE_UINT16(v24 + 6);
v17 = *(v24 + 8);
*(v9 + 9) = *(v24 + 9);
WRITE_LE_UINT16(v9, v14);
@@ -1217,8 +1217,8 @@ void TalkManager::OBJET_VIVANT(const Common::String &a2) {
if (!_vm->_graphicsManager.nbrligne)
_vm->_graphicsManager.ofscroll = 0;
_vm->_graphicsManager.NB_SCREEN();
- v10 = 20 * READ_LE_UINT16((uint16 *)BUFFERPERSO + 42) + 110;
- PCHERCHE = 20 * READ_LE_UINT16((uint16 *)BUFFERPERSO + 42) + 110;
+ v10 = 20 * (int16)READ_LE_UINT16((uint16 *)BUFFERPERSO + 42) + 110;
+ PCHERCHE = 20 * (int16)READ_LE_UINT16((uint16 *)BUFFERPERSO + 42) + 110;
_vm->_graphicsManager.NB_SCREEN();
_vm->_objectsManager.PERSO_ON = 1;
CHERCHE_PAL(v10, 1);
@@ -1304,7 +1304,7 @@ void TalkManager::OBJET_VIVANT(const Common::String &a2) {
memcpy(_vm->_graphicsManager.VESA_BUFFER, _vm->_graphicsManager.VESA_SCREEN, 0x95FFCu);
v15 = v15 + 614396;
v14 = v14 + 614396;
- WRITE_LE_UINT16(v14, READ_LE_UINT16(v15));
+ WRITE_LE_UINT16(v14, (int16)READ_LE_UINT16(v15));
v14 = v14 + 2;
*v14 = *(v15 + 2);
v16 = v14 + 1;