aboutsummaryrefslogtreecommitdiff
path: root/engines/mortevielle/ques.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/mortevielle/ques.h')
-rw-r--r--engines/mortevielle/ques.h121
1 files changed, 121 insertions, 0 deletions
diff --git a/engines/mortevielle/ques.h b/engines/mortevielle/ques.h
new file mode 100644
index 0000000000..66584d5d3c
--- /dev/null
+++ b/engines/mortevielle/ques.h
@@ -0,0 +1,121 @@
+
+/* 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 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];
+
+ 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;
+}