aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2011-12-23 22:15:35 +0000
committerStrangerke2012-04-06 08:18:13 +0200
commit9b6a4264dcaa26d87fa099c0a0dadbb8e37a6241 (patch)
treeb785814bdb2b225b2fefe2f3be60b0c192867d58
parent816e53c1f87365cb351fe3dbdf4a8636954d1773 (diff)
downloadscummvm-rg350-9b6a4264dcaa26d87fa099c0a0dadbb8e37a6241.tar.gz
scummvm-rg350-9b6a4264dcaa26d87fa099c0a0dadbb8e37a6241.tar.bz2
scummvm-rg350-9b6a4264dcaa26d87fa099c0a0dadbb8e37a6241.zip
MORTEVIELLE: Ran astyle over generated files
-rw-r--r--engines/mortevielle/actions.h2371
-rw-r--r--engines/mortevielle/alert.h401
-rw-r--r--engines/mortevielle/boite.h57
-rw-r--r--engines/mortevielle/disk.h124
-rw-r--r--engines/mortevielle/droite.h67
-rw-r--r--engines/mortevielle/keyboard.h107
-rw-r--r--engines/mortevielle/level15.h271
-rw-r--r--engines/mortevielle/menu.h594
-rw-r--r--engines/mortevielle/mor.h2690
-rw-r--r--engines/mortevielle/mor2.h1376
-rw-r--r--engines/mortevielle/mort.cpp175
-rw-r--r--engines/mortevielle/mouse.h846
-rw-r--r--engines/mortevielle/outtext.h409
-rw-r--r--engines/mortevielle/ovd1.h628
-rw-r--r--engines/mortevielle/parole.h736
-rw-r--r--engines/mortevielle/parole2.h168
-rw-r--r--engines/mortevielle/prog.h595
-rw-r--r--engines/mortevielle/ques.h220
-rw-r--r--engines/mortevielle/sprint.h91
-rw-r--r--engines/mortevielle/taffich.h366
-rw-r--r--engines/mortevielle/var_mor.h591
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);
}