diff options
author | Paul Gilbert | 2012-10-11 22:58:04 +1100 |
---|---|---|
committer | Paul Gilbert | 2012-10-11 22:58:04 +1100 |
commit | 721b619398af28037cc595300052af430b9b31a5 (patch) | |
tree | ed64118f048a6ca7998fb6b5d0abd02c5f1a1c3e /engines | |
parent | d8dd04130a3ea4018f26467f86a9e0bebe24bf5c (diff) | |
download | scummvm-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.cpp | 30 | ||||
-rw-r--r-- | engines/hopkins/font.cpp | 2 | ||||
-rw-r--r-- | engines/hopkins/globals.cpp | 8 | ||||
-rw-r--r-- | engines/hopkins/graphics.cpp | 38 | ||||
-rw-r--r-- | engines/hopkins/lines.cpp | 250 | ||||
-rw-r--r-- | engines/hopkins/menu.cpp | 2 | ||||
-rw-r--r-- | engines/hopkins/objects.cpp | 244 | ||||
-rw-r--r-- | engines/hopkins/talk.cpp | 134 |
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; |