diff options
author | Eugene Sandulenko | 2011-12-23 22:15:35 +0000 |
---|---|---|
committer | Strangerke | 2012-04-06 08:18:13 +0200 |
commit | 9b6a4264dcaa26d87fa099c0a0dadbb8e37a6241 (patch) | |
tree | b785814bdb2b225b2fefe2f3be60b0c192867d58 /engines | |
parent | 816e53c1f87365cb351fe3dbdf4a8636954d1773 (diff) | |
download | scummvm-rg350-9b6a4264dcaa26d87fa099c0a0dadbb8e37a6241.tar.gz scummvm-rg350-9b6a4264dcaa26d87fa099c0a0dadbb8e37a6241.tar.bz2 scummvm-rg350-9b6a4264dcaa26d87fa099c0a0dadbb8e37a6241.zip |
MORTEVIELLE: Ran astyle over generated files
Diffstat (limited to 'engines')
-rw-r--r-- | engines/mortevielle/actions.h | 2371 | ||||
-rw-r--r-- | engines/mortevielle/alert.h | 401 | ||||
-rw-r--r-- | engines/mortevielle/boite.h | 57 | ||||
-rw-r--r-- | engines/mortevielle/disk.h | 124 | ||||
-rw-r--r-- | engines/mortevielle/droite.h | 67 | ||||
-rw-r--r-- | engines/mortevielle/keyboard.h | 107 | ||||
-rw-r--r-- | engines/mortevielle/level15.h | 271 | ||||
-rw-r--r-- | engines/mortevielle/menu.h | 594 | ||||
-rw-r--r-- | engines/mortevielle/mor.h | 2690 | ||||
-rw-r--r-- | engines/mortevielle/mor2.h | 1376 | ||||
-rw-r--r-- | engines/mortevielle/mort.cpp | 175 | ||||
-rw-r--r-- | engines/mortevielle/mouse.h | 846 | ||||
-rw-r--r-- | engines/mortevielle/outtext.h | 409 | ||||
-rw-r--r-- | engines/mortevielle/ovd1.h | 628 | ||||
-rw-r--r-- | engines/mortevielle/parole.h | 736 | ||||
-rw-r--r-- | engines/mortevielle/parole2.h | 168 | ||||
-rw-r--r-- | engines/mortevielle/prog.h | 595 | ||||
-rw-r--r-- | engines/mortevielle/ques.h | 220 | ||||
-rw-r--r-- | engines/mortevielle/sprint.h | 91 | ||||
-rw-r--r-- | engines/mortevielle/taffich.h | 366 | ||||
-rw-r--r-- | engines/mortevielle/var_mor.h | 591 |
21 files changed, 6210 insertions, 6673 deletions
diff --git a/engines/mortevielle/actions.h b/engines/mortevielle/actions.h index fd4ae2e0b6..1dd3abe08f 100644 --- a/engines/mortevielle/actions.h +++ b/engines/mortevielle/actions.h @@ -1,1372 +1,1193 @@ /* NIVEAU 4 */ const char stouinon[] = "[2][ ][OUI][NON]"; -/* overlay */ void taller() +/* overlay */ +void taller() { - integer mx,cx,cy; + integer mx, cx, cy; - if ((s.mlieu== 26) && (msg[4]== depl[6])) - { - s.mlieu= 15; - caff= s.mlieu; - afdes(0); - repon(2,s.mlieu); - } - if ((s.mlieu== 15) && (msg[4]== depl[6])) - { - if (! syn) ecr3("aller"); - tfleche(); - if (iesc) okdes= false; - if ((anyone) || (iesc)) return; - tcoord(1); - if (num== 0) return; - if (num== 1) - { - s.mlieu= 0; - tmlieu(0); - } - else - if (num== 7) - { - s.mlieu= 13; - tmlieu(13); - } - else - if (num!= 6) s.mlieu= 26; - if ((num> 1) && (num< 6)) ment= num- 1; - if (num> 7) ment= num- 3; - if (num!= 6) affrep(); else aldepl(); - return; - } - tsort(); - cx= 0; - do { - cx= cx+ 1; - } while (!(depl[cx]== msg[4])); - if (s.mlieu== 19) - { - if (cx== 1) t1deva(); - if (cx== 2) t1neig(); - goto L2; - } - if (s.mlieu== 23) - { - if (cx== 1) t1deau(); - if (cx== 2) t1derr(); - goto L2; - } - if ((s.mlieu== 11) && (cx== 1)) cx= 6; - if (s.mlieu== 12) - { - if (cx== 2) cx= 6; - if (cx== 5) cx= 16; - } - if ((s.mlieu== 14) && (cx== 3)) cx= 6; - if (((s.mlieu== 15) || (s.mlieu== 26)) && (cx== 4)) cx= 6; - if ((s.mlieu> 19) && (s.mlieu!= 26)) cx= cx+ 10; - if ((s.mlieu== 20) && (cx== 13)) cx= 16; - if (s.mlieu== 21) - { - if (cx== 12) cx= 16; else - if (cx> 13) cx= 15; - } - if ((s.mlieu== 22) && (cx> 14)) cx= 15; - if ((s.mlieu== 24) && (cx!= 17)) - if (cx> 13) cx= 15; - if (cx== 1) s.mlieu= 11; else - if (cx== 2) s.mlieu= 12; else - if (cx== 3) s.mlieu= 14; else - if (cx== 4) s.mlieu= 15; else - if (cx== 5) cx= 12; - if (cx== 6) cx= 11; - if (cx== 11) t1sama(); else - if (cx== 12) t1deva(); else - if (cx== 13) s.mlieu= 20; else - if (cx== 14) s.mlieu= 24; else - if (cx== 15) t1neig(); else - if (cx== 16) t1derr(); else - if (cx== 17) - { - if ((s.ipuit!= 120) && (s.ipuit!= 140)) crep= 997; else - if (s.ipuit== 120) crep= 181; else - if (s.conf> 80) - { - crep= 1505; - tperd(); - } - else - { - s.mlieu= 23; - affrep(); - } - } - if ((cx< 5) || (cx== 13) || (cx== 14)) affrep(); - debloc(s.mlieu); + if ((s.mlieu == 26) && (msg[4] == depl[6])) { + s.mlieu = 15; + caff = s.mlieu; + afdes(0); + repon(2, s.mlieu); + } + if ((s.mlieu == 15) && (msg[4] == depl[6])) { + if (! syn) ecr3("aller"); + tfleche(); + if (iesc) okdes = false; + if ((anyone) || (iesc)) return; + tcoord(1); + if (num == 0) return; + if (num == 1) { + s.mlieu = 0; + tmlieu(0); + } else if (num == 7) { + s.mlieu = 13; + tmlieu(13); + } else if (num != 6) s.mlieu = 26; + if ((num > 1) && (num < 6)) ment = num - 1; + if (num > 7) ment = num - 3; + if (num != 6) affrep(); + else aldepl(); + return; + } + tsort(); + cx = 0; + do { + cx = cx + 1; + } while (!(depl[cx] == msg[4])); + if (s.mlieu == 19) { + if (cx == 1) t1deva(); + if (cx == 2) t1neig(); + goto L2; + } + if (s.mlieu == 23) { + if (cx == 1) t1deau(); + if (cx == 2) t1derr(); + goto L2; + } + if ((s.mlieu == 11) && (cx == 1)) cx = 6; + if (s.mlieu == 12) { + if (cx == 2) cx = 6; + if (cx == 5) cx = 16; + } + if ((s.mlieu == 14) && (cx == 3)) cx = 6; + if (((s.mlieu == 15) || (s.mlieu == 26)) && (cx == 4)) cx = 6; + if ((s.mlieu > 19) && (s.mlieu != 26)) cx = cx + 10; + if ((s.mlieu == 20) && (cx == 13)) cx = 16; + if (s.mlieu == 21) { + if (cx == 12) cx = 16; + else if (cx > 13) cx = 15; + } + if ((s.mlieu == 22) && (cx > 14)) cx = 15; + if ((s.mlieu == 24) && (cx != 17)) + if (cx > 13) cx = 15; + if (cx == 1) s.mlieu = 11; + else if (cx == 2) s.mlieu = 12; + else if (cx == 3) s.mlieu = 14; + else if (cx == 4) s.mlieu = 15; + else if (cx == 5) cx = 12; + if (cx == 6) cx = 11; + if (cx == 11) t1sama(); + else if (cx == 12) t1deva(); + else if (cx == 13) s.mlieu = 20; + else if (cx == 14) s.mlieu = 24; + else if (cx == 15) t1neig(); + else if (cx == 16) t1derr(); + else if (cx == 17) { + if ((s.ipuit != 120) && (s.ipuit != 140)) crep = 997; + else if (s.ipuit == 120) crep = 181; + else if (s.conf > 80) { + crep = 1505; + tperd(); + } else { + s.mlieu = 23; + affrep(); + } + } + if ((cx < 5) || (cx == 13) || (cx == 14)) affrep(); + debloc(s.mlieu); L2: - tmlieu(s.mlieu); + tmlieu(s.mlieu); } -/* overlay */ void tprendre() -{ - integer cx, cy, cz; +/* overlay */ void tprendre() { + integer cx, cy, cz; - if (caff> 99) - { - cx= caff; - avpoing(cx); - if (crep!= 139) - { - if (ipers> 0) s.conf= s.conf+ 3; - if (obpart) - { - if (s.mlieu== 2) s.iloic= 0; - if (s.mlieu== 13) - { - if (s.iboul== caff) s.iboul= 0; - if (s.ibag== caff) s.ibag= 0; - } - if (s.mlieu== 14) s.icave= 0; - if (s.mlieu== 16) s.icryp= 0; - if (s.mlieu== 17) s.ivier= 0; - if (s.mlieu== 24) s.ipuit= 0; - mfouen(); - obpart= false; - affrep(); - } - else - { - tabdon[acha+ (pred(integer,mchai)* 10)+ pred(integer,cs)]=0; - tsuiv(); - dobj= dobj+ 1; - if (dobj> 6) - { - s.conf= s.conf+ 2; - dobj= 0; - } - } - } - return; - } - if (! syn) ecr3("prendre"); - tfleche(); - if ((anyone) || (iesc)) return; - if (caff== 3) - { - tcoord(2); - if (num== 1) - { - crep= 152; - return; - } - } - tcoord(5); - if ((num== 0) || ((num== 1) && (s.mlieu== 16))) - { - tcoord(8); - if (num!= 0) - { - if (ipers> 0) s.conf= s.conf+ 3; - crep= 997; - if ((s.mlieu== 2) && (s.iloic!= 0)) avpoing(s.iloic); - if ((s.mlieu==13) && (num==1) && (s.iboul!=0)) - { - avpoing(s.iboul); - if ((crep!= 997) && (crep!= 139)) aniof(2,7); - } - if ((s.mlieu==13) && (num==2) && (s.ibag!=0)) - { - avpoing(s.ibag); - if ((crep!= 997) && (crep!= 139)) aniof(2,6); - } - if ((s.mlieu== 14) && (s.icave!= 0)) - { - avpoing(s.icave); - if ((crep!= 997) && (crep!= 139)) aniof(2,2); - } - if ((s.mlieu== 16) && (s.icryp!= 0)) avpoing(s.icryp); - if ((s.mlieu== 17) && (s.ivier!= 0)) - { - avpoing(s.ivier); - if ((crep!= 997) && (crep!= 139)) - { - crep= 182; - aniof(2,1); - } - } - if ((s.mlieu== 24) && (s.ipuit!= 0)) - { - avpoing(s.ipuit); - if ((crep!= 997) && (crep!= 139)) aniof(2,1); - } - if ((crep!= 997) && (crep!= 182) && (crep!= 139)) crep= 999; - } - } - else - { - if (((s.mlieu== 0) && (num== 3)) || ((s.mlieu== 1) && (num== 4)) - || ((s.mlieu== 2) && (num== 1)) || ((s.mlieu== 4) && (num== 3)) - || ((s.mlieu== 5) && (num== 6)) || ((s.mlieu== 6) && (num== 2)) - || ((s.mlieu== 7) && (num== 6)) || ((s.mlieu== 8) && (num== 4)) - || ((s.mlieu== 9) && (num== 4)) || ((s.mlieu== 10) && (num> 2)) - || ((s.mlieu== 11) && (num== 7)) || ((s.mlieu== 12) && (num== 6)) - || ((s.mlieu== 13) && (num> 4)) || ((s.mlieu> 13) - && (s.mlieu!= 23))) crep= 997; else - { - if (s.mlieu== 23) - { - crep= 1504; - tperd(); - } - else crep= 120; - } - } + if (caff > 99) { + cx = caff; + avpoing(cx); + if (crep != 139) { + if (ipers > 0) s.conf = s.conf + 3; + if (obpart) { + if (s.mlieu == 2) s.iloic = 0; + if (s.mlieu == 13) { + if (s.iboul == caff) s.iboul = 0; + if (s.ibag == caff) s.ibag = 0; + } + if (s.mlieu == 14) s.icave = 0; + if (s.mlieu == 16) s.icryp = 0; + if (s.mlieu == 17) s.ivier = 0; + if (s.mlieu == 24) s.ipuit = 0; + mfouen(); + obpart = false; + affrep(); + } else { + tabdon[acha + (pred(integer, mchai) * 10) + pred(integer, cs)] = 0; + tsuiv(); + dobj = dobj + 1; + if (dobj > 6) { + s.conf = s.conf + 2; + dobj = 0; + } + } + } + return; + } + if (! syn) ecr3("prendre"); + tfleche(); + if ((anyone) || (iesc)) return; + if (caff == 3) { + tcoord(2); + if (num == 1) { + crep = 152; + return; + } + } + tcoord(5); + if ((num == 0) || ((num == 1) && (s.mlieu == 16))) { + tcoord(8); + if (num != 0) { + if (ipers > 0) s.conf = s.conf + 3; + crep = 997; + if ((s.mlieu == 2) && (s.iloic != 0)) avpoing(s.iloic); + if ((s.mlieu == 13) && (num == 1) && (s.iboul != 0)) { + avpoing(s.iboul); + if ((crep != 997) && (crep != 139)) aniof(2, 7); + } + if ((s.mlieu == 13) && (num == 2) && (s.ibag != 0)) { + avpoing(s.ibag); + if ((crep != 997) && (crep != 139)) aniof(2, 6); + } + if ((s.mlieu == 14) && (s.icave != 0)) { + avpoing(s.icave); + if ((crep != 997) && (crep != 139)) aniof(2, 2); + } + if ((s.mlieu == 16) && (s.icryp != 0)) avpoing(s.icryp); + if ((s.mlieu == 17) && (s.ivier != 0)) { + avpoing(s.ivier); + if ((crep != 997) && (crep != 139)) { + crep = 182; + aniof(2, 1); + } + } + if ((s.mlieu == 24) && (s.ipuit != 0)) { + avpoing(s.ipuit); + if ((crep != 997) && (crep != 139)) aniof(2, 1); + } + if ((crep != 997) && (crep != 182) && (crep != 139)) crep = 999; + } + } else { + if (((s.mlieu == 0) && (num == 3)) || ((s.mlieu == 1) && (num == 4)) + || ((s.mlieu == 2) && (num == 1)) || ((s.mlieu == 4) && (num == 3)) + || ((s.mlieu == 5) && (num == 6)) || ((s.mlieu == 6) && (num == 2)) + || ((s.mlieu == 7) && (num == 6)) || ((s.mlieu == 8) && (num == 4)) + || ((s.mlieu == 9) && (num == 4)) || ((s.mlieu == 10) && (num > 2)) + || ((s.mlieu == 11) && (num == 7)) || ((s.mlieu == 12) && (num == 6)) + || ((s.mlieu == 13) && (num > 4)) || ((s.mlieu > 13) + && (s.mlieu != 23))) crep = 997; + else { + if (s.mlieu == 23) { + crep = 1504; + tperd(); + } else crep = 120; + } + } } -/* overlay */ void tsprendre() -{ - integer cx,cy,cz; +/* overlay */ void tsprendre() { + integer cx, cy, cz; - cx= 0; - do { - cx= cx+ 1; - } while (!(invt[cx]== msg[4])); - cz= 0; - cy= 0; - do { - cy= cy+ 1; - if (ord(s.sjer[cy])!= 0) cz= cz+ 1; - } while (!(cz== cx)); - cz= ord(s.sjer[cy]); - s.sjer[cy]= chr(0); - modinv(); - avpoing(cz); - crep= 998; - clsf2(); + cx = 0; + do { + cx = cx + 1; + } while (!(invt[cx] == msg[4])); + cz = 0; + cy = 0; + do { + cy = cy + 1; + if (ord(s.sjer[cy]) != 0) cz = cz + 1; + } while (!(cz == cx)); + cz = ord(s.sjer[cy]); + s.sjer[cy] = chr(0); + modinv(); + avpoing(cz); + crep = 998; + clsf2(); } /* overlay */ void tsoulever() { - integer cx; + integer cx; - if (! syn) ecr3("soulever"); - tfleche(); - if ((anyone) || (iesc)) return; - tcoord(3); - if (num== 0) - { - tcoord(8); - if (num!= 0) - { - if (ipers> 0) s.conf= s.conf+ 1; - crep= 997; - if ((s.mlieu== 2) && (s.iloic!= 0)) treg(s.iloic); - } - return; - } - if (ipers> 0) s.conf= s.conf+ 1; - cx= s.mlieu; - if (s.mlieu== 16) cx= 14; - if (s.mlieu== 19) cx= 15; - crep= tabdon[asoul+(cx << 3)+pred(integer,num)]; - if (crep== 255) crep= 997; + if (! syn) ecr3("soulever"); + tfleche(); + if ((anyone) || (iesc)) return; + tcoord(3); + if (num == 0) { + tcoord(8); + if (num != 0) { + if (ipers > 0) s.conf = s.conf + 1; + crep = 997; + if ((s.mlieu == 2) && (s.iloic != 0)) treg(s.iloic); + } + return; + } + if (ipers > 0) s.conf = s.conf + 1; + cx = s.mlieu; + if (s.mlieu == 16) cx = 14; + if (s.mlieu == 19) cx = 15; + crep = tabdon[asoul + (cx << 3) + pred(integer, num)]; + if (crep == 255) crep = 997; } -/* overlay */ void tlire() -{ - integer iaff; +/* overlay */ void tlire() { + integer iaff; - if (caff> 99) st4(caff); else - { - if (! syn) ecr3("lire"); - tfleche(); - if (! (anyone) && ! (iesc)) - { - tcoord(4); - if (num!= 0) crep= 107; - } - } + if (caff > 99) st4(caff); + else { + if (! syn) ecr3("lire"); + tfleche(); + if (!(anyone) && !(iesc)) { + tcoord(4); + if (num != 0) crep = 107; + } + } } -/* overlay */ void tslire() -{ - if (s.derobj== 0) crep= 186; else st4(s.derobj); +/* overlay */ void tslire() { + if (s.derobj == 0) crep = 186; + else st4(s.derobj); } -/* overlay */ void tregarder() -{ - integer cx; +/* overlay */ void tregarder() { + integer cx; - if (caff> 99) - { - crep= 103; - return; - } - if (! syn) ecr3("regarder"); - tfleche(); - if ((anyone) || (iesc)) return; - tcoord(5); - if (num== 0) - { - tcoord(8); - crep= 131; - if (num!= 0) - { - if (s.mlieu== 13) - { - if (num== 1) - { - crep= 164; - if (s.ibag!= 0) treg(s.ibag); else - if (s.iboul!= 0) treg(s.iboul); - } - else - { - crep= 193; - if (s.ibag!= 0) treg(s.ibag); - } - } - if (s.mlieu== 14) - { - crep= 164; - if (s.icave!= 0) treg(s.icave); - } - if (s.mlieu== 17) - { - crep= 174; - if (s.ivier!= 0) treg(s.ivier); - } - if (s.mlieu== 24) - { - crep= 131; - if (s.ipuit!= 0) treg(s.ipuit); - } - } - return; - } - cx= s.mlieu; - if (s.mlieu== 20) cx= 17; - if ((s.mlieu> 21) && (s.mlieu< 25)) cx= cx- 4; - if (s.mlieu== 26) cx= 21; - crep= tabdon[arega+(cx*7)+pred(integer,num)]; - if ((s.mlieu== 13) && (num== 8)) crep= 126; - if (s.mlieu== 19) crep= 103; - if (crep== 255) crep= 131; - if ((s.mlieu== 1) && (num== 1)) treg(144); - if ((s.mlieu== 5) && (num== 3)) treg(147); - if ((s.mlieu== 8) && (num== 3)) treg(149); - if ((s.mlieu== 9) && (num== 2)) treg(30); - if ((s.mlieu== 10) && (num== 3)) treg(31); + if (caff > 99) { + crep = 103; + return; + } + if (! syn) ecr3("regarder"); + tfleche(); + if ((anyone) || (iesc)) return; + tcoord(5); + if (num == 0) { + tcoord(8); + crep = 131; + if (num != 0) { + if (s.mlieu == 13) { + if (num == 1) { + crep = 164; + if (s.ibag != 0) treg(s.ibag); + else if (s.iboul != 0) treg(s.iboul); + } else { + crep = 193; + if (s.ibag != 0) treg(s.ibag); + } + } + if (s.mlieu == 14) { + crep = 164; + if (s.icave != 0) treg(s.icave); + } + if (s.mlieu == 17) { + crep = 174; + if (s.ivier != 0) treg(s.ivier); + } + if (s.mlieu == 24) { + crep = 131; + if (s.ipuit != 0) treg(s.ipuit); + } + } + return; + } + cx = s.mlieu; + if (s.mlieu == 20) cx = 17; + if ((s.mlieu > 21) && (s.mlieu < 25)) cx = cx - 4; + if (s.mlieu == 26) cx = 21; + crep = tabdon[arega + (cx * 7) + pred(integer, num)]; + if ((s.mlieu == 13) && (num == 8)) crep = 126; + if (s.mlieu == 19) crep = 103; + if (crep == 255) crep = 131; + if ((s.mlieu == 1) && (num == 1)) treg(144); + if ((s.mlieu == 5) && (num == 3)) treg(147); + if ((s.mlieu == 8) && (num == 3)) treg(149); + if ((s.mlieu == 9) && (num == 2)) treg(30); + if ((s.mlieu == 10) && (num == 3)) treg(31); } -/* overlay */ void tsregarder() -{ - if (s.derobj!= 0) treg(s.derobj); else crep= 186; +/* overlay */ void tsregarder() { + if (s.derobj != 0) treg(s.derobj); + else crep = 186; } -/* overlay */ void tfouiller() -{ - const array<0,13,byte> r = {{123,104,123,131,131,123,104,131,123,123,106,123,123,107}}; - integer cx; +/* overlay */ void tfouiller() { + const array<0, 13, byte> r = {{123, 104, 123, 131, 131, 123, 104, 131, 123, 123, 106, 123, 123, 107}}; + integer cx; - if (caff> 99) - { - st7(caff); - return; - } - if (! syn) ecr3("fouiller"); - tfleche(); - if (anyone || iesc) return; - if (s.mlieu==23) - { - crep= 1504; - tperd(); - return; - } - tcoord(6); - if (num== 0) - { - tcoord(7); - if (num!=0) - { - cx=0; - do { - cx=cx+1; - } while (!((cx>6) || (num== ord(touv[cx])))); - if (num!=ord(touv[cx])) crep=187; else - { - if (ipers>0) s.conf= s.conf+3; - rechai(mchai); - if (mchai!=0) - { - cs=0; - is=0; - fouil=true; - mfoudi(); - tsuiv(); - } - else crep=997; - } - } - else - { - tcoord(8); - crep= 997; - if (num!=0) - { - if (ipers>0) s.conf=s.conf+3; - if ((s.mlieu!=24) && (s.mlieu!=17) && (s.mlieu!=13)) - { - if (s.mlieu==2) - { - crep= 123; - if (s.iloic!=0) treg(s.iloic); - } - if (s.mlieu==16) - { - crep= 123; - if (s.icryp!=0) treg(s.icryp); - } - } - } - } - } - else - { - if (ipers>0) s.conf=s.conf+ 3; - crep= 997; - if (s.mlieu < 14) crep= r[s.mlieu]; - if ((s.mlieu== 3) && (num== 2)) crep=162; - if (s.mlieu== 12) - { - if ((num== 3) || (num== 4)) crep=162; - if (num== 5) crep= 159; - } - if (s.mlieu==19) crep=104; - if (s.mlieu==16) crep=155; - } + if (caff > 99) { + st7(caff); + return; + } + if (! syn) ecr3("fouiller"); + tfleche(); + if (anyone || iesc) return; + if (s.mlieu == 23) { + crep = 1504; + tperd(); + return; + } + tcoord(6); + if (num == 0) { + tcoord(7); + if (num != 0) { + cx = 0; + do { + cx = cx + 1; + } while (!((cx > 6) || (num == ord(touv[cx])))); + if (num != ord(touv[cx])) crep = 187; + else { + if (ipers > 0) s.conf = s.conf + 3; + rechai(mchai); + if (mchai != 0) { + cs = 0; + is = 0; + fouil = true; + mfoudi(); + tsuiv(); + } else crep = 997; + } + } else { + tcoord(8); + crep = 997; + if (num != 0) { + if (ipers > 0) s.conf = s.conf + 3; + if ((s.mlieu != 24) && (s.mlieu != 17) && (s.mlieu != 13)) { + if (s.mlieu == 2) { + crep = 123; + if (s.iloic != 0) treg(s.iloic); + } + if (s.mlieu == 16) { + crep = 123; + if (s.icryp != 0) treg(s.icryp); + } + } + } + } + } else { + if (ipers > 0) s.conf = s.conf + 3; + crep = 997; + if (s.mlieu < 14) crep = r[s.mlieu]; + if ((s.mlieu == 3) && (num == 2)) crep = 162; + if (s.mlieu == 12) { + if ((num == 3) || (num == 4)) crep = 162; + if (num == 5) crep = 159; + } + if (s.mlieu == 19) crep = 104; + if (s.mlieu == 16) crep = 155; + } } -/* overlay */ void tsfouiller() -{ - if (s.derobj!=0) st7(s.derobj); else crep= 186; +/* overlay */ void tsfouiller() { + if (s.derobj != 0) st7(s.derobj); + else crep = 186; } -/* overlay */ void touvrir() -{ - integer cx,haz; +/* overlay */ void touvrir() { + integer cx, haz; - if (! syn) ecr3("ouvrir"); - if (caff== 26) - { - if (ment!= 0) - { - msg[4]= entrer; - syn= true; - } - else crep= 997; - return; - } - if (caff== 15) - { - aldepl(); - return; - } - tfleche(); - if ((anyone) || (iesc)) return; - tcoord(7); - if (num!= 0) - { - if (ipers> 0) s.conf= s.conf+ 2; - iouv= iouv+ 1; - cx= 0; - do { - cx= cx+ 1; - } while (!((cx> 6) || (ord(touv[cx])== 0) || (ord(touv[cx])== num))); - if (ord(touv[cx])!= num) - { - if (! - ( - ( (num== 3) && ((s.mlieu== 0) || (s.mlieu== 9) || (s.mlieu== 5) || (s.mlieu== 7)) ) - || - ((num== 4) && ((s.mlieu== 1) || (s.mlieu== 2) || (s.mlieu== 6))) || - ((s.mlieu== 4) && (num== 5)) || - ((num== 6) && ((s.mlieu== 7) || (s.mlieu== 10) || - (s.mlieu== 8) || (s.mlieu== 13))) || - ((s.mlieu== 8) && (num== 2)) || - ((s.mlieu== 12) && (num== 7)))) - { - if (((s.mlieu> 10) && (s.mlieu< 14)) || - ((s.mlieu> 6) && (s.mlieu< 10)) || - (s.mlieu== 0) || (s.mlieu== 2) || (s.mlieu== 5)) - { - haz= hazard(1, 4); - if (haz== 3) parole(7, 9, 1); - } - touv[cx]= chr(num); - aniof(1,num); - } - cx= s.mlieu; - if (s.mlieu== 16) cx= 14; - crep= tabdon[aouvr+ (cx* 7)+ pred(integer,num)]; - if (crep== 254) crep= 999; - } - else crep= 18; - } + if (! syn) ecr3("ouvrir"); + if (caff == 26) { + if (ment != 0) { + msg[4] = entrer; + syn = true; + } else crep = 997; + return; + } + if (caff == 15) { + aldepl(); + return; + } + tfleche(); + if ((anyone) || (iesc)) return; + tcoord(7); + if (num != 0) { + if (ipers > 0) s.conf = s.conf + 2; + iouv = iouv + 1; + cx = 0; + do { + cx = cx + 1; + } while (!((cx > 6) || (ord(touv[cx]) == 0) || (ord(touv[cx]) == num))); + if (ord(touv[cx]) != num) { + if (! + ( + ((num == 3) && ((s.mlieu == 0) || (s.mlieu == 9) || (s.mlieu == 5) || (s.mlieu == 7))) + || + ((num == 4) && ((s.mlieu == 1) || (s.mlieu == 2) || (s.mlieu == 6))) || + ((s.mlieu == 4) && (num == 5)) || + ((num == 6) && ((s.mlieu == 7) || (s.mlieu == 10) || + (s.mlieu == 8) || (s.mlieu == 13))) || + ((s.mlieu == 8) && (num == 2)) || + ((s.mlieu == 12) && (num == 7)))) { + if (((s.mlieu > 10) && (s.mlieu < 14)) || + ((s.mlieu > 6) && (s.mlieu < 10)) || + (s.mlieu == 0) || (s.mlieu == 2) || (s.mlieu == 5)) { + haz = hazard(1, 4); + if (haz == 3) parole(7, 9, 1); + } + touv[cx] = chr(num); + aniof(1, num); + } + cx = s.mlieu; + if (s.mlieu == 16) cx = 14; + crep = tabdon[aouvr + (cx * 7) + pred(integer, num)]; + if (crep == 254) crep = 999; + } else crep = 18; + } } -/* overlay */ void tmettre() -{ - integer quel; - boolean entre; - phrase st; - str255 str_; - integer i,tay; +/* overlay */ void tmettre() { + integer quel; + boolean entre; + phrase st; + str255 str_; + integer i, tay; - if (s.derobj== 0) - { - crep= 186; - return; - } - if (! syn) ecr3("mettre"); - tfleche(); - if (iesc) crep= 998; - if ((anyone) || (iesc)) return; - tcoord(8); - if (num!= 0) - { - crep= 999; - if (caff== 13) - { - if (num== 1) - { - if (s.iboul!= 0) crep= 188; else - { - s.iboul= s.derobj; - if (s.derobj== 141) aniof(1,7); - } - } - else - if (s.ibag!= 0) crep= 188; else - { - s.ibag= s.derobj; - if (s.derobj== 159) aniof(1,6); - } - } - if (caff== 14) - if (s.icave!=0) crep= 188; else - { - s.icave= s.derobj; - if (s.derobj== 151) - { - aniof(1,2); - aniof(1,1); - repon(2,165); - maivid(); - parole(6, -9, 1); - quel= do_alert(stouinon,1); - if (quel==1) { - deline(582,st,tay); - i= do_alert(delig,1); - tesok=false; - entre= ques(); - hide_mouse(); - hirs(); - dessine_rouleau(); - clsf2(); - clsf3(); - show_mouse(); - tinke(); - pendule(); - if (ipers!=0) affper(ipers); - else person(); - menu_aff(); - if (entre) - { - s.mlieu= 17; - tmlieu(17); - } - else - { - tmlieu(s.mlieu); - writepal(14); - dessin(0); - aniof(1,2); - aniof(1,1); - deline(577,st,tay); - i= do_alert(delig,1); - aniof(2,1); - crep= 166; - } - affrep(); - } - else { - aniof(2,1); - crep= 166; - tesok=true; - } - return; - } - } - if (caff== 16) - if (s.icryp== 0) s.icryp= s.derobj; else crep= 188; - if (caff== 17) - if (s.ivier!=0) crep= 188; else - if (s.derobj== 143) - { - s.ivier= 143; - aniof(1,1); - } - else - { - crep= 1512; - tperd(); - } - if (caff== 24) - if (s.ipuit!= 0) crep= 188; else - if ((s.derobj== 140) || (s.derobj== 120)) - { - s.ipuit= s.derobj; - aniof(1,1); - } - else crep= 185; - if (crep!= 188) maivid(); - } + if (s.derobj == 0) { + crep = 186; + return; + } + if (! syn) ecr3("mettre"); + tfleche(); + if (iesc) crep = 998; + if ((anyone) || (iesc)) return; + tcoord(8); + if (num != 0) { + crep = 999; + if (caff == 13) { + if (num == 1) { + if (s.iboul != 0) crep = 188; + else { + s.iboul = s.derobj; + if (s.derobj == 141) aniof(1, 7); + } + } else if (s.ibag != 0) crep = 188; + else { + s.ibag = s.derobj; + if (s.derobj == 159) aniof(1, 6); + } + } + if (caff == 14) + if (s.icave != 0) crep = 188; + else { + s.icave = s.derobj; + if (s.derobj == 151) { + aniof(1, 2); + aniof(1, 1); + repon(2, 165); + maivid(); + parole(6, -9, 1); + quel = do_alert(stouinon, 1); + if (quel == 1) { + deline(582, st, tay); + i = do_alert(delig, 1); + tesok = false; + entre = ques(); + hide_mouse(); + hirs(); + dessine_rouleau(); + clsf2(); + clsf3(); + show_mouse(); + tinke(); + pendule(); + if (ipers != 0) affper(ipers); + else person(); + menu_aff(); + if (entre) { + s.mlieu = 17; + tmlieu(17); + } else { + tmlieu(s.mlieu); + writepal(14); + dessin(0); + aniof(1, 2); + aniof(1, 1); + deline(577, st, tay); + i = do_alert(delig, 1); + aniof(2, 1); + crep = 166; + } + affrep(); + } else { + aniof(2, 1); + crep = 166; + tesok = true; + } + return; + } + } + if (caff == 16) + if (s.icryp == 0) s.icryp = s.derobj; + else crep = 188; + if (caff == 17) + if (s.ivier != 0) crep = 188; + else if (s.derobj == 143) { + s.ivier = 143; + aniof(1, 1); + } else { + crep = 1512; + tperd(); + } + if (caff == 24) + if (s.ipuit != 0) crep = 188; + else if ((s.derobj == 140) || (s.derobj == 120)) { + s.ipuit = s.derobj; + aniof(1, 1); + } else crep = 185; + if (crep != 188) maivid(); + } } -/* overlay */ void ttourner() -{ - integer quel; +/* overlay */ void ttourner() { + integer quel; - if (caff> 99) - { - crep= 149; - return; - } - if (! syn) ecr3("tourner"); - tfleche(); - if ((anyone) || (iesc)) return; - tcoord(9); - if (num!= 0) - { - crep= 997; - if ((s.mlieu== 13) && (s.ibag== 159) && (s.iboul== 141)) - { - repon(2,167); - parole(7, 9, 1); - quel= do_alert(stouinon,1); - if (quel== 1) solu= true; else crep= 168; - } - if ((s.mlieu== 17) && (s.ivier== 143)) - { - repon(2, 175); - clsf3(); - parole(6, -9, 1); - quel= do_alert(stouinon,1); - if (quel== 1) - { - s.mlieu= 16; - affrep(); - } - else crep= 176; - } - } + if (caff > 99) { + crep = 149; + return; + } + if (! syn) ecr3("tourner"); + tfleche(); + if ((anyone) || (iesc)) return; + tcoord(9); + if (num != 0) { + crep = 997; + if ((s.mlieu == 13) && (s.ibag == 159) && (s.iboul == 141)) { + repon(2, 167); + parole(7, 9, 1); + quel = do_alert(stouinon, 1); + if (quel == 1) solu = true; + else crep = 168; + } + if ((s.mlieu == 17) && (s.ivier == 143)) { + repon(2, 175); + clsf3(); + parole(6, -9, 1); + quel = do_alert(stouinon, 1); + if (quel == 1) { + s.mlieu = 16; + affrep(); + } else crep = 176; + } + } } -/* overlay */ void tcacher() -{ - if (! syn) ecr3("se cacher"); - tfleche(); - if (! (anyone) && ! (iesc)) - { - tcoord(10); - if (num== 0) cache= false; else - { - cache= true; - crep= 999; - } - } +/* overlay */ void tcacher() { + if (! syn) ecr3("se cacher"); + tfleche(); + if (!(anyone) && !(iesc)) { + tcoord(10); + if (num == 0) cache = false; + else { + cache = true; + crep = 999; + } + } } -/* overlay */ void tattacher() -{ - if (s.derobj== 0) crep= 186; else - { - if (! syn) ecr3("attacher"); - tfleche(); - if (! (anyone) && ! (iesc)) - { - tcoord(8); - crep= 997; - if ((num!= 0) && (s.mlieu== 24)) - { - crep= 999; - if ((s.derobj== 120) || (s.derobj== 140)) - { - s.ipuit= s.derobj; - aniof(1,1); - } - else crep= 185; - maivid(); - } - } - } +/* overlay */ void tattacher() { + if (s.derobj == 0) crep = 186; + else { + if (! syn) ecr3("attacher"); + tfleche(); + if (!(anyone) && !(iesc)) { + tcoord(8); + crep = 997; + if ((num != 0) && (s.mlieu == 24)) { + crep = 999; + if ((s.derobj == 120) || (s.derobj == 140)) { + s.ipuit = s.derobj; + aniof(1, 1); + } else crep = 185; + maivid(); + } + } + } } -/* overlay */ void tfermer() -{ - integer cx,chai; +/* overlay */ void tfermer() { + integer cx, chai; - if (! syn) ecr3("fermer"); - if (caff< 26) - { - tfleche(); - if (iesc) crep= 998; - if ((anyone) || (iesc)) return; - tcoord(7); - if (num!= 0) - { - cx= 0; - do { - cx= cx+ 1; - } while (!((cx> 6) || (num== ord(touv[cx])))); - if (num== ord(touv[cx])) - { - aniof(2,num); - crep= 998; - touv[cx]= chr(0); - iouv= iouv- 1; - if (iouv< 0) iouv= 0; - chai= 9999; - rechai(chai); - if (mchai== chai) mchai= 0; - } - else crep= 187; - } - } - if (caff== 26) crep= 999; + if (! syn) ecr3("fermer"); + if (caff < 26) { + tfleche(); + if (iesc) crep = 998; + if ((anyone) || (iesc)) return; + tcoord(7); + if (num != 0) { + cx = 0; + do { + cx = cx + 1; + } while (!((cx > 6) || (num == ord(touv[cx])))); + if (num == ord(touv[cx])) { + aniof(2, num); + crep = 998; + touv[cx] = chr(0); + iouv = iouv - 1; + if (iouv < 0) iouv = 0; + chai = 9999; + rechai(chai); + if (mchai == chai) mchai = 0; + } else crep = 187; + } + } + if (caff == 26) crep = 999; } -/* overlay */ void tfrapper() -{ - integer l,p,haz; +/* overlay */ void tfrapper() { + integer l, p, haz; - if (! syn) ecr3("frapper"); - if (s.mlieu== 15) - { - l= do_alert("[1][ | Avant, utilisez le menu DEP...][ok]",1); - return; - } - if (s.mlieu< 25) - { - tfleche(); - if (! (anyone) && ! (iesc)) - if ((s.mlieu< 19) && (s.mlieu!= 15)) crep= 133; else crep= 997; - return; - } - if (s.mlieu== 26) - { - haz= (hazard(0, 8))- 4; - parole(11, haz, 1); - ecfren(p,haz,s.conf,ment); - l= ment; - if (l!= 0) - if (p!= -500) - { - if (haz> p) crep= 190; else - { - becfren(l); - frap(); - } - } - else frap(); - if (ment== 8) crep= 190; - } + if (! syn) ecr3("frapper"); + if (s.mlieu == 15) { + l = do_alert("[1][ | Avant, utilisez le menu DEP...][ok]", 1); + return; + } + if (s.mlieu < 25) { + tfleche(); + if (!(anyone) && !(iesc)) + if ((s.mlieu < 19) && (s.mlieu != 15)) crep = 133; + else crep = 997; + return; + } + if (s.mlieu == 26) { + haz = (hazard(0, 8)) - 4; + parole(11, haz, 1); + ecfren(p, haz, s.conf, ment); + l = ment; + if (l != 0) + if (p != -500) { + if (haz > p) crep = 190; + else { + becfren(l); + frap(); + } + } else frap(); + if (ment == 8) crep = 190; + } } -/* overlay */ void tposer() -{ - integer cx,chai; +/* overlay */ void tposer() { + integer cx, chai; - if (! syn) ecr3("poser"); - if (s.derobj== 0) crep= 186; else - { - if (caff> 99) - { - crep= 999; - ajchai(); - if (crep!= 192) maivid(); - return; - } - tfleche(); - if ((anyone) || (iesc)) return; - tcoord(7); - crep= 124; - if (num!= 0) - { - rechai(chai); - if (chai== 0) crep= 997; else - { - cx= 0; - do { - cx= cx+ 1; - } while (!((cx> 6) || (num== ord(touv[cx])))); - if (num!= ord(touv[cx])) crep= 187; else - { - mchai= chai; - crep= 999; - } - } - } - else - { - tcoord(8); - if (num!= 0) - { - crep= 998; - if (caff== 2) - if (s.iloic!= 0) crep= 188; else s.iloic= s.derobj; - if (caff== 13) - { - if (num== 1) - { - if (s.iboul!= 0) crep= 188; else s.iboul= s.derobj; - } - else - if (s.ibag!= 0) crep= 188; else s.ibag= s.derobj; - } - if (caff== 16) - if (s.icryp!= 0) crep= 188; else s.icryp= s.derobj; - if (caff== 24) crep= 185; - if ((caff== 14) || (caff== 17)) crep= 124; - } - else - { - crep= 124; - if (caff== 24) - { - tcoord(5); - if (num!= 0) crep= 185; - } - } - } - if (caff== 23) crep= 185; - if ((crep== 999) || (crep== 185) || (crep== 998)) - { - if (crep== 999) ajchai(); - if (crep!= 192) maivid(); - } - } + if (! syn) ecr3("poser"); + if (s.derobj == 0) crep = 186; + else { + if (caff > 99) { + crep = 999; + ajchai(); + if (crep != 192) maivid(); + return; + } + tfleche(); + if ((anyone) || (iesc)) return; + tcoord(7); + crep = 124; + if (num != 0) { + rechai(chai); + if (chai == 0) crep = 997; + else { + cx = 0; + do { + cx = cx + 1; + } while (!((cx > 6) || (num == ord(touv[cx])))); + if (num != ord(touv[cx])) crep = 187; + else { + mchai = chai; + crep = 999; + } + } + } else { + tcoord(8); + if (num != 0) { + crep = 998; + if (caff == 2) + if (s.iloic != 0) crep = 188; + else s.iloic = s.derobj; + if (caff == 13) { + if (num == 1) { + if (s.iboul != 0) crep = 188; + else s.iboul = s.derobj; + } else if (s.ibag != 0) crep = 188; + else s.ibag = s.derobj; + } + if (caff == 16) + if (s.icryp != 0) crep = 188; + else s.icryp = s.derobj; + if (caff == 24) crep = 185; + if ((caff == 14) || (caff == 17)) crep = 124; + } else { + crep = 124; + if (caff == 24) { + tcoord(5); + if (num != 0) crep = 185; + } + } + } + if (caff == 23) crep = 185; + if ((crep == 999) || (crep == 185) || (crep == 998)) { + if (crep == 999) ajchai(); + if (crep != 192) maivid(); + } + } } -/* overlay */ void tecouter() -{ - integer l,p,haz,j,h,m; +/* overlay */ void tecouter() { + integer l, p, haz, j, h, m; - if (s.mlieu!= 26) crep= 101; else - { - if (ipers!= 0) s.conf= s.conf+ 1; - ecfren(p,haz,s.conf,ment); - l= ment; - if (l!= 0) - if (p!= -500) - { - if (haz> p) crep= 101; else - { - becfren(l); - calch(j,h,m); - haz= hazard(1,100); - if ((h>= 0) && (h< 8)) - { - if (haz> 30) crep= 101; else crep= 178; - } - else - if (haz> 70) crep= 101; else crep= 178; - } - } - else crep= 178; - } + if (s.mlieu != 26) crep = 101; + else { + if (ipers != 0) s.conf = s.conf + 1; + ecfren(p, haz, s.conf, ment); + l = ment; + if (l != 0) + if (p != -500) { + if (haz > p) crep = 101; + else { + becfren(l); + calch(j, h, m); + haz = hazard(1, 100); + if ((h >= 0) && (h < 8)) { + if (haz > 30) crep = 101; + else crep = 178; + } else if (haz > 70) crep = 101; + else crep = 178; + } + } else crep = 178; + } } -/* overlay */ void tmanger() -{ - integer j,h,m; +/* overlay */ void tmanger() { + integer j, h, m; - if ((s.mlieu> 15) && (s.mlieu< 26)) - crep= 148; - else - { - tsort(); - s.mlieu= 10; - caff= 10; - debloc(s.mlieu); - tmlieu(s.mlieu); - calch(j,h,m); - if ((h== 12) || (h== 13) || (h== 19)) - { - s.conf= s.conf- (s.conf / 7); - if (h== 12) - if (m== 0) h= 4; else h= 3; - if ((h== 13) || (h== 19)) - if (m== 0) h= 2; else h= 1; - jh= jh+ h; - crep= 135; - tinke(); - } - else crep= 134; - } + if ((s.mlieu > 15) && (s.mlieu < 26)) + crep = 148; + else { + tsort(); + s.mlieu = 10; + caff = 10; + debloc(s.mlieu); + tmlieu(s.mlieu); + calch(j, h, m); + if ((h == 12) || (h == 13) || (h == 19)) { + s.conf = s.conf - (s.conf / 7); + if (h == 12) + if (m == 0) h = 4; + else h = 3; + if ((h == 13) || (h == 19)) + if (m == 0) h = 2; + else h = 1; + jh = jh + h; + crep = 135; + tinke(); + } else crep = 134; + } } -/* overlay */ void tentrer() -{ - integer x, z; +/* overlay */ void tentrer() { + integer x, z; - if ((s.mlieu== 21) || (s.mlieu== 22)) - { - t1sama(); - tmlieu(s.mlieu); - } - else - if (s.mlieu== 15) aldepl(); else - if (ment== 0) crep= 997; else - { - if ((ment== 9) && (s.derobj!= 136)) - { - crep= 189; - s.teauto[8]= '*'; - } - else - { - if (! blo) t11(ment, z); - if (z!= 0) - { - if ((ment== 3) || (ment== 7)) crep= 179; else - { - x= (hazard(0, 10))- 5; - parole(7, x, 1); - aniof(1,1); -/* tkey(5,32000);*/ - tip(z,x); - s.conf= s.conf+ 1; - s.mlieu= 15; - msg[3]= discut; - msg[4]= disc[x]; - syn= true; - if (ment== 9) - { - col= true; - caff= 70; - afdes(0); - repon(2,caff); - } - else col= false; - debloc(ment); - ment= 0; - } - } - else - { - x= (hazard(0, 10))- 5; - parole(7, x, 1); - aniof(1,1); -/* tkey(1,32000);*/ - s.mlieu= ment; - affrep(); - debloc(s.mlieu); - tmlieu(s.mlieu); - ment= 0; - mpers= 0; - ipers= 0; - } - } - } + if ((s.mlieu == 21) || (s.mlieu == 22)) { + t1sama(); + tmlieu(s.mlieu); + } else if (s.mlieu == 15) aldepl(); + else if (ment == 0) crep = 997; + else { + if ((ment == 9) && (s.derobj != 136)) { + crep = 189; + s.teauto[8] = '*'; + } else { + if (! blo) t11(ment, z); + if (z != 0) { + if ((ment == 3) || (ment == 7)) crep = 179; + else { + x = (hazard(0, 10)) - 5; + parole(7, x, 1); + aniof(1, 1); + /* tkey(5,32000);*/ + tip(z, x); + s.conf = s.conf + 1; + s.mlieu = 15; + msg[3] = discut; + msg[4] = disc[x]; + syn = true; + if (ment == 9) { + col = true; + caff = 70; + afdes(0); + repon(2, caff); + } else col = false; + debloc(ment); + ment = 0; + } + } else { + x = (hazard(0, 10)) - 5; + parole(7, x, 1); + aniof(1, 1); + /* tkey(1,32000);*/ + s.mlieu = ment; + affrep(); + debloc(s.mlieu); + tmlieu(s.mlieu); + ment = 0; + mpers = 0; + ipers = 0; + } + } + } } -/* overlay */ void tdormir() -{ - const char m1[] = "D‚sirez-vous vous r‚veiller?"; - integer z,j,h,m,quel; +/* overlay */ void tdormir() { + const char m1[] = "D‚sirez-vous vous r‚veiller?"; + integer z, j, h, m, quel; - if ((s.mlieu> 15) && (s.mlieu< 26)) - { - crep= 148; - return; - } - if (s.mlieu != 0) - { - tsort(); - s.mlieu= 0; - affrep(); - afdes(0); - debloc(s.mlieu); - tmlieu(s.mlieu); - } - clsf3(); - clsf2(); - ecrf2(); - ecr2(m1); - calch(j,h,m); - do { - if (h< 8) - { - s.conf= s.conf- (s.conf / 20); - z= (7- h)* 2; - if (m== 30) z= z- 1; - jh= jh+ z; - h= 7; - } - jh= jh+ 2; - h= h+ 1; - if (h> 23) h= 0; - tinke(); - quel= do_alert(stouinon,1); - anyone= false; - } while (!(quel== 1)); - crep= 998; - num= 0; + if ((s.mlieu > 15) && (s.mlieu < 26)) { + crep = 148; + return; + } + if (s.mlieu != 0) { + tsort(); + s.mlieu = 0; + affrep(); + afdes(0); + debloc(s.mlieu); + tmlieu(s.mlieu); + } + clsf3(); + clsf2(); + ecrf2(); + ecr2(m1); + calch(j, h, m); + do { + if (h < 8) { + s.conf = s.conf - (s.conf / 20); + z = (7 - h) * 2; + if (m == 30) z = z - 1; + jh = jh + z; + h = 7; + } + jh = jh + 2; + h = h + 1; + if (h > 23) h = 0; + tinke(); + quel = do_alert(stouinon, 1); + anyone = false; + } while (!(quel == 1)); + crep = 998; + num = 0; } -/* overlay */ void tdefoncer() -{ - if (! syn) ecr3("d‚foncer"); - if (caff< 25) tfleche(); - if ((! anyone) && (! iesc)) - if (s.mlieu!= 26) crep= 997; else - { - crep= 143; - s.conf= s.conf+ 2; - } +/* overlay */ void tdefoncer() { + if (! syn) ecr3("d‚foncer"); + if (caff < 25) tfleche(); + if ((! anyone) && (! iesc)) + if (s.mlieu != 26) crep = 997; + else { + crep = 143; + s.conf = s.conf + 2; + } } -/* overlay */ void tsortir() -{ - integer lx; +/* overlay */ void tsortir() { + integer lx; - tsort(); - crep= 0; - if ((s.mlieu== 19) || (s.mlieu== 21) || (s.mlieu== 22) - || (s.mlieu== 24)) crep= 997; else - { - if ((s.mlieu< 16) || (s.mlieu== 26)) lx= 10; - if ((s.mlieu== 10) || (s.mlieu== 20)) lx= 21; - if ((s.mlieu< 10) || (s.mlieu== 13)) lx= 15; - if (s.mlieu== 16) - { - lx= 17; - crep= 176; - } - if (s.mlieu== 17) t23coul(lx); - if (s.mlieu== 23) lx= 24; - if (crep!= 997) s.mlieu= lx; - caff= lx; - if (crep== 0) crep= lx; - debloc(lx); - tmlieu(lx); - } + tsort(); + crep = 0; + if ((s.mlieu == 19) || (s.mlieu == 21) || (s.mlieu == 22) + || (s.mlieu == 24)) crep = 997; + else { + if ((s.mlieu < 16) || (s.mlieu == 26)) lx = 10; + if ((s.mlieu == 10) || (s.mlieu == 20)) lx = 21; + if ((s.mlieu < 10) || (s.mlieu == 13)) lx = 15; + if (s.mlieu == 16) { + lx = 17; + crep = 176; + } + if (s.mlieu == 17) t23coul(lx); + if (s.mlieu == 23) lx = 24; + if (crep != 997) s.mlieu = lx; + caff = lx; + if (crep == 0) crep = lx; + debloc(lx); + tmlieu(lx); + } } -/* overlay */ void tattendre() -{ - integer quel; +/* overlay */ void tattendre() { + integer quel; - mpers= 0; - clsf3(); - do { - jh= jh+ 1; - tinke(); - if (! blo) t11(s.mlieu, quel); - if ((ipers!= 0) && (mpers== 0)) - { - crep= 998; - if ((s.mlieu== 13) || (s.mlieu== 14)) cavegre(); - if ((s.mlieu> 0) && (s.mlieu< 10)) anyone= true; - mpers= ipers; - if (! anyone) tinke(); - return; - } - repon(2,102); - quel= do_alert(stouinon,1); - } while (!(quel== 2)); - crep= 998; - if (! anyone) tinke(); + mpers = 0; + clsf3(); + do { + jh = jh + 1; + tinke(); + if (! blo) t11(s.mlieu, quel); + if ((ipers != 0) && (mpers == 0)) { + crep = 998; + if ((s.mlieu == 13) || (s.mlieu == 14)) cavegre(); + if ((s.mlieu > 0) && (s.mlieu < 10)) anyone = true; + mpers = ipers; + if (! anyone) tinke(); + return; + } + repon(2, 102); + quel = do_alert(stouinon, 1); + } while (!(quel == 2)); + crep = 998; + if (! anyone) tinke(); } -/* overlay */ void tsonder() -{ - if (! syn) ecr3("sonder"); - if (caff< 27) - { - tfleche(); - if (! (anyone) && (! iesc)) crep= 145; - num= 0; - } +/* overlay */ void tsonder() { + if (! syn) ecr3("sonder"); + if (caff < 27) { + tfleche(); + if (!(anyone) && (! iesc)) crep = 145; + num = 0; + } } /* overlay */ void tparler() { - array<1,46,boolean> te; - integer ix, cy, cx, max, haz, suj, co,lig,icm, - i, tay, choi, x, y, c; - char tou; - array<1,46,varying_string<40> > lib; - phrase st; - boolean f; + array<1, 46, boolean> te; + integer ix, cy, cx, max, haz, suj, co, lig, icm, + i, tay, choi, x, y, c; + char tou; + array<1, 46, varying_string<40> > lib; + phrase st; + boolean f; - finfouil(); - if (col) suj= 128; else - { - cx= 0; - do { - cx= cx+ 1; - } while (!(disc[cx]== msg[4])); - caff= 69+ cx; - afdes(0); - repon(2,caff); - suj= caff+ 60; - } - tkey1(false); - mennor(); - hide_mouse(); - hirs(); - premtet(); - sparl(0,suj); - hirs(); - for( ix= 1; ix <= 46; ix ++) te[ix]= false; - for( ix=1; ix <= 45; ix ++) - { - deline(ix+c_tparler,st,tay); - lib[ix]= delig; - for( i=tay; i <= 40; i ++) lib[ix]=lib[ix]+' '; - } - lib[46]=lib[45]; - lib[45]=' '; - show_mouse(); - do { - choi= 0; - icm= 0; - co= 0; - lig= 0; - do { - icm= succ(integer, icm ); - putxy(co,lig); - if (s.teauto[icm]=='*') - if (te[icm]) writetp(lib[icm],1); - else writetp(lib[icm],0); - if (icm==23) { - lig= 0; - co= 320; - } - else lig= lig + 8; - } while (!(icm==42)); - putxy(320,176); - writetp(lib[46],0); - tou= '\0'; - do { - mov_mouse(f,tou); -/* if keypressed then read(kbd,tou);*/ - read_pos_mouse(x,y,c); - x= x *(3-res); - if (x>319) cx= 41; else cx= 1; - cy= succ(integer,(cardinal)y >> 3); /* 0-199 => 1-25 */ - if ((cy>23) || ((cx==41) && (set::of(range(20,22), eos).has(cy)))) - { - if (choi!=0) - { - lig= ((choi-1) % 23) << 3; - if (choi>23) co= 320; else co= 0; - putxy(co,lig); - if (te[choi]) writetp(lib[choi],0); - else writetp(lib[choi],1); - te[choi]= ! te[choi]; - choi= 0; - } - } - else { - ix= cy; - if (cx==41) ix= ix+23; - if (ix!=choi) - { - if (choi!=0) - { - lig= ((choi-1) % 23) << 3; - if (choi>23) co= 320; else co= 0; - putxy(co,lig); - if (te[choi]) writetp(lib[choi],0); - else writetp(lib[choi],1); - te[choi]= ! te[choi]; - } - if ((s.teauto[ix]=='*') || (ix==46)) - { - lig= ((ix-1) % 23) << 3; - if (ix>23) co= 320; else co= 0; - putxy(co,lig); - if (te[ix]) writetp(lib[ix],0); - else writetp(lib[ix],1); - te[ix]= ! te[ix]; - choi= ix; - } - else choi= 0; - } - } - } while (!((tou=='\15') || ( ((c!=0) || clic) && (choi!=0)))); - clic=false; - if (choi!=46) - { - ix= choi-1; - if (col) - { - col= false; - s.mlieu= 15; - if (iouv> 0) max= 8; else max= 4; - haz= hazard(1,max); - if (haz== 2) suj= 129; else - { - suj= 138; - s.conf= s.conf+ (3* (s.conf / 10)); - } - } - else - if (nbrep[caff- 69]< nbrepm[caff- 69]) - { - suj= tabdon[arep+ (ix << 3)+ (caff- 70)]; - s.conf= s.conf+ tabdon[arcf+ ix]; - nbrep[caff- 69]= nbrep[caff- 69]+ 1; - } - else - { - s.conf= s.conf+ 3; - suj= 139; - } - hide_mouse(); - hirs(); - premtet(); - sparl(0, suj); - show_mouse(); - if ((suj== 84) || (suj== 86)) - { - s.pourc[5]= '*'; - s.teauto[7]= '*'; - } - if ((suj== 106) || (suj== 108) || (suj== 94)) - { - for( ix= 29; ix <= 31; ix ++) s.teauto[ix]= '*'; - s.pourc[7]= '*'; - } - if (suj== 70) - { - s.pourc[8]= '*'; - s.teauto[32]= '*'; - } - hide_mouse(); - hirs(); - show_mouse(); - } - } while (!((choi== 46) || (suj== 138))); - if (col) - { - s.conf= s.conf+ (3* (s.conf / 10)); - hide_mouse(); - hirs(); - premtet(); - sparl(0, 138); - show_mouse(); - col= false; - s.mlieu= 15; - } - ctrm= 0; - hide_mouse(); - hirs(); - dessine_rouleau(); - show_mouse(); - affper(ipers); - tinke(); - pendule(); - affrep(); -/* chech;*/ - tmlieu(s.mlieu); - clsf3(); + finfouil(); + if (col) suj = 128; + else { + cx = 0; + do { + cx = cx + 1; + } while (!(disc[cx] == msg[4])); + caff = 69 + cx; + afdes(0); + repon(2, caff); + suj = caff + 60; + } + tkey1(false); + mennor(); + hide_mouse(); + hirs(); + premtet(); + sparl(0, suj); + hirs(); + for (ix = 1; ix <= 46; ix ++) te[ix] = false; + for (ix = 1; ix <= 45; ix ++) { + deline(ix + c_tparler, st, tay); + lib[ix] = delig; + for (i = tay; i <= 40; i ++) lib[ix] = lib[ix] + ' '; + } + lib[46] = lib[45]; + lib[45] = ' '; + show_mouse(); + do { + choi = 0; + icm = 0; + co = 0; + lig = 0; + do { + icm = succ(integer, icm); + putxy(co, lig); + if (s.teauto[icm] == '*') + if (te[icm]) writetp(lib[icm], 1); + else writetp(lib[icm], 0); + if (icm == 23) { + lig = 0; + co = 320; + } else lig = lig + 8; + } while (!(icm == 42)); + putxy(320, 176); + writetp(lib[46], 0); + tou = '\0'; + do { + mov_mouse(f, tou); + /* if keypressed then read(kbd,tou);*/ + read_pos_mouse(x, y, c); + x = x * (3 - res); + if (x > 319) cx = 41; + else cx = 1; + cy = succ(integer, (cardinal)y >> 3); /* 0-199 => 1-25 */ + if ((cy > 23) || ((cx == 41) && (set::of(range(20, 22), eos).has(cy)))) { + if (choi != 0) { + lig = ((choi - 1) % 23) << 3; + if (choi > 23) co = 320; + else co = 0; + putxy(co, lig); + if (te[choi]) writetp(lib[choi], 0); + else writetp(lib[choi], 1); + te[choi] = ! te[choi]; + choi = 0; + } + } else { + ix = cy; + if (cx == 41) ix = ix + 23; + if (ix != choi) { + if (choi != 0) { + lig = ((choi - 1) % 23) << 3; + if (choi > 23) co = 320; + else co = 0; + putxy(co, lig); + if (te[choi]) writetp(lib[choi], 0); + else writetp(lib[choi], 1); + te[choi] = ! te[choi]; + } + if ((s.teauto[ix] == '*') || (ix == 46)) { + lig = ((ix - 1) % 23) << 3; + if (ix > 23) co = 320; + else co = 0; + putxy(co, lig); + if (te[ix]) writetp(lib[ix], 0); + else writetp(lib[ix], 1); + te[ix] = ! te[ix]; + choi = ix; + } else choi = 0; + } + } + } while (!((tou == '\15') || (((c != 0) || clic) && (choi != 0)))); + clic = false; + if (choi != 46) { + ix = choi - 1; + if (col) { + col = false; + s.mlieu = 15; + if (iouv > 0) max = 8; + else max = 4; + haz = hazard(1, max); + if (haz == 2) suj = 129; + else { + suj = 138; + s.conf = s.conf + (3 * (s.conf / 10)); + } + } else if (nbrep[caff - 69] < nbrepm[caff - 69]) { + suj = tabdon[arep + (ix << 3) + (caff - 70)]; + s.conf = s.conf + tabdon[arcf + ix]; + nbrep[caff - 69] = nbrep[caff - 69] + 1; + } else { + s.conf = s.conf + 3; + suj = 139; + } + hide_mouse(); + hirs(); + premtet(); + sparl(0, suj); + show_mouse(); + if ((suj == 84) || (suj == 86)) { + s.pourc[5] = '*'; + s.teauto[7] = '*'; + } + if ((suj == 106) || (suj == 108) || (suj == 94)) { + for (ix = 29; ix <= 31; ix ++) s.teauto[ix] = '*'; + s.pourc[7] = '*'; + } + if (suj == 70) { + s.pourc[8] = '*'; + s.teauto[32] = '*'; + } + hide_mouse(); + hirs(); + show_mouse(); + } + } while (!((choi == 46) || (suj == 138))); + if (col) { + s.conf = s.conf + (3 * (s.conf / 10)); + hide_mouse(); + hirs(); + premtet(); + sparl(0, 138); + show_mouse(); + col = false; + s.mlieu = 15; + } + ctrm = 0; + hide_mouse(); + hirs(); + dessine_rouleau(); + show_mouse(); + affper(ipers); + tinke(); + pendule(); + affrep(); + /* chech;*/ + tmlieu(s.mlieu); + clsf3(); } -/* overlay */ void tsentir() -{ - crep= 119; - if (caff< 26) - { - if (! syn) ecr3("sentir"); - tfleche(); - if (! (anyone) && ! (iesc)) - if (caff== 16) crep= 153; - } - else - if (caff== 123) crep= 110; - num= 0; +/* overlay */ void tsentir() { + crep = 119; + if (caff < 26) { + if (! syn) ecr3("sentir"); + tfleche(); + if (!(anyone) && !(iesc)) + if (caff == 16) crep = 153; + } else if (caff == 123) crep = 110; + num = 0; } -/* overlay */ void tgratter() -{ - crep= 155; - if (caff< 27) - { - if (! syn) ecr3("gratter"); - tfleche(); - } - num= 0; +/* overlay */ void tgratter() { + crep = 155; + if (caff < 27) { + if (! syn) ecr3("gratter"); + tfleche(); + } + num = 0; } /* NIVEAU 2 */ -/* overlay */ void tmaj1() /* Le jeu est termin‚ !!! */ -{ - arret= true; - tlu(13,152); - maivid(); - clsf1(); - clsf2(); - clsf3(); - repon(9,1509); - tkey1(false); - hide_mouse(); - caff= 70; - taffich(); - hirs(); - premtet(); - sparl(0,141); - show_mouse(); - clsf1(); - repon(9,1509); - repon(2,142); - tkey1(false); - caff= 32; - afdes(0); - repon(6,34); - repon(2,35); - musique(0); - tkey1(false); - messint(2036); - tkey1(false); - inzon(); +/* overlay */ void tmaj1() { /* Le jeu est termin‚ !!! */ + arret = true; + tlu(13, 152); + maivid(); + clsf1(); + clsf2(); + clsf3(); + repon(9, 1509); + tkey1(false); + hide_mouse(); + caff = 70; + taffich(); + hirs(); + premtet(); + sparl(0, 141); + show_mouse(); + clsf1(); + repon(9, 1509); + repon(2, 142); + tkey1(false); + caff = 32; + afdes(0); + repon(6, 34); + repon(2, 35); + musique(0); + tkey1(false); + messint(2036); + tkey1(false); + inzon(); } -/* overlay */ void tencore() /* Perdu !!! */ -{ - integer quel; +/* overlay */ void tencore() { /* Perdu !!! */ + integer quel; - clsf2(); - musique(0); - tkey1(false); - maivid(); - inzon(); - dprog(); - vh= 10; - vm= 0; - vj= 0; - min= 0; - heu= 10; - jou= 0; - repon(2,180); - quel= do_alert(stouinon,1); - arret= (quel!=1); + clsf2(); + musique(0); + tkey1(false); + maivid(); + inzon(); + dprog(); + vh = 10; + vm = 0; + vj = 0; + min = 0; + heu = 10; + jou = 0; + repon(2, 180); + quel = do_alert(stouinon, 1); + arret = (quel != 1); } diff --git a/engines/mortevielle/alert.h b/engines/mortevielle/alert.h index c3a45fe529..d059fc3ef3 100644 --- a/engines/mortevielle/alert.h +++ b/engines/mortevielle/alert.h @@ -2,213 +2,196 @@ const integer nligne = 7; -const matrix<1,2,1,3,integer> coord - = {{ {{150, 72, 103}}, - {{143, 107, 183}} }}; - - - -static void decod(str255 s, integer& nbc,integer& nbl,integer& col, str255& c, str30& cs) - { - integer i,k; - boolean v; - - val(s[2],nbc,i); - c= ""; - nbl= 0; i= 5; k= 0; - v=true; col=0; - - while (s[i]!=']') - { - c=c+s[i]; - if ((s[i]=='|') || (s[i+1]==']')) - { - if (k>col) col=k; - k= 0; - nbl=nbl+1; - } - else if (s[i]!=' ') v=false; - i=i+1; - k=k+1; - } - if (v) { - c=""; - col=20; - } - else { - c=c+']'; - col=col+6; - } - i=i+1; - cs=copy(s,i,30); - if (res==2) col= col*6; - else col= col*10; - } - - - -static void posit(integer ji, integer& coldep, integer& esp) - { - putxy(coldep + (40+esp) *pred(integer,ji),98); - } - - - -static void fait_boite(integer lidep,integer nli,integer tx) - { - integer x,y,xx,yy; - - if (tx>640) tx=640; - x= 320- ((cardinal)tx >> 1); - y=pred(integer,lidep) << 3; - xx=x+ tx; - yy=y + (nli << 3); - box(15,gd,x,y,xx,yy,255); - box(0,gd,x,y+2,xx,y+4,255); - box(0,gd,x,yy-4,xx,yy-2,255); - } - - - -static void fait_choix(str30 c, integer& coldep, integer& nbcase, array<1,2,varying_string<3> >& s, integer& esp) - { - integer i,l,x; - char ch; - - i=1; - x=coldep; - for( l=1; l <= nbcase; l ++) - { - s[l]=""; - do { - i=i+1; - ch=c[i]; - s[l]=s[l]+ch; - } while (!(c[i+1]==']')); - i=i+2; - while (length(s[l])<3) s[l]=s[l]+' '; - putxy(x,98); - writeg(string(' ')+s[l]+' ',0); - x= x+esp+40; - } - } - - integer do_alert(str255 str_, integer n) -{ - integer coldep,esp,i,l,nbcase,quoi,ix; - str255 st, chaine; - matrix<1,2,1,2,integer> limit; - char c,dumi; - array<1,2,varying_string<3> > s; - integer cx,cy,cd,nbcol,nblig; - boolean touch,newaff,test,test1,test2,test3,dum; - str30 cas; - - - /*debug('** do_alert **');*/ - integer do_alert_result; - hide_mouse(); - while (keypressed()) input >> kbd >> dumi; - clic=false; - decod(str_,nbcase,nblig,nbcol,chaine,cas); - sauvecr(50,succ(integer,nligne) << 4); - - i=0; - if (chaine=="") - { - fait_boite(10,5,nbcol); - } - else - { - fait_boite(8,7,nbcol); - i=0; - ywhere=70; - do { - cx= 320; - st= ""; - while (! (set::of('\174','\135', eos).has(chaine[i+1]))) - { - i=i+1; - st=st+chaine[i]; - if (res==2) cx=cx-3; - else cx=cx-5; - } - putxy(cx,ywhere); - ywhere=ywhere+6; - writeg(st,4); - i=i+1; - } while (!(chaine[i]==']')); - } - if (nbcase==1) esp= nbcol- 40; - else esp= (cardinal)(nbcol-nbcase*40) >> 1; - coldep=320-((cardinal)nbcol >> 1)+((cardinal)esp >> 1); - fait_choix(cas, coldep, nbcase, s, esp); - limit[1][1]=((cardinal)(coldep) >> 1)*res; - limit[1][2]=limit[1][1]+40; - if (nbcase==1) - { - limit[2][1]=limit[2][2]; - } - else - { - limit[2][1]=((cardinal)(320+((cardinal)esp >> 1)) >> 1)*res; - limit[2][2]=(limit[2][1])+40; - } - show_mouse(); - quoi=0; - dum=false; - do { - dumi='\377'; - mov_mouse(dum,dumi); - cx= x_s; - cy= y_s; - test=(cy>95) && (cy<105); - newaff=false; - if (test) - { - test1=(cx>limit[1][1]) && (cx<limit[1][2]); - test2=test1; - if (nbcase>1) test2= test1 || ((cx>limit[2][1]) && (cx<limit[2][2])); - if (test2) - { - newaff=true; - if (test1) ix=1; - else ix=2; - if (ix!=quoi) - { - hide_mouse(); - if (quoi!=0) - { - posit(quoi, coldep, esp); - writeg(string(' ')+s[quoi]+' ',0); - } - posit(ix, coldep, esp); - writeg(string(' ')+s[ix]+' ',1); - quoi=ix; - show_mouse(); - } - } - } - if ((quoi!=0) && ! newaff) - { - hide_mouse(); - posit(quoi, coldep, esp); - writeg(string(' ')+s[quoi]+' ',0); - quoi=0; - show_mouse(); - } - test3=(cy>95) && (cy<105) && (((cx>limit[1][1]) && (cx<limit[1][2])) - || ((cx>limit[2][1]) && (cx<limit[2][2]))); - } while (!clic); - clic=false; - hide_mouse(); - if (! test3) { - quoi=n; - posit(n, coldep, esp); - writeg(string(' ')+s[n]+' ',1); - } - charecr(50,succ(integer,nligne) << 4); - show_mouse(); - do_alert_result=quoi; - return do_alert_result; +const matrix<1, 2, 1, 3, integer> coord += {{ {{150, 72, 103}}, + {{143, 107, 183}} + } +}; + + + +static void decod(str255 s, integer &nbc, integer &nbl, integer &col, str255 &c, str30 &cs) { + integer i, k; + boolean v; + + val(s[2], nbc, i); + c = ""; + nbl = 0; + i = 5; + k = 0; + v = true; + col = 0; + + while (s[i] != ']') { + c = c + s[i]; + if ((s[i] == '|') || (s[i + 1] == ']')) { + if (k > col) col = k; + k = 0; + nbl = nbl + 1; + } else if (s[i] != ' ') v = false; + i = i + 1; + k = k + 1; + } + if (v) { + c = ""; + col = 20; + } else { + c = c + ']'; + col = col + 6; + } + i = i + 1; + cs = copy(s, i, 30); + if (res == 2) col = col * 6; + else col = col * 10; +} + + + +static void posit(integer ji, integer &coldep, integer &esp) { + putxy(coldep + (40 + esp) *pred(integer, ji), 98); +} + + + +static void fait_boite(integer lidep, integer nli, integer tx) { + integer x, y, xx, yy; + + if (tx > 640) tx = 640; + x = 320 - ((cardinal)tx >> 1); + y = pred(integer, lidep) << 3; + xx = x + tx; + yy = y + (nli << 3); + box(15, gd, x, y, xx, yy, 255); + box(0, gd, x, y + 2, xx, y + 4, 255); + box(0, gd, x, yy - 4, xx, yy - 2, 255); +} + + + +static void fait_choix(str30 c, integer &coldep, integer &nbcase, array<1, 2, varying_string<3> > &s, integer &esp) { + integer i, l, x; + char ch; + + i = 1; + x = coldep; + for (l = 1; l <= nbcase; l ++) { + s[l] = ""; + do { + i = i + 1; + ch = c[i]; + s[l] = s[l] + ch; + } while (!(c[i + 1] == ']')); + i = i + 2; + while (length(s[l]) < 3) s[l] = s[l] + ' '; + putxy(x, 98); + writeg(string(' ') + s[l] + ' ', 0); + x = x + esp + 40; + } +} + +integer do_alert(str255 str_, integer n) { + integer coldep, esp, i, l, nbcase, quoi, ix; + str255 st, chaine; + matrix<1, 2, 1, 2, integer> limit; + char c, dumi; + array<1, 2, varying_string<3> > s; + integer cx, cy, cd, nbcol, nblig; + boolean touch, newaff, test, test1, test2, test3, dum; + str30 cas; + + + /*debug('** do_alert **');*/ + integer do_alert_result; + hide_mouse(); + while (keypressed()) input >> kbd >> dumi; + clic = false; + decod(str_, nbcase, nblig, nbcol, chaine, cas); + sauvecr(50, succ(integer, nligne) << 4); + + i = 0; + if (chaine == "") { + fait_boite(10, 5, nbcol); + } else { + fait_boite(8, 7, nbcol); + i = 0; + ywhere = 70; + do { + cx = 320; + st = ""; + while (!(set::of('\174', '\135', eos).has(chaine[i + 1]))) { + i = i + 1; + st = st + chaine[i]; + if (res == 2) cx = cx - 3; + else cx = cx - 5; + } + putxy(cx, ywhere); + ywhere = ywhere + 6; + writeg(st, 4); + i = i + 1; + } while (!(chaine[i] == ']')); + } + if (nbcase == 1) esp = nbcol - 40; + else esp = (cardinal)(nbcol - nbcase * 40) >> 1; + coldep = 320 - ((cardinal)nbcol >> 1) + ((cardinal)esp >> 1); + fait_choix(cas, coldep, nbcase, s, esp); + limit[1][1] = ((cardinal)(coldep) >> 1) * res; + limit[1][2] = limit[1][1] + 40; + if (nbcase == 1) { + limit[2][1] = limit[2][2]; + } else { + limit[2][1] = ((cardinal)(320 + ((cardinal)esp >> 1)) >> 1) * res; + limit[2][2] = (limit[2][1]) + 40; + } + show_mouse(); + quoi = 0; + dum = false; + do { + dumi = '\377'; + mov_mouse(dum, dumi); + cx = x_s; + cy = y_s; + test = (cy > 95) && (cy < 105); + newaff = false; + if (test) { + test1 = (cx > limit[1][1]) && (cx < limit[1][2]); + test2 = test1; + if (nbcase > 1) test2 = test1 || ((cx > limit[2][1]) && (cx < limit[2][2])); + if (test2) { + newaff = true; + if (test1) ix = 1; + else ix = 2; + if (ix != quoi) { + hide_mouse(); + if (quoi != 0) { + posit(quoi, coldep, esp); + writeg(string(' ') + s[quoi] + ' ', 0); + } + posit(ix, coldep, esp); + writeg(string(' ') + s[ix] + ' ', 1); + quoi = ix; + show_mouse(); + } + } + } + if ((quoi != 0) && ! newaff) { + hide_mouse(); + posit(quoi, coldep, esp); + writeg(string(' ') + s[quoi] + ' ', 0); + quoi = 0; + show_mouse(); + } + test3 = (cy > 95) && (cy < 105) && (((cx > limit[1][1]) && (cx < limit[1][2])) + || ((cx > limit[2][1]) && (cx < limit[2][2]))); + } while (!clic); + clic = false; + hide_mouse(); + if (! test3) { + quoi = n; + posit(n, coldep, esp); + writeg(string(' ') + s[n] + ' ', 1); + } + charecr(50, succ(integer, nligne) << 4); + show_mouse(); + do_alert_result = quoi; + return do_alert_result; } diff --git a/engines/mortevielle/boite.h b/engines/mortevielle/boite.h index 0819490bfc..4120f7337f 100644 --- a/engines/mortevielle/boite.h +++ b/engines/mortevielle/boite.h @@ -1,30 +1,29 @@ -void boite(integer x,integer y,integer dx,integer dy,integer coul) - { - integer i; - integer xi,yi,xo,yo; +void boite(integer x, integer y, integer dx, integer dy, integer coul) { + integer i; + integer xi, yi, xo, yo; - /* debug('boite'); */ - hide_mouse(); - if (res==1) - { - x= (cardinal)x >> 1; - dx= (cardinal)dx >> 1; - } - xi=x; yi=y; xo=x; yo=y; - for( i=0; i <= dx+dy; i ++) - { - putpix(gd,xi,yi,coul); - if (xi==x+dx) { - if (gd!=cga) putpix(gd,pred(integer,xi),yi,coul); - yi=succ(integer,yi); - } - else xi=succ(integer,xi); - putpix(gd,xo,yo,coul); - if (yo==y+dy) xo=succ(integer,xo); - else { - if (gd!=cga) putpix(gd,succ(integer,xo),yo,coul); - yo=succ(integer,yo); - } - } - show_mouse(); - } + /* debug('boite'); */ + hide_mouse(); + if (res == 1) { + x = (cardinal)x >> 1; + dx = (cardinal)dx >> 1; + } + xi = x; + yi = y; + xo = x; + yo = y; + for (i = 0; i <= dx + dy; i ++) { + putpix(gd, xi, yi, coul); + if (xi == x + dx) { + if (gd != cga) putpix(gd, pred(integer, xi), yi, coul); + yi = succ(integer, yi); + } else xi = succ(integer, xi); + putpix(gd, xo, yo, coul); + if (yo == y + dy) xo = succ(integer, xo); + else { + if (gd != cga) putpix(gd, succ(integer, xo), yo, coul); + yo = succ(integer, yo); + } + } + show_mouse(); +} diff --git a/engines/mortevielle/disk.h b/engines/mortevielle/disk.h index 28a2dbe6a5..517d408c87 100644 --- a/engines/mortevielle/disk.h +++ b/engines/mortevielle/disk.h @@ -1,78 +1,72 @@ -void dem1() -{ - untyped_file f; - integer k; +void dem1() { + untyped_file f; + integer k; - /* -- demande de disk 1 -- */ - assign(f,"mort.005"); - /*$i-*/ - k=ioresult; - reset(f); - while (ioresult!=0) - { - show_mouse(); - k= do_alert(al_mess,1); - hide_mouse(); - reset(f); - } - close(f); + /* -- demande de disk 1 -- */ + assign(f, "mort.005"); + /*$i-*/ + k = ioresult; + reset(f); + while (ioresult != 0) { + show_mouse(); + k = do_alert(al_mess, 1); + hide_mouse(); + reset(f); + } + close(f); } -void takesav(integer n) -{ - untyped_file f; - integer i; - varying_string<10> st; +void takesav(integer n) { + untyped_file f; + integer i; + varying_string<10> st; - dem1(); - /* -- chargement du fichier 'sauve#n.mor' -- */ - st= string("sav")+chr(n+48)+".mor"; - assign(f,st); - reset(f,497); - blockread(f,s1,1); - if (ioresult!=0) - { - i=do_alert(err_mess,1); - exit(0); - } - s=s1; - for( i=0; i <= 389; i ++) tabdon[i+acha]=bufcha[i]; - close(f); + dem1(); + /* -- chargement du fichier 'sauve#n.mor' -- */ + st = string("sav") + chr(n + 48) + ".mor"; + assign(f, st); + reset(f, 497); + blockread(f, s1, 1); + if (ioresult != 0) { + i = do_alert(err_mess, 1); + exit(0); + } + s = s1; + for (i = 0; i <= 389; i ++) tabdon[i + acha] = bufcha[i]; + close(f); } -void ld_game(integer n) -{ - hide_mouse(); - maivid(); - takesav(n); - /* -- disquette 2 -- */ - dem2(); - /* -- mises en place -- */ - theure(); - dprog(); - antegame(); - show_mouse(); +void ld_game(integer n) { + hide_mouse(); + maivid(); + takesav(n); + /* -- disquette 2 -- */ + dem2(); + /* -- mises en place -- */ + theure(); + dprog(); + antegame(); + show_mouse(); } -void sv_game(integer n) -{ - untyped_file f; - integer i; +void sv_game(integer n) { + untyped_file f; + integer i; - hide_mouse(); - tmaj3(); - dem1(); - /* -- sauvegarde du fichier 'sauve#n.mor' -- */ - for( i=0; i <= 389; i ++) bufcha[i]=tabdon[i+acha]; - s1=s; - if (s1.mlieu== 26) s1.mlieu= 15; - assign(f,string("sav")+chr(n+48)+".mor"); - rewrite(f,497); - blockwrite(f,s1,1); - close(f); - dem2(); - show_mouse(); + hide_mouse(); + tmaj3(); + dem1(); + /* -- sauvegarde du fichier 'sauve#n.mor' -- */ + for (i = 0; i <= 389; i ++) bufcha[i] = tabdon[i + acha]; + s1 = s; + if (s1.mlieu == 26) s1.mlieu = 15; + assign(f, string("sav") + chr(n + 48) + ".mor"); + rewrite(f, 497); + blockwrite(f, s1, 1); + close(f); + dem2(); + show_mouse(); } diff --git a/engines/mortevielle/droite.h b/engines/mortevielle/droite.h index 7dd029e2ec..8d254a4afc 100644 --- a/engines/mortevielle/droite.h +++ b/engines/mortevielle/droite.h @@ -1,35 +1,34 @@ -void droite( integer x, integer y, integer xx, integer yy, integer coul ) - { - integer step,i; - real a,b; - real xr,yr,xro,yro; +void droite(integer x, integer y, integer xx, integer yy, integer coul) { + integer step, i; + real a, b; + real xr, yr, xro, yro; - xr=x; yr=y; xro=xx; yro=yy; - /*writeln(le_file,'(',x:4,',',y:4,') ==> (',xx:4,',',yy:4,')');*/ - if (abs(y-yy) > abs(x-xx)) - { - a= (real)((x-xx)) / (y-yy); - b= ( yr*xro - yro*xr) / (y-yy); - i=y; - if (y>yy) step=-1; - else step=1; - do { - putpix(gd, trunc(a*i+b), i, coul); - i=i+step; - } while (!(i==yy)); - /*writeln(le_file,'X == ',a:3:3,' * Y + ',b:3:3);*/ - } - else - { - a= (real)((y-yy)) / (x-xx); - b= ((yro*xr) - (yr*xro)) / (x-xx); - i=x; - if (x>xx) step=-1; - else step=1; - do { - putpix(gd,i, trunc(a*i+b), coul); - i=i+step; - } while (!(i==xx)); - /*writeln(le_file,'Y == ',a:3:3,' * X + ',b:3:3);*/ - } - }
\ No newline at end of file + xr = x; + yr = y; + xro = xx; + yro = yy; + /*writeln(le_file,'(',x:4,',',y:4,') ==> (',xx:4,',',yy:4,')');*/ + if (abs(y - yy) > abs(x - xx)) { + a = (real)((x - xx)) / (y - yy); + b = (yr * xro - yro * xr) / (y - yy); + i = y; + if (y > yy) step = -1; + else step = 1; + do { + putpix(gd, trunc(a * i + b), i, coul); + i = i + step; + } while (!(i == yy)); + /*writeln(le_file,'X == ',a:3:3,' * Y + ',b:3:3);*/ + } else { + a = (real)((y - yy)) / (x - xx); + b = ((yro * xr) - (yr * xro)) / (x - xx); + i = x; + if (x > xx) step = -1; + else step = 1; + do { + putpix(gd, i, trunc(a * i + b), coul); + i = i + step; + } while (!(i == xx)); + /*writeln(le_file,'Y == ',a:3:3,' * X + ',b:3:3);*/ + } +}
\ No newline at end of file diff --git a/engines/mortevielle/keyboard.h b/engines/mortevielle/keyboard.h index 9f8423a41f..b450e074c1 100644 --- a/engines/mortevielle/keyboard.h +++ b/engines/mortevielle/keyboard.h @@ -1,59 +1,60 @@ -char readkey1() - { - char c; +char readkey1() { + char c; - char readkey1_result; - input >> kbd >> c; - readkey1_result= c; - return readkey1_result; - } + char readkey1_result; + input >> kbd >> c; + readkey1_result = c; + return readkey1_result; +} -integer testou() - { - char ch; +integer testou() { + char ch; - integer testou_result; - input >> kbd >> ch; - switch (ch) { - case '\23' : sonoff= ! sonoff; break; - case '\1': - case '\3': - case '\5' : { - newgd= (cardinal)pred(integer,ord(ch)) >> 1; - testou_result= 61; - return testou_result; - } - break; - case '\10' : { - newgd= her; - testou_result= 61; - return testou_result; - } - break; - case '\24' : { - newgd= tan; - testou_result= 61; - return testou_result; - } - break; - case '\26' : if (set::of(1,2, eos).has(c_zzz)) - { - zzuul(adcfiec+161,0,1644); - c_zzz=succ(integer,c_zzz); - testou_result=61; - return testou_result; - } - break; - case '\33' : if (keypressed()) input >> kbd >> ch; break; - } - testou_result=ord(ch); - return testou_result; - } + integer testou_result; + input >> kbd >> ch; + switch (ch) { + case '\23' : + sonoff = ! sonoff; + break; + case '\1': + case '\3': + case '\5' : { + newgd = (cardinal)pred(integer, ord(ch)) >> 1; + testou_result = 61; + return testou_result; + } + break; + case '\10' : { + newgd = her; + testou_result = 61; + return testou_result; + } + break; + case '\24' : { + newgd = tan; + testou_result = 61; + return testou_result; + } + break; + case '\26' : + if (set::of(1, 2, eos).has(c_zzz)) { + zzuul(adcfiec + 161, 0, 1644); + c_zzz = succ(integer, c_zzz); + testou_result = 61; + return testou_result; + } + break; + case '\33' : + if (keypressed()) input >> kbd >> ch; + break; + } + testou_result = ord(ch); + return testou_result; +} -void teskbd() - { - integer dum; +void teskbd() { + integer dum; - if (keypressed()) dum=testou(); - } + if (keypressed()) dum = testou(); +} diff --git a/engines/mortevielle/level15.h b/engines/mortevielle/level15.h index be92e8dca2..2c9b8cdcf4 100644 --- a/engines/mortevielle/level15.h +++ b/engines/mortevielle/level15.h @@ -1,87 +1,80 @@ /* NIVEAU 15 */ -void copcha() -{ - integer i; - - i= acha; - do { - tabdon[i]=tabdon[i+390]; - i=succ(integer,i); - } while (!(i==acha +390)); +void copcha() { + integer i; + + i = acha; + do { + tabdon[i] = tabdon[i + 390]; + i = succ(integer, i); + } while (!(i == acha + 390)); } -boolean dans_rect( rectangle r ) - { - integer x, y, c; - - boolean dans_rect_result; - read_pos_mouse(x,y,c); - if ((x>r.x1) && - (x<r.x2) && - (y>r.y1) && - (y<r.y2)) dans_rect_result= true; - else dans_rect_result= false; - return dans_rect_result; - } - -void outbloc(integer n, pattern p, t_nhom pal) - { - integer i,j,ad; - - ad=n*404+0xd700; - { - memw[0x6000+ad]= p.tax; - memw[0x6000+ad+2]= p.tay; - ad=ad+4; - for( i=1; i <= p.tax; i ++) - for( j=1; j <= p.tay; j ++) - mem[0x6000+ad+pred(integer,j)*p.tax+pred(integer,i)]= pal[n].hom[p.des[i][j]]; - } - } - - -void writepal(integer n) - { - integer i; - t_nhom pal; - - - switch (gd) { - case tan: - case ega: - case ams : for( i=1; i <= 16; i ++) - { - mem[0x7000+2*i]= tabpal[n][i].x; - mem[0x7000+succ(integer,2*i)]= tabpal[n][i].y; - } - break; - case cga : { - pal= palcga[n].a; - if (n<89) palette(palcga[n].p); - for( i=0; i <= 15; i ++) outbloc(i, tpt[pal[i].n],pal); - } - break; - } - } - - -void pictout(integer seg,integer dep,integer x,integer y) - { - decomp(seg,dep); - if (gd==her) - { - mem[0x7000+2]=0; - mem[0x7000+32]=15; - } - if ((caff!=51) && (memw[0x7000+0x4138]>0x100)) memw[0x7000+0x4138]=0x100; - afff(gd,seg,dep,x,y); - } - -void putxy(integer x,integer y) -{ - xwhere=x; - ywhere=y; +boolean dans_rect(rectangle r) { + integer x, y, c; + + boolean dans_rect_result; + read_pos_mouse(x, y, c); + if ((x > r.x1) && + (x < r.x2) && + (y > r.y1) && + (y < r.y2)) dans_rect_result = true; + else dans_rect_result = false; + return dans_rect_result; +} + +void outbloc(integer n, pattern p, t_nhom pal) { + integer i, j, ad; + + ad = n * 404 + 0xd700; + { + memw[0x6000 + ad] = p.tax; + memw[0x6000 + ad + 2] = p.tay; + ad = ad + 4; + for (i = 1; i <= p.tax; i ++) + for (j = 1; j <= p.tay; j ++) + mem[0x6000 + ad + pred(integer, j)*p.tax + pred(integer, i)] = pal[n].hom[p.des[i][j]]; + } +} + + +void writepal(integer n) { + integer i; + t_nhom pal; + + + switch (gd) { + case tan: + case ega: + case ams : + for (i = 1; i <= 16; i ++) { + mem[0x7000 + 2 * i] = tabpal[n][i].x; + mem[0x7000 + succ(integer, 2 * i)] = tabpal[n][i].y; + } + break; + case cga : { + pal = palcga[n].a; + if (n < 89) palette(palcga[n].p); + for (i = 0; i <= 15; i ++) outbloc(i, tpt[pal[i].n], pal); + } + break; + } +} + + +void pictout(integer seg, integer dep, integer x, integer y) { + decomp(seg, dep); + if (gd == her) { + mem[0x7000 + 2] = 0; + mem[0x7000 + 32] = 15; + } + if ((caff != 51) && (memw[0x7000 + 0x4138] > 0x100)) memw[0x7000 + 0x4138] = 0x100; + afff(gd, seg, dep, x, y); +} + +void putxy(integer x, integer y) { + xwhere = x; + ywhere = y; } /* function calad(x,y:integer):integer; @@ -89,19 +82,17 @@ function calad(x,y:integer):integer; calad:=pred(x)+320*pred(y) end; */ -void sauvecr(integer y,integer dy) - { - hide_mouse(); - s_sauv(gd,y,dy); - show_mouse(); - } - -void charecr(integer y,integer dy) - { - hide_mouse(); - s_char(gd,y,dy); - show_mouse(); - } +void sauvecr(integer y, integer dy) { + hide_mouse(); + s_sauv(gd, y, dy); + show_mouse(); +} + +void charecr(integer y, integer dy) { + hide_mouse(); + s_char(gd, y, dy); + show_mouse(); +} /* function peek(ad:integer):integer; begin @@ -125,54 +116,52 @@ begin end; */ -void adzon() - { - untyped_file f; - file<byte> g; - byte a; - integer i; - - assign(f,"don.mor"); - reset(f,256); - blockread(f,tabdon,7); - close(f); - assign(f,"bmor.mor"); - reset(f,1916); - blockread(f,tabdon[fleche],1); - /*i:=fleche; - repeat - read(g,a); - tabdon[i]:=a; - i:=succ(i); - until i=fleche + 1916;*/ - close(f); - assign(f,"dec.mor"); - reset(f,1664); - blockread(f,mem[0x73a2+0],1); - /*i:=0; - repeat - read(g,a); - mem[$73A2:i]:=a; - i:=succ(i); - until eof(g);*/ - close(f); - } - -integer animof (integer ouf,integer num) - { - integer nani, aux; - - integer animof_result; - nani= mem[adani+1]; - aux= num; - if (ouf!=1) aux= aux+nani; - animof_result=(nani << 2) + 2+swap(memw[adani+ (aux << 1)]); - /*aux:= nani shl 2 + 2; - if ouf=1 then aux:= aux+ swap(memw[adani: num shl 1]) - else aux:= aux+ swap(memw[adani: (nani+num) shl 1]); - animof:=aux;*/ - return animof_result; - } +void adzon() { + untyped_file f; + file<byte> g; + byte a; + integer i; + + assign(f, "don.mor"); + reset(f, 256); + blockread(f, tabdon, 7); + close(f); + assign(f, "bmor.mor"); + reset(f, 1916); + blockread(f, tabdon[fleche], 1); + /*i:=fleche; + repeat + read(g,a); + tabdon[i]:=a; + i:=succ(i); + until i=fleche + 1916;*/ + close(f); + assign(f, "dec.mor"); + reset(f, 1664); + blockread(f, mem[0x73a2 + 0], 1); + /*i:=0; + repeat + read(g,a); + mem[$73A2:i]:=a; + i:=succ(i); + until eof(g);*/ + close(f); +} + +integer animof(integer ouf, integer num) { + integer nani, aux; + + integer animof_result; + nani = mem[adani + 1]; + aux = num; + if (ouf != 1) aux = aux + nani; + animof_result = (nani << 2) + 2 + swap(memw[adani + (aux << 1)]); + /*aux:= nani shl 2 + 2; + if ouf=1 then aux:= aux+ swap(memw[adani: num shl 1]) + else aux:= aux+ swap(memw[adani: (nani+num) shl 1]); + animof:=aux;*/ + return animof_result; +} /*procedure affgd(offs,dep,x,y:integer); begin diff --git a/engines/mortevielle/menu.h b/engines/mortevielle/menu.h index 9256182280..691ef7c852 100644 --- a/engines/mortevielle/menu.h +++ b/engines/mortevielle/menu.h @@ -1,306 +1,334 @@ /* NIVEAU 14*/ -/* overlay */ void menut(integer no, str30 nom) - { - byte h,l; - str30 s; +/* overlay */ void menut(integer no, str30 nom) { + byte h, l; + str30 s; - /* debug('menut'); */ - h=hi(no); - l=lo(no); - s=nom; - if (! tesok) - { - clrscr; - exit(0); - } - while (length(s)<30) s=s+' '; - switch (h) { - case invent : if (l!=7) inv[l]= string(' ')+s; break; - case depla : dep[l]= s; break; - case action : act[l]= s; break; - case saction : self_[l]= s; break; - case discut : dis[l]= s; break; - } - } + /* debug('menut'); */ + h = hi(no); + l = lo(no); + s = nom; + if (! tesok) { + clrscr; + exit(0); + } + while (length(s) < 30) s = s + ' '; + switch (h) { + case invent : + if (l != 7) inv[l] = string(' ') + s; + break; + case depla : + dep[l] = s; + break; + case action : + act[l] = s; + break; + case saction : + self_[l] = s; + break; + case discut : + dis[l] = s; + break; + } +} -/* overlay */ void menu_disable(integer no) - { - byte h,l; +/* overlay */ void menu_disable(integer no) { + byte h, l; - /* debug('menu_disable'); */ - h=hi(no); - l=lo(no); - switch (h) { - case invent : { - if (l>6) { - inv[l][1]='<'; - inv[l][22]='>'; - } - else inv[l][1]='*'; - } - break; - case depla : dep[l][1]='*'; break; - case action : act[l][1]='*'; break; - case saction : self_[l][1]='*'; break; - case discut : dis[l][1]='*'; break; - } - } + /* debug('menu_disable'); */ + h = hi(no); + l = lo(no); + switch (h) { + case invent : { + if (l > 6) { + inv[l][1] = '<'; + inv[l][22] = '>'; + } else inv[l][1] = '*'; + } + break; + case depla : + dep[l][1] = '*'; + break; + case action : + act[l][1] = '*'; + break; + case saction : + self_[l][1] = '*'; + break; + case discut : + dis[l][1] = '*'; + break; + } +} -/* overlay */ void menu_enable(integer no) - { - byte h,l; +/* overlay */ void menu_enable(integer no) { + byte h, l; - /* debug('menu_disable'); */ - h=hi(no); - l=lo(no); - switch (h) { - case invent : { - inv[l][1]=' '; - inv[l][22]=' '; - } - break; - case depla : dep[l][1]=' '; break; - case action : act[l][1]=' '; break; - case saction : { - self_[l][1]=' '; - self_[l][1]=' '; - } - break; - case discut : dis[l][1]=' '; break; - } - } + /* debug('menu_disable'); */ + h = hi(no); + l = lo(no); + switch (h) { + case invent : { + inv[l][1] = ' '; + inv[l][22] = ' '; + } + break; + case depla : + dep[l][1] = ' '; + break; + case action : + act[l][1] = ' '; + break; + case saction : { + self_[l][1] = ' '; + self_[l][1] = ' '; + } + break; + case discut : + dis[l][1] = ' '; + break; + } +} -void menu_aff() - { - integer ind_tabl,k,col; - char c; - integer pt,x,y,color,msk, - num_letr; +void menu_aff() { + integer ind_tabl, k, col; + char c; + integer pt, x, y, color, msk, + num_letr; - /* debug('menu_aff'); */ - hide_mouse(); - /*if not tesok then - begin - clrscr; - halt; - end;*/ - box( 7, gd, 0,0, 639,10, 255); - col= 28*res; - if (gd == cga) color=1; - else color=9; - num_letr=0; - do { /* lettre par lettre */ - num_letr= num_letr +1; - ind_tabl=0; - y= 1; - do { /* colonne par colonne */ - k=0; - x= col; - do { /* ligne par ligne */ - msk=0x80; - for( pt=0; pt <= 7; pt ++) - { - if ((lettres[num_letr][ind_tabl] & msk)!=0) - { - putpix(gd,x+1,y+1,0); - putpix(gd,x,y+1,0); - putpix(gd,x,y,color); - } - msk= (cardinal)msk >> 1; - x=x +1; - } - ind_tabl=succ(integer,ind_tabl); - k=succ(integer,k); - } while (!(k==3)); - y=y+1; - } while (!(y==9)); - col=col+48*res; - } while (!(num_letr==6)); - show_mouse(); - } + /* debug('menu_aff'); */ + hide_mouse(); + /*if not tesok then + begin + clrscr; + halt; + end;*/ + box(7, gd, 0, 0, 639, 10, 255); + col = 28 * res; + if (gd == cga) color = 1; + else color = 9; + num_letr = 0; + do { /* lettre par lettre */ + num_letr = num_letr + 1; + ind_tabl = 0; + y = 1; + do { /* colonne par colonne */ + k = 0; + x = col; + do { /* ligne par ligne */ + msk = 0x80; + for (pt = 0; pt <= 7; pt ++) { + if ((lettres[num_letr][ind_tabl] & msk) != 0) { + putpix(gd, x + 1, y + 1, 0); + putpix(gd, x, y + 1, 0); + putpix(gd, x, y, color); + } + msk = (cardinal)msk >> 1; + x = x + 1; + } + ind_tabl = succ(integer, ind_tabl); + k = succ(integer, k); + } while (!(k == 3)); + y = y + 1; + } while (!(y == 9)); + col = col + 48 * res; + } while (!(num_letr == 6)); + show_mouse(); +} -void draw_menu() - { - /* debug('draw_menu'); */ - menu_aff(); - active_menu=true; - msg4=no_choice; - msg3=no_choice; - choisi=false; - clic=false; - test0=false; - } +void draw_menu() { + /* debug('draw_menu'); */ + menu_aff(); + active_menu = true; + msg4 = no_choice; + msg3 = no_choice; + choisi = false; + clic = false; + test0 = false; +} -void invers(integer ix) - { - varying_string<23> s; +void invers(integer ix) { + varying_string<23> s; - /* debug('invers'); */ - if (msg4==no_choice) return; - putxy(don[msg3][1] << 3,succ(void,lo(msg4)) << 3); - switch (msg3) { - case 1 : s= inv[lo(msg4)]; break; - case 2 : s= dep[lo(msg4)]; break; - case 3 : s= act[lo(msg4)]; break; - case 4 : s= self_[lo(msg4)]; break; - case 5 : s= dis[lo(msg4)]; break; - case 6 : s= fic[lo(msg4)]; break; - case 7 : s= fic[1]+' '+chr(48+lo(msg4)); break; - case 8 : if (lo(msg4)==1) s=recom; - else s= fic[2]+' '+chr(47+lo(msg4)); - break; - } - if ((s[1]!='*') && (s[1]!='<')) writeg(s,ix); - else msg4=no_choice; - } + /* debug('invers'); */ + if (msg4 == no_choice) return; + putxy(don[msg3][1] << 3, succ(void, lo(msg4)) << 3); + switch (msg3) { + case 1 : + s = inv[lo(msg4)]; + break; + case 2 : + s = dep[lo(msg4)]; + break; + case 3 : + s = act[lo(msg4)]; + break; + case 4 : + s = self_[lo(msg4)]; + break; + case 5 : + s = dis[lo(msg4)]; + break; + case 6 : + s = fic[lo(msg4)]; + break; + case 7 : + s = fic[1] + ' ' + chr(48 + lo(msg4)); + break; + case 8 : + if (lo(msg4) == 1) s = recom; + else s = fic[2] + ' ' + chr(47 + lo(msg4)); + break; + } + if ((s[1] != '*') && (s[1] != '<')) writeg(s, ix); + else msg4 = no_choice; +} -void util(integer x,integer y) - { - integer ymx, dxcar, xmn, xmx, ix; +void util(integer x, integer y) { + integer ymx, dxcar, xmn, xmx, ix; - /* debug('util'); */ - ymx= (don[msg3][4] << 3)+16; - dxcar= don[msg3][3]; - xmn= (don[msg3][1] << 2)*res; - if (res==1) ix=5; else ix=3; - xmx= dxcar*ix*res+ xmn+ 2; - if ((x>xmn) && (x<xmx) && (y<ymx) && (y>15)) - { - ix= pred(integer,(cardinal)y >> 3)+ (msg3 << 8); - if (ix!=msg4) - { - invers(1); - msg4=ix; - invers(0); - } - } - else if (msg4!=no_choice) - { - invers(1); - msg4=no_choice; - } - } + /* debug('util'); */ + ymx = (don[msg3][4] << 3) + 16; + dxcar = don[msg3][3]; + xmn = (don[msg3][1] << 2) * res; + if (res == 1) ix = 5; + else ix = 3; + xmx = dxcar * ix * res + xmn + 2; + if ((x > xmn) && (x < xmx) && (y < ymx) && (y > 15)) { + ix = pred(integer, (cardinal)y >> 3) + (msg3 << 8); + if (ix != msg4) { + invers(1); + msg4 = ix; + invers(0); + } + } else if (msg4 != no_choice) { + invers(1); + msg4 = no_choice; + } +} -void menu_down( integer ii) - { - integer cx, xcc; - integer xco, nb_lig; +void menu_down(integer ii) { + integer cx, xcc; + integer xco, nb_lig; - /* debug('menu_down'); */ - xco=don[ii][1]; - nb_lig= don[ii][4]; - hide_mouse(); - sauvecr(10,succ(byte,don[ii][2]) << 1); - xco= xco << 3; - if (res==1) cx=10; else cx=6; - xcc= xco+ (don[ii][3]*cx)+6; - box(15, gd, xco,12, xcc, 10 + (don[ii][2] << 1), 255); - box(0, gd, xcc, 12, xcc+4, 10 + (don[ii][2] << 1),255); - box(0,gd,xco, 8 + (don[ii][2] << 1), xcc+4, 12 + (don[ii][2] << 1),255); - putxy(xco,16); - cx=0; - do { - cx= succ(integer,cx); - switch (ii) { - case 1 : if (inv[cx][1]!= '*') writeg(inv[cx],4); break; - case 2 : if (dep[cx][1]!= '*') writeg(dep[cx],4); break; - case 3 : if (act[cx][1]!= '*') writeg(act[cx],4); break; - case 4 : if (self_[cx][1]!='*') writeg(self_[cx],4); break; - case 5 : if (dis[cx][1]!= '*') writeg(dis[cx],4); break; - case 6 : writeg(fic[cx],4); break; - case 7 : writeg(fic[1]+' '+chr(48+cx),4); break; - case 8 : if (cx==1) writeg( recom,4); - else writeg(fic[2]+' '+chr(47+cx),4); - break; - } - putxy(xco,ywhere+8); - } while (!(cx==nb_lig)); - test0=true; - show_mouse(); - } + /* debug('menu_down'); */ + xco = don[ii][1]; + nb_lig = don[ii][4]; + hide_mouse(); + sauvecr(10, succ(byte, don[ii][2]) << 1); + xco = xco << 3; + if (res == 1) cx = 10; + else cx = 6; + xcc = xco + (don[ii][3] * cx) + 6; + box(15, gd, xco, 12, xcc, 10 + (don[ii][2] << 1), 255); + box(0, gd, xcc, 12, xcc + 4, 10 + (don[ii][2] << 1), 255); + box(0, gd, xco, 8 + (don[ii][2] << 1), xcc + 4, 12 + (don[ii][2] << 1), 255); + putxy(xco, 16); + cx = 0; + do { + cx = succ(integer, cx); + switch (ii) { + case 1 : + if (inv[cx][1] != '*') writeg(inv[cx], 4); + break; + case 2 : + if (dep[cx][1] != '*') writeg(dep[cx], 4); + break; + case 3 : + if (act[cx][1] != '*') writeg(act[cx], 4); + break; + case 4 : + if (self_[cx][1] != '*') writeg(self_[cx], 4); + break; + case 5 : + if (dis[cx][1] != '*') writeg(dis[cx], 4); + break; + case 6 : + writeg(fic[cx], 4); + break; + case 7 : + writeg(fic[1] + ' ' + chr(48 + cx), 4); + break; + case 8 : + if (cx == 1) writeg(recom, 4); + else writeg(fic[2] + ' ' + chr(47 + cx), 4); + break; + } + putxy(xco, ywhere + 8); + } while (!(cx == nb_lig)); + test0 = true; + show_mouse(); +} -void menu_up(integer xx) - { - /* debug('menu_up'); */ - if (test0) - { - charecr(10,succ(byte,don[xx][2]) << 1); - test0=false; - } - } +void menu_up(integer xx) { + /* debug('menu_up'); */ + if (test0) { + charecr(10, succ(byte, don[xx][2]) << 1); + test0 = false; + } +} -void erase_menu() - { - /* debug('erase_menu'); */ - active_menu=false; - clic=false; - menu_up(msg3); - } +void erase_menu() { + /* debug('erase_menu'); */ + active_menu = false; + clic = false; + menu_up(msg3); +} -void mdn() - { - integer x,y,c,a,ix; - boolean tes; +void mdn() { + integer x, y, c, a, ix; + boolean tes; - /* debug('mdn'); */ - if (! active_menu) return; - x=x_s; y=y_s; - if (! clic) - { - if ((x==xprec) && - (y==yprec)) return; - else { - xprec=x; - yprec=y; - } - tes=(y<11) && ((set::of(range(28*res,28*res+24),range(76*res,76*res+24), eos).has(x)) - || ((x>124*res) && (x<124*res+24)) - || ((x>172*res) && (x<172*res+24)) - || ((x>220*res) && (x<220*res+24)) - || ((x>268*res) && (x<268*res+24))); - if (tes) - { - if (x<76*res) ix=invent; - else if (x<124*res) ix=depla; - else if (x<172*res) ix=action; - else if (x<220*res) ix=saction; - else if (x<268*res) ix=discut; - else ix= fichier; - if ((ix!=msg3) || (! test0)) - if (! ((ix==fichier) && (set::of(sauve, charge, eos).has(msg3)))) - { - menu_up(msg3); - menu_down(ix); - msg3=ix; - msg4=no_choice; - } - } - else /* Not in the MenuTitle line */ - { - if ((y>11) && (test0)) util(x,y); - } - } - else /* il y a eu 'clic' */ - if ((msg3==fichier) && (msg4!=no_choice)) - { - clic=false; - menu_up(msg3); - if (lo(msg4)==1) msg3=7; - else msg3=8; - menu_down(msg3); - } - else /* il y a eu clic sur un autre menu */ - { - choisi=(test0) && (msg4!=no_choice); - menu_up(msg3); - msg[4]=msg4; - msg[3]=msg3; - msg3=no_choice; - msg4=no_choice; - clic=false; - } - } + /* debug('mdn'); */ + if (! active_menu) return; + x = x_s; + y = y_s; + if (! clic) { + if ((x == xprec) && + (y == yprec)) return; + else { + xprec = x; + yprec = y; + } + tes = (y < 11) && ((set::of(range(28 * res, 28 * res + 24), range(76 * res, 76 * res + 24), eos).has(x)) + || ((x > 124 * res) && (x < 124 * res + 24)) + || ((x > 172 * res) && (x < 172 * res + 24)) + || ((x > 220 * res) && (x < 220 * res + 24)) + || ((x > 268 * res) && (x < 268 * res + 24))); + if (tes) { + if (x < 76 * res) ix = invent; + else if (x < 124 * res) ix = depla; + else if (x < 172 * res) ix = action; + else if (x < 220 * res) ix = saction; + else if (x < 268 * res) ix = discut; + else ix = fichier; + if ((ix != msg3) || (! test0)) + if (!((ix == fichier) && (set::of(sauve, charge, eos).has(msg3)))) { + menu_up(msg3); + menu_down(ix); + msg3 = ix; + msg4 = no_choice; + } + } else { /* Not in the MenuTitle line */ + if ((y > 11) && (test0)) util(x, y); + } + } else /* il y a eu 'clic' */ + if ((msg3 == fichier) && (msg4 != no_choice)) { + clic = false; + menu_up(msg3); + if (lo(msg4) == 1) msg3 = 7; + else msg3 = 8; + menu_down(msg3); + } else { /* il y a eu clic sur un autre menu */ + choisi = (test0) && (msg4 != no_choice); + menu_up(msg3); + msg[4] = msg4; + msg[3] = msg3; + msg3 = no_choice; + msg4 = no_choice; + clic = false; + } +} diff --git a/engines/mortevielle/mor.h b/engines/mortevielle/mor.h index a4fe1e1b6b..fd4e2f5ffa 100644 --- a/engines/mortevielle/mor.h +++ b/engines/mortevielle/mor.h @@ -2,1455 +2,1309 @@ const char m1[] = "quelqu'un entre, parait ‚tonn‚ mais ne dit rien"; -void testfi() - { - if (ioresult!= 0) - { - caff= do_alert(err_mess,1); - exit(0); - } - } - - -integer readclock() -{ - registres r; - integer s, m, h; - -/* debug('readclock');*/ - integer readclock_result; - r.ax = 0x2c00; - intr(0x21,r); - { - h=(cardinal)r.cx >> 8; - m=r.cx % 256; - s=(cardinal)r.dx >> 8; - } - m= m * 60; - h= h* 3600; - readclock_result= h+ m+ s; - return readclock_result; -} - -void modif(integer& nu) -{ - /* debug('modif'); */ - if (nu== 26) nu= 25; - if ((nu> 29) && (nu< 36)) nu= nu- 4; - if ((nu> 69) && (nu< 78)) nu= nu- 37; - if ((nu> 99) && (nu< 194)) nu= nu- 59; - if ((nu> 996) && (nu< 1000)) nu= nu- 862; - if ((nu> 1500) && (nu< 1507)) nu= nu- 1363; - if ((nu> 1507) && (nu< 1513)) nu= nu- 1364; - if ((nu> 1999) && (nu< 2002)) nu= nu- 1851; - if (nu== 2010) nu= 151; - if ((nu> 2011) && (nu< 2025)) nu= nu- 1860; - if (nu== 2026) nu= 165; - if ((nu> 2029) && (nu< 2037)) nu= nu- 1864; - if ((nu> 3000) && (nu< 3005)) nu= nu- 2828; - if (nu== 4100) nu= 177; - if (nu== 4150) nu= 178; - if ((nu> 4151) && (nu< 4156)) nu= nu- 3973; - if (nu== 4157) nu= 183; - if ((nu== 4160) || (nu== 4161)) nu= nu- 3976; -} - - -void dessine(integer ad, integer x, integer y) -{ - /* debug('dessine'); */ - hide_mouse(); - writepal(numpal); - pictout(ad,0,x,y); - show_mouse(); -} - -void dessine_rouleau() -{ - /* debug('dessine_rouleau'); */ - writepal(89); - if (gd==her) - { - mem[0x7000+14]=15; - } - hide_mouse(); - pictout(0x73a2,0,0,0); - show_mouse(); -} - - -void text_color(integer c) -{ - color_txt= c; +void testfi() { + if (ioresult != 0) { + caff = do_alert(err_mess, 1); + exit(0); + } +} + + +integer readclock() { + registres r; + integer s, m, h; + + /* debug('readclock');*/ + integer readclock_result; + r.ax = 0x2c00; + intr(0x21, r); + { + h = (cardinal)r.cx >> 8; + m = r.cx % 256; + s = (cardinal)r.dx >> 8; + } + m = m * 60; + h = h * 3600; + readclock_result = h + m + s; + return readclock_result; +} + +void modif(integer &nu) { + /* debug('modif'); */ + if (nu == 26) nu = 25; + if ((nu > 29) && (nu < 36)) nu = nu - 4; + if ((nu > 69) && (nu < 78)) nu = nu - 37; + if ((nu > 99) && (nu < 194)) nu = nu - 59; + if ((nu > 996) && (nu < 1000)) nu = nu - 862; + if ((nu > 1500) && (nu < 1507)) nu = nu - 1363; + if ((nu > 1507) && (nu < 1513)) nu = nu - 1364; + if ((nu > 1999) && (nu < 2002)) nu = nu - 1851; + if (nu == 2010) nu = 151; + if ((nu > 2011) && (nu < 2025)) nu = nu - 1860; + if (nu == 2026) nu = 165; + if ((nu > 2029) && (nu < 2037)) nu = nu - 1864; + if ((nu > 3000) && (nu < 3005)) nu = nu - 2828; + if (nu == 4100) nu = 177; + if (nu == 4150) nu = 178; + if ((nu > 4151) && (nu < 4156)) nu = nu - 3973; + if (nu == 4157) nu = 183; + if ((nu == 4160) || (nu == 4161)) nu = nu - 3976; +} + + +void dessine(integer ad, integer x, integer y) { + /* debug('dessine'); */ + hide_mouse(); + writepal(numpal); + pictout(ad, 0, x, y); + show_mouse(); +} + +void dessine_rouleau() { + /* debug('dessine_rouleau'); */ + writepal(89); + if (gd == her) { + mem[0x7000 + 14] = 15; + } + hide_mouse(); + pictout(0x73a2, 0, 0, 0); + show_mouse(); +} + + +void text_color(integer c) { + color_txt = c; } /* NIVEAU 13 */ -void text1(integer x,integer y,integer nb,integer m) -{ - phrase st; - integer tay; - integer co; - - - /* debug('text'); */ - if (res==1) co=10; else co=6; - deline(m,st,tay); - if ((y==182) && (tay*co>nb*6)) y=176; - afftex(st,x,y,nb,20,color_txt); -} - -void initouv() - { - integer cx; - - /* debug('initouv'); */ - for( cx= 1; cx <= 7; cx ++) touv[cx]= chr(0); - } - -void ecrf1() -{ - boite(0, 11, 512, 163, 15); /* grand dessin */ -} - -void clsf1() -{ - integer i,j; - - /* debug('clsf1'); */ - hide_mouse(); - box(0,gd, 0,11, 514,175, 255); -/* if Gd=ams then port[$3DD]:=15; - case Gd of - ams, - cga : begin - for j:=0 to 63 do - begin - for i:=6 to 86 do - begin - mem[$B800:i*80+j]:=0; - mem[$Ba00:i*80+j]:=0; - end; - mem[$b800:6960+j]:=0; - mem[$ba00:400+j]:=0; - end; - end; - ega : begin - port[$3C4]:= 2; - port[$3C5]:= 15; - port[$3CE]:= 8; - port[$3CF]:= 255; - for j:=0 to 63 do - for i:=11 to 174 do - mem[$A000:i*80+j]:=0; - end; - tan : begin - for j:=0 to 128 do - begin - for i:=3 to 43 do - begin - mem[$B800:i*160+j]:=0; - mem[$Ba00:i*160+j]:=0; - mem[$bc00:i*160+j]:=0; - if i<>43 then mem[$be00:i*160+j]:=0; - end; - mem[$be00:320+j]:=0; - end; - end; - end; - droite(256*res,11,256*res,175,0);*/ - show_mouse(); -} - -void clsf2() -{ - integer i,j; - - /* debug('clsf2'); */ - hide_mouse(); - if (f2_all) - { - box(0,gd,1,176,633,199,255); - boite(0,175,634,24,15); - f2_all=false; - } - else - { - box(0,gd,1,176,633,190,255); - boite(0,175,634,15,15); - } - show_mouse(); -} - -void ecrf2() -{ - /* debug('ecrf2'); */ - text_color(5); - /*boite(0,175,630,15,15);*/ -} - -void ecr2(str255 str_) -{ - integer tab; - integer tlig; - - /* debug('ecr2 : '+str_);*/ - if (res==1) tab=10; else tab=6; - putxy(8,177); - tlig=59+pred(integer,res)*36; - if (length(str_)<tlig) writeg(str_,5); - else if (length(str_)<(tlig << 1)) - { - putxy(8,176); - writeg(copy(str_,1,pred(integer,tlig)),5); - putxy(8,182); - writeg(copy(str_,tlig,tlig << 1),5); - } - else { - f2_all=true; - clsf2(); - putxy(8,176); - writeg(copy(str_,1,pred(integer,tlig)),5); - putxy(8,182); - writeg(copy(str_,tlig,pred(integer,tlig << 1)),5); - putxy(8,190); - writeg(copy(str_,tlig << 1,tlig*3),5); - } -} - -void clsf3() -{ - integer i,j; - - /* debug('clsf3'); */ - hide_mouse(); - box(0,gd,1,192,633,199,255); - boite(0,191,634,8,15); - show_mouse(); -} - -void ecr3(str255 text) -{ - /* debug('ecr3 : '+text);*/ - clsf3(); - putxy(8,192); - writeg(text,5); -} - -void ecrf6() -{ - /* debug('ecrf6'); */ - text_color(5); - boite(62, 33, 363, 80, 15); -} - -void ecrf7() -{ - text_color(4); -/* draw_mode(2); - text_height(4*res); - text_style(normal);*/ -} - -void clsf10() -{ - integer co,cod; - varying_string<8> st; - - /* debug('clsf10'); */ - hide_mouse(); - if (res==1) - { - co=634; - cod=534; - } - else - { - co=600; - cod=544; - } - box(15,gd, cod, 93, co, 98, 255); - if (s.conf< 33) st="Cool"; - else - if (s.conf< 66) st=" Lourde "; - else - if (s.conf> 65) st="Malsaine"; - if (res==1) co=10; else co=6; - co= 574-((cardinal)co*length(st) >> 1); - putxy(co,92); - writeg(st,4); - if (res==1) co=620; else co=584; - box(15,gd, 560, 24, co, 86, 255); -/* rempli(69,12,32,5,255);*/ - show_mouse(); -} - - void stop() - { - clrscr; - hirs(); - gd=ams; - hirs(); - exit(0); - } - -void paint_rect(integer x, integer y, integer dx, integer dy) - { - integer co; - - /* debug('paint_rect'); */ - if (gd==cga) co= 3; - else co=11; - box(co,gd,x,y,x+dx,y+dy,255); - } - -integer hazard(integer min,integer max) - { - integer ha1; - real ha2; - - /* debug('hazard'); */ - integer hazard_result; - ha2= Random(); - ha1= trunc(ha2*(max-min)); - hazard_result= min+ ha1; - return hazard_result; - } - -void calch(integer& j,integer& h,integer& m) -{ - integer th,nh; - -/* debug('calch');*/ - nh= readclock(); - th= jh+ ((nh- mh) / t); - m= ((th % 2)+ vm)* 30; - h= ((cardinal)th >> 1)+ vh; - if (m== 60) - { - m= 0; - h= h+ 1; - } - j= (h / 24)+ vj; - h= h- ((j- vj)* 24); -} - -void conv(integer x, integer& y) -{ - integer cx; - - /* debug('conv'); */ - cx= 1; - y= 128; - while (cx< x) - { - y= (cardinal)y >> 1; - cx= succ(integer,cx); - } +void text1(integer x, integer y, integer nb, integer m) { + phrase st; + integer tay; + integer co; + + + /* debug('text'); */ + if (res == 1) co = 10; + else co = 6; + deline(m, st, tay); + if ((y == 182) && (tay * co > nb * 6)) y = 176; + afftex(st, x, y, nb, 20, color_txt); +} + +void initouv() { + integer cx; + + /* debug('initouv'); */ + for (cx = 1; cx <= 7; cx ++) touv[cx] = chr(0); +} + +void ecrf1() { + boite(0, 11, 512, 163, 15); /* grand dessin */ +} + +void clsf1() { + integer i, j; + + /* debug('clsf1'); */ + hide_mouse(); + box(0, gd, 0, 11, 514, 175, 255); + /* if Gd=ams then port[$3DD]:=15; + case Gd of + ams, + cga : begin + for j:=0 to 63 do + begin + for i:=6 to 86 do + begin + mem[$B800:i*80+j]:=0; + mem[$Ba00:i*80+j]:=0; + end; + mem[$b800:6960+j]:=0; + mem[$ba00:400+j]:=0; + end; + end; + ega : begin + port[$3C4]:= 2; + port[$3C5]:= 15; + port[$3CE]:= 8; + port[$3CF]:= 255; + for j:=0 to 63 do + for i:=11 to 174 do + mem[$A000:i*80+j]:=0; + end; + tan : begin + for j:=0 to 128 do + begin + for i:=3 to 43 do + begin + mem[$B800:i*160+j]:=0; + mem[$Ba00:i*160+j]:=0; + mem[$bc00:i*160+j]:=0; + if i<>43 then mem[$be00:i*160+j]:=0; + end; + mem[$be00:320+j]:=0; + end; + end; + end; + droite(256*res,11,256*res,175,0);*/ + show_mouse(); +} + +void clsf2() { + integer i, j; + + /* debug('clsf2'); */ + hide_mouse(); + if (f2_all) { + box(0, gd, 1, 176, 633, 199, 255); + boite(0, 175, 634, 24, 15); + f2_all = false; + } else { + box(0, gd, 1, 176, 633, 190, 255); + boite(0, 175, 634, 15, 15); + } + show_mouse(); +} + +void ecrf2() { + /* debug('ecrf2'); */ + text_color(5); + /*boite(0,175,630,15,15);*/ +} + +void ecr2(str255 str_) { + integer tab; + integer tlig; + + /* debug('ecr2 : '+str_);*/ + if (res == 1) tab = 10; + else tab = 6; + putxy(8, 177); + tlig = 59 + pred(integer, res) * 36; + if (length(str_) < tlig) writeg(str_, 5); + else if (length(str_) < (tlig << 1)) { + putxy(8, 176); + writeg(copy(str_, 1, pred(integer, tlig)), 5); + putxy(8, 182); + writeg(copy(str_, tlig, tlig << 1), 5); + } else { + f2_all = true; + clsf2(); + putxy(8, 176); + writeg(copy(str_, 1, pred(integer, tlig)), 5); + putxy(8, 182); + writeg(copy(str_, tlig, pred(integer, tlig << 1)), 5); + putxy(8, 190); + writeg(copy(str_, tlig << 1, tlig * 3), 5); + } +} + +void clsf3() { + integer i, j; + + /* debug('clsf3'); */ + hide_mouse(); + box(0, gd, 1, 192, 633, 199, 255); + boite(0, 191, 634, 8, 15); + show_mouse(); +} + +void ecr3(str255 text) { + /* debug('ecr3 : '+text);*/ + clsf3(); + putxy(8, 192); + writeg(text, 5); +} + +void ecrf6() { + /* debug('ecrf6'); */ + text_color(5); + boite(62, 33, 363, 80, 15); +} + +void ecrf7() { + text_color(4); + /* draw_mode(2); + text_height(4*res); + text_style(normal);*/ +} + +void clsf10() { + integer co, cod; + varying_string<8> st; + + /* debug('clsf10'); */ + hide_mouse(); + if (res == 1) { + co = 634; + cod = 534; + } else { + co = 600; + cod = 544; + } + box(15, gd, cod, 93, co, 98, 255); + if (s.conf < 33) st = "Cool"; + else if (s.conf < 66) st = " Lourde "; + else if (s.conf > 65) st = "Malsaine"; + if (res == 1) co = 10; + else co = 6; + co = 574 - ((cardinal)co * length(st) >> 1); + putxy(co, 92); + writeg(st, 4); + if (res == 1) co = 620; + else co = 584; + box(15, gd, 560, 24, co, 86, 255); + /* rempli(69,12,32,5,255);*/ + show_mouse(); +} + +void stop() { + clrscr; + hirs(); + gd = ams; + hirs(); + exit(0); +} + +void paint_rect(integer x, integer y, integer dx, integer dy) { + integer co; + + /* debug('paint_rect'); */ + if (gd == cga) co = 3; + else co = 11; + box(co, gd, x, y, x + dx, y + dy, 255); +} + +integer hazard(integer min, integer max) { + integer ha1; + real ha2; + + /* debug('hazard'); */ + integer hazard_result; + ha2 = Random(); + ha1 = trunc(ha2 * (max - min)); + hazard_result = min + ha1; + return hazard_result; +} + +void calch(integer &j, integer &h, integer &m) { + integer th, nh; + + /* debug('calch');*/ + nh = readclock(); + th = jh + ((nh - mh) / t); + m = ((th % 2) + vm) * 30; + h = ((cardinal)th >> 1) + vh; + if (m == 60) { + m = 0; + h = h + 1; + } + j = (h / 24) + vj; + h = h - ((j - vj) * 24); +} + +void conv(integer x, integer &y) { + integer cx; + + /* debug('conv'); */ + cx = 1; + y = 128; + while (cx < x) { + y = (cardinal)y >> 1; + cx = succ(integer, cx); + } } /* NIVEAU 12 */ -void okpas() -{ - tesok=true; -} - -void modobj(integer m) -{ - phrase str_; - str30 strp; - integer i,tay; - - /* debug('modobj'); */ - strp=' '; - if (m!= 500) - { - deline(m- 501+ c_st41,str_,tay); - strp= delig; - } - menut( invt[8], strp); - menu_disable( invt[8]); -} - -void modobj2(integer m,boolean t1,boolean t2) -{ - phrase str_; - str30 strp; - integer i,tay; - - /* debug('modobj'); */ - strp=' '; - if (t1 || t2) okpas(); - else tesok=false;; - if (m!= 500) - { - deline(m- 501+ c_st41,str_,tay); - strp= delig; - } - menut( invt[8], strp); - menu_disable( invt[8]); -} - - -void repon(integer f,integer m) -{ - str255 str_; - varying_string<40> str1; - phrase st; - text1 fic; - integer i, xco, dx, caspe, tay; - - /* debug('repon fenetre nø'+chr(f+48));*/ - if ((m> 499) && (m< 563)) - { - deline( m-501+c_st41,st,tay); - if (tay>((58+pred(integer,res)*37) << 1)) f2_all= true; - else f2_all= false; - clsf2(); - afftex(st,8,176,85,3,5); - } - else - { - modif(m); - if (f== 8) f= 2; - if (f== 1) f= 6; - if (f== 2) - { - clsf2(); - ecrf2(); - text1(8, 182, 103, m); - if ((m== 68) || (m== 69)) s.teauto[40]= '*'; - if ((m== 104) && (caff== 14)) - { - s.teauto[36]= '*'; - if (s.teauto[39]== '*') - { - s.pourc[3]= '*'; - s.teauto[38]= '*'; - } - } - } - if (set::of(6,9, eos).has(f)) - { - deline(m,st,tay); - if (f==6) i=4; - else i=5; - afftex(st,80,40,60,25,i); - if (m== 180) s.pourc[6]= '*'; - if (m== 179) s.pourc[10]= '*'; - } - if (f== 7) /* messint */ - { - ecrf7(); - deline(m,st,tay); - if (res==1) - { - xco=252-tay*5; - caspe= 100; - dx= 80; - } - else - { - xco=252-tay*3; - caspe= 144; - dx=50; - } - if (tay<40) afftex(st,xco,86,dx,3,5); - else afftex(st,caspe,86,dx,3,5); - } - } -} - -void f3f8() -{ - integer co; - - if (res==1) co=107; else co=64; - putxy(3,44); - writeg(f3,5); - ywhere= 51; - writeg(f8,5); - boite(0,42,co,16,7); -} - -void t5(integer cx) -{ - /* debug('t5'); */ - if (cx== 10) blo= false; - if (cx!= 1) - { - bh1= false; - bf1= false; - } - if (cx!= 2) bh2= false; - if (cx!= 4) - { - bh4= false; - bf4= false; - } - if (cx!= 5) bh5= false; - if (cx!= 6) bh6= false; - if (cx!= 8) bh8= false; - if (cx!= 3) bt3= false; - if (cx!= 7) bt7= false; - if (cx!= 9) bh9= false; -} - -void affper(integer per) -{ - integer cx; - - /* debug('affper'); */ - for( cx= 1; cx <= 8; cx ++) menu_disable( disc[cx]); - clsf10(); - if ((per & 128)== 128) - { - putxy(560,24); - writeg("LEO",4); - menu_enable( disc[1]); - } - if ((per & 64)== 64) - { - putxy(560, 32); - writeg("PAT",4); - menu_enable( disc[2]); - } - if ((per & 32)== 32) - { - putxy(560, 40); - writeg("GUY",4); - menu_enable( disc[3]); - } - if ((per & 16)== 16) - { - putxy(560,48); - writeg("EVA",4); - menu_enable( disc[4]); - } - if ((per & 8)== 8) - { - putxy(560,56); - writeg("BOB",4); - menu_enable( disc[5]); - } - if ((per & 4)== 4) - { - putxy(560, 64); - writeg("LUC",4); - menu_enable( disc[6]); - } - if ((per & 2)== 2) - { - putxy(560, 72); - writeg("IDA",4); - menu_enable( disc[7]); - } - if ((per & 1)== 1) - { - putxy(560, 80); - writeg("MAX",4); - menu_enable( disc[8]); - } - ipers= per; -} - -/* overlay */ void choix(integer min,integer max, integer& per) -{ - boolean i; - integer haz,cx,cy,cz; - long_integer per2,cz2; - - /* debug('o0 choix'); */ - haz= hazard(min,max); - if (haz> 4) - { - haz= 8- haz; - i= true; - } - else i= false; - cx= 0; - per= 0; - while (cx< haz) - { - cy= hazard(1,8); - conv(cy,cz); - if ((per & cz)!= cz) - { - cx= cx+ 1; - per= (per | cz); - } - } - if (i) per= 255- per; - i= false; -} - -/* overlay */ void cpl1(integer& p) -{ - integer j,h,m; - - /* debug('o0 cpl1'); */ - calch(j,h,m); - if ((h> 7) || (h< 11)) p= 25; - if ((h> 10) && (h< 14)) p= 35; - if ((h> 13) && (h< 16)) p= 50; - if ((h> 15) && (h< 18)) p= 5; - if ((h> 17) && (h< 22)) p= 35; - if ((h> 21) && (h< 24)) p= 50; - if ((h>= 0) && (h< 8)) p= 70; - mdn(); -} - -/* overlay */ void cpl2(integer& p) -{ - integer j,h,m; - - /* debug('o0 cpl2'); */ - calch(j,h,m); - if ((h> 7) && (h< 11)) p= -2; - if (h== 11) p= 100; - if ((h> 11) && (h< 23)) p= 10; - if (h== 23) p= 20; - if ((h>= 0) && (h< 8)) p= 50; -} - -/* overlay */ void cpl3(integer& p) -{ - integer j,h,m; - - /* debug('o0 cpl3'); */ - calch(j,h,m); - if (((h> 8) && (h< 10)) || ((h> 19) && (h< 24))) p= 34; - if (((h> 9) && (h< 20)) || ((h>= 0) && (h< 9))) p= 0; -} - -/* overlay */ void cpl5(integer& p) -{ - integer j,h,m; - - /* debug('o0 cpl5'); */ - calch(j,h,m); - if ((h> 6) && (h< 10)) p= 0; - if (h== 10) p= 100; - if ((h> 10) && (h< 24)) p= 15; - if ((h>= 0) && (h< 7)) p= 50; -} - -/* overlay */ void cpl6(integer& p) -{ - integer j,h,m; - - /* debug('o0 cpl6'); */ - calch(j,h,m); - if (((h> 7) && (h< 13)) || ((h> 17) && (h< 20))) p= -2; - if (((h> 12) && (h< 17)) || ((h> 19) && (h< 24))) p= 35; - if (h== 17) p= 100; - if ((h>= 0) && (h< 8)) p= 60; -} - -void person() -{ - const char m1[] = "Vous"; - const char m2[] = "ˆtes"; - const char m3[] = "SEUL"; - integer cf; - str255 str_; - - /* debug('person'); */ - for( cf= 1; cf <= 8; cf ++) menu_disable( disc[cf]); - clsf10(); - putxy(560, 30); - writeg(m1,4); - putxy(560, 50); - writeg(m2,4); - putxy(560, 70); - writeg(m3,4); - ipers= 0; -} - -void chlm(integer& per) -{ - /* debug('chlm'); */ - per= hazard(1,2); - if (per== 2) per= 128; -} - -void pendule() -{ - const matrix<1,2,1,12,integer> cv - = {{{{ 5, 8, 10, 8, 5, 0, -5, -8, -10, -8, -5, 0}}, - {{-5, -3, 0, 3, 5, 6, 5, 3, 0, -3, -5, -6}} }}; - const integer x = 580; - const integer y = 123; - const integer rg = 9; - integer h,co; - - - /* debug('pendule'); */ - hide_mouse(); - /*paint_rect(572,114,18,20); - paint_rect(577,114,6,20);*/ - paint_rect(570,118,20,10); - paint_rect(578,114,6,18); - if (set::of(cga,her, eos).has(gd)) co=0; else co=1; - if (min== 0) droite(((cardinal)x >> 1)*res, y, ((cardinal)x >> 1)*res, (y- rg), co); - else droite(((cardinal)x >> 1)*res, y, ((cardinal)x >> 1)*res, (y+ rg), co); - h= heu; - if (h> 12) h= h- 12; - if (h== 0) h= 12; - droite(((cardinal)x >> 1)*res, y, ((cardinal)(x+ cv[1][h]) >> 1)*res, y+ cv[2][h], co); - show_mouse(); - putxy( 568, 154); - if (heu> 11) writeg( "PM ",1); - else writeg( "AM ",1); - putxy( 550, 160); - if (set::of(range(0,8), eos).has(jou)) writeg(string(chr(jou+49))+"& jour",1); +void okpas() { + tesok = true; +} + +void modobj(integer m) { + phrase str_; + str30 strp; + integer i, tay; + + /* debug('modobj'); */ + strp = ' '; + if (m != 500) { + deline(m - 501 + c_st41, str_, tay); + strp = delig; + } + menut(invt[8], strp); + menu_disable(invt[8]); +} + +void modobj2(integer m, boolean t1, boolean t2) { + phrase str_; + str30 strp; + integer i, tay; + + /* debug('modobj'); */ + strp = ' '; + if (t1 || t2) okpas(); + else tesok = false;; + if (m != 500) { + deline(m - 501 + c_st41, str_, tay); + strp = delig; + } + menut(invt[8], strp); + menu_disable(invt[8]); +} + + +void repon(integer f, integer m) { + str255 str_; + varying_string<40> str1; + phrase st; + text1 fic; + integer i, xco, dx, caspe, tay; + + /* debug('repon fenetre nø'+chr(f+48));*/ + if ((m > 499) && (m < 563)) { + deline(m - 501 + c_st41, st, tay); + if (tay > ((58 + pred(integer, res) * 37) << 1)) f2_all = true; + else f2_all = false; + clsf2(); + afftex(st, 8, 176, 85, 3, 5); + } else { + modif(m); + if (f == 8) f = 2; + if (f == 1) f = 6; + if (f == 2) { + clsf2(); + ecrf2(); + text1(8, 182, 103, m); + if ((m == 68) || (m == 69)) s.teauto[40] = '*'; + if ((m == 104) && (caff == 14)) { + s.teauto[36] = '*'; + if (s.teauto[39] == '*') { + s.pourc[3] = '*'; + s.teauto[38] = '*'; + } + } + } + if (set::of(6, 9, eos).has(f)) { + deline(m, st, tay); + if (f == 6) i = 4; + else i = 5; + afftex(st, 80, 40, 60, 25, i); + if (m == 180) s.pourc[6] = '*'; + if (m == 179) s.pourc[10] = '*'; + } + if (f == 7) { /* messint */ + ecrf7(); + deline(m, st, tay); + if (res == 1) { + xco = 252 - tay * 5; + caspe = 100; + dx = 80; + } else { + xco = 252 - tay * 3; + caspe = 144; + dx = 50; + } + if (tay < 40) afftex(st, xco, 86, dx, 3, 5); + else afftex(st, caspe, 86, dx, 3, 5); + } + } +} + +void f3f8() { + integer co; + + if (res == 1) co = 107; + else co = 64; + putxy(3, 44); + writeg(f3, 5); + ywhere = 51; + writeg(f8, 5); + boite(0, 42, co, 16, 7); +} + +void t5(integer cx) { + /* debug('t5'); */ + if (cx == 10) blo = false; + if (cx != 1) { + bh1 = false; + bf1 = false; + } + if (cx != 2) bh2 = false; + if (cx != 4) { + bh4 = false; + bf4 = false; + } + if (cx != 5) bh5 = false; + if (cx != 6) bh6 = false; + if (cx != 8) bh8 = false; + if (cx != 3) bt3 = false; + if (cx != 7) bt7 = false; + if (cx != 9) bh9 = false; +} + +void affper(integer per) { + integer cx; + + /* debug('affper'); */ + for (cx = 1; cx <= 8; cx ++) menu_disable(disc[cx]); + clsf10(); + if ((per & 128) == 128) { + putxy(560, 24); + writeg("LEO", 4); + menu_enable(disc[1]); + } + if ((per & 64) == 64) { + putxy(560, 32); + writeg("PAT", 4); + menu_enable(disc[2]); + } + if ((per & 32) == 32) { + putxy(560, 40); + writeg("GUY", 4); + menu_enable(disc[3]); + } + if ((per & 16) == 16) { + putxy(560, 48); + writeg("EVA", 4); + menu_enable(disc[4]); + } + if ((per & 8) == 8) { + putxy(560, 56); + writeg("BOB", 4); + menu_enable(disc[5]); + } + if ((per & 4) == 4) { + putxy(560, 64); + writeg("LUC", 4); + menu_enable(disc[6]); + } + if ((per & 2) == 2) { + putxy(560, 72); + writeg("IDA", 4); + menu_enable(disc[7]); + } + if ((per & 1) == 1) { + putxy(560, 80); + writeg("MAX", 4); + menu_enable(disc[8]); + } + ipers = per; +} + +/* overlay */ void choix(integer min, integer max, integer &per) { + boolean i; + integer haz, cx, cy, cz; + long_integer per2, cz2; + + /* debug('o0 choix'); */ + haz = hazard(min, max); + if (haz > 4) { + haz = 8 - haz; + i = true; + } else i = false; + cx = 0; + per = 0; + while (cx < haz) { + cy = hazard(1, 8); + conv(cy, cz); + if ((per & cz) != cz) { + cx = cx + 1; + per = (per | cz); + } + } + if (i) per = 255 - per; + i = false; +} + +/* overlay */ void cpl1(integer &p) { + integer j, h, m; + + /* debug('o0 cpl1'); */ + calch(j, h, m); + if ((h > 7) || (h < 11)) p = 25; + if ((h > 10) && (h < 14)) p = 35; + if ((h > 13) && (h < 16)) p = 50; + if ((h > 15) && (h < 18)) p = 5; + if ((h > 17) && (h < 22)) p = 35; + if ((h > 21) && (h < 24)) p = 50; + if ((h >= 0) && (h < 8)) p = 70; + mdn(); +} + +/* overlay */ void cpl2(integer &p) { + integer j, h, m; + + /* debug('o0 cpl2'); */ + calch(j, h, m); + if ((h > 7) && (h < 11)) p = -2; + if (h == 11) p = 100; + if ((h > 11) && (h < 23)) p = 10; + if (h == 23) p = 20; + if ((h >= 0) && (h < 8)) p = 50; +} + +/* overlay */ void cpl3(integer &p) { + integer j, h, m; + + /* debug('o0 cpl3'); */ + calch(j, h, m); + if (((h > 8) && (h < 10)) || ((h > 19) && (h < 24))) p = 34; + if (((h > 9) && (h < 20)) || ((h >= 0) && (h < 9))) p = 0; +} + +/* overlay */ void cpl5(integer &p) { + integer j, h, m; + + /* debug('o0 cpl5'); */ + calch(j, h, m); + if ((h > 6) && (h < 10)) p = 0; + if (h == 10) p = 100; + if ((h > 10) && (h < 24)) p = 15; + if ((h >= 0) && (h < 7)) p = 50; +} + +/* overlay */ void cpl6(integer &p) { + integer j, h, m; + + /* debug('o0 cpl6'); */ + calch(j, h, m); + if (((h > 7) && (h < 13)) || ((h > 17) && (h < 20))) p = -2; + if (((h > 12) && (h < 17)) || ((h > 19) && (h < 24))) p = 35; + if (h == 17) p = 100; + if ((h >= 0) && (h < 8)) p = 60; +} + +void person() { + const char m1[] = "Vous"; + const char m2[] = "ˆtes"; + const char m3[] = "SEUL"; + integer cf; + str255 str_; + + /* debug('person'); */ + for (cf = 1; cf <= 8; cf ++) menu_disable(disc[cf]); + clsf10(); + putxy(560, 30); + writeg(m1, 4); + putxy(560, 50); + writeg(m2, 4); + putxy(560, 70); + writeg(m3, 4); + ipers = 0; +} + +void chlm(integer &per) { + /* debug('chlm'); */ + per = hazard(1, 2); + if (per == 2) per = 128; +} + +void pendule() { + const matrix<1, 2, 1, 12, integer> cv + = {{{{ 5, 8, 10, 8, 5, 0, -5, -8, -10, -8, -5, 0}}, + {{ -5, -3, 0, 3, 5, 6, 5, 3, 0, -3, -5, -6}} + } + }; + const integer x = 580; + const integer y = 123; + const integer rg = 9; + integer h, co; + + + /* debug('pendule'); */ + hide_mouse(); + /*paint_rect(572,114,18,20); + paint_rect(577,114,6,20);*/ + paint_rect(570, 118, 20, 10); + paint_rect(578, 114, 6, 18); + if (set::of(cga, her, eos).has(gd)) co = 0; + else co = 1; + if (min == 0) droite(((cardinal)x >> 1)*res, y, ((cardinal)x >> 1)*res, (y - rg), co); + else droite(((cardinal)x >> 1)*res, y, ((cardinal)x >> 1)*res, (y + rg), co); + h = heu; + if (h > 12) h = h - 12; + if (h == 0) h = 12; + droite(((cardinal)x >> 1)*res, y, ((cardinal)(x + cv[1][h]) >> 1)*res, y + cv[2][h], co); + show_mouse(); + putxy(568, 154); + if (heu > 11) writeg("PM ", 1); + else writeg("AM ", 1); + putxy(550, 160); + if (set::of(range(0, 8), eos).has(jou)) writeg(string(chr(jou + 49)) + "& jour", 1); } /************* * NIVEAU 11 * *************/ -void debloc(integer l) -{ -/* debug('debloc'); */ - num= 0; - x= 0; - y= 0; - if ((l!= 26) && (l!= 15)) t5(l); - mpers= ipers; +void debloc(integer l) { + /* debug('debloc'); */ + num = 0; + x = 0; + y = 0; + if ((l != 26) && (l != 15)) t5(l); + mpers = ipers; } -/* overlay */ void cpl10(integer& p,integer& h) -{ - integer j,m; +/* overlay */ void cpl10(integer &p, integer &h) { + integer j, m; -/* debug('o1 cpl10'); */ - calch(j,h,m); - if (((h> 7) && (h< 11)) || ((h> 11) && (h< 14)) - || ((h> 18) && (h< 21))) p= 100; - if ((h== 11) || ((h> 20) && (h< 24))) p= 45; - if (((h> 13) && (h< 17)) || (h== 18)) p= 35; - if (h== 17) p= 60; - if ((h>= 0) && (h< 8)) p= 5; + /* debug('o1 cpl10'); */ + calch(j, h, m); + if (((h > 7) && (h < 11)) || ((h > 11) && (h < 14)) + || ((h > 18) && (h < 21))) p = 100; + if ((h == 11) || ((h > 20) && (h < 24))) p = 45; + if (((h > 13) && (h < 17)) || (h == 18)) p = 35; + if (h == 17) p = 60; + if ((h >= 0) && (h < 8)) p = 5; } -/* overlay */ void cpl11(integer& p,integer& h) -{ - integer j,m; - -/* debug('o1 cpl11'); */ - calch(j,h,m); - if (((h> 8) && (h< 12)) || ((h> 20) && (h< 24))) p= 25; - if (((h> 11) && (h< 14)) || ((h> 18) && (h< 21))) p= 5; - if ((h> 13) && (h< 17)) p= 55; - if ((h> 16) && (h< 19)) p= 45; - if ((h>= 0) && (h< 9)) p= 0; -} - -/* overlay */ void cpl12(integer& p) -{ - integer j,h,m; - -/* debug('o1 cpl12'); */ - calch(j,h,m); - if (((h> 8) && (h< 15)) || ((h> 16) && (h< 22))) p= 55; - if (((h> 14) && (h< 17)) || ((h> 21) && (h< 24))) p= 25; - if ((h>= 0) && (h< 5)) p= 0; - if ((h> 4) && (h< 9)) p= 15; -} - -/* overlay */ void cpl13(integer& p) -{ -/* debug('o1 cpl13'); */ - p= 0; -} - -/* overlay */ void cpl15(integer& p) -{ - integer j,h,m; +/* overlay */ void cpl11(integer &p, integer &h) { + integer j, m; -/* debug('o1 cpl15'); */ - calch(j,h,m); - if ((h> 7) && (h< 12)) p= 25; - if ((h> 11) && (h< 14)) p= 0; - if ((h> 13) && (h< 18)) p= 10; - if ((h> 17) && (h< 20)) p= 55; - if ((h> 19) && (h< 22)) p= 5; - if ((h> 21) && (h< 24)) p= 15; - if ((h>= 0) && (h< 8)) p= -15; -} - -/* overlay */ void cpl20(integer& p,integer& h) -{ - integer j,m; - -/* debug('o1 cpl20'); */ - calch(j,h,m); - if (h== 10) p= 65; - if ((h> 10) && (h< 21)) p= 5; - if ((h> 20) && (h< 24)) p= -15; - if ((h>= 0) && (h< 5)) p= -300; - if ((h> 4) && (h< 10)) p= -5; -} - -/* overlay */ void quelq1(integer l) -{ - integer per; - -/* debug('o1 quelq1'); */ - per= hazard(1,2); - if (l== 1) - if (per== 1) bh1= true; else bf1= true; - if (l== 4) - if (per== 1) bh4= true; else bf4= true; - ipers= 10; -} - -/* overlay */ void quelq2() -{ -/* debug('o1 quelq2'); */ - if (li== 2) bh2= true; else bh9= true; - ipers= 10; -} - -/* overlay */ void quelq5() -{ -/* debug('o1 quelq5'); */ - bh5= true; - ipers= 10; -} - -/* overlay */ void quelq6(integer l) -{ - integer per; - -/* debug('o1 quelq6'); */ - if (l== 6) bh6= true; - if (l== 8) bh8= true; - ipers= 10; -} - -/* overlay */ void quelq10(integer h, integer& per) -{ - integer min,max; - -/* debug('o1 quelq10'); */ - if ((h>= 0) && (h< 8)) chlm(per); else - { - if ((h> 7) && (h< 10)) - { - min= 5; - max= 7; - } - if ((h> 9) && (h< 12)) - { - min= 1; - max= 4; - } - if (((h> 11) && (h< 15)) || ((h> 18) && (h< 21))) - { - min= 6; - max= 8; - } - if (((h> 14) && (h< 19)) || ((h> 20) && (h< 24))) - { - min= 1; - max= 5; - } - choix(min,max,per); - } - affper(per); -} - -/* overlay */ void quelq11(integer h, integer& per) -{ - integer min,max; - -/* debug('o1 quelq11'); */ - if ((h>= 0) && (h< 8)) chlm(per); else - { - if (((h> 7) && (h< 10)) || ((h>20) && (h< 24))) - { - min= 1; - max= 3; - } - if (((h> 9) && (h< 12)) || ((h> 13) && (h< 19))) - { - min= 1; - max= 4; - } - if (((h> 11) && (h< 14)) || ((h> 18) && (h< 21))) - { - min= 1; - max= 2; - } - choix(min,max,per); - } - affper(per); -} - -/* overlay */ void quelq12(integer& per) -{ -/* debug('o1 quelq12'); */ - chlm(per); - affper(per); -} - -/* overlay */ void quelq15(integer& per) -{ - integer cx; - boolean test; - - -/* debug('o1 quelq15'); */ - per= 0; - if (per== 0) - { - do { - cx= hazard(1,8); - test =(((cx== 1) && (bh2 || bh9)) || - ((cx== 2) && bh8) || - ((cx== 3) && bh4) || - ((cx== 4) && bf4) || - ((cx== 5) && bh6) || - ((cx== 6) && bh1) || - ((cx== 7) && bf1) || - ((cx== 8) && bh5)); - } while (!(! test)); - conv(cx,per); - affper(per); - } -} - -/* overlay */ void quelq20(integer h, integer& per) -{ - integer min,max; - -/* debug('o1 quelq20'); */ - if (((h>= 0) && (h< 10)) || ((h> 18) && (h< 24))) chlm(per); - else - { - if ((h> 9) && (h< 12)) - { - min= 3; - max= 7; - } - if ((h> 11) && (h< 18)) - { - min= 1; - max= 2; - } - if (h== 18) - { - min= 2; - max= 4; - } - choix(min,max,per); - } - affper(per); -} - - -/* overlay */void frap() -{ - integer j,h,m,haz; - -/* debug('o1 frap'); */ - calch(j,h,m); - if ((h>= 0) && (h< 8)) crep= 190; else - { - haz= hazard(1,100); - if (haz> 70) crep= 190; else crep= 147; - } -} - -/* overlay */ void nouvp(integer l, integer& p) -{ -/* debug('o1 nouvp'); */ - p= 0; - if (l== 1) - { - if (bh1) p= 4; - if (bf1) p= 2; - } - if (((l== 2) && (bh2)) || ((l== 9) && (bh9))) p= 128; - if (l== 4) - { - if (bh4) p= 32; - if (bf4) p= 16; - } - if ((l== 5) && (bh5)) p= 1; - if ((l== 6) && (bh6)) p= 8; - if ((l== 8) && (bh8)) p= 64; - if (((l== 3) && (bt3)) || ((l== 7) && (bt7))) p= 9; - if (p!= 9) affper(p); -} - - - -/* overlay */ void tip(integer ip, integer& cx) -{ -/* debug('o1 tip'); */ - if (ip== 128) cx= 1; else - if (ip== 64) cx= 2; else - if (ip== 32) cx= 3; else - if (ip== 16) cx= 4; else - if (ip== 8) cx= 5; else - if (ip== 4) cx= 6; else - if (ip== 2) cx= 7; else - if (ip== 1) cx= 8; -} - - -/* overlay */ void ecfren(integer& p,integer& haz, integer cf,integer l) -{ -/* debug('o1 ecfren'); */ - if (l== 0) person(); - p= -500; - haz= 0; - if (((l== 1) && (! bh1) && (! bf1)) - || ((l== 4) && (! bh4) && (! bf4))) cpl1(p); - if ((l== 2) && (! bh2) && (! bh9)) cpl2(p); - if (((l== 3) && (! bt3)) || ((l== 7) && (! bt7))) cpl3(p); - if ((l== 5) && (! bh5)) cpl5(p); - if (((l== 6) && (! bh6)) || ((l== 8) && (! bh8))) cpl6(p); - if ((l== 9) && (! bh9) && (! bh2)) p= 10; - if (((l== 2) && (bh9)) || ((l== 9) && (bh2))) p= -400; - if (p!= -500) - { - p= p+ cf; - haz= hazard(1,100); - } -} - -/* overlay */ void becfren(integer l) -{ - integer haz; - -/* debug('o1 becfren'); */ - if ((l== 1) || (l== 4)) - { - haz= hazard(1,2); - if (l== 1) - if (haz== 1) bh1= true; else bf1= true; - if (l== 4) - if (haz== 1) bh4= true; else bf4= true; - } - if (l== 2) bh2= true; else - if (l== 3) bt3= true; else - if (l== 5) bh5= true; else - if (l== 6) bh6= true; else - if (l== 7) bt7= true; else - if (l== 8) bh8= true; else - if (l== 9) bh9= true; + /* debug('o1 cpl11'); */ + calch(j, h, m); + if (((h > 8) && (h < 12)) || ((h > 20) && (h < 24))) p = 25; + if (((h > 11) && (h < 14)) || ((h > 18) && (h < 21))) p = 5; + if ((h > 13) && (h < 17)) p = 55; + if ((h > 16) && (h < 19)) p = 45; + if ((h >= 0) && (h < 9)) p = 0; +} + +/* overlay */ void cpl12(integer &p) { + integer j, h, m; + + /* debug('o1 cpl12'); */ + calch(j, h, m); + if (((h > 8) && (h < 15)) || ((h > 16) && (h < 22))) p = 55; + if (((h > 14) && (h < 17)) || ((h > 21) && (h < 24))) p = 25; + if ((h >= 0) && (h < 5)) p = 0; + if ((h > 4) && (h < 9)) p = 15; +} + +/* overlay */ void cpl13(integer &p) { + /* debug('o1 cpl13'); */ + p = 0; +} + +/* overlay */ void cpl15(integer &p) { + integer j, h, m; + + /* debug('o1 cpl15'); */ + calch(j, h, m); + if ((h > 7) && (h < 12)) p = 25; + if ((h > 11) && (h < 14)) p = 0; + if ((h > 13) && (h < 18)) p = 10; + if ((h > 17) && (h < 20)) p = 55; + if ((h > 19) && (h < 22)) p = 5; + if ((h > 21) && (h < 24)) p = 15; + if ((h >= 0) && (h < 8)) p = -15; +} + +/* overlay */ void cpl20(integer &p, integer &h) { + integer j, m; + + /* debug('o1 cpl20'); */ + calch(j, h, m); + if (h == 10) p = 65; + if ((h > 10) && (h < 21)) p = 5; + if ((h > 20) && (h < 24)) p = -15; + if ((h >= 0) && (h < 5)) p = -300; + if ((h > 4) && (h < 10)) p = -5; +} + +/* overlay */ void quelq1(integer l) { + integer per; + + /* debug('o1 quelq1'); */ + per = hazard(1, 2); + if (l == 1) + if (per == 1) bh1 = true; + else bf1 = true; + if (l == 4) + if (per == 1) bh4 = true; + else bf4 = true; + ipers = 10; +} + +/* overlay */ void quelq2() { + /* debug('o1 quelq2'); */ + if (li == 2) bh2 = true; + else bh9 = true; + ipers = 10; +} + +/* overlay */ void quelq5() { + /* debug('o1 quelq5'); */ + bh5 = true; + ipers = 10; +} + +/* overlay */ void quelq6(integer l) { + integer per; + + /* debug('o1 quelq6'); */ + if (l == 6) bh6 = true; + if (l == 8) bh8 = true; + ipers = 10; +} + +/* overlay */ void quelq10(integer h, integer &per) { + integer min, max; + + /* debug('o1 quelq10'); */ + if ((h >= 0) && (h < 8)) chlm(per); + else { + if ((h > 7) && (h < 10)) { + min = 5; + max = 7; + } + if ((h > 9) && (h < 12)) { + min = 1; + max = 4; + } + if (((h > 11) && (h < 15)) || ((h > 18) && (h < 21))) { + min = 6; + max = 8; + } + if (((h > 14) && (h < 19)) || ((h > 20) && (h < 24))) { + min = 1; + max = 5; + } + choix(min, max, per); + } + affper(per); +} + +/* overlay */ void quelq11(integer h, integer &per) { + integer min, max; + + /* debug('o1 quelq11'); */ + if ((h >= 0) && (h < 8)) chlm(per); + else { + if (((h > 7) && (h < 10)) || ((h > 20) && (h < 24))) { + min = 1; + max = 3; + } + if (((h > 9) && (h < 12)) || ((h > 13) && (h < 19))) { + min = 1; + max = 4; + } + if (((h > 11) && (h < 14)) || ((h > 18) && (h < 21))) { + min = 1; + max = 2; + } + choix(min, max, per); + } + affper(per); +} + +/* overlay */ void quelq12(integer &per) { + /* debug('o1 quelq12'); */ + chlm(per); + affper(per); +} + +/* overlay */ void quelq15(integer &per) { + integer cx; + boolean test; + + + /* debug('o1 quelq15'); */ + per = 0; + if (per == 0) { + do { + cx = hazard(1, 8); + test = (((cx == 1) && (bh2 || bh9)) || + ((cx == 2) && bh8) || + ((cx == 3) && bh4) || + ((cx == 4) && bf4) || + ((cx == 5) && bh6) || + ((cx == 6) && bh1) || + ((cx == 7) && bf1) || + ((cx == 8) && bh5)); + } while (!(! test)); + conv(cx, per); + affper(per); + } +} + +/* overlay */ void quelq20(integer h, integer &per) { + integer min, max; + + /* debug('o1 quelq20'); */ + if (((h >= 0) && (h < 10)) || ((h > 18) && (h < 24))) chlm(per); + else { + if ((h > 9) && (h < 12)) { + min = 3; + max = 7; + } + if ((h > 11) && (h < 18)) { + min = 1; + max = 2; + } + if (h == 18) { + min = 2; + max = 4; + } + choix(min, max, per); + } + affper(per); +} + + +/* overlay */void frap() { + integer j, h, m, haz; + + /* debug('o1 frap'); */ + calch(j, h, m); + if ((h >= 0) && (h < 8)) crep = 190; + else { + haz = hazard(1, 100); + if (haz > 70) crep = 190; + else crep = 147; + } +} + +/* overlay */ void nouvp(integer l, integer &p) { + /* debug('o1 nouvp'); */ + p = 0; + if (l == 1) { + if (bh1) p = 4; + if (bf1) p = 2; + } + if (((l == 2) && (bh2)) || ((l == 9) && (bh9))) p = 128; + if (l == 4) { + if (bh4) p = 32; + if (bf4) p = 16; + } + if ((l == 5) && (bh5)) p = 1; + if ((l == 6) && (bh6)) p = 8; + if ((l == 8) && (bh8)) p = 64; + if (((l == 3) && (bt3)) || ((l == 7) && (bt7))) p = 9; + if (p != 9) affper(p); +} + + + +/* overlay */ void tip(integer ip, integer &cx) { + /* debug('o1 tip'); */ + if (ip == 128) cx = 1; + else if (ip == 64) cx = 2; + else if (ip == 32) cx = 3; + else if (ip == 16) cx = 4; + else if (ip == 8) cx = 5; + else if (ip == 4) cx = 6; + else if (ip == 2) cx = 7; + else if (ip == 1) cx = 8; +} + + +/* overlay */ void ecfren(integer &p, integer &haz, integer cf, integer l) { + /* debug('o1 ecfren'); */ + if (l == 0) person(); + p = -500; + haz = 0; + if (((l == 1) && (! bh1) && (! bf1)) + || ((l == 4) && (! bh4) && (! bf4))) cpl1(p); + if ((l == 2) && (! bh2) && (! bh9)) cpl2(p); + if (((l == 3) && (! bt3)) || ((l == 7) && (! bt7))) cpl3(p); + if ((l == 5) && (! bh5)) cpl5(p); + if (((l == 6) && (! bh6)) || ((l == 8) && (! bh8))) cpl6(p); + if ((l == 9) && (! bh9) && (! bh2)) p = 10; + if (((l == 2) && (bh9)) || ((l == 9) && (bh2))) p = -400; + if (p != -500) { + p = p + cf; + haz = hazard(1, 100); + } +} + +/* overlay */ void becfren(integer l) { + integer haz; + + /* debug('o1 becfren'); */ + if ((l == 1) || (l == 4)) { + haz = hazard(1, 2); + if (l == 1) + if (haz == 1) bh1 = true; + else bf1 = true; + if (l == 4) + if (haz == 1) bh4 = true; + else bf4 = true; + } + if (l == 2) bh2 = true; + else if (l == 3) bt3 = true; + else if (l == 5) bh5 = true; + else if (l == 6) bh6 = true; + else if (l == 7) bt7 = true; + else if (l == 8) bh8 = true; + else if (l == 9) bh9 = true; } /* NIVEAU 10 */ -void init_nbrepm() -{ - const array<1,8,byte> ipm - = {{4,5,6,7,5,6,5,8}}; - integer i; - -/* debug('init_nbrepm'); */ - i= 0; - do { - i= succ(integer,i); - nbrepm[i]= ipm[i]; - } while (!(i==8)); -} - -void phaz(integer& haz,integer& p, integer cf) -{ -/* debug('phaz'); */ - p= p+ cf; - haz= hazard(1,100); -} - -/* overlay */ void inzon() -{ - integer cx; - -/* debug('o2 inzon'); */ - copcha(); - { - s.ipre = false; - s.derobj= 0; - s.icave = 0; - s.iboul = 0; - s.ibag = 0; - s.ipuit = 0; - s.ivier = 0; - s.iloic = 136; - s.icryp = 141; - s.conf = hazard(4,10); - s.mlieu = 21; - for( cx= 2; cx <= 6; cx ++) s.sjer[cx]= chr(0); - s.sjer[1]= chr(113); - s.heure= chr(20); - for( cx= 1; cx <= 10; cx ++) s.pourc[cx]= ' '; - for( cx= 1; cx <= 6; cx ++) s.teauto[cx]= '*'; - for( cx= 7; cx <= 9; cx ++) s.teauto[cx]= ' '; - for( cx= 10; cx <= 28; cx ++) s.teauto[cx]= '*'; - for( cx= 29; cx <= 42; cx ++) s.teauto[cx]= ' '; - s.teauto[33]= '*'; - } - for( cx= 1; cx <= 8; cx ++) nbrep[cx]= 0; - init_nbrepm(); -} - -/* overlay */ void dprog() -{ -/* debug('o2 dprog'); */ - li= 21; - /* jh:= t_settime(0);*/ - jh= 0; - if (! s.ipre) blo= true; - t= ti1; - mh= readclock(); -} - -/* overlay */ void pl1(integer cf) -{ - integer p, haz; - -/* debug('o2 pl1'); */ - if (((li== 1) && (! bh1) && (! bf1)) - || ((li== 4) && (! bh4) && (! bf4))) - { - cpl1(p); - phaz(haz,p,cf); - if (haz> p) person(); else quelq1(li); - } -} - -/* overlay */ void pl2(integer cf) -{ - integer p,haz; - -/* debug('o2 pl2'); */ - if (! bh2) - { - cpl2(p); - phaz(haz,p,cf); - if (haz> p) person(); else quelq2(); - } -} - -/* overlay */ void pl5(integer cf) -{ - integer p,haz; - -/* debug('o2 pl5'); */ - if (! bh5) - { - cpl5(p); - phaz(haz,p,cf); - if (haz> p) person(); else quelq5(); - } -} - -/* overlay */ void pl6(integer cf) -{ - integer p,haz; - -/* debug('o2 pl6'); */ - if (((li== 6) && (! bh6)) || ((li== 8) && (! bh8))) - { - cpl6(p); - phaz(haz,p,cf); - if (haz> p) person(); else quelq6(li); - } -} - -/* overlayi */ void pl9(integer cf) -{ - integer p,haz; - -/* debug('o2 pl9'); */ - if (! bh9) - { - cf= -10; - phaz(haz,p,cf); - if (haz> p) person(); else quelq2(); - } -} - -/* overlayi */ void pl10(integer cf) -{ - integer p,h,haz; - -/* debug('o2 pl10'); */ - cpl10(p,h); - phaz(haz,p,cf); - if (haz> p) person(); else quelq10(h,p); -} - -/* overlay */ void pl11(integer cf) -{ - integer p,h,haz; - -/* debug('o2 pl11'); */ - cpl11(p,h); - phaz(haz,p,cf); - if (haz> p) person(); else quelq11(h,p); -} - -/* overlay */ void pl12(integer cf) -{ - integer p,haz; - -/* debug('o2 pl12'); */ - cpl12(p); - phaz(haz,p,cf); - if (haz> p) person(); else quelq12(p); -} - -/* overlay */ void pl13(integer cf) -{ - integer p,haz; - -/* debug('o2 pl13'); */ - cpl13(p); - phaz(haz,p,cf); - if (haz> p) person(); else quelq12(p); -} - -/* overlay */ void pl15(integer cf) -{ - integer p,haz; - -/* debug('o2 pl15'); */ - cpl15(p); - phaz(haz,p,cf); - if (haz> p) person(); else quelq15(p); -} - -/* overlay */ void pl20(integer cf) -{ - integer p,h,haz; - -/* debug('o2 pl20'); */ - cpl20(p,h); - phaz(haz,p,cf); - if (haz> p) person(); else quelq20(h,p); -} - -/* overlay */ void t11(integer l11, integer& a) -{ - integer p,haz,h; - -/* debug('o2 t11'); */ - ecfren(p,haz,s.conf,l11); - li= l11; - if ((l11> 0) && (l11< 10)) - if (p!= -500) - { - if (haz> p) - { - person(); - a= 0; - } - else - { - becfren(li); - nouvp(li,a); - } - } - else nouvp(li,a); - if (l11> 9) - if ((l11> 15) && (l11!= 20) && (l11!= 26)) person(); else - { - if (l11== 10) cpl10(p,h); - if (l11== 11) cpl11(p,h); - if (l11== 12) cpl12(p); - if ((l11== 13) || (l11== 14)) cpl13(p); - if ((l11== 15) || (l11== 26)) cpl15(p); - if (l11== 20) cpl20(p,h); - p= p+ s.conf; - haz= hazard(1,100); - if (haz> p) - { - person(); - a= 0; - } - else - { - if (l11== 10) quelq10(h,p); - if (l11== 11) quelq11(h,p); - if ((l11== 12) || (l11== 13) || (l11== 14)) quelq12(p); - if ((l11== 15) || (l11== 26)) quelq15(p); - if (l11== 20) quelq20(h,p); - a= p; - } - } +void init_nbrepm() { + const array<1, 8, byte> ipm + = {{4, 5, 6, 7, 5, 6, 5, 8}}; + integer i; + + /* debug('init_nbrepm'); */ + i = 0; + do { + i = succ(integer, i); + nbrepm[i] = ipm[i]; + } while (!(i == 8)); +} + +void phaz(integer &haz, integer &p, integer cf) { + /* debug('phaz'); */ + p = p + cf; + haz = hazard(1, 100); +} + +/* overlay */ void inzon() { + integer cx; + + /* debug('o2 inzon'); */ + copcha(); + { + s.ipre = false; + s.derobj = 0; + s.icave = 0; + s.iboul = 0; + s.ibag = 0; + s.ipuit = 0; + s.ivier = 0; + s.iloic = 136; + s.icryp = 141; + s.conf = hazard(4, 10); + s.mlieu = 21; + for (cx = 2; cx <= 6; cx ++) s.sjer[cx] = chr(0); + s.sjer[1] = chr(113); + s.heure = chr(20); + for (cx = 1; cx <= 10; cx ++) s.pourc[cx] = ' '; + for (cx = 1; cx <= 6; cx ++) s.teauto[cx] = '*'; + for (cx = 7; cx <= 9; cx ++) s.teauto[cx] = ' '; + for (cx = 10; cx <= 28; cx ++) s.teauto[cx] = '*'; + for (cx = 29; cx <= 42; cx ++) s.teauto[cx] = ' '; + s.teauto[33] = '*'; + } + for (cx = 1; cx <= 8; cx ++) nbrep[cx] = 0; + init_nbrepm(); +} + +/* overlay */ void dprog() { + /* debug('o2 dprog'); */ + li = 21; + /* jh:= t_settime(0);*/ + jh = 0; + if (! s.ipre) blo = true; + t = ti1; + mh = readclock(); +} + +/* overlay */ void pl1(integer cf) { + integer p, haz; + + /* debug('o2 pl1'); */ + if (((li == 1) && (! bh1) && (! bf1)) + || ((li == 4) && (! bh4) && (! bf4))) { + cpl1(p); + phaz(haz, p, cf); + if (haz > p) person(); + else quelq1(li); + } +} + +/* overlay */ void pl2(integer cf) { + integer p, haz; + + /* debug('o2 pl2'); */ + if (! bh2) { + cpl2(p); + phaz(haz, p, cf); + if (haz > p) person(); + else quelq2(); + } +} + +/* overlay */ void pl5(integer cf) { + integer p, haz; + + /* debug('o2 pl5'); */ + if (! bh5) { + cpl5(p); + phaz(haz, p, cf); + if (haz > p) person(); + else quelq5(); + } +} + +/* overlay */ void pl6(integer cf) { + integer p, haz; + + /* debug('o2 pl6'); */ + if (((li == 6) && (! bh6)) || ((li == 8) && (! bh8))) { + cpl6(p); + phaz(haz, p, cf); + if (haz > p) person(); + else quelq6(li); + } +} + +/* overlayi */ void pl9(integer cf) { + integer p, haz; + + /* debug('o2 pl9'); */ + if (! bh9) { + cf = -10; + phaz(haz, p, cf); + if (haz > p) person(); + else quelq2(); + } +} + +/* overlayi */ void pl10(integer cf) { + integer p, h, haz; + + /* debug('o2 pl10'); */ + cpl10(p, h); + phaz(haz, p, cf); + if (haz > p) person(); + else quelq10(h, p); +} + +/* overlay */ void pl11(integer cf) { + integer p, h, haz; + + /* debug('o2 pl11'); */ + cpl11(p, h); + phaz(haz, p, cf); + if (haz > p) person(); + else quelq11(h, p); +} + +/* overlay */ void pl12(integer cf) { + integer p, haz; + + /* debug('o2 pl12'); */ + cpl12(p); + phaz(haz, p, cf); + if (haz > p) person(); + else quelq12(p); +} + +/* overlay */ void pl13(integer cf) { + integer p, haz; + + /* debug('o2 pl13'); */ + cpl13(p); + phaz(haz, p, cf); + if (haz > p) person(); + else quelq12(p); +} + +/* overlay */ void pl15(integer cf) { + integer p, haz; + + /* debug('o2 pl15'); */ + cpl15(p); + phaz(haz, p, cf); + if (haz > p) person(); + else quelq15(p); +} + +/* overlay */ void pl20(integer cf) { + integer p, h, haz; + + /* debug('o2 pl20'); */ + cpl20(p, h); + phaz(haz, p, cf); + if (haz > p) person(); + else quelq20(h, p); +} + +/* overlay */ void t11(integer l11, integer &a) { + integer p, haz, h; + + /* debug('o2 t11'); */ + ecfren(p, haz, s.conf, l11); + li = l11; + if ((l11 > 0) && (l11 < 10)) + if (p != -500) { + if (haz > p) { + person(); + a = 0; + } else { + becfren(li); + nouvp(li, a); + } + } else nouvp(li, a); + if (l11 > 9) + if ((l11 > 15) && (l11 != 20) && (l11 != 26)) person(); + else { + if (l11 == 10) cpl10(p, h); + if (l11 == 11) cpl11(p, h); + if (l11 == 12) cpl12(p); + if ((l11 == 13) || (l11 == 14)) cpl13(p); + if ((l11 == 15) || (l11 == 26)) cpl15(p); + if (l11 == 20) cpl20(p, h); + p = p + s.conf; + haz = hazard(1, 100); + if (haz > p) { + person(); + a = 0; + } else { + if (l11 == 10) quelq10(h, p); + if (l11 == 11) quelq11(h, p); + if ((l11 == 12) || (l11 == 13) || (l11 == 14)) quelq12(p); + if ((l11 == 15) || (l11 == 26)) quelq15(p); + if (l11 == 20) quelq20(h, p); + a = p; + } + } } /* overlay */ void cavegre() { - integer haz; - -/* debug('cavegre'); */ - s.conf= s.conf+ 2; - if (s.conf> 69) s.conf= s.conf+ (s.conf / 10); - clsf3(); - ecrf2(); - ecr3(m1); - haz= (hazard(0, 4))- 2; - parole(2, haz, 1); - for( haz=0; haz <= 3000; haz ++); - clsf3(); - person(); -} - -void writetp(str255 s,integer t) -{ - if (res==2) writeg(s,t); - else writeg(copy(s,1,25),t); -} - -void messint(integer nu) -{ -/* debug('messint'); */ - clsf1(); - clsf2(); - clsf3(); - decomp( 0x73a2, 1008); - memw[0x7413+12]= 80; - memw[0x7413+14]= 40; - writepal(90); - afff(gd,0x73a2, 1008,0,0); - afff(gd,0x73a2, 1008,0,70); - repon(7,nu); -} - -void aniof(integer ouf,integer num) - { - integer ad, offset; - char c; - - /* debug('aniof'); */ - if ((caff== 7) && ((num== 4) || (num== 5))) return; - if ((caff== 10) && (num== 7)) num= 6; - if (caff== 12) if (num== 3) num= 4; - else if (num== 4) num= 3; - ad= adani; - offset= animof(ouf,num); - decomp(ad,offset); - hide_mouse(); - afff(gd,ad,offset,0,12); - ecrf1(); - show_mouse(); - } - -void musique(integer so) -{ - boolean i; - integer haz; -/* dep: array[1..5] of long_integer;*/ - -/* debug('musique'); */ - if (so== 0) /*musik(0)*/ {; } - else - if ((prebru== 0) && (! s.ipre)) - { - parole(10, 1, 1); - prebru= prebru+ 1; - } - else - { - i= false; - if ((s.mlieu== 19) || (s.mlieu== 21) || (s.mlieu== 22)) - { - haz= hazard(1,3); - if (haz== 2) - { - haz= hazard(2,4); - parole(9,haz,1); - i= true; - } - } - if (s.mlieu== 20) - { - haz= hazard(1,2); - if (haz== 1) - { - parole(8,1,1); - i= true; - } - } - if (s.mlieu== 24) - { - haz= hazard(1,2); - if (haz== 2) - { - parole(12,1,1); - i= true; - } - } - if (s.mlieu== 23) - { - parole(13,1,1); - i= true; - } - if (! i) - { - /* dep[1]:= 1416; - dep[2]:= 1512; - dep[3]:= 1692; - dep[4]:= 1884; - dep[5]:= 2046; - haz:= hazard(1,5); - musik(dep[haz]);*/ - haz= hazard(1,17); - parole(haz,1,2); - } - } + integer haz; + + /* debug('cavegre'); */ + s.conf = s.conf + 2; + if (s.conf > 69) s.conf = s.conf + (s.conf / 10); + clsf3(); + ecrf2(); + ecr3(m1); + haz = (hazard(0, 4)) - 2; + parole(2, haz, 1); + for (haz = 0; haz <= 3000; haz ++); + clsf3(); + person(); +} + +void writetp(str255 s, integer t) { + if (res == 2) writeg(s, t); + else writeg(copy(s, 1, 25), t); +} + +void messint(integer nu) { + /* debug('messint'); */ + clsf1(); + clsf2(); + clsf3(); + decomp(0x73a2, 1008); + memw[0x7413 + 12] = 80; + memw[0x7413 + 14] = 40; + writepal(90); + afff(gd, 0x73a2, 1008, 0, 0); + afff(gd, 0x73a2, 1008, 0, 70); + repon(7, nu); +} + +void aniof(integer ouf, integer num) { + integer ad, offset; + char c; + + /* debug('aniof'); */ + if ((caff == 7) && ((num == 4) || (num == 5))) return; + if ((caff == 10) && (num == 7)) num = 6; + if (caff == 12) if (num == 3) num = 4; + else if (num == 4) num = 3; + ad = adani; + offset = animof(ouf, num); + decomp(ad, offset); + hide_mouse(); + afff(gd, ad, offset, 0, 12); + ecrf1(); + show_mouse(); +} + +void musique(integer so) { + boolean i; + integer haz; + /* dep: array[1..5] of long_integer;*/ + + /* debug('musique'); */ + if (so == 0) { /*musik(0)*/ + ; + } else if ((prebru == 0) && (! s.ipre)) { + parole(10, 1, 1); + prebru = prebru + 1; + } else { + i = false; + if ((s.mlieu == 19) || (s.mlieu == 21) || (s.mlieu == 22)) { + haz = hazard(1, 3); + if (haz == 2) { + haz = hazard(2, 4); + parole(9, haz, 1); + i = true; + } + } + if (s.mlieu == 20) { + haz = hazard(1, 2); + if (haz == 1) { + parole(8, 1, 1); + i = true; + } + } + if (s.mlieu == 24) { + haz = hazard(1, 2); + if (haz == 2) { + parole(12, 1, 1); + i = true; + } + } + if (s.mlieu == 23) { + parole(13, 1, 1); + i = true; + } + if (! i) { + /* dep[1]:= 1416; + dep[2]:= 1512; + dep[3]:= 1692; + dep[4]:= 1884; + dep[5]:= 2046; + haz:= hazard(1,5); + musik(dep[haz]);*/ + haz = hazard(1, 17); + parole(haz, 1, 2); + } + } } /* NIVEAU 9 */ -void dessin(integer ad) -{ - integer cx; - -/* debug('dessin'); */ - if (ad!= 0) dessine(ades,((ad % 160)* 2),(ad / 160)); - else - { - clsf1(); - if (caff> 99) - { - dessine(ades,60,33); - boite(118, 32, 291, 121, 15); /* cadre moyen */ - } - else - if (caff> 69) - { - dessine(ades,112,48); /* tˆtes */ - boite(222, 47, 155, 91, 15); - } - else - { - dessine(ades,0,12); - ecrf1(); - if ((caff< 30) || (caff> 32)) - { - for( cx= 1; cx <= 6; cx ++) - if (ord(touv[cx])!= 0) aniof(1,ord(touv[cx])); - if (caff== 13) - { - if (s.iboul== 141) aniof(1,7); - if (s.ibag== 159) aniof(1,6); - } - if ((caff== 14) && (s.icave== 151)) aniof(1,2); - if ((caff== 17) && (s.ivier== 143)) aniof(1,1); - if ((caff== 24) && (s.ipuit!= 0)) aniof(1,1); - } - if (caff< 26) musique(1); - } - } +void dessin(integer ad) { + integer cx; + + /* debug('dessin'); */ + if (ad != 0) dessine(ades, ((ad % 160) * 2), (ad / 160)); + else { + clsf1(); + if (caff > 99) { + dessine(ades, 60, 33); + boite(118, 32, 291, 121, 15); /* cadre moyen */ + } else if (caff > 69) { + dessine(ades, 112, 48); /* tˆtes */ + boite(222, 47, 155, 91, 15); + } else { + dessine(ades, 0, 12); + ecrf1(); + if ((caff < 30) || (caff > 32)) { + for (cx = 1; cx <= 6; cx ++) + if (ord(touv[cx]) != 0) aniof(1, ord(touv[cx])); + if (caff == 13) { + if (s.iboul == 141) aniof(1, 7); + if (s.ibag == 159) aniof(1, 6); + } + if ((caff == 14) && (s.icave == 151)) aniof(1, 2); + if ((caff == 17) && (s.ivier == 143)) aniof(1, 1); + if ((caff == 24) && (s.ipuit != 0)) aniof(1, 1); + } + if (caff < 26) musique(1); + } + } } diff --git a/engines/mortevielle/mor2.h b/engines/mortevielle/mor2.h index 8edf601458..734cb4806c 100644 --- a/engines/mortevielle/mor2.h +++ b/engines/mortevielle/mor2.h @@ -1,764 +1,728 @@ -const array<1,11,integer> men - = {{ scacher, attacher, defoncer, dormir, - entrer, fermer, frapper, manger, - mettre, ouvrir, sortir }}; - -void tinke() -{ - const char m1[] = "Mince! Vous entendez du bruit..."; - const char d1[] = " | Vous devriez avoir remarqu‚| "; - const char d2[] = "% des indices..."; - const char d3 = '['; - const char d4 = ']'; - const char d5 = '1'; - const char d6[] = "OK"; - integer cx,cy,haz,nh,cf,j,h,m,cd; - varying_string<3> stpo; - boolean am; - - anyone= false; - calch(j,h,m); - if (j!= jou) - { - jou= j; - cx=0; - do { - cx=cx+1; - if (nbrepm[cx]!= 0) nbrepm[cx]= nbrepm[cx]- 1; - nbrep[cx]= 0; - } while (!(cx==8)); - } - if ((h> heu) || ((h== 0) && (heu== 23))) - { - heu= h; - min= 0; - pendule(); - cf= 0; - for( cx= 1; cx <= 10; cx ++) if (s.pourc[cx]== '*') cf= cf+ 1; - if (cf==10) stpo="10"; - else stpo=chr(cf+48); - stpou= string(d3)+ d5+ d4+ d3+ d1+ stpo+ '0'+ d2+ d4+ d3+ d6+ d4; - } - if (m> min) - { - min= 30; - pendule(); - } - if (y_s<12) return; - if (! blo) - { - if ((h== 12) || ((h> 18) && (h< 21)) || ((h>= 0) && (h< 7))) - t= ti2; else t= ti1; - cf= s.conf; - if ((cf> 33) && (cf< 66)) t= t- (t / 3); - if (cf> 65) t= t- ((t / 3)* 2); - nh= readclock(); - if ((nh- mh)> t) - { - am= active_menu; - erase_menu(); - jh= jh+ ((nh- mh)/ t); - mh= nh; - switch (li) { - case 1:case 4 : pl1(cf); break; - case 2 : pl2(cf); break; - case 5 : pl5(cf); break; - case 6:case 8 : pl6(cf); break; - case 9 : pl9(cf); break; - case 10 : pl10(cf); break; - case 11 : pl11(cf); break; - case 12 : pl12(cf); break; - case 13:case 14 : pl13(cf); break; - case 15:case 26 : pl15(cf); break; - case 20 : pl20(cf); break; - } - if ((mpers!= 0) && (ipers!= 10)) mpers= ipers; - if ((mpers== 0) && (ipers> 0)) - if ((s.mlieu== 13) || (s.mlieu== 14)) cavegre(); else - if (ipers== 10) - { - ipers= 0; - if (! brt) - { - brt= true; - hdb= readclock(); - haz= hazard(1,5); - if (haz< 5) - { - clsf3(); - ecrf2(); - ecr3(m1); - haz= (hazard(0, 4))- 2; - parole(1, haz, 1); - clsf3(); - } - } - } - if (am) draw_menu(); - } - } - hfb= readclock(); - if ((brt) && ((hfb- hdb)> 17)) - { - nouvp(li,cx); - brt= false; - hdb= 0; - if ((s.mlieu> 0) && (s.mlieu< 10)) anyone= true; - } -} - -void fenat(char ans) -{ - integer coul; - - hide_mouse(); - if (gd==cga) coul=2; - else if (gd==her) coul=1; else coul=12; - affcar(gd,306,193,coul,ord(ans)); - boite(300, 191, 16, 8, 15); - show_mouse(); +const array<1, 11, integer> men += {{ + scacher, attacher, defoncer, dormir, + entrer, fermer, frapper, manger, + mettre, ouvrir, sortir + } +}; + +void tinke() { + const char m1[] = "Mince! Vous entendez du bruit..."; + const char d1[] = " | Vous devriez avoir remarqu‚| "; + const char d2[] = "% des indices..."; + const char d3 = '['; + const char d4 = ']'; + const char d5 = '1'; + const char d6[] = "OK"; + integer cx, cy, haz, nh, cf, j, h, m, cd; + varying_string<3> stpo; + boolean am; + + anyone = false; + calch(j, h, m); + if (j != jou) { + jou = j; + cx = 0; + do { + cx = cx + 1; + if (nbrepm[cx] != 0) nbrepm[cx] = nbrepm[cx] - 1; + nbrep[cx] = 0; + } while (!(cx == 8)); + } + if ((h > heu) || ((h == 0) && (heu == 23))) { + heu = h; + min = 0; + pendule(); + cf = 0; + for (cx = 1; cx <= 10; cx ++) if (s.pourc[cx] == '*') cf = cf + 1; + if (cf == 10) stpo = "10"; + else stpo = chr(cf + 48); + stpou = string(d3) + d5 + d4 + d3 + d1 + stpo + '0' + d2 + d4 + d3 + d6 + d4; + } + if (m > min) { + min = 30; + pendule(); + } + if (y_s < 12) return; + if (! blo) { + if ((h == 12) || ((h > 18) && (h < 21)) || ((h >= 0) && (h < 7))) + t = ti2; + else t = ti1; + cf = s.conf; + if ((cf > 33) && (cf < 66)) t = t - (t / 3); + if (cf > 65) t = t - ((t / 3) * 2); + nh = readclock(); + if ((nh - mh) > t) { + am = active_menu; + erase_menu(); + jh = jh + ((nh - mh) / t); + mh = nh; + switch (li) { + case 1: + case 4 : + pl1(cf); + break; + case 2 : + pl2(cf); + break; + case 5 : + pl5(cf); + break; + case 6: + case 8 : + pl6(cf); + break; + case 9 : + pl9(cf); + break; + case 10 : + pl10(cf); + break; + case 11 : + pl11(cf); + break; + case 12 : + pl12(cf); + break; + case 13: + case 14 : + pl13(cf); + break; + case 15: + case 26 : + pl15(cf); + break; + case 20 : + pl20(cf); + break; + } + if ((mpers != 0) && (ipers != 10)) mpers = ipers; + if ((mpers == 0) && (ipers > 0)) + if ((s.mlieu == 13) || (s.mlieu == 14)) cavegre(); + else if (ipers == 10) { + ipers = 0; + if (! brt) { + brt = true; + hdb = readclock(); + haz = hazard(1, 5); + if (haz < 5) { + clsf3(); + ecrf2(); + ecr3(m1); + haz = (hazard(0, 4)) - 2; + parole(1, haz, 1); + clsf3(); + } + } + } + if (am) draw_menu(); + } + } + hfb = readclock(); + if ((brt) && ((hfb - hdb) > 17)) { + nouvp(li, cx); + brt = false; + hdb = 0; + if ((s.mlieu > 0) && (s.mlieu < 10)) anyone = true; + } +} + +void fenat(char ans) { + integer coul; + + hide_mouse(); + if (gd == cga) coul = 2; + else if (gd == her) coul = 1; + else coul = 12; + affcar(gd, 306, 193, coul, ord(ans)); + boite(300, 191, 16, 8, 15); + show_mouse(); } /* NIVEAU 8 */ -void afdes(integer ad) -{ - taffich(); - dessin(ad); - okdes= false; -} - -void tkey1(boolean d) -{ - boolean quest; - integer x,y,c; - integer key; - - hide_mouse(); - fenat('K'); - while (keypressed()) key=testou(); - do { - if (d) tinke(); - quest=keypressed(); - read_pos_mouse(x,y,c); - } while (!(quest || (c!=0) || (d && anyone))); - if (quest) key=testou(); - clic=false; - show_mouse(); -} - -void tmlieu(integer mli) -{ - integer cx, j, i, tail; - str30 nomp; - phrase st; - - - if (mli== 26) mli= 15; - i=1; - while ((i<8) && (v_lieu[i][mli]!=0)) - { - cx=v_lieu[i][mli]; - deline(cx+c_tmlieu,st,tail); - nomp= delig; - while (length(nomp)<30) nomp=nomp+' '; - menut( depl[i], nomp); - i=i+1; - } - nomp= "* "; - for( cx= 7; cx >= i; cx --) menut( depl[cx], nomp); +void afdes(integer ad) { + taffich(); + dessin(ad); + okdes = false; +} + +void tkey1(boolean d) { + boolean quest; + integer x, y, c; + integer key; + + hide_mouse(); + fenat('K'); + while (keypressed()) key = testou(); + do { + if (d) tinke(); + quest = keypressed(); + read_pos_mouse(x, y, c); + } while (!(quest || (c != 0) || (d && anyone))); + if (quest) key = testou(); + clic = false; + show_mouse(); +} + +void tmlieu(integer mli) { + integer cx, j, i, tail; + str30 nomp; + phrase st; + + + if (mli == 26) mli = 15; + i = 1; + while ((i < 8) && (v_lieu[i][mli] != 0)) { + cx = v_lieu[i][mli]; + deline(cx + c_tmlieu, st, tail); + nomp = delig; + while (length(nomp) < 30) nomp = nomp + ' '; + menut(depl[i], nomp); + i = i + 1; + } + nomp = "* "; + for (cx = 7; cx >= i; cx --) menut(depl[cx], nomp); } /* NIVEAU 7 */ -void tlu(integer af,integer ob) -{ - caff= 32; - afdes(0); - repon(6,ob+ 4000); - repon(2,999); - tkey1(true); - caff= af; - msg[3]= no_choice; - crep= 998; +void tlu(integer af, integer ob) { + caff = 32; + afdes(0); + repon(6, ob + 4000); + repon(2, 999); + tkey1(true); + caff = af; + msg[3] = no_choice; + crep = 998; } -void delin(integer n) - { - phrase s; - integer t; +void delin(integer n) { + phrase s; + integer t; - deline(n,s,t); - } + deline(n, s, t); +} -void affrep() -{ - caff= s.mlieu; - crep= s.mlieu; +void affrep() { + caff = s.mlieu; + crep = s.mlieu; } void mfouen() { - integer cx; - - tmlieu(s.mlieu); - for( cx=1; cx <= 11; cx ++) menu_enable( men[cx]); -/* menu_enable( scacher); - menu_enable(menup, attacher); - menu_enable(menup, defoncer); - menu_enable(menup, dormir); - menu_enable(menup, entrer); - menu_enable(menup, fermer); - menu_enable(menup, frapper); - menu_enable(menup, manger); - menu_enable(menup, mettre); - menu_enable(menup, ouvrir); - menu_enable(menup, sortir); */ - menut( sonder, " sonder "); - menut( soulever, " soulever "); -} - -void atf3f8(integer& key) - { - do { - key= testou(); - } while (!((key==61) || (key==66))); - } + integer cx; -/* NIVEAU 6 */ - -void tperd() -{ - integer cx; - - initouv(); - ment= 0; - iouv= 0; - mchai= 0; - mfouen(); - if (! blo) t11(21, cx); - perdu= true; - clsf1(); - boite( 60, 35, 400, 50, 15); - repon(9,crep); - clsf2(); - clsf3(); - col= false; - syn= false; - okdes= false; -} - -void tsort() -{ - integer cx; - - if ((iouv> 0) && (s.mlieu!= 0)) - if (s.conf< 50) s.conf= s.conf+ 2; - else s.conf= s.conf+ (s.conf / 10); - for( cx= 1; cx <= 7; cx ++) touv[cx]= chr(0); - ment= 0; - iouv= 0; - mchai= 0; - debloc(s.mlieu); + tmlieu(s.mlieu); + for (cx = 1; cx <= 11; cx ++) menu_enable(men[cx]); + /* menu_enable( scacher); + menu_enable(menup, attacher); + menu_enable(menup, defoncer); + menu_enable(menup, dormir); + menu_enable(menup, entrer); + menu_enable(menup, fermer); + menu_enable(menup, frapper); + menu_enable(menup, manger); + menu_enable(menup, mettre); + menu_enable(menup, ouvrir); + menu_enable(menup, sortir); */ + menut(sonder, " sonder "); + menut(soulever, " soulever "); } -void st4(integer ob) -{ - crep= 997; - switch (ob) { - case 114 : crep=109; break; - case 110 : crep=107; break; - case 158 : crep=113; break; - case RANGE_5(152,156):case 150: - case 100:case 157:case 160:case 161 : tlu(caff,ob); - break; - } -} - -void cherjer(integer ob, boolean& d) -{ - integer cx; - - d= false; - for( cx= 1; cx <= 6; cx ++) d=(d || (ord(s.sjer[cx])== ob)); - if (s.derobj== ob) d= true; +void atf3f8(integer &key) { + do { + key = testou(); + } while (!((key == 61) || (key == 66))); } -void st1sama() -{ - s.mlieu= 10; - affrep(); -} - -void modinv() -{ - integer cx, cy, tay, i, r; - phrase nom; - str30 nomp; - - cy= 0; - for( cx=1; cx <= 6; cx ++) - if (s.sjer[cx]!= chr(0)) - { - cy= succ(integer,cy); - r= (ord(s.sjer[cx])+ 400); - deline(r-501+c_st41,nom,tay); - nomp= delig; - menut( invt[cy], nomp); - menu_enable( invt[cx]); - } - if (cy<6) - for( cx=cy+1; cx <= 6; cx ++) - { - menut( invt[cx], " "); - menu_disable( invt[cx]); - } -} - -void sparl(long_integer adr, long_integer rep) -{ - const array<1,8,integer> haut - = {{0,1,-3,6,-2,2,7,-1}}; - integer key, ad, tay, repint; - phrase st; - - repint=trunc(rep); - hide_mouse(); - deline( repint+c_paroles,st,tay); - afftex(st,230,4,65,24,5); - f3f8(); - /*boite(43,30,90,19,15); - gotoxy(7,5); - write('F3: Encore'); - gotoxy(7,6); - write('F8: Stop');*/ - key= 0; - do { - parole(repint, haut[caff- 69], 0); - atf3f8(key); - } while (!(key== 66)); - hirs(); - show_mouse(); -} - -void finfouil() - { - fouil= false; - obpart= false; - cs= 0; - is= 0; - mfouen(); - } - -void mfoudi() -{ - integer cx; - - for( cx= 1; cx <= 7; cx ++) menu_disable( depl[cx]); - for( cx=1; cx <= 11; cx ++) menu_disable( men[cx]); -/* menu_disable(menup, scacher); - menu_disable(menup, attacher); - menu_disable(menup, defoncer); - menu_disable(menup, dormir); - menu_disable(menup, entrer); - menu_disable(menup, fermer); - menu_disable(menup, frapper); - menu_disable(menup, manger); - menu_disable(menup, mettre); - menu_disable(menup, ouvrir); - menu_disable(menup, sortir); */ - menut( sonder, " -SUITE- "); - menut( soulever, " -STOP- "); -} - -void mennor() -{ - menu_up(msg[3]); -} +/* NIVEAU 6 */ -void premtet() -{ - dessine(ades, 10, 80); - boite(18, 79, 155, 91, 15); +void tperd() { + integer cx; + + initouv(); + ment = 0; + iouv = 0; + mchai = 0; + mfouen(); + if (! blo) t11(21, cx); + perdu = true; + clsf1(); + boite(60, 35, 400, 50, 15); + repon(9, crep); + clsf2(); + clsf3(); + col = false; + syn = false; + okdes = false; +} + +void tsort() { + integer cx; + + if ((iouv > 0) && (s.mlieu != 0)) + if (s.conf < 50) s.conf = s.conf + 2; + else s.conf = s.conf + (s.conf / 10); + for (cx = 1; cx <= 7; cx ++) touv[cx] = chr(0); + ment = 0; + iouv = 0; + mchai = 0; + debloc(s.mlieu); +} + +void st4(integer ob) { + crep = 997; + switch (ob) { + case 114 : + crep = 109; + break; + case 110 : + crep = 107; + break; + case 158 : + crep = 113; + break; + case RANGE_5(152, 156): + case 150: + case 100: + case 157: + case 160: + case 161 : + tlu(caff, ob); + break; + } +} + +void cherjer(integer ob, boolean &d) { + integer cx; + + d = false; + for (cx = 1; cx <= 6; cx ++) d = (d || (ord(s.sjer[cx]) == ob)); + if (s.derobj == ob) d = true; +} + +void st1sama() { + s.mlieu = 10; + affrep(); +} + +void modinv() { + integer cx, cy, tay, i, r; + phrase nom; + str30 nomp; + + cy = 0; + for (cx = 1; cx <= 6; cx ++) + if (s.sjer[cx] != chr(0)) { + cy = succ(integer, cy); + r = (ord(s.sjer[cx]) + 400); + deline(r - 501 + c_st41, nom, tay); + nomp = delig; + menut(invt[cy], nomp); + menu_enable(invt[cx]); + } + if (cy < 6) + for (cx = cy + 1; cx <= 6; cx ++) { + menut(invt[cx], " "); + menu_disable(invt[cx]); + } +} + +void sparl(long_integer adr, long_integer rep) { + const array<1, 8, integer> haut + = {{0, 1, -3, 6, -2, 2, 7, -1}}; + integer key, ad, tay, repint; + phrase st; + + repint = trunc(rep); + hide_mouse(); + deline(repint + c_paroles, st, tay); + afftex(st, 230, 4, 65, 24, 5); + f3f8(); + /*boite(43,30,90,19,15); + gotoxy(7,5); + write('F3: Encore'); + gotoxy(7,6); + write('F8: Stop');*/ + key = 0; + do { + parole(repint, haut[caff - 69], 0); + atf3f8(key); + } while (!(key == 66)); + hirs(); + show_mouse(); +} + +void finfouil() { + fouil = false; + obpart = false; + cs = 0; + is = 0; + mfouen(); +} + +void mfoudi() { + integer cx; + + for (cx = 1; cx <= 7; cx ++) menu_disable(depl[cx]); + for (cx = 1; cx <= 11; cx ++) menu_disable(men[cx]); + /* menu_disable(menup, scacher); + menu_disable(menup, attacher); + menu_disable(menup, defoncer); + menu_disable(menup, dormir); + menu_disable(menup, entrer); + menu_disable(menup, fermer); + menu_disable(menup, frapper); + menu_disable(menup, manger); + menu_disable(menup, mettre); + menu_disable(menup, ouvrir); + menu_disable(menup, sortir); */ + menut(sonder, " -SUITE- "); + menut(soulever, " -STOP- "); +} + +void mennor() { + menu_up(msg[3]); +} + +void premtet() { + dessine(ades, 10, 80); + boite(18, 79, 155, 91, 15); } /* NIVEAU 5 */ -void ajchai() -{ - integer cx,cy,lderobj; - - - cy= (acha+ pred(integer,pred(integer,mchai)* 10)); - cx= 0; - do { - cx= cx+ 1; - } while (!((cx> 9) || (tabdon[cy+ cx]== 0))); - if (tabdon[cy+ cx]== 0) - { - lderobj= s.derobj; - tabdon[cy+ cx]=lderobj; - } - else crep= 192; +void ajchai() { + integer cx, cy, lderobj; + + + cy = (acha + pred(integer, pred(integer, mchai) * 10)); + cx = 0; + do { + cx = cx + 1; + } while (!((cx > 9) || (tabdon[cy + cx] == 0))); + if (tabdon[cy + cx] == 0) { + lderobj = s.derobj; + tabdon[cy + cx] = lderobj; + } else crep = 192; +} + +void ajjer(integer ob) { + integer cx; + + cx = 0; + do { + cx = cx + 1; + } while (!((cx > 5) || (ord(s.sjer[cx]) == 0))); + if (ord(s.sjer[cx]) == 0) { + s.sjer[(cx)] = chr(ob); + modinv(); + } else crep = 139; +} + +void t1sama() { /* On entre dans le manoir */ + integer j, h, m; + boolean d; + + calch(j, h, m); + if ((h < 5) && (s.mlieu > 18)) { + cherjer(137, d); + if (! d) { /* On n'a pas les cl‚s et il est tard */ + crep = 1511; + tperd(); + } else st1sama(); + } else if (! s.ipre) { /* c'est votre premiŠre fois ? */ + ipers = 255; + affper(ipers); + caff = 77; + afdes(0); + boite(223, 47, 155, 91, 15); + repon(2, 33); + tkey1(false); + mennor(); + hide_mouse(); + hirs(); + premtet(); + sparl(0, 140); + dessine_rouleau(); + pendule(); + show_mouse(); + s.mlieu = 0; + affrep(); + t5(10); + if (! blo) t11(0, m); + ipers = 0; + mpers = 0; + s.ipre = true; + /*chech;*/ + } else st1sama(); +} + +void t1vier() { + s.mlieu = 17; + affrep(); +} + +void t1neig() { + inei = inei + 1; + if (inei > 2) { + crep = 1506; + tperd(); + } else { + okdes = true; + s.mlieu = 19; + affrep(); + } +} + +void t1deva() { + inei = 0; + s.mlieu = 21; + affrep(); +} + +void t1derr() { + s.mlieu = 22; + affrep(); +} + +void t1deau() { + crep = 1503; + tperd(); +} + +void tctrm() { + repon(2, (3000 + ctrm)); + ctrm = 0; } -void ajjer(integer ob) -{ - integer cx; - - cx= 0; - do { - cx= cx+ 1; - } while (!((cx> 5) || (ord(s.sjer[cx])== 0))); - if (ord(s.sjer[cx])== 0) - { - s.sjer[(cx)]= chr(ob); - modinv(); - } - else crep= 139; -} -void t1sama() /* On entre dans le manoir */ -{ - integer j,h,m; - boolean d; - - calch(j,h,m); - if ((h< 5) && (s.mlieu> 18)) - { - cherjer(137,d); - if (! d) /* On n'a pas les cl‚s et il est tard */ - { - crep= 1511; - tperd(); - } - else st1sama(); - } - else - if (! s.ipre) /* c'est votre premiŠre fois ? */ - { - ipers= 255; - affper(ipers); - caff= 77; - afdes(0); - boite(223, 47, 155, 91, 15); - repon(2,33); - tkey1(false); - mennor(); - hide_mouse(); - hirs(); - premtet(); - sparl(0,140); - dessine_rouleau(); - pendule(); - show_mouse(); - s.mlieu= 0; - affrep(); - t5(10); - if (! blo) t11(0, m); - ipers= 0; - mpers= 0; - s.ipre= true; - /*chech;*/ - } - else st1sama(); -} - -void t1vier() -{ - s.mlieu= 17; - affrep(); -} - -void t1neig() -{ - inei= inei+ 1; - if (inei> 2) - { - crep= 1506; - tperd(); - } - else - { - okdes= true; - s.mlieu= 19; - affrep(); - } -} - -void t1deva() -{ - inei= 0; - s.mlieu= 21; - affrep(); -} - -void t1derr() -{ - s.mlieu = 22; - affrep(); -} +void quelquun() -void t1deau() { - crep = 1503; - tperd(); -} + integer haz, cx; -void tctrm() -{ - repon(2,(3000+ ctrm)); - ctrm= 0; + if (imen) erase_menu(); + finfouil(); + crep = 997; +L1: + if (! cache) { + if (crep == 997) crep = 138; + repon(2, crep); + if (crep == 138) parole(5, 2, 1); + else parole(4, 4, 1); + if (iouv == 0) s.conf = s.conf + 2; + else if (s.conf < 50) s.conf = s.conf + 4; + else + s.conf = s.conf + (3 * (s.conf / 10)); + tsort(); + tmlieu(15); + tip(ipers, cx); + caff = 69 + cx; + crep = caff; + msg[3] = discut; + msg[4] = disc[cx]; + syn = true; + col = true; + } else { + haz = hazard(1, 3); + if (haz == 2) { + cache = false; + crep = 137; + goto L1; + } else { + repon(2, 136); + haz = (hazard(0, 4)) - 2; + parole(3, haz, 1); + clsf2(); + person(); + debloc(21); + affrep(); + } + } + if (imen) draw_menu(); +} + +void tsuiv() { + integer cx, tbcl; + integer cl, cy; + + cy = acha + ((mchai - 1) * 10) - 1; + cx = 0; + do { + cx = cx + 1; + cs = cs + 1; + cl = cy + cs; + tbcl = tabdon[cl]; + } while (!((tbcl != 0) || (cs > 9))); + if ((tbcl != 0) && (cs < 11)) { + is = is + 1; + caff = tbcl; + crep = caff + 400; + if (ipers != 0) s.conf = s.conf + 2; + } else { + affrep(); + finfouil(); + if (cx > 9) crep = 131; + } +} + +void tfleche() { + boolean qust; + char touch; + integer dummy, cd, xmo, ymo; + + if (num == 9999) return; + fenat(chr(152)); + rect = false; + do { + touch = '\0'; + + do { + mov_mouse(qust, touch); + if (clic) rect = (x_s < 256 * res) && (y_s < 176) && (y_s > 12); + tinke(); + } while (!(qust || rect || anyone)); + + if (qust && (touch == '\103')) dummy = do_alert(stpou, 1); + } while (!((touch == '\73') || ((touch == '\104') && (x != 0) && (y != 0)) || + (anyone) || (rect))); + if (touch == '\73') iesc = true; + if (rect) { + x = x_s; + y = y_s; + } } - -void quelquun() +void tcoord(integer sx) { - integer haz,cx; - - if (imen) erase_menu(); - finfouil(); - crep= 997; + integer sy, ix, iy, cb, cy, ib; + integer a, b, atdon; + + + num = 0; + crep = 999; + a = 0; + atdon = amzon + 3; + cy = 0; + while (cy < caff) { + a = a + tabdon[atdon]; + atdon = atdon + 4; + cy = succ(integer, cy); + } + /* for cy:=0 to caff-1 do + a:=a+ tabdon[amzon+3+4*cy]; + b:= peek(amzon+3+4*caff); */ + b = tabdon[atdon]; + if (b == 0) goto L1; + a = a + fleche; + cb = 0; + for (cy = 0; cy <= (sx - 2); cy ++) { + ib = (tabdon[a + cb] << 8) + tabdon[succ(integer, a + cb)]; + cb = cb + (ib * 4) + 2; + } + ib = (tabdon[a + cb] << 8) + tabdon[succ(integer, a + cb)]; + if (ib == 0) goto L1; + cy = 1; + do { + cb = cb + 2; + sx = tabdon[a + cb] * res; + sy = tabdon[succ(integer, a + cb)]; + cb = cb + 2; + ix = tabdon[a + cb] * res; + iy = tabdon[succ(integer, a + cb)]; + cy = cy + 1; + } while (!(((x >= sx) && (x <= ix) && (y >= sy) && (y <= iy)) + || (cy > ib))); + if ((x >= sx) && (x <= ix) && (y >= sy) && (y <= iy)) + + { + num = cy - 1; + return; + } L1: - if (! cache) - { - if (crep== 997) crep= 138; - repon(2,crep); - if (crep== 138) parole(5, 2, 1); else parole(4, 4, 1); - if (iouv== 0) s.conf= s.conf+ 2; else - if (s.conf< 50) s.conf= s.conf+ 4; else - s.conf= s.conf+ (3* (s.conf / 10)); - tsort(); - tmlieu(15); - tip(ipers,cx); - caff= 69+ cx; - crep= caff; - msg[3]= discut; - msg[4]= disc[cx]; - syn= true; - col= true; - } - else - { - haz= hazard(1, 3); - if (haz== 2) - { - cache= false; - crep= 137; - goto L1; - } - else - { - repon(2, 136); - haz= (hazard(0, 4))- 2; - parole(3, haz, 1); - clsf2(); - person(); - debloc(21); - affrep(); - } - } - if (imen) draw_menu(); -} - -void tsuiv() -{ - integer cx,tbcl; - integer cl,cy; - - cy= acha+ ((mchai- 1)* 10)- 1; - cx= 0; - do { - cx= cx+ 1; - cs= cs+ 1; - cl= cy+ cs; - tbcl= tabdon[cl]; - } while (!((tbcl != 0) || (cs> 9))); - if ((tbcl != 0) && (cs< 11)) - { - is= is+ 1; - caff= tbcl; - crep= caff+ 400; - if (ipers!= 0) s.conf= s.conf+ 2; - } - else - { - affrep(); - finfouil(); - if (cx> 9) crep= 131; - } -} - -void tfleche() -{ - boolean qust; - char touch; - integer dummy,cd,xmo,ymo; - - if (num== 9999) return; - fenat(chr(152)); - rect= false; - do { - touch='\0'; - - do { - mov_mouse(qust,touch); - if (clic) rect=(x_s<256*res) && (y_s<176) && (y_s>12); - tinke(); - } while (!(qust || rect || anyone)); - - if (qust && (touch=='\103')) dummy=do_alert(stpou,1); - } while (!((touch=='\73') || ((touch== '\104') && (x!= 0) && (y!=0)) || - (anyone) || (rect))); - if (touch=='\73') iesc= true; - if (rect) - { - x=x_s; - y=y_s; - } + crep = 997; } -void tcoord(integer sx) - { - integer sy,ix,iy,cb,cy,ib; - integer a, b, atdon; - - - num= 0; - crep= 999; - a=0; - atdon=amzon+3; - cy= 0; - while (cy<caff) - { - a=a+tabdon[atdon]; - atdon=atdon+4; - cy= succ(integer,cy); - } -/* for cy:=0 to caff-1 do - a:=a+ tabdon[amzon+3+4*cy]; - b:= peek(amzon+3+4*caff); */ - b= tabdon[atdon]; - if (b== 0) goto L1; - a= a+ fleche; - cb= 0; - for( cy= 0; cy <= (sx-2); cy ++) - { - ib= (tabdon[a+cb] << 8)+ tabdon[succ(integer,a+ cb)]; - cb= cb+ (ib* 4)+ 2; - } - ib= (tabdon[a+cb] << 8)+ tabdon[succ(integer,a+ cb)]; - if (ib== 0) goto L1; - cy= 1; - do { - cb= cb+ 2; - sx= tabdon[a+ cb] * res; - sy= tabdon[succ(integer,a+ cb)]; - cb= cb+ 2; - ix= tabdon[a+ cb] * res; - iy= tabdon[succ(integer,a+ cb)]; - cy= cy+ 1; - } while (!(((x>= sx) && (x<= ix) && (y>= sy) && (y<= iy)) - || (cy> ib))); - if ((x>= sx) && (x<= ix) && (y>= sy) && (y<= iy)) - - { - num= cy- 1; - return; - } -L1: - crep= 997; - } +void st7(integer ob) { + crep = 183; + if ((ob == 116) || (ob == 144)) crep = 104; + if ((ob == 126) || (ob == 111)) crep = 108; + if (ob == 132) crep = 111; + if (ob == 142) crep = 112; + if (crep == 183) st4(ob); +} +void treg(integer ob) { + integer mdes; -void st7(integer ob) -{ - crep= 183; - if ((ob== 116) || (ob== 144)) crep= 104; - if ((ob== 126) || (ob== 111)) crep= 108; - if (ob== 132) crep= 111; - if (ob== 142) crep= 112; - if (crep== 183) st4(ob); + mdes = caff; + caff = ob; + if (((caff > 29) && (caff < 33)) || (caff == 144) || + (caff == 147) || (caff == 149) || (msg[4] == sregarder)) { + afdes(0); + if ((caff > 29) && (caff < 33)) repon(2, caff); + else repon(2, (caff + 400)); + tkey1(true); + caff = mdes; + msg[3] = 0; + crep = 998; + } else { + obpart = true; + crep = caff + 400; + mfoudi(); + } } -void treg(integer ob) -{ - integer mdes; - - mdes= caff; - caff= ob; - if (((caff> 29) && (caff< 33)) || (caff== 144) || - (caff== 147) || (caff== 149) || (msg[4]== sregarder)) - { - afdes(0); - if ((caff> 29) && (caff< 33)) repon(2,caff); else repon(2,(caff+ 400)); - tkey1(true); - caff= mdes; - msg[3]= 0; - crep= 998; - } - else - { - obpart= true; - crep= caff+ 400; - mfoudi(); - } -} - -void avpoing(integer& ob) -{ - crep= 999; - if (s.derobj!= 0) ajjer(s.derobj); - if (crep!= 139) - { - modobj(ob+ 400); - s.derobj= ob; - ob= 0; - } +void avpoing(integer &ob) { + crep = 999; + if (s.derobj != 0) ajjer(s.derobj); + if (crep != 139) { + modobj(ob + 400); + s.derobj = ob; + ob = 0; + } } -void rechai(integer& ch) -{ - integer cx; +void rechai(integer &ch) { + integer cx; - cx= s.mlieu; - if (s.mlieu== 16) cx= 14; - ch= tabdon[achai+ (cx* 7)+ pred(integer,num)]; + cx = s.mlieu; + if (s.mlieu == 16) cx = 14; + ch = tabdon[achai + (cx * 7) + pred(integer, num)]; } -void t23coul(integer& l) -{ - boolean d; +void t23coul(integer &l) { + boolean d; - cherjer(143,d); - l= 14; - if (! d) - { - crep= 1512; - tperd(); - } + cherjer(143, d); + l = 14; + if (! d) { + crep = 1512; + tperd(); + } } -void maivid() -{ - s.derobj= 0; - modobj(500); +void maivid() { + s.derobj = 0; + modobj(500); } -void st13(integer ob) -{ - if ((ob== 114) || (ob== 116) || (ob== 126) || (ob== 132) || - (ob== 111) || (ob== 106) || (ob== 102) || (ob== 100) || - (ob== 110) || (ob== 153) || (ob== 154) || (ob== 155) || - (ob== 156) || (ob== 157) || (ob== 144) || (ob== 158) || - (ob== 150) || (ob== 152)) crep= 999; else crep= 105; +void st13(integer ob) { + if ((ob == 114) || (ob == 116) || (ob == 126) || (ob == 132) || + (ob == 111) || (ob == 106) || (ob == 102) || (ob == 100) || + (ob == 110) || (ob == 153) || (ob == 154) || (ob == 155) || + (ob == 156) || (ob == 157) || (ob == 144) || (ob == 158) || + (ob == 150) || (ob == 152)) crep = 999; + else crep = 105; } -void aldepl() -{ - integer dummy; +void aldepl() { + integer dummy; - dummy=do_alert("[1][Alors, utilisez le menu DEP...][ok]",1); + dummy = do_alert("[1][Alors, utilisez le menu DEP...][ok]", 1); } diff --git a/engines/mortevielle/mort.cpp b/engines/mortevielle/mort.cpp index 1fbd91c648..7d5f33c2ab 100644 --- a/engines/mortevielle/mort.cpp +++ b/engines/mortevielle/mort.cpp @@ -2,10 +2,10 @@ - /*$v-*/ - /*$k-*/ - /*$x-*/ - /*$c-*/ +/*$v-*/ +/*$k-*/ +/*$x-*/ +/*$c-*/ #include "var_mor.h" /* les variables */ #include "keyboard.h" /* la gestion du clavier */ @@ -18,7 +18,7 @@ #include "parole.h" /* les fonctions de la parole */ #include "alert.h" #include "parole2.h" /* les fonctions de la parole */ - /* debug le debugging */ +/* debug le debugging */ #include "ques.h" /* les questions */ #include "menu.h" /* les fonctions du menu */ #include "mor.h" /* divers */ @@ -31,94 +31,93 @@ /* ecrihexa utilitaire */ -void divers(integer np,boolean b) -{ - teskbd(); - do { - parole(np, 0, 0); - atf3f8(key); - if (newgd!=gd) - { - gd=newgd; - hirs(); - aff50(b); - } - } while (!(key== 66)); +void divers(integer np, boolean b) { + teskbd(); + do { + parole(np, 0, 0); + atf3f8(key); + if (newgd != gd) { + gd = newgd; + hirs(); + aff50(b); + } + } while (!(key == 66)); } /* NIVEAU 0 */ -int main(int argc, const char* argv[]) -{ -/*init_debug;*/ -/* ecri_seg;*/ - pio_initialize(argc, argv); - gd=cga; - newgd= gd; - zuul= false; - tesok= false; - chartex(); - charpal(); - charge_cfiph(); - charge_cfiec(); - zzuul(adcfiec+161,0,1644); - c_zzz= 1; - init_nbrepm(); - init_mouse(); -/* crep:=memw[$7f00:0]; - memw[$7f00:0]:= crep+1; - if (memw[$7f00:0]<> crep+1) then - begin - hirs; - show_mouse; - crep:=do_alert('[1][ 512 k minimum requis !!][OK]',1); - clrscr; - halt; - end; - if (Dseg+$1000>adbruit5) then - begin - hirs; - show_mouse; - crep:=do_alert('[1][ Il ne reste pas assez de |place m‚moire !!][OK]',1); - clrscr; - halt; - end;*/ - init_lieu(); - arret= false; - sonoff= false; - f2_all= false; - textcolor(9); - teskbd(); - dialpre(); - newgd= gd; - teskbd(); - if (newgd!=gd) gd=newgd; - hirs(); - ades= 0x7000; - aff50(false); - mlec= 0; - divers(142,false); +int main(int argc, const char *argv[]) { + /*init_debug;*/ + /* ecri_seg;*/ + pio_initialize(argc, argv); + gd = cga; + newgd = gd; + zuul = false; + tesok = false; + chartex(); + charpal(); + charge_cfiph(); + charge_cfiec(); + zzuul(adcfiec + 161, 0, 1644); + c_zzz = 1; + init_nbrepm(); + init_mouse(); + /* crep:=memw[$7f00:0]; + memw[$7f00:0]:= crep+1; + if (memw[$7f00:0]<> crep+1) then + begin + hirs; + show_mouse; + crep:=do_alert('[1][ 512 k minimum requis !!][OK]',1); + clrscr; + halt; + end; + if (Dseg+$1000>adbruit5) then + begin + hirs; + show_mouse; + crep:=do_alert('[1][ Il ne reste pas assez de |place m‚moire !!][OK]',1); + clrscr; + halt; + end;*/ + init_lieu(); + arret = false; + sonoff = false; + f2_all = false; + textcolor(9); + teskbd(); + dialpre(); + newgd = gd; + teskbd(); + if (newgd != gd) gd = newgd; + hirs(); + ades = 0x7000; + aff50(false); + mlec = 0; + divers(142, false); - ani50(); - divers(143,true); - suite(); - music(); - adzon(); - takesav(0); - if (rech_cfiec) charge_cfiec(); - for( crep=1; crep <= c_zzz; crep ++) zzuul(adcfiec+161,0,1644); - charge_bruit5(); - init_menu(); + ani50(); + divers(143, true); + suite(); + music(); + adzon(); + takesav(0); + if (rech_cfiec) charge_cfiec(); + for (crep = 1; crep <= c_zzz; crep ++) zzuul(adcfiec + 161, 0, 1644); + charge_bruit5(); + init_menu(); - theure(); - dprog(); - hirs(); - dessine_rouleau(); - show_mouse(); - do { tjouer(); } while (!arret); - hide_mouse(); - clrscr; -/*out_debug;*/ - return EXIT_SUCCESS; + theure(); + dprog(); + hirs(); + dessine_rouleau(); + show_mouse(); + do { + tjouer(); + } while (!arret); + hide_mouse(); + clrscr; + /*out_debug;*/ + return EXIT_SUCCESS; } diff --git a/engines/mortevielle/mouse.h b/engines/mortevielle/mouse.h index 3f250d91e4..d1de4b79d2 100644 --- a/engines/mortevielle/mouse.h +++ b/engines/mortevielle/mouse.h @@ -2,45 +2,42 @@ const integer m_arrow = 0; const integer m_point_hand = 1; boolean int_m, -clic; + clic; integer m_show, -x_s, -y_s, -p_o_s, -mouse_shwn; + x_s, + y_s, + p_o_s, + mouse_shwn; -matrix<0,5,0,11,integer> s_s; +matrix<0, 5, 0, 11, integer> s_s; -void init_mouse() -{ - integer i, j; - registres reg; +void init_mouse() { + integer i, j; + registres reg; - mouse_shwn= 0; - x_s= 0; - y_s= 0; - p_o_s= 0; - /*int_m:= False;*/ - clic= false; - m_show= m_arrow; - if ((memw[0xcc]==0) && (memw[0xce]==0)) int_m= false; - if (int_m) - { - reg.ax= 0; - intr(0x33,reg); - int_m= (reg.ax==-1); - if (int_m) - { - { - reg.ax=4; - reg.cx=0; - reg.dx=0; - } - intr(0x33,reg); - } - } + mouse_shwn = 0; + x_s = 0; + y_s = 0; + p_o_s = 0; + /*int_m:= False;*/ + clic = false; + m_show = m_arrow; + if ((memw[0xcc] == 0) && (memw[0xce] == 0)) int_m = false; + if (int_m) { + reg.ax = 0; + intr(0x33, reg); + int_m = (reg.ax == -1); + if (int_m) { + { + reg.ax = 4; + reg.cx = 0; + reg.dx = 0; + } + intr(0x33, reg); + } + } } /*procedure change_mouse( t : integer ); @@ -58,412 +55,405 @@ begin end; end; */ -void hide_mouse() -{ - integer i,j,k,ps,ds; - boolean imp; +void hide_mouse() { + integer i, j, k, ps, ds; + boolean imp; - mouse_shwn = pred(integer,mouse_shwn); - if (mouse_shwn==0) - { - imp= odd(y_s); - j=p_o_s; - switch (gd) { - case cga : { - k=0; - j=((cardinal)y_s >> 1) * 80+ ((cardinal)x_s >> 2); - do { - memw[0xb000+j]=s_s[0][k]; - memw[0xb800+j+2]=s_s[1][k]; - memw[0xba00+j]=s_s[2][k]; - memw[0xba00+j+2]=s_s[3][k]; - j=j+80; - k= succ(integer,k); - } while (!(k>=5)); - } - break; - case ams : { - for( i=0; i <= 3; i ++) - { - port[0x3dd]= 1 << i; - k=0; - j=p_o_s; - do { - if (imp) - { - memw[0xb800+j]=s_s[i][k]; - j=j+80-0x2000; - } - else - { - memw[0xb800+j]=s_s[i][k]; - j=j+0x2000; - } - imp=! imp; - k= succ(integer,k); - } while (!(k>=8)); - } - } - break; - case ega : { - port[0x3c4]=2; - port[0x3ce]=8; - port[0x3cf]=255; - i= 0; - do { - port[0x3c5]= 1 << i; - k=0; - j=p_o_s; - do { - ps=mem[0xa000+j]; - mem[0xa000+j]=lo(s_s[i][k]); - ps=mem[0xa000+j+1]; - mem[0xa000+j+1]=hi(s_s[i][k]); - j=j+80; - k= succ(integer,k); - } while (!(k>=8)); - i= i+1; - } while (!(i==4)); - } - break; - case her : { - j= ((cardinal)y_s >> 1) *80+((cardinal)x_s >> 3); - for( i=0; i <= 5; i ++) - { - for( k=0; k <= 3; k ++) memw[0xb000+k*0x200+j]=s_s[i][k]; - j=j+80; - } - } - break; - case tan : { - j= ((cardinal)y_s >> 2) *160+((cardinal)x_s >> 1); - k=0; - do { - for( i=0; i <= 3; i ++) - { - memw[0xb800+0x200*i+j]=s_s[k][i+(k << 2)]; - memw[0xb800+0x200*i+j+2]=s_s[k+3][i+(k << 2)]; - } - j=j+160; - k= succ(integer,k); - } while (!(k==3)); - } - break; + mouse_shwn = pred(integer, mouse_shwn); + if (mouse_shwn == 0) { + imp = odd(y_s); + j = p_o_s; + switch (gd) { + case cga : { + k = 0; + j = ((cardinal)y_s >> 1) * 80 + ((cardinal)x_s >> 2); + do { + memw[0xb000 + j] = s_s[0][k]; + memw[0xb800 + j + 2] = s_s[1][k]; + memw[0xba00 + j] = s_s[2][k]; + memw[0xba00 + j + 2] = s_s[3][k]; + j = j + 80; + k = succ(integer, k); + } while (!(k >= 5)); + } + break; + case ams : { + for (i = 0; i <= 3; i ++) { + port[0x3dd] = 1 << i; + k = 0; + j = p_o_s; + do { + if (imp) { + memw[0xb800 + j] = s_s[i][k]; + j = j + 80 - 0x2000; + } else { + memw[0xb800 + j] = s_s[i][k]; + j = j + 0x2000; + } + imp = ! imp; + k = succ(integer, k); + } while (!(k >= 8)); + } + } + break; + case ega : { + port[0x3c4] = 2; + port[0x3ce] = 8; + port[0x3cf] = 255; + i = 0; + do { + port[0x3c5] = 1 << i; + k = 0; + j = p_o_s; + do { + ps = mem[0xa000 + j]; + mem[0xa000 + j] = lo(s_s[i][k]); + ps = mem[0xa000 + j + 1]; + mem[0xa000 + j + 1] = hi(s_s[i][k]); + j = j + 80; + k = succ(integer, k); + } while (!(k >= 8)); + i = i + 1; + } while (!(i == 4)); + } + break; + case her : { + j = ((cardinal)y_s >> 1) * 80 + ((cardinal)x_s >> 3); + for (i = 0; i <= 5; i ++) { + for (k = 0; k <= 3; k ++) memw[0xb000 + k * 0x200 + j] = s_s[i][k]; + j = j + 80; + } + } + break; + case tan : { + j = ((cardinal)y_s >> 2) * 160 + ((cardinal)x_s >> 1); + k = 0; + do { + for (i = 0; i <= 3; i ++) { + memw[0xb800 + 0x200 * i + j] = s_s[k][i + (k << 2)]; + memw[0xb800 + 0x200 * i + j + 2] = s_s[k + 3][i + (k << 2)]; + } + j = j + 160; + k = succ(integer, k); + } while (!(k == 3)); + } + break; - } /* case Gd */ - } + } /* case Gd */ + } } -void show_mouse() -{ - integer i, j, k, l, - ps,ds; - boolean imp; - char c; +void show_mouse() { + integer i, j, k, l, + ps, ds; + boolean imp; + char c; - mouse_shwn = mouse_shwn +1; - if (mouse_shwn!=1) return; - j=p_o_s; - imp= odd(y_s); - i=x_s & 7; - switch (gd) { - case cga : { - k=0; - j=((cardinal)y_s >> 1) * 80+ ((cardinal)x_s >> 2); - do { - s_s[0][k]=memw[0xb800+j]; - s_s[1][k]=memw[0xb800+j+2]; - s_s[2][k]=memw[0xba00+j]; - s_s[3][k]=memw[0xba00+j+2]; - j=j+80; - k= succ(integer,k); - } while (!(k>=5)); - } - break; - case ams : { - for( i=0; i <= 3; i ++) - { - j=p_o_s; - imp= odd(y_s); - port[0x3de]= i; - k=0; - do { - if (imp) - { - s_s[i][k]=memw[0xb800+j]; - j=j+80-0x2000; - } - else - { - s_s[i][k]=memw[0xb800+j]; - j=j+0x2000; - } - imp=! imp; - k= succ(integer,k); - } while (!(k>=8)); - } - } - break; - case ega : { - port[0x3ce]=4; - l= 0; - do { - port[0x3cf]= l; - k=0; - j=p_o_s; - do { - s_s[l][k]= mem[0xa000+j]+(mem[0xa000+succ(integer,j)] << 8); - j=j+80; - k= succ(integer,k); - } while (!(k>=8)); - l= l+1; - } while (!(l==4)); - } - break; - case her : { - j= ((cardinal)y_s >> 1) *80+((cardinal)x_s >> 3); - for( i=0; i <= 5; i ++) - { - for( k=0; k <= 3; k ++) s_s[i][k]=memw[0xb000+k*0x200+j]; - j=j+80; - } - } - break; - case tan : { - j= ((cardinal)y_s >> 2)*160+((cardinal)x_s >> 1); - k=0; - do { - for( i=0; i <= 3; i ++) - { - s_s[k][i+(k << 2)]=memw[0xb800+0x200*i+j]; - s_s[k+3][i+(k << 2)]=memw[0xb800+0x200*i+j+2]; - } - j=j+160; - k= succ(integer,k); - } while (!(k==3)); - } - break; - } /* case Gd */ - affput(2,gd,x_s,y_s,0,0); + mouse_shwn = mouse_shwn + 1; + if (mouse_shwn != 1) return; + j = p_o_s; + imp = odd(y_s); + i = x_s & 7; + switch (gd) { + case cga : { + k = 0; + j = ((cardinal)y_s >> 1) * 80 + ((cardinal)x_s >> 2); + do { + s_s[0][k] = memw[0xb800 + j]; + s_s[1][k] = memw[0xb800 + j + 2]; + s_s[2][k] = memw[0xba00 + j]; + s_s[3][k] = memw[0xba00 + j + 2]; + j = j + 80; + k = succ(integer, k); + } while (!(k >= 5)); + } + break; + case ams : { + for (i = 0; i <= 3; i ++) { + j = p_o_s; + imp = odd(y_s); + port[0x3de] = i; + k = 0; + do { + if (imp) { + s_s[i][k] = memw[0xb800 + j]; + j = j + 80 - 0x2000; + } else { + s_s[i][k] = memw[0xb800 + j]; + j = j + 0x2000; + } + imp = ! imp; + k = succ(integer, k); + } while (!(k >= 8)); + } + } + break; + case ega : { + port[0x3ce] = 4; + l = 0; + do { + port[0x3cf] = l; + k = 0; + j = p_o_s; + do { + s_s[l][k] = mem[0xa000 + j] + (mem[0xa000 + succ(integer, j)] << 8); + j = j + 80; + k = succ(integer, k); + } while (!(k >= 8)); + l = l + 1; + } while (!(l == 4)); + } + break; + case her : { + j = ((cardinal)y_s >> 1) * 80 + ((cardinal)x_s >> 3); + for (i = 0; i <= 5; i ++) { + for (k = 0; k <= 3; k ++) s_s[i][k] = memw[0xb000 + k * 0x200 + j]; + j = j + 80; + } + } + break; + case tan : { + j = ((cardinal)y_s >> 2) * 160 + ((cardinal)x_s >> 1); + k = 0; + do { + for (i = 0; i <= 3; i ++) { + s_s[k][i + (k << 2)] = memw[0xb800 + 0x200 * i + j]; + s_s[k + 3][i + (k << 2)] = memw[0xb800 + 0x200 * i + j + 2]; + } + j = j + 160; + k = succ(integer, k); + } while (!(k == 3)); + } + break; + } /* case Gd */ + affput(2, gd, x_s, y_s, 0, 0); } -void pos_mouse(integer x,integer y) -{ - registres reg; +void pos_mouse(integer x, integer y) { + registres reg; - if (x>314*res) x=314*res; - else if (x<0) x=0; - if (y>199) y=199; - else if (y<0) y=0; - if ((x==x_s) && (y==y_s)) return; - if (int_m) - { - { - reg.ax=4; - reg.cx=x; - reg.dx=y; - } - intr(0x33,reg); - } - hide_mouse(); - x_s=x; - y_s=y; - switch (gd) { - case ams : { - p_o_s=((cardinal)y_s >> 1)*80+((cardinal)x_s >> 3)+(y_s & 1)*0x2000; - } - break; - /*cga : begin - P_O_S:=(Y_S shr 1)*80+X_S shr 2+(Y_S and 1)*$2000; - end;*/ - case ega : { - p_o_s=y_s*80+((cardinal)x_s >> 3); - } - break; - } /* case Gd */ - show_mouse(); + if (x > 314 * res) x = 314 * res; + else if (x < 0) x = 0; + if (y > 199) y = 199; + else if (y < 0) y = 0; + if ((x == x_s) && (y == y_s)) return; + if (int_m) { + { + reg.ax = 4; + reg.cx = x; + reg.dx = y; + } + intr(0x33, reg); + } + hide_mouse(); + x_s = x; + y_s = y; + switch (gd) { + case ams : { + p_o_s = ((cardinal)y_s >> 1) * 80 + ((cardinal)x_s >> 3) + (y_s & 1) * 0x2000; + } + break; + /*cga : begin + P_O_S:=(Y_S shr 1)*80+X_S shr 2+(Y_S and 1)*$2000; + end;*/ + case ega : { + p_o_s = y_s * 80 + ((cardinal)x_s >> 3); + } + break; + } /* case Gd */ + show_mouse(); } -void read_pos_mouse(integer& x,integer& y,integer& c) -{ - registres reg; +void read_pos_mouse(integer &x, integer &y, integer &c) { + registres reg; - if (int_m) - { - reg.ax=3; - intr(0x33,reg); - x=reg.cx; - y=reg.dx; - c=reg.bx; - } - else - { - c=0; - x=x_s; - y=y_s; - } + if (int_m) { + reg.ax = 3; + intr(0x33, reg); + x = reg.cx; + y = reg.dx; + c = reg.bx; + } else { + c = 0; + x = x_s; + y = y_s; + } } -void mov_mouse(boolean& funct, char& key) - { - boolean p_key; - char in1, in2; - integer x,y,cx,cy,cd; - registres reg; +void mov_mouse(boolean &funct, char &key) { + boolean p_key; + char in1, in2; + integer x, y, cx, cy, cd; + registres reg; - if (int_m) - { - reg.ax=3; - intr(0x33,reg); - x=reg.cx; - y=reg.dx; - cd=reg.bx; - pos_mouse(x,y); - if (cd!=0) - { - clic=true; - return; - } - } - funct=false; - key='\377'; - p_key=keypressed(); - while (p_key) - { - input >> kbd >> in1; - read_pos_mouse(cx, cy, cd); - switch (upcase(in1)) { - case '4' : cx= cx - 8; break; - case '2' : cy= cy + 8; break; - case '6' : cx= cx + 8; break; - case '8' : cy= cy - 8; break; - case '7' : { - cy=1; - cx=1; - } - break; - case '1' : { - cx=1; - cy=190; - } - break; - case '9' : { - cx=315*res; - cy=1; - } - break; - case '3' : { - cy=190; - cx=315*res; - } - break; - case '5' : { - cy=100; - cx=155*res; - } - break; - case ' ': case '\15' : { - clic=true; - return; - } - break; - case '\33' : { - p_key=keypressed(); - if (p_key) - { - input >> kbd >> in2; - switch (in2) { - case 'K' : cx= pred(integer,cx); break; - case 'P' : cy= succ(integer,cy); break; - case 'M' : cx= cx + 2; break; - case 'H' : cy= pred(integer,cy); break; - case RANGE_10(';','D') : { - funct= true; - key=in2; - return; - } - break; - case 'G' : { - cx=cx-1; - cy=cy-1; - } - break; - case 'I' : { - cx=cx+1; - cy=cy-1; - } - break; - case 'O' : { - cx=cx-1; - cy=cy+1; - } - break; - case 'Q' : { - cx=cx+1; - cy=cy+1; - } - break; - } /* case */ - } - } - break; - case 'I' : { - cx= res*32; - cy= 8; - } - break; - case 'D' : { - cx= 80*res; - cy= 8; - } - break; - case 'A' : { - cx= 126*res; - cy= 8; - } - break; - case 'S' : { - cx= 174*res; - cy= 8; - } - break; - case 'P' : { - cx= 222*res; - cy= 8; - } - break; - case 'F' : { - cx= res*270; - cy= 8; - } - break; - case '\23' : { - sonoff= ! sonoff; - return; - } - break; - case '\26' : { - zuul=true; - return; - } - break; - case '\24' : { /* ^T => mode tandy */ - funct= true; - key= '\11'; - } - break; - case '\10' : { /* ^H => mode Hercule */ - funct= true; - key= '\7'; - } - break; - case '\1':case '\3':case '\5' : { - funct= true; - key=in1; - } - break; - } - pos_mouse(cx, cy); - p_key=keypressed(); - } - } + if (int_m) { + reg.ax = 3; + intr(0x33, reg); + x = reg.cx; + y = reg.dx; + cd = reg.bx; + pos_mouse(x, y); + if (cd != 0) { + clic = true; + return; + } + } + funct = false; + key = '\377'; + p_key = keypressed(); + while (p_key) { + input >> kbd >> in1; + read_pos_mouse(cx, cy, cd); + switch (upcase(in1)) { + case '4' : + cx = cx - 8; + break; + case '2' : + cy = cy + 8; + break; + case '6' : + cx = cx + 8; + break; + case '8' : + cy = cy - 8; + break; + case '7' : { + cy = 1; + cx = 1; + } + break; + case '1' : { + cx = 1; + cy = 190; + } + break; + case '9' : { + cx = 315 * res; + cy = 1; + } + break; + case '3' : { + cy = 190; + cx = 315 * res; + } + break; + case '5' : { + cy = 100; + cx = 155 * res; + } + break; + case ' ': + case '\15' : { + clic = true; + return; + } + break; + case '\33' : { + p_key = keypressed(); + if (p_key) { + input >> kbd >> in2; + switch (in2) { + case 'K' : + cx = pred(integer, cx); + break; + case 'P' : + cy = succ(integer, cy); + break; + case 'M' : + cx = cx + 2; + break; + case 'H' : + cy = pred(integer, cy); + break; + case RANGE_10(';', 'D') : { + funct = true; + key = in2; + return; + } + break; + case 'G' : { + cx = cx - 1; + cy = cy - 1; + } + break; + case 'I' : { + cx = cx + 1; + cy = cy - 1; + } + break; + case 'O' : { + cx = cx - 1; + cy = cy + 1; + } + break; + case 'Q' : { + cx = cx + 1; + cy = cy + 1; + } + break; + } /* case */ + } + } + break; + case 'I' : { + cx = res * 32; + cy = 8; + } + break; + case 'D' : { + cx = 80 * res; + cy = 8; + } + break; + case 'A' : { + cx = 126 * res; + cy = 8; + } + break; + case 'S' : { + cx = 174 * res; + cy = 8; + } + break; + case 'P' : { + cx = 222 * res; + cy = 8; + } + break; + case 'F' : { + cx = res * 270; + cy = 8; + } + break; + case '\23' : { + sonoff = ! sonoff; + return; + } + break; + case '\26' : { + zuul = true; + return; + } + break; + case '\24' : { /* ^T => mode tandy */ + funct = true; + key = '\11'; + } + break; + case '\10' : { /* ^H => mode Hercule */ + funct = true; + key = '\7'; + } + break; + case '\1': + case '\3': + case '\5' : { + funct = true; + key = in1; + } + break; + } + pos_mouse(cx, cy); + p_key = keypressed(); + } +} diff --git a/engines/mortevielle/outtext.h b/engines/mortevielle/outtext.h index 5bd4fd2809..7c8f1c9f5c 100644 --- a/engines/mortevielle/outtext.h +++ b/engines/mortevielle/outtext.h @@ -1,205 +1,206 @@ str255 delig; -const array<0,31,byte> tabdr - = {{ 32, 101, 115, 97, 114, 105, 110, - 117, 116, 111, 108, 13, 100, 99, - 112, 109, 46, 118, 130, 39, 102, - 98, 44, 113, 104, 103, 33, 76, - 85, 106, 30, 31 }}; - - -const array<0,31,byte> tab30 - = {{ 69, 67, 74, 138, 133, 120, 77, 122, - 121, 68, 65, 63, 73, 80, 83, 82, - 156, 45, 58, 79, 49, 86, 78, 84, - 71, 81, 64, 66, 135, 34, 136, 91 }}; - - - -const array<0,31,byte> tab31 - = {{ 93, 47, 48, 53, 50, 70, 124, 75, - 72, 147, 140, 150, 151, 57, 56, 51, - 107, 139, 55, 89, 131, 37, 54, 88, - 119, 0, 0, 0, 0, 0, 0, 0 }}; - -void deline( integer num , phrase& l , integer& tl ); - -static void cinq_huit( char& c, integer& ind, byte& pt, boolean& the_end) - { - const array<0,31,char> rap - = {{ ',', ':', '@', '!', '?', '-', '‡', - ' ', '…', 'ƒ', '‚', 'Š', 'ˆ', '/', - '‹', 'Œ', '¢', '\47', '“', '"', '—', - '–', '0', '1', '2', '3', '4', '5', - '6', '7', '8', '9'}}; - integer oct,ocd; - - /* 5-8 */ - oct=t_mot[ind]; - oct=(cardinal)(oct << (16-pt)) >> (16-pt); - if (pt<6) - { - ind=ind+1; - oct=oct << (5-pt); - pt=pt+11; - oct=oct | ((cardinal)t_mot[ind] >> pt); - } - else - { - pt=pt-5; - oct=(cardinal)oct >> pt; - } - - switch (oct) { - case 11 : { - c= '$'; - the_end= true; - } - break; - case 30:case 31 : { - ocd=t_mot[ind]; - ocd=(cardinal)(ocd << (16-pt)) >> (16-pt); - if (pt<6) - { - ind=ind+1; - ocd=ocd << (5-pt); - pt=pt+11; - ocd=ocd | ((cardinal)t_mot[ind] >> pt); - } - else - { - pt=pt-5; - ocd=(cardinal)ocd >> pt; - } - if (oct==30) c=chr(tab30[ocd]); - else c=chr(tab31[ocd]); - if (c=='\0') - { - the_end=true; - c='#'; - } - } - break; - default: c=chr(tabdr[oct]); - } - } /* 5-8 */ - -void deline( integer num , phrase& l , integer& tl ) - { - integer i,j,ts; - char let; - byte ps, k; - boolean the_end; - - /* DETEX */ - /*debug(' => DeLine');*/ - delig=""; - ts= t_rec[num].indis; - ps= t_rec[num].point; - i=ts; - tl=1; - j=1; - k=ps; - the_end=false; - do { - cinq_huit(let,i,k, the_end); - l[j]=let; - if (j<254) delig=delig+let; - j=j+1; - } while (!the_end); - tl=j-1; - if (tl<255) delig=copy(delig,1,tl-1); /* enleve le $ */ - } /* DETEX */ - - -void afftex( phrase ch, integer x,integer y,integer dx,integer dy, integer typ); - - -static integer l_motsuiv(integer p, phrase& ch, integer& tab) - { - integer c; - - integer l_motsuiv_result; - c=p; - while (! (set::of(' ','$','@', eos).has(ch[p]))) p=p+1; - l_motsuiv_result=tab*(p-c); - return l_motsuiv_result; - } - -void afftex( phrase ch, integer x,integer y,integer dx,integer dy, integer typ) - { - boolean the_end; - char touch; - integer xf,yf; - integer xc,yc; - integer tab, p; - varying_string<255> s; - integer i,j,nt; - - -/* debug(' .. Afftex');*/ - putxy(x,y); - if (res==1) tab=10; else tab=6; - dx= dx * 6; - dy= dy * 6; - xc= x; - yc= y; - xf= x+dx; - yf= y+dy; - p= 1; - the_end=(ch[p]=='$'); - s=""; - while (! the_end) - { - switch (ch[p]) { - case '@' : { - writeg(s,typ); - s=""; - p=p+1; - xc=x; - yc=yc+6; - putxy(xc,yc); - } - break; - case ' ' : { - s=s+' '; - xc=xc+tab; - p=p+1; - if (l_motsuiv(p, ch, tab)+xc > xf) - { - writeg(s,typ); - s=""; - xc=x; - yc=yc+6; - if (yc>yf) - { - do {; } while (!keypressed()); - i=y; - do { - j=x; - do { - putxy(j,i); - writeg(" ",0); - j=j+6; - } while (!(j>xf)); - i=i+6; - } while (!(i>yf)); - yc=y; - } - putxy(xc,yc); - } - } - break; - case '$' : { - the_end= true; - writeg(s,typ); - } - break; - default: - { - s=s+ch[p]; - p=p+1; - xc=xc+tab; - } - } /* case */ - } - } +const array<0, 31, byte> tabdr += {{ + 32, 101, 115, 97, 114, 105, 110, + 117, 116, 111, 108, 13, 100, 99, + 112, 109, 46, 118, 130, 39, 102, + 98, 44, 113, 104, 103, 33, 76, + 85, 106, 30, 31 + } +}; + + +const array<0, 31, byte> tab30 += {{ + 69, 67, 74, 138, 133, 120, 77, 122, + 121, 68, 65, 63, 73, 80, 83, 82, + 156, 45, 58, 79, 49, 86, 78, 84, + 71, 81, 64, 66, 135, 34, 136, 91 + } +}; + + + +const array<0, 31, byte> tab31 += {{ + 93, 47, 48, 53, 50, 70, 124, 75, + 72, 147, 140, 150, 151, 57, 56, 51, + 107, 139, 55, 89, 131, 37, 54, 88, + 119, 0, 0, 0, 0, 0, 0, 0 + } +}; + +void deline(integer num , phrase &l , integer &tl); + +static void cinq_huit(char &c, integer &ind, byte &pt, boolean &the_end) { + const array<0, 31, char> rap + = {{ ',', ':', '@', '!', '?', '-', '‡', + ' ', '…', 'ƒ', '‚', 'Š', 'ˆ', '/', + '‹', 'Œ', '¢', '\47', '“', '"', '—', + '–', '0', '1', '2', '3', '4', '5', + '6', '7', '8', '9' + } + }; + integer oct, ocd; + + /* 5-8 */ + oct = t_mot[ind]; + oct = (cardinal)(oct << (16 - pt)) >> (16 - pt); + if (pt < 6) { + ind = ind + 1; + oct = oct << (5 - pt); + pt = pt + 11; + oct = oct | ((cardinal)t_mot[ind] >> pt); + } else { + pt = pt - 5; + oct = (cardinal)oct >> pt; + } + + switch (oct) { + case 11 : { + c = '$'; + the_end = true; + } + break; + case 30: + case 31 : { + ocd = t_mot[ind]; + ocd = (cardinal)(ocd << (16 - pt)) >> (16 - pt); + if (pt < 6) { + ind = ind + 1; + ocd = ocd << (5 - pt); + pt = pt + 11; + ocd = ocd | ((cardinal)t_mot[ind] >> pt); + } else { + pt = pt - 5; + ocd = (cardinal)ocd >> pt; + } + if (oct == 30) c = chr(tab30[ocd]); + else c = chr(tab31[ocd]); + if (c == '\0') { + the_end = true; + c = '#'; + } + } + break; + default: + c = chr(tabdr[oct]); + } +} /* 5-8 */ + +void deline(integer num , phrase &l , integer &tl) { + integer i, j, ts; + char let; + byte ps, k; + boolean the_end; + + /* DETEX */ + /*debug(' => DeLine');*/ + delig = ""; + ts = t_rec[num].indis; + ps = t_rec[num].point; + i = ts; + tl = 1; + j = 1; + k = ps; + the_end = false; + do { + cinq_huit(let, i, k, the_end); + l[j] = let; + if (j < 254) delig = delig + let; + j = j + 1; + } while (!the_end); + tl = j - 1; + if (tl < 255) delig = copy(delig, 1, tl - 1); /* enleve le $ */ +} /* DETEX */ + + +void afftex(phrase ch, integer x, integer y, integer dx, integer dy, integer typ); + + +static integer l_motsuiv(integer p, phrase &ch, integer &tab) { + integer c; + + integer l_motsuiv_result; + c = p; + while (!(set::of(' ', '$', '@', eos).has(ch[p]))) p = p + 1; + l_motsuiv_result = tab * (p - c); + return l_motsuiv_result; +} + +void afftex(phrase ch, integer x, integer y, integer dx, integer dy, integer typ) { + boolean the_end; + char touch; + integer xf, yf; + integer xc, yc; + integer tab, p; + varying_string<255> s; + integer i, j, nt; + + + /* debug(' .. Afftex');*/ + putxy(x, y); + if (res == 1) tab = 10; + else tab = 6; + dx = dx * 6; + dy = dy * 6; + xc = x; + yc = y; + xf = x + dx; + yf = y + dy; + p = 1; + the_end = (ch[p] == '$'); + s = ""; + while (! the_end) { + switch (ch[p]) { + case '@' : { + writeg(s, typ); + s = ""; + p = p + 1; + xc = x; + yc = yc + 6; + putxy(xc, yc); + } + break; + case ' ' : { + s = s + ' '; + xc = xc + tab; + p = p + 1; + if (l_motsuiv(p, ch, tab) + xc > xf) { + writeg(s, typ); + s = ""; + xc = x; + yc = yc + 6; + if (yc > yf) { + do { + ; + } while (!keypressed()); + i = y; + do { + j = x; + do { + putxy(j, i); + writeg(" ", 0); + j = j + 6; + } while (!(j > xf)); + i = i + 6; + } while (!(i > yf)); + yc = y; + } + putxy(xc, yc); + } + } + break; + case '$' : { + the_end = true; + writeg(s, typ); + } + break; + default: { + s = s + ch[p]; + p = p + 1; + xc = xc + tab; + } + } /* case */ + } +} diff --git a/engines/mortevielle/ovd1.h b/engines/mortevielle/ovd1.h index b2f5f7962c..d40f8d39bc 100644 --- a/engines/mortevielle/ovd1.h +++ b/engines/mortevielle/ovd1.h @@ -1,32 +1,29 @@ -void dem2() -{ - untyped_file f; - integer k; - - /* -- demande de disk 2 -- */ - while (ioresult!=0); - assign(f,"mort.001"); - /*$i-*/ - reset(f); - while (ioresult!=0) - { - show_mouse(); - k= do_alert(al_mess2,1); - hide_mouse(); - reset(f); - } - close(f); +void dem2() { + untyped_file f; + integer k; + + /* -- demande de disk 2 -- */ + while (ioresult != 0); + assign(f, "mort.001"); + /*$i-*/ + reset(f); + while (ioresult != 0) { + show_mouse(); + k = do_alert(al_mess2, 1); + hide_mouse(); + reset(f); + } + close(f); } -void ani50() - { - crep= animof(1,1); - pictout(adani,crep,63,12); - crep= animof(2,1); - pictout(adani,crep,63,12); - f2_all= (res==1); - repon(2, c_paroles+143); - } +void ani50() { + crep = animof(1, 1); + pictout(adani, crep, 63, 12); + crep = animof(2, 1); + pictout(adani, crep, 63, 12); + f2_all = (res == 1); + repon(2, c_paroles + 143); +} /*overlay procedure apzuul; begin @@ -37,311 +34,304 @@ void ani50() end; end;*/ -/* overlay */ void aff50(boolean c) - { - integer k; - - caff= 50; - maff=0; - taffich(); - dessine(ades,63,12); - if (c) ani50(); - else repon(2, c_paroles+142); - f3f8(); - } - -/* overlay */ void init_menu() - { - integer i, j, tai; - phrase st; - untyped_file f; - - assign(f,"menufr.mor"); - /*$i-*/ - reset(f,144); - blockread(f,lettres,1); - close(f); - /* ---- Demande de changement de disquette ---- */ - dem2(); - - - for( i= 1; i <= 8; i ++) - inv[i]= "* "; - inv[7]= "< -*-*-*-*-*-*-*-*-*- "; - for( i= 1; i <= 7; i ++) - dep[i]= "* "; - i= 1; - do { - deline(i+c_action,st,tai); - act[i]= delig + " "; - if (i<9) - { - if (i<6) - { - deline(i+c_saction,st,tai); - self_[i]= delig + " "; - } - deline(i+c_dis,st,tai); - dis[i]= delig+ ' '; - } - i= succ(integer,i); - } while (!(i== 22)); - for( i= 1; i <= 8; i ++) - { - disc[i]=0x500+i; - if (i<8) depl[i]=0x200+i; - invt[i]=0x100+i; - if (i>6) menu_disable(invt[i]); - } - msg3=no_choice; - msg4=no_choice; - msg[3]=no_choice; - msg[4]=no_choice; - clic=false; - } - - -/* overlay */ void charpal() -{ - file<tabdb> f; - file<tfxx> ft; - integer i,j,k; - file<byte> fb; - byte b; - - assign(ft,"fxx.mor"); - /*$i-*/ - reset(ft); - if (ioresult!=0) - { - caff=do_alert(err_mess,1); - exit(0); - } - ft >> l; - close(ft); - assign(f,"plxx.mor"); - reset(f); - for( i= 0; i <= 90; i ++) f >> tabpal[i]; - close(f); - assign(fb, "cxx.mor"); - reset(fb); - for( j=0; j <= 90; j ++) - { - fb >> palcga[j].p; - for( i=0; i <= 15; i ++) - { - nhom& with = palcga[j].a[i]; - - fb >> b; - with.n=(cardinal)b >> 4; - with.hom[0]= ((cardinal)b >> 2) & 3; - with.hom[1]= b & 3; - } - } - palcga[10].a[9]= palcga[10].a[5]; - for( j=0; j <= 14; j ++) - { - fb >> tpt[j].tax; - fb >> tpt[j].tay; - for( i=1; i <= 20; i ++) - for( k=1; k <= 20; k ++) - fb >> tpt[j].des[i][k]; - } - close(fb); +/* overlay */ void aff50(boolean c) { + integer k; + + caff = 50; + maff = 0; + taffich(); + dessine(ades, 63, 12); + if (c) ani50(); + else repon(2, c_paroles + 142); + f3f8(); } -/* overlay */ void chartex() -{ - integer i; - untyped_file fibyte; - phrase s; - -/* debug('o3 chartex'); */ - i=0; - assign(fibyte,"TXX.INP"); - /*$i-*/ - reset(fibyte); - blockread(fibyte,t_mot,125); - close(fibyte); - assign(sauv_t,"TXX.NTP"); - reset(sauv_t); - do { - sauv_t >> t_rec[i]; - i=i+1; - } while (!(eof(sauv_t))); - close(sauv_t); - deline(578,s,i); - al_mess= delig; - deline(579,s,i); - err_mess= delig; - deline(580,s,i); - ind_mess= delig; - deline(581,s,i); - al_mess2= delig; +/* overlay */ void init_menu() { + integer i, j, tai; + phrase st; + untyped_file f; + + assign(f, "menufr.mor"); + /*$i-*/ + reset(f, 144); + blockread(f, lettres, 1); + close(f); + /* ---- Demande de changement de disquette ---- */ + dem2(); + + + for (i = 1; i <= 8; i ++) + inv[i] = "* "; + inv[7] = "< -*-*-*-*-*-*-*-*-*- "; + for (i = 1; i <= 7; i ++) + dep[i] = "* "; + i = 1; + do { + deline(i + c_action, st, tai); + act[i] = delig + " "; + if (i < 9) { + if (i < 6) { + deline(i + c_saction, st, tai); + self_[i] = delig + " "; + } + deline(i + c_dis, st, tai); + dis[i] = delig + ' '; + } + i = succ(integer, i); + } while (!(i == 22)); + for (i = 1; i <= 8; i ++) { + disc[i] = 0x500 + i; + if (i < 8) depl[i] = 0x200 + i; + invt[i] = 0x100 + i; + if (i > 6) menu_disable(invt[i]); + } + msg3 = no_choice; + msg4 = no_choice; + msg[3] = no_choice; + msg[4] = no_choice; + clic = false; +} + + +/* overlay */ void charpal() { + file<tabdb> f; + file<tfxx> ft; + integer i, j, k; + file<byte> fb; + byte b; + + assign(ft, "fxx.mor"); + /*$i-*/ + reset(ft); + if (ioresult != 0) { + caff = do_alert(err_mess, 1); + exit(0); + } + ft >> l; + close(ft); + assign(f, "plxx.mor"); + reset(f); + for (i = 0; i <= 90; i ++) f >> tabpal[i]; + close(f); + assign(fb, "cxx.mor"); + reset(fb); + for (j = 0; j <= 90; j ++) { + fb >> palcga[j].p; + for (i = 0; i <= 15; i ++) { + nhom &with = palcga[j].a[i]; + + fb >> b; + with.n = (cardinal)b >> 4; + with.hom[0] = ((cardinal)b >> 2) & 3; + with.hom[1] = b & 3; + } + } + palcga[10].a[9] = palcga[10].a[5]; + for (j = 0; j <= 14; j ++) { + fb >> tpt[j].tax; + fb >> tpt[j].tay; + for (i = 1; i <= 20; i ++) + for (k = 1; k <= 20; k ++) + fb >> tpt[j].des[i][k]; + } + close(fb); +} + +/* overlay */ void chartex() { + integer i; + untyped_file fibyte; + phrase s; + + /* debug('o3 chartex'); */ + i = 0; + assign(fibyte, "TXX.INP"); + /*$i-*/ + reset(fibyte); + blockread(fibyte, t_mot, 125); + close(fibyte); + assign(sauv_t, "TXX.NTP"); + reset(sauv_t); + do { + sauv_t >> t_rec[i]; + i = i + 1; + } while (!(eof(sauv_t))); + close(sauv_t); + deline(578, s, i); + al_mess = delig; + deline(579, s, i); + err_mess = delig; + deline(580, s, i); + ind_mess = delig; + deline(581, s, i); + al_mess2 = delig; } /* overlay */ void dialpre() { - integer cy, tay; - phrase st; - real ix; - char ch; - - - /* debug('o3 dialpre'); */ - cy=0; - clrscr; - textcolor(9); - do { - cy= cy+1; - deline( cy+c_dialpre,st,tay); - gotoxy(40-tay / 2,wherey+1); - output << delig; - } while (!(cy==20)); - ix=0; - do { - ix= ix+1; - } while (!(keypressed() | (ix==5e5))); - crep= 998; - textcolor(1); - gotoxy(1,21); clreol; - gotoxy(1,23); - output << "CARTE GRAPHIQUE CGA EGA HERCULE/AT&T400 TANDY AMSTRAD1512"; - gotoxy(12,24); - output << "Ctrl C E H T A"; - do { - input >> kbd >> ch; - } while (!(set::of('\1','\3','\5','\24','\10', eos).has(ch))); - switch (ch) { - case '\1':case '\3':case '\5' : gd= (cardinal)ord(ch) >> 1; break; - case '\10' : gd= her; break; - case '\24' : gd= tan; break; - } - gotoxy(1,24); - clreol; - gotoxy(1,23); - clreol; - gotoxy(26,23); - output << "Jeu au Clavier / … la Souris"; - textcolor(4); - gotoxy(33,23); output << 'C'; - gotoxy(48,23); output << 'S'; - do { - input >> kbd >> ch; - } while (!(set::of('C','S', eos).has(upcase(ch)))); - int_m= (upcase(ch)=='S'); + integer cy, tay; + phrase st; + real ix; + char ch; + + + /* debug('o3 dialpre'); */ + cy = 0; + clrscr; + textcolor(9); + do { + cy = cy + 1; + deline(cy + c_dialpre, st, tay); + gotoxy(40 - tay / 2, wherey + 1); + output << delig; + } while (!(cy == 20)); + ix = 0; + do { + ix = ix + 1; + } while (!(keypressed() | (ix == 5e5))); + crep = 998; + textcolor(1); + gotoxy(1, 21); + clreol; + gotoxy(1, 23); + output << "CARTE GRAPHIQUE CGA EGA HERCULE/AT&T400 TANDY AMSTRAD1512"; + gotoxy(12, 24); + output << "Ctrl C E H T A"; + do { + input >> kbd >> ch; + } while (!(set::of('\1', '\3', '\5', '\24', '\10', eos).has(ch))); + switch (ch) { + case '\1': + case '\3': + case '\5' : + gd = (cardinal)ord(ch) >> 1; + break; + case '\10' : + gd = her; + break; + case '\24' : + gd = tan; + break; + } + gotoxy(1, 24); + clreol; + gotoxy(1, 23); + clreol; + gotoxy(26, 23); + output << "Jeu au Clavier / … la Souris"; + textcolor(4); + gotoxy(33, 23); + output << 'C'; + gotoxy(48, 23); + output << 'S'; + do { + input >> kbd >> ch; + } while (!(set::of('C', 'S', eos).has(upcase(ch)))); + int_m = (upcase(ch) == 'S'); } -/* overlay */ void init_lieu() -{ - file<tab_mlieu> f_lieu; - -/* debug('o3 init_lieu'); */ - assign(f_lieu,"MXX.mor"); - /*$i-*/ - reset(f_lieu); - f_lieu >> v_lieu; - close(f_lieu); +/* overlay */ void init_lieu() { + file<tab_mlieu> f_lieu; + + /* debug('o3 init_lieu'); */ + assign(f_lieu, "MXX.mor"); + /*$i-*/ + reset(f_lieu); + f_lieu >> v_lieu; + close(f_lieu); } -/* overlay */ void music() -{ - untyped_file fic; - integer k; - boolean fin; - char ch; - real x,y; - - - /* debug('o3 music'); */ - if (sonoff) return; - rech_cfiec= true; - assign(fic,"mort.img"); - /*$i-*/ - reset(fic); - blockread(fic,mem[0x3800+0],500); - blockread(fic,mem[0x47a0+0],123); - close(fic); - demus(0x3800,0x5000,623); - addfix= (real)((tempo_mus-addv[1]))/256; - cctable(tbi); - - fin=false; - k=0; - do { - fin= keypressed(); - musyc( tbi, 9958 , tempo_mus); - k= k+1; - fin= fin | keypressed() | (k>=5); - } while (!fin); - while (keypressed()) input >> kbd >> ch; +/* overlay */ void music() { + untyped_file fic; + integer k; + boolean fin; + char ch; + real x, y; + + + /* debug('o3 music'); */ + if (sonoff) return; + rech_cfiec = true; + assign(fic, "mort.img"); + /*$i-*/ + reset(fic); + blockread(fic, mem[0x3800 + 0], 500); + blockread(fic, mem[0x47a0 + 0], 123); + close(fic); + demus(0x3800, 0x5000, 623); + addfix = (real)((tempo_mus - addv[1])) / 256; + cctable(tbi); + + fin = false; + k = 0; + do { + fin = keypressed(); + musyc(tbi, 9958 , tempo_mus); + k = k + 1; + fin = fin | keypressed() | (k >= 5); + } while (!fin); + while (keypressed()) input >> kbd >> ch; } -/* overlay */ void charge_bruit5() - { - untyped_file f; - - assign(f,"bruit5"); - /*$i-*/ - reset(f); - if (ioresult!=0) - { - caff=do_alert(err_mess,1); - exit(0); - } - blockread(f,mem[adbruit5+0],149); - /*blockread(f,mem[$5CB0:0],100); - blockread(f,mem[$3D1F:0],49);*/ - close(f); - } - -/* overlay */ void charge_cfiec() - { - untyped_file f; - - assign(f,"cfiec.mor"); - /*$i-*/ - reset(f); - blockread(f,mem[adcfiec+0],511); - blockread(f,mem[adcfiec+4088+0],311); - close(f); - rech_cfiec= false; - } - - -/* overlay */ void charge_cfiph() - { - untyped_file f; - - assign(f,"cfiph.mor"); - /*$i-*/ - reset(f,256); - blockread(f,t_cph,50); - close(f); - } - - -/* overlay */ void suite() -{ - varying_string<25> cpr; - - hirs(); - repon(7,2035); - caff= 51; - taffich(); - teskbd(); - if (newgd!=gd) gd=newgd; - hirs(); - dessine(ades,0,0); - gotoxy(20*pred(integer,res)+8,24); - textcolor(7); - cpr="COPYRIGHT 1989 : LANKHOR"; - if (set::of(ega,ams,cga, eos).has(gd)) output << cpr; - else { - putxy(104+72*res,190); - writeg(cpr,0); - } +/* overlay */ void charge_bruit5() { + untyped_file f; + + assign(f, "bruit5"); + /*$i-*/ + reset(f); + if (ioresult != 0) { + caff = do_alert(err_mess, 1); + exit(0); + } + blockread(f, mem[adbruit5 + 0], 149); + /*blockread(f,mem[$5CB0:0],100); + blockread(f,mem[$3D1F:0],49);*/ + close(f); +} + +/* overlay */ void charge_cfiec() { + untyped_file f; + + assign(f, "cfiec.mor"); + /*$i-*/ + reset(f); + blockread(f, mem[adcfiec + 0], 511); + blockread(f, mem[adcfiec + 4088 + 0], 311); + close(f); + rech_cfiec = false; +} + + +/* overlay */ void charge_cfiph() { + untyped_file f; + + assign(f, "cfiph.mor"); + /*$i-*/ + reset(f, 256); + blockread(f, t_cph, 50); + close(f); +} + + +/* overlay */ void suite() { + varying_string<25> cpr; + + hirs(); + repon(7, 2035); + caff = 51; + taffich(); + teskbd(); + if (newgd != gd) gd = newgd; + hirs(); + dessine(ades, 0, 0); + gotoxy(20 * pred(integer, res) + 8, 24); + textcolor(7); + cpr = "COPYRIGHT 1989 : LANKHOR"; + if (set::of(ega, ams, cga, eos).has(gd)) output << cpr; + else { + putxy(104 + 72 * res, 190); + writeg(cpr, 0); + } } diff --git a/engines/mortevielle/parole.h b/engines/mortevielle/parole.h index 0630c9b2b3..3b777c3770 100644 --- a/engines/mortevielle/parole.h +++ b/engines/mortevielle/parole.h @@ -1,396 +1,388 @@ - void spfrac(integer wor) - { - c3.rep= (cardinal)wor >> 12; - if ((typlec==0) && (c3.code!=9)) - if (((c3.code>4) && (c3.val!=20) && ! (set::of(3,6,9, eos).has(c3.rep))) || - ((c3.code<5) && ! (set::of(19,22, eos).has(c3.val)) && ! (set::of(4,9, eos).has(c3.rep)))) - c3.rep= c3.rep + 1; - c3.freq= ((cardinal)wor >> 6) & 7; - c3.acc= ((cardinal)wor >> 9) & 7; - } +void spfrac(integer wor) { + c3.rep = (cardinal)wor >> 12; + if ((typlec == 0) && (c3.code != 9)) + if (((c3.code > 4) && (c3.val != 20) && !(set::of(3, 6, 9, eos).has(c3.rep))) || + ((c3.code < 5) && !(set::of(19, 22, eos).has(c3.val)) && !(set::of(4, 9, eos).has(c3.rep)))) + c3.rep = c3.rep + 1; + c3.freq = ((cardinal)wor >> 6) & 7; + c3.acc = ((cardinal)wor >> 9) & 7; +} - void charg_car() - { - integer wor, int_; +void charg_car() { + integer wor, int_; - wor= swap(memw[adword+ptr_word]); - int_= wor & 0x3f; - switch (int_) { - case 60 : { - c3.val= 32; /* " " */ - c3.code= 9; - } - break; - case 61 : { - c3.val= 46; /* "." */ - c3.code= 9; - } - break; - case 62 : { - c3.val= 35; /* "#" */ - c3.code= 9; - } - break; - case RANGE_26(22,47) : { - int_= int_-22; - c3.val= int_; - c3.code= typcon[int_]; - } - break; - case RANGE_9(48,56) : { - c3.val= int_-22; - c3.code= 4; - } - break; - case RANGE_8(14,21) : { - c3.val= int_; - c3.code= 6; - } - break; - case RANGE_14(0,13) : { - c3.val= int_; - c3.code= 5; - } - break; - } - spfrac(wor); - ptr_word= ptr_word+2; - } + wor = swap(memw[adword + ptr_word]); + int_ = wor & 0x3f; + switch (int_) { + case 60 : { + c3.val = 32; /* " " */ + c3.code = 9; + } + break; + case 61 : { + c3.val = 46; /* "." */ + c3.code = 9; + } + break; + case 62 : { + c3.val = 35; /* "#" */ + c3.code = 9; + } + break; + case RANGE_26(22, 47) : { + int_ = int_ - 22; + c3.val = int_; + c3.code = typcon[int_]; + } + break; + case RANGE_9(48, 56) : { + c3.val = int_ - 22; + c3.code = 4; + } + break; + case RANGE_8(14, 21) : { + c3.val = int_; + c3.code = 6; + } + break; + case RANGE_14(0, 13) : { + c3.val = int_; + c3.code = 5; + } + break; + } + spfrac(wor); + ptr_word = ptr_word + 2; +} - void entroct( byte o) - { - mem[adtroct+ptr_oct]= o; - ptr_oct= ptr_oct+1; - } +void entroct(byte o) { + mem[adtroct + ptr_oct] = o; + ptr_oct = ptr_oct + 1; +} - void veracf(byte b) - {; - } +void veracf(byte b) { + ; +} -/* overlay */ void cctable (tablint& t) - { - integer k; - array<0,256,real> tb; +/* overlay */ void cctable(tablint &t) { + integer k; + array<0, 256, real> tb; - tb[0]=0; - for( k=0; k <= 255; k ++) - { - tb[k+1]= addfix + tb[k]; - t[255-k]=trunc(tb[k])+1; - } - } + tb[0] = 0; + for (k = 0; k <= 255; k ++) { + tb[k + 1] = addfix + tb[k]; + t[255 - k] = trunc(tb[k]) + 1; + } +} -/* overlay */ void regenbruit() - { - integer i,j; +/* overlay */ void regenbruit() { + integer i, j; - i= offsetb3+8590; - j= 0; - do { - t_cph[j]=memw[adbruit3+i]; - i= i+2; - j= j+1; - } while (!(i>= offsetb3+8790)); - } + i = offsetb3 + 8590; + j = 0; + do { + t_cph[j] = memw[adbruit3 + i]; + i = i + 2; + j = j + 1; + } while (!(i >= offsetb3 + 8790)); +} -/* overlay */ void charge_son() - { - untyped_file f; +/* overlay */ void charge_son() { + untyped_file f; - assign(f,"sonmus.mor"); - reset(f); - blockread(f,mem[0x7414+0],273); - /*blockread(f,mem[adson+0],300); - blockread(f,mem[adson+2400+0],245);*/ - demus(0x7414,adson,273); - close(f); - } + assign(f, "sonmus.mor"); + reset(f); + blockread(f, mem[0x7414 + 0], 273); + /*blockread(f,mem[adson+0],300); + blockread(f,mem[adson+2400+0],245);*/ + demus(0x7414, adson, 273); + close(f); +} -/* overlay */ void charge_phbruit() - { - untyped_file f; +/* overlay */ void charge_phbruit() { + untyped_file f; - assign(f,"phbrui.mor"); - reset(f); - blockread(f,t_cph,3); - close(f); - } + assign(f, "phbrui.mor"); + reset(f); + blockread(f, t_cph, 3); + close(f); +} -/* overlay */ void charge_bruit() - { - untyped_file f; - integer j,i; +/* overlay */ void charge_bruit() { + untyped_file f; + integer j, i; - assign(f,"bruits"); - reset(f); - blockread(f,mem[adbruit+0],250); - for( i=0; i <= 19013; i ++) mem[adbruit+32000+i]= mem[adbruit5+i]; - blockread(f,mem[adbruit1+offsetb1],149); - close(f); - } + assign(f, "bruits"); + reset(f); + blockread(f, mem[adbruit + 0], 250); + for (i = 0; i <= 19013; i ++) mem[adbruit + 32000 + i] = mem[adbruit5 + i]; + blockread(f, mem[adbruit1 + offsetb1], 149); + close(f); +} -/* overlay */ void trait_car() - { - byte d3; - integer d2, i; +/* overlay */ void trait_car() { + byte d3; + integer d2, i; - switch (c2.code) { - case 9 : if (c2.val!=ord('#')) for( i=0; i <= c2.rep; i ++) entroct(c2.val); break; + switch (c2.code) { + case 9 : + if (c2.val != ord('#')) for (i = 0; i <= c2.rep; i ++) entroct(c2.val); + break; - case 5:case 6 : { - if (c2.code==6) d3= tabdph[(c2.val - 14) << 1]; - else d3= null; - if (c1.code>=5) - { - veracf(c2.acc); - if (c1.code==9) - { - entroct(4); - if (d3==null) entroct(c2.val); - else entroct(d3); - entroct(22); - } - } - switch (c2.rep) { - case 0 : { - entroct(0); - entroct(c2.val); - if (d3==null) if (c3.code==9) entroct(2); - else entroct(4); - else if (c3.code==9) entroct(0); - else entroct(1); - } - break; - case 4:case 5:case 6 : { - if (c2.rep!=4) - { - i= c2.rep-5; - do { - i= i-1; - entroct(0); - if (d3==null) entroct(c2.val); - else entroct(d3); - entroct(3); - } while (!(i<0)); - } - if (d3==null) - { - entroct(4); - entroct(c2.val); - entroct(0); - } - else - { - entroct(0); - entroct(c2.val); - entroct(3); - } - } - break; - case 7:case 8:case 9 : { - if (c2.rep!=7) - { - i= c2.rep-8; - do { - i= i-1; - entroct(0); - if (d3==null) entroct(c2.val); - else entroct(d3); - entroct(3); - } while (!(i<0)); - } - if (d3==null) - { - entroct(0); - entroct(c2.val); - entroct(2); - } - else - { - entroct(0); - entroct(c2.val); - entroct(0); - } - } - break; - case 1:case 2:case 3 : { - if (c2.rep!=1) - { - i= c2.rep-2; - do { - i= i-1; - entroct(0); - if (d3==null) entroct(c2.val); - else entroct(d3); - entroct(3); - } while (!(i<0)); - } - entroct(0); - entroct(c2.val); - if (c3.code==9) entroct(0); - else entroct(1); - } - break; - } /* case c2.rep */ - } - break; + case 5: + case 6 : { + if (c2.code == 6) d3 = tabdph[(c2.val - 14) << 1]; + else d3 = null; + if (c1.code >= 5) { + veracf(c2.acc); + if (c1.code == 9) { + entroct(4); + if (d3 == null) entroct(c2.val); + else entroct(d3); + entroct(22); + } + } + switch (c2.rep) { + case 0 : { + entroct(0); + entroct(c2.val); + if (d3 == null) if (c3.code == 9) entroct(2); + else entroct(4); + else if (c3.code == 9) entroct(0); + else entroct(1); + } + break; + case 4: + case 5: + case 6 : { + if (c2.rep != 4) { + i = c2.rep - 5; + do { + i = i - 1; + entroct(0); + if (d3 == null) entroct(c2.val); + else entroct(d3); + entroct(3); + } while (!(i < 0)); + } + if (d3 == null) { + entroct(4); + entroct(c2.val); + entroct(0); + } else { + entroct(0); + entroct(c2.val); + entroct(3); + } + } + break; + case 7: + case 8: + case 9 : { + if (c2.rep != 7) { + i = c2.rep - 8; + do { + i = i - 1; + entroct(0); + if (d3 == null) entroct(c2.val); + else entroct(d3); + entroct(3); + } while (!(i < 0)); + } + if (d3 == null) { + entroct(0); + entroct(c2.val); + entroct(2); + } else { + entroct(0); + entroct(c2.val); + entroct(0); + } + } + break; + case 1: + case 2: + case 3 : { + if (c2.rep != 1) { + i = c2.rep - 2; + do { + i = i - 1; + entroct(0); + if (d3 == null) entroct(c2.val); + else entroct(d3); + entroct(3); + } while (!(i < 0)); + } + entroct(0); + entroct(c2.val); + if (c3.code == 9) entroct(0); + else entroct(1); + } + break; + } /* case c2.rep */ + } + break; - case 2:case 3 : { - d3= c2.code+5; /* 7 ou 8 => voyelle correspondante */ - if (c1.code>4) - { - veracf(c2.acc); - if (c1.code==9) - { - entroct(4); - entroct(d3); - entroct(22); - } - } - i=c2.rep; - if (i!=0) - { - do { - i=i-1; - entroct(0); - entroct(d3); - entroct(3); - } while (!(i<=0)); - } - veracf(c3.acc); - if (c3.code==6) - { - entroct(4); - entroct(tabdph[(c3.val-14) << 1]); - entroct(c2.val); - } - else - { - entroct(4); - if (c3.val==4) entroct(3); - else entroct(c3.val); - entroct(c2.val); - } - } - break; - case 0:case 1 : { - veracf(c2.acc); - switch (c3.code) { - case 2 : d2= 7; break; - case 3 : d2= 8; break; - case 6 : d2= tabdph[(c3.val-14) << 1]; break; - case 5 : d2= c3.val; break; - default: d2=10; - } /* case c3.code */ - d2= d2 *26 + c2.val; - if (tnocon[d2]==0) d3=2; - else d3=6; - if (c2.rep>=5) - { - c2.rep=c2.rep-5; - d3= 8-d3; /* echange 2 et 6 */ - } - if (c2.code==0) - { - i=c2.rep; - if (i!=0) - { - do { - i=i-1; - entroct(d3); - entroct(c2.val); - entroct(3); - } while (!(i<=0)); - } - entroct(d3); - entroct(c2.val); - entroct(4); - } - else - { - entroct(d3); - entroct(c2.val); - entroct(3); - i=c2.rep; - if (i!=0) - { - do { - i=i-1; - entroct(d3); - entroct(c2.val); - entroct(4); - } while (!(i<=0)); - } - } - if (c3.code==9) - { - entroct(d3); - entroct(c2.val); - entroct(5); - } - else - if (! (set::of(range(0,1),4, eos).has(c3.code))) - { - veracf(c3.acc); - switch (c3.code) { - case 3 : d2= 8; break; - case 6 : d2= tabdph[(c3.val-14) << 1]; break; - case 5 : d2= c3.val; break; - default: d2= 7; - } /* case c3.code */ - if (d2==4) d2=3; - if (intcon[c2.val]!=0) c2.val= c2.val+1; - if ((c2.val==17) || (c2.val==18)) c2.val=16; - entroct(4); - entroct(d2); - entroct(c2.val); - } - } - break; - case 4 : { - veracf(c2.acc); - i=c2.rep; - if (i!=0) - { - do { - i=i-1; - entroct(2); - entroct(c2.val); - entroct(3); - } while (!(i<=0)); - } - entroct(2); - entroct(c2.val); - entroct(4); - if (c3.code==9) - { - entroct(2); - entroct(c2.val); - entroct(5); - } - else - if (! (set::of(range(0,1),4, eos).has(c3.code))) - { - veracf(c3.acc); - switch (c3.code) { - case 3 : d2= 8; break; - case 6 : d2= tabdph[(c3.val-14) << 1]; break; - case 5 : d2= c3.val; break; - default: d2= 7; - } /* case c3.code */ - if (d2==4) d2=3; - if (intcon[c2.val]!=0) c2.val= c2.val+1; - entroct(4); - entroct(d2); - entroct(tabdbc[((c2.val-26) << 1)+1]); - } - } - break; - } /* case c2.code */ - } + case 2: + case 3 : { + d3 = c2.code + 5; /* 7 ou 8 => voyelle correspondante */ + if (c1.code > 4) { + veracf(c2.acc); + if (c1.code == 9) { + entroct(4); + entroct(d3); + entroct(22); + } + } + i = c2.rep; + if (i != 0) { + do { + i = i - 1; + entroct(0); + entroct(d3); + entroct(3); + } while (!(i <= 0)); + } + veracf(c3.acc); + if (c3.code == 6) { + entroct(4); + entroct(tabdph[(c3.val - 14) << 1]); + entroct(c2.val); + } else { + entroct(4); + if (c3.val == 4) entroct(3); + else entroct(c3.val); + entroct(c2.val); + } + } + break; + case 0: + case 1 : { + veracf(c2.acc); + switch (c3.code) { + case 2 : + d2 = 7; + break; + case 3 : + d2 = 8; + break; + case 6 : + d2 = tabdph[(c3.val - 14) << 1]; + break; + case 5 : + d2 = c3.val; + break; + default: + d2 = 10; + } /* case c3.code */ + d2 = d2 * 26 + c2.val; + if (tnocon[d2] == 0) d3 = 2; + else d3 = 6; + if (c2.rep >= 5) { + c2.rep = c2.rep - 5; + d3 = 8 - d3; /* echange 2 et 6 */ + } + if (c2.code == 0) { + i = c2.rep; + if (i != 0) { + do { + i = i - 1; + entroct(d3); + entroct(c2.val); + entroct(3); + } while (!(i <= 0)); + } + entroct(d3); + entroct(c2.val); + entroct(4); + } else { + entroct(d3); + entroct(c2.val); + entroct(3); + i = c2.rep; + if (i != 0) { + do { + i = i - 1; + entroct(d3); + entroct(c2.val); + entroct(4); + } while (!(i <= 0)); + } + } + if (c3.code == 9) { + entroct(d3); + entroct(c2.val); + entroct(5); + } else if (!(set::of(range(0, 1), 4, eos).has(c3.code))) { + veracf(c3.acc); + switch (c3.code) { + case 3 : + d2 = 8; + break; + case 6 : + d2 = tabdph[(c3.val - 14) << 1]; + break; + case 5 : + d2 = c3.val; + break; + default: + d2 = 7; + } /* case c3.code */ + if (d2 == 4) d2 = 3; + if (intcon[c2.val] != 0) c2.val = c2.val + 1; + if ((c2.val == 17) || (c2.val == 18)) c2.val = 16; + entroct(4); + entroct(d2); + entroct(c2.val); + } + } + break; + case 4 : { + veracf(c2.acc); + i = c2.rep; + if (i != 0) { + do { + i = i - 1; + entroct(2); + entroct(c2.val); + entroct(3); + } while (!(i <= 0)); + } + entroct(2); + entroct(c2.val); + entroct(4); + if (c3.code == 9) { + entroct(2); + entroct(c2.val); + entroct(5); + } else if (!(set::of(range(0, 1), 4, eos).has(c3.code))) { + veracf(c3.acc); + switch (c3.code) { + case 3 : + d2 = 8; + break; + case 6 : + d2 = tabdph[(c3.val - 14) << 1]; + break; + case 5 : + d2 = c3.val; + break; + default: + d2 = 7; + } /* case c3.code */ + if (d2 == 4) d2 = 3; + if (intcon[c2.val] != 0) c2.val = c2.val + 1; + entroct(4); + entroct(d2); + entroct(tabdbc[((c2.val - 26) << 1) + 1]); + } + } + break; + } /* case c2.code */ +} /*overlay function testprot : boolean; var diff --git a/engines/mortevielle/parole2.h b/engines/mortevielle/parole2.h index 6cdaa3e2b4..07ac757d77 100644 --- a/engines/mortevielle/parole2.h +++ b/engines/mortevielle/parole2.h @@ -1,103 +1,95 @@ - void rot_chariot() - { - c1= c2; - c2= c3; - { - c3.val= 32; - c3.code= 9; - } - } +void rot_chariot() { + c1 = c2; + c2 = c3; + { + c3.val = 32; + c3.code = 9; + } +} - void init_chariot() - { - { - c3.rep= 0; - c3.freq= 0; - c3.acc= 0; - } - rot_chariot(); - rot_chariot(); - } +void init_chariot() { + { + c3.rep = 0; + c3.freq = 0; + c3.acc = 0; + } + rot_chariot(); + rot_chariot(); +} -void trait_ph() - { - const array<0,2,integer> deca - = {{300,30,40}}; +void trait_ph() { + const array<0, 2, integer> deca + = {{300, 30, 40}}; - ptr_tcph= pred(integer,num_ph); - ledeb=swap(t_cph[ptr_tcph]) + deca[typlec]; - lefin=swap(t_cph[ptr_tcph+1]) + deca[typlec]; - nb_word= lefin - ledeb; - ptr_tcph=(cardinal)ledeb >> 1; - ptr_word = 0; - do { - memw[adword+ ptr_word]= t_cph[ptr_tcph]; - ptr_word = ptr_word +2; - ptr_tcph = ptr_tcph+1; - } while (!(ptr_tcph>=((cardinal)lefin >> 1))); + ptr_tcph = pred(integer, num_ph); + ledeb = swap(t_cph[ptr_tcph]) + deca[typlec]; + lefin = swap(t_cph[ptr_tcph + 1]) + deca[typlec]; + nb_word = lefin - ledeb; + ptr_tcph = (cardinal)ledeb >> 1; + ptr_word = 0; + do { + memw[adword + ptr_word] = t_cph[ptr_tcph]; + ptr_word = ptr_word + 2; + ptr_tcph = ptr_tcph + 1; + } while (!(ptr_tcph >= ((cardinal)lefin >> 1))); - ptr_oct= 0; - ptr_word= 0; - init_chariot(); + ptr_oct = 0; + ptr_word = 0; + init_chariot(); - do { - rot_chariot(); - charg_car(); - trait_car(); - } while (!(ptr_word >= nb_word)); + do { + rot_chariot(); + charg_car(); + trait_car(); + } while (!(ptr_word >= nb_word)); - rot_chariot(); - trait_car(); - entroct(ord('#')); - } + rot_chariot(); + trait_car(); + entroct(ord('#')); +} - void parole(integer rep, integer ht, integer typ) - { - array<0,500,integer> savph; - integer i; - integer tempo; +void parole(integer rep, integer ht, integer typ) { + array<0, 500, integer> savph; + integer i; + integer tempo; - if (sonoff) return; - num_ph= rep; - haut= ht; - typlec= typ; - if (typlec!=0) - { - for( i=0; i <= 500; i ++) savph[i]=t_cph[i]; - tempo= tempo_bruit; - } - else - if (haut>5) tempo= tempo_f; - else tempo= tempo_m; - addfix= (real)((tempo-addv[0]))/256; - cctable(tbi); - switch (typ) { - case 1 : { - charge_bruit(); - /*if zuul then zzuul(adbruit,0,1095);*/ - regenbruit(); - } - break; - case 2 : { - charge_son(); - charge_phbruit(); - } - break; - } - trait_ph(); - litph(tbi,typ,tempo); - if (typlec!=0) - for( i=0; i <= 500; i ++) - { - t_cph[i]=savph[i]; - mlec=typlec; - } - writepal(numpal); - } + if (sonoff) return; + num_ph = rep; + haut = ht; + typlec = typ; + if (typlec != 0) { + for (i = 0; i <= 500; i ++) savph[i] = t_cph[i]; + tempo = tempo_bruit; + } else if (haut > 5) tempo = tempo_f; + else tempo = tempo_m; + addfix = (real)((tempo - addv[0])) / 256; + cctable(tbi); + switch (typ) { + case 1 : { + charge_bruit(); + /*if zuul then zzuul(adbruit,0,1095);*/ + regenbruit(); + } + break; + case 2 : { + charge_son(); + charge_phbruit(); + } + break; + } + trait_ph(); + litph(tbi, typ, tempo); + if (typlec != 0) + for (i = 0; i <= 500; i ++) { + t_cph[i] = savph[i]; + mlec = typlec; + } + writepal(numpal); +} diff --git a/engines/mortevielle/prog.h b/engines/mortevielle/prog.h index a3ba1896ae..7bdea5b850 100644 --- a/engines/mortevielle/prog.h +++ b/engines/mortevielle/prog.h @@ -1,346 +1,319 @@ -/* overlay */ void change_gd(integer ngd) -{ - integer i; +/* overlay */ void change_gd(integer ngd) { + integer i; - hide_mouse(); - gd= ngd; - hirs(); - init_mouse(); - show_mouse(); - dessine_rouleau(); - tinke(); - pendule(); - if (ipers!=0) affper(ipers); else person(); - clsf2(); - clsf3(); - maff= 68; - afdes(0); - repon(2,crep); - menu_aff(); + hide_mouse(); + gd = ngd; + hirs(); + init_mouse(); + show_mouse(); + dessine_rouleau(); + tinke(); + pendule(); + if (ipers != 0) affper(ipers); + else person(); + clsf2(); + clsf3(); + maff = 68; + afdes(0); + repon(2, crep); + menu_aff(); } -/* overlay */ void antegame() -{ - integer cx; - registres regs; - array<0,511,char> buffer; - integer i,j,k; - array<0,2,boolean> test; - array<0,7,char> g; +/* overlay */ void antegame() { + integer cx; + registres regs; + array<0, 511, char> buffer; + integer i, j, k; + array<0, 2, boolean> test; + array<0, 7, char> g; - hide_mouse(); - imen= false; - g[1]='M'; -perdu= true; - anyone= false; -okdes= true; - test[0]= false; - test[1]=false; - g[0]='\40'; - col= false; - tesok= true; - test[2]=false; - g[7]=g[0]; - g[2]='A'; - cache= false; - brt= false; - maff= 68; - g[5]='E'; - mnumo= 0; - prebru= 0; - g[4]='T'; - x= 0; - y= 0; - num= 0; - hdb= 0; - hfb= 0; - cs= 0; - is= 0; - k= 0; - ment= 0; -syn= true; -fouil= true; - mchai= 0; - inei= 0; - initouv(); - g[3]='S'; - g[6]='R'; - iouv= 0; - dobj= 0; - affrep(); - stpou= ind_mess; - while ((test[k]==false) && (k<2)) - { - regs.ax=0; - k=succ(integer,k); - intr(19,regs); - { - regs.ax=0x201;regs.cx=0x1;regs.dx=0x100+k-1;regs.es=seg(buffer);regs.bx=ofs(buffer); - intr(19,regs); - test[k]=! imen; - i=0; - while ((test[k]) && (i<19)) - { - regs.ax=0x201; - syn= false;regs.cx=0x2700+i;regs.dx=0x100+k-1;regs.es=seg(buffer);regs.bx=ofs(buffer); - intr(19,regs);if (lo(regs.flags) % 2==1) test[k]=false;i=i+1; - } - okdes= false; - solu= true; - for( j=0; j <= 7; j ++) if (buffer[j+504]!=g[j]) test[k]=false; - } - perdu= false; - fouil= false; - } - person(); - tinke(); - pendule(); - afdes(0); - repon(2,crep); - clsf3(); - solu= false; - tmlieu(s.mlieu); - modinv(); - if (s.derobj!= 0) modobj2(s.derobj+ 400,test[1],test[2]); - else tesok=test[1] || test[2]; - show_mouse(); + hide_mouse(); + imen = false; + g[1] = 'M'; + perdu = true; + anyone = false; + okdes = true; + test[0] = false; + test[1] = false; + g[0] = '\40'; + col = false; + tesok = true; + test[2] = false; + g[7] = g[0]; + g[2] = 'A'; + cache = false; + brt = false; + maff = 68; + g[5] = 'E'; + mnumo = 0; + prebru = 0; + g[4] = 'T'; + x = 0; + y = 0; + num = 0; + hdb = 0; + hfb = 0; + cs = 0; + is = 0; + k = 0; + ment = 0; + syn = true; + fouil = true; + mchai = 0; + inei = 0; + initouv(); + g[3] = 'S'; + g[6] = 'R'; + iouv = 0; + dobj = 0; + affrep(); + stpou = ind_mess; + while ((test[k] == false) && (k < 2)) { + regs.ax = 0; + k = succ(integer, k); + intr(19, regs); + { + regs.ax = 0x201; + regs.cx = 0x1; + regs.dx = 0x100 + k - 1; + regs.es = seg(buffer); + regs.bx = ofs(buffer); + intr(19, regs); + test[k] = ! imen; + i = 0; + while ((test[k]) && (i < 19)) { + regs.ax = 0x201; + syn = false; + regs.cx = 0x2700 + i; + regs.dx = 0x100 + k - 1; + regs.es = seg(buffer); + regs.bx = ofs(buffer); + intr(19, regs); + if (lo(regs.flags) % 2 == 1) test[k] = false; + i = i + 1; + } + okdes = false; + solu = true; + for (j = 0; j <= 7; j ++) if (buffer[j + 504] != g[j]) test[k] = false; + } + perdu = false; + fouil = false; + } + person(); + tinke(); + pendule(); + afdes(0); + repon(2, crep); + clsf3(); + solu = false; + tmlieu(s.mlieu); + modinv(); + if (s.derobj != 0) modobj2(s.derobj + 400, test[1], test[2]); + else tesok = test[1] || test[2]; + show_mouse(); } /* NIVEAU 3 */ /* procedure PROGRAMME */ -void tmaj3() -{ - integer j,h,m; +void tmaj3() { + integer j, h, m; - calch(j,h,m); - if (m== 30) m= 1; - h= h+ (j* 24); - m= m+ (h* 2); - s.heure= chr(m); + calch(j, h, m); + if (m == 30) m = 1; + h = h + (j * 24); + m = m + (h * 2); + s.heure = chr(m); } void tsitu() { - integer h,j,m; + integer h, j, m; - if (! col) clsf2(); - syn= false; - iesc= false; - if (anyone) goto L1; - if (brt) - if ((msg[3]== depla) || (msg[4]== sortir) || (msg[4]== dormir) || - (msg[4]== manger)) - { - ctrm= 4; - goto L2; - } - if (msg[3]== depla) taller(); - if (msg[3]== discut) tparler(); - if (msg[3]== invent) tsprendre(); - if (msg[4]== attacher) tattacher(); - if (msg[4]== attendre) tattendre(); - if (msg[4]== defoncer) tdefoncer(); - if (msg[4]== dormir) tdormir(); - if (msg[4]== ecouter) tecouter(); - if (msg[4]== entrer) tentrer(); - if (msg[4]== fermer) tfermer(); - if (msg[4]== fouiller) tfouiller(); - if (msg[4]== frapper) tfrapper(); - if (msg[4]== gratter) tgratter(); - if (msg[4]== lire) tlire(); - if (msg[4]== manger) tmanger(); - if (msg[4]== mettre) tmettre(); - if (msg[4]== ouvrir) touvrir(); - if (msg[4]== prendre) tprendre(); - if (msg[4]== regarder) tregarder(); - if (msg[4]== sentir) tsentir(); - if (msg[4]== sonder) tsonder(); - if (msg[4]== sortir) tsortir(); - if (msg[4]== soulever) tsoulever(); - if (msg[4]== tourner) ttourner(); - if (msg[4]== scacher) - { - tcacher(); - goto L1; - } - if (msg[4]== sfouiller) tsfouiller(); - if (msg[4]== slire) tslire(); - if (msg[4]== sposer) tposer(); - if (msg[4]== sregarder) tsregarder(); - cache= false; + if (! col) clsf2(); + syn = false; + iesc = false; + if (anyone) goto L1; + if (brt) + if ((msg[3] == depla) || (msg[4] == sortir) || (msg[4] == dormir) || + (msg[4] == manger)) { + ctrm = 4; + goto L2; + } + if (msg[3] == depla) taller(); + if (msg[3] == discut) tparler(); + if (msg[3] == invent) tsprendre(); + if (msg[4] == attacher) tattacher(); + if (msg[4] == attendre) tattendre(); + if (msg[4] == defoncer) tdefoncer(); + if (msg[4] == dormir) tdormir(); + if (msg[4] == ecouter) tecouter(); + if (msg[4] == entrer) tentrer(); + if (msg[4] == fermer) tfermer(); + if (msg[4] == fouiller) tfouiller(); + if (msg[4] == frapper) tfrapper(); + if (msg[4] == gratter) tgratter(); + if (msg[4] == lire) tlire(); + if (msg[4] == manger) tmanger(); + if (msg[4] == mettre) tmettre(); + if (msg[4] == ouvrir) touvrir(); + if (msg[4] == prendre) tprendre(); + if (msg[4] == regarder) tregarder(); + if (msg[4] == sentir) tsentir(); + if (msg[4] == sonder) tsonder(); + if (msg[4] == sortir) tsortir(); + if (msg[4] == soulever) tsoulever(); + if (msg[4] == tourner) ttourner(); + if (msg[4] == scacher) { + tcacher(); + goto L1; + } + if (msg[4] == sfouiller) tsfouiller(); + if (msg[4] == slire) tslire(); + if (msg[4] == sposer) tposer(); + if (msg[4] == sregarder) tsregarder(); + cache = false; L1: - if (anyone) - { - quelquun(); - anyone= false; - goto L2; - } - calch(j,h,m); - if ((((h== 12) || (h== 13) || (h== 19)) && (s.mlieu!= 10)) || - ((h> 0) && (h< 6) && (s.mlieu!= 0))) s.conf= s.conf+ 1; - if (((s.mlieu< 16) || (s.mlieu> 19)) && (s.mlieu!= 23) - && (s.mlieu!= 0) && (s.derobj!= 152) && (! perdu)) - { - if ((s.conf> 99) && (h> 8) && (h< 16)) - { - crep= 1501; - tperd(); - } - if ((s.conf> 99) && (h> 0) && (h< 9)) - { - crep= 1508; - tperd(); - } - if ((j> 1) && (h> 8) && (! perdu)) - { - crep= 1502; - tperd(); - } - } + if (anyone) { + quelquun(); + anyone = false; + goto L2; + } + calch(j, h, m); + if ((((h == 12) || (h == 13) || (h == 19)) && (s.mlieu != 10)) || + ((h > 0) && (h < 6) && (s.mlieu != 0))) s.conf = s.conf + 1; + if (((s.mlieu < 16) || (s.mlieu > 19)) && (s.mlieu != 23) + && (s.mlieu != 0) && (s.derobj != 152) && (! perdu)) { + if ((s.conf > 99) && (h > 8) && (h < 16)) { + crep = 1501; + tperd(); + } + if ((s.conf > 99) && (h > 0) && (h < 9)) { + crep = 1508; + tperd(); + } + if ((j > 1) && (h > 8) && (! perdu)) { + crep = 1502; + tperd(); + } + } L2: - mennor(); + mennor(); } -void sv_game(integer n); +void sv_game(integer n); -void ld_game(integer n); +void ld_game(integer n); -void tecran() -{ - const char idem[] = "Idem"; - const integer lim = 20000; - integer temps; - char inkey; - boolean oo, funct; +void tecran() { + const char idem[] = "Idem"; + const integer lim = 20000; + integer temps; + char inkey; + boolean oo, funct; - clsf3(); - oo= false; - ctrm= 0; - if (! iesc) - { - draw_menu(); - imen= true; - temps= 0; - key= 0; - funct= false; - inkey='.'; + clsf3(); + oo = false; + ctrm = 0; + if (! iesc) { + draw_menu(); + imen = true; + temps = 0; + key = 0; + funct = false; + inkey = '.'; - do { - mdn(); - tinke(); - mov_mouse(funct,inkey); - temps= temps+ 1; - } while (!((choisi) || (temps > lim) || (funct) || (anyone))); + do { + mdn(); + tinke(); + mov_mouse(funct, inkey); + temps = temps + 1; + } while (!((choisi) || (temps > lim) || (funct) || (anyone))); - erase_menu(); - imen= false; - if (set::of('\1','\3','\5','\7','\11', eos).has(inkey)) - { - change_gd((cardinal)pred(integer,ord(inkey)) >> 1); - return; - } - if (choisi && (msg[3]==sauve)) sv_game(msg[4] & 7); - if (choisi && (msg[3]==charge)) ld_game(pred(integer,msg[4] & 7)); - if (inkey== '\103') /* F9 */ - { - temps = do_alert(stpou,1); - return; - } - else - if (inkey== '\77') - { - if ((mnumo!= no_choice) && ((msg[3]== action) || (msg[3]== saction))) - { - msg[4]= mnumo; - ecr3(idem); - } - else return; - } - else - if (inkey== '\104') - { - if ((x!= 0) && (y!= 0)) num= 9999; - return; - } - } - if (inkey== '\73') - { - arret= true; - tmaj3(); - } - else - { - if ((funct) && (inkey!= '\77')) return; - if (temps> lim) - { - repon(2,141); - if (num== 9999) num= 0; - } - else - { - mnumo= msg[3]; - if ((msg[3]== action) || (msg[3]== saction)) mnumo= msg[4]; - if (! anyone) - { - if ((fouil) || (obpart)) - { - if (y_s< 12) return; - if ((msg[4]== sonder) || (msg[4]== soulever)) - { - oo= true; - if ((msg[4]== soulever) || (obpart)) - { - finfouil(); - caff= s.mlieu; - crep= 998; - } - else tsuiv(); - mennor(); - } - } - } - do { - if (! oo) tsitu(); - if ((ctrm== 0) && (! perdu) && (! solu)) - { - taffich(); - if (okdes) - { - okdes= false; - dessin(0); - } - if ((! syn) || (col)) repon(2,crep); - } - } while (!(! syn)); - if (ctrm!= 0) tctrm(); - } - } + erase_menu(); + imen = false; + if (set::of('\1', '\3', '\5', '\7', '\11', eos).has(inkey)) { + change_gd((cardinal)pred(integer, ord(inkey)) >> 1); + return; + } + if (choisi && (msg[3] == sauve)) sv_game(msg[4] & 7); + if (choisi && (msg[3] == charge)) ld_game(pred(integer, msg[4] & 7)); + if (inkey == '\103') { /* F9 */ + temps = do_alert(stpou, 1); + return; + } else if (inkey == '\77') { + if ((mnumo != no_choice) && ((msg[3] == action) || (msg[3] == saction))) { + msg[4] = mnumo; + ecr3(idem); + } else return; + } else if (inkey == '\104') { + if ((x != 0) && (y != 0)) num = 9999; + return; + } + } + if (inkey == '\73') { + arret = true; + tmaj3(); + } else { + if ((funct) && (inkey != '\77')) return; + if (temps > lim) { + repon(2, 141); + if (num == 9999) num = 0; + } else { + mnumo = msg[3]; + if ((msg[3] == action) || (msg[3] == saction)) mnumo = msg[4]; + if (! anyone) { + if ((fouil) || (obpart)) { + if (y_s < 12) return; + if ((msg[4] == sonder) || (msg[4] == soulever)) { + oo = true; + if ((msg[4] == soulever) || (obpart)) { + finfouil(); + caff = s.mlieu; + crep = 998; + } else tsuiv(); + mennor(); + } + } + } + do { + if (! oo) tsitu(); + if ((ctrm == 0) && (! perdu) && (! solu)) { + taffich(); + if (okdes) { + okdes = false; + dessin(0); + } + if ((! syn) || (col)) repon(2, crep); + } + } while (!(! syn)); + if (ctrm != 0) tctrm(); + } + } } /* NIVEAU 1 */ -void theure() -{ - vj= ord(s.heure); - vh= vj % 48; - vj= vj / 48; - vm= vh % 2; - vh= vh / 2; - heu= vh; - if (vm== 1) min= 30; else min= 0; +void theure() { + vj = ord(s.heure); + vh = vj % 48; + vj = vj / 48; + vm = vh % 2; + vh = vh / 2; + heu = vh; + if (vm == 1) min = 30; + else min = 0; } -void tjouer() -{ - antegame(); - do { - tecran(); - } while (!((arret) || (solu) || (perdu))); - if (solu) tmaj1(); else - if (perdu) tencore(); +void tjouer() { + antegame(); + do { + tecran(); + } while (!((arret) || (solu) || (perdu))); + if (solu) tmaj1(); + else if (perdu) tencore(); } diff --git a/engines/mortevielle/ques.h b/engines/mortevielle/ques.h index 66584d5d3c..87d0c87cd1 100644 --- a/engines/mortevielle/ques.h +++ b/engines/mortevielle/ques.h @@ -1,121 +1,113 @@ -/* overlay */ boolean ques() -{ - const array<1,10,integer> ta - = {{ 511, 516, 524, 531, 545, - 552, 559, 563, 570, 576}}; - const array<1,10,integer> ok - = {{ 4, 7, 1, 6, 4, 4, 2, 5, 3, 1 }}; +/* overlay */ boolean ques() { + const array<1, 10, integer> ta + = {{ + 511, 516, 524, 531, 545, + 552, 559, 563, 570, 576 + } + }; + const array<1, 10, integer> ok + = {{ 4, 7, 1, 6, 4, 4, 2, 5, 3, 1 }}; - boolean q, func, test; - integer i,j,k,y,memk; - integer tay , tmax; - integer rep, prem, der; - phrase st; - char key; - mult_rect coor; - array<1,14,str40> chaines; - integer compte; + boolean q, func, test; + integer i, j, k, y, memk; + integer tay , tmax; + integer rep, prem, der; + phrase st; + char key; + mult_rect coor; + array<1, 14, str40> chaines; + integer compte; - boolean ques_result; - test=false; - i=0; - compte= 0; + boolean ques_result; + test = false; + i = 0; + compte = 0; - do { - hide_mouse(); - hirs(); - show_mouse(); - i= i+1; - deline(ta[i],st,tay); - if (res==1) y=29; else y=23; - box(15,gd,0,14,630,y,255); - afftex(st,20,15,100,2,0); - if (i!=10) - { - prem= ta[i]+1; - der= ta[i+1]-1; - } - else - { - prem= 503; - der= 510; - } - y=35; - tmax= 0; - memk= 1; - for( j= prem; j <= der; j ++) - { - deline(j,st,tay); - if (tay>tmax) tmax= tay; - afftex(st,100,y,100,1,0); - chaines[memk]= delig; - memk= memk+1; - y= y+8; - } - for( j= 1; j <= succ(integer,der-prem); j ++) - { - { - rectangle& with = coor[j]; + do { + hide_mouse(); + hirs(); + show_mouse(); + i = i + 1; + deline(ta[i], st, tay); + if (res == 1) y = 29; + else y = 23; + box(15, gd, 0, 14, 630, y, 255); + afftex(st, 20, 15, 100, 2, 0); + if (i != 10) { + prem = ta[i] + 1; + der = ta[i + 1] - 1; + } else { + prem = 503; + der = 510; + } + y = 35; + tmax = 0; + memk = 1; + for (j = prem; j <= der; j ++) { + deline(j, st, tay); + if (tay > tmax) tmax = tay; + afftex(st, 100, y, 100, 1, 0); + chaines[memk] = delig; + memk = memk + 1; + y = y + 8; + } + for (j = 1; j <= succ(integer, der - prem); j ++) { + { + rectangle &with = coor[j]; - with.x1= 45*res; - with.x2= (tmax*3 + 55)*res; - with.y1= 27 + j*8; - with.y2= 34 + j*8; - with.etat= true; - } - while (length(chaines[j] )<tmax) - { - chaines[j]= chaines[j] +' '; - } - } - coor[j+1].etat= false; - if (res==1) rep=10; else rep=6; - boite(80, 33, 40+tmax*rep, (der-prem)*8+ 16, 15); - rep= 0; - j= 0; - memk= 0; - do { - clic= false; - tesok=false; - mov_mouse(func,key); - k= 1; - while (coor[k].etat && ! dans_rect(coor[k])) k= k+1; - if (coor[k].etat) - { - if ((memk!=0) && (memk!=k)) - { - /*DeLine(T_rec[ta[i]+memk].indis,T_rec[ta[i]+memk].point,st,tay);*/ - for( j= 1; j <= tmax; j ++) st[j]= chaines[memk][j]; - st[1+tmax]= '$'; - afftex(st,100,27+memk*8,100,1,0); - } - if (memk!=k) - { - /*DeLine(T_rec[pred(prem)+k].indis,T_rec[pred(prem)+k].point,st,tay);*/ - for( j= 1; j <= tmax; j ++) st[j]= chaines[k][j]; - st[1+tmax]= '$'; - afftex(st,100,27+k*8,100,1,1); - memk= k; - } - } - else - if (memk!=0) - { - for( j= 1; j <= tmax; j ++) st[j]= chaines[memk][j]; - st[1+tmax]= '$'; - afftex(st,100,27+memk*8,100,1,0); - memk=0; - } - } while (!((memk!=0) && clic)); - if (memk==ok[i]) compte=compte+1; - else { - if (i==5) i=i +1; - if ((i==7) || (i==8)) i= 10; - } - if (i==10) q= /*testprot*/ true; - } while (!(i==10)); - ques_result= (compte==10) && q; - return ques_result; + with.x1 = 45 * res; + with.x2 = (tmax * 3 + 55) * res; + with.y1 = 27 + j * 8; + with.y2 = 34 + j * 8; + with.etat = true; + } + while (length(chaines[j]) < tmax) { + chaines[j] = chaines[j] + ' '; + } + } + coor[j + 1].etat = false; + if (res == 1) rep = 10; + else rep = 6; + boite(80, 33, 40 + tmax * rep, (der - prem) * 8 + 16, 15); + rep = 0; + j = 0; + memk = 0; + do { + clic = false; + tesok = false; + mov_mouse(func, key); + k = 1; + while (coor[k].etat && ! dans_rect(coor[k])) k = k + 1; + if (coor[k].etat) { + if ((memk != 0) && (memk != k)) { + /*DeLine(T_rec[ta[i]+memk].indis,T_rec[ta[i]+memk].point,st,tay);*/ + for (j = 1; j <= tmax; j ++) st[j] = chaines[memk][j]; + st[1 + tmax] = '$'; + afftex(st, 100, 27 + memk * 8, 100, 1, 0); + } + if (memk != k) { + /*DeLine(T_rec[pred(prem)+k].indis,T_rec[pred(prem)+k].point,st,tay);*/ + for (j = 1; j <= tmax; j ++) st[j] = chaines[k][j]; + st[1 + tmax] = '$'; + afftex(st, 100, 27 + k * 8, 100, 1, 1); + memk = k; + } + } else if (memk != 0) { + for (j = 1; j <= tmax; j ++) st[j] = chaines[memk][j]; + st[1 + tmax] = '$'; + afftex(st, 100, 27 + memk * 8, 100, 1, 0); + memk = 0; + } + } while (!((memk != 0) && clic)); + if (memk == ok[i]) compte = compte + 1; + else { + if (i == 5) i = i + 1; + if ((i == 7) || (i == 8)) i = 10; + } + if (i == 10) q = /*testprot*/ true; + } while (!(i == 10)); + ques_result = (compte == 10) && q; + return ques_result; } diff --git a/engines/mortevielle/sprint.h b/engines/mortevielle/sprint.h index b54e2ba51c..854fdd6359 100644 --- a/engines/mortevielle/sprint.h +++ b/engines/mortevielle/sprint.h @@ -1,55 +1,54 @@ -void fill_box(integer x,integer y,integer dx) -{ - box(15,gd,pred(integer,x) << 3, pred(integer,y) << 3, pred(integer,x+dx) << 3, y << 3, 255); +void fill_box(integer x, integer y, integer dx) { + box(15, gd, pred(integer, x) << 3, pred(integer, y) << 3, pred(integer, x + dx) << 3, y << 3, 255); } -void clear_box(integer x,integer y,integer dx) -{ - box(0,gd,pred(integer,x) << 3, pred(integer,y) << 3, pred(integer,x+dx) << 3, y << 3, 255); +void clear_box(integer x, integer y, integer dx) { + box(0, gd, pred(integer, x) << 3, pred(integer, y) << 3, pred(integer, x + dx) << 3, y << 3, 255); } -void writeg(str255 l,integer c) +void writeg(str255 l, integer c) { - integer i, x, xo, yo; - integer cecr; - boolean t; + integer i, x, xo, yo; + integer cecr; + boolean t; -/* debug('writeg : '+l);*/ + /* debug('writeg : '+l);*/ - if (l=="") return; - hide_mouse(); - xo=xwhere; - yo=ywhere; - if (res==2) i=6; - else i=10; - x=xo+i*length(l); - switch (c) { - case 1:case 3 : { - cecr=0; - box(15,gd,xo,yo,x,yo+7,255); - } - break; - case 4 : { - cecr=0; - } - break; - case 5 : { - cecr=15; - } - break; - case 0:case 2 : { - cecr=15; - box(0,gd,xo,yo,x,yo+7,255); - } - break; - } - xo=xo+1; - yo=yo+1; - for( x=1; x <= length(l); x ++) - { - affcar(gd,xo,yo,cecr,ord(l[x])); - xo=xo+i; - } - show_mouse(); + if (l == "") return; + hide_mouse(); + xo = xwhere; + yo = ywhere; + if (res == 2) i = 6; + else i = 10; + x = xo + i * length(l); + switch (c) { + case 1: + case 3 : { + cecr = 0; + box(15, gd, xo, yo, x, yo + 7, 255); + } + break; + case 4 : { + cecr = 0; + } + break; + case 5 : { + cecr = 15; + } + break; + case 0: + case 2 : { + cecr = 15; + box(0, gd, xo, yo, x, yo + 7, 255); + } + break; + } + xo = xo + 1; + yo = yo + 1; + for (x = 1; x <= length(l); x ++) { + affcar(gd, xo, yo, cecr, ord(l[x])); + xo = xo + i; + } + show_mouse(); } diff --git a/engines/mortevielle/taffich.h b/engines/mortevielle/taffich.h index 8f8cb1e460..00203118d8 100644 --- a/engines/mortevielle/taffich.h +++ b/engines/mortevielle/taffich.h @@ -1,203 +1,183 @@ -void chardes( str11 nom, long_integer passe, integer long_) - { - integer i, p, l; - byte b; - untyped_file f; +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+*/ - } + /* 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; +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+*/ - } + /* 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; +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); + 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; - } + 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 diff --git a/engines/mortevielle/var_mor.h b/engines/mortevielle/var_mor.h index c1881be6fe..bdc6b59eb7 100644 --- a/engines/mortevielle/var_mor.h +++ b/engines/mortevielle/var_mor.h @@ -111,58 +111,65 @@ const integer slire = 0x403; const integer sposer = 0x404; const integer sregarder = 0x405; - const array<0,17,byte> tabdbc - = {{7, 23, 7, 14, 13, 9, 14, 9, 5, 12, 6, 12, 13, 4, 0, 4, 5, 9}}; - const array<0,15,byte> tabdph - = {{0, 10, 2, 0, 2, 10, 3, 0, 3, 7, 5, 0, 6, 7, 7, 10}}; - const array<0,25,byte> typcon - = {{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3}}; - const array<0,25,byte> intcon - = {{1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}}; - const array<0,363,byte> tnocon - = {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0}}; - - -const matrix<1,8,1,4,byte> don - = {{{{ 7, 37, 22, 8}}, - {{19, 33, 23, 7}}, - {{31, 89, 10, 21}}, - {{43, 25, 11, 5}}, - {{55, 37, 5, 8}}, - {{64, 13, 11, 2}}, - {{62, 22, 13, 4}}, - {{62, 25, 13, 5}}}}; - -const array<1,2,varying_string<11> > fic - = {{ " Sauvegarde", - " Chargement" }}; - -const array<0,1,byte> addv - = {{8,8}}; +const array<0, 17, byte> tabdbc += {{7, 23, 7, 14, 13, 9, 14, 9, 5, 12, 6, 12, 13, 4, 0, 4, 5, 9}}; +const array<0, 15, byte> tabdph += {{0, 10, 2, 0, 2, 10, 3, 0, 3, 7, 5, 0, 6, 7, 7, 10}}; +const array<0, 25, byte> typcon += {{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3}}; +const array<0, 25, byte> intcon += {{1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}}; +const array<0, 363, byte> tnocon += {{ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + } +}; + + +const matrix<1, 8, 1, 4, byte> don += {{{{ 7, 37, 22, 8}}, + {{19, 33, 23, 7}}, + {{31, 89, 10, 21}}, + {{43, 25, 11, 5}}, + {{55, 37, 5, 8}}, + {{64, 13, 11, 2}}, + {{62, 22, 13, 4}}, + {{62, 25, 13, 5}} + } +}; + +const array<1, 2, varying_string<11> > fic += {{ " Sauvegarde", + " Chargement" + } +}; + +const array<0, 1, byte> addv += {{8, 8}}; const char recom[] = " Recommence "; - const char f3[] = "F3: Encore"; - const char f8[] = "F8: Suite"; +const char f3[] = "F3: Encore"; +const char f8[] = "F8: Suite"; - const integer max_patt = 20; +const integer max_patt = 20; - const array<0,15,byte> rang - = {{15,14,11,7,13,12,10,6,9,5,3,1,2,4,8,0}}; +const array<0, 15, byte> rang += {{15, 14, 11, 7, 13, 12, 10, 6, 9, 5, 3, 1, 2, 4, 8, 0}}; /*---------------------------------------------------------------------------*/ @@ -177,72 +184,72 @@ typedef varying_string<30> str30; typedef varying_string<11> str11; typedef file<byte> fichier_byte; struct sav_chaine { - integer conf; - array<0,10,char> pourc; - array<0,42,char> teauto; - array<0,30,char> sjer; - integer mlieu,iboul,ibag,icave,ivier,ipuit; - integer derobj,iloic,icryp; - boolean ipre; - char heure; + integer conf; + array<0, 10, char> pourc; + array<0, 42, char> teauto; + array<0, 30, char> sjer; + integer mlieu, iboul, ibag, icave, ivier, ipuit; + integer derobj, iloic, icryp; + boolean ipre; + char heure; }; struct registres { - integer ax,bx,cx,dx,bp,si,di,ds,es,flags; + integer ax, bx, cx, dx, bp, si, di, ds, es, flags; +}; +typedef array<1, 1410, char> phrase; +typedef array<0, maxti, integer> tabint; +struct ind { + integer indis; + byte point; }; -typedef array<1,1410,char> phrase; -typedef array<0,maxti,integer> tabint; - struct ind { - integer indis; - byte point; - }; -typedef array<0,maxtd,ind> tabind; +typedef array<0, maxtd, ind> tabind; -typedef matrix<1,7,0,24,byte> tab_mlieu; +typedef matrix<1, 7, 0, 24, byte> tab_mlieu; - typedef array<0,255,real> table; -typedef array<0,255,integer> tablint; +typedef array<0, 255, real> table; +typedef array<0, 255, integer> tablint; - typedef integer word1; +typedef integer word1; struct chariot { - integer val, - code, - acc, - freq, - rep; + integer val, + code, + acc, + freq, + rep; }; struct doublet { - byte x,y; + byte x, y; }; -typedef array<1,16,doublet> tabdb; -typedef array<0,107,integer> tfxx; +typedef array<1, 16, doublet> tabdb; +typedef array<0, 107, integer> tfxx; struct rectangle { - integer x1, x2, y1, y2; - boolean etat; + integer x1, x2, y1, y2; + boolean etat; }; -typedef array<1,max_rect,rectangle> mult_rect; +typedef array<1, max_rect, rectangle> mult_rect; typedef varying_string<40> str40; - struct pattern { - byte tay, tax; - matrix<1,max_patt, 1,max_patt,byte> des; - }; +struct pattern { + byte tay, tax; + matrix<1, max_patt, 1, max_patt, byte> des; +}; - struct nhom { - byte n; /* numero entre 0 et 32 */ - array<0,3,byte> hom; - }; +struct nhom { + byte n; /* numero entre 0 et 32 */ + array<0, 3, byte> hom; +}; - typedef array<0,15,nhom> t_nhom; +typedef array<0, 15, nhom> t_nhom; - struct t_pcga { - byte p; - t_nhom a; - }; +struct t_pcga { + byte p; + t_nhom a; +}; - typedef array<0,90,t_pcga> pal_cga; +typedef array<0, 90, t_pcga> pal_cga; /*---------------------------------------------------------------------------*/ @@ -250,147 +257,147 @@ typedef varying_string<40> str40; /*---------------------------------------------------------------------------*/ boolean blo, -bh1, -bf1, -bh2, -bh4, -bf4, -bh5, -bh6, -bh8, -bt3, -bt7, -bh9, - -sonoff, -main1, -choisi, -test0, -f2_all, -imen, -cache, -iesc, -perdu, -col, -syn, -fouil, -zuul, -tesok, -obpart, -okdes, -solu, -arret, -anyone, -brt, -rect, -rech_cfiec, -active_menu; + bh1, + bf1, + bh2, + bh4, + bf4, + bh5, + bh6, + bh8, + bt3, + bt7, + bh9, + + sonoff, + main1, + choisi, + test0, + f2_all, + imen, + cache, + iesc, + perdu, + col, + syn, + fouil, + zuul, + tesok, + obpart, + okdes, + solu, + arret, + anyone, + brt, + rect, + rech_cfiec, + active_menu; integer x, -y, -t, -vj, -li, -vh, -vm, -jh, -mh, -cs, -gd, /* Gd = graph device */ -hdb, -hfb, -heu, -jou, -key, -min, -num, -max, -res, -ment, -haut, -caff, -maff, -crep, -ades, -iouv, -inei, -ctrm, -dobj, -msg3, -msg4, -mlec, -newgd, -c_zzz, -mchai, -menup, -ipers, -ledeb, -lefin, -mpers, -mnumo, -xprec, -yprec, -perdep, -prebru, -typlec, -num_ph, -xwhere, -ywhere, -numpal, -lderobj, -nb_word, -ptr_oct, -k_tempo, -ptr_tcph, -ptr_word, -color_txt; - -array<0,6400,integer> t_cph; -array<0,4000,byte> tabdon; + y, + t, + vj, + li, + vh, + vm, + jh, + mh, + cs, + gd, /* Gd = graph device */ + hdb, + hfb, + heu, + jou, + key, + min, + num, + max, + res, + ment, + haut, + caff, + maff, + crep, + ades, + iouv, + inei, + ctrm, + dobj, + msg3, + msg4, + mlec, + newgd, + c_zzz, + mchai, + menup, + ipers, + ledeb, + lefin, + mpers, + mnumo, + xprec, + yprec, + perdep, + prebru, + typlec, + num_ph, + xwhere, + ywhere, + numpal, + lderobj, + nb_word, + ptr_oct, + k_tempo, + ptr_tcph, + ptr_word, + color_txt; + +array<0, 6400, integer> t_cph; +array<0, 4000, byte> tabdon; /* t_dxx : array[0..121] of integer;*/ str125 stpou; /* donne le % d'indices */ byte is; char mode; fichier_byte ficdes; str125 al_mess, -err_mess, -ind_mess, -al_mess2; - - array<1,8,integer> invt, -nbrep, -nbrepm, - disc; - array<0,4,integer> msg; - array<1,7,integer> depl; - array<1,8,varying_string<22> > inv; - array<1,7,varying_string<23> > dep; - array<1,21,varying_string<10> > act; - array<1,5,varying_string<11> > self_; - array<1,8,varying_string<5> > dis; - array<1,7,char> touv; - sav_chaine s,s1; -array<0,390,byte> bufcha; - -matrix<1,6,0,23,byte> lettres; - -array<0,15,byte> palher; - - tabint t_mot; + err_mess, + ind_mess, + al_mess2; + +array<1, 8, integer> invt, + nbrep, + nbrepm, + disc; +array<0, 4, integer> msg; +array<1, 7, integer> depl; +array<1, 8, varying_string<22> > inv; +array<1, 7, varying_string<23> > dep; +array<1, 21, varying_string<10> > act; +array<1, 5, varying_string<11> > self_; +array<1, 8, varying_string<5> > dis; +array<1, 7, char> touv; +sav_chaine s, s1; +array<0, 390, byte> bufcha; + +matrix<1, 6, 0, 23, byte> lettres; + +array<0, 15, byte> palher; + +tabint t_mot; integer tay_tchar; - tabind t_rec; - file<ind> sauv_t; - untyped_file fibyte; - tab_mlieu v_lieu; - tfxx l; - tablint tbi; +tabind t_rec; +file<ind> sauv_t; +untyped_file fibyte; +tab_mlieu v_lieu; +tfxx l; +tablint tbi; chariot c1, c2, c3; - real addfix; - pal_cga palsav; - array<0,90,tabdb> tabpal; - pal_cga palcga; - array<0,14,pattern> tpt; +real addfix; +pal_cga palsav; +array<0, 90, tabdb> tabpal; +pal_cga palcga; +array<0, 14, pattern> tpt; @@ -400,86 +407,76 @@ chariot c1, c2, c3; /* procedure box(c,Gd,xo,yo,xi,yi,patt:integer); external 'c:\mc\boite.com'; */ -void hirs() -{ - const array<0,13,byte> tandy - = {{113,80,90,14,63,6,50,56,2,3,6,7,0,0}}; - const array<0,12,byte> herc - = {{50,40,41,9,103,3,100,100,2,3,0,0,0}}; - integer i, j; - - switch (gd) { - case cga : - { - graphcolormode; - graphbackground(0); - palette(1); - res=1; - } - break; - case ams : - { - hires; - inline_((real)(0xb8)/6/0/ /* => mov ax,6 */ - 0xcd/0x10); /* => int 16 */ - port[0x3d9]=15; - port[0x3df]=0; - port[0x3dd]=15; - res=2; - } - break; - case ega : - { - inline_((real)(0xb8) / 14 / 0 / /* MOV AX, 14 ; mode video 14 = 640*200 16 couleurs */ - 0xcd / 0x10); /* INT 16 */ - res=2; - } - break; - case her : - { - port[0x3bf]=3; - port[0x3b8]=2; - for( i=0; i <= 12; i ++) - { - port[0x3b4]=i; - port[0x3b5]=herc[i]; - } - inline_((real)(0xfc)/0xb9/0/0x80/0xb8/0/0xb0/0x8e/0xc0/0x31/0xff/0x31/0xc0/0xf3/0xab); - port[0x3b8]=10; - res=2; - } - break; - case tan : - { - port[0x3d8]=0; - port[0x3da]=3; - port[0x3de]=0x14; - for( i=0; i <= 13; i ++) - { - port[0x3d4]=i; - port[0x3d5]=tandy[i]; - } - port[0x3da]=2; - port[0x3de]=0; - port[0x3d8]=port[0x3d8] | (11 & 0xef); - port[0x3dd]=port[0x3dd] | 1; - port[0x3df]=port[0x3df] | 0xc0; - box(0,gd,0,0,640,200,255); - res=1; - } - break; - } +void hirs() { + const array<0, 13, byte> tandy + = {{113, 80, 90, 14, 63, 6, 50, 56, 2, 3, 6, 7, 0, 0}}; + const array<0, 12, byte> herc + = {{50, 40, 41, 9, 103, 3, 100, 100, 2, 3, 0, 0, 0}}; + integer i, j; + + switch (gd) { + case cga : { + graphcolormode; + graphbackground(0); + palette(1); + res = 1; + } + break; + case ams : { + hires; + inline_((real)(0xb8) / 6 / 0 / /* => mov ax,6 */ + 0xcd / 0x10); /* => int 16 */ + port[0x3d9] = 15; + port[0x3df] = 0; + port[0x3dd] = 15; + res = 2; + } + break; + case ega : { + inline_((real)(0xb8) / 14 / 0 / /* MOV AX, 14 ; mode video 14 = 640*200 16 couleurs */ + 0xcd / 0x10); /* INT 16 */ + res = 2; + } + break; + case her : { + port[0x3bf] = 3; + port[0x3b8] = 2; + for (i = 0; i <= 12; i ++) { + port[0x3b4] = i; + port[0x3b5] = herc[i]; + } + inline_((real)(0xfc) / 0xb9 / 0 / 0x80 / 0xb8 / 0 / 0xb0 / 0x8e / 0xc0 / 0x31 / 0xff / 0x31 / 0xc0 / 0xf3 / 0xab); + port[0x3b8] = 10; + res = 2; + } + break; + case tan : { + port[0x3d8] = 0; + port[0x3da] = 3; + port[0x3de] = 0x14; + for (i = 0; i <= 13; i ++) { + port[0x3d4] = i; + port[0x3d5] = tandy[i]; + } + port[0x3da] = 2; + port[0x3de] = 0; + port[0x3d8] = port[0x3d8] | (11 & 0xef); + port[0x3dd] = port[0x3dd] | 1; + port[0x3df] = port[0x3df] | 0xc0; + box(0, gd, 0, 0, 640, 200, 255); + res = 1; + } + break; + } } /* procedure affput(Chx,Gd,x,y,coul,char:integer); external 'c:\mc\divaf.com'; */ -void affcar(integer gd,integer x,integer y,integer coul,integer char) -{ - if (res==1) affput(1,gd,((cardinal)x >> 1),y,coul,char); - else affput(1,gd,x,y,coul,char); +void affcar(integer gd, integer x, integer y, integer coul, integer char) { + if (res == 1) affput(1, gd, ((cardinal)x >> 1), y, coul, char); + else affput(1, gd, x, y, coul, char); } -void putpix(integer gd,integer x,integer y,integer coul) -{ - affput(0,gd,x,y,coul,0); +void putpix(integer gd, integer x, integer y, integer coul) { + affput(0, gd, x, y, coul, 0); } |