diff options
author | Eugene Sandulenko | 2011-12-26 17:32:59 +0000 |
---|---|---|
committer | Strangerke | 2012-04-06 08:18:14 +0200 |
commit | e6a0c23d2c57461305906cb4c62b2b6962915264 (patch) | |
tree | e3300420f52afca4ec48c54a6d3b83b6b6a67697 /engines/mortevielle/taffich.cpp | |
parent | 9b6a4264dcaa26d87fa099c0a0dadbb8e37a6241 (diff) | |
download | scummvm-rg350-e6a0c23d2c57461305906cb4c62b2b6962915264.tar.gz scummvm-rg350-e6a0c23d2c57461305906cb4c62b2b6962915264.tar.bz2 scummvm-rg350-e6a0c23d2c57461305906cb4c62b2b6962915264.zip |
MORTEVIELLE: Rename *.h -> *.cpp where they really belong
Diffstat (limited to 'engines/mortevielle/taffich.cpp')
-rw-r--r-- | engines/mortevielle/taffich.cpp | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/engines/mortevielle/taffich.cpp b/engines/mortevielle/taffich.cpp new file mode 100644 index 0000000000..00203118d8 --- /dev/null +++ b/engines/mortevielle/taffich.cpp @@ -0,0 +1,196 @@ +void chardes(str11 nom, long_integer passe, integer long_) { + integer i, p, l; + byte b; + untyped_file f; + + /* debug('chardes'); */ + assign(f, nom); + /*$i-*/ + reset(f); + testfi(); + p = 0; + while (passe > 127) { + p = p + 1; + passe = passe - 128; + } + if (p != 0) seek(f, p); + p = trunc(passe); + l = long_ + p; + i = 0; + while (l > 0) { + blockread(f, mem[0x6000 + i], 1); + testfi(); + l = l - 128; + i = i + 128; + } + close(f); + for (i = p; i <= long_ + p; i ++) mem[0x7000 + i - p] = mem[0x6000 + i]; + /*$i+*/ +} + +void charani(str11 nom, long_integer passe, integer long_) { + integer i, p, l; + byte b; + untyped_file f; + + /* debug('charani'); */ + assign(f, nom); + /*$i-*/ + reset(f); + testfi(); + p = 0; + while (passe > 127) { + passe = passe - 128; + p = p + 1; + } + if (p != 0) seek(f, p); + p = trunc(passe); + l = long_ + p; + i = 0; + while (l > 0) { + blockread(f, mem[0x6000 + i], 1); + testfi(); + l = l - 128; + i = i + 128; + } + close(f); + for (i = p; i <= long_ + p; i ++) mem[0x7314 + i - p] = mem[0x6000 + i]; + /*$i+*/ +} + +void taffich() { + const array<136, 140, byte> tran1 + = {{ 121, 121, 138, 139, 120 }}; + const array<153, 161, byte> tran2 + = {{ + 150, 150, 152, 152, 100, + 110, 159, 100, 100 + } + }; + integer i, m, a, b, cx, handle, + npal; + long_integer lgt, lhandle; + str11 nom; + integer palh, k, j; + array<0, 15, integer> alllum; + + + a = caff; + if (set::of(range(153, 161), eos).has(a)) a = tran2[a]; + else if (set::of(range(136, 140), eos).has(a)) a = tran1[a]; + b = a; + if (maff == a) return; + if (a == 16) { + s.pourc[9] = '*'; + s.teauto[42] = '*'; + } + if (a == 20) { + s.teauto[39] = '*'; + if (s.teauto[36] == '*') { + s.pourc[3] = '*'; + s.teauto[38] = '*'; + } + } + if (a == 24) s.teauto[37] = '*'; + if (a == 30) s.teauto[9] = '*'; + if (a == 31) { + s.pourc[4] = '*'; + s.teauto[35] = '*'; + } + if (a == 118) s.teauto[41] = '*'; + if (a == 143) s.pourc[1] = '*'; + if (a == 150) s.teauto[34] = '*'; + if (a == 151) s.pourc[2] = '*'; + okdes = true; + hide_mouse(); + lgt = 0; + if ((a != 50) && (a != 51)) { + m = a + 2000; + if ((m > 2001) && (m < 2010)) m = 2001; + if (m == 2011) m = 2010; + if (a == 32) m = 2034; + if ((a == 17) && (maff == 14)) m = 2018; + if (a > 99) + if ((is == 1) || (is == 0)) m = 2031; + else m = 2032; + if (((a > 69) && (a < 80)) || (a == 30) || (a == 31) || (a == 144) + || (a == 147) || (a == 149)) m = 2030; + if (((a < 27) && (((maff > 69) && (! s.ipre)) || (maff > 99))) + || ((maff > 29) && (maff < 33))) m = 2033; + messint(m); + maff = a; + if (a == 159) a = 86; + else if (a > 140) a = a - 67; + else if (a > 137) a = a - 66; + else if (a > 99) a = a - 64; + else if (a > 69) a = a - 42; + else if (a > 29) a = a - 5; + else if (a == 26) a = 24; + else if (a > 18) a = a - 1; + npal = a; + for (cx = 0; cx <= (a - 1); cx ++) lgt = lgt + l[cx]; + handle = l[a]; + nom = "DXX.mor"; + } else { + nom = "DZZ.mor"; + handle = l[87]; + if (a == 51) { + lgt = handle; + handle = l[88]; + } + maff = a; + npal = a + 37; + } + chardes(nom, lgt, handle); + if (gd == her) { + for (i = 0; i <= 15; i ++) { + palh = memw[0x7000 + (succ(integer, i) << 1)]; + alllum[i] = (palh & 15) + (((cardinal)palh >> 12) & 15) + (((cardinal)palh >> 8) & 15); + } + for (i = 0; i <= 15; i ++) { + k = 0; + for (j = 0; j <= 15; j ++) if (alllum[j] > alllum[k]) k = j; + mem[0x7000 + 2 + (k << 1)] = rang[i]; + alllum[k] = -1; + } + } + numpal = npal; + writepal(npal); + + if ((b < 15) || (b == 16) || (b == 17) || (b == 24) || (b == 26) || (b == 50)) { + lgt = 0; + if ((b < 15) || (b == 16) || (b == 17) || (b == 24) || (b == 26)) { + if (b == 26) b = 18; + else if (b == 24) b = 17; + else if (b > 15) b = b - 1; + for (cx = 0; cx <= (b - 1); cx ++) lgt = lgt + l[cx + 89]; + handle = l[b + 89]; + nom = "AXX.mor"; + } else if (b == 50) { + nom = "AZZ.mor"; + handle = 1260; + } + charani(nom, lgt, handle); + } + show_mouse(); + if ((a < 27) && ((maff < 27) || (s.mlieu == 15)) && (msg[4] != entrer)) { + if ((a == 13) || (a == 14)) person(); + else if (! blo) t11(s.mlieu, cx); + mpers = 0; + } +} + +/* begin + for i:=0 to 15 do + begin + PalH:=memw[$7000:succ(i) shl 1]; + Alllum[i]:=PalH and 15 + PalH shr 4 and 15 + PalH shr 8 and 15; + end; + for i:=0 to 15 do + begin + k:=0; + for j:=0 to 15 do if Alllum[j]>Alllum[k] then k:=j; + mem[$7000:2+k shl 1]:= Rang[i]; + Alllum[k]:=-1; + end; + end;*/ |